mamedev / mame

MAME
https://www.mamedev.org/
Other
7.77k stars 1.96k forks source link

Decode Gals Panic II RLE compression #5816

Open angelosa opened 4 years ago

angelosa commented 4 years ago

Gals Panic II has a RGB555 layer that is unused except on POST, making it a candidate for a MCU service.

There's no clear pattern in slave ROMs therefore it's possible that Kaneko used a RLE scheme, given the complexity of the protection itself sounds worth intel even if it ends that the MCU is completely responsible for the task.

galibert commented 4 years ago

Are the communications with the mcu understood at that point? I rmemeber mumble years ago they weren't...

OG.

On Sun, Oct 27, 2019 at 7:20 PM Angelo Salese notifications@github.com wrote:

Gals Panic II https://github.com/mamedev/mame/blob/master/src/mame/drivers/galpani2.cpp has a RGB555 layer that is unused except on POST, making it a candidate for a MCU service.

There's no clear pattern in slave ROMs therefore it's possible that Kaneko used a RLE https://github.com/mamedev/mame/blob/master/src/mame/video/sknsspr.cpp#L53 scheme, given the complexity of the protection itself sounds worth intel even if it ends that the MCU is completely responsible for the task.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mamedev/mame/issues/5816?email_source=notifications&email_token=ACGSF4IEMFTSQSHGS7WPVRLQQXET7A5CNFSM4JFSZ4DKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HUTZIBQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACGSF4IF7UNITKK55JEGDWTQQXET7ANCNFSM4JFSZ4DA .

ghost commented 4 years ago

fwiw I also believe that the bitmaps are a different resolution than the other layers, so there's going to be some funky mixing to handle too.

angelosa commented 4 years ago

Game just send commands for displaying whatever background other than the POST ones. That's the easy part since we can just probe it out and eventually a pointer table is hidden somewhere.

The hard part is that there must be some kind of gameplay logic that must be populated somehow, i.e. it's currently impossible to clear a level because you can get just ~2% in gameplay and I'm gonna assume the remaining 98% is populated after background decoding.