summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fcrash.cpp
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2018-03-13 07:36:43 +0100
committer Olivier Galibert <galibert@pobox.com>2018-03-14 14:07:14 +0100
commit115bb9936c5cd3faf955d7eb1e251a94e4744b7b (patch)
treef0230f547f6c750f9974c61479eef28cbe4ad571 /src/mame/drivers/fcrash.cpp
parentf155992daab88ad024cec995428a67108218b51d (diff)
Address maps macros removal, pass 1 [O. Galibert]
Diffstat (limited to 'src/mame/drivers/fcrash.cpp')
-rw-r--r--src/mame/drivers/fcrash.cpp482
1 files changed, 249 insertions, 233 deletions
diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp
index 7277bc962f5..04190d90368 100644
--- a/src/mame/drivers/fcrash.cpp
+++ b/src/mame/drivers/fcrash.cpp
@@ -663,228 +663,243 @@ uint32_t cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bi
}
-ADDRESS_MAP_START(cps_state::knightsb_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN2") /* Player 3 controls */
- AM_RANGE(0x800004, 0x800005) AM_WRITENOP // writes 0000 here
- AM_RANGE(0x800006, 0x800007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x800030, 0x800037) AM_WRITENOP //AM_WRITE(cps1_coinctrl_w) only writes bit 15
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x800180, 0x800181) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
- AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
- AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0x980000, 0x98002f) AM_WRITE(knightsb_layer_w)
- AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::dinopic_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
- AM_RANGE(0x800222, 0x800223) AM_WRITE(dinopic_layer2_w)
- AM_RANGE(0x880000, 0x880001) AM_WRITENOP // always 0
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w)
- AM_RANGE(0xf18000, 0xf19fff) AM_RAM
- AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
- AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
- AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::fcrash_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x880006, 0x880007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
- AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x890000, 0x890001) AM_WRITENOP // palette related?
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::punipic_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
- AM_RANGE(0x880000, 0x880001) AM_WRITENOP // same as 98000C
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0x980000, 0x98000f) AM_WRITE(punipic_layer_w)
- AM_RANGE(0x990000, 0x990001) AM_WRITENOP // unknown
- AM_RANGE(0x991000, 0x991017) AM_WRITENOP // unknown
- AM_RANGE(0xf18000, 0xf19fff) AM_RAM
- AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sf2m1_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
- AM_RANGE(0x800012, 0x800013) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
- AM_RANGE(0x800180, 0x800181) AM_WRITENOP // only once at boot, for 80010c
- AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
- AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
- AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0x980000, 0x9801ff) AM_WRITE(sf2m1_layer_w)
- AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sf2mdt_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
- AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
- AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
- AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
- AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
- AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+void cps_state::knightsb_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800000, 0x800001).portr("IN1"); /* Player input ports */
+ map(0x800002, 0x800003).portr("IN2"); /* Player 3 controls */
+ map(0x800004, 0x800005).nopw(); // writes 0000 here
+ map(0x800006, 0x800007).w(this, FUNC(cps_state::fcrash_soundlatch_w)); /* Sound command */
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x800030, 0x800037).nopw(); //AM_WRITE(cps1_coinctrl_w) only writes bit 15
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).ram().share("cps_b_regs"); /* CPS-B custom */
+ map(0x800180, 0x800181).nopw(); //AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ map(0x880000, 0x880001).nopw(); // unknown
+ map(0x900000, 0x93ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0x980000, 0x98002f).w(this, FUNC(cps_state::knightsb_layer_w));
+ map(0x990000, 0x990001).nopw(); // same as 880000
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::dinopic_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800000, 0x800007).portr("IN1"); /* Player input ports */
+ map(0x800006, 0x800007).w(this, FUNC(cps_state::cps1_soundlatch_w)); /* Sound command */
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x800030, 0x800037).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).w(this, FUNC(cps_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs");
+ map(0x800222, 0x800223).w(this, FUNC(cps_state::dinopic_layer2_w));
+ map(0x880000, 0x880001).nopw(); // always 0
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0x980000, 0x98000b).w(this, FUNC(cps_state::dinopic_layer_w));
+ map(0xf18000, 0xf19fff).ram();
+ map(0xf1c000, 0xf1c001).portr("IN2"); /* Player 3 controls (later games) */
+ map(0xf1c004, 0xf1c005).w(this, FUNC(cps_state::cpsq_coinctrl2_w)); /* Coin control2 (later games) */
+ map(0xf1c006, 0xf1c007).portr("EEPROMIN").portw("EEPROMOUT");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::fcrash_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800030, 0x800031).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).ram().share("cps_b_regs"); /* CPS-B custom */
+ map(0x880000, 0x880001).portr("IN1"); /* Player input ports */
+ map(0x880006, 0x880007).w(this, FUNC(cps_state::fcrash_soundlatch_w)); /* Sound command */
+ map(0x880008, 0x88000f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x890000, 0x890001).nopw(); // palette related?
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::punipic_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800000, 0x800007).portr("IN1"); /* Player input ports */
+ map(0x800006, 0x800007).w(this, FUNC(cps_state::cps1_soundlatch_w)); /* Sound command */
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x800030, 0x800037).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).w(this, FUNC(cps_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs");
+ map(0x880000, 0x880001).nopw(); // same as 98000C
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0x980000, 0x98000f).w(this, FUNC(cps_state::punipic_layer_w));
+ map(0x990000, 0x990001).nopw(); // unknown
+ map(0x991000, 0x991017).nopw(); // unknown
+ map(0xf18000, 0xf19fff).ram();
+ map(0xf1c006, 0xf1c007).portr("EEPROMIN").portw("EEPROMOUT");
+ map(0xff0000, 0xffffff).ram().share("mainram");
+}
+
+void cps_state::sf2m1_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800000, 0x800007).portr("IN1"); /* Player input ports */
+ map(0x800006, 0x800007).w(this, FUNC(cps_state::cps1_soundlatch_w)); /* Sound command */
+ map(0x800012, 0x800013).r(this, FUNC(cps_state::cps1_in2_r)); /* Buttons 4,5,6 for both players */
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x800100, 0x80013f).w(this, FUNC(cps_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs");
+ map(0x800180, 0x800181).nopw(); // only once at boot, for 80010c
+ map(0x800188, 0x80018f).w(this, FUNC(cps_state::cps1_soundlatch2_w)); /* Sound timer fade */
+ map(0x880000, 0x880001).nopw(); // unknown
+ map(0x900000, 0x93ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0x980000, 0x9801ff).w(this, FUNC(cps_state::sf2m1_layer_w));
+ map(0x990000, 0x990001).nopw(); // same as 880000
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::sf2mdt_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x708100, 0x7081ff).w(this, FUNC(cps_state::sf2mdta_layer_w));
+ map(0x70c000, 0x70c001).portr("IN1");
+ map(0x70c008, 0x70c009).portr("IN2");
+ map(0x70c018, 0x70c01f).r(this, FUNC(cps_state::cps1_hack_dsw_r));
+ map(0x70c106, 0x70c107).w(this, FUNC(cps_state::cawingbl_soundlatch_w));
+ map(0x70d000, 0x70d001).nopw(); // writes FFFF
//AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sf2b_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
- AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
- AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
- AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
- AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
- AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).ram().share("cps_b_regs"); /* CPS-B custom */
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::sf2b_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x708100, 0x7081ff).w(this, FUNC(cps_state::sf2mdta_layer_w));
+ map(0x70c000, 0x70c001).portr("IN1");
+ map(0x70c008, 0x70c009).portr("IN2");
+ map(0x70c018, 0x70c01f).r(this, FUNC(cps_state::cps1_hack_dsw_r));
+ map(0x70c106, 0x70c107).w(this, FUNC(cps_state::cawingbl_soundlatch_w));
+ map(0x70d000, 0x70d001).nopw(); // writes FFFF
//AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sgyxz_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w)
- AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
- AM_RANGE(0x890000, 0x890001) AM_WRITE(cps1_soundlatch2_w)
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
- AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::wofabl_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
- AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x880006, 0x880007) AM_WRITE(cps1_soundlatch_w)
- AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
- AM_RANGE(0x890000, 0x890001) AM_WRITE(cps1_soundlatch2_w)
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
- AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::slampic_map)
- AM_RANGE(0x000000, 0x3fffff) AM_ROM
- AM_RANGE(0x800006, 0x800007) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w)
- AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
- AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
- AM_RANGE(0x880000, 0x880001) AM_WRITENOP //AM_WRITE(cps1_soundlatch_w) /* Sound command */
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0x980000, 0x98000d) AM_WRITE(slampic_layer_w)
- AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
- AM_RANGE(0xf18000, 0xf19fff) AM_RAM
- AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
- AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
- AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xf1f000, 0xf1ffff) AM_NOP // writes 0 to range, then reads F1F6EC
- AM_RANGE(0xff0000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM
- AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
- AM_RANGE(0xdc00, 0xdc01) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(fcrash_snd_bankswitch_w)
- AM_RANGE(0xe400, 0xe400) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_0_data_w)
- AM_RANGE(0xec00, 0xec00) AM_WRITE(fcrash_msm5205_1_data_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::kodb_sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM
- AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
- AM_RANGE(0xe400, 0xe400) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe800, 0xe800) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sf2mdt_z80map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM
- AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
- AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(sf2mdt_snd_bankswitch_w)
- AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::knightsb_z80map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xcffe, 0xcfff) AM_WRITENOP // writes lots of data
- AM_RANGE(0xd000, 0xd7ff) AM_RAM
- AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
- AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(knightsb_snd_bankswitch_w)
- AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(cps_state::sgyxz_sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM
- AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
- AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
- AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
- AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read) /* Sound command */
- AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) /* Sound timer fade */
-ADDRESS_MAP_END
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs"); /* CPS-B custom */
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::sgyxz_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800030, 0x800031).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).ram().share("cps_b_regs"); /* CPS-B custom */
+ map(0x880000, 0x880001).portr("IN1"); /* Player input ports */
+ map(0x880006, 0x88000d).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x88000e, 0x88000f).w(this, FUNC(cps_state::cps1_soundlatch_w));
+ map(0x880e78, 0x880e79).r(this, FUNC(cps_state::cps1_in2_r)); /* Player 3 controls (later games) */
+ map(0x890000, 0x890001).w(this, FUNC(cps_state::cps1_soundlatch2_w));
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xf1c004, 0xf1c005).w(this, FUNC(cps_state::cpsq_coinctrl2_w)); /* Coin control2 (later games) */
+ map(0xf1c006, 0xf1c007).portr("EEPROMIN").portw("EEPROMOUT");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::wofabl_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom();
+ map(0x800030, 0x800031).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).ram().share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).ram().share("cps_b_regs"); /* CPS-B custom */
+ map(0x880000, 0x880001).portr("IN1"); /* Player input ports */
+ map(0x880006, 0x880007).w(this, FUNC(cps_state::cps1_soundlatch_w));
+ map(0x880008, 0x88000f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x880e78, 0x880e79).r(this, FUNC(cps_state::cps1_in2_r)); /* Player 3 controls (later games) */
+ map(0x890000, 0x890001).w(this, FUNC(cps_state::cps1_soundlatch2_w));
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xf1c004, 0xf1c005).w(this, FUNC(cps_state::cpsq_coinctrl2_w)); /* Coin control2 (later games) */
+ map(0xf1c006, 0xf1c007).portr("EEPROMIN").portw("EEPROMOUT");
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::slampic_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom();
+ map(0x800006, 0x800007).nopw(); //AM_WRITE(cps1_soundlatch2_w)
+ map(0x800000, 0x800007).portr("IN1"); /* Player input ports */
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r)); /* System input ports / Dip Switches */
+ map(0x800030, 0x800037).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).w(this, FUNC(cps_state::cps1_cps_a_w)).share("cps_a_regs"); /* CPS-A custom */
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs");
+ map(0x880000, 0x880001).nopw(); //AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0x980000, 0x98000d).w(this, FUNC(cps_state::slampic_layer_w));
+ map(0xf00000, 0xf0ffff).r(this, FUNC(cps_state::qsound_rom_r)); /* Slammasters protection */
+ map(0xf18000, 0xf19fff).ram();
+ map(0xf1c000, 0xf1c001).portr("IN2"); /* Player 3 controls (later games) */
+ map(0xf1c004, 0xf1c005).w(this, FUNC(cps_state::cpsq_coinctrl2_w)); /* Coin control2 (later games) */
+ map(0xf1c006, 0xf1c007).portr("EEPROMIN").portw("EEPROMOUT");
+ map(0xf1f000, 0xf1ffff).noprw(); // writes 0 to range, then reads F1F6EC
+ map(0xff0000, 0xffffff).ram();
+}
+
+void cps_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xd000, 0xd7ff).ram();
+ map(0xd800, 0xd801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
+ map(0xdc00, 0xdc01).rw("ym2", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
+ map(0xe000, 0xe000).w(this, FUNC(cps_state::fcrash_snd_bankswitch_w));
+ map(0xe400, 0xe400).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xe800, 0xe800).w(this, FUNC(cps_state::fcrash_msm5205_0_data_w));
+ map(0xec00, 0xec00).w(this, FUNC(cps_state::fcrash_msm5205_1_data_w));
+}
+
+void cps_state::kodb_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xd000, 0xd7ff).ram();
+ map(0xe000, 0xe001).rw("2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xe400, 0xe400).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xe800, 0xe800).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
+
+void cps_state::sf2mdt_z80map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xd000, 0xd7ff).ram();
+ map(0xd800, 0xd801).rw("2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xdc00, 0xdc00).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xe000, 0xe000).w(this, FUNC(cps_state::sf2mdt_snd_bankswitch_w));
+ map(0xe400, 0xe400).w(this, FUNC(cps_state::fcrash_msm5205_0_data_w));
+ map(0xe800, 0xe800).w(this, FUNC(cps_state::fcrash_msm5205_1_data_w));
+}
+
+void cps_state::knightsb_z80map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xcffe, 0xcfff).nopw(); // writes lots of data
+ map(0xd000, 0xd7ff).ram();
+ map(0xd800, 0xd801).rw("2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xdc00, 0xdc00).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xe000, 0xe000).w(this, FUNC(cps_state::knightsb_snd_bankswitch_w));
+ map(0xe400, 0xe400).w(this, FUNC(cps_state::fcrash_msm5205_0_data_w));
+ map(0xe800, 0xe800).w(this, FUNC(cps_state::fcrash_msm5205_1_data_w));
+}
+
+void cps_state::sgyxz_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xd000, 0xd7ff).ram();
+ map(0xf000, 0xf001).rw("2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xf002, 0xf002).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xf004, 0xf004).w(this, FUNC(cps_state::cps1_snd_bankswitch_w));
+ map(0xf006, 0xf006).w(this, FUNC(cps_state::cps1_oki_pin7_w)); /* controls pin 7 of OKI chip */
+ map(0xf008, 0xf008).r(m_soundlatch, FUNC(generic_latch_8_device::read)); /* Sound command */
+ map(0xf00a, 0xf00a).r(m_soundlatch2, FUNC(generic_latch_8_device::read)); /* Sound timer fade */
+}
#define CPS1_COINAGE_1 \
@@ -3077,19 +3092,20 @@ WRITE16_MEMBER(cps_state::varthb_layer_w)
m_cps_a_regs[0x06 / 2] = data;
}
-ADDRESS_MAP_START(cps_state::varthb_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1")
- AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w)
- AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r)
- AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
- AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs")
- AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
- AM_RANGE(0x800188, 0x800189) AM_WRITE(varthb_layer_w)
- AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w)
- AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
- AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
-ADDRESS_MAP_END
+void cps_state::varthb_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom();
+ map(0x800000, 0x800001).portr("IN1");
+ map(0x800006, 0x800007).w(this, FUNC(cps_state::cps1_soundlatch_w));
+ map(0x800018, 0x80001f).r(this, FUNC(cps_state::cps1_dsw_r));
+ map(0x800030, 0x800037).w(this, FUNC(cps_state::cps1_coinctrl_w));
+ map(0x800100, 0x80013f).w(this, FUNC(cps_state::cps1_cps_a_w)).share("cps_a_regs");
+ map(0x800140, 0x80017f).rw(this, FUNC(cps_state::cps1_cps_b_r), FUNC(cps_state::cps1_cps_b_w)).share("cps_b_regs");
+ map(0x800188, 0x800189).w(this, FUNC(cps_state::varthb_layer_w));
+ map(0x980000, 0x98000b).w(this, FUNC(cps_state::dinopic_layer_w));
+ map(0x900000, 0x92ffff).ram().w(this, FUNC(cps_state::cps1_gfxram_w)).share("gfxram");
+ map(0xff0000, 0xffffff).ram().share("mainram");
+}
MACHINE_CONFIG_START(cps_state::varthb)