The problem starts when I try to do anything in the xml's or in the hiscore.dat. In flower.xml it says the address (which I tried referencing as maincpu.pb@c023, maincpu.mb@c023, maincpu.rb@c023 and maincpu.ob@c023) is an unknown symbol, (that the message mame shows in the console) despite having found it in the debugger.
It also isn't the same problem with williams driver where the addresses must be multiplied by 8 (I've tried). I don't know how can I fix it in the driver and recompile mame since the address is in the "workram" area (0xc000 - 0xdfff)
Code: Select all
static ADDRESS_MAP_START( shared_map, AS_PROGRAM, 8, flower_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("workram")
AM_RANGE(0xa000, 0xa000) AM_WRITENOP
AM_RANGE(0xa001, 0xa001) AM_WRITE(flipscreen_w)
AM_RANGE(0xa002, 0xa002) AM_WRITENOP // master irq related (0 at start, 1 at end)
AM_RANGE(0xa003, 0xa003) AM_WRITENOP // slave irq related (0 at start, 1 at end)
AM_RANGE(0xa004, 0xa004) AM_WRITE(coin_counter_w)
AM_RANGE(0xa005, 0xa005) AM_WRITENOP
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("P1")
AM_RANGE(0xa101, 0xa101) AM_READ_PORT("P2")
AM_RANGE(0xa102, 0xa102) AM_READ_PORT("DSW1")
AM_RANGE(0xa103, 0xa103) AM_READ_PORT("DSW2")
AM_RANGE(0xa400, 0xa400) AM_WRITE(sound_command_w)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("txvram")
AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(fgvram_w) AM_SHARE("fgvram")
AM_RANGE(0xf200, 0xf200) AM_RAM AM_SHARE("fgscroll")
AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(bgvram_w) AM_SHARE("bgvram")
AM_RANGE(0xfa00, 0xfa00) AM_RAM AM_SHARE("bgscroll")
There's another game called darkmist (same romset name) which has also a "workram" (mame/drivers/darkmist.cpp) and there are cheats written for it in the workram area itself (infinite credits, infinite energy). What sort of changes need to be done to the flower driver so I can poke and write values to such "workram" area?
I hope you can help me with this problem. It's driving me nuts.
Thanks in advance.