diff options
Diffstat (limited to 'src/mame/drivers/cps3.cpp')
-rw-r--r-- | src/mame/drivers/cps3.cpp | 88 |
1 files changed, 45 insertions, 43 deletions
diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp index aed09d9f26d..d2a468f2e2c 100644 --- a/src/mame/drivers/cps3.cpp +++ b/src/mame/drivers/cps3.cpp @@ -2147,77 +2147,79 @@ WRITE32_MEMBER(cps3_state::cps3_colourram_w) /* there are more unknown writes, but you get the idea */ -ADDRESS_MAP_START(cps3_state::cps3_map) - AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_REGION("bios", 0) // Bios ROM - AM_RANGE(0x02000000, 0x0207ffff) AM_RAM AM_SHARE("mainram") // Main RAM +void cps3_state::cps3_map(address_map &map) +{ + map(0x00000000, 0x0007ffff).rom().region("bios", 0); // Bios ROM + map(0x02000000, 0x0207ffff).ram().share("mainram"); // Main RAM - AM_RANGE(0x03000000, 0x030003ff) AM_RAM // 'FRAM' (SFIII memory test mode ONLY) + map(0x03000000, 0x030003ff).ram(); // 'FRAM' (SFIII memory test mode ONLY) // AM_RANGE(0x04000000, 0x0407dfff) AM_RAM AM_SHARE("spriteram")//AM_WRITEONLY // Sprite RAM (jojoba tests this size) - AM_RANGE(0x04000000, 0x0407ffff) AM_RAM AM_SHARE("spriteram")//AM_WRITEONLY // Sprite RAM + map(0x04000000, 0x0407ffff).ram().share("spriteram");//AM_WRITEONLY // Sprite RAM - AM_RANGE(0x04080000, 0x040bffff) AM_READWRITE(cps3_colourram_r, cps3_colourram_w) AM_SHARE("colourram") // Colour RAM (jojoba tests this size) 0x20000 colours?! + map(0x04080000, 0x040bffff).rw(this, FUNC(cps3_state::cps3_colourram_r), FUNC(cps3_state::cps3_colourram_w)).share("colourram"); // Colour RAM (jojoba tests this size) 0x20000 colours?! // video registers of some kind probably - AM_RANGE(0x040C0000, 0x040C0003) AM_READ(cps3_40C0000_r)//?? every frame - AM_RANGE(0x040C0004, 0x040C0007) AM_READ(cps3_40C0004_r)//AM_READ(cps3_40C0004_r) // warzard reads this! + map(0x040C0000, 0x040C0003).r(this, FUNC(cps3_state::cps3_40C0000_r));//?? every frame + map(0x040C0004, 0x040C0007).r(this, FUNC(cps3_state::cps3_40C0004_r));//AM_READ(cps3_40C0004_r) // warzard reads this! // AM_RANGE(0x040C0008, 0x040C000b) AM_WRITENOP//?? - AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITENOP/ + map(0x040C000c, 0x040C000f).r(this, FUNC(cps3_state::cps3_vbl_r));// AM_WRITENOP/ - AM_RANGE(0x040C0000, 0x040C001f) AM_WRITE(cps3_unk_vidregs_w) - AM_RANGE(0x040C0020, 0x040C002b) AM_WRITEONLY AM_SHARE("tmap20_regs") - AM_RANGE(0x040C0030, 0x040C003b) AM_WRITEONLY AM_SHARE("tmap30_regs") - AM_RANGE(0x040C0040, 0x040C004b) AM_WRITEONLY AM_SHARE("tmap40_regs") - AM_RANGE(0x040C0050, 0x040C005b) AM_WRITEONLY AM_SHARE("tmap50_regs") + map(0x040C0000, 0x040C001f).w(this, FUNC(cps3_state::cps3_unk_vidregs_w)); + map(0x040C0020, 0x040C002b).writeonly().share("tmap20_regs"); + map(0x040C0030, 0x040C003b).writeonly().share("tmap30_regs"); + map(0x040C0040, 0x040C004b).writeonly().share("tmap40_regs"); + map(0x040C0050, 0x040C005b).writeonly().share("tmap50_regs"); - AM_RANGE(0x040C0060, 0x040C007f) AM_RAM AM_SHARE("fullscreenzoom") + map(0x040C0060, 0x040C007f).ram().share("fullscreenzoom"); - AM_RANGE(0x040C0094, 0x040C009b) AM_WRITE(cps3_characterdma_w) + map(0x040C0094, 0x040C009b).w(this, FUNC(cps3_state::cps3_characterdma_w)); - AM_RANGE(0x040C00a0, 0x040C00af) AM_WRITE(cps3_palettedma_w) + map(0x040C00a0, 0x040C00af).w(this, FUNC(cps3_state::cps3_palettedma_w)); - AM_RANGE(0x040C0084, 0x040C0087) AM_WRITE(cram_bank_w) - AM_RANGE(0x040C0088, 0x040C008b) AM_WRITE(cram_gfxflash_bank_w) + map(0x040C0084, 0x040C0087).w(this, FUNC(cps3_state::cram_bank_w)); + map(0x040C0088, 0x040C008b).w(this, FUNC(cps3_state::cram_gfxflash_bank_w)); - AM_RANGE(0x040e0000, 0x040e02ff) AM_DEVREADWRITE("cps3sound", cps3_sound_device, cps3_sound_r, cps3_sound_w) + map(0x040e0000, 0x040e02ff).rw(m_cps3sound, FUNC(cps3_sound_device::cps3_sound_r), FUNC(cps3_sound_device::cps3_sound_w)); - AM_RANGE(0x04100000, 0x041fffff) AM_READWRITE(cram_data_r, cram_data_w) - AM_RANGE(0x04200000, 0x043fffff) AM_READWRITE(cps3_gfxflash_r, cps3_gfxflash_w) // GFX Flash ROMS + map(0x04100000, 0x041fffff).rw(this, FUNC(cps3_state::cram_data_r), FUNC(cps3_state::cram_data_w)); + map(0x04200000, 0x043fffff).rw(this, FUNC(cps3_state::cps3_gfxflash_r), FUNC(cps3_state::cps3_gfxflash_w)); // GFX Flash ROMS - AM_RANGE(0x05000000, 0x05000003) AM_READ_PORT("INPUTS") - AM_RANGE(0x05000004, 0x05000007) AM_READ_PORT("EXTRA") + map(0x05000000, 0x05000003).portr("INPUTS"); + map(0x05000004, 0x05000007).portr("EXTRA"); - AM_RANGE(0x05000008, 0x0500000b) AM_WRITENOP // ?? every frame + map(0x05000008, 0x0500000b).nopw(); // ?? every frame - AM_RANGE(0x05000a00, 0x05000a1f) AM_READ(cps3_unk_io_r ) // ?? every frame + map(0x05000a00, 0x05000a1f).r(this, FUNC(cps3_state::cps3_unk_io_r)); // ?? every frame - AM_RANGE(0x05001000, 0x05001203) AM_READWRITE(cps3_eeprom_r, cps3_eeprom_w ) + map(0x05001000, 0x05001203).rw(this, FUNC(cps3_state::cps3_eeprom_r), FUNC(cps3_state::cps3_eeprom_w)); - AM_RANGE(0x05040000, 0x0504ffff) AM_READWRITE(cps3_ssram_r,cps3_ssram_w) // 'SS' RAM (Score Screen) (text tilemap + toles) + map(0x05040000, 0x0504ffff).rw(this, FUNC(cps3_state::cps3_ssram_r), FUNC(cps3_state::cps3_ssram_w)); // 'SS' RAM (Score Screen) (text tilemap + toles) //0x25050020 - AM_RANGE(0x05050020, 0x05050023) AM_WRITE(cps3_ss_bank_base_w ) - AM_RANGE(0x05050024, 0x05050027) AM_WRITE(cps3_ss_pal_base_w ) + map(0x05050020, 0x05050023).w(this, FUNC(cps3_state::cps3_ss_bank_base_w)); + map(0x05050024, 0x05050027).w(this, FUNC(cps3_state::cps3_ss_pal_base_w)); - AM_RANGE(0x05100000, 0x05100003) AM_WRITE(cps3_irq12_ack_w ) - AM_RANGE(0x05110000, 0x05110003) AM_WRITE(cps3_irq10_ack_w ) + map(0x05100000, 0x05100003).w(this, FUNC(cps3_state::cps3_irq12_ack_w)); + map(0x05110000, 0x05110003).w(this, FUNC(cps3_state::cps3_irq10_ack_w)); - AM_RANGE(0x05140000, 0x05140003) AM_DEVREADWRITE8("wd33c93", wd33c93_device, read, write, 0x00ff00ff ) + map(0x05140000, 0x05140003).rw("wd33c93", FUNC(wd33c93_device::read), FUNC(wd33c93_device::write)).umask32(0x00ff00ff); - AM_RANGE(0x06000000, 0x067fffff) AM_READWRITE(cps3_flash1_r, cps3_flash1_w ) /* Flash ROMs simm 1 */ - AM_RANGE(0x06800000, 0x06ffffff) AM_READWRITE(cps3_flash2_r, cps3_flash2_w ) /* Flash ROMs simm 2 */ + map(0x06000000, 0x067fffff).rw(this, FUNC(cps3_state::cps3_flash1_r), FUNC(cps3_state::cps3_flash1_w)); /* Flash ROMs simm 1 */ + map(0x06800000, 0x06ffffff).rw(this, FUNC(cps3_state::cps3_flash2_r), FUNC(cps3_state::cps3_flash2_w)); /* Flash ROMs simm 2 */ - AM_RANGE(0x07ff0048, 0x07ff004b) AM_WRITENOP // bit 0 toggles during programming - AM_RANGE(0xc0000000, 0xc00003ff) AM_RAM_WRITE(cps3_0xc0000000_ram_w ) AM_SHARE("0xc0000000_ram") /* Executes code from here */ -ADDRESS_MAP_END + map(0x07ff0048, 0x07ff004b).nopw(); // bit 0 toggles during programming + map(0xc0000000, 0xc00003ff).ram().w(this, FUNC(cps3_state::cps3_0xc0000000_ram_w)).share("0xc0000000_ram"); /* Executes code from here */ +} -ADDRESS_MAP_START(cps3_state::decrypted_opcodes_map) - AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_REGION("bios", 0) // Bios ROM - AM_RANGE(0x06000000, 0x06ffffff) AM_ROM AM_SHARE("decrypted_gamerom") - AM_RANGE(0xc0000000, 0xc00003ff) AM_ROM AM_SHARE("0xc0000000_ram_decrypted") -ADDRESS_MAP_END +void cps3_state::decrypted_opcodes_map(address_map &map) +{ + map(0x00000000, 0x0007ffff).rom().region("bios", 0); // Bios ROM + map(0x06000000, 0x06ffffff).rom().share("decrypted_gamerom"); + map(0xc0000000, 0xc00003ff).rom().share("0xc0000000_ram_decrypted"); +} static INPUT_PORTS_START( cps3 ) PORT_START("INPUTS") |