diff options
Diffstat (limited to 'src/mame/drivers/galpani2.cpp')
-rw-r--r-- | src/mame/drivers/galpani2.cpp | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp index 81e7a951119..f5a2b596810 100644 --- a/src/mame/drivers/galpani2.cpp +++ b/src/mame/drivers/galpani2.cpp @@ -347,54 +347,55 @@ WRITE8_MEMBER(galpani2_state::galpani2_oki2_bank_w) } -ADDRESS_MAP_START(galpani2_state::galpani2_mem1) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("ram") // Work RAM - AM_RANGE(0x110000, 0x11000f) AM_RAM // ? corrupted? stack dumper on POST failure, pc+sr on gp2se - AM_RANGE(0x300000, 0x301fff) AM_RAM // ? - AM_RANGE(0x302000, 0x303fff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x304000, 0x30401f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w) +void galpani2_state::galpani2_mem1(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); // ROM + map(0x100000, 0x10ffff).ram().share("ram"); // Work RAM + map(0x110000, 0x11000f).ram(); // ? corrupted? stack dumper on POST failure, pc+sr on gp2se + map(0x300000, 0x301fff).ram(); // ? + map(0x302000, 0x303fff).ram().share("spriteram"); // Sprites + map(0x304000, 0x30401f).rw(m_kaneko_spr, FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_r), FUNC(kaneko16_sprite_device::kaneko16_sprites_regs_w)); // AM_RANGE(0x308000, 0x308001) AM_WRITENOP // ? 0 at startup // AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP // ? hblank effect ? - AM_RANGE(0x310000, 0x3101ff) AM_RAM_DEVWRITE("bg8palette", palette_device, write16) AM_SHARE("bg8palette") // ? - AM_RANGE(0x314000, 0x314001) AM_WRITENOP // ? flip backgrounds ? - AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM - AM_RANGE(0x380000, 0x387fff) AM_RAM // Palette? - AM_RANGE(0x388000, 0x38ffff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette + map(0x310000, 0x3101ff).ram().w(m_bg8palette, FUNC(palette_device::write16)).share("bg8palette"); // ? + map(0x314000, 0x314001).nopw(); // ? flip backgrounds ? + map(0x318000, 0x318001).rw(this, FUNC(galpani2_state::galpani2_eeprom_r), FUNC(galpani2_state::galpani2_eeprom_w)); // EEPROM + map(0x380000, 0x387fff).ram(); // Palette? + map(0x388000, 0x38ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette // AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP // ? at startup of service mode - AM_RANGE(0x400000, 0x43ffff) AM_RAM AM_SHARE("bg8.0") // Background 0 - AM_RANGE(0x440000, 0x440001) AM_RAM AM_SHARE("bg8_scrolly.0") // Background 0 Scroll Y - AM_RANGE(0x480000, 0x480001) AM_RAM AM_SHARE("bg8_scrollx.0") // Background 0 Scroll X + map(0x400000, 0x43ffff).ram().share("bg8.0"); // Background 0 + map(0x440000, 0x440001).ram().share("bg8_scrolly.0"); // Background 0 Scroll Y + map(0x480000, 0x480001).ram().share("bg8_scrollx.0"); // Background 0 Scroll X // AM_RANGE(0x4c0000, 0x4c0001) AM_WRITENOP // ? 0 at startup only - AM_RANGE(0x500000, 0x53ffff) AM_RAM AM_SHARE("bg8.1") // Background 1 - AM_RANGE(0x540000, 0x540001) AM_RAM AM_SHARE("bg8_scrolly.1") // Background 1 Scroll Y - AM_RANGE(0x580000, 0x580001) AM_RAM AM_SHARE("bg8_scrollx.1") // Background 1 Scroll X + map(0x500000, 0x53ffff).ram().share("bg8.1"); // Background 1 + map(0x540000, 0x540001).ram().share("bg8_scrolly.1"); // Background 1 Scroll Y + map(0x580000, 0x580001).ram().share("bg8_scrollx.1"); // Background 1 Scroll X // AM_RANGE(0x5c0000, 0x5c0001) AM_WRITENOP // ? 0 at startup only - AM_RANGE(0x540572, 0x540573) AM_READNOP // ? galpani2 at F0A4 - AM_RANGE(0x54057a, 0x54057b) AM_READNOP // ? galpani2 at F148 - AM_RANGE(0x54059a, 0x54059b) AM_READNOP // ? galpani2 at F0A4 - AM_RANGE(0x5405a2, 0x5405a3) AM_READNOP // ? galpani2 at F0A4 and F148 - AM_RANGE(0x5405aa, 0x5405ab) AM_READNOP // ? galpani2 at F0A4 and F148 - AM_RANGE(0x5405b2, 0x5405b3) AM_READNOP // ? galpani2 at F0A4 and F148 - AM_RANGE(0x5405ba, 0x5405bb) AM_READNOP // ? galpani2 at F0A4 and F148 - AM_RANGE(0x5405c2, 0x5405c3) AM_READNOP // ? galpani2 at F0A4 and F148 - AM_RANGE(0x5405ca, 0x5405cb) AM_READNOP // ? galpani2 at F148 - - AM_RANGE(0x600000, 0x600001) AM_NOP // Watchdog - AM_RANGE(0x640000, 0x640001) AM_WRITE8(galpani2_mcu_init_w, 0x00ff ) // ? 0 before resetting and at startup, Reset mcu ? - AM_RANGE(0x680000, 0x680001) AM_WRITE8(galpani2_mcu_nmi1_w, 0x00ff) // ? 0 -> 1 -> 0 (lev 5) / 0 -> $10 -> 0 - AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE8(galpani2_coin_lockout_w, 0xff00 ) // Coin + Card Lockout - AM_RANGE(0x780000, 0x780001) AM_READ_PORT("DSW1_P1") - AM_RANGE(0x780002, 0x780003) AM_READ_PORT("DSW2_P2") - AM_RANGE(0x780004, 0x780005) AM_READ_PORT("SPECIAL") - AM_RANGE(0x780006, 0x780007) AM_READ_PORT("SERVICE") - AM_RANGE(0xc00000, 0xc00001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff ) // 2 x OKIM6295 - AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff ) // - AM_RANGE(0xc80000, 0xc80001) AM_WRITE8(galpani2_oki1_bank_w, 0x00ff ) // - AM_RANGE(0xcc0000, 0xcc0001) AM_WRITE8(galpani2_oki2_bank_w, 0x00ff ) // -ADDRESS_MAP_END + map(0x540572, 0x540573).nopr(); // ? galpani2 at F0A4 + map(0x54057a, 0x54057b).nopr(); // ? galpani2 at F148 + map(0x54059a, 0x54059b).nopr(); // ? galpani2 at F0A4 + map(0x5405a2, 0x5405a3).nopr(); // ? galpani2 at F0A4 and F148 + map(0x5405aa, 0x5405ab).nopr(); // ? galpani2 at F0A4 and F148 + map(0x5405b2, 0x5405b3).nopr(); // ? galpani2 at F0A4 and F148 + map(0x5405ba, 0x5405bb).nopr(); // ? galpani2 at F0A4 and F148 + map(0x5405c2, 0x5405c3).nopr(); // ? galpani2 at F0A4 and F148 + map(0x5405ca, 0x5405cb).nopr(); // ? galpani2 at F148 + + map(0x600000, 0x600001).noprw(); // Watchdog + map(0x640001, 0x640001).w(this, FUNC(galpani2_state::galpani2_mcu_init_w)); // ? 0 before resetting and at startup, Reset mcu ? + map(0x680001, 0x680001).w(this, FUNC(galpani2_state::galpani2_mcu_nmi1_w)); // ? 0 -> 1 -> 0 (lev 5) / 0 -> $10 -> 0 + map(0x6c0000, 0x6c0000).w(this, FUNC(galpani2_state::galpani2_coin_lockout_w)); // Coin + Card Lockout + map(0x780000, 0x780001).portr("DSW1_P1"); + map(0x780002, 0x780003).portr("DSW2_P2"); + map(0x780004, 0x780005).portr("SPECIAL"); + map(0x780006, 0x780007).portr("SERVICE"); + map(0xc00001, 0xc00001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // 2 x OKIM6295 + map(0xc40001, 0xc40001).rw(m_oki2, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // + map(0xc80001, 0xc80001).w(this, FUNC(galpani2_state::galpani2_oki1_bank_w)); // + map(0xcc0001, 0xcc0001).w(this, FUNC(galpani2_state::galpani2_oki2_bank_w)); // +} /*************************************************************************** @@ -415,20 +416,21 @@ WRITE16_MEMBER(galpani2_state::subdatabank_select_w) } -ADDRESS_MAP_START(galpani2_state::galpani2_mem2) - AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_SHARE("ram2") // Work RAM - AM_RANGE(0x400000, 0x5fffff) AM_RAM AM_SHARE("bg15") // bg15 +void galpani2_state::galpani2_mem2(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); // ROM + map(0x100000, 0x13ffff).ram().share("ram2"); // Work RAM + map(0x400000, 0x5fffff).ram().share("bg15"); // bg15 // AM_RANGE(0x600000, 0x600001) AM_NOP // ? 0 at startup only // AM_RANGE(0x640000, 0x640001) AM_WRITENOP // ? 0 at startup only // AM_RANGE(0x680000, 0x680001) AM_WRITENOP // ? 0 at startup only // AM_RANGE(0x6c0000, 0x6c0001) AM_WRITENOP // ? 0 at startup only - AM_RANGE(0x700000, 0x700001) AM_NOP // Watchdog + map(0x700000, 0x700001).noprw(); // Watchdog // AM_RANGE(0x740000, 0x740001) AM_WRITENOP // ? Reset mcu - AM_RANGE(0x780000, 0x780001) AM_WRITE8(galpani2_mcu_nmi2_w, 0x00ff) // ? 0 -> 1 -> 0 (lev 5) - AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(subdatabank_select_w) // Rom Bank - AM_RANGE(0x800000, 0xffffff) AM_ROMBANK("subdatabank") -ADDRESS_MAP_END + map(0x780001, 0x780001).w(this, FUNC(galpani2_state::galpani2_mcu_nmi2_w)); // ? 0 -> 1 -> 0 (lev 5) + map(0x7c0000, 0x7c0001).w(this, FUNC(galpani2_state::subdatabank_select_w)); // Rom Bank + map(0x800000, 0xffffff).bankr("subdatabank"); +} /*************************************************************************** |