mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
give firehawkv a larger ROM space, documented horizontal / vertical switch (there are basically 2 versions of the program in the program roms the part it runs depends on a dipswitch)
note, vertical mode still doesn't work as we have no dumps of the gfx roms used by that mode, the horizontal roms from firehawk seem to work for the horizontal mode.
This commit is contained in:
parent
a1c224c15c
commit
237eff9733
@ -3504,6 +3504,15 @@ static INPUT_PORTS_START( firehawk )
|
||||
PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( firehawkv )
|
||||
PORT_INCLUDE( firehawk )
|
||||
|
||||
PORT_MODIFY("DSW1")
|
||||
PORT_DIPNAME( 0x0100, 0x0000, "Orientation" ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPSETTING( 0x0100, "Vertical" )
|
||||
PORT_DIPSETTING( 0x0000, "Horizontal" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Spectrum 2000
|
||||
@ -4938,7 +4947,30 @@ static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state )
|
||||
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// firehawk has 0x100000 bytes of program rom (at least the switchable version) so the above can't work.
|
||||
static ADDRESS_MAP_START( firehawk_map, AS_PROGRAM, 16, nmk16_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("IN0") // Buttons
|
||||
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1") // P1 + P2
|
||||
AM_RANGE(0x280004, 0x280005) AM_READ_PORT("DSW1") // 2 x DSW
|
||||
AM_RANGE(0x280012, 0x280013) AM_READ(afega_unknown_r)
|
||||
AM_RANGE(0x280000, 0x28001d) AM_WRITEONLY //
|
||||
AM_RANGE(0x28001e, 0x28001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU
|
||||
/**/AM_RANGE(0x284000, 0x284003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
/**/AM_RANGE(0x284004, 0x284007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
|
||||
AM_RANGE(0x280020, 0x287fff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x288000, 0x2885ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x288600, 0x28bfff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x28c000, 0x28c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll
|
||||
/**/AM_RANGE(0x28c004, 0x28c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") //
|
||||
AM_RANGE(0x28c008, 0x28ffff) AM_WRITEONLY //
|
||||
/**/AM_RANGE(0x290000, 0x293fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ?
|
||||
/**/AM_RANGE(0x29c000, 0x29c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1
|
||||
|
||||
AM_RANGE(0x3c0000, 0x3cffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
AM_RANGE(0x3f0000, 0x3fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -5161,7 +5193,7 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000,12000000)
|
||||
MCFG_CPU_PROGRAM_MAP(afega)
|
||||
MCFG_CPU_PROGRAM_MAP(firehawk_map)
|
||||
NMK_HACKY_INTERRUPT_TIMING
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,4000000)
|
||||
@ -5188,6 +5220,12 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( spec2k, firehawk )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(afega)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( twinactn, nmk16_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -7586,14 +7624,14 @@ ROM_START( firehawkv )
|
||||
ROM_LOAD( "fhawk_s1.u38", 0x00000, 0x20000, CRC(c6609c39) SHA1(fe9b5f6c3ab42c48cb493fecb1181901efabdb58) )
|
||||
|
||||
ROM_REGION( 0x400000, "sprites",0 ) /* Sprites, 16x16x4 */
|
||||
ROM_LOAD( "rom.uc1", 0x000000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc2", 0x200000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc1", 0x000000, 0x200000, NO_DUMP ) // for vertical mode, missing
|
||||
ROM_LOAD( "fhawk_g3.uc2", 0x200000, 0x200000, BAD_DUMP CRC(cae72ff4) SHA1(7dca7164015228ea039deffd234778d0133971ab) ) // for horizontal mode, taken from above
|
||||
|
||||
ROM_REGION( 0x800000, "bgtile", 0 ) /* Layer 0, 16x16x8 */
|
||||
ROM_LOAD( "rom.uc3", 0x000000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc4", 0x200000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc5", 0x400000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc6", 0x600000, 0x200000, NO_DUMP )
|
||||
ROM_LOAD( "rom.uc3", 0x000000, 0x200000, NO_DUMP ) // for vertical mode, missing
|
||||
ROM_LOAD( "rom.uc4", 0x400000, 0x200000, NO_DUMP ) // for vertical mode, missing
|
||||
ROM_LOAD( "fhawk_g1.uc6", 0x200000, 0x200000, BAD_DUMP CRC(2ab0b06b) SHA1(25362f6a517f188c62bac28b1a7b7b49622b1518) ) // for horizontal mode, taken from above
|
||||
ROM_LOAD( "fhawk_g2.uc5", 0x600000, 0x200000, BAD_DUMP CRC(d11bfa20) SHA1(15142004ab49f7f1e666098211dff0835c61df8d) ) // for horizontal mode, taken from above
|
||||
|
||||
ROM_REGION( 0x00100, "fgtile", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */
|
||||
// Unused
|
||||
@ -7658,7 +7696,7 @@ DRIVER_INIT_MEMBER(nmk16_state,spec2k)
|
||||
}
|
||||
|
||||
ROM_START( spec2kh )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "yonatech5.u124", 0x00000, 0x40000, CRC(72ab5c05) SHA1(182a811982b89b8cda0677547ef0625c274f5c6b) )
|
||||
ROM_LOAD16_BYTE( "yonatech6.u120", 0x00001, 0x40000, CRC(7e44bd9c) SHA1(da59685be14a09ec037743fcec34fb293f7d588d) )
|
||||
|
||||
@ -7683,7 +7721,7 @@ ROM_START( spec2kh )
|
||||
ROM_END
|
||||
|
||||
ROM_START( spec2k )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "u124", 0x00000, 0x40000, CRC(dbd6f65d) SHA1(0fad9836689fcbee60904ccad59a2a5be09f3139) )
|
||||
ROM_LOAD16_BYTE( "u120", 0x00001, 0x40000, CRC(be53e243) SHA1(38144b90a35ba144921824a0c4f133339e07f9a1) )
|
||||
|
||||
@ -7867,10 +7905,10 @@ GAME( 1999, popspops, 0, popspops, popspops, nmk16_state, grdnstrm, ROT
|
||||
GAME( 2000, mangchi, 0, popspops, mangchi, nmk16_state, bubl2000, ROT0, "Afega", "Mang-Chi", 0 )
|
||||
|
||||
// these two are very similar games, but the exact parent/clone relationship is unknown
|
||||
GAME( 2000, spec2k, 0, firehawk, spec2k, nmk16_state, spec2k, ROT270, "Yona Tech", "Spectrum 2000 (vertical)", GAME_IMPERFECT_GRAPHICS ) // the ships sometimes scroll off the screen if you insert a coin during the attract demo? verify it doesn't happen on real hw(!)
|
||||
GAME( 2000, spec2kh, spec2k, firehawk, spec2k, nmk16_state, spec2k, ORIENTATION_FLIP_Y, "Yona Tech", "Spectrum 2000 (horizontal, buggy) (Europe)", 0 ) // this has odd bugs even on real hardware, eg glitchy 3 step destruction sequence of some larger enemies
|
||||
GAME( 2000, spec2k, 0, spec2k, spec2k, nmk16_state, spec2k, ROT270, "Yona Tech", "Spectrum 2000 (vertical)", GAME_IMPERFECT_GRAPHICS ) // the ships sometimes scroll off the screen if you insert a coin during the attract demo? verify it doesn't happen on real hw(!)
|
||||
GAME( 2000, spec2kh, spec2k, spec2k, spec2k, nmk16_state, spec2k, ORIENTATION_FLIP_Y, "Yona Tech", "Spectrum 2000 (horizontal, buggy) (Europe)", 0 ) // this has odd bugs even on real hardware, eg glitchy 3 step destruction sequence of some larger enemies
|
||||
GAME( 2001, firehawk, spec2k, firehawk, firehawk, driver_device, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (horizontal)", 0 )
|
||||
GAME( 2001, firehawkv,spec2k, firehawk, firehawk, driver_device, 0, ROT270, "ESD", "Fire Hawk (switchable orientation)", GAME_NOT_WORKING ) // incomplete dump
|
||||
GAME( 2001, firehawkv,spec2k, firehawk, firehawkv,driver_device, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (switchable orientation)", GAME_NOT_WORKING ) // incomplete dump, vertical mode gfx not dumped
|
||||
|
||||
// bee-oh board - different display / interrupt timing to others?
|
||||
GAME( 1991, manybloc, 0, manybloc, manybloc, driver_device, 0, ROT270, "Bee-Oh", "Many Block", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
|
||||
|
Loading…
Reference in New Issue
Block a user