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.
This commit is contained in:
Angelo Salese 2011-05-07 14:42:55 +00:00
parent df7401d0e2
commit 396fcfc38a
5 changed files with 285 additions and 472 deletions

View File

@ -14,7 +14,7 @@
To Do: 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 2008-08
Dip locations have been added assuming that the layout is the same as the 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" #include "sound/iremga20.h"
#define M107_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt*/ #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_1 ((state->m_irq_vectorbase+4)/4) /* ??? */
#define M107_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */ #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_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 ) static MACHINE_START( m107 )
{ {
m107_state *state = machine.driver_data<m107_state>(); // TODO: state save registrations
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));
} }
/*****************************************************************************/ /*****************************************************************************/
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>(); m107_state *state = machine.driver_data<m107_state>();
int scanline = param; int scanline = param;
@ -85,13 +66,9 @@ static TIMER_CALLBACK( m107_scanline_interrupt )
machine.primary_screen->update_partial(scanline); machine.primary_screen->update_partial(scanline);
cputag_set_input_line_and_vector(machine, "maincpu", 0, HOLD_LINE, M107_IRQ_0); 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 ) static WRITE16_HANDLER( m107_coincounter_w )
{ {
@ -102,42 +79,23 @@ static WRITE16_HANDLER( m107_coincounter_w )
} }
} }
static WRITE16_HANDLER( m107_bankswitch_w )
enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, V30_ASSERT, V30_CLEAR };
static TIMER_CALLBACK( setvector_callback )
{ {
m107_state *state = machine.driver_data<m107_state>(); if (ACCESSING_BITS_0_7)
switch(param)
{ {
case VECTOR_INIT: state->m_irqvector = 0; break; memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
case YM2151_ASSERT: state->m_irqvector |= 0x2; break; if (data & 0xf9)
case YM2151_CLEAR: state->m_irqvector &= ~0x2; break; logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space->device()), data);
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( m107_soundlatch_w ) 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); soundlatch_w(space, 0, data & 0xff);
// logerror("soundlatch_w %02x\n",data); // logerror("soundlatch_w %02x\n",data);
} }
static READ16_HANDLER( m107_sound_status_r ) static READ16_HANDLER( m107_sound_status_r )
{ {
m107_state *state = space->machine().driver_data<m107_state>(); 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 ) 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 ) 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(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf8fff) AM_RAM AM_BASE_MEMBER(m107_state, m_spriteram) 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(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 ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 16 ) 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(0x00, 0x01) AM_WRITE(m107_soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w) AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w)
AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */ 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(0x80, 0x9f) AM_WRITE(m107_control_w)
AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */ AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */
AM_RANGE(0xb0, 0xb1) AM_WRITE(m107_spritebuffer_w) 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 ) static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x1ffff) AM_ROM AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff) 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(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(0xa8044, 0xa8045) AM_READWRITE(m107_soundlatch_r, m107_sound_irq_ack_w)
AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m107_sound_status_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 ADDRESS_MAP_END
/******************************************************************************/ /******************************************************************************/
@ -760,8 +716,8 @@ static const gfx_layout charlayout =
RGN_FRAC(1,1), RGN_FRAC(1,1),
4, 4,
{ 8, 0, 24, 16 }, { 8, 0, 24, 16 },
{ 0, 1, 2, 3, 4, 5, 6, 7 }, { STEP8(0,1) },
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, { STEP8(0,32) },
32*8 32*8
}; };
@ -771,10 +727,8 @@ static const gfx_layout spritelayout =
RGN_FRAC(1,4), RGN_FRAC(1,4),
4, 4,
{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,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, { STEP8(0,1), STEP8(16*8,1) },
16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, { STEP16(0,8) },
{ 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 },
32*8 32*8
}; };
@ -784,9 +738,8 @@ static const gfx_layout spritelayout2 =
RGN_FRAC(1,4), RGN_FRAC(1,4),
4, 4,
{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,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 }, { STEP8(8,1), STEP8(0,1) },
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, { STEP16(0,16) },
8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
32*8 32*8
}; };
@ -804,10 +757,7 @@ GFXDECODE_END
static void sound_irq(device_t *device, int state) static void sound_irq(device_t *device, int state)
{ {
if (state) cputag_set_input_line(device->machine(), "soundcpu", NEC_INPUT_LINE_INTP0, state ? ASSERT_LINE : CLEAR_LINE);
device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_ASSERT);
else
device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_CLEAR);
} }
static const ym2151_interface ym2151_config = static const ym2151_interface ym2151_config =
@ -831,7 +781,8 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_CPU_CONFIG(firebarr_config) MCFG_CPU_CONFIG(firebarr_config)
MCFG_MACHINE_START(m107) MCFG_MACHINE_START(m107)
MCFG_MACHINE_RESET(m107)
MCFG_TIMER_ADD_SCANLINE("scantimer", m107_scanline_interrupt, "screen", 0, 1)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) 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-h1-c.9e", 0x080001, 0x20000, CRC(bb7f6968) SHA1(366747672aac939454d9915cda5277b0438f063b) )
ROM_LOAD16_BYTE( "f4-a-l1-c.9h", 0x080000, 0x20000, CRC(9d57edd6) SHA1(16122829b61aa3aee88aeb6634831e8cf95eaee0) ) ROM_LOAD16_BYTE( "f4-a-l1-c.9h", 0x080000, 0x20000, CRC(9d57edd6) SHA1(16122829b61aa3aee88aeb6634831e8cf95eaee0) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "f4-b-sh0-b", 0x000001, 0x10000, CRC(30a8e232) SHA1(d4695aed35a1aa796b2872e58a6014e8b28bc154) ) ROM_LOAD16_BYTE( "f4-b-sh0-b", 0x00001, 0x10000, CRC(30a8e232) SHA1(d4695aed35a1aa796b2872e58a6014e8b28bc154) )
ROM_LOAD16_BYTE( "f4-b-sl0-b", 0x000000, 0x10000, CRC(204b5f1f) SHA1(f0386500773cd7cca93f0e8e740db29182320c70) ) ROM_LOAD16_BYTE( "f4-b-sl0-b", 0x00000, 0x10000, CRC(204b5f1f) SHA1(f0386500773cd7cca93f0e8e740db29182320c70) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "f4-c00", 0x000000, 0x80000, CRC(50cab384) SHA1(66e88a1dfa943e0d49c2e186ac2f6cbf5cfe0864) ) ROM_LOAD16_BYTE( "f4-c00", 0x000000, 0x80000, CRC(50cab384) SHA1(66e88a1dfa943e0d49c2e186ac2f6cbf5cfe0864) )
@ -923,15 +874,15 @@ ROM_START( firebarr )
ROM_END ROM_END
ROM_START( dsoccr94 ) 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_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_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_h1-c.rom", 0x080001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
ROM_LOAD16_BYTE( "ds_l1-c.rom", 0x100000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) ) ROM_LOAD16_BYTE( "ds_l1-c.rom", 0x080000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "ds_sh0.rom", 0x000001, 0x010000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) ) ROM_LOAD16_BYTE( "ds_sh0.rom", 0x00001, 0x10000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
ROM_LOAD16_BYTE( "ds_sl0.rom", 0x000000, 0x010000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) ) ROM_LOAD16_BYTE( "ds_sl0.rom", 0x00000, 0x10000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "ds_c00.rom", 0x000000, 0x100000, CRC(2d31d418) SHA1(6cd0e362bc2e3f2b20d96ee97a04bff46ee3016a) ) ROM_LOAD16_BYTE( "ds_c00.rom", 0x000000, 0x100000, CRC(2d31d418) SHA1(6cd0e362bc2e3f2b20d96ee97a04bff46ee3016a) )
@ -950,13 +901,13 @@ ROM_START( dsoccr94 )
ROM_END ROM_END
ROM_START( wpksoc ) 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-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_LOAD16_BYTE( "pk-l0-eur-d.l0", 0x000000, 0x040000, CRC(03816bae) SHA1(832e2ec722b41d41626fec583fc11e9ff62cdaa0) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x000001, 0x010000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) ) ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x00001, 0x10000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x000000, 0x010000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) ) ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x00000, 0x10000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "pk-c00-os.c00", 0x000000, 0x80000, CRC(42ae3d73) SHA1(e4777066155c9882695ebff0412bd879b8d6f716) ) ROM_LOAD16_BYTE( "pk-c00-os.c00", 0x000000, 0x80000, CRC(42ae3d73) SHA1(e4777066155c9882695ebff0412bd879b8d6f716) )
@ -979,13 +930,13 @@ ROM_START( wpksoc )
ROM_END ROM_END
ROM_START( kftgoal ) 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-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_LOAD16_BYTE( "pk-l0-usa-d.l0", 0x000000, 0x040000, CRC(39fe30d2) SHA1(e0c117da4fe9c779dd534ee0d09685aeb5f579c6) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x000001, 0x010000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) ) ROM_LOAD16_BYTE( "pk-sh0.sh0", 0x00001, 0x10000, CRC(1145998c) SHA1(cdb2a428e0f35302b81696dab02d3dd2c433f6e5) )
ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x000000, 0x010000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) ) ROM_LOAD16_BYTE( "pk-sl0.sl0", 0x00000, 0x10000, CRC(542ee1c7) SHA1(b934adeecbba17cf96b06a2b1dc1ceaebdf9ad10) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD16_BYTE( "pk-c00-os.c00", 0x000000, 0x80000, CRC(42ae3d73) SHA1(e4777066155c9882695ebff0412bd879b8d6f716) ) 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_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_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_LOAD( "st-m28c64c.eeprom", 0x000, 0x2000, CRC(8e0c8b7c) SHA1(0b57290d709e6d54ce1bb3a5c01b80590203c1dd) )
ROM_END ROM_END
@ -1015,13 +966,9 @@ ROM_END
static DRIVER_INIT( firebarr ) static DRIVER_INIT( firebarr )
{ {
m107_state *state = machine.driver_data<m107_state>(); 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", &ROM[0xa0000]);
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 = 0x20; state->m_irq_vectorbase = 0x20;
state->m_spritesystem = 1; state->m_spritesystem = 1;
@ -1030,13 +977,10 @@ static DRIVER_INIT( firebarr )
static DRIVER_INIT( dsoccr94 ) static DRIVER_INIT( dsoccr94 )
{ {
m107_state *state = machine.driver_data<m107_state>(); 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_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
memory_set_bankptr(machine, "bank1", &RAM[0xa0000]); /* Initial bank */ machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x06, 0x07, FUNC(m107_bankswitch_w));
RAM = machine.region("soundcpu")->base();
memcpy(RAM + 0xffff0, RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
state->m_irq_vectorbase = 0x80; state->m_irq_vectorbase = 0x80;
state->m_spritesystem = 0; state->m_spritesystem = 0;
@ -1045,14 +989,6 @@ static DRIVER_INIT( dsoccr94 )
static DRIVER_INIT( wpksoc ) static DRIVER_INIT( wpksoc )
{ {
m107_state *state = machine.driver_data<m107_state>(); 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_irq_vectorbase = 0x80;
state->m_spritesystem = 0; 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 ) 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 // 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( 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( 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( 1994, kftgoal, wpksoc, wpksoc, wpksoc, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_MECHANICAL )

View File

@ -52,14 +52,14 @@ Glitch list!
Almost certainly a core bug. Almost certainly a core bug.
Irem Skins: 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. be removed from the ROM definition.
LeagueMan: LeagueMan:
Raster effects don't work properly (not even cpu time per line?). 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) (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 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 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 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" #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_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_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
#define M92_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* Sound cpu 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) static void set_m92_bank(running_machine &machine)
@ -225,24 +222,21 @@ static void set_m92_bank(running_machine &machine)
static MACHINE_START( m92 ) static MACHINE_START( m92 )
{ {
m92_state *state = machine.driver_data<m92_state>(); 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_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));
} }
static MACHINE_RESET( m92 ) static MACHINE_RESET( m92 )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
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>(); m92_state *state = machine.driver_data<m92_state>();
int scanline = param; int scanline = param;
@ -259,25 +253,20 @@ static TIMER_CALLBACK( m92_scanline_interrupt )
machine.primary_screen->update_partial(scanline); machine.primary_screen->update_partial(scanline);
cputag_set_input_line_and_vector(machine, "maincpu", 0, HOLD_LINE, M92_IRQ_0); 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 ) 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); // logerror("%05x: EEPROM RE %04x\n",cpu_get_pc(&space->device()),offset);
return RAM[offset] | 0xff00; return RAM[offset] | 0xff00;
} }
static WRITE16_HANDLER( m92_eeprom_w ) 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); // logerror("%05x: EEPROM WR %04x\n",cpu_get_pc(&space->device()),offset);
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
RAM[offset] = data; RAM[offset] = data;
@ -297,11 +286,11 @@ static WRITE16_HANDLER( m92_coincounter_w )
static WRITE16_HANDLER( m92_bankswitch_w ) static WRITE16_HANDLER( m92_bankswitch_w )
{ {
m92_state *state = space->machine().driver_data<m92_state>();
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
{ {
state->m_bankaddress = 0x100000 + ((data & 0x7) * 0x10000); memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
set_m92_bank(space->machine()); 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 ) 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); soundlatch_w(space, 0, data & 0xff);
} }
@ -361,7 +322,7 @@ static READ16_HANDLER( m92_soundlatch_r )
static WRITE16_HANDLER( m92_sound_irq_ack_w ) 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 ) 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); cputag_set_input_line_and_vector(space->machine(), "maincpu", 0, HOLD_LINE, M92_IRQ_3);
} }
static WRITE16_HANDLER( m92_sound_reset_w ) static WRITE16_HANDLER( m92_sound_reset_w )
{ {
cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE); 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 ) static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x9ffff) AM_ROM AM_RANGE(0x00000, 0x9ffff) AM_ROM
AM_RANGE(0xa0000, 0xbffff) AM_ROMBANK("bank1") 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(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(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) 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(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(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(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 ADDRESS_MAP_END
static ADDRESS_MAP_START( m92_portmap, AS_IO, 16 ) 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(0x08, 0x09) AM_READ(m92_sound_status_r) /* answer from sound CPU */
AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w) AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_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(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w) AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_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 ) static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x1ffff) AM_ROM AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff) 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(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(0xa8044, 0xa8045) AM_READWRITE(m92_soundlatch_r, m92_sound_irq_ack_w)
AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m92_sound_status_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 ADDRESS_MAP_END
/******************************************************************************/ /******************************************************************************/
@ -905,10 +863,7 @@ GFXDECODE_END
static void sound_irq(device_t *device, int state) static void sound_irq(device_t *device, int state)
{ {
if (state) cputag_set_input_line(device->machine(), "soundcpu", NEC_INPUT_LINE_INTP0, state ? ASSERT_LINE : CLEAR_LINE);
device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_ASSERT);
else
device->machine().scheduler().synchronize(FUNC(setvector_callback), YM2151_CLEAR);
} }
static const ym2151_interface ym2151_config = static const ym2151_interface ym2151_config =
@ -938,6 +893,8 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_MACHINE_START(m92) MCFG_MACHINE_START(m92)
MCFG_MACHINE_RESET(m92) MCFG_MACHINE_RESET(m92)
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
/* video hardware */ /* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@ -1023,6 +980,8 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_MACHINE_START(m92) MCFG_MACHINE_START(m92)
MCFG_MACHINE_RESET(m92) MCFG_MACHINE_RESET(m92)
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
/* video hardware */ /* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@ -1089,7 +1048,6 @@ static MACHINE_CONFIG_DERIVED( gunforc2, m92 )
MCFG_CPU_CONFIG(gunforc2_config) MCFG_CPU_CONFIG(gunforc2_config)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/***************************************************************************/ /***************************************************************************/
ROM_START( bmaster ) /* M92-B-B PCB used for program rom locations */ 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-h1-b.5l", 0x080001, 0x10000, CRC(082b7158) SHA1(ca2cfcb3ecd1f130d3fb893f08d53521e7d443d4) )
ROM_LOAD16_BYTE( "bm_d-l1-b.5j", 0x080000, 0x10000, CRC(6ff0c04e) SHA1(7293a50445053101d22bc596d13e1a7ed67a65c6) ) ROM_LOAD16_BYTE( "bm_d-l1-b.5j", 0x080000, 0x10000, CRC(6ff0c04e) SHA1(7293a50445053101d22bc596d13e1a7ed67a65c6) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x000001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) ) ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x00001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x000000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) ) ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x00000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "bm_c0.rom", 0x000000, 0x40000, CRC(2cc966b8) SHA1(4d55954813efe975b7e644448effc61b22896e0b) ) 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-h1.3e", 0x080001, 0x10000, CRC(18da6c47) SHA1(7b8cf82cf0c94d1ec64e77e15b877b5ffd307bc3) )
ROM_LOAD16_BYTE( "bm_d-l1.5e", 0x080000, 0x10000, CRC(a65c1b42) SHA1(beb4131d045158231ba999b72f21c97c014672d0) ) ROM_LOAD16_BYTE( "bm_d-l1.5e", 0x080000, 0x10000, CRC(a65c1b42) SHA1(beb4131d045158231ba999b72f21c97c014672d0) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x000001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) ) ROM_LOAD16_BYTE( "bm_d-sh0.rom", 0x00001, 0x10000, CRC(9f7c075b) SHA1(1dd3fb4dc41d3adea9ca8d1b4363dadebea49bda) )
ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x000000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) ) ROM_LOAD16_BYTE( "bm_d-sl0.rom", 0x00000, 0x10000, CRC(1fa87c89) SHA1(971eae7dd2591191ed7a948a444387896735e149) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "bm_c0.rom", 0x000000, 0x40000, CRC(2cc966b8) SHA1(4d55954813efe975b7e644448effc61b22896e0b) ) 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_END
ROM_START( skingame ) ROM_START( skingame )
ROM_REGION( 0x180000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "is-h0-d.5m", 0x000001, 0x40000, CRC(80940abb) SHA1(7af5b667383f40987cc8190d81937410ea2c0301) ) ROM_LOAD16_BYTE( "is-h0-d.5m", 0x00001, 0x40000, CRC(80940abb) SHA1(7af5b667383f40987cc8190d81937410ea2c0301) )
ROM_LOAD16_BYTE( "is-l0-d.5f", 0x000000, 0x40000, CRC(b84beed6) SHA1(b026a68623d7d96545a4b01770fc6cdd2a0ed0f4) ) ROM_LOAD16_BYTE( "is-l0-d.5f", 0x00000, 0x40000, CRC(b84beed6) SHA1(b026a68623d7d96545a4b01770fc6cdd2a0ed0f4) )
ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) ) ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) ) ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) ) ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) ) ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) ) ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@ -1172,7 +1130,7 @@ ROM_START( skingame )
ROM_REGION( 0x80000, "irem", 0 ) ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) ) 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_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 ) ROM_REGION( 0x0c00, "plds", 0 )
@ -1184,15 +1142,15 @@ ROM_START( skingame )
ROM_END ROM_END
ROM_START( majtitl2 ) ROM_START( majtitl2 )
ROM_REGION( 0x180000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "mt2-h0-b.5m", 0x000001, 0x40000, CRC(b163b12e) SHA1(cdb01a5266bd11f4cff1cb5c05cf24de13a527b2) ) ROM_LOAD16_BYTE( "mt2-h0-b.5m", 0x00001, 0x40000, CRC(b163b12e) SHA1(cdb01a5266bd11f4cff1cb5c05cf24de13a527b2) )
ROM_LOAD16_BYTE( "mt2-l0-b.5f", 0x000000, 0x40000, CRC(6f3b5d9d) SHA1(a39f25f29195023fb507dc9ffbfcbd57a4e6b30a) ) ROM_LOAD16_BYTE( "mt2-l0-b.5f", 0x00000, 0x40000, CRC(6f3b5d9d) SHA1(a39f25f29195023fb507dc9ffbfcbd57a4e6b30a) )
ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) ) ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) ) ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) ) ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) ) ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) ) ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@ -1209,7 +1167,7 @@ ROM_START( majtitl2 )
ROM_REGION( 0x80000, "irem", 0 ) ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) ) 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_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 ) ROM_REGION( 0x0c00, "plds", 0 )
@ -1221,15 +1179,15 @@ ROM_START( majtitl2 )
ROM_END ROM_END
ROM_START( majtitl2j ) ROM_START( majtitl2j )
ROM_REGION( 0x180000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "mt2-h0", 0x000001, 0x40000, CRC(8a8d71ad) SHA1(8c45d947d15eb3a2c2584c9e1cd0e42988955905) ) ROM_LOAD16_BYTE( "mt2-h0", 0x00001, 0x40000, CRC(8a8d71ad) SHA1(8c45d947d15eb3a2c2584c9e1cd0e42988955905) )
ROM_LOAD16_BYTE( "mt2-l1", 0x000000, 0x40000, CRC(dd4fff51) SHA1(9281bac10fdbfa9eede9d069b70eb38d9ae612ce) ) ROM_LOAD16_BYTE( "mt2-l1", 0x00000, 0x40000, CRC(dd4fff51) SHA1(9281bac10fdbfa9eede9d069b70eb38d9ae612ce) )
ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) ) ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) ) ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) ) ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) ) ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) ) ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@ -1246,7 +1204,7 @@ ROM_START( majtitl2j )
ROM_REGION( 0x80000, "irem", 0 ) ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) ) 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_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 ) ROM_REGION( 0x0c00, "plds", 0 )
@ -1258,15 +1216,15 @@ ROM_START( majtitl2j )
ROM_END ROM_END
ROM_START( skingame2 ) ROM_START( skingame2 )
ROM_REGION( 0x180000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "mt2-h0-a.5m", 0x000001, 0x40000, CRC(7c6dbbc7) SHA1(6ac2df542cbcac782d733aaa0f2e4ded702ec24f) ) ROM_LOAD16_BYTE( "mt2-h0-a.5m", 0x00001, 0x40000, CRC(7c6dbbc7) SHA1(6ac2df542cbcac782d733aaa0f2e4ded702ec24f) )
ROM_LOAD16_BYTE( "mt2-l0-a.5f", 0x000000, 0x40000, CRC(9de5f689) SHA1(ea5057cab0a2f5c4586337fc5a17f1a728450cbf) ) ROM_LOAD16_BYTE( "mt2-l0-a.5f", 0x00000, 0x40000, CRC(9de5f689) SHA1(ea5057cab0a2f5c4586337fc5a17f1a728450cbf) )
ROM_LOAD16_BYTE( "is-h1.5l", 0x100001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) ) ROM_LOAD16_BYTE( "is-h1.5l", 0x80001, 0x40000, CRC(9ba8e1f2) SHA1(ae86697a97223d236e2e6dd33ddb8105b9f926cb) )
ROM_LOAD16_BYTE( "is-l1.5j", 0x100000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) ) ROM_LOAD16_BYTE( "is-l1.5j", 0x80000, 0x40000, CRC(e4e00626) SHA1(e8c6c7ad6a367da4036915a155c8695ad90ae47b) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mt2sh0", 0x000001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) ) ROM_LOAD16_BYTE( "mt2sh0", 0x00001, 0x10000, CRC(1ecbea43) SHA1(8d66ef419f75569f2c83a89c3985742b8a47914f) )
ROM_LOAD16_BYTE( "mt2sl0", 0x000000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) ) ROM_LOAD16_BYTE( "mt2sl0", 0x00000, 0x10000, CRC(8fd5b531) SHA1(92cae3f6dac7f89b559063de3be2f38587536b65) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) ) ROM_LOAD( "c0", 0x000000, 0x40000, CRC(7e61e4b5) SHA1(d0164862937bd506e701777c51dea1ddb3e2eda4) )
@ -1283,7 +1241,7 @@ ROM_START( skingame2 )
ROM_REGION( 0x80000, "irem", 0 ) ROM_REGION( 0x80000, "irem", 0 )
ROM_LOAD( "da", 0x000000, 0x80000, CRC(713b9e9f) SHA1(91384d67d4ba9c7d926fbecb077293c661b8ec83) ) 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_LOAD( "mt2eep", 0x000000, 0x800, CRC(208af971) SHA1(69384cac24b7af35a031f9b60e035131a8b10cb2) )
ROM_REGION( 0x0c00, "plds", 0 ) 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_h1-c.5l", 0x040001, 0x20000, CRC(c84188b7) SHA1(ff710be742f610d90538db296acdd435260bef12) )
ROM_LOAD16_BYTE( "gf_l1-c.5j", 0x040000, 0x20000, CRC(b189f72a) SHA1(f17d87349a57e1a4b20c4947e41edd7c39eaca13) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "gf_sh0.rom", 0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) ) ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
ROM_LOAD16_BYTE( "gf_sl0.rom", 0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) ) ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) ) 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_h1-e.5l", 0x040001, 0x20000, CRC(d9744f5d) SHA1(056d6e6e9874c33dcebe2e0ec946117d5eaa5d76) )
ROM_LOAD16_BYTE( "gfb_l1-e.5j", 0x040000, 0x20000, CRC(a0f7b61b) SHA1(5fc7fc3f57e82a9ae4e1f3c3e8e3e3b0bd3ff8f5) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "gf_sh0.rom",0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) ) ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
ROM_LOAD16_BYTE( "gf_sl0.rom",0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) ) ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) ) 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_h1-d.5l", 0x040001, 0x20000, CRC(08a3736c) SHA1(0ae904cf486a371f8b635c1f9dc5201e38a73f5a) )
ROM_LOAD16_BYTE( "gf_l1-d.5j", 0x040000, 0x20000, CRC(435f524f) SHA1(65c282ec50123747880850bc32c7ace0471ed9f2) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "gf_sh0.rom",0x000001, 0x010000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) ) ROM_LOAD16_BYTE( "gf_sh0.rom", 0x00001, 0x10000, CRC(3f8f16e0) SHA1(a9f568c1b585c2cf13b21716954dac0a89936fc6) )
ROM_LOAD16_BYTE( "gf_sl0.rom",0x000000, 0x010000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) ) ROM_LOAD16_BYTE( "gf_sl0.rom", 0x00000, 0x10000, CRC(db0b13a3) SHA1(6723026010610b706725a5284a7b8d70fe479dae) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "gf_c0.rom", 0x000000, 0x40000, CRC(b3b74979) SHA1(b5b4a4775e0b28c3f37273f93f69886c911af4aa) ) 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-h1-b.bin", 0x080001, 0x020000, CRC(fc2899df) SHA1(f811ff5fd55655afdb25950d317db85c8091b6d6) )
ROM_LOAD16_BYTE( "ith-l1-b.bin", 0x080000, 0x020000, CRC(955a605a) SHA1(2515accc2f4a06b07418e45eb62e746d09c81720) ) ROM_LOAD16_BYTE( "ith-l1-b.bin", 0x080000, 0x020000, CRC(955a605a) SHA1(2515accc2f4a06b07418e45eb62e746d09c81720) )
ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) ) ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) ) ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) ) 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-h1-a.bin", 0x080001, 0x020000, CRC(0253065f) SHA1(a11e6bf014c19b2e317b75f01a7f0d7a9a85c7d3) )
ROM_LOAD16_BYTE( "ith-l1-a.bin", 0x080000, 0x020000, CRC(a57d688d) SHA1(aa049de5c41097b6f1da31e9bf3bac132f67aa6c) ) ROM_LOAD16_BYTE( "ith-l1-a.bin", 0x080000, 0x020000, CRC(a57d688d) SHA1(aa049de5c41097b6f1da31e9bf3bac132f67aa6c) )
ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) ) ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) ) ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) ) 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-h1j.bin", 0x080001, 0x020000, CRC(5a7b212d) SHA1(50562d804a43aed7c34c19c8345782ac2f85caa7) )
ROM_LOAD16_BYTE( "ith-l1j.bin", 0x080000, 0x020000, CRC(4c084494) SHA1(4f32003db32f13e19dd07c66996b4328ac2a671e) ) ROM_LOAD16_BYTE( "ith-l1j.bin", 0x080000, 0x020000, CRC(4c084494) SHA1(4f32003db32f13e19dd07c66996b4328ac2a671e) )
ROM_REGION( 0x100000, "soundcpu", 0 ) /* Irem D8000011A1 */ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Irem D8000011A1 */
ROM_LOAD16_BYTE( "ith-sh0.rom", 0x000001, 0x010000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) ) ROM_LOAD16_BYTE( "ith-sh0.rom", 0x00001, 0x10000, CRC(209c8b7f) SHA1(eaf4a6d9222fe181df65cea1f13c3f2ebff2ec5b) )
ROM_LOAD16_BYTE( "ith-sl0.rom", 0x000000, 0x010000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) ) ROM_LOAD16_BYTE( "ith-sl0.rom", 0x00000, 0x10000, CRC(18472d65) SHA1(2705e94ee350ffda272c50ea3bf605826aa19978) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "ith_ic26.rom", 0x000000, 0x080000, CRC(4c1818cf) SHA1(fc8c2ae640bc3504a52736be46febb92c998fd7d) ) 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-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "h-sh0.rom", 0x000001, 0x010000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) ) ROM_LOAD16_BYTE( "h-sh0.rom", 0x00001, 0x10000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
ROM_LOAD16_BYTE( "h-sl0.rom", 0x000000, 0x010000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) ) ROM_LOAD16_BYTE( "h-sl0.rom", 0x00000, 0x10000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) ) 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-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "h-sh0.rom", 0x000001, 0x010000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) ) ROM_LOAD16_BYTE( "h-sh0.rom", 0x00001, 0x10000, CRC(86a4e56e) SHA1(61163010e713be64368a4126f17d33cbdcf0c5ed) )
ROM_LOAD16_BYTE( "h-sl0.rom", 0x000000, 0x010000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) ) ROM_LOAD16_BYTE( "h-sl0.rom", 0x00000, 0x10000, CRC(10fd9676) SHA1(1b51181a8f0711997e107e9a8b8f44341d08ea81) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) ) 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-h1.rom", 0x080001, 0x020000, CRC(264ba1f0) SHA1(49ecf9b3e5375629607fb747abe264406065580b) )
ROM_LOAD16_BYTE( "h-l1.rom", 0x080000, 0x020000, CRC(f9913731) SHA1(be7871d6843e76f66fae6b501c5ee83ccc366463) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "h-sh0-a.3l", 0x000001, 0x010000, CRC(bd3d1f61) SHA1(0c884a0b5519f9c0823128872baf7b0c4078e5c4) ) ROM_LOAD16_BYTE( "h-sh0-a.3l", 0x00001, 0x10000, CRC(bd3d1f61) SHA1(0c884a0b5519f9c0823128872baf7b0c4078e5c4) )
ROM_LOAD16_BYTE( "h-sl0-a.3n", 0x000000, 0x010000, CRC(76371def) SHA1(b7a86fd4eecdd8a538c32e08cd920c27bd50924b) ) ROM_LOAD16_BYTE( "h-sl0-a.3n", 0x00000, 0x10000, CRC(76371def) SHA1(b7a86fd4eecdd8a538c32e08cd920c27bd50924b) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "hook-c0.rom", 0x000000, 0x040000, CRC(dec63dcf) SHA1(e9869110f832d782c460b123928b042c65fdf8bd) ) 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-h1-d.bin", 0x080001, 0x020000, CRC(352ff444) SHA1(e302bc8dbf80abe5c1aaf02e92473fc72a796e72) )
ROM_LOAD16_BYTE( "rtl-l1-d.bin", 0x080000, 0x020000, CRC(fd34ea46) SHA1(aca12d46ebff94505d03884e45805e84bbece6a7) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x000001, 0x010000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) ) ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x00001, 0x10000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x000000, 0x010000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) ) ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x00000, 0x10000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "rtl-c0.bin", 0x000000, 0x080000, CRC(fb588d7c) SHA1(78e96db9912b22f8eff03d57e470b1ef946f7351) ) 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-h1-d.bin", 0x080001, 0x020000, CRC(352ff444) SHA1(e302bc8dbf80abe5c1aaf02e92473fc72a796e72) )
ROM_LOAD16_BYTE( "rtl-l1-d.bin", 0x080000, 0x020000, CRC(fd34ea46) SHA1(aca12d46ebff94505d03884e45805e84bbece6a7) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x000001, 0x010000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) ) ROM_LOAD16_BYTE( "rtl-sh0a.bin", 0x00001, 0x10000, CRC(e518b4e3) SHA1(44ec1d6b27bc3e49ad967f43960398ba1a19c5e3) )
ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x000000, 0x010000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) ) ROM_LOAD16_BYTE( "rtl-sl0a.bin", 0x00000, 0x10000, CRC(896f0d36) SHA1(9246b1a5a8717dd823340d4cb79012a3df6fa4b7) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "rtl-c0.bin", 0x000000, 0x080000, CRC(fb588d7c) SHA1(78e96db9912b22f8eff03d57e470b1ef946f7351) ) 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-h1-b.bin", 0x080001, 0x010000, CRC(e17649b9) SHA1(fb09a0ccd22475d81ba667c88d1b5eb7cc64728f) )
ROM_LOAD16_BYTE( "mr-l1-b.bin", 0x080000, 0x010000, CRC(a87c62b4) SHA1(d3cae0f420faeb4556767b6ad817fc39d31b7273) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mr-sh0.bin", 0x000001, 0x010000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) ) ROM_LOAD16_BYTE( "mr-sh0.bin", 0x00001, 0x10000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
ROM_LOAD16_BYTE( "mr-sl0.bin", 0x000000, 0x010000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) ) ROM_LOAD16_BYTE( "mr-sl0.bin", 0x00000, 0x10000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) ) 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-h1.bin", 0x080001, 0x010000, CRC(c9532b60) SHA1(b83322ba7bb3eea4c64dd65b3c0a5cade61841d8) )
ROM_LOAD16_BYTE( "mr-l1.bin", 0x080000, 0x010000, CRC(6349b520) SHA1(406620d9c63ce3d6801105c8122e1d0bbe6152ad) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "mr-sh0.bin", 0x000001, 0x010000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) ) ROM_LOAD16_BYTE( "mr-sh0.bin", 0x00001, 0x10000, CRC(50d335e4) SHA1(a1a92e95fbd6b99d904a82cea4a1ff6fd2ac8dde) )
ROM_LOAD16_BYTE( "mr-sl0.bin", 0x000000, 0x010000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) ) ROM_LOAD16_BYTE( "mr-sl0.bin", 0x00000, 0x10000, CRC(0fa32721) SHA1(1561ddd2597592060b8a78f1dff6cbb25fb7cd2e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) ) 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( "h1", 0x080001, 0x010000, CRC(4dcb085b) SHA1(7c053f5ef2978e574d3d2d9f5c12035473d13c3b) )
ROM_LOAD16_BYTE( "l1", 0x080000, 0x010000, CRC(88df4f70) SHA1(f55769a107fe3f5446d8268f66e895b02727c61e) ) 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? // older revision code? rev 3.31, doesn't work?
ROM_LOAD16_BYTE( "sh0", 0x000001, 0x010000, CRC(fc7221ee) SHA1(4e714f31ce0d1bb2f6c649a26af748f96912848e) ) ROM_LOAD16_BYTE( "sh0", 0x00001, 0x10000, CRC(fc7221ee) SHA1(4e714f31ce0d1bb2f6c649a26af748f96912848e) )
ROM_LOAD16_BYTE( "sl0", 0x000000, 0x010000, CRC(65c809e6) SHA1(45a860b250219a15aa8a2177251f4d3f2e559b9e) ) ROM_LOAD16_BYTE( "sl0", 0x00000, 0x10000, CRC(65c809e6) SHA1(45a860b250219a15aa8a2177251f4d3f2e559b9e) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "mr-c0.bin", 0x000000, 0x040000, CRC(872a8fad) SHA1(236406e5959c81a1cffe96fef02d637c2150ce1e) ) 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_h1.rom", 0x080001, 0x020000, CRC(8d29bcd6) SHA1(470b77d1b8f88824bac294bd12a205a23dad2287) )
ROM_LOAD16_BYTE( "uc_l1.rom", 0x080000, 0x020000, CRC(a8a402d8) SHA1(0b40fb69f0a3e24e6b60117d2d2fd4cc170bc621) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "uc_sh0.rom", 0x000001, 0x010000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
ROM_LOAD16_BYTE( "uc_sl0.rom", 0x000000, 0x010000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) ) 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_h1-g.rom", 0x080001, 0x020000, CRC(6b8ca2de) SHA1(1096b93bbaa4c97d4900e8c083cde99195cad5ba) )
ROM_LOAD16_BYTE( "uc_l1-g.rom", 0x080000, 0x020000, CRC(2bdec7dd) SHA1(58817099e74fd5bc299b7bc14d83ee75ed200b53) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "uc_sh0.rom", 0x000001, 0x010000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) ) ROM_LOAD16_BYTE( "uc_sh0.rom", 0x00001, 0x10000, CRC(df90b198) SHA1(6b334457f06f6b9cfb355ba3d399bebb37b5733e) )
ROM_LOAD16_BYTE( "uc_sl0.rom", 0x000000, 0x010000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) ) ROM_LOAD16_BYTE( "uc_sl0.rom", 0x00000, 0x10000, CRC(96c11aac) SHA1(16c47b4f97f0532fff30bb163f26d8cf6b923a2e) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_w38m.rom", 0x000000, 0x080000, CRC(130a40e5) SHA1(f70bad2fe126bb0e451a3fa6100a610928e9a502) ) 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_h1.ic27", 0x080001, 0x020000, CRC(79d79742) SHA1(f9c03c4d42b5b3d0f0185462868b04f1bb679f90) )
ROM_LOAD16_BYTE( "uc_l1.ic38", 0x080000, 0x020000, CRC(37211581) SHA1(b8fdff96b2c7d5cf2975dcf81c00581ccb595c15) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x000001, 0x010000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) ) ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x00001, 0x10000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x000000, 0x010000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) ) ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x00000, 0x10000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_c0.ic26", 0x000000, 0x080000, CRC(6a419a36) SHA1(1907d15fcc4a8bf875d19768667ee4de4702cc2a) ) 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_h1_a.ic27", 0x080001, 0x020000, CRC(83f78dea) SHA1(6d197c3ea76beac31c3ea6e54a3ffea9d6c0c653) )
ROM_LOAD16_BYTE( "uc_l1_a.ic38", 0x080000, 0x020000, CRC(19628280) SHA1(e6c06cb7c37e46a7db3b4f318e836aa5a2390eda) ) 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_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x000001, 0x010000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) ) ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x00001, 0x10000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x000000, 0x010000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) ) ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x00000, 0x10000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "uc_c0.ic26", 0x000000, 0x080000, CRC(6a419a36) SHA1(1907d15fcc4a8bf875d19768667ee4de4702cc2a) ) 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-h1.rom", 0x040001, 0x020000, CRC(d7dd3d48) SHA1(b848feee55159e334f711e4f661d415ffc1e3513) )
ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) ) ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "lt_d-sh0.rom",0x000001, 0x010000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) ) ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x00001, 0x10000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
ROM_LOAD16_BYTE( "lt_d-sl0.rom",0x000000, 0x010000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) ) ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x00000, 0x10000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lt_7a.rom", 0x000000, 0x040000, CRC(ada0fd50) SHA1(7eeb33360cacddf8887f3acce65350af0251936d) ) 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-h1.rom", 0x040001, 0x020000, CRC(d7dd3d48) SHA1(b848feee55159e334f711e4f661d415ffc1e3513) )
ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) ) ROM_LOAD16_BYTE( "lt_d-l1.rom", 0x040000, 0x020000, CRC(b94b3bd8) SHA1(7b89d9177d8b357b09317606cb2070c14c3449a5) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x000001, 0x010000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) ) ROM_LOAD16_BYTE( "lt_d-sh0.rom", 0x00001, 0x10000, CRC(af5b224f) SHA1(a07f2c6ca0e65af016d74b90342cfaab7535324e) )
ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x000000, 0x010000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) ) ROM_LOAD16_BYTE( "lt_d-sl0.rom", 0x00000, 0x10000, CRC(cb3faac3) SHA1(e1ee32fac7ee9e97fbf68904572e90aa9d0c9460) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lt_7a.rom", 0x000000, 0x040000, CRC(ada0fd50) SHA1(7eeb33360cacddf8887f3acce65350af0251936d) ) ROM_LOAD( "lt_7a.rom", 0x000000, 0x040000, CRC(ada0fd50) SHA1(7eeb33360cacddf8887f3acce65350af0251936d) )
@ -1876,15 +1834,15 @@ ROM_START( thndblst )
ROM_END ROM_END
ROM_START( nbbatman ) 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-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-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-h1-.33", 0x080001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
ROM_LOAD16_BYTE( "a1-l1-.32", 0x100000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) ) ROM_LOAD16_BYTE( "a1-l1-.32", 0x080000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "a1-sh0-.14", 0x000001, 0x010000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) ) ROM_LOAD16_BYTE( "a1-sh0-.14", 0x00001, 0x10000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
ROM_LOAD16_BYTE( "a1-sl0-.17", 0x000000, 0x010000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) ) ROM_LOAD16_BYTE( "a1-sl0-.17", 0x00000, 0x10000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lh534k0c.9", 0x000000, 0x080000, CRC(314a0c6d) SHA1(a918ae638f10b18165f7d34ab7db54fbf258df01) ) ROM_LOAD( "lh534k0c.9", 0x000000, 0x080000, CRC(314a0c6d) SHA1(a918ae638f10b18165f7d34ab7db54fbf258df01) )
@ -1903,15 +1861,15 @@ ROM_START( nbbatman )
ROM_END ROM_END
ROM_START( leaguemn ) 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-h0.34", 0x000001, 0x040000, CRC(47c54204) SHA1(59de4e9a75c88dba71aa1949e7ac2c4b9e98f413) )
ROM_LOAD16_BYTE( "lma1-l0.31", 0x000000, 0x040000, CRC(1d062c82) SHA1(8d5969dc0264a05334196132bc2b5a3a59fb9e3a) ) 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-h1-.33", 0x080001, 0x040000, CRC(3ce2aab5) SHA1(b39f17853bcab7ab290fdfaf9f3d8e8c2d91072a) )
ROM_LOAD16_BYTE( "a1-l1-.32", 0x100000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) ) ROM_LOAD16_BYTE( "a1-l1-.32", 0x080000, 0x040000, CRC(116d9bcc) SHA1(c2faf8d1c6b51ac1483757777fd55961b74501fb) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "a1-sh0-.14", 0x000001, 0x010000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) ) ROM_LOAD16_BYTE( "a1-sh0-.14", 0x00001, 0x10000, CRC(b7fae3e6) SHA1(ce41380d6c0f29f2facf9bf23dd4403648cd9eb4) )
ROM_LOAD16_BYTE( "a1-sl0-.17", 0x000000, 0x010000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) ) ROM_LOAD16_BYTE( "a1-sl0-.17", 0x00000, 0x10000, CRC(b26d54fc) SHA1(136e1a83da08a0dc9046faf71f3f58d8d3095fde) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "lh534k0c.9", 0x000000, 0x080000, CRC(314a0c6d) SHA1(a918ae638f10b18165f7d34ab7db54fbf258df01) ) 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-h1-a.bin", 0x080001, 0x020000, CRC(e3d9f619) SHA1(7f450413d1fae7250d2fcbe0ff4ee13d52fa15e8) )
ROM_LOAD16_BYTE( "f3-l1-a.bin", 0x080000, 0x020000, CRC(8cb5c396) SHA1(af130632b4ffb846cf355064391130d8c7ba73ad) ) ROM_LOAD16_BYTE( "f3-l1-a.bin", 0x080000, 0x020000, CRC(8cb5c396) SHA1(af130632b4ffb846cf355064391130d8c7ba73ad) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x000001, 0x010000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) ) ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x00001, 0x10000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x000000, 0x010000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) ) ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x00000, 0x10000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "f3_w50.c0", 0x000000, 0x040000, CRC(47e788ee) SHA1(79a6624c9a36f380057c4fbda511128d62f9161e) ) 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_h1-.bin", 0x080001, 0x040000, CRC(c8d1947c) SHA1(832a448f117224941799aeece2ec0b25065be3e2) )
ROM_LOAD16_BYTE( "f3_l1-.bin", 0x080000, 0x040000, CRC(7b9492fc) SHA1(335166d096dec3773ec69b05dad6763505818dd6) ) ROM_LOAD16_BYTE( "f3_l1-.bin", 0x080000, 0x040000, CRC(7b9492fc) SHA1(335166d096dec3773ec69b05dad6763505818dd6) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x000001, 0x010000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) ) ROM_LOAD16_BYTE( "f3_sh0.sh0", 0x00001, 0x10000, CRC(90b55e5e) SHA1(cf77ccb68a10a29289bc42db348f480e21c3a558) )
ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x000000, 0x010000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) ) ROM_LOAD16_BYTE( "f3_sl0.sl0", 0x00000, 0x10000, CRC(77c16d57) SHA1(68c7f026b718b700f1f9162f53cdc859b65944b9) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
ROM_LOAD( "f3_w50.c0", 0x000000, 0x040000, CRC(47e788ee) SHA1(79a6624c9a36f380057c4fbda511128d62f9161e) ) ROM_LOAD( "f3_w50.c0", 0x000000, 0x040000, CRC(47e788ee) SHA1(79a6624c9a36f380057c4fbda511128d62f9161e) )
@ -1992,15 +1950,15 @@ ROM_START( psoldier )
ROM_END ROM_END
ROM_START( dsoccr94j ) 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_-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("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_h1-c.rom", 0x080001, 0x040000, CRC(6109041b) SHA1(063898a88f8a6a9f1510aa55e53a39f037b02903) )
ROM_LOAD16_BYTE("ds_l1-c.rom", 0x100000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) ) ROM_LOAD16_BYTE("ds_l1-c.rom", 0x080000, 0x040000, CRC(97a01f6b) SHA1(e188e28f880f5f3f4d7b49eca639d643989b1468) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE("ds_sh0.rom", 0x000001, 0x010000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) ) ROM_LOAD16_BYTE("ds_sh0.rom", 0x00001, 0x10000, CRC(23fe6ffc) SHA1(896377961cafc19e44d9d889f9fbfdbaedd556da) )
ROM_LOAD16_BYTE("ds_sl0.rom", 0x000000, 0x010000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) ) ROM_LOAD16_BYTE("ds_sl0.rom", 0x00000, 0x10000, CRC(768132e5) SHA1(1bb64516eb58d3b246f08e1c07f091e78085689f) )
ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x400000, "gfx1", 0 ) /* chars */
ROM_LOAD("c0.bin", 0x000000, 0x100000, CRC(83ea8a47) SHA1(b29c8cc50da85c8168dda92446dfa12582580f96) ) ROM_LOAD("c0.bin", 0x000000, 0x100000, CRC(83ea8a47) SHA1(b29c8cc50da85c8168dda92446dfa12582580f96) )
@ -2023,15 +1981,15 @@ ROM_START( dsoccr94j )
ROM_END ROM_END
ROM_START( gunforc2 ) 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-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-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-h1-a.6f", 0x080001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
ROM_LOAD16_BYTE("a2-l1-a.8f", 0x100000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) ) ROM_LOAD16_BYTE("a2-l1-a.8f", 0x080000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE("a2_sh0.3l", 0x000001, 0x010000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) ) ROM_LOAD16_BYTE("a2_sh0.3l", 0x00001, 0x10000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
ROM_LOAD16_BYTE("a2_sl0.5l", 0x000000, 0x010000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) ) ROM_LOAD16_BYTE("a2_sl0.5l", 0x00000, 0x10000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD("a2_c0.1a", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) ) ROM_LOAD("a2_c0.1a", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) )
@ -2050,15 +2008,15 @@ ROM_START( gunforc2 )
ROM_END ROM_END
ROM_START( geostorm ) 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-h0.bin", 0x000001, 0x040000, CRC(9be58d09) SHA1(ab98b91abc8129c342c59674eab9683cccc6ca35) )
ROM_LOAD16_BYTE("geo-l0.bin", 0x000000, 0x040000, CRC(59abb75d) SHA1(52b48685470ffa3f36a8259bf333448bf40caea9) ) 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-h1-a.6f", 0x080001, 0x040000, CRC(34280b88) SHA1(3fd3cdf8acfa845abacb0708fb48741ee44dbf13) )
ROM_LOAD16_BYTE("a2-l1-a.8f", 0x100000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) ) ROM_LOAD16_BYTE("a2-l1-a.8f", 0x080000, 0x040000, CRC(c8c13f51) SHA1(fde3fd983ebb920f79e6898aa0576da9dd9f0c15) )
ROM_REGION( 0x100000, "soundcpu", 0 ) ROM_REGION( 0x20000, "soundcpu", 0 )
ROM_LOAD16_BYTE("a2_sh0.3l", 0x000001, 0x010000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) ) ROM_LOAD16_BYTE("a2_sh0.3l", 0x00001, 0x10000, CRC(2e2d103d) SHA1(6b663948f69218308d9ecdb677557b2db1dfbf5a) )
ROM_LOAD16_BYTE("a2_sl0.5l", 0x000000, 0x010000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) ) ROM_LOAD16_BYTE("a2_sl0.5l", 0x00000, 0x10000, CRC(2287e0b3) SHA1(755dab510915161428ed57ab18410c393e138e65) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x200000, "gfx1", 0 ) /* chars */
ROM_LOAD("a2_c0.1a", 0x000000, 0x080000, CRC(68b8f574) SHA1(fb935947cdde43e84453f82caeea141a4ae7226d) ) 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_LOAD("a2_da.1l", 0x000000, 0x100000, CRC(3c8cdb6a) SHA1(d1f4186e8ddf99698443f8ee1c60a6e6bc367b09) )
ROM_END ROM_END
/***************************************************************************/
static void init_m92(running_machine &machine, int hasbanks) static DRIVER_INIT( m92 )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
UINT8 *RAM = machine.region("maincpu")->base(); UINT8 *ROM = machine.region("maincpu")->base();
if (hasbanks) memory_set_bankptr(machine, "bank1", &ROM[0xa0000]);
{
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]);
}
RAM = machine.region("soundcpu")->base();
if (RAM)
memcpy(RAM + 0xffff0, RAM + 0x1fff0, 0x10); /* Sound cpu Start vector */
state->m_game_kludge = 0; state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x80; state->m_irq_vectorbase = 0x80;
state->m_sprite_buffer_busy = 1;
setvector_callback(machine, NULL, VECTOR_INIT);
} }
static DRIVER_INIT( bmaster ) /* different vector base */
{ static DRIVER_INIT( m92_alt )
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 )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
init_m92(machine, 1); UINT8 *ROM = machine.region("maincpu")->base();
memory_set_bankptr(machine, "bank1", &ROM[0xa0000]);
state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x20; state->m_irq_vectorbase = 0x20;
} }
static DRIVER_INIT( rtypelej ) /* different vector base, different address map (no bank1) */
{
m92_state *state = machine.driver_data<m92_state>();
init_m92(machine, 1);
state->m_irq_vectorbase = 0x20;
}
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);
}
static DRIVER_INIT( lethalth ) static DRIVER_INIT( lethalth )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
init_m92(machine, 0);
state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x20; state->m_irq_vectorbase = 0x20;
/* NOP out the bankswitcher */
machine.device("maincpu")->memory().space(AS_IO)->nop_write(0x20, 0x21);
} }
static DRIVER_INIT( nbbatman ) /* has bankswitching */
{ static DRIVER_INIT( m92_bank )
UINT8 *RAM = machine.region("maincpu")->base();
init_m92(machine, 1);
memcpy(RAM + 0x80000, RAM + 0x100000, 0x20000);
}
static DRIVER_INIT( ssoldier )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
init_m92(machine, 1); UINT8 *ROM = machine.region("maincpu")->base();
state->m_irq_vectorbase = 0x20;
/* main CPU expects an answer even before writing the first command */ memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
state->m_sound_status = 0x80; machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x21, FUNC(m92_bankswitch_w));
state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x80;
} }
static DRIVER_INIT( psoldier ) /* has bankswitching, has eeprom, needs sprite kludge */
static DRIVER_INIT( majtitl2 )
{ {
m92_state *state = machine.driver_data<m92_state>(); m92_state *state = machine.driver_data<m92_state>();
init_m92(machine, 1); UINT8 *ROM = machine.region("maincpu")->base();
state->m_irq_vectorbase = 0x20;
/* main CPU expects an answer even before writing the first command */
state->m_sound_status = 0x80;
}
static DRIVER_INIT( dsoccr94j ) 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));
init_m92(machine, 1);
}
static DRIVER_INIT( gunforc2 ) /* 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));
UINT8 *RAM = machine.region("maincpu")->base();
init_m92(machine, 1); state->m_game_kludge = 2;
memcpy(RAM + 0x80000, RAM + 0x100000, 0x20000); state->m_irq_vectorbase = 0x80;
} }
/***************************************************************************/ /***************************************************************************/
GAME( 1991, gunforce, 0, gunforce, gunforce, gunforce, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", 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, gunforce, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", 0 ) 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, gunforce, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", 0 ) 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, bmaster, ROT0, "Irem", "Blade Master (World)", 0 ) GAME( 1991, bmaster, 0, bmaster, bmaster, m92, ROT0, "Irem", "Blade Master (World)", GAME_SUPPORTS_SAVE )
GAME( 1991, crossbld, bmaster, bmaster, bmaster, bmaster, ROT0, "Irem", "Cross Blades! (Japan)", 0 ) 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)", 0 ) 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)", 0 ) GAME( 1991, thndblst, lethalth, lethalth, lethalth, lethalth, ROT270, "Irem", "Thunder Blaster (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1992, uccops, 0, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (World)", 0 ) GAME( 1992, uccops, 0, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (World)", GAME_SUPPORTS_SAVE )
GAME( 1992, uccopsu, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (US)", 0 ) GAME( 1992, uccopsu, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (US)", GAME_SUPPORTS_SAVE )
GAME( 1992, uccopsar, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (Alpha Renewal Version)", 0 ) GAME( 1992, uccopsar, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (Alpha Renewal Version)", GAME_SUPPORTS_SAVE )
GAME( 1992, uccopsj, uccops, uccops, uccops, uccops, ROT0, "Irem", "Undercover Cops (Japan)", 0 ) GAME( 1992, uccopsj, uccops, uccops, uccops, m92, ROT0, "Irem", "Undercover Cops (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1992, mysticri, 0, mysticri, mysticri, mysticri, ROT0, "Irem", "Mystic Riders (World)", 0 ) GAME( 1992, mysticri, 0, mysticri, mysticri, m92, ROT0, "Irem", "Mystic Riders (World)", GAME_SUPPORTS_SAVE )
GAME( 1992, gunhohki, mysticri, mysticri, mysticri, mysticri, ROT0, "Irem", "Mahou Keibitai Gun Hohki (Japan)", 0 ) 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 // 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 // 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, 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)", 0 ) 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)", 0 ) 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)", 0 ) 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)", 0 ) 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, hook, ROT0, "Irem", "Hook (World)", 0 ) GAME( 1992, hook, 0, hook, hook, m92, ROT0, "Irem", "Hook (World)", GAME_SUPPORTS_SAVE )
GAME( 1992, hooku, hook, hook, hook, hook, ROT0, "Irem America", "Hook (US)", 0 ) GAME( 1992, hooku, hook, hook, hook, m92, ROT0, "Irem America", "Hook (US)", GAME_SUPPORTS_SAVE )
GAME( 1992, hookj, hook, hook, hook, hook, ROT0, "Irem", "Hook (Japan)", 0 ) GAME( 1992, hookj, hook, hook, hook, m92, ROT0, "Irem", "Hook (Japan)", GAME_SUPPORTS_SAVE )
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, 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, rtypeleo, ROT0, "Irem", "R-Type Leo (World)", 0 ) GAME( 1992, rtypeleo, 0, rtypeleo, rtypeleo, m92_alt, ROT0, "Irem", "R-Type Leo (World)", GAME_SUPPORTS_SAVE )
GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, rtypelej, ROT0, "Irem", "R-Type Leo (Japan)", 0 ) GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, m92_alt, ROT0, "Irem", "R-Type Leo (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1993, inthunt, 0, inthunt, inthunt, inthunt, ROT0, "Irem", "In The Hunt (World)", 0 ) GAME( 1993, inthunt, 0, inthunt, inthunt, m92, ROT0, "Irem", "In The Hunt (World)", GAME_SUPPORTS_SAVE )
GAME( 1993, inthuntu, inthunt, inthunt, inthunt, inthunt, ROT0, "Irem America", "In The Hunt (US)", 0 ) GAME( 1993, inthuntu, inthunt, inthunt, inthunt, m92, ROT0, "Irem America", "In The Hunt (US)", GAME_SUPPORTS_SAVE )
GAME( 1993, kaiteids, inthunt, inthunt, inthunt, kaiteids, ROT0, "Irem", "Kaitei Daisensou (Japan)", 0 ) GAME( 1993, kaiteids, inthunt, inthunt, inthunt, m92, ROT0, "Irem", "Kaitei Daisensou (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1993, nbbatman, 0, nbbatman, nbbatman, nbbatman, ROT0, "Irem America", "Ninja Baseball Batman (US)", GAME_IMPERFECT_GRAPHICS ) 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, nbbatman, ROT0, "Irem", "Yakyuu Kakutou League-Man (Japan)", 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, ssoldier, ROT0, "Irem America", "Superior Soldiers (US)", 0 ) GAME( 1993, ssoldier, 0, psoldier, psoldier, m92_alt, ROT0, "Irem America", "Superior Soldiers (US)", GAME_SUPPORTS_SAVE )
GAME( 1993, psoldier, ssoldier, psoldier, psoldier, psoldier, ROT0, "Irem", "Perfect Soldiers (Japan)", 0 ) GAME( 1993, psoldier, ssoldier, psoldier, psoldier, m92_alt, ROT0, "Irem", "Perfect Soldiers (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1994, dsoccr94j,dsoccr94, dsoccr94j, dsoccr94j,dsoccr94j,ROT0, "Irem", "Dream Soccer '94 (Japan)", 0 ) 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, gunforc2, ROT0, "Irem", "Gunforce 2 (US)", 0 ) GAME( 1994, gunforc2, 0, gunforc2, gunforc2, m92_bank, ROT0, "Irem", "Gunforce 2 (US)", GAME_SUPPORTS_SAVE )
GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, gunforc2, ROT0, "Irem", "Geostorm (Japan)", 0 ) GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_bank, ROT0, "Irem", "Geostorm (Japan)", GAME_SUPPORTS_SAVE )

View File

@ -19,9 +19,7 @@ public:
m107_state(const machine_config &mconfig, device_type type, const char *tag) m107_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { } : driver_device(mconfig, type, tag) { }
emu_timer *m_scanline_timer;
UINT8 m_irq_vectorbase; UINT8 m_irq_vectorbase;
int m_irqvector;
int m_sound_status; int m_sound_status;
UINT16 *m_vram_data; UINT16 *m_vram_data;
UINT8 m_spritesystem; UINT8 m_spritesystem;

View File

@ -19,10 +19,7 @@ public:
m92_state(const machine_config &mconfig, device_type type, const char *tag) m92_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { } : driver_device(mconfig, type, tag) { }
UINT8 m_irqvector;
UINT16 m_sound_status; UINT16 m_sound_status;
UINT32 m_bankaddress;
emu_timer *m_scanline_timer;
UINT8 m_irq_vectorbase; UINT8 m_irq_vectorbase;
UINT32 m_raster_irq_position; UINT32 m_raster_irq_position;
UINT16 *m_vram_data; UINT16 *m_vram_data;
@ -32,7 +29,7 @@ public:
pf_layer_info m_pf_layer[3]; pf_layer_info m_pf_layer[3];
UINT16 m_pf_master_control[4]; UINT16 m_pf_master_control[4];
INT32 m_sprite_list; INT32 m_sprite_list;
int m_palette_bank; UINT8 m_palette_bank;
}; };

View File

@ -304,7 +304,7 @@ const UINT8 hook_decryption_table[256] = {
// 0x87 (0x18) opcode is right but arguments could be swapped // 0x87 (0x18) opcode is right but arguments could be swapped
// 0xbb (0x2b) not sure, could be 0x1b // 0xbb (0x2b) not sure, could be 0x1b
// rtypeleo // rtypeleo, firebarr
const UINT8 rtypeleo_decryption_table[256] = { const UINT8 rtypeleo_decryption_table[256] = {
0x5d,xxxx,0xc6,xxxx,xxxx,xxxx,0x2a,0x3a,xxxx,xxxx,xxxx,0x86,xxxx,0x22,xxxx,0xf3, /* 00 */ 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 */ xxxx,xxxx,xxxx,xxxx,xxxx,0x38,0xf7,0x42,0x04,xxxx,xxxx,0x1f,0x4b,xxxx,xxxx,0x58, /* 10 */
@ -498,7 +498,7 @@ clc
ret ret
*/ */
// leagueman // leagueman, wpksoc
const UINT8 leagueman_decryption_table[256] = { const UINT8 leagueman_decryption_table[256] = {
xxxx,xxxx,xxxx,0x55,0xbb,xxxx,0x23,0x79, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x38,xxxx, /* 00 */ 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 */ 0x01,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0x3d,xxxx,xxxx,xxxx,0xba,xxxx,0x1e,xxxx, /* 10 */