summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2011-05-07 14:42:55 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2011-05-07 14:42:55 +0000
commit396fcfc38ae74b309ca4d73d7629358b576bc655 (patch)
treed485838f7d727020a038e09655d66df0f6cb4acf
parentdf7401d0e2aa2358e0ed1d7c6554d8e971d003f3 (diff)
Various Irem M92 / M107 fixes [Alex Jackson]
- Hooked up sound CPU interrupts properly, using the V35 builtin interrupt controller, rather than generating the vectors in the driver. - Cleaned up ROM mirroring, using AM_REGION macros in the address maps instead of memcpy()ing all over the place in the DRIVER_INITs. - Converted bankswitching to use configured banks. Only configure the banks and install the bankswitch WRITE_HANDLER in the games that actually use it (i.e. those with a full megabyte of program ROM). This and the previous change make the drivers a lot less confusing to look at... I hope. - Converted both drivers to use a scanline timer device instead of a hand-rolled one. - Added save state support to m92.c. Everything necessary was already saved, I just had to add the tag. However, presumably due to the core emu_timer breakage (MT 4330, 4331) the save states don't actually work at the moment. I've already reported this as MT #4333 - Added GAME_MECHANICAL tag to wpksoc and clone - "Ninja Baseball Batman" -> "Ninja Baseball Bat Man"--it's clearly two words both on the game's title screen and even more obviously in the flyer.
-rw-r--r--src/mame/drivers/m107.c170
-rw-r--r--src/mame/drivers/m92.c570
-rw-r--r--src/mame/includes/m107.h2
-rw-r--r--src/mame/includes/m92.h5
-rw-r--r--src/mame/machine/irem_cpu.c4
5 files changed, 282 insertions, 469 deletions
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index c961aef6a77..7ec32b4e6e2 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -14,7 +14,7 @@
To Do:
- Hook up EEPROM in Kick for the Goal / World PK Soccer
+ Hook up inputs and EEPROM in Kick for the Goal / World PK Soccer
2008-08
Dip locations have been added assuming that the layout is the same as the
@@ -32,43 +32,24 @@ confirmed for m107 games as well.
#include "sound/iremga20.h"
-#define M107_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt*/
-#define M107_IRQ_1 ((state->m_irq_vectorbase+4)/4) /* ??? */
-#define M107_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
-#define M107_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* ??? */
+#define M107_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt */
+#define M107_IRQ_1 ((state->m_irq_vectorbase+4)/4) /* ??? */
+#define M107_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
+#define M107_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
-
-
-static TIMER_CALLBACK( m107_scanline_interrupt );
-
/*****************************************************************************/
-static WRITE16_HANDLER( bankswitch_w )
-{
- if (ACCESSING_BITS_0_7)
- {
- UINT8 *RAM = space->machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x100000 + ((data&0x7)*0x10000)]);
- }
-}
-
static MACHINE_START( m107 )
{
- m107_state *state = machine.driver_data<m107_state>();
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(m107_scanline_interrupt));
-}
-
-static MACHINE_RESET( m107 )
-{
- m107_state *state = machine.driver_data<m107_state>();
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ // TODO: state save registrations
}
/*****************************************************************************/
-static TIMER_CALLBACK( m107_scanline_interrupt )
+static TIMER_DEVICE_CALLBACK( m107_scanline_interrupt )
{
+ running_machine &machine = timer.machine();
m107_state *state = machine.driver_data<m107_state>();
int scanline = param;
@@ -85,13 +66,9 @@ static TIMER_CALLBACK( m107_scanline_interrupt )
machine.primary_screen->update_partial(scanline);
cputag_set_input_line_and_vector(machine, "maincpu", 0, HOLD_LINE, M107_IRQ_0);
}
-
- /* adjust for next scanline */
- if (++scanline >= machine.primary_screen->height())
- scanline = 0;
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(scanline), scanline);
}
+/*****************************************************************************/
static WRITE16_HANDLER( m107_coincounter_w )
{
@@ -102,42 +79,23 @@ static WRITE16_HANDLER( m107_coincounter_w )
}
}
-
-
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, V30_ASSERT, V30_CLEAR };
-
-static TIMER_CALLBACK( setvector_callback )
+static WRITE16_HANDLER( m107_bankswitch_w )
{
- m107_state *state = machine.driver_data<m107_state>();
-
- switch(param)
+ if (ACCESSING_BITS_0_7)
{
- case VECTOR_INIT: state->m_irqvector = 0; break;
- case YM2151_ASSERT: state->m_irqvector |= 0x2; break;
- case YM2151_CLEAR: state->m_irqvector &= ~0x2; break;
- case V30_ASSERT: state->m_irqvector |= 0x1; break;
- case V30_CLEAR: state->m_irqvector &= ~0x1; break;
+ memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
+ if (data & 0xf9)
+ logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space->device()), data);
}
-
- if (state->m_irqvector & 0x2) /* YM2151 has precedence */
- device_set_input_line_vector(machine.device("soundcpu"), 0, 0x18);
- else if (state->m_irqvector & 0x1) /* V30 */
- device_set_input_line_vector(machine.device("soundcpu"), 0, 0x19);
-
- if (state->m_irqvector == 0) /* no IRQs pending */
- cputag_set_input_line(machine, "soundcpu", 0, CLEAR_LINE);
- else /* IRQ pending */
- cputag_set_input_line(machine, "soundcpu", 0, ASSERT_LINE);
}
static WRITE16_HANDLER( m107_soundlatch_w )
{
- space->machine().scheduler().synchronize(FUNC(setvector_callback), V30_ASSERT);
+ cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
soundlatch_w(space, 0, data & 0xff);
// logerror("soundlatch_w %02x\n",data);
}
-
static READ16_HANDLER( m107_sound_status_r )
{
m107_state *state = space->machine().driver_data<m107_state>();
@@ -151,7 +109,7 @@ static READ16_HANDLER( m107_soundlatch_r )
static WRITE16_HANDLER( m107_sound_irq_ack_w )
{
- space->machine().scheduler().synchronize(FUNC(setvector_callback), V30_CLEAR);
+ cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
}
static WRITE16_HANDLER( m107_sound_status_w )
@@ -175,7 +133,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf8fff) AM_RAM AM_BASE_MEMBER(m107_state, m_spriteram)
AM_RANGE(0xf9000, 0xf9fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 16 )
@@ -187,7 +145,6 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 16 )
AM_RANGE(0x00, 0x01) AM_WRITE(m107_soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w)
AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */
- AM_RANGE(0x06, 0x07) AM_WRITE(bankswitch_w)
AM_RANGE(0x80, 0x9f) AM_WRITE(m107_control_w)
AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */
AM_RANGE(0xb0, 0xb1) AM_WRITE(m107_spritebuffer_w)
@@ -224,13 +181,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x1ffff) AM_ROM
- AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff)
AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(m107_soundlatch_r, m107_sound_irq_ack_w)
AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m107_sound_status_w)
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("soundcpu", 0x1fff0)
ADDRESS_MAP_END
/******************************************************************************/
@@ -760,8 +716,8 @@ static const gfx_layout charlayout =
RGN_FRAC(1,1),
4,
{ 8, 0, 24, 16 },
- { 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
+ { STEP8(0,1) },
+ { STEP8(0,32) },
32*8
};
@@ -771,10 +727,8 @@ static const gfx_layout spritelayout =
RGN_FRAC(1,4),
4,
{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
- { 0, 1, 2, 3, 4, 5, 6, 7,
- 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
- 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
+ { STEP8(0,1), STEP8(16*8,1) },
+ { STEP16(0,8) },
32*8
};
@@ -784,9 +738,8 @@ static const gfx_layout spritelayout2 =
RGN_FRAC(1,4),
4,
{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
- { 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
- 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
+ { STEP8(8,1), STEP8(0,1) },
+ { STEP16(0,16) },
32*8
};
@@ -804,10 +757,7 @@ GFXDECODE_END
static void sound_irq(device_t *device, int state)
{
- if (state)
- device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_ASSERT);
- else
- device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_CLEAR);
+ cputag_set_input_line(device->machine(), "soundcpu", NEC_INPUT_LINE_INTP0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym2151_interface ym2151_config =
@@ -831,7 +781,8 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_CPU_CONFIG(firebarr_config)
MCFG_MACHINE_START(m107)
- MCFG_MACHINE_RESET(m107)
+
+ MCFG_TIMER_ADD_SCANLINE("scantimer", m107_scanline_interrupt, "screen", 0, 1)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -894,9 +845,9 @@ ROM_START( firebarr )
ROM_LOAD16_BYTE( "f4-a-h1-c.9e", 0x080001, 0x20000, CRC(bb7f6968) SHA1(366747672aac939454d9915cda5277b0438f063b) )
ROM_LOAD16_BYTE( "f4-a-l1-c.9h", 0x080000, 0x20000, CRC(9d57edd6) SHA1(16122829b61aa3aee88aeb6634831e8cf95eaee0) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "f4-b-sh0-b", 0x000001, 0x10000, CRC(30a8e232) SHA1(d4695aed35a1aa796b2872e58a6014e8b28bc154) )
- ROM_LOAD16_BYTE( "f4-b-sl0-b", 0x000000, 0x10000, CRC(204b5f1f) SHA1(f0386500773cd7cca93f0e8e740db29182320c70) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "f4-b-sh0-b", 0x00001, 0x10000, CRC(30a8e232) SHA1(d4695aed35a1aa796b2872e58a6014e8b28bc154) )
+ ROM_LOAD16_BYTE( "f4-b-sl0-b", 0x00000, 0x10000, CRC(204b5f1f) SHA1(f0386500773cd7cca93f0e8e740db29182320c70) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "f4-c00", 0x000000, 0x80000, CRC(50cab384) SHA1(66e88a1dfa943e0d49c2e186ac2f6cbf5cfe0864) )
@@ -923,15 +874,15 @@ ROM_START( firebarr )
ROM_END
ROM_START( dsoccr94 )
- ROM_REGION( 0x180000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "ds_h0-c.rom", 0x000001, 0x040000, CRC(d01d3fd7) SHA1(925dff999252bf3b920bc0f427744e1464620fe8) )
ROM_LOAD16_BYTE( "ds_l0-c.rom", 0x000000, 0x040000, CRC(8af0afe2) SHA1(423c77d392a79cdaed66ad8c13039450d34d3f6d) )
- ROM_LOAD16_BYTE( "ds_h1-c.rom", 0x100001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
- ROM_LOAD16_BYTE( "ds_l1-c.rom", 0x100000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
+ ROM_LOAD16_BYTE( "ds_h1-c.rom", 0x080001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
+ ROM_LOAD16_BYTE( "ds_l1-c.rom", 0x080000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "ds_sh0.rom", 0x000001, 0x010000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
- ROM_LOAD16_BYTE( "ds_sl0.rom", 0x000000, 0x010000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "ds_sh0.rom", 0x00001, 0x10000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
+ ROM_LOAD16_BYTE( "ds_sl0.rom", 0x00000, 0x10000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "ds_c00.rom", 0x000000, 0x100000, CRC(2d31d418) SHA1(6cd0e362bc2e3f2b20d96ee97a04bff46ee3016a) )
@@ -950,13 +901,13 @@ ROM_START( dsoccr94 )
ROM_END
ROM_START( wpksoc )
- ROM_REGION( 0x180000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "pk-h0-eur-d.h0", 0x000001, 0x040000, CRC(b4917788) SHA1(673294c518eaf28354fa6a3058f9325c6d9ddde6) )
ROM_LOAD16_BYTE( "pk-l0-eur-d.l0", 0x000000, 0x040000, CRC(03816bae) SHA1(832e2ec722b41d41626fec583fc11e9ff62cdaa0) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x000001, 0x010000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
- ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x000000, 0x010000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x00001, 0x10000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
+ ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x00000, 0x10000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "pk-c00-os.c00", 0x000000, 0x80000, CRC(42ae3d73) SHA1(e4777066155c9882695ebff0412bd879b8d6f716) )
@@ -979,13 +930,13 @@ ROM_START( wpksoc )
ROM_END
ROM_START( kftgoal )
- ROM_REGION( 0x180000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "pk-h0-usa-d.h0", 0x000001, 0x040000, CRC(aed4cde0) SHA1(2fe04bf93c353108b82a0b6017229e9b0f451b06) )
ROM_LOAD16_BYTE( "pk-l0-usa-d.l0", 0x000000, 0x040000, CRC(39fe30d2) SHA1(e0c117da4fe9c779dd534ee0d09685aeb5f579c6) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x000001, 0x010000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
- ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x000000, 0x010000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x00001, 0x10000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
+ ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x00000, 0x10000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "pk-c00-os.c00", 0x000000, 0x80000, CRC(42ae3d73) SHA1(e4777066155c9882695ebff0412bd879b8d6f716) )
@@ -1006,7 +957,7 @@ ROM_START( kftgoal )
ROM_REGION( 0x100000, "irem", 0 ) /* ADPCM samples */
ROM_LOAD( "pk-da0.da0", 0x000000, 0x80000, BAD_DUMP CRC(26a34cf4) SHA1(a8a7cd91cdc6d644ee02ca16e7fdc8debf8f3a5f) ) //clearly taken from World PK Soccer, it says "World PK Soccer" at title screen
- ROM_REGION( 0x2000, "user1", 0 ) /* ST M28C64C-20PI Eeprom */
+ ROM_REGION( 0x2000, "eeprom", 0 ) /* ST M28C64C-20PI Eeprom */
ROM_LOAD( "st-m28c64c.eeprom", 0x000, 0x2000, CRC(8e0c8b7c) SHA1(0b57290d709e6d54ce1bb3a5c01b80590203c1dd) )
ROM_END
@@ -1015,13 +966,9 @@ ROM_END
static DRIVER_INIT( firebarr )
{
m107_state *state = machine.driver_data<m107_state>();
- UINT8 *RAM = machine.region("maincpu")->base();
-
- memcpy(RAM + 0xffff0, RAM + 0x7fff0, 0x10); /* Start vector */
- memory_set_bankptr(machine, "bank1", &RAM[0xa0000]); /* Initial bank */
+ UINT8 *ROM = machine.region("maincpu")->base();
- RAM = machine.region("soundcpu")->base();
- memcpy(RAM + 0xffff0,RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
+ memory_set_bankptr(machine, "bank1", &ROM[0xa0000]);
state->m_irq_vectorbase = 0x20;
state->m_spritesystem = 1;
@@ -1030,13 +977,10 @@ static DRIVER_INIT( firebarr )
static DRIVER_INIT( dsoccr94 )
{
m107_state *state = machine.driver_data<m107_state>();
- UINT8 *RAM = machine.region("maincpu")->base();
+ UINT8 *ROM = machine.region("maincpu")->base();
- memcpy(RAM + 0xffff0, RAM + 0x7fff0, 0x10); /* Start vector */
- memory_set_bankptr(machine, "bank1", &RAM[0xa0000]); /* Initial bank */
-
- RAM = machine.region("soundcpu")->base();
- memcpy(RAM + 0xffff0, RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
+ memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
+ machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x06, 0x07, FUNC(m107_bankswitch_w));
state->m_irq_vectorbase = 0x80;
state->m_spritesystem = 0;
@@ -1045,14 +989,6 @@ static DRIVER_INIT( dsoccr94 )
static DRIVER_INIT( wpksoc )
{
m107_state *state = machine.driver_data<m107_state>();
- UINT8 *RAM = machine.region("maincpu")->base();
-
- memcpy(RAM + 0xffff0, RAM + 0x7fff0, 0x10); /* Start vector */
- memory_set_bankptr(machine, "bank1", &RAM[0xa0000]); /* Initial bank */
-
- RAM = machine.region("soundcpu")->base();
- memcpy(RAM + 0xffff0, RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
-
state->m_irq_vectorbase = 0x80;
state->m_spritesystem = 0;
@@ -1062,6 +998,6 @@ static DRIVER_INIT( wpksoc )
GAME( 1993, firebarr, 0, firebarr, firebarr, firebarr, ROT270, "Irem", "Fire Barrel (Japan)", 0 )
// Air Assault : World version of Fire Barrel, seen on location at the London Trocadero
-GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (M107 Hardware)", 0 )
-GAME( 1995, wpksoc, 0, wpksoc, wpksoc, wpksoc, ROT0, "Jaleco", "World PK Soccer", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (World, M107 hardware)", 0 )
+GAME( 1995, wpksoc, 0, wpksoc, wpksoc, wpksoc, ROT0, "Jaleco", "World PK Soccer", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_MECHANICAL )
+GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_MECHANICAL )
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index 9da2a832e20..fd669cfcf37 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -52,14 +52,14 @@ Glitch list!
Almost certainly a core bug.
Irem Skins:
- - Eeprom load/save not yet implemented - when done, MT2EEP should
+ - EEPROM load/save not yet implemented - when done, MT2EEP should
be removed from the ROM definition.
LeagueMan:
Raster effects don't work properly (not even cpu time per line?).
(0.141 update: at least following two seems fixed from a lot of time ... -AS)
- Perfect Soliders:
+ Perfect Soldiers:
Shortly into the fight, the sound CPU enters a tight loop, continuously
writing to the status port and with interrupts disabled. I don't see how
it is supposed to get out of that loop. Maybe it's not supposed to enter
@@ -204,15 +204,12 @@ psoldier dip locations still need veritication.
#include "sound/okim6295.h"
-
-#define M92_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt*/
+#define M92_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt */
#define M92_IRQ_1 ((state->m_irq_vectorbase+4)/4) /* Sprite buffer complete interrupt */
#define M92_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
#define M92_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
-static TIMER_CALLBACK( m92_scanline_interrupt );
-
/*****************************************************************************/
static void set_m92_bank(running_machine &machine)
@@ -225,24 +222,21 @@ static void set_m92_bank(running_machine &machine)
static MACHINE_START( m92 )
{
m92_state *state = machine.driver_data<m92_state>();
- state->save_item(NAME(state->m_irqvector));
- state->save_item(NAME(state->m_sound_status));
- state->save_item(NAME(state->m_bankaddress));
- machine.save().register_postload(save_prepost_delegate(FUNC(set_m92_bank), &machine));
-
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(m92_scanline_interrupt));
+ state->save_item(NAME(state->m_sound_status));
}
static MACHINE_RESET( m92 )
{
- m92_state *state = machine.driver_data<m92_state>();
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m92_state *state = machine.driver_data<m92_state>();
+
+ state->m_sprite_buffer_busy = 1;
}
/*****************************************************************************/
-static TIMER_CALLBACK( m92_scanline_interrupt )
+static TIMER_DEVICE_CALLBACK( m92_scanline_interrupt )
{
+ running_machine &machine = timer.machine();
m92_state *state = machine.driver_data<m92_state>();
int scanline = param;
@@ -259,25 +253,20 @@ static TIMER_CALLBACK( m92_scanline_interrupt )
machine.primary_screen->update_partial(scanline);
cputag_set_input_line_and_vector(machine, "maincpu", 0, HOLD_LINE, M92_IRQ_0);
}
-
- /* adjust for next scanline */
- if (++scanline >= machine.primary_screen->height())
- scanline = 0;
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(scanline), scanline);
}
/*****************************************************************************/
static READ16_HANDLER( m92_eeprom_r )
{
- UINT8 *RAM = space->machine().region("user1")->base();
+ UINT8 *RAM = space->machine().region("eeprom")->base();
// logerror("%05x: EEPROM RE %04x\n",cpu_get_pc(&space->device()),offset);
return RAM[offset] | 0xff00;
}
static WRITE16_HANDLER( m92_eeprom_w )
{
- UINT8 *RAM = space->machine().region("user1")->base();
+ UINT8 *RAM = space->machine().region("eeprom")->base();
// logerror("%05x: EEPROM WR %04x\n",cpu_get_pc(&space->device()),offset);
if (ACCESSING_BITS_0_7)
RAM[offset] = data;
@@ -297,11 +286,11 @@ static WRITE16_HANDLER( m92_coincounter_w )
static WRITE16_HANDLER( m92_bankswitch_w )
{
- m92_state *state = space->machine().driver_data<m92_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_bankaddress = 0x100000 + ((data & 0x7) * 0x10000);
- set_m92_bank(space->machine());
+ memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
+ if (data & 0xf9)
+ logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space->device()), data);
}
}
@@ -313,37 +302,9 @@ static CUSTOM_INPUT( m92_sprite_busy_r )
/*****************************************************************************/
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, V30_ASSERT, V30_CLEAR };
-
-static TIMER_CALLBACK( setvector_callback )
-{
- m92_state *state = machine.driver_data<m92_state>();
- if (!machine.device("soundcpu"))
- return;
-
- switch(param)
- {
- case VECTOR_INIT: state->m_irqvector = 0; break;
- case YM2151_ASSERT: state->m_irqvector |= 0x2; break;
- case YM2151_CLEAR: state->m_irqvector &= ~0x2; break;
- case V30_ASSERT: state->m_irqvector |= 0x1; break;
- case V30_CLEAR: state->m_irqvector &= ~0x1; break;
- }
-
- if (state->m_irqvector & 0x2) /* YM2151 has precedence */
- device_set_input_line_vector(machine.device("soundcpu"), 0, 0x18);
- else if (state->m_irqvector & 0x1) /* V30 */
- device_set_input_line_vector(machine.device("soundcpu"), 0, 0x19);
-
- if (state->m_irqvector == 0) /* no IRQs pending */
- cputag_set_input_line(machine, "soundcpu", 0, CLEAR_LINE);
- else /* IRQ pending */
- cputag_set_input_line(machine, "soundcpu", 0, ASSERT_LINE);
-}
-
static WRITE16_HANDLER( m92_soundlatch_w )
{
- space->machine().scheduler().synchronize(FUNC(setvector_callback), V30_ASSERT);
+ cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
soundlatch_w(space, 0, data & 0xff);
}
@@ -361,7 +322,7 @@ static READ16_HANDLER( m92_soundlatch_r )
static WRITE16_HANDLER( m92_sound_irq_ack_w )
{
- space->machine().scheduler().synchronize(FUNC(setvector_callback), V30_CLEAR);
+ cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
}
static WRITE16_HANDLER( m92_sound_status_w )
@@ -371,7 +332,6 @@ static WRITE16_HANDLER( m92_sound_status_w )
cputag_set_input_line_and_vector(space->machine(), "maincpu", 0, HOLD_LINE, M92_IRQ_3);
}
-
static WRITE16_HANDLER( m92_sound_reset_w )
{
cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
@@ -394,14 +354,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x9ffff) AM_ROM
AM_RANGE(0xa0000, 0xbffff) AM_ROMBANK("bank1")
- AM_RANGE(0xc0000, 0xcffff) AM_ROMBANK("bank2") /* Mirror of rom: Used by In The Hunt as protection */
+ AM_RANGE(0xc0000, 0xcffff) AM_ROM AM_REGION("maincpu", 0x00000) /* Mirror used by In The Hunt as protection */
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m92_vram_w) AM_BASE_MEMBER(m92_state, m_vram_data)
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w)
AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_BASE_MEMBER(m92_state, m_spritecontrol)
AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w)
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( m92_portmap, AS_IO, 16 )
@@ -412,7 +372,6 @@ static ADDRESS_MAP_START( m92_portmap, AS_IO, 16 )
AM_RANGE(0x08, 0x09) AM_READ(m92_sound_status_r) /* answer from sound CPU */
AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
- AM_RANGE(0x20, 0x21) AM_WRITE(m92_bankswitch_w)
AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_control_w)
@@ -425,13 +384,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x1ffff) AM_ROM
- AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff)
AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(m92_soundlatch_r, m92_sound_irq_ack_w)
AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m92_sound_status_w)
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("soundcpu", 0x1fff0)
ADDRESS_MAP_END
/******************************************************************************/
@@ -905,10 +863,7 @@ GFXDECODE_END
static void sound_irq(device_t *device, int state)
{
- if (state)
- device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_ASSERT);
- else
- device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_CLEAR);
+ cputag_set_input_line(device->machine(), "soundcpu", NEC_INPUT_LINE_INTP0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym2151_interface ym2151_config =
@@ -938,6 +893,8 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_MACHINE_START(m92)
MCFG_MACHINE_RESET(m92)
+ MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
+
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@@ -1023,6 +980,8 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_MACHINE_START(m92)
MCFG_MACHINE_RESET(m92)
+ MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
+
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@@ -1089,7 +1048,6 @@ static MACHINE_CONFIG_DERIVED( gunforc2, m92 )
MCFG_CPU_CONFIG(gunforc2_config)
MACHINE_CONFIG_END
-
/***************************************************************************/
ROM_START( bmaster ) /* M92-B-B PCB used for program rom locations */
@@ -1099,9 +1057,9 @@ ROM_START( bmaster ) /* M92-B-B PCB used for program rom locations */
ROM_LOAD16_BYTE( "bm_d-h1-b.5l", 0x080001, 0x10000, CRC(082b7158) SHA1(ca2cfcb3ecd1f130d3fb893f08d53521e7d443d4) )
ROM_LOAD16_BYTE( "bm_d-l1-b.5j", 0x080000, 0x10000, CRC(6ff0c04e) SHA1(7293a50445053101d22bc596d13e1a7ed67a65c6) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x000001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
- ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x000000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x00001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
+ ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x00000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "bm_c0.rom", 0x000000, 0x40000, CRC(2cc966b8) SHA1(4d55954813efe975b7e644448effc61b22896e0b) )
@@ -1126,9 +1084,9 @@ ROM_START( crossbld ) /* M92-D-A PCB used for program rom locations */
ROM_LOAD16_BYTE( "bm_d-h1.3e", 0x080001, 0x10000, CRC(18da6c47) SHA1(7b8cf82cf0c94d1ec64e77e15b877b5ffd307bc3) )
ROM_LOAD16_BYTE( "bm_d-l1.5e", 0x080000, 0x10000, CRC(a65c1b42) SHA1(beb4131d045158231ba999b72f21c97c014672d0) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x000001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
- ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x000000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x00001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
+ ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x00000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "bm_c0.rom", 0x000000, 0x40000, CRC(2cc966b8) SHA1(4d55954813efe975b7e644448effc61b22896e0b) )
@@ -1147,15 +1105,15 @@ ROM_START( crossbld ) /* M92-D-A PCB used for program rom locations */
ROM_END
ROM_START( skingame )
- ROM_REGION( 0x180000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "is-h0-d.5m", 0x000001, 0x40000, CRC(80940abb) SHA1(7af5b667383f40987cc8190d81937410ea2c0301) )
- ROM_LOAD16_BYTE( "is-l0-d.5f", 0x000000, 0x40000, CRC(b84beed6) SHA1(b026a68623d7d96545a4b01770fc6cdd2a0ed0f4) )
- ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
- ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "is-h0-d.5m", 0x00001, 0x40000, CRC(80940abb) SHA1(7af5b667383f40987cc8190d81937410ea2c0301) )
+ ROM_LOAD16_BYTE( "is-l0-d.5f", 0x00000, 0x40000, CRC(b84beed6) SHA1(b026a68623d7d96545a4b01770fc6cdd2a0ed0f4) )
+ ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
+ ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
- ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
+ ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@@ -1172,7 +1130,7 @@ ROM_START( skingame )
ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) )
- ROM_REGION( 0x4000, "user1", 0 ) /* EEPROM */
+ ROM_REGION( 0x4000, "eeprom", 0 ) /* EEPROM */
ROM_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 )
@@ -1184,15 +1142,15 @@ ROM_START( skingame )
ROM_END
ROM_START( majtitl2 )
- ROM_REGION( 0x180000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "mt2-h0-b.5m", 0x000001, 0x40000, CRC(b163b12e) SHA1(cdb01a5266bd11f4cff1cb5c05cf24de13a527b2) )
- ROM_LOAD16_BYTE( "mt2-l0-b.5f", 0x000000, 0x40000, CRC(6f3b5d9d) SHA1(a39f25f29195023fb507dc9ffbfcbd57a4e6b30a) )
- ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
- ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mt2-h0-b.5m", 0x00001, 0x40000, CRC(b163b12e) SHA1(cdb01a5266bd11f4cff1cb5c05cf24de13a527b2) )
+ ROM_LOAD16_BYTE( "mt2-l0-b.5f", 0x00000, 0x40000, CRC(6f3b5d9d) SHA1(a39f25f29195023fb507dc9ffbfcbd57a4e6b30a) )
+ ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
+ ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
- ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
+ ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@@ -1209,7 +1167,7 @@ ROM_START( majtitl2 )
ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) )
- ROM_REGION( 0x4000, "user1", 0 ) /* EEPROM */
+ ROM_REGION( 0x4000, "eeprom", 0 ) /* EEPROM */
ROM_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 )
@@ -1221,15 +1179,15 @@ ROM_START( majtitl2 )
ROM_END
ROM_START( majtitl2j )
- ROM_REGION( 0x180000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "mt2-h0", 0x000001, 0x40000, CRC(8a8d71ad) SHA1(8c45d947d15eb3a2c2584c9e1cd0e42988955905) )
- ROM_LOAD16_BYTE( "mt2-l1", 0x000000, 0x40000, CRC(dd4fff51) SHA1(9281bac10fdbfa9eede9d069b70eb38d9ae612ce) )
- ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
- ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mt2-h0", 0x00001, 0x40000, CRC(8a8d71ad) SHA1(8c45d947d15eb3a2c2584c9e1cd0e42988955905) )
+ ROM_LOAD16_BYTE( "mt2-l1", 0x00000, 0x40000, CRC(dd4fff51) SHA1(9281bac10fdbfa9eede9d069b70eb38d9ae612ce) )
+ ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
+ ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
- ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
+ ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@@ -1246,7 +1204,7 @@ ROM_START( majtitl2j )
ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) )
- ROM_REGION( 0x4000, "user1", 0 ) /* EEPROM */
+ ROM_REGION( 0x4000, "eeprom", 0 ) /* EEPROM */
ROM_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 )
@@ -1258,15 +1216,15 @@ ROM_START( majtitl2j )
ROM_END
ROM_START( skingame2 )
- ROM_REGION( 0x180000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "mt2-h0-a.5m", 0x000001, 0x40000, CRC(7c6dbbc7) SHA1(6ac2df542cbcac782d733aaa0f2e4ded702ec24f) )
- ROM_LOAD16_BYTE( "mt2-l0-a.5f", 0x000000, 0x40000, CRC(9de5f689) SHA1(ea5057cab0a2f5c4586337fc5a17f1a728450cbf) )
- ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
- ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mt2-h0-a.5m", 0x00001, 0x40000, CRC(7c6dbbc7) SHA1(6ac2df542cbcac782d733aaa0f2e4ded702ec24f) )
+ ROM_LOAD16_BYTE( "mt2-l0-a.5f", 0x00000, 0x40000, CRC(9de5f689) SHA1(ea5057cab0a2f5c4586337fc5a17f1a728450cbf) )
+ ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
+ ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
- ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
+ ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@@ -1283,7 +1241,7 @@ ROM_START( skingame2 )
ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) )
- ROM_REGION( 0x4000, "user1", 0 ) /* EEPROM */
+ ROM_REGION( 0x4000, "eeprom", 0 ) /* EEPROM */
ROM_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 )
@@ -1301,9 +1259,9 @@ ROM_START( gunforce )
ROM_LOAD16_BYTE( "gf_h1-c.5l", 0x040001, 0x20000, CRC(c84188b7) SHA1(ff710be742f610d90538db296acdd435260bef12) )
ROM_LOAD16_BYTE( "gf_l1-c.5j", 0x040000, 0x20000, CRC(b189f72a) SHA1(f17d87349a57e1a4b20c4947e41edd7c39eaca13) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "gf_sh0.rom", 0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
- ROM_LOAD16_BYTE( "gf_sl0.rom", 0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
+ ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) )
@@ -1328,9 +1286,9 @@ ROM_START( gunforcej )
ROM_LOAD16_BYTE( "gfb_h1-e.5l", 0x040001, 0x20000, CRC(d9744f5d) SHA1(056d6e6e9874c33dcebe2e0ec946117d5eaa5d76) )
ROM_LOAD16_BYTE( "gfb_l1-e.5j", 0x040000, 0x20000, CRC(a0f7b61b) SHA1(5fc7fc3f57e82a9ae4e1f3c3e8e3e3b0bd3ff8f5) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "gf_sh0.rom",0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
- ROM_LOAD16_BYTE( "gf_sl0.rom",0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
+ ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) )
@@ -1355,9 +1313,9 @@ ROM_START( gunforceu )
ROM_LOAD16_BYTE( "gf_h1-d.5l", 0x040001, 0x20000, CRC(08a3736c) SHA1(0ae904cf486a371f8b635c1f9dc5201e38a73f5a) )
ROM_LOAD16_BYTE( "gf_l1-d.5j", 0x040000, 0x20000, CRC(435f524f) SHA1(65c282ec50123747880850bc32c7ace0471ed9f2) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "gf_sh0.rom",0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
- ROM_LOAD16_BYTE( "gf_sl0.rom",0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
+ ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) )
@@ -1382,9 +1340,9 @@ ROM_START( inthunt )
ROM_LOAD16_BYTE( "ith-h1-b.bin", 0x080001, 0x020000, CRC(fc2899df) SHA1(f811ff5fd55655afdb25950d317db85c8091b6d6) )
ROM_LOAD16_BYTE( "ith-l1-b.bin", 0x080000, 0x020000, CRC(955a605a) SHA1(2515accc2f4a06b07418e45eb62e746d09c81720) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */
- ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
- ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
+ ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
+ ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) )
@@ -1409,9 +1367,9 @@ ROM_START( inthuntu )
ROM_LOAD16_BYTE( "ith-h1-a.bin", 0x080001, 0x020000, CRC(0253065f) SHA1(a11e6bf014c19b2e317b75f01a7f0d7a9a85c7d3) )
ROM_LOAD16_BYTE( "ith-l1-a.bin", 0x080000, 0x020000, CRC(a57d688d) SHA1(aa049de5c41097b6f1da31e9bf3bac132f67aa6c) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */
- ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
- ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
+ ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
+ ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) )
@@ -1436,9 +1394,9 @@ ROM_START( kaiteids )
ROM_LOAD16_BYTE( "ith-h1j.bin", 0x080001, 0x020000, CRC(5a7b212d) SHA1(50562d804a43aed7c34c19c8345782ac2f85caa7) )
ROM_LOAD16_BYTE( "ith-l1j.bin", 0x080000, 0x020000, CRC(4c084494) SHA1(4f32003db32f13e19dd07c66996b4328ac2a671e) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */
- ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
- ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
+ ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
+ ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) )
@@ -1463,9 +1421,9 @@ ROM_START( hook )
ROM_LOAD16_BYTE( "h-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "h-sh0.rom", 0x000001, 0x010000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
- ROM_LOAD16_BYTE( "h-sl0.rom", 0x000000, 0x010000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "h-sh0.rom", 0x00001, 0x10000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
+ ROM_LOAD16_BYTE( "h-sl0.rom", 0x00000, 0x10000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) )
@@ -1490,9 +1448,9 @@ ROM_START( hooku )
ROM_LOAD16_BYTE( "h-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "h-sh0.rom", 0x000001, 0x010000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
- ROM_LOAD16_BYTE( "h-sl0.rom", 0x000000, 0x010000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "h-sh0.rom", 0x00001, 0x10000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
+ ROM_LOAD16_BYTE( "h-sl0.rom", 0x00000, 0x10000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) )
@@ -1517,9 +1475,9 @@ ROM_START( hookj )
ROM_LOAD16_BYTE( "h-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "h-sh0-a.3l", 0x000001, 0x010000, CRC(bd3d1f61) SHA1(0c884a0b5519f9c0823128872baf7b0c4078e5c4) )
- ROM_LOAD16_BYTE( "h-sl0-a.3n", 0x000000, 0x010000, CRC(76371def) SHA1(b7a86fd4eecdd8a538c32e08cd920c27bd50924b) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "h-sh0-a.3l", 0x00001, 0x10000, CRC(bd3d1f61) SHA1(0c884a0b5519f9c0823128872baf7b0c4078e5c4) )
+ ROM_LOAD16_BYTE( "h-sl0-a.3n", 0x00000, 0x10000, CRC(76371def) SHA1(b7a86fd4eecdd8a538c32e08cd920c27bd50924b) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) )
@@ -1569,9 +1527,9 @@ ROM_START( rtypeleo )
ROM_LOAD16_BYTE( "rtl-h1-d.bin", 0x080001, 0x020000, CRC(352ff444) SHA1(e302bc8dbf80abe5c1aaf02e92473fc72a796e72) )
ROM_LOAD16_BYTE( "rtl-l1-d.bin", 0x080000, 0x020000, CRC(fd34ea46) SHA1(aca12d46ebff94505d03884e45805e84bbece6a7) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x000001, 0x010000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
- ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x000000, 0x010000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x00001, 0x10000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
+ ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x00000, 0x10000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "rtl-c0.bin", 0x000000, 0x080000, CRC(fb588d7c) SHA1(78e96db9912b22f8eff03d57e470b1ef946f7351) )
@@ -1596,9 +1554,9 @@ ROM_START( rtypeleoj )
ROM_LOAD16_BYTE( "rtl-h1-d.bin", 0x080001, 0x020000, CRC(352ff444) SHA1(e302bc8dbf80abe5c1aaf02e92473fc72a796e72) )
ROM_LOAD16_BYTE( "rtl-l1-d.bin", 0x080000, 0x020000, CRC(fd34ea46) SHA1(aca12d46ebff94505d03884e45805e84bbece6a7) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x000001, 0x010000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
- ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x000000, 0x010000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x00001, 0x10000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
+ ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x00000, 0x10000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "rtl-c0.bin", 0x000000, 0x080000, CRC(fb588d7c) SHA1(78e96db9912b22f8eff03d57e470b1ef946f7351) )
@@ -1623,9 +1581,9 @@ ROM_START( mysticri )
ROM_LOAD16_BYTE( "mr-h1-b.bin", 0x080001, 0x010000, CRC(e17649b9) SHA1(fb09a0ccd22475d81ba667c88d1b5eb7cc64728f) )
ROM_LOAD16_BYTE( "mr-l1-b.bin", 0x080000, 0x010000, CRC(a87c62b4) SHA1(d3cae0f420faeb4556767b6ad817fc39d31b7273) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "mr-sh0.bin", 0x000001, 0x010000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
- ROM_LOAD16_BYTE( "mr-sl0.bin", 0x000000, 0x010000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mr-sh0.bin", 0x00001, 0x10000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
+ ROM_LOAD16_BYTE( "mr-sl0.bin", 0x00000, 0x10000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) )
@@ -1650,9 +1608,9 @@ ROM_START( gunhohki )
ROM_LOAD16_BYTE( "mr-h1.bin", 0x080001, 0x010000, CRC(c9532b60) SHA1(b83322ba7bb3eea4c64dd65b3c0a5cade61841d8) )
ROM_LOAD16_BYTE( "mr-l1.bin", 0x080000, 0x010000, CRC(6349b520) SHA1(406620d9c63ce3d6801105c8122e1d0bbe6152ad) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "mr-sh0.bin", 0x000001, 0x010000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
- ROM_LOAD16_BYTE( "mr-sl0.bin", 0x000000, 0x010000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "mr-sh0.bin", 0x00001, 0x10000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
+ ROM_LOAD16_BYTE( "mr-sl0.bin", 0x00000, 0x10000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) )
@@ -1677,10 +1635,10 @@ ROM_START( mysticrib )
ROM_LOAD16_BYTE( "h1", 0x080001, 0x010000, CRC(4dcb085b) SHA1(7c053f5ef2978e574d3d2d9f5c12035473d13c3b) )
ROM_LOAD16_BYTE( "l1", 0x080000, 0x010000, CRC(88df4f70) SHA1(f55769a107fe3f5446d8268f66e895b02727c61e) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
+ ROM_REGION( 0x20000, "soundcpu", 0 )
// older revision code? rev 3.31, doesn't work?
- ROM_LOAD16_BYTE( "sh0", 0x000001, 0x010000, CRC(fc7221ee) SHA1(4e714f31ce0d1bb2f6c649a26af748f96912848e) )
- ROM_LOAD16_BYTE( "sl0", 0x000000, 0x010000, CRC(65c809e6) SHA1(45a860b250219a15aa8a2177251f4d3f2e559b9e) )
+ ROM_LOAD16_BYTE( "sh0", 0x00001, 0x10000, CRC(fc7221ee) SHA1(4e714f31ce0d1bb2f6c649a26af748f96912848e) )
+ ROM_LOAD16_BYTE( "sl0", 0x00000, 0x10000, CRC(65c809e6) SHA1(45a860b250219a15aa8a2177251f4d3f2e559b9e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) )
@@ -1706,9 +1664,9 @@ ROM_START( uccops )
ROM_LOAD16_BYTE( "uc_h1.rom", 0x080001, 0x020000, CRC(8d29bcd6) SHA1(470b77d1b8f88824bac294bd12a205a23dad2287) )
ROM_LOAD16_BYTE( "uc_l1.rom", 0x080000, 0x020000, CRC(a8a402d8) SHA1(0b40fb69f0a3e24e6b60117d2d2fd4cc170bc621) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "uc_sh0.rom", 0x000001, 0x010000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
- ROM_LOAD16_BYTE( "uc_sl0.rom", 0x000000, 0x010000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
+ ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) )
@@ -1733,9 +1691,9 @@ ROM_START( uccopsu )
ROM_LOAD16_BYTE( "uc_h1-g.rom", 0x080001, 0x020000, CRC(6b8ca2de) SHA1(1096b93bbaa4c97d4900e8c083cde99195cad5ba) )
ROM_LOAD16_BYTE( "uc_l1-g.rom", 0x080000, 0x020000, CRC(2bdec7dd) SHA1(58817099e74fd5bc299b7bc14d83ee75ed200b53) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "uc_sh0.rom", 0x000001, 0x010000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
- ROM_LOAD16_BYTE( "uc_sl0.rom", 0x000000, 0x010000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
+ ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) )
@@ -1774,9 +1732,9 @@ ROM_START( uccopsar ) /* Alpha Renewal Version */
ROM_LOAD16_BYTE( "uc_h1.ic27", 0x080001, 0x020000, CRC(79d79742) SHA1(f9c03c4d42b5b3d0f0185462868b04f1bb679f90) )
ROM_LOAD16_BYTE( "uc_l1.ic38", 0x080000, 0x020000, CRC(37211581) SHA1(b8fdff96b2c7d5cf2975dcf81c00581ccb595c15) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x000001, 0x010000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
- ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x000000, 0x010000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x00001, 0x10000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
+ ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x00000, 0x10000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_c0.ic26", 0x000000, 0x080000, CRC(6a419a36) SHA1(1907d15fcc4a8bf875d19768667ee4de4702cc2a) )
@@ -1801,9 +1759,9 @@ ROM_START( uccopsj )
ROM_LOAD16_BYTE( "uc_h1_a.ic27", 0x080001, 0x020000, CRC(83f78dea) SHA1(6d197c3ea76beac31c3ea6e54a3ffea9d6c0c653) )
ROM_LOAD16_BYTE( "uc_l1_a.ic38", 0x080000, 0x020000, CRC(19628280) SHA1(e6c06cb7c37e46a7db3b4f318e836aa5a2390eda) )
- ROM_REGION( 0x100000, "soundcpu", 0 ) /* 1MB for the audio CPU - encrypted V35 = NANAO custom D80001 (?) */
- ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x000001, 0x010000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
- ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x000000, 0x010000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x00001, 0x10000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
+ ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x00000, 0x10000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_c0.ic26", 0x000000, 0x080000, CRC(6a419a36) SHA1(1907d15fcc4a8bf875d19768667ee4de4702cc2a) )
@@ -1828,9 +1786,9 @@ ROM_START( lethalth )
ROM_LOAD16_BYTE( "lt_d-h1.rom", 0x040001, 0x020000, CRC(d7dd3d48) SHA1(b848feee55159e334f711e4f661d415ffc1e3513) )
ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "lt_d-sh0.rom",0x000001, 0x010000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
- ROM_LOAD16_BYTE( "lt_d-sl0.rom",0x000000, 0x010000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x00001, 0x10000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
+ ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x00000, 0x10000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lt_7a.rom", 0x000000, 0x040000, CRC(ada0fd50) SHA1(7eeb33360cacddf8887f3acce65350af0251936d) )
@@ -1855,9 +1813,9 @@ ROM_START( thndblst )
ROM_LOAD16_BYTE( "lt_d-h1.rom", 0x040001, 0x020000, CRC(d7dd3d48) SHA1(b848feee55159e334f711e4f661d415ffc1e3513) )
ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x000001, 0x010000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
- ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x000000, 0x010000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x00001, 0x10000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
+ ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x00000, 0x10000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lt_7a.rom", 0x000000, 0x040000, CRC(ada0fd50) SHA1(7eeb33360cacddf8887f3acce65350af0251936d) )
@@ -1876,15 +1834,15 @@ ROM_START( thndblst )
ROM_END
ROM_START( nbbatman )
- ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "a1-h0-a.34", 0x000001, 0x040000, CRC(24a9b794) SHA1(a4867a89ea2749d60e6d1225bd84a488403b8cf3) )
ROM_LOAD16_BYTE( "a1-l0-a.31", 0x000000, 0x040000, CRC(846d7716) SHA1(28434fd74b168ef73d00779b3e5d8b36b1f3ef80) )
- ROM_LOAD16_BYTE( "a1-h1-.33", 0x100001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
- ROM_LOAD16_BYTE( "a1-l1-.32", 0x100000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
+ ROM_LOAD16_BYTE( "a1-h1-.33", 0x080001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
+ ROM_LOAD16_BYTE( "a1-l1-.32", 0x080000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "a1-sh0-.14", 0x000001, 0x010000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
- ROM_LOAD16_BYTE( "a1-sl0-.17", 0x000000, 0x010000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "a1-sh0-.14", 0x00001, 0x10000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
+ ROM_LOAD16_BYTE( "a1-sl0-.17", 0x00000, 0x10000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lh534k0c.9", 0x000000, 0x080000, CRC(314a0c6d) SHA1(a918ae638f10b18165f7d34ab7db54fbf258df01) )
@@ -1903,15 +1861,15 @@ ROM_START( nbbatman )
ROM_END
ROM_START( leaguemn )
- ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "lma1-h0.34", 0x000001, 0x040000, CRC(47c54204) SHA1(59de4e9a75c88dba71aa1949e7ac2c4b9e98f413) )
ROM_LOAD16_BYTE( "lma1-l0.31", 0x000000, 0x040000, CRC(1d062c82) SHA1(8d5969dc0264a05334196132bc2b5a3a59fb9e3a) )
- ROM_LOAD16_BYTE( "a1-h1-.33", 0x100001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
- ROM_LOAD16_BYTE( "a1-l1-.32", 0x100000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
+ ROM_LOAD16_BYTE( "a1-h1-.33", 0x080001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
+ ROM_LOAD16_BYTE( "a1-l1-.32", 0x080000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "a1-sh0-.14", 0x000001, 0x010000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
- ROM_LOAD16_BYTE( "a1-sl0-.17", 0x000000, 0x010000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "a1-sh0-.14", 0x00001, 0x10000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
+ ROM_LOAD16_BYTE( "a1-sl0-.17", 0x00000, 0x10000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lh534k0c.9", 0x000000, 0x080000, CRC(314a0c6d) SHA1(a918ae638f10b18165f7d34ab7db54fbf258df01) )
@@ -1936,9 +1894,9 @@ ROM_START( ssoldier )
ROM_LOAD16_BYTE( "f3-h1-a.bin", 0x080001, 0x020000, CRC(e3d9f619) SHA1(7f450413d1fae7250d2fcbe0ff4ee13d52fa15e8) )
ROM_LOAD16_BYTE( "f3-l1-a.bin", 0x080000, 0x020000, CRC(8cb5c396) SHA1(af130632b4ffb846cf355064391130d8c7ba73ad) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x000001, 0x010000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
- ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x000000, 0x010000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x00001, 0x10000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
+ ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x00000, 0x10000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "f3_w50.c0", 0x000000, 0x040000, CRC(47e788ee) SHA1(79a6624c9a36f380057c4fbda511128d62f9161e) )
@@ -1967,9 +1925,9 @@ ROM_START( psoldier )
ROM_LOAD16_BYTE( "f3_h1-.bin", 0x080001, 0x040000, CRC(c8d1947c) SHA1(832a448f117224941799aeece2ec0b25065be3e2) )
ROM_LOAD16_BYTE( "f3_l1-.bin", 0x080000, 0x040000, CRC(7b9492fc) SHA1(335166d096dec3773ec69b05dad6763505818dd6) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x000001, 0x010000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
- ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x000000, 0x010000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x00001, 0x10000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
+ ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x00000, 0x10000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "f3_w50.c0", 0x000000, 0x040000, CRC(47e788ee) SHA1(79a6624c9a36f380057c4fbda511128d62f9161e) )
@@ -1992,15 +1950,15 @@ ROM_START( psoldier )
ROM_END
ROM_START( dsoccr94j )
- ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE("a3_-h0-e.bin", 0x000001, 0x040000, CRC(8de1dbcd) SHA1(3726c7f8bc1e61a488ab7ef0b79a7a45054235c2) )
ROM_LOAD16_BYTE("a3_-l0-e.bin", 0x000000, 0x040000, CRC(d3df8bfd) SHA1(b98064579491aef8eb8ccb94195412e79674a0c1) )
- ROM_LOAD16_BYTE("ds_h1-c.rom", 0x100001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
- ROM_LOAD16_BYTE("ds_l1-c.rom", 0x100000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
+ ROM_LOAD16_BYTE("ds_h1-c.rom", 0x080001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
+ ROM_LOAD16_BYTE("ds_l1-c.rom", 0x080000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE("ds_sh0.rom", 0x000001, 0x010000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
- ROM_LOAD16_BYTE("ds_sl0.rom", 0x000000, 0x010000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE("ds_sh0.rom", 0x00001, 0x10000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
+ ROM_LOAD16_BYTE("ds_sl0.rom", 0x00000, 0x10000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */
ROM_LOAD("c0.bin", 0x000000, 0x100000, CRC(83ea8a47) SHA1(b29c8cc50da85c8168dda92446dfa12582580f96) )
@@ -2023,15 +1981,15 @@ ROM_START( dsoccr94j )
ROM_END
ROM_START( gunforc2 )
- ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE("a2-h0-a.6h", 0x000001, 0x040000, CRC(49965e22) SHA1(077283c66a4cc2c47221c5f3267f440223615a15) )
ROM_LOAD16_BYTE("a2-l0-a.8h", 0x000000, 0x040000, CRC(8c88b278) SHA1(0fd8e663619dcd8c81b3baa290bb0e72c185273a) )
- ROM_LOAD16_BYTE("a2-h1-a.6f", 0x100001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
- ROM_LOAD16_BYTE("a2-l1-a.8f", 0x100000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
+ ROM_LOAD16_BYTE("a2-h1-a.6f", 0x080001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
+ ROM_LOAD16_BYTE("a2-l1-a.8f", 0x080000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE("a2_sh0.3l", 0x000001, 0x010000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
- ROM_LOAD16_BYTE("a2_sl0.5l", 0x000000, 0x010000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE("a2_sh0.3l", 0x00001, 0x10000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
+ ROM_LOAD16_BYTE("a2_sl0.5l", 0x00000, 0x10000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD("a2_c0.1a", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) )
@@ -2050,15 +2008,15 @@ ROM_START( gunforc2 )
ROM_END
ROM_START( geostorm )
- ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE("geo-h0.bin", 0x000001, 0x040000, CRC(9be58d09) SHA1(ab98b91abc8129c342c59674eab9683cccc6ca35) )
ROM_LOAD16_BYTE("geo-l0.bin", 0x000000, 0x040000, CRC(59abb75d) SHA1(52b48685470ffa3f36a8259bf333448bf40caea9) )
- ROM_LOAD16_BYTE("a2-h1-a.6f", 0x100001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
- ROM_LOAD16_BYTE("a2-l1-a.8f", 0x100000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
+ ROM_LOAD16_BYTE("a2-h1-a.6f", 0x080001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
+ ROM_LOAD16_BYTE("a2-l1-a.8f", 0x080000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
- ROM_REGION( 0x100000, "soundcpu", 0 )
- ROM_LOAD16_BYTE("a2_sh0.3l", 0x000001, 0x010000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
- ROM_LOAD16_BYTE("a2_sl0.5l", 0x000000, 0x010000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE("a2_sh0.3l", 0x00001, 0x10000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
+ ROM_LOAD16_BYTE("a2_sl0.5l", 0x00000, 0x10000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD("a2_c0.1a", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) )
@@ -2076,180 +2034,104 @@ ROM_START( geostorm )
ROM_LOAD("a2_da.1l", 0x000000, 0x100000, CRC(3c8cdb6a) SHA1(d1f4186e8ddf99698443f8ee1c60a6e6bc367b09) )
ROM_END
+/***************************************************************************/
-static void init_m92(running_machine &machine, int hasbanks)
+static DRIVER_INIT( m92 )
{
m92_state *state = machine.driver_data<m92_state>();
- UINT8 *RAM = machine.region("maincpu")->base();
-
- if (hasbanks)
- {
- memcpy(RAM + 0xffff0, RAM + 0x7fff0, 0x10); /* Start vector */
- state->m_bankaddress = 0xa0000; /* Initial bank */
- set_m92_bank(machine);
-
- /* Mirror used by In The Hunt for protection */
- memcpy(RAM + 0xc0000, RAM + 0x00000, 0x10000);
- memory_set_bankptr(machine, "bank2", &RAM[0xc0000]);
- }
+ UINT8 *ROM = machine.region("maincpu")->base();
- RAM = machine.region("soundcpu")->base();
-
- if (RAM)
- memcpy(RAM + 0xffff0, RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
+ memory_set_bankptr(machine, "bank1", &ROM[0xa0000]);
state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x80;
- state->m_sprite_buffer_busy = 1;
-
- setvector_callback(machine, NULL, VECTOR_INIT);
-}
-
-static DRIVER_INIT( bmaster )
-{
- init_m92(machine, 1);
-}
-
-static DRIVER_INIT( gunforce )
-{
- init_m92(machine, 1);
-}
-
-static DRIVER_INIT( hook )
-{
- init_m92(machine, 1);
}
-static DRIVER_INIT( mysticri )
-{
- init_m92(machine, 1);
-}
-
-static DRIVER_INIT( uccops )
-{
- init_m92(machine, 1);
-}
-
-static DRIVER_INIT( rtypeleo )
+/* different vector base */
+static DRIVER_INIT( m92_alt )
{
m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 1);
- state->m_irq_vectorbase = 0x20;
-}
+ UINT8 *ROM = machine.region("maincpu")->base();
-static DRIVER_INIT( rtypelej )
-{
- m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 1);
- state->m_irq_vectorbase = 0x20;
-}
+ memory_set_bankptr(machine, "bank1", &ROM[0xa0000]);
-static DRIVER_INIT( majtitl2 )
-{
- m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 1);
-
- /* This game has an eprom on the game board */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xf0000, 0xf3fff, FUNC(m92_eeprom_r), FUNC(m92_eeprom_w));
-
- state->m_game_kludge = 2;
-}
-
-static DRIVER_INIT( kaiteids )
-{
- init_m92(machine, 1);
-}
-
-static DRIVER_INIT( inthunt )
-{
- init_m92(machine, 1);
+ state->m_game_kludge = 0;
+ state->m_irq_vectorbase = 0x20;
}
-
+/* different vector base, different address map (no bank1) */
static DRIVER_INIT( lethalth )
{
m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 0);
- state->m_irq_vectorbase = 0x20;
- /* NOP out the bankswitcher */
- machine.device("maincpu")->memory().space(AS_IO)->nop_write(0x20, 0x21);
+ state->m_game_kludge = 0;
+ state->m_irq_vectorbase = 0x20;
}
-static DRIVER_INIT( nbbatman )
+/* has bankswitching */
+static DRIVER_INIT( m92_bank )
{
- UINT8 *RAM = machine.region("maincpu")->base();
+ m92_state *state = machine.driver_data<m92_state>();
+ UINT8 *ROM = machine.region("maincpu")->base();
- init_m92(machine, 1);
+ memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
+ machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x21, FUNC(m92_bankswitch_w));
- memcpy(RAM + 0x80000, RAM + 0x100000, 0x20000);
+ state->m_game_kludge = 0;
+ state->m_irq_vectorbase = 0x80;
}
-static DRIVER_INIT( ssoldier )
+/* has bankswitching, has eeprom, needs sprite kludge */
+static DRIVER_INIT( majtitl2 )
{
m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 1);
- state->m_irq_vectorbase = 0x20;
- /* main CPU expects an answer even before writing the first command */
- state->m_sound_status = 0x80;
-}
+ UINT8 *ROM = machine.region("maincpu")->base();
-static DRIVER_INIT( psoldier )
-{
- m92_state *state = machine.driver_data<m92_state>();
- init_m92(machine, 1);
- state->m_irq_vectorbase = 0x20;
- /* main CPU expects an answer even before writing the first command */
- state->m_sound_status = 0x80;
-}
+ memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
+ machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x21, FUNC(m92_bankswitch_w));
-static DRIVER_INIT( dsoccr94j )
-{
- init_m92(machine, 1);
-}
+ /* This game has an eeprom on the game board */
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xf0000, 0xf3fff, FUNC(m92_eeprom_r), FUNC(m92_eeprom_w));
-static DRIVER_INIT( gunforc2 )
-{
- UINT8 *RAM = machine.region("maincpu")->base();
- init_m92(machine, 1);
- memcpy(RAM + 0x80000, RAM + 0x100000, 0x20000);
+ state->m_game_kludge = 2;
+ state->m_irq_vectorbase = 0x80;
}
/***************************************************************************/
-GAME( 1991, gunforce, 0, gunforce, gunforce, gunforce, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", 0 )
-GAME( 1991, gunforcej,gunforce, gunforce, gunforce, gunforce, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", 0 )
-GAME( 1991, gunforceu,gunforce, gunforce, gunforce, gunforce, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", 0 )
-GAME( 1991, bmaster, 0, bmaster, bmaster, bmaster, ROT0, "Irem", "Blade Master (World)", 0 )
-GAME( 1991, crossbld, bmaster, bmaster, bmaster, bmaster, ROT0, "Irem", "Cross Blades! (Japan)", 0 )
-GAME( 1991, lethalth, 0, lethalth, lethalth, lethalth, ROT270, "Irem", "Lethal Thunder (World)", 0 )
-GAME( 1991, thndblst, lethalth, lethalth, lethalth, lethalth, ROT270, "Irem", "Thunder Blaster (Japan)", 0 )
-GAME( 1992, uccops, 0, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (World)", 0 )
-GAME( 1992, uccopsu, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (US)", 0 )
-GAME( 1992, uccopsar, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (Alpha Renewal Version)", 0 )
-GAME( 1992, uccopsj, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (Japan)", 0 )
-GAME( 1992, mysticri, 0, mysticri, mysticri, mysticri, ROT0, "Irem", "Mystic Riders (World)", 0 )
-GAME( 1992, gunhohki, mysticri, mysticri, mysticri, mysticri, ROT0, "Irem", "Mahou Keibitai Gun Hohki (Japan)", 0 )
+GAME( 1991, gunforce, 0, gunforce, gunforce, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", GAME_SUPPORTS_SAVE )
+GAME( 1991, gunforcej,gunforce, gunforce, gunforce, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1991, gunforceu,gunforce, gunforce, gunforce, m92, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", GAME_SUPPORTS_SAVE )
+GAME( 1991, bmaster, 0, bmaster, bmaster, m92, ROT0, "Irem", "Blade Master (World)", GAME_SUPPORTS_SAVE )
+GAME( 1991, crossbld, bmaster, bmaster, bmaster, m92, ROT0, "Irem", "Cross Blades! (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1991, lethalth, 0, lethalth, lethalth, lethalth, ROT270, "Irem", "Lethal Thunder (World)", GAME_SUPPORTS_SAVE )
+GAME( 1991, thndblst, lethalth, lethalth, lethalth, lethalth, ROT270, "Irem", "Thunder Blaster (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, uccops, 0, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (World)", GAME_SUPPORTS_SAVE )
+GAME( 1992, uccopsu, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (US)", GAME_SUPPORTS_SAVE )
+GAME( 1992, uccopsar, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (Alpha Renewal Version)", GAME_SUPPORTS_SAVE )
+GAME( 1992, uccopsj, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, mysticri, 0, mysticri, mysticri, m92, ROT0, "Irem", "Mystic Riders (World)", GAME_SUPPORTS_SAVE )
+GAME( 1992, gunhohki, mysticri, mysticri, mysticri, m92, ROT0, "Irem", "Mahou Keibitai Gun Hohki (Japan)", GAME_SUPPORTS_SAVE )
// cheaply produced Korean board, has original chips, but lacks any proper labels
// main code is also significantly different to the supported original set, so it might just be a legitimate early revision on a cheap board
-GAME( 1992, mysticrib,mysticri, mysticri, mysticri, mysticri, ROT0, "Irem", "Mystic Riders (bootleg?)", 0)
-GAME( 1992, majtitl2, 0, majtitl2, majtitl2, majtitl2, ROT0, "Irem", "Major Title 2 (World)", 0 )
-GAME( 1992, majtitl2j,majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem", "Major Title 2 (Japan)", 0 )
-GAME( 1992, skingame, majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 1)", 0 )
-GAME( 1992, skingame2,majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 2)", 0 )
-GAME( 1992, hook, 0, hook, hook, hook, ROT0, "Irem", "Hook (World)", 0 )
-GAME( 1992, hooku, hook, hook, hook, hook, ROT0, "Irem America", "Hook (US)", 0 )
-GAME( 1992, hookj, hook, hook, hook, hook, ROT0, "Irem", "Hook (Japan)", 0 )
-GAME( 1992, ppan, hook, ppan, hook, hook, ROT0, "bootleg", "Peter Pan (bootleg of Hook)", GAME_NOT_WORKING ) // PCB marked 'Peter Pan', no title screen, made in Italy?
-GAME( 1992, rtypeleo, 0, rtypeleo, rtypeleo, rtypeleo, ROT0, "Irem", "R-Type Leo (World)", 0 )
-GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, rtypelej, ROT0, "Irem", "R-Type Leo (Japan)", 0 )
-GAME( 1993, inthunt, 0, inthunt, inthunt, inthunt, ROT0, "Irem", "In The Hunt (World)", 0 )
-GAME( 1993, inthuntu, inthunt, inthunt, inthunt, inthunt, ROT0, "Irem America", "In The Hunt (US)", 0 )
-GAME( 1993, kaiteids, inthunt, inthunt, inthunt, kaiteids, ROT0, "Irem", "Kaitei Daisensou (Japan)", 0 )
-GAME( 1993, nbbatman, 0, nbbatman, nbbatman, nbbatman, ROT0, "Irem America", "Ninja Baseball Batman (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, leaguemn, nbbatman, nbbatman, nbbatman, nbbatman, ROT0, "Irem", "Yakyuu Kakutou League-Man (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, ssoldier, 0, psoldier, psoldier, ssoldier, ROT0, "Irem America", "Superior Soldiers (US)", 0 )
-GAME( 1993, psoldier, ssoldier, psoldier, psoldier, psoldier, ROT0, "Irem", "Perfect Soldiers (Japan)", 0 )
-GAME( 1994, dsoccr94j,dsoccr94, dsoccr94j, dsoccr94j,dsoccr94j,ROT0, "Irem", "Dream Soccer '94 (Japan)", 0 )
-GAME( 1994, gunforc2, 0, gunforc2, gunforc2, gunforc2, ROT0, "Irem", "Gunforce 2 (US)", 0 )
-GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, gunforc2, ROT0, "Irem", "Geostorm (Japan)", 0 )
+GAME( 1992, mysticrib,mysticri, mysticri, mysticri, m92, ROT0, "Irem", "Mystic Riders (bootleg?)", GAME_SUPPORTS_SAVE )
+GAME( 1992, majtitl2, 0, majtitl2, majtitl2, majtitl2, ROT0, "Irem", "Major Title 2 (World)", GAME_SUPPORTS_SAVE )
+GAME( 1992, majtitl2j,majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem", "Major Title 2 (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, skingame, majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1992, skingame2,majtitl2, majtitl2, majtitl2, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1992, hook, 0, hook, hook, m92, ROT0, "Irem", "Hook (World)", GAME_SUPPORTS_SAVE )
+GAME( 1992, hooku, hook, hook, hook, m92, ROT0, "Irem America", "Hook (US)", GAME_SUPPORTS_SAVE )
+GAME( 1992, hookj, hook, hook, hook, m92, ROT0, "Irem", "Hook (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, ppan, hook, ppan, hook, m92, ROT0, "bootleg", "Peter Pan (bootleg of Hook)", GAME_NOT_WORKING ) // PCB marked 'Peter Pan', no title screen, made in Italy?
+GAME( 1992, rtypeleo, 0, rtypeleo, rtypeleo, m92_alt, ROT0, "Irem", "R-Type Leo (World)", GAME_SUPPORTS_SAVE )
+GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, m92_alt, ROT0, "Irem", "R-Type Leo (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1993, inthunt, 0, inthunt, inthunt, m92, ROT0, "Irem", "In The Hunt (World)", GAME_SUPPORTS_SAVE )
+GAME( 1993, inthuntu, inthunt, inthunt, inthunt, m92, ROT0, "Irem America", "In The Hunt (US)", GAME_SUPPORTS_SAVE )
+GAME( 1993, kaiteids, inthunt, inthunt, inthunt, m92, ROT0, "Irem", "Kaitei Daisensou (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1993, nbbatman, 0, nbbatman, nbbatman, m92_bank, ROT0, "Irem America", "Ninja Baseball Bat Man (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, leaguemn, nbbatman, nbbatman, nbbatman, m92_bank, ROT0, "Irem", "Yakyuu Kakutou League-Man (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, ssoldier, 0, psoldier, psoldier, m92_alt, ROT0, "Irem America", "Superior Soldiers (US)", GAME_SUPPORTS_SAVE )
+GAME( 1993, psoldier, ssoldier, psoldier, psoldier, m92_alt, ROT0, "Irem", "Perfect Soldiers (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1994, dsoccr94j,dsoccr94, dsoccr94j, dsoccr94j,m92_bank, ROT0, "Irem", "Dream Soccer '94 (Japan, M92 hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1994, gunforc2, 0, gunforc2, gunforc2, m92_bank, ROT0, "Irem", "Gunforce 2 (US)", GAME_SUPPORTS_SAVE )
+GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_bank, ROT0, "Irem", "Geostorm (Japan)", GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h
index d32a9ac45d3..55fc37e1091 100644
--- a/src/mame/includes/m107.h
+++ b/src/mame/includes/m107.h
@@ -19,9 +19,7 @@ public:
m107_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
- emu_timer *m_scanline_timer;
UINT8 m_irq_vectorbase;
- int m_irqvector;
int m_sound_status;
UINT16 *m_vram_data;
UINT8 m_spritesystem;
diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h
index 1263dfd9b10..f4df40ef2dd 100644
--- a/src/mame/includes/m92.h
+++ b/src/mame/includes/m92.h
@@ -19,10 +19,7 @@ public:
m92_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
- UINT8 m_irqvector;
UINT16 m_sound_status;
- UINT32 m_bankaddress;
- emu_timer *m_scanline_timer;
UINT8 m_irq_vectorbase;
UINT32 m_raster_irq_position;
UINT16 *m_vram_data;
@@ -32,7 +29,7 @@ public:
pf_layer_info m_pf_layer[3];
UINT16 m_pf_master_control[4];
INT32 m_sprite_list;
- int m_palette_bank;
+ UINT8 m_palette_bank;
};
diff --git a/src/mame/machine/irem_cpu.c b/src/mame/machine/irem_cpu.c
index 74189ad7939..ec2793d1f81 100644
--- a/src/mame/machine/irem_cpu.c
+++ b/src/mame/machine/irem_cpu.c
@@ -304,7 +304,7 @@ const UINT8 hook_decryption_table[256] = {
// 0x87 (0x18) opcode is right but arguments could be swapped
// 0xbb (0x2b) not sure, could be 0x1b
-// rtypeleo
+// rtypeleo, firebarr
const UINT8 rtypeleo_decryption_table[256] = {
0x5d,xxxx,0xc6,xxxx,xxxx,xxxx,0x2a,0x3a,xxxx,xxxx,xxxx,0x86,xxxx,0x22,xxxx,0xf3, /* 00 */
xxxx,xxxx,xxxx,xxxx,xxxx,0x38,0xf7,0x42,0x04,xxxx,xxxx,0x1f,0x4b,xxxx,xxxx,0x58, /* 10 */
@@ -498,7 +498,7 @@ clc
ret
*/
-// leagueman
+// leagueman, wpksoc
const UINT8 leagueman_decryption_table[256] = {
xxxx,xxxx,xxxx,0x55,0xbb,xxxx,0x23,0x79, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x38,xxxx, /* 00 */
0x01,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0x3d,xxxx,xxxx,xxxx,0xba,xxxx,0x1e,xxxx, /* 10 */