summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2017-01-02 06:02:46 +0100
committer angelosa <salese_corp_ltd@email.it>2017-01-02 06:02:46 +0100
commite94ee9339a438d6051a152ae24b31d407e7324f9 (patch)
treecba5ad5d108aa7afee573a5a06a92efa365b9622
parent7c9934c5c83f23c3695e561c3cf9f8b1761afd4b (diff)
Conflicts (nw)
-rw-r--r--src/mame/drivers/aerofgt.cpp74
-rw-r--r--src/mame/drivers/gsword.cpp449
-rw-r--r--src/mame/drivers/rm380z.cpp2
-rw-r--r--src/mame/drivers/rohga.cpp225
-rw-r--r--src/mame/includes/aerofgt.h15
-rw-r--r--src/mame/video/aerofgt.cpp41
6 files changed, 329 insertions, 477 deletions
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 9846b97e08a..3fd5d2b8953 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -67,36 +67,21 @@ Verification still needed for the other PCBs.
#include "sound/3812intf.h"
#include "includes/aerofgt.h"
-WRITE16_MEMBER(aerofgt_state::sound_command_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_pending_command = 1;
- m_soundlatch->write(space, offset, data & 0xff);
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- }
-}
-WRITE16_MEMBER(aerofgt_state::turbofrc_sound_command_w)
+WRITE8_MEMBER(aerofgt_state::sound_command_w)
{
- if (ACCESSING_BITS_8_15)
- {
- m_pending_command = 1;
- m_soundlatch->write(space, offset, (data >> 8) & 0xff);
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- }
+ m_pending_command = 1;
+ m_soundlatch->write(space, 0, data);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-WRITE16_MEMBER(aerofgt_state::aerfboot_soundlatch_w)
+WRITE8_MEMBER(aerofgt_state::aerfboot_soundlatch_w)
{
- if(ACCESSING_BITS_8_15)
- {
- m_soundlatch->write(space, 0, (data >> 8) & 0xff);
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- }
+ m_soundlatch->write(space, 0, data);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-READ16_MEMBER(aerofgt_state::pending_command_r)
+READ8_MEMBER(aerofgt_state::pending_command_r)
{
return m_pending_command;
}
@@ -111,7 +96,6 @@ WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
membank("bank1")->set_entry(data & 0x03);
}
-
WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
{
m_oki->set_rom_bank(data & 3);
@@ -153,10 +137,10 @@ static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
+ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE8(pspikes_palette_bank_w, 0x00ff)
+ AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE8(pspikes_gfxbank_w, 0x00ff)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(pending_command_r, sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READWRITE8(pending_command_r, sound_command_w, 0x00ff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
@@ -190,7 +174,7 @@ static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0")
- AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
+ AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE8(pspikes_gfxbank_w, 0x00ff)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0xfff006, 0xfff007) AM_NOP
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(spikes91_lookup_w)
@@ -204,8 +188,8 @@ static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
+ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE8(pspikes_palette_bank_w, 0x00ff)
+ AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE8(pspikes_gfxbank_w, 0x00ff)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
AM_RANGE(0xfff004, 0xfff005) AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0xfff006, 0xfff007) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -223,11 +207,11 @@ static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
- AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(karatblz_gfxbank_w)
+ AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE8(karatblz_gfxbank_w, 0xff00)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("IN2")
- AM_RANGE(0x0ff006, 0x0ff007) AM_READ_PORT("IN3") AM_WRITE(sound_command_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READ_PORT("IN3") AM_WRITE8(sound_command_w, 0x00ff)
AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrollx_w)
- AM_RANGE(0x0ff00a, 0x0ff00b) AM_READ(pending_command_r) AM_WRITE(aerofgt_bg1scrolly_w)
+ AM_RANGE(0x0ff00a, 0x0ff00b) AM_READ8(pending_command_r, 0x00ff) AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(aerofgt_bg2scrolly_w)
ADDRESS_MAP_END
@@ -240,10 +224,10 @@ static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffd1ff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffe000, 0xffe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(spinlbrk_gfxbank_w)
+ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE8(spinlbrk_gfxbank_w, 0x00ff)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
- AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_WRITE8(sound_command_w, 0x00ff)
// AM_RANGE(0xfff008, 0xfff009) - read when analog inputs are enabled
// AM_RANGE(0xfff00a, 0xfff00b) /
ADDRESS_MAP_END
@@ -263,11 +247,11 @@ static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0ff006, 0x0ff007) AM_READ(pending_command_r) AM_WRITE(aerofgt_bg2scrolly_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READ8(pending_command_r, 0x00ff) AM_WRITE(aerofgt_bg2scrolly_w)
AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("IN2")
AM_RANGE(0x0ff008, 0x0ff00b) AM_WRITE(turbofrc_gfxbank_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITENOP /* related to bg2 (written together with the scroll registers) */
- AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w)
+ AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE8(sound_command_w, 0xff00)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
@@ -283,10 +267,10 @@ static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0")
AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") AM_WRITE(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0fe006, 0x0fe007) AM_READ(pending_command_r) AM_WRITE(aerofgt_bg2scrolly_w)
+ AM_RANGE(0x0fe006, 0x0fe007) AM_READ8(pending_command_r, 0x00ff) AM_WRITE(aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe009) AM_READ_PORT("DSW2")
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE(turbofrc_gfxbank_w)
- AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE(turbofrc_sound_command_w)
+ AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE8(sound_command_w, 0xff00)
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_SHARE("rasterram") /* used only for the scroll registers */
ADDRESS_MAP_END
@@ -309,9 +293,9 @@ static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffffa4, 0xffffa5) AM_READ_PORT("SYSTEM")
AM_RANGE(0xffffa6, 0xffffa7) AM_READ_PORT("DSW1")
AM_RANGE(0xffffa8, 0xffffa9) AM_READ_PORT("DSW2")
- AM_RANGE(0xffffac, 0xffffad) AM_READ(pending_command_r) AM_WRITENOP /* ??? */
+ AM_RANGE(0xffffac, 0xffffad) AM_READ8(pending_command_r, 0x00ff) AM_WRITENOP /* ??? */
AM_RANGE(0xffffae, 0xffffaf) AM_READ_PORT("DSW3")
- AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w)
+ AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE8(sound_command_w, 0x00ff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
@@ -332,7 +316,7 @@ static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fe004, 0x0fe005) AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0x0fe006, 0x0fe007) AM_WRITE(aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE(turbofrc_gfxbank_w)
- AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE(aerfboot_soundlatch_w)
+ AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE8(aerfboot_soundlatch_w, 0xff00)
AM_RANGE(0x0fe010, 0x0fe011) AM_WRITENOP
AM_RANGE(0x0fe012, 0x0fe013) AM_WRITENOP
AM_RANGE(0x0fe400, 0x0fe401) AM_WRITENOP
@@ -380,10 +364,10 @@ static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w)
+ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE8(pspikes_palette_bank_w, 0x00ff)
+ AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE8(pspikes_gfxbank_w, 0x00ff)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_READNOP AM_WRITE(sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READNOP AM_WRITE8(sound_command_w, 0x00ff)
AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE(wbbc97_bitmap_enable_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp
index 3232cf2eb29..7e7c2234c43 100644
--- a/src/mame/drivers/gsword.cpp
+++ b/src/mame/drivers/gsword.cpp
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Steve Ellenoff,Jarek Parchanski,Vas Crabb
+// copyright-holders:Steve Ellenoff,Jarek Parchanski
/*
Great Swordsman (Taito) 1984
Joshi Volleyball (Taito) 1983
@@ -9,9 +9,9 @@ TODO:
-joshi volleyball
-The incomplete graphic
-The implementation of DAC sound ?
- -MCU hookup is incomplete
+ -MCU code DUMP and emulation
-The true interrupt circuit of SUB CPU
- -unknown ROM (BANK ROM of sub-cpu ?)
+ -unknown ROM (BANK ROM of sub-cpu ? )
Credits:
- Steve Ellenoff: Original emulation and Mame driver
@@ -146,7 +146,6 @@ reg: 0->1 (main->2nd) / : (1->0) 2nd->main :
#include "emu.h"
#include "includes/gsword.h"
-#include "cpu/mcs48/mcs48.h"
#include "cpu/z80/z80.h"
#include "machine/i8255.h"
#include "machine/tait8741.h"
@@ -167,48 +166,20 @@ int gsword_state::coins_in(void)
}
#endif
-void gsword_state_base::machine_start()
-{
- save_item(NAME(m_fake8910_0));
- save_item(NAME(m_fake8910_1));
-}
-
-void gsword_state_base::machine_reset()
-{
-}
-
-WRITE8_MEMBER(gsword_state_base::ay8910_control_port_0_w)
-{
- m_ay0->address_w(space,offset,data);
- m_fake8910_0 = data;
-}
-WRITE8_MEMBER(gsword_state_base::ay8910_control_port_1_w)
-{
- m_ay1->address_w(space,offset,data);
- m_fake8910_1 = data;
-}
-
-READ8_MEMBER(gsword_state_base::fake_0_r)
-{
- return m_fake8910_0+1;
-}
-READ8_MEMBER(gsword_state_base::fake_1_r)
-{
- return m_fake8910_1+1;
-}
+#include "cpu/z80/z80.h"
/* CPU 2 memory hack */
/* (402E) timeout upcount must be under 0AH */
/* (4004,4005) clear down counter , if (4004,4005)==0 then (402E)=0 */
-READ8_MEMBER(gsword_state::hack_r)
+READ8_MEMBER(gsword_state::gsword_hack_r)
{
- u8 const data = m_cpu2_ram[offset + 4];
+ uint8_t data = m_cpu2_ram[offset + 4];
/*if(offset==1)osd_printf_debug("CNT %02X%02X\n",m_cpu2_ram[5],m_cpu2_ram[4]); */
/* speedup timeout count down */
- if (m_protect_hack)
+ if(m_protect_hack)
{
switch(offset)
{
@@ -219,55 +190,7 @@ READ8_MEMBER(gsword_state::hack_r)
return data;
}
-WRITE8_MEMBER(gsword_state::nmi_set_w)
-{
-/* osd_printf_debug("AY write %02X\n",data);*/
-
- m_protect_hack = (data & 0x80) ? false : true;
-#if 0
- /* An actual circuit isn't known. */
- /* write ff,02,ff,fe, 17 x 0d,0f */
- m_nmi_enable = ((data>>7) & (data&1) &1) == 0;
-
-
-#else
- switch(data)
- {
- case 0xff:
- m_nmi_enable = false; /* NMI must be disabled */
- break;
- case 0x02:
- m_nmi_enable = false; /* ANY */
- break;
- case 0x0d:
- m_nmi_enable = true;
- break;
- case 0x0f:
- m_nmi_enable = true; /* NMI must be enabled */
- break;
- case 0xfe:
- m_nmi_enable = true; /* NMI must be enabled */
- break;
- }
- /* bit1= nmi disable , for ram check */
- logerror("NMI control %02x\n",data);
-#endif
-}
-
-WRITE8_MEMBER(gsword_state::sound_command_w)
-{
- m_soundlatch->write(space, 0, data);
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
-}
-
-WRITE8_MEMBER(gsword_state::adpcm_data_w)
-{
- m_msm->data_w(data & 0x0f); // bit 0..3
- m_msm->reset_w(BIT(data, 5)); // bit 5
- m_msm->vclk_w(BIT(data, 4)); // bit 4
-}
-
-READ8_MEMBER(gsword_state::i8741_2_r )
+READ8_MEMBER(gsword_state::gsword_8741_2_r )
{
switch (offset)
{
@@ -284,7 +207,7 @@ READ8_MEMBER(gsword_state::i8741_2_r )
return 0;
}
-READ8_MEMBER(gsword_state::i8741_3_r )
+READ8_MEMBER(gsword_state::gsword_8741_3_r )
{
switch (offset)
{
@@ -300,166 +223,99 @@ READ8_MEMBER(gsword_state::i8741_3_r )
return 0;
}
-INTERRUPT_GEN_MEMBER(gsword_state::sound_interrupt)
-{
- if (m_nmi_enable)
- device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
-}
-
-DRIVER_INIT_MEMBER(gsword_state, gsword)
-{
-#if 0
- uint8_t *ROM2 = memregion("sub")->base();
- ROM2[0x1da] = 0xc3; /* patch for rom self check */
-
- ROM2[0x71e] = 0; /* patch for sound protection or time out function */
- ROM2[0x71f] = 0;
-#endif
-#if 1
- /* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
-#endif
-}
-
-DRIVER_INIT_MEMBER(gsword_state, gsword2)
-{
-#if 0
- uint8_t *ROM2 = memregion("sub")->base();
-
- ROM2[0x1da] = 0xc3; /* patch for rom self check */
- ROM2[0x726] = 0; /* patch for sound protection or time out function */
- ROM2[0x727] = 0;
-#endif
-#if 1
- /* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
-#endif
-}
-
void gsword_state::machine_start()
{
- gsword_state_base::machine_start();
-
- save_item(NAME(m_protect_hack));
+ save_item(NAME(m_fake8910_0));
+ save_item(NAME(m_fake8910_1));
save_item(NAME(m_nmi_enable));
+ save_item(NAME(m_protect_hack));
}
void gsword_state::machine_reset()
{
- gsword_state_base::machine_reset();
-
- m_protect_hack = false;
- m_nmi_enable = false;
-}
-
-
-READ8_MEMBER(josvolly_state::mcu1_p1_r)
-{
- // the two MCUs appear to have port 1 tied together
- return m_mcu1_p1 & m_mcu2_p1;
-}
-
-READ8_MEMBER(josvolly_state::mcu1_p2_r)
-{
- // p27 needs to float high for the MCU to start in the right mode
- // p20 and p21 drive the test inputs of the other MCU
- // if DIPSW1:8 is allowed to pull p27 low, the game won't even boot to test mode
- // DIPSW1:1 and DIPSW1:2 are shown in test mode, but switching them on will break comms
- return 0x80U | ioport("DSW1")->read();
-}
+ m_coins = 0;
-READ8_MEMBER(josvolly_state::mcu2_p1_r)
-{
- // the two MCUs appear to have port 1 tied together
- return m_mcu1_p1 & m_mcu2_p1;
+ /* snd CPU mask NMI during reset phase */
+ m_nmi_enable = 0;
+ m_protect_hack = 0;
}
-READ8_MEMBER(josvolly_state::mcu2_p2_r)
+INTERRUPT_GEN_MEMBER(gsword_state::gsword_snd_interrupt)
{
- // p27 needs to be tied low for the MCU to start in the right mode
- return 0x7fU & ioport("DSW2")->read();
+ if(m_nmi_enable)
+ device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-READ8_MEMBER(josvolly_state::mcu2_test_r)
+WRITE8_MEMBER(gsword_state::nmi_set_w)
{
- // TEST0 and TEST1 are driven by P20 and P21 on the other MCU
- return BIT(m_mcu1_p2, offset);
-}
+/* osd_printf_debug("AY write %02X\n",data);*/
-WRITE8_MEMBER(josvolly_state::cpu2_nmi_enable_w)
-{
- m_cpu2_nmi_enable = true;
-}
+ m_protect_hack = (data&0x80) ? 0 : 1;
+#if 0
+ /* An actual circuit isn't known. */
+ /* write ff,02,ff,fe, 17 x 0d,0f */
+ m_nmi_enable = ((data>>7) & (data&1) &1) == 0;
-WRITE8_MEMBER(josvolly_state::cpu2_irq_clear_w)
-{
- m_audiocpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
-}
-WRITE8_MEMBER(josvolly_state::mcu1_p1_w)
-{
- if (data != m_mcu1_p1)
+#else
+ switch(data)
{
- logerror("mcu1 p1 = 0x%02x\n", data);
- m_mcu1_p1 = data;
+ case 0xff:
+ m_nmi_enable = 0; /* NMI must be disabled */
+ break;
+ case 0x02:
+ m_nmi_enable = 0; /* ANY */
+ break;
+ case 0x0d:
+ m_nmi_enable = 1;
+ break;
+ case 0x0f:
+ m_nmi_enable = 1; /* NMI must be enabled */
+ break;
+ case 0xfe:
+ m_nmi_enable = 1; /* NMI must be enabled */
+ break;
}
+ /* bit1= nmi disable , for ram check */
+ logerror("NMI control %02x\n",data);
+#endif
}
-WRITE8_MEMBER(josvolly_state::mcu1_p2_w)
+WRITE8_MEMBER(gsword_state::ay8910_control_port_0_w)
{
- if (data != m_mcu1_p2)
- {
- logerror("mcu1 p2 = 0x%02x\n", data);
-
- // the second CPU somehow gets an NMI when data is available
- // it's probably implemented by the logic arrays somehow
- // this is just a hacky guess at how it works
- if (m_cpu2_nmi_enable && (data & (data ^ m_mcu1_p2) & 0x01))
- {
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- m_cpu2_nmi_enable = false;
- }
-
- m_mcu1_p2 = data;
- }
+ m_ay0->address_w(space,offset,data);
+ m_fake8910_0 = data;
}
-
-WRITE8_MEMBER(josvolly_state::mcu2_p1_w)
+WRITE8_MEMBER(gsword_state::ay8910_control_port_1_w)
{
- if (data != m_mcu2_p1)
- {
- logerror("mcu2 p1 = 0x%02x\n", data);
- m_mcu2_p1 = data;
- }
+ m_ay1->address_w(space,offset,data);
+ m_fake8910_1 = data;
}
-WRITE8_MEMBER(josvolly_state::mcu2_p2_w)
+READ8_MEMBER(gsword_state::fake_0_r)
{
- logerror("mcu2 p2 = 0x%02x\n", data);
+ return m_fake8910_0+1;
}
-
-void josvolly_state::machine_start()
+READ8_MEMBER(gsword_state::fake_1_r)
{
- gsword_state_base::machine_start();
-
- save_item(NAME(m_cpu2_nmi_enable));
- save_item(NAME(m_mcu1_p1));
- save_item(NAME(m_mcu1_p2));
- save_item(NAME(m_mcu2_p1));
+ return m_fake8910_1+1;
}
-void josvolly_state::machine_reset()
+WRITE8_MEMBER(gsword_state::gsword_adpcm_data_w)
{
- gsword_state_base::machine_reset();
+ m_msm->data_w (data & 0x0f); /* bit 0..3 */
+ m_msm->reset_w(BIT(data, 5)); /* bit 5 */
+ m_msm->vclk_w(BIT(data, 4)); /* bit 4 */
+}
- m_cpu2_nmi_enable = false;
- m_mcu1_p1 = 0xffU;
- m_mcu1_p2 = 0xffU;
- m_mcu2_p1 = 0xffU;
+WRITE8_MEMBER(gsword_state::adpcm_soundcommand_w)
+{
+ m_soundlatch->write(space, 0, data);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state_base )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state )
AM_RANGE(0x0000, 0x8fff) AM_ROM
AM_RANGE(0x9000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa37f) AM_RAM
@@ -473,16 +329,21 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state_base )
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
ADDRESS_MAP_END
-
static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7e, 0x7f) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_0, write_0)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( josvolly_cpu1_io_map, AS_IO, 8, gsword_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x7e, 0x7f) AM_DEVREADWRITE("josvolly_8741", josvolly8741_4pack_device, read_0, write_0)
+ADDRESS_MAP_END
+
+//
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("cpu2_ram")
- AM_RANGE(0x6000, 0x6000) AM_WRITE(sound_command_w)
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(adpcm_soundcommand_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8, gsword_state )
@@ -494,58 +355,44 @@ static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8, gsword_state )
AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(fake_1_r, ay8910_control_port_1_w)
AM_RANGE(0x81, 0x81) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w)
-
+//
AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */
AM_RANGE(0xa0, 0xa0) AM_WRITENOP /* ?? */
- AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* watchdog? */
+ AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* watch dog ?*/
ADDRESS_MAP_END
+//
+
static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8000) AM_WRITE(adpcm_data_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(gsword_adpcm_data_w)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( josvolly_cpu1_io_map, AS_IO, 8, josvolly_state )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x7e, 0x7f) AM_DEVREADWRITE("mcu1", upi41_cpu_device, upi41_master_r, upi41_master_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( josvolly_cpu2_map, AS_PROGRAM, 8, josvolly_state )
+static ADDRESS_MAP_START( josvolly_cpu2_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("cpu2_ram")
/* NEC D8255A with silkscreen removed and replaced with "AA 007" */
- AM_RANGE(0x8000, 0x8003) AM_DEVREADWRITE("aa_007", i8255_device, read, write)
+ AM_RANGE(0x8000, 0x8003) AM_DEVREADWRITE("josvolly_aa_007", i8255_device, read, write)
// AM_RANGE(0x6000, 0x6000) AM_WRITE(adpcm_soundcommand_w)
- AM_RANGE(0xA000, 0xA001) AM_DEVREADWRITE("mcu2", upi41_cpu_device, upi41_master_r, upi41_master_w)
+ AM_RANGE(0xA000, 0xA001) AM_DEVREADWRITE("josvolly_8741", josvolly8741_4pack_device, read_1, write_1)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, josvolly_state )
+static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(fake_0_r, ay8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w)
AM_RANGE(0x40, 0x40) AM_READWRITE(fake_1_r, ay8910_control_port_1_w)
AM_RANGE(0x41, 0x41) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(cpu2_nmi_enable_w);
- AM_RANGE(0xC1, 0xC1) AM_WRITE(cpu2_irq_clear_w);
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( josvolly_mcu1_io_map, AS_IO, 8, josvolly_state )
- AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(mcu1_p1_r, mcu1_p1_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(mcu1_p2_r, mcu1_p2_w)
-ADDRESS_MAP_END
+ AM_RANGE(0x81, 0x81) AM_DEVWRITE("josvolly_8741", josvolly8741_4pack_device, nmi_enable_w)
+ AM_RANGE(0xC1, 0xC1) AM_NOP // irq clear
-static ADDRESS_MAP_START( josvolly_mcu2_io_map, AS_IO, 8, josvolly_state )
- AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(mcu2_p1_r, mcu2_p1_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(mcu2_p2_r, mcu2_p2_w)
- AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(mcu2_test_r)
ADDRESS_MAP_END
-
static INPUT_PORTS_START( gsword )
PORT_START("IN0") /* IN0 (8741-2 port1?) */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
@@ -692,55 +539,44 @@ static INPUT_PORTS_START( josvolly )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("DSW1") /* DSW1 */
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIPSW1:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIPSW1:2")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x0c, 0x0c, "982E" ) PORT_DIPLOCATION("DIPSW1:3,4")
+ PORT_DIPNAME( 0x0c, 0x00, "DIP1-0c(982E)" )
PORT_DIPSETTING( 0x0c, "0" )
PORT_DIPSETTING( 0x08, "1" )
- PORT_DIPSETTING( 0x04, "2" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x30, 0x30, "982A" ) PORT_DIPLOCATION("DIPSW1:5,6")
- PORT_DIPSETTING( 0x00, "60" )
- PORT_DIPSETTING( 0x10, "90" )
- PORT_DIPSETTING( 0x20, "120" )
- PORT_DIPSETTING( 0x30, "150" )
- PORT_DIPNAME( 0x40, 0x40, "TEST_MODE" ) PORT_DIPLOCATION("DIPSW1:7")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x0c, "3" )
+ PORT_DIPNAME( 0x30, 0x00, "DIP1-30(982A)" )
+ PORT_DIPSETTING( 0x30, "96H" )
+ PORT_DIPSETTING( 0x20, "78H" )
+ PORT_DIPSETTING( 0x10, "5AH" )
+ PORT_DIPSETTING( 0x00, "3CH" )
+ PORT_DIPNAME( 0x40, 0x40, "TEST_MODE" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIPSW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "DIP1-80(982C)" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSW2") /* DSW2 */
- PORT_DIPNAME( 0x01, 0x01, "982C" ) PORT_DIPLOCATION("DIPSW2:8")
- PORT_DIPSETTING( 0x01, "0" )
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DIPSW2:7")
- PORT_DIPSETTING( 0x02, DEF_STR( Upright ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
- PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DIPSW2:6,5")
+// PORT_DIPNAME( 0x01, 0x00, "DSW2-0" )
+// PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+// PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+// PORT_DIPNAME( 0x02, 0x00, "DSW2-1($9831)" )
+// PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+// PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0C, 0x0C, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DIPSW2:4,3")
+ PORT_DIPSETTING( 0x0C, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
- PORT_DIPNAME( 0x40, 0x40, "9827" ) PORT_DIPLOCATION("DIPSW2:2")
- PORT_DIPSETTING( 0x40, "1" )
- PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIPSW2:1")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+// PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
-
static const gfx_layout gsword_text =
{
8,8, /* 8x8 characters */
@@ -800,7 +636,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_CPU_ADD("sub", Z80, XTAL_18MHz/6) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
MCFG_CPU_IO_MAP(cpu2_io_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(gsword_state, sound_interrupt, 4*60)
+ MCFG_CPU_PERIODIC_INT_DRIVER(gsword_state, gsword_snd_interrupt, 4*60)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_18MHz/6) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu3_map)
@@ -810,7 +646,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_TAITO8741_ADD("taito8741")
MCFG_TAITO8741_MODES(TAITO8741_MASTER,TAITO8741_SLAVE,TAITO8741_PORT,TAITO8741_PORT)
MCFG_TAITO8741_CONNECT(1,0,0,0)
- MCFG_TAITO8741_PORT_HANDLERS(IOPORT("DSW2"),IOPORT("DSW1"),READ8(gsword_state,i8741_2_r),READ8(gsword_state,i8741_3_r))
+ MCFG_TAITO8741_PORT_HANDLERS(IOPORT("DSW2"),IOPORT("DSW1"),READ8(gsword_state,gsword_8741_2_r),READ8(gsword_state,gsword_8741_3_r))
#if 1
/* to MCU timeout champbbj */
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -847,32 +683,27 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( josvolly, josvolly_state )
+static MACHINE_CONFIG_START( josvolly, gsword_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, 18000000/4) /* ? */
+ MCFG_CPU_ADD("maincpu", Z80, 18000000/6) /* ? */
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_IO_MAP(josvolly_cpu1_io_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(josvolly_state, irq0_line_hold, 2*60)
+ MCFG_CPU_PERIODIC_INT_DRIVER(gsword_state, irq0_line_hold, 2*60)
MCFG_CPU_ADD("audiocpu", Z80, 12000000/4) /* ? */
MCFG_CPU_PROGRAM_MAP(josvolly_cpu2_map)
MCFG_CPU_IO_MAP(josvolly_cpu2_io_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", josvolly_state, irq0_line_assert)
-
- MCFG_DEVICE_ADD("mcu1", I8741, 18000000/2) /* ? */
- MCFG_CPU_IO_MAP(josvolly_mcu1_io_map)
-
- MCFG_DEVICE_ADD("mcu2", I8741, 12000000/2) /* ? */
- MCFG_CPU_IO_MAP(josvolly_mcu2_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", gsword_state, irq0_line_hold)
- MCFG_DEVICE_ADD("aa_007", I8255, 0)
+ MCFG_DEVICE_ADD("josvolly_aa_007", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1")) // 1PL
- MCFG_I8255_IN_PORTB_CB(IOPORT("IN2")) // 2PL / ACK
+ MCFG_I8255_IN_PORTB_CB(IOPORT("IN2")) // 2PL / ACK
MCFG_I8255_IN_PORTC_CB(IOPORT("IN0")) // START
- // the second MCU polls the first MCU's outputs, so it needs tight sync
- MCFG_QUANTUM_PERFECT_CPU("mcu2")
+ MCFG_JOSVOLLY8741_ADD("josvolly_8741")
+ MCFG_JOSVOLLY8741_CONNECT(1,0,0,0)
+ MCFG_JOSVOLLY8741_PORT_HANDLERS(IOPORT("DSW1"),IOPORT("DSW2"),IOPORT("DSW1"),IOPORT("DSW2"))
/* video hardware */
@@ -881,13 +712,13 @@ static MACHINE_CONFIG_START( josvolly, josvolly_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(josvolly_state, screen_update_gsword)
+ MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", gsword)
MCFG_PALETTE_ADD("palette", 64*4+64*4)
MCFG_PALETTE_INDIRECT_ENTRIES(256)
- MCFG_PALETTE_INIT_OWNER(josvolly_state, josvolly)
+ MCFG_PALETTE_INIT_OWNER(gsword_state,josvolly)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -896,6 +727,7 @@ static MACHINE_CONFIG_START( josvolly, josvolly_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, nmi_set_w)) /* portA write */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
#if 0
@@ -1019,12 +851,11 @@ ROM_START( josvolly )
ROM_REGION( 0x04000, "user1", 0 ) /* music data and samples - not sure where it's mapped */
ROM_LOAD( "aa0-14.4j", 0x0000, 0x2000, CRC(436fe91f) SHA1(feb29501090c6db911e13ce6e9935ba004b0ce7e) )
- ROM_REGION( 0x400, "mcu1", 0 )
+ // there are other undumped chips on this, not sure how many
+ // not hooked up yet
+ ROM_REGION( 0x400, "mcu", 0 )
ROM_LOAD( "aa003.bin", 0x0000, 0x400, CRC(68b399d9) SHA1(053482d12c2b714c23fc80ad0589a2afd258a5a6) )
- ROM_REGION( 0x400, "mcu2", 0 )
- ROM_LOAD( "aa008.bin", 0x0000, 0x400, CRC(68b399d9) SHA1(053482d12c2b714c23fc80ad0589a2afd258a5a6) BAD_DUMP )
-
ROM_REGION( 0x4000, "gfx1", 0 )
ROM_LOAD( "aa0-10.9n", 0x0000, 0x2000, CRC(207c4f42) SHA1(4cf2922d55cfc9e68cc07c3252ea3b5619b8aca5) ) /* tiles */
ROM_LOAD( "aa1-11.9p", 0x2000, 0x1000, CRC(c130464a) SHA1(9d23577b8aaaffeefff3d8f93668d1b2bd0ba3d9) )
@@ -1047,7 +878,37 @@ ROM_START( josvolly )
ROM_LOAD( "005.3h", 0x0440, 0x0020, CRC(e8d6dec0) SHA1(d15cba9a4b24255d41046b15c2409391ab13ce95) ) /* address decoder? not used */
ROM_END
+DRIVER_INIT_MEMBER(gsword_state,gsword)
+{
+#if 0
+ uint8_t *ROM2 = memregion("sub")->base();
+ ROM2[0x1da] = 0xc3; /* patch for rom self check */
+
+ ROM2[0x71e] = 0; /* patch for sound protection or time out function */
+ ROM2[0x71f] = 0;
+#endif
+#if 1
+ /* hack for sound protection or time out function */
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::gsword_hack_r),this));
+#endif
+}
+
+DRIVER_INIT_MEMBER(gsword_state,gsword2)
+{
+#if 0
+ uint8_t *ROM2 = memregion("sub")->base();
+
+ ROM2[0x1da] = 0xc3; /* patch for rom self check */
+ ROM2[0x726] = 0; /* patch for sound protection or time out function */
+ ROM2[0x727] = 0;
+#endif
+#if 1
+ /* hack for sound protection or time out function */
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::gsword_hack_r),this));
+#endif
+}
+
-GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1984, gsword, 0, gsword, gsword, gsword_state, gsword, ROT0, "Allumer / Taito Corporation", "Great Swordsman (World?)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, gsword2, gsword, gsword, gsword, gsword_state, gsword2, ROT0, "Allumer / Taito Corporation", "Great Swordsman (Japan?)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp
index e4536318e36..1d2d93d6bb7 100644
--- a/src/mame/drivers/rm380z.cpp
+++ b/src/mame/drivers/rm380z.cpp
@@ -175,7 +175,7 @@ MACHINE_CONFIG_END
/* ROM definitions */
ROM_START( rm380z34d )
- ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 )
+ ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 )
ROM_LOAD( "cos34d-f.bin", 0x0000, 0x1000, CRC(eb128b40) SHA1(c46f358fb76459987e41750d052995563f2f7d53))
// chargen ROM is undumped, afaik
ROM_REGION( 0x1680, "chargen", 0 )
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index 18ca04814ae..04941c35199 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -348,7 +348,7 @@ static INPUT_PORTS_START( rohga )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
+ PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
@@ -357,7 +357,7 @@ static INPUT_PORTS_START( rohga )
PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
+ PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
@@ -366,46 +366,54 @@ static INPUT_PORTS_START( rohga )
PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0100, 0x0100, "SW2:1" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0200, 0x0200, "SW2:2" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0400, 0x0400, "SW2:3" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x0800, 0x0800, "SW2:4" ) /* Listed as "Unused" */
- PORT_DIPNAME( 0x3000, 0x3000, "Player's Vitality" ) PORT_DIPLOCATION("SW2:5,6")
+ PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x3000, 0x3000, "Player's Vitality" )
PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x2000, DEF_STR( Low ) )
PORT_DIPSETTING( 0x1000, "Lowest" )
PORT_DIPSETTING( 0x0000, DEF_STR( High ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_START("DSW3") /* Dip switch bank 3 */
- PORT_DIPNAME( 0x0001, 0x0001, "Stage Clear Bonus" ) PORT_DIPLOCATION("SW3:1") /* Life Recovery At stage clear */
+ PORT_DIPNAME( 0x0001, 0x0001, "Stage Clear Bonus" ) /* Life Recovery At stage clear */
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2")
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000c, 0x000c, "Enemy's Vitality" ) PORT_DIPLOCATION("SW3:3,4")
+ PORT_DIPNAME( 0x000c, 0x000c, "Enemy's Vitality" )
PORT_DIPSETTING( 0x0008, DEF_STR( Low ) )
PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x0004, DEF_STR( High ) )
PORT_DIPSETTING( 0x0000, DEF_STR( Highest ) )
- PORT_DIPNAME( 0x0030, 0x0030, "Enemy Encounter Rate" ) PORT_DIPLOCATION("SW3:5,6")
+ PORT_DIPNAME( 0x0030, 0x0030, "Enemy Encounter Rate" )
PORT_DIPSETTING( 0x0020, DEF_STR( Low ) )
PORT_DIPSETTING( 0x0030, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x0010, DEF_STR( High ) )
PORT_DIPSETTING( 0x0000, DEF_STR( Highest ) )
- PORT_DIPNAME( 0x00c0, 0x00c0, "Enemy's Weapon Speed" ) PORT_DIPLOCATION("SW3:7,8")
+ PORT_DIPNAME( 0x00c0, 0x00c0, "Enemy's Weapon Speed" )
PORT_DIPSETTING( 0x0080, "Slow" )
PORT_DIPSETTING( 0x00c0, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x0040, "Fast" )
@@ -438,7 +446,7 @@ static INPUT_PORTS_START( wizdfire )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
+ PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
@@ -447,7 +455,7 @@ static INPUT_PORTS_START( wizdfire )
PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
+ PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
@@ -456,31 +464,31 @@ static INPUT_PORTS_START( wizdfire )
PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x0000, "2" )
PORT_DIPSETTING( 0x0100, "3" )
PORT_DIPSETTING( 0x0300, "4" )
PORT_DIPSETTING( 0x0200, "5" )
- PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4")
+ PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x3000, 0x3000, "Magic Gauge Speed" ) PORT_DIPLOCATION("SW2:5,6")
+ PORT_DIPNAME( 0x3000, 0x3000, "Magic Gauge Speed" )
PORT_DIPSETTING( 0x0000, "Very Slow" )
PORT_DIPSETTING( 0x1000, "Slow" )
PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x2000, "Fast" )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
@@ -511,7 +519,7 @@ static INPUT_PORTS_START( nitrobal )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
+ PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
@@ -520,7 +528,7 @@ static INPUT_PORTS_START( nitrobal )
PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
+ PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
@@ -529,32 +537,32 @@ static INPUT_PORTS_START( nitrobal )
PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x0100, "1" )
PORT_DIPSETTING( 0x0000, "2" )
PORT_DIPSETTING( 0x0300, "3" )
PORT_DIPSETTING( 0x0200, "4" )
- PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty?" ) PORT_DIPLOCATION("SW2:3,4")
+ PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty?" )
PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x1000, 0x1000, "Split Coin Chutes" ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPNAME( 0x1000, 0x1000, "Split Coin Chutes" )
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Players) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Players) )
PORT_DIPSETTING( 0x2000, "2" )
PORT_DIPSETTING( 0x0000, "3" )
- PORT_DIPNAME( 0x4000, 0x4000, "Shot Button to Start" ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPNAME( 0x4000, 0x4000, "Shot Button to Start" )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
@@ -595,10 +603,10 @@ static INPUT_PORTS_START( schmeisr )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_START("DSW")
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,3,4")
+ PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) )
@@ -607,7 +615,7 @@ static INPUT_PORTS_START( schmeisr )
PORT_DIPSETTING( 0x000a, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0006, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7")
+ PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
@@ -616,44 +624,55 @@ static INPUT_PORTS_START( schmeisr )
PORT_DIPSETTING( 0x0050, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0030, DEF_STR( 1C_6C ) )
- PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SW1:8" )
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
+ PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
+ PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x0800, 0x0800, "SW2:4" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x1000, 0x1000, "SW2:5" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x2000, 0x2000, "SW2:6" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x4000, 0x4000, "SW2:7" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW2:8" ) /* Listed as "Unused" */
+ PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_START("DSW3") /* Dip switch bank 3 - This bank of switches are _NOT_ shown in the test mode screen */
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2")
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3")
+ PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, "Debug Mode" ) PORT_DIPLOCATION("SW3:4")
+ PORT_DIPNAME( 0x0008, 0x0008, "Debug Mode" )
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:5")
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, "Freeze Screen" ) PORT_DIPLOCATION("SW3:6")
+ PORT_DIPNAME( 0x0020, 0x0020, "Freeze Screen" )
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7")
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:8")
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
@@ -686,78 +705,79 @@ static INPUT_PORTS_START( hangzo )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_START("DSW")
- PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6")
- PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "2 Credits to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
- PORT_DIPSETTING( 0x0100, "1" )
- PORT_DIPSETTING( 0x0000, "2" )
- PORT_DIPSETTING( 0x0300, "3" )
- PORT_DIPSETTING( 0x0200, "4" )
- PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3") /* Either 3 & 4 are Difficulty */
+ PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5") /* or more likely 5 & 6 are Player's Vitality like Rohga (all other dips seem to match Rohga) */
+ PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_START("DSW3")
- PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1")
+ PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0002, 0x0002, "Freeze Player" ) PORT_DIPLOCATION("SW3:2") /* With on, player will not fall down to playing field and be stuck floating at the top of the screen */
+ PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0004, 0x0004, "Freeze Frame" ) PORT_DIPLOCATION("SW3:3") /* P1 starts & stops freeze, when frozen P2 is single step frame */
+ PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4")
+ PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:5")
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0020, 0x0020, "Freeze Screen" ) PORT_DIPLOCATION("SW3:6")
+ PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7")
+ PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPNAME( 0x0080, 0x0080, "Debug Mode" ) PORT_DIPLOCATION("SW3:8")
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
@@ -1521,7 +1541,6 @@ ROM_START( wolffang ) /* Japan */
ROM_LOAD( "hb-00.11p", 0x00000, 0x200, CRC(b7a7baad) SHA1(39781c3412493b985d3616ac31142fc00bbcddf4) ) /* ? */
ROM_END
-
ROM_START( wizdfire )
ROM_REGION(0x200000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "je-01.3d", 0x000000, 0x20000, CRC(b6d62367) SHA1(e9521b28660f62b70e6e33c3e9cf345fc106eff6) ) /* Version 2.1 Over Sea */
@@ -1794,7 +1813,6 @@ ROM_START( gunball )
ROM_LOAD( "jn-00.17l", 0x00000, 0x400, CRC(6ac77b84) SHA1(9e1e2cabdb20b819e592a0f07d15658062227fa4) ) /* Priority (unused) */
ROM_END
-
ROM_START( schmeisr )
ROM_REGION(0x100000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "sr001j.8a", 0x000000, 0x80000, CRC(ed31f3ff) SHA1(3e0ae92a07ef94f377730c19069560bda864a64b) )
@@ -1831,10 +1849,13 @@ ROM_START( schmeisr )
ROM_END
-ROM_START( hangzo ) /* Found on a Data East DE-0353-3 PCB */
+
+
+
+ROM_START( hangzo )
ROM_REGION(0x200000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "Pro0H 12.18.2A.27C1001", 0x000000, 0x20000, CRC(ac8087db) SHA1(518193372cde6024fda96c6ed1862245e0bfb465) )
- ROM_LOAD16_BYTE( "Pro0H 12.18.2D.27C1001", 0x000001, 0x20000, CRC(a6b7f4f4) SHA1(1b3a00ef124d130317171d9042018fbb30662fec) )
+ ROM_LOAD16_BYTE( "Pro0H 12.18.2A.27C1001", 0x000000, 0x20000, CRC(ac8087db) SHA1(518193372cde6024fda96c6ed1862245e0bfb465) )
+ ROM_LOAD16_BYTE( "Pro0H 12.18.2D.27C1001", 0x000001, 0x20000, CRC(a6b7f4f4) SHA1(1b3a00ef124d130317171d9042018fbb30662fec) )
ROM_LOAD16_BYTE( "Pro1H 12.10.4A.27C010", 0x040000, 0x20000, CRC(0d04f43d) SHA1(167b595450f6f9b842dc909f6c61a96fa34b7991) )
ROM_LOAD16_BYTE( "Pro1L 12.10.4D.27C010", 0x040001, 0x20000, CRC(2e323918) SHA1(f3d9168f395e835b075dfcbb0464770044d350f3) )
ROM_LOAD16_BYTE( "Pro2H 12.10.6A.27C010", 0x080000, 0x20000, CRC(bb3185a6) SHA1(fa4ba7b4b53a5b3486c36441463a290b12c2acbe) )
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index 8a7b75f2f07..7404cd3d689 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -78,27 +78,26 @@ public:
int m_pending_command;
/* handlers */
- DECLARE_WRITE16_MEMBER(sound_command_w);
- DECLARE_WRITE16_MEMBER(turbofrc_sound_command_w);
- DECLARE_WRITE16_MEMBER(aerfboot_soundlatch_w);
- DECLARE_READ16_MEMBER(pending_command_r);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(aerfboot_soundlatch_w);
+ DECLARE_READ8_MEMBER(pending_command_r);
DECLARE_WRITE8_MEMBER(pending_command_clear_w);
DECLARE_WRITE8_MEMBER(aerofgt_sh_bankswitch_w);
DECLARE_WRITE8_MEMBER(aerfboot_okim6295_banking_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg1videoram_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg2videoram_w);
- DECLARE_WRITE16_MEMBER(pspikes_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(pspikes_gfxbank_w);
DECLARE_WRITE16_MEMBER(pspikesb_gfxbank_w);
DECLARE_WRITE16_MEMBER(spikes91_lookup_w);
- DECLARE_WRITE16_MEMBER(karatblz_gfxbank_w);
- DECLARE_WRITE16_MEMBER(spinlbrk_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(karatblz_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(spinlbrk_gfxbank_w);
DECLARE_WRITE16_MEMBER(turbofrc_gfxbank_w);
DECLARE_WRITE16_MEMBER(aerofgt_gfxbank_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg1scrollx_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg1scrolly_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg2scrollx_w);
DECLARE_WRITE16_MEMBER(aerofgt_bg2scrolly_w);
- DECLARE_WRITE16_MEMBER(pspikes_palette_bank_w);
+ DECLARE_WRITE8_MEMBER(pspikes_palette_bank_w);
DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w);
DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w);
DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w);
diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp
index 2495eb13481..20da54b7f9b 100644
--- a/src/mame/video/aerofgt.cpp
+++ b/src/mame/video/aerofgt.cpp
@@ -194,32 +194,22 @@ void aerofgt_state::setbank( tilemap_t *tmap, int num, int bank )
}
}
-WRITE16_MEMBER(aerofgt_state::pspikes_gfxbank_w)
+WRITE8_MEMBER(aerofgt_state::pspikes_gfxbank_w)
{
- if (ACCESSING_BITS_0_7)
- {
- setbank(m_bg1_tilemap, 0, (data & 0xf0) >> 4);
- setbank(m_bg1_tilemap, 1, data & 0x0f);
- }
+ setbank(m_bg1_tilemap, 0, (data & 0xf0) >> 4);
+ setbank(m_bg1_tilemap, 1, data & 0x0f);
}
-
-WRITE16_MEMBER(aerofgt_state::karatblz_gfxbank_w)
+WRITE8_MEMBER(aerofgt_state::karatblz_gfxbank_w)
{
- if (ACCESSING_BITS_8_15)
- {
- setbank(m_bg1_tilemap, 0, (data & 0x0100) >> 8);
- setbank(m_bg2_tilemap, 1, (data & 0x0800) >> 11);
- }
+ setbank(m_bg1_tilemap, 0, (data & 0x01));
+ setbank(m_bg2_tilemap, 1, (data & 0x08) >> 3);
}
-WRITE16_MEMBER(aerofgt_state::spinlbrk_gfxbank_w)
+WRITE8_MEMBER(aerofgt_state::spinlbrk_gfxbank_w)
{
- if (ACCESSING_BITS_0_7)
- {
- setbank(m_bg1_tilemap, 0, (data & 0x07));
- setbank(m_bg2_tilemap, 1, (data & 0x38) >> 3);
- }
+ setbank(m_bg1_tilemap, 0, (data & 0x07));
+ setbank(m_bg2_tilemap, 1, (data & 0x38) >> 3);
}
WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w)
@@ -264,16 +254,13 @@ WRITE16_MEMBER(aerofgt_state::aerofgt_bg2scrolly_w)
COMBINE_DATA(&m_bg2scrolly);
}
-WRITE16_MEMBER(aerofgt_state::pspikes_palette_bank_w)
+WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w)
{
- if (ACCESSING_BITS_0_7)
+ m_spritepalettebank = data & 0x03;
+ if (m_charpalettebank != (data & 0x1c) >> 2)
{
- m_spritepalettebank = data & 0x03;
- if (m_charpalettebank != (data & 0x1c) >> 2)
- {
- m_charpalettebank = (data & 0x1c) >> 2;
- m_bg1_tilemap->mark_all_dirty();
- }
+ m_charpalettebank = (data & 0x1c) >> 2;
+ m_bg1_tilemap->mark_all_dirty();
}
}