Frispel

sedan 2001

På spaning inuti ett WPC-ROM

erikjlar

  • Newbie
  • *
    • Antal inlägg: 25
    • Visa profil
  • Stad: Göteborg
På spaning inuti ett WPC-ROM

Fråga mig inte varför, men funderade på om man kan "rippa" bilder och animationer ur Williams-ROM:ar. Hittade inget på nätet (folk kanske helt enkelt har bättre saker för sig?).

Läste in CPU-ROM:en till Twilight Zone (L4) i Matlab och började titta runt.

Hade förstås ingen aning om vilken format Williams-ingenjörerna valt för att representera bilder, men fick lite hintar här.

Även om detta inte nödvändigtvis gäller Williams egen mjukvara, så gissade jag att fullskärmsbilder skulle vara 16 bytes breda, och att "litte-endian format" gäller för bitarna (mkt användbar info). Plus att kodning av de 2 bitar per pixel som krävs för 4 nyanser sker genom att upprepa bitmapen två gånger i minnet.

Utgick från detta och skrev ett script som scrollade mig igenom de 524 kB som utgör L4-ROM:en. Hittade rätt snart detta kring adress 208 kB:



Kom också fram till att mkt av grafiken ("mode"-bilderna) ligger uppstyckade i mindre 32x32-pixel-bilder. Vänster kolumn visar adress 286959 och framåt med 32 pixels (4 bytes) bredd, höger visar 289391 och framåt:



Slog mig snart att man förstås valt denna lösning för att förenkla "slot machine reels"-animeringen, så antagligen hittar man inte denna konstiga encoding i andra spel.

Finns också spår av en beryktad "Stunt Cow" (omnämnd t.ex. här):



Av allt nördig man gjort måste detta hamna rätt högt upp på listan. Avslutar ROM-grävandet här och postar scriptet om nån vill gräva vidare (kanske finns redan enklare sätt att göra detta?).

Script
« Senast ändrad: april 01, 2012, 23:21:29 av erikjlar »


Sonar

  • Hero Member
  • Hero Member
  • *****
    • Antal inlägg: 2937
    • Visa profil
Nördigt? Ja!  Men ack så kul och intressant :-)


erikjlar

  • Newbie
  • *
    • Antal inlägg: 25
    • Visa profil
  • Stad: Göteborg
Kul att nån tyckte det iaf! Skulle ju f.ö. gissa att det funkar likadant även i icke-Williams/Bally-spel.


EZL

  • Hero Member
  • *****
    • Antal inlägg: 1017
    • Visa profil
  • Stad: Malmö
Jag har önskat mig ett/flera program som tillåter att man byter ut grafik och ljud ur orginal-rommarna.

Kan man bara läsa pinMAME-kod så borde det gå att reda ut hur det fungerar.

Har dock för mig att åtminstone ljudet är i ett udda, egenskapat, komprimerat williams-format vilket gör att det blir lurigt.

Grafiken borde ju gå dock eftersom du så "enkelt" lyckats få fram resultat.


erikjlar

  • Newbie
  • *
    • Antal inlägg: 25
    • Visa profil
  • Stad: Göteborg
Musiken är nog klart svårare. Hade inte varit alls svårt att byta ut bilderna mot egna, givet resultatet ovan. Man måste dock beräkna om kontrollsumman sen (http://www.maddes.net/pinball/wpc_debugging.htm#checksum_correction).


Tags: