Skip to content

Oriental Legend Super auto DMA fix #16175

Description

@RetroHQ

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions