Oriental Legend Super auto DMA fix
MAME version
latest
System information
source code
INI configuration details
Emulated system/software
IGS PGM
Incorrect behaviour
olds is missing the first auto-dma and requires the ram dump for igs028
Expected behaviour
not to require ram dump
Steps to reproduce
run game
Additional details
The fix is an inital auto dma with the parameters --
mode - $3200 (subtractive copy, table offset $32) src - $2000 (byte offset in ROM) dst - $800 ($401000 in shared protection RAM) size - $aba ($1574 bytes)
The value at 403064 still needs to be set.
These parameters look like they are in the ROM at --
mode : $5b ($3280, similar additional bits set as seen with IGS022, looks ok) src: $55 dst: $84 size: $b8
However two of those are at odd address and are word parameters. This doesn't match how it works with RAM DMA commands and differs from the IGS022 autodma, but may well be correct. I've just used a hardcoded auto-dma for the IGS028 on the PGMGD as there are no other games using it and its running past the first couple of levels ok. Needs further testing.
I also initialised the shared protection memory from 0-3fff with a 16bit counter decrementing from ffff downword. This seems to match the state of unused parts of the ram dump.
Source: mamedev/mame