summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/jaguar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/jaguar.cpp')
-rw-r--r--src/mame/drivers/jaguar.cpp394
1 files changed, 202 insertions, 192 deletions
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 1bdbe2256cd..f5c80977254 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -1105,25 +1105,26 @@ WRITE16_MEMBER(jaguar_state::gpu_clut_w16){ if (!(offset&1)) { gpu_clut_w(space,
READ16_MEMBER(jaguar_state::gpu_ram_r16){ if (!(offset&1)) { return gpu_ram_r(space, offset>>1, mem_mask<<16) >> 16; } else { return gpu_ram_r(space, offset>>1, mem_mask); } }
WRITE16_MEMBER(jaguar_state::gpu_ram_w16){ if (!(offset&1)) { gpu_ram_w(space, offset>>1, data << 16, mem_mask << 16); } else { gpu_ram_w(space, offset>>1, data, mem_mask); } }
-ADDRESS_MAP_START(jaguar_state::jaguar_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_READWRITE(shared_ram_r16, shared_ram_w16 );
- AM_RANGE(0x800000, 0xdfffff) AM_READWRITE(cart_base_r16, cart_base_w16 )
- AM_RANGE(0xe00000, 0xe1ffff) AM_READWRITE(rom_base_r16, rom_base_w16 )
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE(tom_regs_r, tom_regs_w) // might be reversed endian of the others..
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_READWRITE(gpu_clut_r16, gpu_clut_w16 )
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r16, gpuctrl_w16)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r16, blitter_w16)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_READWRITE(gpu_ram_r16, gpu_ram_w16 )
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE(jerry_regs_r, jerry_regs_w) // might be reversed endian of the others..
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r16, joystick_w16)
- AM_RANGE(0xf14800, 0xf14803) AM_READWRITE(eeprom_clk16,eeprom_w16) // GPI00
- AM_RANGE(0xf15000, 0xf15003) AM_READ(eeprom_cs16) // GPI01
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r16, dspctrl_w16)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r16, serial_w16)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_READWRITE(dsp_ram_r16, dsp_ram_w16)
- AM_RANGE(0xf1d000, 0xf1dfff) AM_READWRITE(wave_rom_r16, wave_rom_w16 )
-ADDRESS_MAP_END
+void jaguar_state::jaguar_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).mirror(0x200000).rw(this, FUNC(jaguar_state::shared_ram_r16), FUNC(jaguar_state::shared_ram_w16));
+ map(0x800000, 0xdfffff).rw(this, FUNC(jaguar_state::cart_base_r16), FUNC(jaguar_state::cart_base_w16));
+ map(0xe00000, 0xe1ffff).rw(this, FUNC(jaguar_state::rom_base_r16), FUNC(jaguar_state::rom_base_w16));
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w)); // might be reversed endian of the others..
+ map(0xf00400, 0xf005ff).mirror(0x000200).rw(this, FUNC(jaguar_state::gpu_clut_r16), FUNC(jaguar_state::gpu_clut_w16));
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r16), FUNC(jaguar_state::gpuctrl_w16));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r16), FUNC(jaguar_state::blitter_w16));
+ map(0xf03000, 0xf03fff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpu_ram_r16), FUNC(jaguar_state::gpu_ram_w16));
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w)); // might be reversed endian of the others..
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r16), FUNC(jaguar_state::joystick_w16));
+ map(0xf14800, 0xf14803).rw(this, FUNC(jaguar_state::eeprom_clk16), FUNC(jaguar_state::eeprom_w16)); // GPI00
+ map(0xf15000, 0xf15003).r(this, FUNC(jaguar_state::eeprom_cs16)); // GPI01
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r16), FUNC(jaguar_state::dspctrl_w16));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r16), FUNC(jaguar_state::serial_w16));
+ map(0xf1b000, 0xf1cfff).rw(this, FUNC(jaguar_state::dsp_ram_r16), FUNC(jaguar_state::dsp_ram_w16));
+ map(0xf1d000, 0xf1dfff).rw(this, FUNC(jaguar_state::wave_rom_r16), FUNC(jaguar_state::wave_rom_w16));
+}
/*
CD-Rom emulation, chip codename Butch (the HW engineer was definitely obsessed with T&J somehow ...)
@@ -1293,26 +1294,27 @@ WRITE32_MEMBER(jaguar_state::butch_regs_w)
}
}
-ADDRESS_MAP_START(jaguar_state::jaguarcd_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_READWRITE(shared_ram_r16, shared_ram_w16 );
- AM_RANGE(0x800000, 0x83ffff) AM_ROM AM_REGION("cdbios", 0)
- AM_RANGE(0xdfff00, 0xdfff3f) AM_READWRITE(butch_regs_r16,butch_regs_w16 )
- AM_RANGE(0xe00000, 0xe1ffff) AM_READWRITE(rom_base_r16, rom_base_w16 )
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE(tom_regs_r, tom_regs_w) // might be reversed endian of the others..
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_READWRITE(gpu_clut_r16, gpu_clut_w16 )
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r16, gpuctrl_w16)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r16, blitter_w16)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_READWRITE(gpu_ram_r16, gpu_ram_w16 )
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE(jerry_regs_r, jerry_regs_w) // might be reversed endian of the others..
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r16, joystick_w16)
- AM_RANGE(0xf14800, 0xf14803) AM_READWRITE(eeprom_clk16,eeprom_w16) // GPI00
- AM_RANGE(0xf15000, 0xf15003) AM_READ(eeprom_cs16) // GPI01
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r16, dspctrl_w16)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r16, serial_w16)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_READWRITE(dsp_ram_r16, dsp_ram_w16)
- AM_RANGE(0xf1d000, 0xf1dfff) AM_READWRITE(wave_rom_r16, wave_rom_w16 )
-ADDRESS_MAP_END
+void jaguar_state::jaguarcd_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).mirror(0x200000).rw(this, FUNC(jaguar_state::shared_ram_r16), FUNC(jaguar_state::shared_ram_w16));
+ map(0x800000, 0x83ffff).rom().region("cdbios", 0);
+ map(0xdfff00, 0xdfff3f).rw(this, FUNC(jaguar_state::butch_regs_r16), FUNC(jaguar_state::butch_regs_w16));
+ map(0xe00000, 0xe1ffff).rw(this, FUNC(jaguar_state::rom_base_r16), FUNC(jaguar_state::rom_base_w16));
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w)); // might be reversed endian of the others..
+ map(0xf00400, 0xf005ff).mirror(0x000200).rw(this, FUNC(jaguar_state::gpu_clut_r16), FUNC(jaguar_state::gpu_clut_w16));
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r16), FUNC(jaguar_state::gpuctrl_w16));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r16), FUNC(jaguar_state::blitter_w16));
+ map(0xf03000, 0xf03fff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpu_ram_r16), FUNC(jaguar_state::gpu_ram_w16));
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w)); // might be reversed endian of the others..
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r16), FUNC(jaguar_state::joystick_w16));
+ map(0xf14800, 0xf14803).rw(this, FUNC(jaguar_state::eeprom_clk16), FUNC(jaguar_state::eeprom_w16)); // GPI00
+ map(0xf15000, 0xf15003).r(this, FUNC(jaguar_state::eeprom_cs16)); // GPI01
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r16), FUNC(jaguar_state::dspctrl_w16));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r16), FUNC(jaguar_state::serial_w16));
+ map(0xf1b000, 0xf1cfff).rw(this, FUNC(jaguar_state::dsp_ram_r16), FUNC(jaguar_state::dsp_ram_w16));
+ map(0xf1d000, 0xf1dfff).rw(this, FUNC(jaguar_state::wave_rom_r16), FUNC(jaguar_state::wave_rom_w16));
+}
/*************************************
*
@@ -1320,63 +1322,65 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(jaguar_state::r3000_map)
- AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x04800000, 0x04bfffff) AM_ROMBANK("maingfxbank")
- AM_RANGE(0x04c00000, 0x04dfffff) AM_ROMBANK("mainsndbank")
- AM_RANGE(0x04e00030, 0x04e0003f) AM_DEVREADWRITE("ide", vt83c461_device, read_config, write_config)
- AM_RANGE(0x04e001f0, 0x04e001f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs0, write_cs0)
- AM_RANGE(0x04e003f0, 0x04e003f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs1, write_cs1)
- AM_RANGE(0x04f00000, 0x04f003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0x04f00400, 0x04f007ff) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0x04f02100, 0x04f021ff) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0x04f02200, 0x04f022ff) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0x04f03000, 0x04f03fff) AM_MIRROR(0x00008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0x04f10000, 0x04f103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0x04f16000, 0x04f1600b) AM_READ(cojag_gun_input_r) // GPI02
- AM_RANGE(0x04f17000, 0x04f17003) AM_READ_PORT("SYSTEM") // GPI03
- AM_RANGE(0x04f17800, 0x04f17803) AM_WRITE(latch_w) // GPI04
- AM_RANGE(0x04f17c00, 0x04f17c03) AM_READ_PORT("P1_P2") // GPI05
- AM_RANGE(0x04f1a100, 0x04f1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0x04f1a140, 0x04f1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0x04f1b000, 0x04f1cfff) AM_RAM AM_SHARE("dspram")
-
- AM_RANGE(0x06000000, 0x06000003) AM_READWRITE(misc_control_r, misc_control_w)
- AM_RANGE(0x10000000, 0x1007ffff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0x12000000, 0x120fffff) AM_RAM AM_SHARE("mainram2") // tested in self-test only?
- AM_RANGE(0x14000004, 0x14000007) AM_DEVWRITE("watchdog", watchdog_timer_device, reset32_w)
- AM_RANGE(0x16000000, 0x16000003) AM_WRITE(eeprom_enable_w)
- AM_RANGE(0x18000000, 0x18001fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_SHARE("nvram")
- AM_RANGE(0x1fc00000, 0x1fdfffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("rom")
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(jaguar_state::m68020_map)
- AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("rom")
- AM_RANGE(0xa00000, 0xa1ffff) AM_RAM AM_SHARE("mainram")
- AM_RANGE(0xa20000, 0xa21fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_SHARE("nvram")
- AM_RANGE(0xa30000, 0xa30003) AM_DEVWRITE("watchdog", watchdog_timer_device, reset32_w)
- AM_RANGE(0xa40000, 0xa40003) AM_WRITE(eeprom_enable_w)
- AM_RANGE(0xb70000, 0xb70003) AM_READWRITE(misc_control_r, misc_control_w)
- AM_RANGE(0xc00000, 0xdfffff) AM_ROMBANK("mainsndbank")
- AM_RANGE(0xe00030, 0xe0003f) AM_DEVREADWRITE("ide", vt83c461_device, read_config, write_config)
- AM_RANGE(0xe001f0, 0xe001f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs0, write_cs0)
- AM_RANGE(0xe003f0, 0xe003f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs1, write_cs1)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf007ff) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf16000, 0xf1600b) AM_READ(cojag_gun_input_r) // GPI02
- AM_RANGE(0xf17000, 0xf17003) AM_READ_PORT("SYSTEM") // GPI03
+void jaguar_state::r3000_map(address_map &map)
+{
+ map(0x04000000, 0x047fffff).ram().share("sharedram");
+ map(0x04800000, 0x04bfffff).bankr("maingfxbank");
+ map(0x04c00000, 0x04dfffff).bankr("mainsndbank");
+ map(0x04e00030, 0x04e0003f).rw(m_ide, FUNC(vt83c461_device::read_config), FUNC(vt83c461_device::write_config));
+ map(0x04e001f0, 0x04e001f7).rw(m_ide, FUNC(vt83c461_device::read_cs0), FUNC(vt83c461_device::write_cs0));
+ map(0x04e003f0, 0x04e003f7).rw(m_ide, FUNC(vt83c461_device::read_cs1), FUNC(vt83c461_device::write_cs1));
+ map(0x04f00000, 0x04f003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0x04f00400, 0x04f007ff).ram().share("gpuclut");
+ map(0x04f02100, 0x04f021ff).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0x04f02200, 0x04f022ff).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0x04f03000, 0x04f03fff).mirror(0x00008000).ram().share("gpuram");
+ map(0x04f10000, 0x04f103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0x04f16000, 0x04f1600b).r(this, FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
+ map(0x04f17000, 0x04f17003).portr("SYSTEM"); // GPI03
+ map(0x04f17800, 0x04f17803).w(this, FUNC(jaguar_state::latch_w)); // GPI04
+ map(0x04f17c00, 0x04f17c03).portr("P1_P2"); // GPI05
+ map(0x04f1a100, 0x04f1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0x04f1a140, 0x04f1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0x04f1b000, 0x04f1cfff).ram().share("dspram");
+
+ map(0x06000000, 0x06000003).rw(this, FUNC(jaguar_state::misc_control_r), FUNC(jaguar_state::misc_control_w));
+ map(0x10000000, 0x1007ffff).ram().share("mainram");
+ map(0x12000000, 0x120fffff).ram().share("mainram2"); // tested in self-test only?
+ map(0x14000004, 0x14000007).w("watchdog", FUNC(watchdog_timer_device::reset32_w));
+ map(0x16000000, 0x16000003).w(this, FUNC(jaguar_state::eeprom_enable_w));
+ map(0x18000000, 0x18001fff).rw(this, FUNC(jaguar_state::eeprom_data_r), FUNC(jaguar_state::eeprom_data_w)).share("nvram");
+ map(0x1fc00000, 0x1fdfffff).rom().region("maincpu", 0).share("rom");
+}
+
+
+void jaguar_state::m68020_map(address_map &map)
+{
+ map(0x000000, 0x7fffff).ram().share("sharedram");
+ map(0x800000, 0x9fffff).rom().region("maincpu", 0).share("rom");
+ map(0xa00000, 0xa1ffff).ram().share("mainram");
+ map(0xa20000, 0xa21fff).rw(this, FUNC(jaguar_state::eeprom_data_r), FUNC(jaguar_state::eeprom_data_w)).share("nvram");
+ map(0xa30000, 0xa30003).w("watchdog", FUNC(watchdog_timer_device::reset32_w));
+ map(0xa40000, 0xa40003).w(this, FUNC(jaguar_state::eeprom_enable_w));
+ map(0xb70000, 0xb70003).rw(this, FUNC(jaguar_state::misc_control_r), FUNC(jaguar_state::misc_control_w));
+ map(0xc00000, 0xdfffff).bankr("mainsndbank");
+ map(0xe00030, 0xe0003f).rw(m_ide, FUNC(vt83c461_device::read_config), FUNC(vt83c461_device::write_config));
+ map(0xe001f0, 0xe001f7).rw(m_ide, FUNC(vt83c461_device::read_cs0), FUNC(vt83c461_device::write_cs0));
+ map(0xe003f0, 0xe003f7).rw(m_ide, FUNC(vt83c461_device::read_cs1), FUNC(vt83c461_device::write_cs1));
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf007ff).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf16000, 0xf1600b).r(this, FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
+ map(0xf17000, 0xf17003).portr("SYSTEM"); // GPI03
// AM_RANGE(0xf17800, 0xf17803) AM_WRITE(latch_w) // GPI04
- AM_RANGE(0xf17c00, 0xf17c03) AM_READ_PORT("P1_P2") // GPI05
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
-ADDRESS_MAP_END
+ map(0xf17c00, 0xf17c03).portr("P1_P2"); // GPI05
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+}
@@ -1386,20 +1390,21 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(jaguar_state::gpu_map)
- AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x800000, 0xbfffff) AM_ROMBANK("gpugfxbank")
- AM_RANGE(0xc00000, 0xdfffff) AM_ROMBANK("dspsndbank")
- AM_RANGE(0xe00030, 0xe0003f) AM_DEVREADWRITE("ide", vt83c461_device, read_config, write_config)
- AM_RANGE(0xe001f0, 0xe001f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs0, write_cs0)
- AM_RANGE(0xe003f0, 0xe003f7) AM_DEVREADWRITE("ide", vt83c461_device, read_cs1, write_cs1)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf007ff) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
-ADDRESS_MAP_END
+void jaguar_state::gpu_map(address_map &map)
+{
+ map(0x000000, 0x7fffff).ram().share("sharedram");
+ map(0x800000, 0xbfffff).bankr("gpugfxbank");
+ map(0xc00000, 0xdfffff).bankr("dspsndbank");
+ map(0xe00030, 0xe0003f).rw(m_ide, FUNC(vt83c461_device::read_config), FUNC(vt83c461_device::write_config));
+ map(0xe001f0, 0xe001f7).rw(m_ide, FUNC(vt83c461_device::read_cs0), FUNC(vt83c461_device::write_cs0));
+ map(0xe003f0, 0xe003f7).rw(m_ide, FUNC(vt83c461_device::read_cs1), FUNC(vt83c461_device::write_cs1));
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf007ff).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+}
@@ -1409,92 +1414,97 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(jaguar_state::dsp_map)
- AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x800000, 0xbfffff) AM_ROMBANK("gpugfxbank")
- AM_RANGE(0xc00000, 0xdfffff) AM_ROMBANK("dspsndbank")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
- AM_RANGE(0xf1d000, 0xf1dfff) AM_READ(wave_rom_r) AM_SHARE("waverom") AM_REGION("waverom", 0)
-ADDRESS_MAP_END
+void jaguar_state::dsp_map(address_map &map)
+{
+ map(0x000000, 0x7fffff).ram().share("sharedram");
+ map(0x800000, 0xbfffff).bankr("gpugfxbank");
+ map(0xc00000, 0xdfffff).bankr("dspsndbank");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+ map(0xf1d000, 0xf1dfff).r(this, FUNC(jaguar_state::wave_rom_r)).share("waverom").region("waverom", 0);
+}
/* ToDo, these maps SHOULD be merged with the ones above */
-ADDRESS_MAP_START(jaguar_state::jag_gpu_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_MIRROR(0x200000) AM_SHARE("sharedram") AM_REGION("maincpu", 0)
- AM_RANGE(0x800000, 0xdfffff) AM_ROM AM_SHARE("cart") AM_REGION("maincpu", 0x800000)
- AM_RANGE(0xe00000, 0xe1ffff) AM_ROM AM_SHARE("rom") AM_REGION("maincpu", 0xe00000)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r, joystick_w)
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
- AM_RANGE(0xf1d000, 0xf1dfff) AM_ROM AM_SHARE("waverom") AM_REGION("waverom", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(jaguar_state::jag_dsp_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_RAM AM_SHARE("sharedram") AM_REGION("maincpu", 0)
- AM_RANGE(0x800000, 0xdfffff) AM_ROM AM_SHARE("cart") AM_REGION("maincpu", 0x800000)
- AM_RANGE(0xe00000, 0xe1ffff) AM_ROM AM_SHARE("rom") AM_REGION("maincpu", 0xe00000)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r, joystick_w)
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
- AM_RANGE(0xf1d000, 0xf1dfff) AM_ROM AM_REGION("waverom", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(jaguar_state::jagcd_gpu_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_MIRROR(0x200000) AM_SHARE("sharedram") AM_REGION("maincpu", 0)
- AM_RANGE(0x800000, 0x83ffff) AM_ROM AM_REGION("cdbios", 0)
- AM_RANGE(0xdfff00, 0xdfff3f) AM_READWRITE(butch_regs_r,butch_regs_w )
- AM_RANGE(0xe00000, 0xe1ffff) AM_ROM AM_SHARE("rom") AM_REGION("maincpu", 0xe00000)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r, joystick_w)
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
- AM_RANGE(0xf1d000, 0xf1dfff) AM_ROM AM_SHARE("waverom") AM_REGION("waverom", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(jaguar_state::jagcd_dsp_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffffff)
- AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_RAM AM_SHARE("sharedram") AM_REGION("maincpu", 0)
- AM_RANGE(0x800000, 0x83ffff) AM_ROM AM_REGION("cdbios", 0)
- AM_RANGE(0xdfff00, 0xdfff3f) AM_READWRITE(butch_regs_r,butch_regs_w )
- AM_RANGE(0xe00000, 0xe1ffff) AM_ROM AM_SHARE("rom") AM_REGION("maincpu", 0xe00000)
- AM_RANGE(0xf00000, 0xf003ff) AM_READWRITE16(tom_regs_r, tom_regs_w, 0xffffffff)
- AM_RANGE(0xf00400, 0xf005ff) AM_MIRROR(0x000200) AM_RAM AM_SHARE("gpuclut")
- AM_RANGE(0xf02100, 0xf021ff) AM_MIRROR(0x008000) AM_READWRITE(gpuctrl_r, gpuctrl_w)
- AM_RANGE(0xf02200, 0xf022ff) AM_MIRROR(0x008000) AM_READWRITE(blitter_r, blitter_w)
- AM_RANGE(0xf03000, 0xf03fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("gpuram")
- AM_RANGE(0xf10000, 0xf103ff) AM_READWRITE16(jerry_regs_r, jerry_regs_w, 0xffffffff)
- AM_RANGE(0xf14000, 0xf14003) AM_READWRITE(joystick_r, joystick_w)
- AM_RANGE(0xf1a100, 0xf1a13f) AM_READWRITE(dspctrl_r, dspctrl_w)
- AM_RANGE(0xf1a140, 0xf1a17f) AM_READWRITE(serial_r, serial_w)
- AM_RANGE(0xf1b000, 0xf1cfff) AM_RAM AM_SHARE("dspram")
- AM_RANGE(0xf1d000, 0xf1dfff) AM_ROM AM_REGION("waverom", 0)
-ADDRESS_MAP_END
+void jaguar_state::jag_gpu_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).ram().mirror(0x200000).share("sharedram").region("maincpu", 0);
+ map(0x800000, 0xdfffff).rom().share("cart").region("maincpu", 0x800000);
+ map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+ map(0xf1d000, 0xf1dfff).rom().share("waverom").region("waverom", 0);
+}
+
+void jaguar_state::jag_dsp_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).mirror(0x200000).ram().share("sharedram").region("maincpu", 0);
+ map(0x800000, 0xdfffff).rom().share("cart").region("maincpu", 0x800000);
+ map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+ map(0xf1d000, 0xf1dfff).rom().region("waverom", 0);
+}
+
+void jaguar_state::jagcd_gpu_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).ram().mirror(0x200000).share("sharedram").region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("cdbios", 0);
+ map(0xdfff00, 0xdfff3f).rw(this, FUNC(jaguar_state::butch_regs_r), FUNC(jaguar_state::butch_regs_w));
+ map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+ map(0xf1d000, 0xf1dfff).rom().share("waverom").region("waverom", 0);
+}
+
+void jaguar_state::jagcd_dsp_map(address_map &map)
+{
+ map.global_mask(0xffffff);
+ map(0x000000, 0x1fffff).mirror(0x200000).ram().share("sharedram").region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("cdbios", 0);
+ map(0xdfff00, 0xdfff3f).rw(this, FUNC(jaguar_state::butch_regs_r), FUNC(jaguar_state::butch_regs_w));
+ map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
+ map(0xf00000, 0xf003ff).rw(this, FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
+ map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
+ map(0xf02100, 0xf021ff).mirror(0x008000).rw(this, FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
+ map(0xf02200, 0xf022ff).mirror(0x008000).rw(this, FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
+ map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
+ map(0xf10000, 0xf103ff).rw(this, FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
+ map(0xf14000, 0xf14003).rw(this, FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
+ map(0xf1a100, 0xf1a13f).rw(this, FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
+ map(0xf1a140, 0xf1a17f).rw(this, FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
+ map(0xf1b000, 0xf1cfff).ram().share("dspram");
+ map(0xf1d000, 0xf1dfff).rom().region("waverom", 0);
+}
/*************************************
*