/******************************************************************** Task Force Harrier 1989 UPL 68000 Z80 YM2203 2xOKIM6295 Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295 Mustang 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 Bio-ship Paladin 1990 UPL 68000 YM2203 2xOKIM6295 Vandyke 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 Black Heart 1991 UPL 68000 NMK004 YM2203 2xOKIM6295 Acrobat Mission 1991 UPL 68000 NMK004 YM2203 2xOKIM6295 Strahl 1992 UPL 68000 YM2203 2xOKIM6295 Thunder Dragon 1991 NMK/Tecmo 68000 YM2203 2xOKIM6295 Hacha Mecha Fighter 1991 NMK 68000 YM2203 2xOKIM6295 Macross 1992 Banpresto 68000 YM2203 2xOKIM6295 GunNail 1993 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295 Macross II 1993 Banpresto 68000 Z80 YM2203 2xOKIM6295 Thunder Dragon 2 1993 NMK 68000 Z80 YM2203 2xOKIM6295 Rapid Hero 1994 NMK 68000 tmp90c841 YM2203 2xOKIM6295 S.S. Mission 1992 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon) Air Attack 1996 Comad 68000 Z80 OKIM6295 (hack of Thunder Dragon) Mustang (bootleg) 68000 Z80 YM3812 OKIM6295 Thunder Dragon (bootleg) 68000 Z80 YM3812 OKIM6295 Saboten Bombers 1992 NMK/Tecmo 68000 2xOKIM6295 Bombjack Twin 1993 NMK 68000 2xOKIM6295 Nouryoku Koujou Iinkai 1995 Tecmo 68000 2xOKIM6295 driver by Mirko Buffoni, Richard Bush, Nicola Salmoria, Bryan McPhail, David Haywood, and R. Belmont. The NMK004 CPU might be a Toshiba TLCS-90 class CPU with internal ROM in the 0000-1fff range. The later games (from GunNail onwards) have an higher resolution (384x224 instead of 256x224) but the hardware is pretty much the same. It's obvious that the higher res is an afterthought, because the tilemap layout is weird (the left 8 screen columns have to be taken from the rightmost 8 columns of the tilemap), and the games rely on mirror addresses to access the tilemap sequentially. TODO: - NMK004 sound CPU is just (imperfectly) simulated for now. - There is a handshaking operation happening on boot in most games. It happens on the NMK004 communication ports so I have implemented it in NMK004.c. However, the same handshaking also happen in tharrier, which doesn't have a NMK004! Therefore, it might be another protection device, which sits in the middle between CPU and NMK004. - Protection is patched in several games. - Hacha Mecha Fighter: mcu simulation *might* be wrong/incorrect (see notes). - Cocktail mode is supported, but tilemap.c has problems with asymmetrical visible areas. - Music timing in nouryoku is a little off. - In Bioship, there's an occasional flicker of one of the sprites composing big ships. Increasing CPU speed from 12 to 16 MHz improved it, but it's still not 100% fixed. (but the CPU speed has been verified to be 10Mhz??) - Input ports in Bio-ship Paladin, Strahl - Sound communication in Mustang might be incorrectly implemented - Incorrect OKI samples banking in Rapid Hero - Hacha Mecha Fighter: (BTANB) the bomb graphics are pretty weird when the game is in japanese mode,but it's like this on the original game,it's just a japanese write for "bomb" word (I presume) - (PCB owners): Measure pixel clock / vblank duration for all of these games. ---- IRQ1 controls audio output and coin/joysticks reads IRQ4 controls DSW reads and vblank. IRQ2 points to RTE (not used). ---- tdragon and hachamf test mode: 1) Press player 2 buttons 1+2 during reset. "Ready?" will appear 2) Press player 1 button 2 14 (!) times mustang test mode: 1) Press player 2 buttons 1+2 during reset. "Ready?" will appear 2) Press player 1 button 1 14 (!) times gunnail test mode: 1) Press player 2 buttons 1+2 during reset. "Ready?" will appear 2) Press player 2 button 1 3 times bjtwin test mode: 1) Press player 2 buttons 1+2 during reset. "Ready?" will appear 2) Press player 1 buttons in this sequence: 2,2,2, 1,1,1, 2,2,2, 1,1,1 The release date of this program will appear. Some code has to be patched out for this to work (see below). The program remaps button 2 and 3 to button 1, so you can't enter the above sequence. --- Questions / Notes 'manybloc' : - There are writes to 0x080010.w and 0x080012.w (MCU ?) in code between 0x005000 to 0x005690, but I see no call to "main" routine at 0x005504 ! - There are writes to 0x08001c.w and 0x08001e.w but I can't tell what the effect is ! Could it be related to sound and/or interrupts ? - In the "test mode", press BOTH player 1 buttons to exit - When help is available, press BUTTON2 twice within the timer to "solve" --- Sound notes for games with a Z80: mustangb and tdragonb use the Seibu Raiden sound hardware and a modified Z80 program (but the music is intact and recognizable). See audio/seibu.c for more info on this. --- Afega Games 95 Twin Action this is a hack of Mustang with new graphics 97 Red Hawk US Version of Stagger 1 98 Sen Jin - Guardian Storm 98 Stagger I 98 Bubble 2000 By Tuning, but it seems to be the same HW / Hot Bubble 00 Spectrum 2000 By YomaTech -- NOTE sprite bugs happen on real hw!! 01 Fire Hawk By ESD with different sound hardware: 2 M6295, this doesn't have the glitches present in spec2k Afega stands for "Art-Fiction Electronic Game" ********************************************************************/ #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/tlcs90/tlcs90.h" #include "cpu/m68000/m68000.h" #include "audio/seibu.h" #include "sound/2203intf.h" #include "sound/okim6295.h" #include "sound/3812intf.h" #include "machine/nmk004.h" #include "machine/nmk112.h" #include "cpu/pic16c5x/pic16c5x.h" #include "includes/nmk16.h" /********************************************************** Protection: Memory Scrambling Several NMK and Afega games (notably the ones running at the lower resolution) require strange handling of work RAM when performing 8-bit writes. This handling breaks some of the later games if used, but is essential for Mustang, Black Heart, Task Force Harrier, and the Afega shooters to work correctly without ROM patches. Tests on the board would help verify this as correct. I'm not sure if this is actually protection, or just poor board design. **********************************************************/ WRITE16_MEMBER(nmk16_state::nmk16_mainram_strange_w) { UINT16* dstram; dstram = m_mainram; if (!ACCESSING_BITS_8_15) { dstram[offset] = (data & 0x00ff) | ((data & 0x00ff)<<8); } else if (!ACCESSING_BITS_0_7) { dstram[offset] = (data & 0xff00) | ((data & 0xff00)>>8); } else { dstram[offset] = data; } } MACHINE_RESET_MEMBER(nmk16_state,NMK004) { NMK004_init(machine()); } MACHINE_RESET_MEMBER(nmk16_state,mustang_sound) { MACHINE_RESET_CALL_LEGACY(seibu_sound); } WRITE16_MEMBER(nmk16_state::ssmissin_sound_w) { if (ACCESSING_BITS_0_7) { soundlatch_byte_w(space, 0, data & 0xff); machine().device("audiocpu")->execute().set_input_line(0, HOLD_LINE); } } WRITE8_MEMBER(nmk16_state::ssmissin_soundbank_w) { UINT8 *rom = memregion("oki1")->base(); int bank; bank = data & 0x3; memcpy(rom + 0x20000,rom + 0x80000 + bank * 0x20000,0x20000); } WRITE16_MEMBER(nmk16_state::tharrier_mcu_control_w) { // logerror("%04x: mcu_control_w %02x\n",space.device().safe_pc(),data); } READ16_MEMBER(nmk16_state::tharrier_mcu_r) { /* The MCU is mapped as the top byte for byte accesses only, all word accesses are to the input port */ if (ACCESSING_BITS_8_15 && !ACCESSING_BITS_0_7) { static const UINT8 to_main[] = { 0x82,0xc7,0x00,0x2c,0x6c,0x00,0x9f,0xc7,0x00,0x29,0x69,0x00,0x8b,0xc7,0x00 }; int res; if (space.device().safe_pc()==0x8aa) res = (m_mainram[0x9064/2])|0x20; /* Task Force Harrier */ else if (space.device().safe_pc()==0x8ce) res = (m_mainram[0x9064/2])|0x60; /* Task Force Harrier */ else { res = to_main[m_prot_count++]; if (m_prot_count > sizeof(to_main)) m_prot_count = 0; } return res << 8; } else return ~ioport("IN1")->read(); } WRITE16_MEMBER(nmk16_state::macross2_sound_reset_w) { /* PCB behaviour verified by Corrado Tomaselli at MAME Italia Forum: every time music changes Z80 is resetted */ machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); } WRITE16_MEMBER(nmk16_state::macross2_sound_command_w) { if (ACCESSING_BITS_0_7) soundlatch_byte_w(space,0,data & 0xff); } WRITE8_MEMBER(nmk16_state::macross2_sound_bank_w) { UINT8 *rom = memregion("audiocpu")->base() + 0x10000; membank("bank1")->set_base(rom + (data & 0x07) * 0x4000); } WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_0_w) { UINT8 *rom = memregion("oki1")->base(); data &= 3; if (data != 3) memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000); } WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_1_w) { UINT8 *rom = memregion("oki2")->base(); data &= 3; if (data != 3) memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000); } WRITE16_MEMBER(nmk16_state::afega_soundlatch_w) { if (ACCESSING_BITS_0_7) { soundlatch_byte_w(space, 0, data&0xff); machine().device("audiocpu")->execute().set_input_line(0, HOLD_LINE); } } /***************************************************************************/ static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c007) AM_WRITE(vandyke_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */ AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x080010, 0x08001d) AM_WRITE(vandykeb_scroll_w) /* 10, 12, 1a, 1c */ AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c007) AM_WRITENOP /* just in case... */ AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */ AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") AM_RANGE(0x080010, 0x080011) AM_WRITENOP /* See notes at the top of the driver */ AM_RANGE(0x080012, 0x080013) AM_WRITENOP /* See notes at the top of the driver */ AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x08001c, 0x08001d) AM_WRITENOP /* See notes at the top of the driver */ AM_RANGE(0x08001e, 0x08001f) AM_READWRITE(soundlatch2_word_r,soundlatch_word_w) AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09cfff) AM_RAM_WRITE(manybloc_scroll_w) AM_SHARE("scrollram") AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ(tharrier_mcu_r) // AM_READ_PORT("IN1") AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") AM_RANGE(0x08000e, 0x08000f) AM_READ(soundlatch2_word_r) /* from Z80 */ AM_RANGE(0x080010, 0x080011) AM_WRITE(tharrier_mcu_control_w) AM_RANGE(0x080012, 0x080013) AM_WRITENOP // AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) // AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) AM_RANGE(0x080202, 0x080203) AM_READ_PORT("IN2") AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM /* Unused txvideoram area? */ AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_RANGE(0xf000, 0xf000) AM_READWRITE(soundlatch_byte_r,soundlatch2_byte_w) AM_RANGE(0xf400, 0xf400) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0xf500, 0xf500) AM_DEVREADWRITE("oki2", okim6295_device, read, write) AM_RANGE(0xf600, 0xf600) AM_WRITE(tharrier_oki6295_bankswitch_0_w) AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_1_w) ADDRESS_MAP_END static ADDRESS_MAP_START( tharrier_sound_io_map, AS_IO, 8, nmk16_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) ADDRESS_MAP_END //Read input port 1 030c8/ BAD //3478 GOOD static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_WRITENOP AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") AM_RANGE(0x08000e, 0x08000f) AM_NOP AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(seibu_main_mustb_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") AM_RANGE(0x08000e, 0x08000f) AM_NOP AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x00000, 0x3ffff) AM_ROM AM_RANGE(0x80000, 0x8ffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0xc0000, 0xc0001) AM_READ_PORT("IN0") AM_RANGE(0xc0002, 0xc0003) AM_READ_PORT("IN1") AM_RANGE(0xc0008, 0xc0009) AM_READ_PORT("DSW1") AM_RANGE(0xc000a, 0xc000b) AM_READ_PORT("DSW2") AM_RANGE(0xc000e, 0xc000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0xc0014, 0xc0015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0xc0016, 0xc0017) AM_WRITENOP AM_RANGE(0xc0018, 0xc0019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0xc001e, 0xc001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0xc4000, 0xc45ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") AM_RANGE(0xc8000, 0xc8007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0xcc000, 0xcffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0xd4000, 0xd47ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") ADDRESS_MAP_END static ADDRESS_MAP_START( bioship_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) // AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x084000, 0x084001) AM_WRITE(bioship_bank_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(bioshipbg_scroll_w) AM_RANGE(0x08c010, 0x08c017) AM_RAM_WRITE(bioship_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END /****************************************************************************************** Thunder Dragon & Hacha Mecha Fighter shares some ram with the MCU,the job of the latter is to provide some jsr vectors used by the game for gameplay calculations.Also it has the job to give the vectors of where the inputs are to be read & to calculate the coin settings,the latter is in a TIMER_DEVICE_CALLBACK to avoid sync problems. To make a long story short,this MCU is an alternative version of the same protection used by the MJ-8956 games (there are even the same kind of error codes!(i.e the number printed on the up-left corner of the screen)... Note: I'm 100% sure of the Thunder Dragon vectors because I've compared it with the bootleg sets,I'm *not* 100% sure of the Hacha Mecha Fighter vectors because I don't have anything to compare and I don't know if for example an option should be there if you lose a life,but the game looks pretty much hard without it. ******************************************************************************************/ #define PROT_JSR(_offs_,_protvalue_,_pc_) \ if(m_mainram[(_offs_)/2] == _protvalue_) \ { \ m_mainram[(_offs_)/2] = 0xffff; /*(MCU job done)*/ \ m_mainram[(_offs_+2-0x10)/2] = 0x4ef9;/*JMP*/\ m_mainram[(_offs_+4-0x10)/2] = 0x0000;/*HI-DWORD*/\ m_mainram[(_offs_+6-0x10)/2] = _pc_; /*LO-DWORD*/\ } #define PROT_INPUT(_offs_,_protvalue_,_protinput_,_input_) \ if(m_mainram[_offs_] == _protvalue_) \ { \ m_mainram[_protinput_] = ((_input_ & 0xffff0000)>>16);\ m_mainram[_protinput_+1] = (_input_ & 0x0000ffff);\ } #ifdef UNUSED_FUNCTION READ16_MEMBER(nmk16_state::mcu_shared_r) { return nmk16_mcu_shared_ram[offset]; } #endif //td - hmf //008D9E - 00796e /* 007B9E: bra 7b9c 007BA0: move.w #$10, $f907a.l 007BA8: bsr 8106 007BAC: bsr dfc4 007BB0: bsr c44e 007BB4: bcs 7cfa 007BB8: bsr d9c6 007BBC: bsr 9400 007BC0: bsr 7a54 007BC4: bsr da06 007BC8: cmpi.w #$3, $f907a.l 007BD0: bcc 7be2 007BD2: move.w #$a, $f530e.l 007BDA: move.w #$a, $f670e.l 007BE2: bsr 81aa 007BE6: bsr 8994 007BEA: bsr 8c36 007BEE: bsr 8d0c 007BF2: bsr 870a 007BF6: bsr 9d66 007BFA: bsr b3f2 007BFE: bsr b59e 007C02: bsr 9ac2 007C06: bsr c366 thunder dragon algorithm (level 1): 90 - spriteram update a0 - tilemap update b0 - player inputs c0 - controls sprite animation d0 - player shoots e0 - controls power-ups f0 - player bombs 00 - controls player shoots 10 - ? 20 - level logic 30 - enemy appearence 40 - enemy energy 50 - enemy energy 2 60 - enemy shoots hacha mecha fighter algorithm (level 1): 90 - spriteram update (d9c6) a0 - tilemap update (d1f8?) b0 - player inputs (da06) c0 - controls sprite animation (81aa) d0 - player shoots (8994) e0 - controls power-ups & options (8d0c) f0 - player bombs (8c36) 00 - controls player shoots (870a) 10 - ? 20 - level logic (9642) 30 - enemy appearence (9d66) 40 - enemy energy (b3f2) 50 - enemy energy 2 (b59e) 60 - enemy shoots (9ac2) 70 - ? 80 - */ WRITE16_MEMBER(nmk16_state::hachamf_mainram_w) { COMBINE_DATA(&m_mainram[offset]); switch(offset) { case 0xe058/2: PROT_INPUT(0xe058/2,0xc71f,0xe000/2,0x00080000); break; case 0xe182/2: PROT_INPUT(0xe182/2,0x865d,0xe004/2,0x00080002); break; case 0xe51e/2: PROT_INPUT(0xe51e/2,0x0f82,0xe008/2,0x00080008); break; case 0xe6b4/2: PROT_INPUT(0xe6b4/2,0x79be,0xe00c/2,0x0008000a); break; case 0xe10e/2: PROT_JSR(0xe10e,0x8007,0x870a);//870a not 9d66 PROT_JSR(0xe10e,0x8000,0xd9c6); break; case 0xe11e/2: PROT_JSR(0xe11e,0x8038,0x972a);//972a PROT_JSR(0xe11e,0x8031,0xd1f8); break; case 0xe12e/2: PROT_JSR(0xe12e,0x8019,0x9642);//OK-9642 PROT_JSR(0xe12e,0x8022,0xda06); break; case 0xe13e/2: PROT_JSR(0xe13e,0x802a,0x9d66);//9d66 not 9400 - OK PROT_JSR(0xe13e,0x8013,0x81aa); break; case 0xe14e/2: PROT_JSR(0xe14e,0x800b,0xb3f2);//b3f2 - OK PROT_JSR(0xe14e,0x8004,0x8994); break; case 0xe15e/2: PROT_JSR(0xe15e,0x803c,0xb59e);//b59e - OK PROT_JSR(0xe15e,0x8035,0x8d0c); break; case 0xe16e/2: PROT_JSR(0xe16e,0x801d,0x9ac2);//9ac2 - OK PROT_JSR(0xe16e,0x8026,0x8c36); break; case 0xe17e/2: PROT_JSR(0xe17e,0x802e,0xc366);//c366 - OK PROT_JSR(0xe17e,0x8017,0x870a); break; case 0xe18e/2: PROT_JSR(0xe18e,0x8004,0xd620); //unused PROT_JSR(0xe18e,0x8008,0x972a); break; //unused case 0xe19e/2: PROT_JSR(0xe19e,0x8030,0xd9c6);//OK-d9c6 PROT_JSR(0xe19e,0x8039,0x9642); break; case 0xe1ae/2: PROT_JSR(0xe1ae,0x8011,0xd1f8);//d1f8 not c67e PROT_JSR(0xe1ae,0x802a,0x9d66); break; case 0xe1be/2: PROT_JSR(0xe1be,0x8022,0xda06);//da06 PROT_JSR(0xe1be,0x801b,0xb3f2); break; case 0xe1ce/2: PROT_JSR(0xe1ce,0x8003,0x81aa);//81aa PROT_JSR(0xe1ce,0x800c,0xb59e); break; case 0xe1de/2: PROT_JSR(0xe1de,0x8034,0x8994);//8994 - OK PROT_JSR(0xe1de,0x803d,0x9ac2); break; case 0xe1ee/2: PROT_JSR(0xe1ee,0x8015,0x8d0c);//8d0c not 82f6 PROT_JSR(0xe1ee,0x802e,0xc366); break; case 0xe1fe/2: PROT_JSR(0xe1fe,0x8026,0x8c36);//8c36 PROT_JSR(0xe1fe,0x8016,0xd620); break; //unused case 0xef00/2: if(m_mainram[0xef00/2] == 0x60fe) { m_mainram[0xef00/2] = 0x0000; //this is the coin counter m_mainram[0xef02/2] = 0x0000; m_mainram[0xef04/2] = 0x4ef9; m_mainram[0xef06/2] = 0x0000; m_mainram[0xef08/2] = 0x7dc2; } break; } } static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM /* I/O Region */ AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) /* Video Region */ AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") /* Main RAM, inc sprites, shared with MCU */ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(hachamf_mainram_w) AM_SHARE("mainram") // ram is shared with MCU ADDRESS_MAP_END WRITE16_MEMBER(nmk16_state::tdragon_mainram_w) { COMBINE_DATA(&m_mainram[offset]); switch(offset) { case 0xe066/2: PROT_INPUT(0xe066/2,0xe23e,0xe000/2,0x000c0000); break; case 0xe144/2: PROT_INPUT(0xe144/2,0xf54d,0xe004/2,0x000c0002); break; case 0xe60e/2: PROT_INPUT(0xe60e/2,0x067c,0xe008/2,0x000c0008); break; case 0xe714/2: PROT_INPUT(0xe714/2,0x198b,0xe00c/2,0x000c000a); break; case 0xe70e/2: PROT_JSR(0xe70e,0x8007,0x9e22); PROT_JSR(0xe70e,0x8000,0xd518); break; case 0xe71e/2: PROT_JSR(0xe71e,0x8038,0xaa0a); PROT_JSR(0xe71e,0x8031,0x8e7c); break; case 0xe72e/2: PROT_JSR(0xe72e,0x8019,0xac48); PROT_JSR(0xe72e,0x8022,0xd558); break; case 0xe73e/2: PROT_JSR(0xe73e,0x802a,0xb110); PROT_JSR(0xe73e,0x8013,0x96da); break; case 0xe74e/2: PROT_JSR(0xe74e,0x800b,0xb9b2); PROT_JSR(0xe74e,0x8004,0xa062); break; case 0xe75e/2: PROT_JSR(0xe75e,0x803c,0xbb4c); PROT_JSR(0xe75e,0x8035,0xa154); break; case 0xe76e/2: PROT_JSR(0xe76e,0x801d,0xafa6); PROT_JSR(0xe76e,0x8026,0xa57a); break; case 0xe77e/2: PROT_JSR(0xe77e,0x802e,0xc6a4); PROT_JSR(0xe77e,0x8017,0x9e22); break; case 0xe78e/2: PROT_JSR(0xe78e,0x8004,0xaa0a); PROT_JSR(0xe78e,0x8008,0xaa0a); break; case 0xe79e/2: PROT_JSR(0xe79e,0x8030,0xd518); PROT_JSR(0xe79e,0x8039,0xac48); break; case 0xe7ae/2: PROT_JSR(0xe7ae,0x8011,0x8e7c); PROT_JSR(0xe7ae,0x802a,0xb110); break; case 0xe7be/2: PROT_JSR(0xe7be,0x8022,0xd558); PROT_JSR(0xe7be,0x801b,0xb9b2); break; case 0xe7ce/2: PROT_JSR(0xe7ce,0x8003,0x96da); PROT_JSR(0xe7ce,0x800c,0xbb4c); break; case 0xe7de/2: PROT_JSR(0xe7de,0x8034,0xa062); PROT_JSR(0xe7de,0x803d,0xafa6); break; case 0xe7ee/2: PROT_JSR(0xe7ee,0x8015,0xa154); PROT_JSR(0xe7ee,0x802e,0xc6a4); break; case 0xe7fe/2: PROT_JSR(0xe7fe,0x8026,0xa57a); PROT_JSR(0xe7fe,0x8016,0xa57a); break; case 0xef00/2: if(m_mainram[0xef00/2] == 0x60fe) { m_mainram[0xef00/2] = 0x0000; //this is the coin counter m_mainram[0xef02/2] = 0x0000; m_mainram[0xef04/2] = 0x4ef9; m_mainram[0xef06/2] = 0x0000; m_mainram[0xef08/2] = 0x92f4; } break; } } /*coin setting MCU simulation*/ static void mcu_run(running_machine &machine, UINT8 dsw_setting) { nmk16_state *state = machine.driver_data(); UINT16 coin_input; UINT8 dsw[2]; UINT8 i; /*Accept the start button but needs some m68k processing first,otherwise you can't start a play with 1 credit inserted*/ if(state->m_start_helper & 1 && state->m_mainram[0x9000/2] & 0x0200) /*start 1 */ { state->m_mainram[0xef00/2]--; state->m_start_helper = state->m_start_helper & 2; } if(state->m_start_helper & 2 && state->m_mainram[0x9000/2] & 0x0100) /*start 2*/ { state->m_mainram[0xef00/2]--; state->m_start_helper = state->m_start_helper & 1; } /*needed because of the uncompatibility of the dsw settings.*/ if(dsw_setting) // Thunder Dragon { dsw[0] = (machine.root_device().ioport("DSW2")->read() & 0x7); dsw[1] = (machine.root_device().ioport("DSW2")->read() & 0x38) >> 3; for(i=0;i<2;i++) { switch(dsw[i] & 7) { case 0: state->m_mainram[0x9000/2]|=0x4000; break; //free play case 1: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 4; break; case 2: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 3; break; case 3: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 2; break; case 4: state->m_coin_count_frac[i] = 4; state->m_coin_count[i] = 1; break; case 5: state->m_coin_count_frac[i] = 3; state->m_coin_count[i] = 1; break; case 6: state->m_coin_count_frac[i] = 2; state->m_coin_count[i] = 1; break; case 7: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 1; break; } } } else // Hacha Mecha Fighter { dsw[0] = (machine.root_device().ioport("DSW1")->read() & 0x0700) >> 8; dsw[1] = (machine.root_device().ioport("DSW1")->read() & 0x3800) >> 11; for(i=0;i<2;i++) { switch(dsw[i] & 7) { case 0: state->m_mainram[0x9000/2]|=0x4000; break; //free play case 1: state->m_coin_count_frac[i] = 4; state->m_coin_count[i] = 1; break; case 2: state->m_coin_count_frac[i] = 3; state->m_coin_count[i] = 1; break; case 3: state->m_coin_count_frac[i] = 2; state->m_coin_count[i] = 1; break; case 4: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 4; break; case 5: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 3; break; case 6: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 2; break; case 7: state->m_coin_count_frac[i] = 1; state->m_coin_count[i] = 1; break; } } } /*read the coin port*/ coin_input = (~(machine.root_device().ioport("IN0")->read())); if(coin_input & 0x01)//coin 1 { if((state->m_input_pressed & 0x01) == 0) { if(state->m_coin_count_frac[0] != 1) { state->m_mainram[0xef02/2]+=state->m_coin_count[0]; if(state->m_coin_count_frac[0] == state->m_mainram[0xef02/2]) { state->m_mainram[0xef00/2]+=state->m_coin_count[0]; state->m_mainram[0xef02/2] = 0; } } else state->m_mainram[0xef00/2]+=state->m_coin_count[0]; } state->m_input_pressed = (state->m_input_pressed & 0xfe) | 1; } else state->m_input_pressed = (state->m_input_pressed & 0xfe); if(coin_input & 0x02)//coin 2 { if((state->m_input_pressed & 0x02) == 0) { if(state->m_coin_count_frac[1] != 1) { state->m_mainram[0xef02/2]+=state->m_coin_count[1]; if(state->m_coin_count_frac[1] == state->m_mainram[0xef02/2]) { state->m_mainram[0xef00/2]+=state->m_coin_count[1]; state->m_mainram[0xef02/2] = 0; } } else state->m_mainram[0xef00/2]+=state->m_coin_count[1]; } state->m_input_pressed = (state->m_input_pressed & 0xfd) | 2; } else state->m_input_pressed = (state->m_input_pressed & 0xfd); if(coin_input & 0x04)//service 1 { if((state->m_input_pressed & 0x04) == 0) state->m_mainram[0xef00/2]++; state->m_input_pressed = (state->m_input_pressed & 0xfb) | 4; } else state->m_input_pressed = (state->m_input_pressed & 0xfb); /*The 0x9000 ram address is the status */ if(state->m_mainram[0xef00/2] > 0 && state->m_mainram[0x9000/2] & 0x8000) //enable start button { if(coin_input & 0x08)//start 1 { if((state->m_input_pressed & 0x08) == 0 && (!(state->m_mainram[0x9000/2] & 0x0200))) //start 1 state->m_start_helper = 1; state->m_input_pressed = (state->m_input_pressed & 0xf7) | 8; } else state->m_input_pressed = (state->m_input_pressed & 0xf7); if(coin_input & 0x10)//start 2 { /*Decrease two coins to let two players play with one start 2 button and two credits inserted at the insert coin screen.*/ if((state->m_input_pressed & 0x10) == 0 && (!(state->m_mainram[0x9000/2] & 0x0100))) // start 2 state->m_start_helper = (state->m_mainram[0x9000/2] == 0x8000) ? (3) : (2); state->m_input_pressed = (state->m_input_pressed & 0xef) | 0x10; } else state->m_input_pressed = (state->m_input_pressed & 0xef); } } TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::tdragon_mcu_sim) { mcu_run(machine(),1); } TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::hachamf_mcu_sim) { mcu_run(machine(),0); } static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x044022, 0x044023) AM_READNOP /* No Idea */ // AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM /* Work RAM */ // AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ // AM_RANGE(0x0b9000, 0x0bdfff) AM_RAM AM_SHARE("mcu_work_ram") /* Work RAM */ // AM_RANGE(0x0be000, 0x0befff) AM_READWRITE(mcu_shared_r,tdragon_mcu_shared_w) AM_SHARE("mcu_shared_ram") /* Work RAM */ // AM_RANGE(0x0bf000, 0x0bffff) AM_RAM /* Work RAM */ AM_RANGE(0x0b0000, 0x0bffff) AM_RAM_WRITE(tdragon_mainram_w ) AM_SHARE("mainram") AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0") AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("IN1") AM_RANGE(0x0c0008, 0x0c0009) AM_READ_PORT("DSW1") AM_RANGE(0x0c000a, 0x0c000b) AM_READ_PORT("DSW2") AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") ADDRESS_MAP_END // No sprites without this. Is it actually protection? READ16_MEMBER(nmk16_state::tdragonb_prot_r) { return 0x0003; } static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x044022, 0x044023) AM_READ(tdragonb_prot_r) AM_RANGE(0x0b0000, 0x0bffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0") AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("IN1") AM_RANGE(0x0c0008, 0x0c0009) AM_READ_PORT("DSW1") AM_RANGE(0x0c000a, 0x0c000b) AM_READ_PORT("DSW2") AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE_LEGACY(seibu_main_mustb_w) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") ADDRESS_MAP_END static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x0b0000, 0x0bffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0") AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("IN1") AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("DSW1") // AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(??) AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_MIRROR(0x1800) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") //mirror for airattck ADDRESS_MAP_END static ADDRESS_MAP_START( ssmissin_sound_map, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x9000, 0x9000) AM_WRITE(ssmissin_soundbank_w) AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) ADDRESS_MAP_END static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x00000, 0x3ffff) AM_ROM AM_RANGE(0x80000, 0x80001) AM_READ_PORT("IN0") AM_RANGE(0x80002, 0x80003) AM_READ_PORT("IN1") AM_RANGE(0x80008, 0x80009) AM_READ_PORT("DSW1") AM_RANGE(0x8000a, 0x8000b) AM_READ_PORT("DSW2") AM_RANGE(0x8000e, 0x8000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x80014, 0x80015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x80016, 0x80017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x8001e, 0x8001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x84000, 0x84007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x88000, 0x88007) AM_RAM_WRITE(nmk_scroll_2_w) AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") AM_RANGE(0x90000, 0x93fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x94000, 0x97fff) AM_RAM_WRITE(nmk_fgvideoram_w) AM_SHARE("nmk_fgvideoram") AM_RANGE(0x9c000, 0x9c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0xf0000, 0xfffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(NMK004_r) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(NMK004_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x08c000, 0x08c1ff) AM_WRITEONLY AM_SHARE("scrollram") AM_RANGE(0x08c200, 0x08c3ff) AM_WRITEONLY AM_SHARE("scrollramy") AM_RANGE(0x08c400, 0x08c7ff) AM_WRITEONLY // unknown AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x001000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN0") AM_RANGE(0x100002, 0x100003) AM_READ_PORT("IN1") AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW1") AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2") AM_RANGE(0x10000e, 0x10000f) AM_READ(soundlatch2_word_r) /* from Z80 */ AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x100016, 0x100017) AM_WRITE(macross2_sound_reset_w) /* Z80 reset */ AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram") AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy") AM_RANGE(0x130400, 0x1307ff) AM_RAM AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram1_w) AM_SHARE("nmk_bgvideoram1") AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram2_w) AM_SHARE("nmk_bgvideoram2") AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram3_w) AM_SHARE("nmk_bgvideoram3") AM_RANGE(0x170000, 0x170fff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x1f0000, 0x1fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN0") AM_RANGE(0x100002, 0x100003) AM_READ_PORT("IN1") AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW1") AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2") AM_RANGE(0x10000e, 0x10000f) AM_READ(soundlatch2_word_r) /* from Z80 */ AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable or z80 sound reset like in Macross 2? */ AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram") AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy") AM_RANGE(0x130400, 0x1307ff) AM_RAM AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x144000, 0x147fff) AM_RAM_WRITE(nmk_bgvideoram1_w) AM_SHARE("nmk_bgvideoram1") AM_RANGE(0x148000, 0x14bfff) AM_RAM_WRITE(nmk_bgvideoram2_w) AM_SHARE("nmk_bgvideoram2") AM_RANGE(0x14c000, 0x14ffff) AM_RAM_WRITE(nmk_bgvideoram3_w) AM_SHARE("nmk_bgvideoram3") AM_RANGE(0x170000, 0x170fff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") AM_RANGE(0x1f0000, 0x1fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END #if 0 /* After playing the game to the end: ff,ff,ff,ff 20,00,f8,02 20,00,f8,04 00,04,d8,09 0f,00,00,ff 00,00,18,03 a0,13,fe,05 40,1e,1b,09 */ WRITE8_MEMBER(nmk16_state::okibank_w) { m_mask[offset] |= 1 << (data & 0x1f); popmessage("%x %x %x %x - %x %x %x %x",m_mask[0],m_mask[1],m_mask[2],m_mask[3],m_mask[4],m_mask[5],m_mask[6],m_mask[7]); } #endif WRITE8_MEMBER(nmk16_state::raphero_sound_rombank_w) { membank("bank1")->set_base(machine().root_device().memregion("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000); } static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) AM_RANGE(0xc800, 0xc800) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0xc808, 0xc808) AM_DEVREADWRITE("oki2", okim6295_device, read, write) AM_RANGE(0xc810, 0xc817) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_w) // AM_RANGE(0xc810, 0xc817) AM_WRITE(okibank_w) AM_RANGE(0xd000, 0xd000) AM_WRITE(raphero_sound_rombank_w) AM_RANGE(0xd800, 0xd800) AM_READWRITE(soundlatch_byte_r, soundlatch2_byte_w) // main cpu AM_RANGE(0xe000, 0xffff) AM_RAM ADDRESS_MAP_END static ADDRESS_MAP_START( macross2_sound_map, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked ROM */ AM_RANGE(0xa000, 0xa000) AM_READNOP /* IRQ ack? watchdog? */ AM_RANGE(0xc000, 0xdfff) AM_RAM AM_RANGE(0xe001, 0xe001) AM_WRITE(macross2_sound_bank_w) AM_RANGE(0xf000, 0xf000) AM_READWRITE(soundlatch_byte_r,soundlatch2_byte_w) /* from 68000 */ ADDRESS_MAP_END static ADDRESS_MAP_START( macross2_sound_io_map, AS_IO, 8, nmk16_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0x88, 0x88) AM_DEVREADWRITE("oki2", okim6295_device, read, write) AM_RANGE(0x90, 0x97) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_w) ADDRESS_MAP_END static ADDRESS_MAP_START( bjtwin_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x084000, 0x084001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) AM_RANGE(0x084010, 0x084011) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) AM_RANGE(0x084020, 0x08402f) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_lsb_w) AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END static INPUT_PORTS_START( vandyke ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x01, "3" ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_SERVICE_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:5" ) /* The manual states this dip is "Unused" */ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x80, DEF_STR( Hardest ) ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) INPUT_PORTS_END static INPUT_PORTS_START( vandykeb ) PORT_INCLUDE( vandyke ) PORT_MODIFY("IN0") PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Tested on boot */ INPUT_PORTS_END static INPUT_PORTS_START( blkheart ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_SERVICE_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:7" ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_DIPSETTING( 0x00, "5" ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( manybloc ) PORT_START("IN0") /* 0x080000 */ PORT_BIT( 0x7fff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // VBLANK ? Check code at 0x005640 PORT_START("IN1") /* 0x080002 */ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // select fruits PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // help PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // select fruits PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // help PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_START("DSW1") /* 0x080004 -> 0x0f0036 */ PORT_DIPNAME( 0x0001, 0x0000, "Slot System" ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0000, "Explanation" ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x0000, DEF_STR( English ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:4") // "Play Type" PORT_DIPSETTING( 0x0008, DEF_STR( Upright ) ) // "Uplight" ! PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) ) // "Table" PORT_SERVICE_DIPLOC( 0x10, IP_ACTIVE_HIGH, "SW1:5" ) // "Test Mode" PORT_DIPNAME( 0x0060, 0x0000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7") PORT_DIPSETTING( 0x0060, DEF_STR( Easy ) ) // "Level 1 PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) // "Level 2 PORT_DIPSETTING( 0x0020, DEF_STR( Hard ) ) // "Level 3 PORT_DIPSETTING( 0x0040, DEF_STR( Hardest ) ) // "Level 4 PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") // "Display" PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) // "Normal" PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) // "Inverse" PORT_DIPNAME( 0x0700, 0x0000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3") PORT_DIPSETTING( 0x0700, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x0600, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0400, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0100, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0200, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0300, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0x3800, 0x0000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6") PORT_DIPSETTING( 0x3800, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x3000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x1000, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x1800, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0xc000, 0x0000, "Plate Probability" ) PORT_DIPLOCATION("SW2:7,8") PORT_DIPSETTING( 0xc000, "Bad" ) PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x4000, "Better" ) PORT_DIPSETTING( 0x8000, "Best" ) INPUT_PORTS_END /********************************************************** Input Ports: Task Force Harrier this is a little strange compared to the other games, the protection might be more involved here than it first appears, however, this works. **********************************************************/ static INPUT_PORTS_START( tharrier ) PORT_START("IN0") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x7fe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Mcu status? */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2) //title PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START2 ) //in game PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0100, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0400, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,3") PORT_DIPSETTING( 0x3000, "200k" ) PORT_DIPSETTING( 0x2000, "200k and 1 Mil" ) PORT_DIPSETTING( 0x0000, "200k, 500k & 1,2,3,5 Mil" ) PORT_DIPSETTING( 0x1000, DEF_STR( None ) ) PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x4000, "2" ) PORT_DIPSETTING( 0xc000, "3" ) PORT_DIPSETTING( 0x8000, "4" ) PORT_DIPSETTING( 0x0000, "5" ) PORT_START("IN2") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 )PORT_PLAYER(1) PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNKNOWN )//coin ? PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) //coin ? INPUT_PORTS_END static INPUT_PORTS_START( mustang ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0400, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x4000, "2" ) PORT_DIPSETTING( 0xc000, "3" ) PORT_DIPSETTING( 0x8000, "4" ) PORT_DIPSETTING( 0x0000, "5" ) PORT_START("COIN") /* referenced by seibu sound board */ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( hachamf ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:8,7,6") PORT_DIPSETTING( 0x0100, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0300, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:5,4,3") PORT_DIPSETTING( 0x0800, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1") PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0000, DEF_STR( English ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0040, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0080, "4" ) PORT_START("UNK") INPUT_PORTS_END static INPUT_PORTS_START( strahl ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3") PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6") PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSW2") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x03, "3" ) PORT_DIPSETTING( 0x01, "4" ) PORT_DIPSETTING( 0x00, "5" ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:6,7") PORT_DIPSETTING( 0x40, "100k and every 200k" ) PORT_DIPSETTING( 0x60, "200k and every 200k" ) PORT_DIPSETTING( 0x20, "300k and every 300k" ) PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) INPUT_PORTS_END static INPUT_PORTS_START( acrobatm ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* used by secret code */ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6,5,4") PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x001C, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x000C, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00C0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00E0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00A0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) PORT_START("DSW2") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:8" ) PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:7,6") PORT_DIPSETTING( 0x02, "50k and 100k" ) PORT_DIPSETTING( 0x06, "100k and 100k" ) PORT_DIPSETTING( 0x04, "100k and 200k" ) PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,3") PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:2,1") PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_DIPSETTING( 0x00, "5" ) INPUT_PORTS_END static INPUT_PORTS_START( bioship ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0006, 0x0006, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6") PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0006, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Hardest ) ) PORT_SERVICE_DIPLOC( 0x0008, IP_ACTIVE_LOW, "SW1:5" ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) PORT_DIPNAME( 0x00C0, 0x00C0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "2" ) PORT_DIPSETTING( 0x00C0, "3" ) PORT_DIPSETTING( 0x0080, "4" ) PORT_DIPSETTING( 0x0040, "5" ) PORT_START("DSW2") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x001C, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x000C, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00C0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00E0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00A0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) INPUT_PORTS_END static INPUT_PORTS_START( tdragon ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0040, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0080, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3") PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6") PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") /* The MCU (undumped/unemulated) takes care of this */ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END static INPUT_PORTS_START( tdragonb ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0002, "2" ) PORT_DIPSETTING( 0x0003, "3" ) PORT_DIPSETTING( 0x0001, "4" ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6") PORT_DIPSETTING( 0x0020, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0030, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("DSW2") PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2,3") PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:4,5,6") PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("COIN") /* referenced by seibu sound board */ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( ssmissin ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Servise" in "test mode" PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Fire" PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Bomb" PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Fire" PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Bomb" PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0040, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0080, "4" ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) #if 0 PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") // initialised but not read back PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x1400, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) #else PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) #endif PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( airattck ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Servise" in "test mode" PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Fire" PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Bomb" PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Fire" PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Bomb" PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0040, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0080, "4" ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( macross ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3") PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:8,7,6,5") PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:4,3,2,1") PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( macross2 ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3") /* Initial points needed for 1st Stage Clear */ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) /* 100,000 */ PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) /* 150,000 */ PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) /* 200,000 */ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) /* 250,000 */ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSW2") PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:8,7,6,5") PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:4,3,2,1") PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( tdragon2 ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x00, DEF_STR( Off) ) PORT_DIPSETTING( 0x08, DEF_STR( On ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4") PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:8,7,6,5") PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:4,3,2,1") PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( gunnail ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:7") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) /* Will add "Distributed by TECMO" to the title screen */ PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* The manual states dips 1-4 are "Unused" */ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:2") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( raphero ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:7") /* Main characters text "talk" at Stage Clear screen, but only when set to Japanese */ PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:5") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x00, DEF_STR( Off) ) PORT_DIPSETTING( 0x08, DEF_STR( On ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3") PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( sabotenb ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* shown in service mode, but no effect */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:3") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x20, DEF_STR( Off) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( bjtwin ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* shown in service mode, but no effect */ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x0e, 0x0e, "Starting level" ) PORT_DIPLOCATION("SW1:7,6,5") PORT_DIPSETTING( 0x08, "Germany" ) PORT_DIPSETTING( 0x04, "Thailand" ) PORT_DIPSETTING( 0x0c, "Nevada" ) PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) PORT_DIPSETTING( 0x06, DEF_STR( Korea ) ) PORT_DIPSETTING( 0x0a, "England" ) PORT_DIPSETTING( 0x02, DEF_STR( Hong_Kong ) ) PORT_DIPSETTING( 0x00, DEF_STR( China ) ) PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,3") PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x40, "2" ) PORT_DIPSETTING( 0xc0, "3" ) PORT_DIPSETTING( 0x80, "4" ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static INPUT_PORTS_START( nouryoku ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW1") PORT_DIPNAME( 0x03, 0x03, "Life Decrease Speed" ) PORT_DIPLOCATION("SW1:8,7") PORT_DIPSETTING( 0x02, "Slow" ) PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x01, "Fast" ) PORT_DIPSETTING( 0x00, "Very Fast" ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") /* The manual states this dip is "Unused" */ PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:3") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( On ) ) PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:1" ) INPUT_PORTS_END /*************************************************************************** Input Ports ***************************************************************************/ /*************************************************************************** Stagger I ***************************************************************************/ static INPUT_PORTS_START( afega_common ) PORT_START("IN0") // $080000.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") // $080002.w PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( stagger1 ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW2:8" ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0080, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0040, "5" ) PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8,7") PORT_DIPSETTING( 0x0300, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPSETTING( 0x0200, "Horizontally" ) PORT_DIPSETTING( 0x0100, "Vertically" ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /* everything seems active high.. not low */ static INPUT_PORTS_START( redhawkb ) PORT_START("IN0") // $080000.w PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN1") // $080002.w PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("DSW1") // $080004.w -- probably just redhawk but inverted PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* Other sets, this is TEST MODE, but here it doesn't work */ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0004, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x0000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:2,1") PORT_DIPSETTING( 0x00c0, "1" ) PORT_DIPSETTING( 0x0040, "2" ) PORT_DIPSETTING( 0x0000, "3" ) PORT_DIPSETTING( 0x0080, "5" ) PORT_DIPNAME( 0x0300, 0x0000, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8,7") /* not supported */ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0300, DEF_STR( On ) ) PORT_DIPSETTING( 0x0100, "Horizontally" ) PORT_DIPSETTING( 0x0200, "Vertically" ) PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0400, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x0000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,4") PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0x0000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0xe000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /*************************************************************************** Sen Jin - Guardian Storm ***************************************************************************/ static INPUT_PORTS_START( grdnstrm ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, "Bombs" ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x0008, "2" ) PORT_DIPSETTING( 0x0000, "3" ) PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:4" ) /* Listed as "Unused" & doesn't show in test mode */ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:3" ) /* Listed as "Unused" & doesn't show in test mode */ PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0080, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0040, "5" ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0100, "Mirror Screen" ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END static INPUT_PORTS_START( grdnstrk ) PORT_INCLUDE( grdnstrm ) PORT_MODIFY("DSW1") // $080004.w PORT_DIPNAME( 0x0200, 0x0200, "Mirror Screen" ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END /*************************************************************************** Pop's Pop's ***************************************************************************/ static INPUT_PORTS_START( popspops ) PORT_INCLUDE( afega_common ) /* the dips on this are a mess.. service mode doesn't seem to be 100% trustable */ PORT_START("DSW1") // $080004.w PORT_SERVICE( 0x0001, IP_ACTIVE_LOW ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) // if ON it tells you the answers?! PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /*************************************************************************** Bubble 2000 ***************************************************************************/ static INPUT_PORTS_START( bubl2000 ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") /* Manual lists as "Screen Flip Horizontal" Doesn't work??? */ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7") /* Manual lists as "Screen Flip Vertical" Doesn't work??? */ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,5") PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, "Free Credit" ) PORT_DIPLOCATION("SW2:2,1") PORT_DIPSETTING( 0x0080, "500k" ) PORT_DIPSETTING( 0x00c0, "800k" ) PORT_DIPSETTING( 0x0040, "1000k" ) PORT_DIPSETTING( 0x0000, "1500k" ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") /* Manual lists as "Unused" */ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6,5,4") PORT_DIPSETTING( 0x1000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0800, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x1400, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) // PORT_DIPSETTING( 0x0000, "Disabled" ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,2,1") PORT_DIPSETTING( 0x8000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) // PORT_DIPSETTING( 0x0000, "Disabled" ) INPUT_PORTS_END /*************************************************************************** Mang Chi ***************************************************************************/ static INPUT_PORTS_START( mangchi ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_DIPNAME( 0x0001, 0x0001, "DSWS" ) /* Setting to on cuases screen issues, Flip Screen? or unfinished test mode? */ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0018, 0x0018, "Vs Rounds" ) PORT_DIPSETTING( 0x0018, "2" ) PORT_DIPSETTING( 0x0010, "3" ) PORT_DIPSETTING( 0x0008, "4" ) PORT_DIPSETTING( 0x0000, "5" ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) /* Hard to tell levels of difficulty by play :-( */ PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /*************************************************************************** Fire Hawk ***************************************************************************/ static INPUT_PORTS_START( firehawk ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7,6,5") PORT_DIPSETTING( 0x0006, DEF_STR( Very_Easy) ) PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) // PORT_DIPSETTING( 0x000a, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x000e, DEF_STR( Normal ) ) // PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Hardest ) ) PORT_DIPSETTING( 0x000c, DEF_STR( Very_Hard ) ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, "Number of Bombs" ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0020, "2" ) PORT_DIPSETTING( 0x0000, "3" ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0080, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0040, "4" ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Region ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0200, DEF_STR( World ) ) PORT_DIPSETTING( 0x0000, DEF_STR( China ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, "Continue Coins" ) PORT_DIPLOCATION("SW2:5,4") PORT_DIPSETTING( 0x1800, "1 Coin" ) PORT_DIPSETTING( 0x0800, "2 Coins" ) PORT_DIPSETTING( 0x1000, "3 Coins" ) PORT_DIPSETTING( 0x0000, "4 Coins" ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /*************************************************************************** Spectrum 2000 ***************************************************************************/ static INPUT_PORTS_START( spec2k ) PORT_INCLUDE( afega_common ) PORT_START("DSW1") // $080004.w PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:8" ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0008, 0x0008, "Number of Bombs" ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x0008, "2" ) PORT_DIPSETTING( 0x0000, "3" ) PORT_DIPNAME( 0x0010, 0x0010, "Copyright Notice" ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x0000, "1" ) PORT_DIPSETTING( 0x0080, "2" ) PORT_DIPSETTING( 0x00c0, "3" ) PORT_DIPSETTING( 0x0040, "5" ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,4") PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x8000, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc000, DEF_STR( 3C_2C ) ) PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) INPUT_PORTS_END /*************************************************************************** Twin Action ***************************************************************************/ static INPUT_PORTS_START( twinactn ) PORT_INCLUDE( afega_common ) PORT_MODIFY("IN0") // $080000.w PORT_SERVICE_NO_TOGGLE(0x0020, IP_ACTIVE_LOW ) // Test in service mode PORT_MODIFY("IN1") // $080002.w PORT_BIT( 0x0080, IP_ACTIVE_HIGH,IPT_UNKNOWN ) // Tested at boot PORT_BIT( 0x8000, IP_ACTIVE_HIGH,IPT_UNKNOWN ) // Tested at boot PORT_START("DSW1") // $080004.w PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4") PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1") PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,5") PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") PORT_DIPSETTING( 0x4000, "2" ) PORT_DIPSETTING( 0xc000, "3" ) PORT_DIPSETTING( 0x8000, "4" ) PORT_DIPSETTING( 0x0000, "5" ) INPUT_PORTS_END static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), 4, { 0, 1, 2, 3 }, { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, 32*8 }; static const gfx_layout tilelayout = { 16,16, RGN_FRAC(1,1), 4, { 0, 1, 2, 3 }, { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 16*32+0*4, 16*32+1*4, 16*32+2*4, 16*32+3*4, 16*32+4*4, 16*32+5*4, 16*32+6*4, 16*32+7*4 }, { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, 32*32 }; static GFXDECODE_START( tharrier ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x000, 16 ) /* color 0x200-0x2ff */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x100, 16 ) /* color 0x100-0x1ff */ GFXDECODE_END static GFXDECODE_START( macross ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x200, 16 ) /* color 0x200-0x2ff */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x100, 16 ) /* color 0x100-0x1ff */ GFXDECODE_END static GFXDECODE_START( macross2 ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x300, 16 ) /* color 0x300-0x3ff */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x100, 32 ) /* color 0x100-0x2ff */ GFXDECODE_END static GFXDECODE_START( bjtwin ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x100, 16 ) /* color 0x100-0x1ff */ GFXDECODE_END static GFXDECODE_START( bioship ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x300, 16 ) /* color 0x300-0x3ff */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x100, 16 ) /* color 0x100-0x1ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x200, 16 ) /* color 0x200-0x2ff */ GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_END static GFXDECODE_START( strahl ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x000, 16 ) /* color 0x000-0x0ff */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x300, 16 ) /* color 0x300-0x3ff */ GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0x100, 16 ) /* color 0x100-0x1ff */ GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x200, 16 ) /* color 0x200-0x2ff */ GFXDECODE_END static const ym2203_interface ym2203_nmk004_interface = { { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, DEVCB_LINE(NMK004_irq) }; static void ym2203_irqhandler(device_t *device, int irq) { device->machine().device("audiocpu")->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = { { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, DEVCB_LINE(ym2203_irqhandler) }; TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::nmk16_scanline) { int scanline = param; if(scanline == 240) // vblank-out irq machine().device("maincpu")->execute().set_input_line(4, HOLD_LINE); /* This is either vblank-in or sprite dma irq complete, Vandyke definitely relies that irq fires at scanline ~0 instead of 112 (as per previous cpu_getiloops function implementation), mostly noticeable with sword collisions and related attract mode behaviour. */ if(scanline == 0) machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE); } /* bee-oh board, almost certainly it has different timings */ TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::manybloc_scanline) { int scanline = param; if(scanline == 248) // vblank-out irq machine().device("maincpu")->execute().set_input_line(4, HOLD_LINE); /* This is either vblank-in or sprite dma irq complete */ if(scanline == 0) machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE); } static const nmk112_interface nmk16_nmk112_intf = { "oki1", "oki2", 0 }; static MACHINE_CONFIG_START( tharrier, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ MCFG_CPU_PROGRAM_MAP(tharrier_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_CPU_ADD("audiocpu", Z80, 3000000) MCFG_CPU_PROGRAM_MAP(tharrier_sound_map) MCFG_CPU_IO_MAP(tharrier_sound_io_map) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tharrier) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_config) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( manybloc, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10? MHz - check */ MCFG_CPU_PROGRAM_MAP(manybloc_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 56)/* this needs to equal the framerate on this, rather than being double it .. */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, manybloc_scanline, "screen", 0, 1) MCFG_CPU_ADD("audiocpu", Z80, 3000000) MCFG_CPU_PROGRAM_MAP(tharrier_sound_map) MCFG_CPU_IO_MAP(tharrier_sound_io_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_manybloc) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_config) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( mustang, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(mustang_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( mustangb, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(mustangb_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) SEIBU_SOUND_SYSTEM_CPU(14318180/4) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 1320000) MACHINE_CONFIG_END #define BIOSHIP_CRYSTAL1 10000000 #define BIOSHIP_CRYSTAL2 12000000 static MACHINE_CONFIG_START( bioship, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, BIOSHIP_CRYSTAL1 ) /* 10.0 MHz (verified) */ MCFG_CPU_PROGRAM_MAP(bioship_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 100)/* 112 breaks the title screen */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bioship) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(bioship) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,bioship) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, BIOSHIP_CRYSTAL2 / 8) /* 1.5 Mhz (verified) */ MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", BIOSHIP_CRYSTAL2 / 3 , OKIM6295_PIN7_HIGH) /* 4.0 Mhz, Pin 7 High (verified) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", BIOSHIP_CRYSTAL2 / 3 , OKIM6295_PIN7_HIGH) /* 4.0 Mhz, Pin 7 High (verified) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( vandyke, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 68000p12 running at 10Mhz, verified on pcb */ MCFG_CPU_PROGRAM_MAP(vandyke_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", XTAL_12MHz/3, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", XTAL_12MHz/3, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( vandykeb, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(vandykeb_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_CPU_ADD("mcu", PIC16C57, 12000000) /* 3MHz */ MCFG_DEVICE_DISABLE() //MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) // no NMK004 /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( acrobatm, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz (verified on pcb) */ MCFG_CPU_PROGRAM_MAP(acrobatm_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) /* (verified on pcb) */ MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sound hardware */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(tdragonb_map) //MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ?? drives music */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) SEIBU_SOUND_SYSTEM_CPU(14318180/4) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,mustang_sound) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 1320000) MACHINE_CONFIG_END static MACHINE_CONFIG_START( tdragon, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(tdragon_map) //MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ?? drives music */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, tdragon_mcu_sim, attotime::from_hz(10000)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( ssmissin, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 Mhz */ MCFG_CPU_PROGRAM_MAP(ssmissin_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112) /* input related */ MCFG_CPU_ADD("audiocpu", Z80, 8000000/2) /* 4 Mhz */ MCFG_CPU_PROGRAM_MAP(ssmissin_sound_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki1", 8000000/8, OKIM6295_PIN7_HIGH) /* 1 Mhz, pin 7 high */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_START( strahl, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ? */ MCFG_CPU_PROGRAM_MAP(strahl_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_strahl) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl) MCFG_GFXDECODE(strahl) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,strahl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( hachamf, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(hachamf_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, hachamf_mcu_sim, attotime::from_hz(10000)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( macross, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(macross_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( blkheart, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(macross_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56.18) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8 ) /* verified on pcb */ MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( gunnail, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz? */ MCFG_CPU_PROGRAM_MAP(gunnail_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112) MCFG_MACHINE_RESET_OVERRIDE(nmk16_state,NMK004) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,gunnail) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_nmk004_interface) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 2.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END static MACHINE_CONFIG_START( macross2, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ MCFG_CPU_PROGRAM_MAP(macross2_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz ? */ MCFG_CPU_PROGRAM_MAP(macross2_sound_map) MCFG_CPU_IO_MAP(macross2_sound_io_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_NMK112_ADD("nmk112", nmk16_nmk112_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( tdragon2, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ MCFG_CPU_PROGRAM_MAP(macross2_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(macross2_sound_map) MCFG_CPU_IO_MAP(macross2_sound_io_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) MCFG_NMK112_ADD("nmk112", nmk16_nmk112_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( raphero, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) /* 14 MHz measured */ MCFG_CPU_PROGRAM_MAP(raphero_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_CPU_ADD("audiocpu",TMP90841, 8000000) MCFG_CPU_PROGRAM_MAP(raphero_sound_mem_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) // measured MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,raphero) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_SOUND_CONFIG(ym2203_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_NMK112_ADD("nmk112", nmk16_nmk112_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( bjtwin, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(bjtwin_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nmk16_state, irq4_line_hold) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ?? drives music */ /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bjtwin) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(bjtwin) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_NMK112_ADD("nmk112", nmk16_nmk112_intf) MACHINE_CONFIG_END static UINT8 decode_byte(UINT8 src, const UINT8 *bitp) { UINT8 ret, i; ret = 0; for (i=0; i<8; i++) ret |= (((src >> bitp[i]) & 1) << (7-i)); return ret; } static UINT32 bjtwin_address_map_bg0(UINT32 addr) { return ((addr&0x00004)>> 2) | ((addr&0x00800)>> 10) | ((addr&0x40000)>>16); } static UINT16 decode_word(UINT16 src, const UINT8 *bitp) { UINT16 ret, i; ret=0; for (i=0; i<16; i++) ret |= (((src >> bitp[i]) & 1) << (15-i)); return ret; } static UINT32 bjtwin_address_map_sprites(UINT32 addr) { return ((addr&0x00010)>> 4) | ((addr&0x20000)>>16) | ((addr&0x100000)>>18); } static void decode_gfx(running_machine &machine) { /* GFX are scrambled. We decode them here. (BIG Thanks to Antiriad for descrambling info) */ UINT8 *rom; int A, len; static const UINT8 decode_data_bg[8][8] = { {0x3,0x0,0x7,0x2,0x5,0x1,0x4,0x6}, {0x1,0x2,0x6,0x5,0x4,0x0,0x3,0x7}, {0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0}, {0x7,0x6,0x5,0x0,0x1,0x4,0x3,0x2}, {0x2,0x0,0x1,0x4,0x3,0x5,0x7,0x6}, {0x5,0x3,0x7,0x0,0x4,0x6,0x2,0x1}, {0x2,0x7,0x0,0x6,0x5,0x3,0x1,0x4}, {0x3,0x4,0x7,0x6,0x2,0x0,0x5,0x1}, }; static const UINT8 decode_data_sprite[8][16] = { {0x9,0x3,0x4,0x5,0x7,0x1,0xb,0x8,0x0,0xd,0x2,0xc,0xe,0x6,0xf,0xa}, {0x1,0x3,0xc,0x4,0x0,0xf,0xb,0xa,0x8,0x5,0xe,0x6,0xd,0x2,0x7,0x9}, {0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0}, {0xf,0xe,0xc,0x6,0xa,0xb,0x7,0x8,0x9,0x2,0x3,0x4,0x5,0xd,0x1,0x0}, {0x1,0x6,0x2,0x5,0xf,0x7,0xb,0x9,0xa,0x3,0xd,0xe,0xc,0x4,0x0,0x8}, /* Haze 20/07/00 */ {0x7,0x5,0xd,0xe,0xb,0xa,0x0,0x1,0x9,0x6,0xc,0x2,0x3,0x4,0x8,0xf}, /* Haze 20/07/00 */ {0x0,0x5,0x6,0x3,0x9,0xb,0xa,0x7,0x1,0xd,0x2,0xe,0x4,0xc,0x8,0xf}, /* Antiriad, Corrected by Haze 20/07/00 */ {0x9,0xc,0x4,0x2,0xf,0x0,0xb,0x8,0xa,0xd,0x3,0x6,0x5,0xe,0x1,0x7}, /* Antiriad, Corrected by Haze 20/07/00 */ }; /* background */ rom = machine.root_device().memregion("gfx2")->base(); len = machine.root_device().memregion("gfx2")->bytes(); for (A = 0;A < len;A++) { rom[A] = decode_byte( rom[A], decode_data_bg[bjtwin_address_map_bg0(A)]); } /* sprites */ rom = machine.root_device().memregion("gfx3")->base(); len = machine.root_device().memregion("gfx3")->bytes(); for (A = 0;A < len;A += 2) { UINT16 tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_sprite[bjtwin_address_map_sprites(A)]); rom[A+1] = tmp >> 8; rom[A] = tmp & 0xff; } } static void decode_tdragonb(running_machine &machine) { /* Descrambling Info Again Taken from Raine, Huge Thanks to Antiriad and the Raine Team for going Open Source, best of luck in future development. */ UINT8 *rom; int A, len; /* The Main 68k Program of the Bootleg is Bitswapped */ static const UINT8 decode_data_tdragonb[1][16] = { {0xe,0xc,0xa,0x8,0x7,0x5,0x3,0x1,0xf,0xd,0xb,0x9,0x6,0x4,0x2,0x0}, }; /* Graphic Roms Could Also Do With Rearranging to make things simpler */ static const UINT8 decode_data_tdragonbgfx[1][8] = { {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, }; rom = machine.root_device().memregion("maincpu")->base(); len = machine.root_device().memregion("maincpu")->bytes(); for (A = 0;A < len;A += 2) { int h = A+NATIVE_ENDIAN_VALUE_LE_BE(1,0), l = A+NATIVE_ENDIAN_VALUE_LE_BE(0,1); UINT16 tmp = decode_word( rom[h]*256 + rom[l], decode_data_tdragonb[0]); rom[h] = tmp >> 8; rom[l] = tmp & 0xff; } rom = machine.root_device().memregion("gfx2")->base(); len = machine.root_device().memregion("gfx2")->bytes(); for (A = 0;A < len;A++) { rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); } rom = machine.root_device().memregion("gfx3")->base(); len = machine.root_device().memregion("gfx3")->bytes(); for (A = 0;A < len;A++) { rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); } } static void decode_ssmissin(running_machine &machine) { /* Like Thunder Dragon Bootleg without the Program Rom Swapping */ UINT8 *rom; int A, len; /* Graphic Roms Could Also Do With Rearranging to make things simpler */ static const UINT8 decode_data_tdragonbgfx[1][8] = { {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, }; rom = machine.root_device().memregion("gfx2")->base(); len = machine.root_device().memregion("gfx2")->bytes(); for (A = 0;A < len;A++) { rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); } rom = machine.root_device().memregion("gfx3")->base(); len = machine.root_device().memregion("gfx3")->bytes(); for (A = 0;A < len;A++) { rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); } } DRIVER_INIT_MEMBER(nmk16_state,nmk) { decode_gfx(machine()); } DRIVER_INIT_MEMBER(nmk16_state,hachamf) { UINT16 *rom = (UINT16 *)machine().root_device().memregion("maincpu")->base(); //rom[0x0006/2] = 0x7dc2; /* replace reset vector with the "real" one */ // kludge the sound communication to let commands go through. rom[0x048a/2] = 0x4e71; rom[0x04aa/2] = 0x4e71; } DRIVER_INIT_MEMBER(nmk16_state,tdragonb) { decode_tdragonb(machine()); } DRIVER_INIT_MEMBER(nmk16_state,tdragon) { UINT16 *rom = (UINT16 *)machine().root_device().memregion("maincpu")->base(); //rom[0x94b0/2] = 0; /* Patch out JMP to shared memory (protection) */ //rom[0x94b2/2] = 0x92f4; // kludge the sound communication to let commands go through. rom[0x048a/2] = 0x4e71; rom[0x04aa/2] = 0x4e71; } DRIVER_INIT_MEMBER(nmk16_state,ssmissin) { decode_ssmissin(machine()); } DRIVER_INIT_MEMBER(nmk16_state,bjtwin) { /* Patch rom to enable test mode */ /* 008F54: 33F9 0008 0000 000F FFFC move.w $80000.l, $ffffc.l * 008F5E: 3639 0008 0002 move.w $80002.l, D3 * 008F64: 3003 move.w D3, D0 \ * 008F66: 3203 move.w D3, D1 | This code remaps * 008F68: 0041 BFBF ori.w #-$4041, D1 | buttons 2 and 3 to * 008F6C: E441 asr.w #2, D1 | button 1, so * 008F6E: 0040 DFDF ori.w #-$2021, D0 | you can't enter * 008F72: E240 asr.w #1, D0 | service mode * 008F74: C640 and.w D0, D3 | * 008F76: C641 and.w D1, D3 / * 008F78: 33C3 000F FFFE move.w D3, $ffffe.l * 008F7E: 207C 000F 9000 movea.l #$f9000, A0 */ #if 0 UINT16 *rom = (UINT16 *)machine().root_device().memregion("maincpu")->base(); rom[0x09172/2] = 0x6006; /* patch checksum error */ rom[0x08f74/2] = 0x4e71; #endif DRIVER_INIT_CALL(nmk); } /* NO NMK004, it has a PIC instead */ READ16_MEMBER(nmk16_state::vandykeb_r){ return 0x0000; } DRIVER_INIT_MEMBER(nmk16_state,vandykeb) { machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16_delegate(FUNC(nmk16_state::vandykeb_r),this)); machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0x08001e, 0x08001f); } /*************************************************************************** Memory Maps - Main CPU ***************************************************************************/ READ16_MEMBER(nmk16_state::afega_unknown_r) { /* This fixes the text in Service Mode. */ return 0x0100; } WRITE16_MEMBER(nmk16_state::afega_scroll0_w) { COMBINE_DATA(&m_afega_scroll_0[offset]); } WRITE16_MEMBER(nmk16_state::afega_scroll1_w) { COMBINE_DATA(&m_afega_scroll_1[offset]); } /* Lines starting with an empty comment in the following MemoryReadAddress arrays are there for debug (e.g. the game does not read from those ranges AFAIK) */ static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state ) ADDRESS_MAP_GLOBAL_MASK(0xfffff) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") // Buttons AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") // P1 + P2 AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") // 2 x DSW AM_RANGE(0x080012, 0x080013) AM_READ(afega_unknown_r) AM_RANGE(0x080000, 0x08001d) AM_WRITEONLY // AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU /**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..) /**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..) AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY // /**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // Palette AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY // /**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll /**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") // AM_RANGE(0x08c008, 0x08ffff) AM_WRITEONLY // /**/AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") // Layer 0 // ? /**/AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") // Layer 1 AM_RANGE(0x0c0000, 0x0cffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("mainram") ADDRESS_MAP_END #if 0 // The high byte of the word written is the address to write to (byte offset), the low byte is data WRITE16_MEMBER(nmk16_state::twinactn_scroll0_w) { int byte = ((data >> 8) & 3) ^ 2; int bit = ((byte & 1) ? 0 : 8); m_afega_scroll_0[byte / 2] = (m_afega_scroll_0[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit); } WRITE16_MEMBER(nmk16_state::twinactn_scroll1_w) { int byte = ((data >> 8) & 3) ^ 2; int bit = ((byte & 1) ? 0 : 8); m_afega_scroll_1[byte / 2] = (m_afega_scroll_1[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit); } WRITE16_MEMBER(nmk16_state::twinactn_flipscreen_w) { if (ACCESSING_BITS_0_7) flip_screen_set(data & 1); if (data & (~1)) logerror("%06x: unknown flip screen bit written %04x\n", space.device().safe_pc(), data); } #endif /*************************************************************************** Memory Maps - Sound CPU ***************************************************************************/ WRITE8_MEMBER(nmk16_state::spec2k_oki1_banking_w) { device_t *device = machine().device("oki2"); if(data == 0xfe) downcast(device)->set_bank_base(0); else if(data == 0xff) downcast(device)->set_bank_base(0x40000); } static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0003, 0x0003) AM_WRITENOP // bug in sound prg? AM_RANGE(0x0004, 0x0004) AM_WRITENOP // bug in sound prg? AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf7ff) AM_RAM // RAM AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r) // From Main CPU AM_RANGE(0xf808, 0xf809) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) // YM2151 AM_RANGE(0xf80a, 0xf80a) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // M6295 ADDRESS_MAP_END static ADDRESS_MAP_START( firehawk_sound_cpu, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_RANGE(0xfff0, 0xfff0) AM_READ(soundlatch_byte_r) AM_RANGE(0xfff2, 0xfff2) AM_WRITE(spec2k_oki1_banking_w ) AM_RANGE(0xfff8, 0xfff8) AM_DEVREADWRITE("oki2", okim6295_device, read, write) AM_RANGE(0xfffa, 0xfffa) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0xf800, 0xffff) AM_RAM // not used, only tested ADDRESS_MAP_END WRITE8_MEMBER(nmk16_state::twinactn_oki_bank_w) { device_t *device = machine().device("oki1"); downcast(device)->set_bank_base((data & 3) * 0x40000); if (data & (~3)) logerror("%s: invalid oki bank %02x\n", machine().describe_context(), data); // logerror("%04x: oki bank %02x\n", space.device().safe_pc(), data); } static ADDRESS_MAP_START( twinactn_sound_cpu, AS_PROGRAM, 8, nmk16_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x9000, 0x9000) AM_WRITE(twinactn_oki_bank_w) AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write) AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) // From Main CPU ADDRESS_MAP_END /*************************************************************************** Graphics Layouts ***************************************************************************/ static const gfx_layout layout_8x8x4 = { 8,8, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { STEP8(0,4) }, { STEP8(0,8*4) }, 8*8*4 }; static const gfx_layout layout_16x16x4 = { 16,16, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { STEP8(0,4), STEP8(8*8*4*2,4) }, { STEP8(0,8*4), STEP8(8*8*4*1,8*4) }, 16*16*4 }; static const gfx_layout layout_16x16x8 = { 16,16, RGN_FRAC(1,2), 8, { STEP4(RGN_FRAC(0,2),1), STEP4(RGN_FRAC(1,2),1) }, { STEP8(0,4), STEP8(8*8*4*2,4) }, { STEP8(0,8*4), STEP8(8*8*4*1,8*4) }, 16*16*4 }; static const gfx_layout layout_16x16x4_swapped = { 16,16, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { 4,0,12,8,20,16,28,24, 512+4,512+0,512+12,512+8,512+20,512+16,512+28,512+24}, { STEP8(0,8*4), STEP8(8*8*4*1,8*4) }, 16*16*4 }; static GFXDECODE_START( grdnstrm ) GFXDECODE_ENTRY( "gfx3", 0, layout_8x8x4, 256*2, 16 ) // [2] Layer 1 GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x8, 256*0, 1 ) // [1] Layer 0 GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 256*1, 16 ) // [0] Sprites GFXDECODE_END static GFXDECODE_START( stagger1 ) GFXDECODE_ENTRY( "gfx3", 0, layout_8x8x4, 256*2, 16 ) // [2] Layer 1 GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 256*0, 16 ) // [1] Layer 0 GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 256*1, 16 ) // [0] Sprites GFXDECODE_END static GFXDECODE_START( redhawkb ) GFXDECODE_ENTRY( "gfx3", 0, layout_8x8x4, 256*2, 16 ) // [2] Layer 1 GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4_swapped, 256*0, 16 ) // [1] Layer 0 GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4_swapped, 256*1, 16 ) // [0] Sprites GFXDECODE_END /*************************************************************************** Machine Drivers ***************************************************************************/ static MACHINE_CONFIG_START( stagger1, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_12MHz) /* 68000p10 running at 12mhz, verified on pcb */ MCFG_CPU_PROGRAM_MAP(afega) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(afega_sound_cpu) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_afega) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(stagger1) MCFG_PALETTE_LENGTH(768) MCFG_VIDEO_START_OVERRIDE(nmk16_state,afega) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_YM2151_ADD("ymsnd", XTAL_4MHz) /* verified on pcb */ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.30) MCFG_SOUND_ROUTE(1, "rspeaker", 0.30) MCFG_OKIM6295_ADD("oki1", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.70) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.70) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( redhawki, stagger1 ) /* basic machine hardware */ /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawki) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 ) /* basic machine hardware */ /* video hardware */ MCFG_GFXDECODE(redhawkb) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawkb) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 ) /* basic machine hardware */ /* video hardware */ MCFG_GFXDECODE(grdnstrm) MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, the music seems too fast as well */ /* basic machine hardware */ /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(57) /* Side by side with PCB, MAME is too fast at 56 */ MCFG_GFXDECODE(grdnstrm) MCFG_VIDEO_START_OVERRIDE(nmk16_state,grdnstrm) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( popspops, grdnstrm ) /* basic machine hardware */ /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bubl2000) MACHINE_CONFIG_END static MACHINE_CONFIG_START( firehawk, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) MCFG_CPU_PROGRAM_MAP(afega) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_CPU_ADD("audiocpu", Z80,4000000) MCFG_CPU_PROGRAM_MAP(firehawk_sound_cpu) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(grdnstrm) MCFG_PALETTE_LENGTH(768) MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_OKIM6295_ADD("oki2", 1000000, OKIM6295_PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_START( twinactn, nmk16_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) MCFG_CPU_PROGRAM_MAP(twinactn_map) MCFG_CPU_PERIODIC_INT_DRIVER(nmk16_state, irq1_line_hold, 112)/* ???????? */ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nmk16_state, nmk16_scanline, "screen", 0, 1) MCFG_CPU_ADD("audiocpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(twinactn_sound_cpu) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(56) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END /*************************************************************************** ROMs Loading ***************************************************************************/ /* Address lines scrambling */ static void decryptcode( running_machine &machine, int a23, int a22, int a21, int a20, int a19, int a18, int a17, int a16, int a15, int a14, int a13, int a12, int a11, int a10, int a9, int a8, int a7, int a6, int a5, int a4, int a3, int a2, int a1, int a0 ) { int i; UINT8 *RAM = machine.root_device().memregion( "maincpu" )->base(); size_t size = machine.root_device().memregion( "maincpu" )->bytes(); UINT8 *buffer = auto_alloc_array(machine, UINT8, size ); memcpy( buffer, RAM, size ); for( i = 0; i < size; i++ ) { RAM[ i ] = buffer[ BITSWAP24( i, a23, a22, a21, a20, a19, a18, a17, a16, a15, a14, a13, a12, a11, a10, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0 ) ]; } auto_free( machine, buffer ); } ROM_START( vandyke ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "vdk-1.16", 0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) ) ROM_LOAD16_BYTE( "vdk-2.15", 0x00001, 0x20000, CRC(9d741cc2) SHA1(2d101044fba5fc5b7d63869a0a053c42fdc2598b) ) ROM_REGION(0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ ROM_END ROM_START( vandykejal ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "vdk-1.16", 0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) ) ROM_LOAD16_BYTE( "jaleco2.15", 0x00001, 0x20000, CRC(170e4d2e) SHA1(6009d19d30e345fea93e039d165061e2b20ff058) ) ROM_REGION(0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ ROM_END ROM_START( vandykejal2 ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "vdk-even.16", 0x00000, 0x20000, CRC(cde05a84) SHA1(dab5981d7dad9abe86cfe011da8ca0b11d484a3f) ) /* Hand written labels, dated 2/12 */ ROM_LOAD16_BYTE( "vdk-odd.15", 0x00001, 0x20000, CRC(0f6fea40) SHA1(3acbe72c251d51b028d8c66274263a2b39b042ea) ) ROM_REGION(0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ ROM_END ROM_START( vandykeb ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(9c269702) SHA1(831ff9d499aa94d85f62b8613477a95f00f62b34) ) ROM_LOAD16_BYTE( "1.bin", 0x00001, 0x20000, CRC(dd6303a1) SHA1(3c225ff1696adc1af05b1b36d8cf1f220181861c) ) ROM_REGION(0x10000, "mcu", 0 ) /* PIC is read protected */ ROM_LOAD( "pic16c57", 0x00000, 0x2d4c, BAD_DUMP CRC(bdb3920d) SHA1(2ef8d2aa3817cebea8e2443bc995cec3a3f88835) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "3.bin", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "4.bin", 0x000000, 0x040000, CRC(4ba4138d) SHA1(56f9c9422085eaf74ddec8977663a33c122b7e8b) ) /* 16x16 tiles */ ROM_LOAD( "5.bin", 0x040000, 0x040000, CRC(9a1ac697) SHA1(a8200b10606edf4578c7e2f53a0046bb1209a041) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "13.bin", 0x000000, 0x040000, CRC(bb561871) SHA1(33dcaf956112181eed531320d3ececb90b17a599) ) /* Sprites */ ROM_LOAD16_BYTE( "17.bin", 0x000001, 0x040000, CRC(346e3b66) SHA1(34df7167ed4048e1f236e7d8fa6dcdffb0965c71) ) /* Sprites */ ROM_LOAD16_BYTE( "12.bin", 0x080000, 0x040000, CRC(cdef9b17) SHA1(ec024a21685b87c82dc574cd050118d856a3cf57) ) /* Sprites */ ROM_LOAD16_BYTE( "16.bin", 0x080001, 0x040000, CRC(beda678c) SHA1(3dfb8763241a97b9d65113c6eb99b52ec5245cd6) ) /* Sprites */ ROM_LOAD16_BYTE( "11.bin", 0x100000, 0x020000, CRC(823185d9) SHA1(eaf0f3ab0921d894eb1d09d5b2e9d5b785928804) ) /* Sprites */ ROM_LOAD16_BYTE( "15.bin", 0x100001, 0x020000, CRC(149f3247) SHA1(5f515cb10468da048c89b543807280bd3e39e45a) ) /* Sprites */ ROM_LOAD16_BYTE( "10.bin", 0x140000, 0x020000, CRC(388b1abc) SHA1(9d1c43070130672a5e1a41807d796c944b0676ae) ) /* Sprites */ ROM_LOAD16_BYTE( "14.bin", 0x140001, 0x020000, CRC(32eeba37) SHA1(0d0218e864ed647bd33bbe379f0ef76ccefbd06c) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "9.bin", 0x000000, 0x020000, CRC(56bf774f) SHA1(5ece618fff22483adb5dff062dd4ec212aab0f01) ) ROM_LOAD( "8.bin", 0x000000, 0x020000, CRC(89851fcf) SHA1(7b6284cb929059371dd2b5410cd18373834ba76b) ) ROM_LOAD( "7.bin", 0x000000, 0x020000, CRC(d7bf0f6a) SHA1(413713576692676a831949e0d4dc5574da338380) ) ROM_LOAD( "6.bin", 0x000000, 0x020000, CRC(a7fcf709) SHA1(dc6298b43a472e92e99b8286bd4d26f7e72fd278) ) ROM_END ROM_START( tharrier ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "2.bin" , 0x00000, 0x20000, CRC(f3887a44) SHA1(4e5b660d33ba1d1e00263030efa67e2db376a234) ) ROM_LOAD16_BYTE( "3.bin" , 0x00001, 0x20000, CRC(65c247f6) SHA1(9f35f2b6f54814b4c4d23e2d78db8043e678fef2) ) ROM_REGION( 0x010000, "audiocpu", 0 ) ROM_LOAD( "12" , 0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1.bin" , 0x000000, 0x10000, CRC(005c26c3) SHA1(ee88d8f956b9b0a8ba5fb49c5c05f6ed6f01729c) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "89050-4" , 0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "89050-13", 0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) ) /* Sprites */ ROM_LOAD16_BYTE( "89050-17", 0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) ) ROM_REGION(0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "89050-8", 0x00000, 0x20000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION(0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "89050-10", 0x00000, 0x20000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "21.bpr", 0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) ) ROM_LOAD( "22.bpr", 0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) ROM_LOAD( "23.bpr", 0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) ) ROM_LOAD( "24.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) ROM_LOAD( "25.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */ ROM_LOAD( "26.bpr", 0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) ) ROM_END ROM_START( tharrieru ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "2" , 0x00000, 0x20000, CRC(78923aaa) SHA1(28338f49581180604403e1bd200f524fc4cb8b9f) ) ROM_LOAD16_BYTE( "3" , 0x00001, 0x20000, CRC(99cea259) SHA1(75abfb08b2358dd13809ade5a2dfffeb8b8df82c) ) ROM_REGION( 0x010000, "audiocpu", 0 ) ROM_LOAD( "12" , 0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1" , 0x000000, 0x10000, CRC(c7402e4a) SHA1(25cade2f8d4784887f0f51beb48b1e6b695629c2) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "89050-4" , 0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "89050-13", 0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) ) /* Sprites */ ROM_LOAD16_BYTE( "89050-17", 0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) ) ROM_REGION(0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "89050-8", 0x00000, 0x20000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION(0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "89050-10", 0x00000, 0x20000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x140, "proms", 0 ) ROM_LOAD( "21.bpr", 0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) ) ROM_LOAD( "22.bpr", 0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) ROM_LOAD( "23.bpr", 0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) ) ROM_LOAD( "24.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) ROM_LOAD( "25.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */ ROM_LOAD( "26.bpr", 0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) ) ROM_END ROM_START( mustang ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(bd9f7c89) SHA1(a0af46a8ff82b90bece2515e1bd74e7a7ddf5379) ) ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(0eec36a5) SHA1(c549fbcd3e2741a6d0f2633ded6a85909d37f633) ) ROM_REGION(0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "90058-7", 0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90058-5", 0x00000, 0x20000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90058-6", 0x00000, 0x20000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "10.bpr", 0x00000, 0x100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_LOAD( "90058-11", 0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_END ROM_START( mustangs ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "90058-2", 0x00000, 0x20000, CRC(833aa458) SHA1(a9924f7044397e3a36c674b064173ffae80a79ec) ) ROM_LOAD16_BYTE( "90058-3", 0x00001, 0x20000, CRC(e4b80f06) SHA1(ce589cebb5ea85c89eb44796b821a4bd0c44b9a8) ) ROM_REGION(0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "90058-7", 0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90058-5", 0x00000, 0x20000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90058-6", 0x00000, 0x20000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x200, "proms", 0 ) ROM_LOAD( "90058-10", 0x00000, 0x100, CRC(de156d99) SHA1(07b70deca74e23bab7c13e5e9aee32d0dbb06509) ) /* unknown */ ROM_LOAD( "90058-11", 0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_END ROM_START( mustangb ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "mustang.14", 0x00000, 0x20000, CRC(13c6363b) SHA1(e2c1985d1c8ec9751c47cd7e1b85e007f3aeb6fd) ) ROM_LOAD16_BYTE( "mustang.13", 0x00001, 0x20000, CRC(d8ccce31) SHA1(e8e3e34a480fcd298f11833c6c968c5df77c0e2a) ) ROM_REGION(0x20000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "mustang.16", 0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) ROM_CONTINUE( 0x010000, 0x08000 ) ROM_COPY( "audiocpu", 0, 0x018000, 0x08000 ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) ROM_REGION( 0x040000, "oki", 0 ) /* OKIM6295 samples */ ROM_LOAD( "mustang.17", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) ROM_END ROM_START( mustangb2 ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "05.bin", 0x00000, 0x20000, CRC(13c6363b) SHA1(e2c1985d1c8ec9751c47cd7e1b85e007f3aeb6fd) ) /* bootleg manufacturered by TAB AUSTRIA */ ROM_LOAD16_BYTE( "04.bin", 0x00001, 0x20000, CRC(0d06f723) SHA1(28d5899114746d186e1ddd207deb177b31ff614d) ) ROM_REGION(0x20000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "01.bin", 0x00000, 0x8000, CRC(90820499) SHA1(ddd43373eb1891a05159085b52bf74760824e5aa) ) ROM_CONTINUE( 0x010000, 0x08000 ) ROM_COPY( "audiocpu", 0, 0x018000, 0x08000 ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "06.bin", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) ROM_REGION( 0x080000, "gfx2", 0 ) ROM_LOAD( "07.bin", 0x00000, 0x20000, CRC(5f8fdfb1) SHA1(529494a317409da978d44610682ef56ebc24e0af) ) ROM_LOAD( "10.bin", 0x20000, 0x20000, CRC(39757d6a) SHA1(71acf748c752df70f437b3ffa759d68d283c22cf) ) ROM_LOAD( "08.bin", 0x40000, 0x20000, CRC(b3dd5243) SHA1(38b71dad7d392319ecef690fb230fa9ca46c7d0a) ) ROM_LOAD( "09.bin", 0x60000, 0x20000, CRC(c6c9752f) SHA1(41a3581af7a10eab9eb15580760a99d27e67f085) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "18.bin", 0x00000, 0x20000, CRC(d13f0722) SHA1(3e9c0a3e124f8b2616bb4a39d2d3fb25623b8c85) ) ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(54773f95) SHA1(2c57f54efa069907dfb59f15fbc2c580180df3cc) ) ROM_LOAD16_BYTE( "17.bin", 0x40000, 0x20000, CRC(87c1fb43) SHA1(e874ab8aba448b002f64197dacb5d6c47fb83af2) ) ROM_LOAD16_BYTE( "14.bin", 0x40001, 0x20000, CRC(932d3e33) SHA1(a784f288fa99e605a0bf396bc7694319980d1cd1) ) ROM_LOAD16_BYTE( "16.bin", 0x80000, 0x20000, CRC(23d03ad5) SHA1(2cde1accd1d97ce9ea3d0ef24ae4d54e04b8f12f) ) ROM_LOAD16_BYTE( "15.bin", 0x80001, 0x20000, CRC(a62b2f87) SHA1(bcffc6d10bed84c509e5cb57125d08127ab2c89d) ) ROM_LOAD16_BYTE( "12.bin", 0xc0000, 0x20000, CRC(42a6cfc2) SHA1(46fc3b30a50efc94613e3b34aaf0543fa4cdc919) ) ROM_LOAD16_BYTE( "11.bin", 0xc0001, 0x20000, CRC(9d3bee66) SHA1(e8db57b9a5581d3d54e69bb7ba229a49a7cc224f) ) ROM_REGION( 0x040000, "oki", 0 ) /* OKIM6295 samples */ ROM_LOAD( "02.bin", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) ROM_END ROM_START( acrobatm ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "02_ic100.bin", 0x00000, 0x20000, CRC(3fe487f4) SHA1(29aba5debcfddff14e584a1c7c5a403e85fc6ec0) ) ROM_LOAD16_BYTE( "01_ic101.bin", 0x00001, 0x20000, CRC(17175753) SHA1(738865744badb78a0414ff650a94b97e516d0ea0) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "03_ic79.bin", 0x000000, 0x10000, CRC(d86c186e) SHA1(2e263d4780f2ba7acc7faa88472c85216fbae6a3) ) /* Characters */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "09_ic8.bin", 0x000000, 0x100000, CRC(7c12afed) SHA1(ae793e41599355a126cbcce91cd2c9f212d21853) ) /* Foreground */ ROM_REGION( 0x180000, "gfx3", 0 ) ROM_LOAD( "07_ic42.bin", 0x000000, 0x100000, CRC(5672bdaa) SHA1(5401a104d72904de19b73125451767bc63d36809) ) /* Sprites */ ROM_LOAD( "08_ic29.bin", 0x100000, 0x080000, CRC(b4c0ace3) SHA1(5d638781d588cfbf4025d002d5a2309049fe1ee5) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "04_ic74.bin", 0x00000, 0x10000, CRC(176905fb) SHA1(135a184f44bedd93b293b9124fa0bd725e0ee93b) ) ROM_REGION( 0xa0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "05_ic54.bin", 0x00000, 0x20000, CRC(3b8c2b0e) SHA1(72491da32512823540b67dc5027f21c74af08c7d) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0xa0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "06_ic53.bin", 0x00000, 0x20000, CRC(c1517cd4) SHA1(5a91ddc608c7a6fbdd9f93e503d39eac02ef04a4) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "10_ic81.bin", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "11_ic80.bin", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_END /* S.B.S. Gomorrah (and Bio-ship Paladin with correct roms in place) UPL, 1993 PCB Layout ---------- UPL-90062 |-------------------------------------------------------------------------| | LA4460 4558 YM2203 6116 NMK004 68000 | | 3014 M6295 6.IC120 | | M6295 8MHz 62256 10.IC15 | | SBS-G_05.IC160 | | SBS-G_04.IC139 62256 11.IC14 | |DSW2 DSW1 12MHz | | 82S129.IC69 | | NMK005 | | 82S135.IC94 | | NMK902 | |J 6116 NMK903 NMK901 | |A | |M 6116 7.IC46 | |M 82S123.IC154 6116 6264 NMK903 | |A | | 6116 6264 | | 6116 SBS-G_01.IC9| | 6116 | | | | NMK901 | | | | NMK903 | | | | 62256 62256 8.IC27 SBS-G_02.IC4| | | | 62256 62256 9.IC26 | |SBS-G_03.IC194 10MHz | |-------------------------------------------------------------------------| Notes: 680000 @ 10.0MHz YM2203 @ 1.5MHz [12/8] M6295 @ 4.0MHz [12/3], pin 7 HIGH VSync 60Hz HSync 15.27kHz */ ROM_START( bioship ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "2.ic14", 0x00000, 0x20000, CRC(acf56afb) SHA1(0e8ec494ab406cfee24cf586059878332265de75) ) ROM_LOAD16_BYTE( "1.ic15", 0x00001, 0x20000, CRC(820ef303) SHA1(d2ef29557b05abf8ae79a2c7ce0d15a91b36eeff) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "7", 0x000000, 0x10000, CRC(2f3f5a10) SHA1(c1006eb755eec75f69dc7972d78d0c59088eb140) ) /* Characters */ ROM_REGION( 0x80000, "gfx2", 0 ) ROM_LOAD( "sbs-g_01.ic9", 0x000000, 0x80000, CRC(21302e78) SHA1(a17939c0529c8e9ec2a4edd5e6be4bcb67f86787) ) /* Foreground */ ROM_REGION( 0x80000, "gfx3", 0 ) ROM_LOAD( "sbs-g_03.ic194", 0x000000, 0x80000, CRC(60e00d7b) SHA1(36fd02a7842ce1e79b8c4cfbe9c97052bef4aa62) ) /* Sprites */ ROM_REGION( 0x80000, "gfx4", 0 ) ROM_LOAD( "sbs-g_02.ic4", 0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */ ROM_REGION16_BE(0x20000, "gfx5", 0 ) /* Background tilemaps (used at runtime) */ ROM_LOAD16_BYTE( "8.ic27", 0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) ) ROM_LOAD16_BYTE( "9.ic26", 0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "6.ic120", 0x00000, 0x10000, CRC(5f39a980) SHA1(2a440f86685249f9c317634cad8cdedc8a8f1491) ) ROM_REGION(0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "sbs-g_04.ic139", 0x00000, 0x20000, CRC(7c74cc4e) SHA1(92097b372eacabdb9e8e261b0bc4223821ff9273) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION(0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "sbs-g_05.ic160", 0x00000, 0x20000, CRC(f0a782e3) SHA1(d572226b8e597f1c34d246cb284e047a6e2d9290) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0220, "proms", 0 ) ROM_LOAD( "82s135.ic94", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ ROM_LOAD( "82s129.ic69", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ ROM_LOAD( "82s123.ic154",0x0200, 0x0020, CRC(0f789fc7) SHA1(31936c21720802da20e39b4cb030e448353e7f19) ) /* ?? */ ROM_END ROM_START( sbsgomo ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "11.ic14", 0x00000, 0x20000, CRC(7916150b) SHA1(cbcc8918f35ded5130058860a7af6f1d3ecdbdd8) ) ROM_LOAD16_BYTE( "10.ic15", 0x00001, 0x20000, CRC(1d7accb8) SHA1(f80fb8748017e545c96bdc7d964aa18dcd42f528) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "7.ic46", 0x000000, 0x10000, CRC(f2b77f80) SHA1(6cb9e33994dc2741faef912416ebd57b654dfb36) ) /* Characters */ ROM_REGION( 0x80000, "gfx2", 0 ) ROM_LOAD( "sbs-g_01.ic9", 0x000000, 0x80000, CRC(21302e78) SHA1(a17939c0529c8e9ec2a4edd5e6be4bcb67f86787) ) /* Foreground */ ROM_REGION( 0x80000, "gfx3", 0 ) ROM_LOAD( "sbs-g_03.ic194", 0x000000, 0x80000, CRC(60e00d7b) SHA1(36fd02a7842ce1e79b8c4cfbe9c97052bef4aa62) ) /* Sprites */ ROM_REGION( 0x80000, "gfx4", 0 ) ROM_LOAD( "sbs-g_02.ic4", 0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */ ROM_REGION16_BE(0x20000, "gfx5", 0 ) /* Background tilemaps (used at runtime) */ ROM_LOAD16_BYTE( "8.ic27", 0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) ) ROM_LOAD16_BYTE( "9.ic26", 0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "6.ic120", 0x00000, 0x10000, CRC(5f39a980) SHA1(2a440f86685249f9c317634cad8cdedc8a8f1491) ) ROM_REGION(0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "sbs-g_04.ic139", 0x00000, 0x20000, CRC(7c74cc4e) SHA1(92097b372eacabdb9e8e261b0bc4223821ff9273) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION(0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "sbs-g_05.ic160", 0x00000, 0x20000, CRC(f0a782e3) SHA1(d572226b8e597f1c34d246cb284e047a6e2d9290) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0220, "proms", 0 ) ROM_LOAD( "82s135.ic94", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ ROM_LOAD( "82s129.ic69", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ ROM_LOAD( "82s123.ic154",0x0200, 0x0020, CRC(0f789fc7) SHA1(31936c21720802da20e39b4cb030e448353e7f19) ) /* ?? */ ROM_END ROM_START( blkheart ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "blkhrt.7", 0x00000, 0x20000, CRC(5bd248c0) SHA1(0649f4f8682404aeb3fc80643fcabc2d7836bb23) ) ROM_LOAD16_BYTE( "blkhrt.6", 0x00001, 0x20000, CRC(6449e50d) SHA1(d8cd126d921c95478346da96c20da01212395d77) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ ROM_LOAD( "4.bin", 0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "3.bin", 0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90068-2.bin", 0x00000, 0x20000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90068-1.bin", 0x00000, 0x20000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_END ROM_START( blkheartj ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "7.bin", 0x00000, 0x20000, CRC(e0a5c667) SHA1(3ef39b2dc1f7ffdddf586f0b3080ecd1f362ec37) ) ROM_LOAD16_BYTE( "6.bin", 0x00001, 0x20000, CRC(7cce45e8) SHA1(72491e30d1f9be2eede21fdde5a7484d4f65cfbf) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ ROM_LOAD( "4.bin", 0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "3.bin", 0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90068-2.bin", 0x00000, 0x20000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "90068-1.bin", 0x00000, 0x20000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_END ROM_START( tdragon ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */ ROM_LOAD16_BYTE( "91070_68k.8", 0x00000, 0x20000, CRC(121c3ae7) SHA1(b88446df3b177d40e0b59a481f8e4de212e3afbc) ) ROM_LOAD16_BYTE( "91070_68k.7", 0x00001, 0x20000, CRC(6e154d8e) SHA1(29baea24d670ab63149efe281de25cca15b7b863) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "91070.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "91070.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "91070.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ ROM_LOAD( "91070.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) ) ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91070.3", 0x00000, 0x20000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91070.2", 0x00000, 0x20000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "91070.9", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "91070.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END ROM_START( tdragon1 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */ ROM_LOAD16_BYTE( "thund.8", 0x00000, 0x20000, CRC(edd02831) SHA1(d6bc8d2c37707768a8bf666090f33eea12dda336) ) ROM_LOAD16_BYTE( "thund.7", 0x00001, 0x20000, CRC(52192fe5) SHA1(9afef197410e7feb71dc48003e181fbbaf5c99b2) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "91070.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "91070.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "91070.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ ROM_LOAD( "91070.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) ) ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91070.3", 0x00000, 0x20000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91070.2", 0x00000, 0x20000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "91070.9", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "91070.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END ROM_START( tdragonb ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */ ROM_LOAD16_BYTE( "td_04.bin", 0x00000, 0x20000, CRC(e8a62d3e) SHA1(dd221bcd80149fffb1bdddfd3d394996bd2f8ec5) ) ROM_LOAD16_BYTE( "td_03.bin", 0x00001, 0x20000, CRC(2fa1aa04) SHA1(ddf2b2ff179c31a1677d15d0403b00d77f9f0a6c) ) ROM_REGION(0x20000, "audiocpu", 0 ) /* 64k for sound cpu code */ ROM_LOAD( "td_02.bin", 0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) ROM_CONTINUE( 0x010000, 0x08000 ) ROM_COPY( "audiocpu", 0, 0x018000, 0x08000 ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "td_08.bin", 0x000000, 0x20000, CRC(5144dc69) SHA1(e64d88dc0e7672f811868621f74ec209aeafbc6f) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "td_06.bin", 0x000000, 0x80000, CRC(c1be8a4d) SHA1(6269fd7fccf1546a01bab755d8b6b7dcffc1166e) ) /* 16x16 tiles */ ROM_LOAD( "td_07.bin", 0x080000, 0x80000, CRC(2c3e371f) SHA1(77956425661f4f81c370fff63845d42057fcaec3) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "td_10.bin", 0x000000, 0x080000, CRC(bfd0ec5d) SHA1(7983661f74e8695f56e45c6e5c278d7d86431052) ) /* Sprites */ ROM_LOAD16_BYTE( "td_09.bin", 0x000001, 0x080000, CRC(b6e074eb) SHA1(bdde068f03415391b5edaa42f1389df0f7eef899) ) /* Sprites */ ROM_REGION( 0x040000, "oki", 0 ) /* OKIM6295 samples */ ROM_LOAD( "td_01.bin", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) ROM_END ROM_START( ssmissin ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "ssm14.165", 0x00001, 0x20000, CRC(eda61b74) SHA1(6247682c27d2be7dff1fad407ccf86fe2a25f11c) ) ROM_LOAD16_BYTE( "ssm15.166", 0x00000, 0x20000, CRC(aff15927) SHA1(258c2722ac7ca50360bfefa7b4e621373975a835) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "ssm16.172", 0x000000, 0x20000, CRC(5cf6eb1f) SHA1(d406b11cf06ae1afc57a50685689e358e5677a45) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "ssm17.147", 0x000000, 0x080000, CRC(c9c28455) SHA1(6a3e754aff3f368bde0e8905c33074084ad6ac30) ) /* 16x16 tiles */ ROM_LOAD( "ssm18.148", 0x080000, 0x080000, CRC(ebfdaad6) SHA1(0814cdfe83f36a7dd7b5416f9d0478192733dac0) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "ssm20.34", 0x000001, 0x080000, CRC(a0c16c4d) SHA1(e198f69b4d8660e33851a2631b5411611b1b2ea6) ) /* 16x16 tiles */ ROM_LOAD16_BYTE( "ssm19.33", 0x000000, 0x080000, CRC(b1943657) SHA1(97c05483b634315af338434bd2f565cc151a7283) ) /* 16x16 tiles */ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for Sound CPU */ ROM_LOAD( "ssm11.188", 0x00000, 0x08000, CRC(8be6dce3) SHA1(d9a235c36e0bc44025c291247d6b0b753e4bc0c8) ) ROM_REGION( 0x100000, "oki1", 0 ) /* OKIM6295 samples? */ ROM_LOAD( "ssm13.190", 0x00000, 0x20000, CRC(618f66f0) SHA1(97637a03d9fd82305e872e9bfa489862c974bb6c) ) ROM_LOAD( "ssm12.189", 0x80000, 0x80000, CRC(e8219c83) SHA1(68673d071a58ca2bfd2de344a830417d10bc5757) ) /* banked */ ROM_REGION( 0x0300, "proms", 0 ) ROM_LOAD( "ssm-pr2.113", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "ssm-pr1.114", 0x0100, 0x0200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) ) /* unknown */ ROM_END /* Air Attack Comad, 1996 68000 @ 8MHz Z80A @ 2MHz [8/4] M6295 @ 1MHz [8/8]. Pin 7 HIGH VSync 50Hz HSync 15.35kHz XTALs 8MHz (for 68000/Z80/M6295), 12MHz (for FPGAs) 2x 62256 RAM (main program RAM) 4x 62256 RAM (graphics) 2x 6264 RAM (graphics) 1x 6116 RAM (sound program) 6x 6116 RAM (other/ shared RAM etc) 2x PROMs 1x Lattice pLSI1032 FPGA 1x Actel 1020B FPGA */ ROM_START( airattck ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "ue10.bin", 0x000000, 0x20000, CRC(71deb9d8) SHA1(21da5a68a13c9017d787e88f7b293f263fbc6b20) ) ROM_LOAD16_BYTE( "uc10.bin", 0x000001, 0x20000, CRC(1837d4ba) SHA1(8dd5636a3a75c5d25d8850381e566a150ddc8ef1) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "4.ul10", 0x000000, 0x20000, CRC(e9362ab4) SHA1(d3e7d90e459bd4a80a189cc77821a6668103a640) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "9.uw9", 0x000000, 0x80000, CRC(86e59966) SHA1(50944dddb4c9f28e6f9b7c610a205310f4d7a076) ) ROM_LOAD( "10.ux9", 0x080000, 0x80000, CRC(122c8d04) SHA1(70a348b1a94f1bc69532ba92dafc91a2c0e41d58) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "7.uo81", 0x000000, 0x80000, CRC(3c38d671) SHA1(f9c9aaa1622ee0c20f569f6048e2b78bd507a1e5) ) /* 16x16 tiles */ ROM_LOAD16_BYTE( "8.uo82", 0x000001, 0x80000, CRC(9a83e3d8) SHA1(c765c4d278cc7f54ccdf6f00f8c6902a56abc2b8) ) /* 16x16 tiles */ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for Sound CPU */ ROM_LOAD( "3.su6", 0x000000, 0x08000, CRC(3e352370) SHA1(6e84881dc0b09a23f8b589431005459adc334c34) ) ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */ ROM_LOAD( "2.su12", 0x000000, 0x20000, CRC(93ab615b) SHA1(f670ac60f5f88148e55200e5e3591aa18b81c325) ) ROM_LOAD( "1.su13", 0x080000, 0x80000, CRC(09a836bb) SHA1(43fbd35c2ef3d201a4c82b0d3b7d7b971b385a14) ) ROM_REGION( 0x0300, "proms", 0 ) ROM_LOAD( "82s129.ug6", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "82s147.uh6", 0x0100, 0x0200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) ) /* unknown */ ROM_END ROM_START( airattcka ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "6.uc10", 0x000000, 0x20000, CRC(3572baf0) SHA1(0a2fe3be16d95896dc757ef231b3708093fc7ffa) ) ROM_LOAD16_BYTE( "5.ue10", 0x000001, 0x20000, CRC(6589c005) SHA1(350a7b8685cacde6b72c10458c33962c5a45a255) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "4.ul10", 0x000000, 0x20000, CRC(e9362ab4) SHA1(d3e7d90e459bd4a80a189cc77821a6668103a640) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "9.uw9", 0x000000, 0x80000, CRC(86e59966) SHA1(50944dddb4c9f28e6f9b7c610a205310f4d7a076) ) ROM_LOAD( "10.ux9", 0x080000, 0x80000, CRC(122c8d04) SHA1(70a348b1a94f1bc69532ba92dafc91a2c0e41d58) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "7.uo81", 0x000000, 0x80000, CRC(3c38d671) SHA1(f9c9aaa1622ee0c20f569f6048e2b78bd507a1e5) ) /* 16x16 tiles */ ROM_LOAD16_BYTE( "8.uo82", 0x000001, 0x80000, CRC(9a83e3d8) SHA1(c765c4d278cc7f54ccdf6f00f8c6902a56abc2b8) ) /* 16x16 tiles */ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for Sound CPU */ ROM_LOAD( "3.su6", 0x000000, 0x08000, CRC(3e352370) SHA1(6e84881dc0b09a23f8b589431005459adc334c34) ) ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */ ROM_LOAD( "2.su12", 0x000000, 0x20000, CRC(93ab615b) SHA1(f670ac60f5f88148e55200e5e3591aa18b81c325) ) ROM_LOAD( "1.su13", 0x080000, 0x80000, CRC(09a836bb) SHA1(43fbd35c2ef3d201a4c82b0d3b7d7b971b385a14) ) ROM_REGION( 0x0300, "proms", 0 ) ROM_LOAD( "82s129.ug6", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "82s147.uh6", 0x0100, 0x0200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) ) /* unknown */ ROM_END ROM_START( strahl ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "strahl-2.82", 0x00000, 0x20000, CRC(c9d008ae) SHA1(e9218a3143d5887e702df051354a9083a806c69c) ) ROM_LOAD16_BYTE( "strahl-1.83", 0x00001, 0x20000, CRC(afc3c4d6) SHA1(ab3dd7db692eb01e3a87f4216d322a702f3beaad) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "strahl-3.73", 0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */ ROM_REGION( 0x40000, "gfx2", 0 ) ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */ ROM_REGION( 0x180000, "gfx3", 0 ) ROM_LOAD( "strl3-01.32", 0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */ ROM_LOAD( "strl4-02.57", 0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) ) ROM_LOAD( "strl5-03.58", 0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) ) ROM_REGION( 0x80000, "gfx4", 0 ) ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */ ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "strahl-4.66", 0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) ) ROM_REGION( 0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "str8pmw1.540", 0x00000, 0x20000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "str9pew1.639", 0x00000, 0x20000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_END ROM_START( strahla ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE( "rom2", 0x00000, 0x20000, CRC(f80a22ef) SHA1(22099eb0bbb445702e0276713c3e48d60de60c30) ) ROM_LOAD16_BYTE( "rom1", 0x00001, 0x20000, CRC(802ecbfc) SHA1(cc776023c7bd6b6d6af9659a0c822a2887e50199) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "strahl-3.73", 0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */ ROM_REGION( 0x40000, "gfx2", 0 ) ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */ ROM_REGION( 0x180000, "gfx3", 0 ) ROM_LOAD( "strl3-01.32", 0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */ ROM_LOAD( "strl4-02.57", 0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) ) ROM_LOAD( "strl5-03.58", 0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) ) ROM_REGION( 0x80000, "gfx4", 0 ) ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */ ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "strahl-4.66", 0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) ) ROM_REGION( 0xa0000, "oki1", 0 ) /* Oki sample data */ ROM_LOAD( "str8pmw1.540", 0x00000, 0x20000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0xa0000, "oki2", 0 ) /* Oki sample data */ ROM_LOAD( "str9pew1.639", 0x00000, 0x20000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_END ROM_START( hachamf ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "7.93", 0x00000, 0x20000, CRC(9d847c31) SHA1(1d370d8db9cadadb9c2cb213e32f681947d81b7f) ) ROM_LOAD16_BYTE( "6.94", 0x00001, 0x20000, CRC(de6408a0) SHA1(2df77fecd44d2d8b0444abd4545923213ed76b2d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* unknown - sound cpu ?????? */ ROM_LOAD( "1.70", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "5.95", 0x000000, 0x020000, CRC(29fb04a2) SHA1(9654b90a66d0e2a0f9cd369cab29cdd0c6f77869) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16 tiles */ ROM_LOAD( "91076-4.101", 0x000000, 0x100000, CRC(df9653a4) SHA1(4a3204a98d7738c7895169fcece922fdf355f4fa) ) ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "91076-8.57", 0x000000, 0x100000, CRC(7fd0f556) SHA1(d1b4bec0946869d3d7bcb870d9ae3bd17395a231) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91076-2.46", 0x00000, 0x20000, CRC(3f1e67f2) SHA1(413e78587d8a043a0eb94447313ba1b3c5b35be5) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "91076-3.45", 0x00000, 0x20000, CRC(b25ed93b) SHA1(d7bc686bbccf982f40420a11158aa8e5dd4207c5) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_END ROM_START( macross ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "921a03", 0x00000, 0x80000, CRC(33318d55) SHA1(c99f85e09bd334dc8ce138b08cbed2331b0d67dd) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound program (unknown CPU) */ ROM_LOAD( "921a02", 0x00000, 0x10000, CRC(77c082c7) SHA1(be07aa14d0116f830f98e11a19f1debb48a5230e) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "921a01", 0x000000, 0x020000, CRC(bbd8242d) SHA1(7cf4897be1278e1190f499f00bc78384817a5160) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "921a04", 0x000000, 0x200000, CRC(4002e4bb) SHA1(281433d798ac85c84d4f1f3751a3032e8a3b5cd4) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "921a07", 0x000000, 0x200000, CRC(7d2bf112) SHA1(1997c99c2d3998096842abd1cee89e0e6ab43a47) ) /* Sprites */ ROM_REGION( 0xa0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "921a05", 0x00000, 0x20000, CRC(d5a1eddd) SHA1(42b5b255f02b9c6d856b1578af9a5dfc51ea6ebb) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0xa0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "921a06", 0x00000, 0x20000, CRC(89461d0f) SHA1(b7d27d0ee0b7ab44c20ab710b567f64fc3afb90c) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0220, "proms", 0 ) ROM_LOAD( "921a08", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "921a09", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_LOAD( "921a10", 0x0200, 0x0020, CRC(8371e42d) SHA1(6cfd70dfa00e85ec1df8832d41df331cc3e3733a) ) /* unknown */ ROM_END /* Gun Nail NMK/Tecmo, 1993 PCB Layout ---------- AK92077 |-------------------------------------------------------------| | LA4460 VOL YM2203 6116 92077-2.U10 62256 62256 | |-| 16MHz |------| 62256 62256 | | 4558 6295 92077-6.U57 |NMK004| 62256 62256 | |-| 12MHz | | 62256 62256 | | YM3014 6295 92077-5.U56 |------| | | |------| DIP2 |------| |------| | |J |NMK005| |NMK009| |NMK009| | |A | | DIP1 | | | | | |M |------| 92077-10.U96 |------| |------| | |M 6116 | |A |------| 6116 6116 |------| |----------| | | |NMK111| 6116 |NMK008| | NMK214 | | | |------| | | |----------| | |-| 92077-8.U35 |------|92077-9.U72|------| | | |NMK902| |----------| | |-| 6116 |------| | NMK215 | 92077-7.U134 | | 6116 |------| |----------| | | |------| 92077-1.U21 |NMK903| 92077-3O.U133| | |NMK111| |----------| |------| 62256 92077-3E.U131| | |------| | NMK214 | |------| 62256 | | |----------| |NMK903| |----------------| | | |------| |------| 6116 | | | | |NMK111| 92077-4.U19 |------| | 68000 | | | |------| |NMK901| 6116 | | | | 6264 |------| |----------------| | | 6264 10MHz | |-------------------------------------------------------------| Notes: 68000 - Motorola MC68000P12 CPU running at 10.000MHz (DIP64) 6116 - 2K x8 SRAM (x9, DIP24) 6264 - 8K x8 SRAM (x2, DIP28) 62256 - 32K x8 SRAM (x10, DIP28) YM2203- Yamaha YM2203 (DIP40) YM3014- Yamaha YM3014 (DIP8) 4558 - BA4558 Op Amp (DIP8) LA4460- Power Amplifier 6295 - Oki M6295, running at MHz, sample rate (x2, QFP44) DIP1/2- 8 position Dip Switches VOL - Volume Potentiometer NMK CUSTOM IC'S - NMK004; Actually a TLCS90-based Toshiba TMP91P640F-10 MCU with 16K internal OTP PROM, running at 8.000MHz [16 / 2] (QFP64) Note that the internal ROM is secured :( - NMK005 (x1, Square QFP64) - NMK008 (x1, Square QFP84) - NMK009 (x2, Square QFP100) - NMK111 (x3, QFP64) - NMK901 (x1, QFP80) - NMK903 (x2, QFP44) - NMK214 (x2, SDIP64) - NMK215 (x1, SDIP64) Sound:YM2203C,OKI M6295 x2 OSC :12.0000MHz,16.0000MHz,10.0000MHz Other:NMK 111 x3,214 x2,901,903 x2,902,005,004,215,008,009 x2 */ ROM_START( gunnail ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "3e.bin", 0x00000, 0x40000, CRC(61d985b2) SHA1(96daca603f18accb47f98a3e584b2c84fc5a2ca4) ) ROM_LOAD16_BYTE( "3o.bin", 0x00001, 0x40000, CRC(f114e89c) SHA1(a12f5278167f446bb5277e87289c41b5aa365c86) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ ROM_LOAD( "92077_2.bin", 0x00000, 0x10000, CRC(cd4e55f8) SHA1(92182767ca0ec37ec4949bd1a88c2efdcdcb60ed) ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(3d00a9f4) SHA1(91a82e3e74c8774d7f8b2adceb228b97010facfd) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "92077-4.bin", 0x000000, 0x100000, CRC(a9ea2804) SHA1(14dbdb3c7986db5e44dc7c5be6fcf39f3d1e50b0) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "92077-7.bin", 0x000000, 0x200000, CRC(d49169b3) SHA1(565ff7725dd6ace79b55706114132d8d867e81a9) ) /* Sprites */ ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "92077-5.bin", 0x00000, 0x20000, CRC(feb83c73) SHA1(b44e9d20b4af02e218c4bc875d66a7d6b8551cae) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "92077-6.bin", 0x00000, 0x20000, CRC(6d133f0d) SHA1(8a5e6e27a297196f20e4de0d060f1188115809bb) ) ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ ROM_REGION( 0x0220, "proms", 0 ) ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */ ROM_LOAD( "9.bpr", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0200, 0x0020, CRC(c60103c8) SHA1(dfb05b704bb5e1f75f5aaa4fa36e8ddcc905f8b6) ) /* unknown */ ROM_END ROM_START( macross2 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "mcrs2j.3", 0x00000, 0x80000, CRC(36a618fe) SHA1(56fdb2bcb4a39888cfbaf9692d66335524a6ac0c) ) ROM_REGION( 0x30000, "audiocpu", 0 ) /* Z80 code */ ROM_LOAD( "mcrs2j.2", 0x00000, 0x20000, CRC(b4aa8ac7) SHA1(73a6de56cbfb468450d9b39fcbae0362f242f37b) ) ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "mcrs2j.1", 0x000000, 0x020000, CRC(c7417410) SHA1(41431d8f1ff4d66baf1a8518a0b0c0125d1d71d4) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "bp932an.a04", 0x000000, 0x200000, CRC(c4d77ff0) SHA1(aca60a3f5f89265e7e3799e5d80ea8196fb11ff3) ) /* 16x16 tiles */ ROM_REGION( 0x400000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "bp932an.a07", 0x000000, 0x200000, CRC(aa1b21b9) SHA1(133822e3d8628aa4eb3e62fbd054956799423b98) ) /* Sprites */ ROM_LOAD16_WORD_SWAP( "bp932an.a08", 0x200000, 0x200000, CRC(67eb2901) SHA1(25e0f9fda1a8c0c2b59616dd153cb6dcb459d2d9) ) ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "bp932an.a06", 0x040000, 0x200000, CRC(ef0ffec0) SHA1(fd72cc77e02d1a00bf27e77a33d7dab5f6ba1cb4) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "bp932an.a05", 0x040000, 0x100000, CRC(b5335abb) SHA1(f4eaf4e465eeca31741d432ee46ed39ffcd92cca) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "mcrs2bpr.9", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_LOAD( "mcrs2bpr.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END ROM_START( tdragon2 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "6.rom", 0x00000, 0x80000, CRC(ca348caf) SHA1(7c5b0b92560baf413591230e061d2d57b25deafe) ) ROM_REGION( 0x30000, "audiocpu", 0 ) /* Z80 code */ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ ROM_REGION( 0x400000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END ROM_START( tdragon2a ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "6.bin", 0x00000, 0x80000, CRC(310d6bca) SHA1(f46ad1d13cf5014aef1f0e8862b369ab31c22866) ) ROM_REGION( 0x30000, "audiocpu", 0 ) /* Z80 code */ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ ROM_REGION( 0x400000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END ROM_START( bigbang ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "eprom.3", 0x00000, 0x80000, CRC(28e5957a) SHA1(fe4f870a9c2235cc02b4e036a2a4116f071d59ad) ) ROM_REGION( 0x30000, "audiocpu", 0 ) /* Z80 code */ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ ROM_REGION( 0x400000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_END /* Rapid Hero NMK, 1994 The main board has no ROMs at all except 3 PROMs. There is a plug-in daughter board that holds all the ROMs. It has the capacity for 3 socketed EPROMS and 7x 16M MASK ROMs total. PCB Layout (Main board) ----------------------- AWA94099 ----------------------------------------------------------------------- | YM2203 TMP90C841 6264 DSW2(8) 62256 62256 6116 62256 62256 6116 | | 6295 NMK112 12MHz DSW1(8) | | YM3014B 6295 16MHz NMK005 62256 62256 6116 62256 62256 6116 | |J ----------------- | |A | | | |M ----------------- | |M PROM3 NMK009 NMK009 | |A NMK111 6116 6116 NMK008 | | |-| 6116 6116 | |6116 | | NMK902 ----------------- | |6116 | | | | | |PROM1 | | ----------------- | | | | | |NMK111 | | NMK903 | | | | NMK903 PROM2 | |NMK111 | | | | |-| 6116 TMP68HC000P-16 | | 62256 NMK901 6116 14MHz | | 62256 | ----------------------------------------------------------------------- Notes: 68k clock: 14.00MHz VSync: 56Hz HSync: 15.35kHz 90c841 clock: 8.000MHz PCB Layout (Daughter board) --------------------------- AWA94099-ROME -------------------------- | 2 6 7 5 3 | | | | 1 | | | | | | | | 4 8 9 10 | | | | | | | -------------------------- */ ROM_START( raphero ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_WORD_SWAP( "rhp94099.3", 0x00000, 0x80000, CRC(ec9b4f05) SHA1(e5bd797620dc449fd78b41d87e9ba5a764eb8b44) ) ROM_REGION( 0x30000, "audiocpu", 0 ) /* tmp90c841 */ ROM_LOAD( "rhp94099.2", 0x00000, 0x20000, CRC(fe01ece1) SHA1(c469fb79f2774089848c814f92ddd3c9e384050f) ) ROM_RELOAD( 0x10000, 0x20000 ) ROM_REGION( 0x020000, "gfx1", 0 ) ROM_LOAD( "rhp94099.1", 0x000000, 0x020000, CRC(55a7a011) SHA1(87ded56bfdd38cbf8d3bd8b3789831f768550a12) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "rhp94099.4", 0x000000, 0x200000, CRC(076eee7b) SHA1(7c315fe33d0fcd92e0ce2f274996c8059228b005) ) /* 16x16 tiles */ ROM_REGION( 0x600000, "gfx3", 0 ) /* sprites */ ROM_LOAD16_WORD_SWAP( "rhp94099.8", 0x000000, 0x200000, CRC(49892f07) SHA1(2f5d20cd193cffcba9041aa11d6665adebeffffa) ) /* 16x16 tiles */ ROM_LOAD16_WORD_SWAP( "rhp94099.9", 0x200000, 0x200000, CRC(ea2e47f0) SHA1(97dfa8f95f27b36deb5ce1c80e3d727bad24e52b) ) /* 16x16 tiles */ ROM_LOAD16_WORD_SWAP( "rhp94099.10",0x400000, 0x200000, CRC(512cb839) SHA1(4a2c5ac88e4bf8a6f07c703277c4d33e649fd192) ) /* 16x16 tiles */ ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ // 1ST AND 2ND HALF IDENTICAL ROM_LOAD( "rhp94099.7", 0x040000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ ROM_REGION( 0x840000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "rhp94099.5", 0x040000, 0x200000, CRC(515eba93) SHA1(c35cb5f31f4bc7327be5777624af168f9fb364a5) ) /* all banked */ ROM_LOAD( "rhp94099.6", 0x240000, 0x200000, CRC(f1a80e5a) SHA1(218bd7b0c3d8b283bf96b95bf888228810699370) ) /* all banked */ ROM_LOAD( "rhp94099.7", 0x440000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ ROM_LOAD( "rhp94099.7", 0x640000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ ROM_REGION( 0x0300, "proms", 0 ) ROM_LOAD( "prom1.u19", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */ ROM_LOAD( "prom2.u53", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ ROM_LOAD( "prom3.u60", 0x0200, 0x0100, CRC(304f98c6) SHA1(8dfd9bf719087ec30c83efe95c4561666c7d1801) ) /* unknown */ ROM_END ROM_START( sabotenb ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "ic76.sb1", 0x00000, 0x40000, CRC(b2b0b2cf) SHA1(219f1cefdb107d8404f4f8bfa0700fd3218d9320) ) ROM_LOAD16_BYTE( "ic75.sb2", 0x00001, 0x40000, CRC(367e87b7) SHA1(c950041529b5117686e4bb1ae77db82fe758c1d0) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "ic35.sb3", 0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ic32.sb4", 0x000000, 0x200000, CRC(24c62205) SHA1(3ab0ca5d7c698328d91421ccf6f7dafc20df3c8d) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ic100.sb5", 0x000000, 0x200000, CRC(b20f166e) SHA1(074d770fd6d233040a80a92f4467d81f961c650b) ) /* Sprites */ ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic30.sb6", 0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic27.sb7", 0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) ) /* all banked */ ROM_END ROM_START( sabotenba ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "sb1.76", 0x00000, 0x40000, CRC(df6f65e2) SHA1(6ad9e9f13539310646895c5e7992c6546e75684b) ) ROM_LOAD16_BYTE( "sb2.75", 0x00001, 0x40000, CRC(0d2c1ab8) SHA1(abb43a8c5398195c0ad48d8d772ef47635bf25c2) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "ic35.sb3", 0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ic32.sb4", 0x000000, 0x200000, CRC(24c62205) SHA1(3ab0ca5d7c698328d91421ccf6f7dafc20df3c8d) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ic100.sb5", 0x000000, 0x200000, CRC(b20f166e) SHA1(074d770fd6d233040a80a92f4467d81f961c650b) ) /* Sprites */ ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic30.sb6", 0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic27.sb7", 0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) ) /* all banked */ ROM_END ROM_START( cactus ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "02.bin", 0x00000, 0x40000, CRC(15b2ff2f) SHA1(432cfd58daa0fdbe62157b36ca73eb9af6ce91e9) ) /* PCB is marked 'Cactus', actual game has no title screen */ ROM_LOAD16_BYTE( "01.bin", 0x00001, 0x40000, CRC(5b8ba46a) SHA1(617e414fda1bd3e9f391676d312b0cdd4700adee) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "i03.bin", 0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "s-05.bin", 0x000000, 0x100000, CRC(fce962b9) SHA1(abd4311a17dac819d5bf8d81fe289a8b3a793b32) ) ROM_LOAD( "s-06.bin", 0x100000, 0x100000, CRC(16768fbc) SHA1(fe3667fc2e8fd0c6690e09f7b24466cc3eb34403) ) ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "s-03.bin", 0x000001, 0x100000, CRC(bc1781b8) SHA1(5000f2111c5981428a772a9dcae2c7c8f1f6958b) ) ROM_LOAD16_BYTE( "s-04.bin", 0x000000, 0x100000, CRC(f823885e) SHA1(558b2bed207ccff8f1425cbb9dadc1ec0b70a65b) ) ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "s-01.bin", 0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "s-02.bin", 0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) ) /* all banked */ ROM_END ROM_START( bjtwin ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "93087-1.bin", 0x00000, 0x20000, CRC(93c84e2d) SHA1(ad0755cabfef78e7e689856379d6f8c88a9b27c1) ) ROM_LOAD16_BYTE( "93087-2.bin", 0x00001, 0x20000, CRC(30ff678a) SHA1(aa3ce4905e448e371e254545ef9ed7edb00b1cc3) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "93087-3.bin", 0x000000, 0x010000, CRC(aa13df7c) SHA1(162d4f12364c68028e86fe97ee75c262daa4c699) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "93087-4.bin", 0x000000, 0x100000, CRC(8a4f26d0) SHA1(be057a2b6d28c623ac1f16cf02ddbe12ca430b4a) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "93087-5.bin", 0x000000, 0x100000, CRC(bb06245d) SHA1(c91e2284d95370b8ef2eb1b9d6305fdd6cde23a0) ) /* Sprites */ ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "93087-6.bin", 0x040000, 0x100000, CRC(372d46dd) SHA1(18f44e777241af50787730652fa018c51b65ea15) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "93087-7.bin", 0x040000, 0x100000, CRC(8da67808) SHA1(f042574c097f5a8c2684fcc23f2c817c168254ef) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_END ROM_START( bjtwina ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "93087.1", 0x00000, 0x20000, CRC(c82b3d8e) SHA1(74435ba7842f1be9968006894cfa5eef05c47395) ) ROM_LOAD16_BYTE( "93087.2", 0x00001, 0x20000, CRC(9be1ec47) SHA1(bf37d9254a7bbdf49b006971886ed9845d72e4b3) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "93087-3.bin", 0x000000, 0x010000, CRC(aa13df7c) SHA1(162d4f12364c68028e86fe97ee75c262daa4c699) ) /* 8x8 tiles */ ROM_REGION( 0x100000, "gfx2", 0 ) ROM_LOAD( "93087-4.bin", 0x000000, 0x100000, CRC(8a4f26d0) SHA1(be057a2b6d28c623ac1f16cf02ddbe12ca430b4a) ) /* 16x16 tiles */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "93087-5.bin", 0x000000, 0x100000, CRC(bb06245d) SHA1(c91e2284d95370b8ef2eb1b9d6305fdd6cde23a0) ) /* Sprites */ ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "93087-6.bin", 0x040000, 0x100000, CRC(372d46dd) SHA1(18f44e777241af50787730652fa018c51b65ea15) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "93087-7.bin", 0x040000, 0x100000, CRC(8da67808) SHA1(f042574c097f5a8c2684fcc23f2c817c168254ef) ) /* all banked */ ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ ROM_END ROM_START( bjtwinp ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "ic76", 0x00000, 0x20000, CRC(c2847f0d) SHA1(2659e642586fcd199928d3f10ec300a1f13f2e3b) ) ROM_LOAD16_BYTE( "ic75", 0x00001, 0x20000, CRC(dd8fdfce) SHA1(8b2da3b97acd07783b68ee270ae678dab6e538ec) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "ic35", 0x000000, 0x010000, CRC(45d67683) SHA1(004a85ecf34e97fad40195e7e20a11bf8cafe41e) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "u1.ic32", 0x000000, 0x080000, CRC(b4960ba0) SHA1(4194bcd55fe48da08d5e951dc78daa457b1d76af) ) ROM_LOAD( "u2.ic32", 0x080000, 0x080000, CRC(99ee571d) SHA1(85db0c9c3bdf5367dd4868daf9de40bdeeda9426) ) ROM_LOAD( "u3.ic32", 0x100000, 0x080000, CRC(25720ffb) SHA1(361961e06467c7f4126e774a179087fe424160f5) ) /* Contains Gun Dealer + Dooyong logos + lots of adult pics! - these are used after the bonus game in this set.. */ ROM_REGION( 0x100000, "gfx3", 0 ) ROM_LOAD16_BYTE( "u4.ic100", 0x000000, 0x080000, CRC(6501b1fb) SHA1(1c0832c3bb33aac1e5cd8845d77bc09222548ef8) ) ROM_LOAD16_BYTE( "u5.ic100", 0x000001, 0x080000, CRC(8394e2ba) SHA1(bb921ccf1f5221611449ed3537d60395d8a1c1e9) ) ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "bottom.ic30", 0x040000, 0x80000, CRC(b5ef197f) SHA1(89d675f921dead585c2fef44105a7aea2f1f399c) ) /* all banked */ ROM_LOAD( "top.ic30", 0x0c0000, 0x80000, CRC(ab50531d) SHA1(918987f01a8b1b007721d2b365e2b2fc536bd676) ) ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "top.ic27", 0x040000, 0x80000, CRC(adb2f256) SHA1(ab7bb6683799203d0f46705f2fd241c6de914e77) ) /* all banked */ ROM_LOAD( "bottom.ic27", 0x0c0000, 0x80000, CRC(6ebeb9e4) SHA1(b547b2fbcc0a35d6183dd4f19684b04839690a2b) ) ROM_END ROM_START( nouryoku ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "ic76.1", 0x00000, 0x40000, CRC(26075988) SHA1(c3d0eef0417be3f78008c026915fd7e2fd589563) ) ROM_LOAD16_BYTE( "ic75.2", 0x00001, 0x40000, CRC(75ab82cd) SHA1(fb828f87eebbe9d61766535efc18de9dfded110c) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "ic35.3", 0x000000, 0x010000, CRC(03d0c3b1) SHA1(4d5427c324e2141d0a953cc5133d10b327827e0b) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "ic32.4", 0x000000, 0x200000, CRC(88d454fd) SHA1(c79c48d9b3602266499a5dd0b15fd2fb032809be) ) /* 16x16 tiles */ ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_WORD_SWAP( "ic100.5", 0x000000, 0x200000, CRC(24d3e24e) SHA1(71e38637953ec98bf308824aaef5628803aead21) ) /* Sprites */ ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic30.6", 0x040000, 0x100000, CRC(feea34f4) SHA1(bee467e74dbad497c6f5f6b38b7e52001e767012) ) /* all banked */ ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD( "ic27.7", 0x040000, 0x100000, CRC(8a69fded) SHA1(ee73f1789bcc672232606a4b3b28087fea1c5c69) ) /* all banked */ ROM_END ROM_START( nouryokup ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "ic76.1", 0x00000, 0x40000, CRC(26075988) SHA1(c3d0eef0417be3f78008c026915fd7e2fd589563) ) ROM_LOAD16_BYTE( "ic75.2", 0x00001, 0x40000, CRC(75ab82cd) SHA1(fb828f87eebbe9d61766535efc18de9dfded110c) ) ROM_REGION( 0x010000, "gfx1", 0 ) ROM_LOAD( "ic35.3", 0x000000, 0x010000, CRC(03d0c3b1) SHA1(4d5427c324e2141d0a953cc5133d10b327827e0b) ) /* 8x8 tiles */ ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD( "bg0.u1.ic32", 0x000000, 0x080000, CRC(1fec8e14) SHA1(7c596a455f829f31a801ea3d9fbb6a63810436a6) ) ROM_LOAD( "bg1.u2.ic32", 0x080000, 0x080000, CRC(7b8ea3f0) SHA1(14722f7dcf5e86f32126ccb975f0a592c065f836) ) ROM_LOAD( "bg2.u3.ic32", 0x100000, 0x080000, CRC(6f4eb408) SHA1(7f10676b7263bdf0fd5cfc4e5449f932984d4eb3) ) ROM_LOAD( "bg3.u4.ic32", 0x180000, 0x080000, CRC(dea8c120) SHA1(c3f36fc0c97ee54f8ae3a55098c743980496eaa5) ) ROM_REGION( 0x200000, "gfx3", 0 ) ROM_LOAD16_BYTE( "obj0even.u7.ic100", 0x000000, 0x080000, CRC(7966ce07) SHA1(231644bafd8970da2c57aeffc2fdaab60f4a512a) ) ROM_LOAD16_BYTE( "obj0odd.u6.ic100", 0x000001, 0x080000, CRC(d4913a08) SHA1(49082a71c71176ff0e122844a40ac4f893342e45) ) ROM_LOAD16_BYTE( "obj1even.u9.ic100", 0x100000, 0x080000, CRC(e01567e8) SHA1(69775752b61ce103d91e127f1fbf7c94b960b835) ) ROM_LOAD16_BYTE( "obj1odd.u8.ic100", 0x100001, 0x080000, CRC(4a383085) SHA1(45351eb67c90936e500b527e9f93c1f70b67bd9a) ) ROM_REGION( 0x140000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD("soundpcm0.bottom.ic30", 0x040000, 0x080000, CRC(34ded136) SHA1(00fe1d6327483bb9e73802beca3ce6d808a20ceb) ) ROM_LOAD("soundpcm1.top.ic30", 0x0c0000, 0x080000, CRC(a8d2abf7) SHA1(5619437e3e1f70f78cb2aeb2d619511be11e02e1) ) ROM_REGION( 0x140000, "oki2", 0 ) /* OKIM6295 samples */ ROM_LOAD("soundpcm2.top.ic27", 0x040000, 0x080000, CRC(29d0a15d) SHA1(a235eec225dd5006dd1f4e21d78fd647335f45dc) ) ROM_LOAD("soundpcm3.bottom.ic27", 0x0c0000, 0x080000, CRC(c764e749) SHA1(8399d3b6807bd263eee607c5625618d19688b394) ) ROM_END ROM_START( manybloc ) ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "1-u33.bin", 0x00001, 0x20000, CRC(07473154) SHA1(e67f637e74dfe5f1be558f963c0b3225254afe33) ) ROM_LOAD16_BYTE( "2-u35.bin", 0x00000, 0x20000, CRC(04acd8c1) SHA1(3ef329e8d25565c7f7166f12137f4df5a057022f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80? CPU */ ROM_LOAD( "3-u146.bin", 0x00000, 0x10000, CRC(7bf5fafa) SHA1(d17feca628775860d6c7019a9725bd40fbc5b7d7) ) ROM_REGION( 0x80000, "gfx1", 0 ) ROM_LOAD( "12-u39.bin", 0x000000, 0x10000, CRC(413b5438) SHA1(af366ce998ebe0d25255cc0cb1cd81689d3696ec) ) /* 8x8 tiles */ ROM_REGION( 0x80000, "gfx2", 0 ) ROM_LOAD( "5-u97.bin", 0x000000, 0x40000, CRC(536699e6) SHA1(13ec233f5e4f2a65ac7bc55511e988508269acd5) ) ROM_LOAD( "4-u96.bin", 0x040000, 0x40000, CRC(28af2640) SHA1(08fa57de66cf58fe2256455538261c2d05d27e1e) ) ROM_REGION( 0x080000, "gfx3", 0 ) /* 16x16 sprite tiles */ ROM_LOAD16_BYTE( "8-u54b.bin", 0x000000, 0x20000, CRC(03eede77) SHA1(2476a488bb0d39790b2cc7f261ddb973378022ff) ) ROM_LOAD16_BYTE( "10-u86b.bin", 0x000001, 0x20000, CRC(9eab216f) SHA1(616f3ee2d06aa7151af634773a5e8633bff9588e) ) ROM_LOAD16_BYTE( "9-u53b.bin", 0x040000, 0x20000, CRC(dfcfa040) SHA1(f1561defe9746afdb1a5327d0a4435a6f3e87a77) ) ROM_LOAD16_BYTE( "11-u85b.bin", 0x040001, 0x20000, CRC(fe747dd5) SHA1(6ba57a45f4d77e2574de95d4a2f0718c601e7214) ) ROM_REGION( 0xa0000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "6-u131.bin", 0x00000, 0x20000, CRC(79a4ae75) SHA1(f7609d0ca18b4af8c5f37daa1795a7a6c6d768ae) ) ROM_CONTINUE( 0x40000, 0x20000 ) /* banked */ ROM_LOAD( "7-u132.bin", 0x60000, 0x40000, CRC(21db875e) SHA1(e1d96155b6d8825f7c449f276d02f9769258345d) ) /* banked */ ROM_REGION( 0xa0000, "oki2", ROMREGION_ERASE00 ) /* OKIM6295 samples */ /* empty */ ROM_REGION( 0x0420, "proms", 0 ) ROM_LOAD( "u200.bpr", 0x0000, 0x0020, CRC(1823600b) SHA1(7011156ebcb815b176856bd67898ce655ea1b5ab) ) /* unknown */ ROM_LOAD( "u7.bpr", 0x0020, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ ROM_LOAD( "u10.bpr", 0x0120, 0x0200, CRC(8e9b569a) SHA1(1d8d633fbeb72d5e55ad4b282df02e9ca5e240eb) ) /* unknown */ ROM_LOAD( "u120.bpr", 0x0320, 0x0100, CRC(576c5984) SHA1(6e9b7f30de0d91cb766a62abc5888ec9af085a27) ) /* unknown */ ROM_END /*************************************************************************** Stagger I (AFEGA 1998) Parts: 1 MC68HC000P10 1 Z80 2 Lattice ispLSI 1032E ***************************************************************************/ ROM_START( stagger1 ) /* Japan only, with later (c) year of 1998 */ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "2.bin", 0x000000, 0x020000, CRC(8555929b) SHA1(b405d81c2a45191111b1a4458ac6b5c0a129b8f1) ) ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x020000, CRC(5b0b63ac) SHA1(239f793b6845a88d1630da790a2762da730a450d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "7.bin", 0x00000, 0x80000, CRC(048f7683) SHA1(7235b7dcfbb72abf44e60b114e3f504f16d29ebf) ) ROM_LOAD16_BYTE( "6.bin", 0x00001, 0x80000, CRC(051d4a77) SHA1(664182748e72b3e44202caa20f337d02e946ca62) ) ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 0, 16x16x4 */ ROM_LOAD( "4.bin", 0x00000, 0x80000, CRC(46463d36) SHA1(4265bc4d24ff64e39d9273965701c740d7e3fee0) ) ROM_REGION( 0x00100, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ // Unused ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "5", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END /*************************************************************************** Red Hawk (c)1997 Afega CPU: MC68HC000P10 (68000) Sound: Z0840006PSC (Z80) AD-65 rebadged OKI M6295 PD2001 rebadged YM2151, 24 pin DIP KA3002 rebadged YM3012, 16 pin DIP OSC: 12.000MHz & 4.000MHz RAM: GM76C256CLL-70 x 6, HT6116-70 x 5, GM76C88AL-12 X 2 Dips: 2 x 8 position Other: Lattice pLSI 1032 x 2 GAL22V10B x 2, GAL16V8B +-----------------------------------------+ | 6116 YM3012 YM2151 M6295 5 4MHz | |VOL 1 | | Z80 pLSI1032 4 | | 76C88 | |J 6116 76C256 76C88 | |A 6116 76C256 | |M 2 76C256 76C256 | |M 3 76C256 76C256 GAL | |A SW1 | | 68000-10 6116 | | 6116 | | 6 | | SW2 pLSI1032 7 | | 12MHz GAL GAL | +-----------------------------------------+ ***************************************************************************/ DRIVER_INIT_MEMBER(nmk16_state,redhawk) { decryptcode( machine(), 23, 22, 21, 20, 19, 18, 16, 15, 14, 17, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); } ROM_START( redhawk ) /* U.S.A., Canada & South America, (c) 1997 */ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "2", 0x000000, 0x020000, CRC(3ef5f326) SHA1(e89c7c24a05886a14995d7c399958dc00ad35d63) ) ROM_LOAD16_BYTE( "3", 0x000001, 0x020000, CRC(9b3a10ef) SHA1(d03480329b23474e5a9e42a75b09d2140eed4443) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "6", 0x000001, 0x080000, CRC(61560164) SHA1(d727ab2d037dab40745dec9c4389744534fdf07d) ) ROM_LOAD16_BYTE( "7", 0x000000, 0x080000, CRC(66a8976d) SHA1(dd9b89cf29eb5557845599d55ef3a15f53c070a4) ) ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "4", 0x000000, 0x080000, CRC(d6427b8a) SHA1(556de1b5ce29d1c3c54bb315dcaa4dd0848ca462) ) ROM_REGION( 0x00100, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ // Unused ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "5", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END ROM_START( redhawke ) /* Excellent Co., Ldt license (no code scramble), (c) 1997 */ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "rhawk2.bin", 0x000000, 0x020000, CRC(6d2e23b4) SHA1(54579d460844e022ab61f32bfec28f00f2d27140) ) ROM_LOAD16_BYTE( "rhawk3.bin", 0x000001, 0x020000, CRC(5e0d6188) SHA1(c6ce8a3adf940893fcb6281348fdb0cdd65fe654) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "rhawk6.bin", 0x000001, 0x080000, CRC(3f980ab6) SHA1(2b9202555f09d99e3575123dfed415bfd815bb2e) ) ROM_LOAD16_BYTE( "rhawk7.bin", 0x000000, 0x080000, CRC(0264ef54) SHA1(1124007538161dfc582f9c7692a20cdee459720c) ) ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "rhawk4.bin", 0x000000, 0x080000, CRC(d79aa288) SHA1(b8598ab77d2019e5943b22f551e0a38eee5e52b6) ) ROM_REGION( 0x00100, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ // Unused ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "5", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END ROM_START( redhawki ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "rhit-2.bin", 0x000000, 0x004000, CRC(30cade0e) SHA1(2123ca858bcaed5165739107ccc2830561af0b38) ) ROM_CONTINUE(0x20000,0x4000) ROM_CONTINUE(0x10000,0x4000) ROM_CONTINUE(0x30000,0x4000) ROM_CONTINUE(0x08000,0x4000) ROM_CONTINUE(0x28000,0x4000) ROM_CONTINUE(0x18000,0x4000) ROM_CONTINUE(0x38000,0x4000) ROM_LOAD16_BYTE( "rhit-3.bin", 0x000001, 0x004000, CRC(37dbb3c2) SHA1(d1f8258f357b885d38f87d288f98046dbd7d56aa) ) ROM_CONTINUE(0x20001,0x4000) ROM_CONTINUE(0x10001,0x4000) ROM_CONTINUE(0x30001,0x4000) ROM_CONTINUE(0x08001,0x4000) ROM_CONTINUE(0x28001,0x4000) ROM_CONTINUE(0x18001,0x4000) ROM_CONTINUE(0x38001,0x4000) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "rhit-6.bin", 0x000001, 0x080000, CRC(7cbd5c60) SHA1(69bd728861ea5a02f514d5aed837b549f3c86019) ) ROM_LOAD16_BYTE( "rhit-7.bin", 0x000000, 0x080000, CRC(bcb367c7) SHA1(a8f0527bf75a227cdfd98385549892fb16330aea) ) ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "rhit-4.bin", 0x000000, 0x080000, CRC(aafb3cc4) SHA1(b5f6608c1e05470fdfb22e0a35a8a74974c4d3cf) ) ROM_REGION( 0x00100, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ // Unused ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "5", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END ROM_START( redhawkb ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "rhb-1.bin", 0x000000, 0x020000, CRC(e733ea07) SHA1(b1ffeda633d5e701f0e97c79930a54d7b89a85c5) ) ROM_LOAD16_BYTE( "rhb-2.bin", 0x000001, 0x020000, CRC(f9fa5684) SHA1(057ea3eebbaa1a208a72beef21b9368df7032ce1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "1.bin", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "rhb-3.bin", 0x000000, 0x080000, CRC(0318d68b) SHA1(c773de7b6f9c706e62349dc73af4339d1a3f9af6) ) ROM_LOAD( "rhb-4.bin", 0x080000, 0x080000, CRC(ba21c1ef) SHA1(66b0dee67acb5b3a21c7dba057be4093a92e10a9) ) ROM_REGION( 0x080000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "rhb-5.bin", 0x000000, 0x080000, CRC(d0eaf6f2) SHA1(6e946e13b06df897a63e885c9842816ec908a709) ) ROM_REGION( 0x080000, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "5", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END /*************************************************************************** Guardian Storm / Sen Jin - Guardian Storm (C) Afega 1998 CPU: 68HC000FN10 (68000, 68 pin PLCC) Sound: Z84C000FEC (Z80, 44 pin PQFP), AD-65 (OKI M6295), BS901 (YM2151, 24 pin DIP), BS901 (YM3012, 16 pin DIP) OSC: 12.000MHz (near 68000), 4.000MHz (Near Z84000) RAM: LH52B256-70LL x 6, HM61S16 x 7, UM6264BK-10L X 2 (6264* on some boards are 52B256) Dips: 2 x 8 position Other: AFEGA AFI-GFSK (68 pin PLCC, located next to 68000) AFEGA AFI-GFLK (208 pin PQFP) +-------------------------------------------------------------+ | YM3012 4MHz | | AD-65 AFEGA1.U95 +-------+ +-------+ AFEGA4.U112| | VOL YM2151 | AFEGA | |MC68000| | +-+ 6116 Z80 |AF1-GFS| | FN10 | AFEGA5.U107| | AFEGA7.U92 | | | | | +-+ AFEGA1.U4 +-------+ +-------+ 52B256 | | 6116 6116 | |J 6116 6116 12MHz 52B256 | |A | |M 6116 | |M 6116 | |A +--------+ 52B256 | | | | | +-+ 6264* | AFEGA | 52B256 | | |AF1-GFLK| AF1-SP.UC13 | +-+ 6264* | | 52B256 AF1-B2.UC8 | | +--------+ AF1-B1.UC3 | | 52B256 | | | +-------------------------------------------------------------+ ROMS: AFEGA7.U92 27C512 - Z80 sound CPU code AFEGA1.U95 27C020 - OKI M6295 sound samples AFEGA1.U4 27C512 - Graphics / text Layer AFEGA4.U112 27C020 + M68000 program code AFEGA5.U107 27C020 | AFEGA3.UC13 ST M27C160 - Sprites AF1-B2.UC8 MASK ROM read as 27C160 - Backgrounds AF1-B1.UC3 MASK ROM read as 27C160 - Backgrounds ROMS for Sen Jin: AFEGA7.U92 27C512 - Z80 sound CPU code AFEGA1.U95 27C2000 - OKI M6295 sound samples GST-03.U4 27C512 - Graphics / text Layer GST-04.U112 27C2000 + M68000 program code GST-05.U107 27C2000 | AF1-SP.UC13 MASK ROM read as 27C160 - Sprites AF1-B2.UC8 MASK ROM read as 27C160 - Backgrounds AF1-B1.UC3 MASK ROM read as 27C160 - Backgrounds ***************************************************************************/ DRIVER_INIT_MEMBER(nmk16_state,grdnstrm) { decryptcode( machine(), 23, 22, 21, 20, 19, 18, 16, 17, 14, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); } ROM_START( grdnstrm ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "afega4.u112", 0x000000, 0x040000, CRC(2244713a) SHA1(41ae66a38931c12462ecae53e1e44c3420d0d235) ) ROM_LOAD16_BYTE( "afega5.u107", 0x000001, 0x040000, CRC(5815c806) SHA1(f6b7809b2e3b29b89289ecc994909434fe34e10d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "afega7.u92", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) /* MASK ROM (read as 27C020) */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "afega3.uc13", 0x000000, 0x200000, CRC(0218017c) SHA1(5a8a4f07cd3f9dcf62455ddaceaec0cfba8c2de9) ) /* ST M27C160 EPROM */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega_af1-b2.uc8", 0x000000, 0x200000, CRC(d68588c2) SHA1(c5f397d74a6ecfd2e375082f82e37c5a330fba62) ) /* MASK ROM (read as 27C160) */ ROM_LOAD( "afega_af1-b1.uc3", 0x200000, 0x200000, CRC(f8b200a8) SHA1(a6c43dd57b752d87138d7125b47dc0df83df8987) ) /* MASK ROM (read as 27C160) */ ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "afega1.u4", 0x00000, 0x10000, CRC(9e7ef086) SHA1(db086bb2ceb11f3e24548aa131cc74fe79a2b516) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega1.u95", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END ROM_START( grdnstrmk ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "gst-04.u112", 0x000000, 0x040000, CRC(922c931a) SHA1(1d1511033c8c424535a73f5c5bf58560a8b1842e) ) ROM_LOAD16_BYTE( "gst-05.u107", 0x000001, 0x040000, CRC(d22ca2dc) SHA1(fa21c8ec804570d64f4b167b7f65fd5811435e46) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "afega7.u92", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "afega_af1-sp.uc13", 0x000000, 0x200000, CRC(7d4d4985) SHA1(15c6c1aecd3f12050c1db2376f929f1a26a1d1cf) ) /* MASK ROM (read as 27C160) */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega_af1-b2.uc8", 0x000000, 0x200000, CRC(d68588c2) SHA1(c5f397d74a6ecfd2e375082f82e37c5a330fba62) ) /* MASK ROM (read as 27C160) */ ROM_LOAD( "afega_af1-b1.uc3", 0x200000, 0x200000, CRC(f8b200a8) SHA1(a6c43dd57b752d87138d7125b47dc0df83df8987) ) /* MASK ROM (read as 27C160) */ ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "gst-03.u4", 0x00000, 0x10000, CRC(a1347297) SHA1(583f4da991eeedeb523cf4fa3b6900d40e342063) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega1.u95", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END ROM_START( redfoxwp2 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "u112", 0x000000, 0x040000, CRC(3f31600b) SHA1(6c56e36178effb60ec27dfcd205393e2cfac4ed6) ) /* No label */ ROM_LOAD16_BYTE( "u107", 0x000001, 0x040000, CRC(daa44ab4) SHA1(7edaf8c7383dd31250478aeebc3247c525c75fef) ) /* No label */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "u92", 0x00000, 0x10000, CRC(864b55c2) SHA1(43475b05e35549ad301c3d4a25d4f4f0bcbe3f2c) ) /* Winbond W27E512-12 with no label */ ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "afega_af1-sp.uc13", 0x000000, 0x200000, CRC(7d4d4985) SHA1(15c6c1aecd3f12050c1db2376f929f1a26a1d1cf) ) /* MASK ROM (read as 27C160) */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega_af1-b2.uc8", 0x000000, 0x200000, CRC(d68588c2) SHA1(c5f397d74a6ecfd2e375082f82e37c5a330fba62) ) /* MASK ROM (read as 27C160) */ ROM_LOAD( "afega_af1-b1.uc3", 0x200000, 0x200000, CRC(f8b200a8) SHA1(a6c43dd57b752d87138d7125b47dc0df83df8987) ) /* MASK ROM (read as 27C160) */ ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "u4", 0x00000, 0x10000, CRC(19239401) SHA1(7876335dd97418bd9130dc894a517f3ceca20135) ) /* Winbond W27E512-12 with no label */ ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega1.u95", 0x00000, 0x40000, CRC(e911ce33) SHA1(a29c4dea98a22235122303325c63c15fadd3431d) ) ROM_END /*************************************************************************** Pop's Pop's by Afega (1999) The pcb might be missing an eprom in a socket --- i just think it uses a generic PCB but no sprites in this case,. 1x 68k 1x z80 1x Ad65 (oki 6295) 1x OSC 12mhz (near 68k) 1x OSC 4mhz (near z80) 1x ym2151 1x Afega AF1-CFLK custom chip Smt 1x Afega AF1-CF5K custom chip socketed 2x dipswitch banks ****************************************************************************/ ROM_START( popspops ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "afega4.u112", 0x000000, 0x040000, CRC(db191762) SHA1(901fdc20374473127d694513d4291e29e65eafe8) ) ROM_LOAD16_BYTE( "afega5.u107", 0x000001, 0x040000, CRC(17e0c48b) SHA1(833c61c4b3ee293b0bcddfa86dfa9c1014375115) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "afega1.u92", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) ROM_REGION( 0x400000, "gfx1", ROMREGION_ERASEFF ) /* Sprites, 16x16x4 */ /* no sprite roms? */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega6.uc8", 0x000000, 0x200000, CRC(6d506c97) SHA1(4909c0b530f9526c8bf76e502c914ef10a50d1fc) ) ROM_LOAD( "afega7.uc3", 0x200000, 0x200000, CRC(02d7f9de) SHA1(10102ffbf37a57afa300b01cb5067b7e672f4999) ) ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "afega3.u4", 0x00000, 0x10000, CRC(f39dd5d2) SHA1(80d05d57a621b0063f63ce05be9314f718b3c111) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega2.u95", 0x00000, 0x40000, CRC(ecd8eeac) SHA1(849beba8f04cc322bb8435fa4c26551a6d0dec64) ) ROM_END /**************************************************************************** Mang-chi by Afega 1x osc 4mhz 1x osc 12mhz 1x tmp68hc0000p-10 1x z80c006 1x AD65 (MSM6295) 1x CY5001 (YM2151 rebadged) 2x dipswitch 1x fpga 1x smd ASIC not marked Dumped by Corrado Tomaselli ****************************************************************************/ ROM_START( mangchi ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "afega9.u112", 0x00000, 0x40000, CRC(0b1517a5) SHA1(50e307641759bb2a35aff56ef9598364740803a0) ) ROM_LOAD16_BYTE( "afega10.u107", 0x00001, 0x40000, CRC(b1d0f33d) SHA1(68b5be3f7911f7299566c5bf5801e90099433613) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "sound.u92", 0x00000, 0x10000, CRC(bec4f9aa) SHA1(18fb2ee06892983c117a62b70cd72a98f60a08b6) ) ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "afega6.uc11", 0x000000, 0x040000, CRC(979efc30) SHA1(227fe1e20137253aac04585d2bbf67091d032e56) ) ROM_LOAD16_BYTE( "afega7.uc14", 0x000001, 0x040000, CRC(c5cbcc38) SHA1(86070a9598e80f90ec7892d623e1a975ccc68178) ) ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega5.uc6", 0x000000, 0x80000, CRC(c73261e0) SHA1(0bb66aa315aaecb26169812cf47a6504a74f0db5) ) ROM_LOAD( "afega4.uc1", 0x080000, 0x80000, CRC(73940917) SHA1(070305c81de959c9d00b6cf1cc20bbafa204976a) ) ROM_REGION( 0x100000, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega2.u95", 0x00000, 0x40000, CRC(78c8c1f9) SHA1(eee0d03164a0ac0ddc5186ab56090320e9d33aa7) ) ROM_END /*************************************************************************** Bubble 2000 (c)1998 Tuning Bubble 2000 Tuning, 1998 CPU : TMP68HC000P-10 (68000) SOUND : Z840006 (Z80, 44 pin QFP), YM2151, OKI M6295 OSC : 4.000MHZ, 12.000MHz DIPSW : 8 position (x2) RAM : 6116 (x5, gfx related?) 6116 (x1, sound program ram), 6116 (x1, near rom3) 64256 (x4, gfx related?), 62256 (x2, main program ram), 6264 (x2, gfx related?) PALs/PROMs: None Custom: Unknown 208 pin QFP labelled LTC2 (Graphics generator) Unknown 68 pin PLCC labelled LTC1 (?, near rom 2 and rom 3) ROMs : Filename Type Possible Use ---------------------------------------------- rom01.92 27C512 Sound Program rom02.95 27C020 Oki Samples rom03.4 27C512 ? (located near rom 1 and 2 and near LTC1) rom04.1 27C040 \ rom05.3 27C040 | rom06.6 27C040 | rom07.9 27C040 | Gfx rom08.11 27C040 | rom09.14 27C040 | rom12.2 27C040 | rom13.7 27C040 / rom10.112 27C040 \ Main Program rom11.107 27C040 / ***************************************************************************/ DRIVER_INIT_MEMBER(nmk16_state,bubl2000) { decryptcode( machine(), 23, 22, 21, 20, 19, 18, 13, 14, 15, 16, 17, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); } ROM_START( bubl2000 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "rom10.112", 0x00000, 0x20000, CRC(87f960d7) SHA1(d22fe1740217ac20963bd9003245850598ccecf2) ) ROM_LOAD16_BYTE( "rom11.107", 0x00001, 0x20000, CRC(b386041a) SHA1(cac36e22a39b5be0c5cd54dce5c912ff811edb28) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "rom01.92", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) /* same as the other games on this driver */ ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "rom08.11", 0x000000, 0x040000, CRC(519dfd82) SHA1(116b06f6e7b283a5417338f716bbaab6cfadb41d) ) ROM_LOAD16_BYTE( "rom09.14", 0x000001, 0x040000, CRC(04fcb5c6) SHA1(7594fa6bf98fc01b8848473a222a621c7c9ff00d) ) ROM_REGION( 0x300000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "rom06.6", 0x000000, 0x080000, CRC(ac1aabf5) SHA1(abce6ba381b189ab3ec703a8ef74bccbe10876e0) ) ROM_LOAD( "rom07.9", 0x080000, 0x080000, CRC(69aff769) SHA1(89b98c1023710861e622c8a186b6ec48f5109d42) ) ROM_LOAD( "rom13.7", 0x100000, 0x080000, CRC(3a5b7226) SHA1(1127740c5bc2f830d73a77c8831e1b0db6606375) ) ROM_LOAD( "rom04.1", 0x180000, 0x080000, CRC(46acd054) SHA1(1bd7a1b6b2ce6a3daa8c92843c546beb377af8fb) ) ROM_LOAD( "rom05.3", 0x200000, 0x080000, CRC(37deb6a1) SHA1(3a8a3d961800bb15fd389429b92fa1e5b5f416df) ) ROM_LOAD( "rom12.2", 0x280000, 0x080000, CRC(1fdc59dd) SHA1(d38e21c878241b4315a36e0590397211ca63f2c4) ) ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "rom03.4", 0x00000, 0x10000, CRC(f4c15588) SHA1(a21ae71c0a8c7c1df63f9905fd86303bc2d3991c) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "rom02.95", 0x00000, 0x40000, CRC(859a86e5) SHA1(7b51964227411a40aac54b9cd9ff64f091bdf2b0) ) ROM_END /*************************************************************************** Hot Bubble Afega, 1998 PCB Layout ---------- Bottom Board |------------------------------------------| | BS902 BS901 Z80 4MHz | | | | 6116 6295 | | 62256 | | 6116 62256 | | 6116 | |J 6116 |------------| | |A 6116 | 68000 | | |M |------------| | |M DSW2 6264 | |A 6264 | | | | |-------| | | | | | | | | | | DSW1 | | 62256 62256 | | |-------| | | 6116 62256 62256 | |12MHz 6116 | |------------------------------------------| Notes: 68000 - running at 12.000MHz Z80 - running at 4.000MHz 62256 - 32K x8 SRAM 6264 - 8K x8 SRAM 6116 - 2K x8 SRAM BS901 - YM2151, running at 4.000MHz BS902 - YM3012 6295 - OKI MSM6295 running at 1.000MHz [4/4], sample rate = 1000000 / 132 * - Unknown QFP208 VSync - 56.2Hz (measured on 68000 IPL1) Top Board |---------------------------| | | | S1 S2 T1 | | | | CR5 CR7 C1 | | | | CR6 +CR8 C2 | | | | BR1 BR3 | | | | +BR2 +BR4 | | | | CR1 CR3 |------| | | | * | | | CR2 +CR4 | | | | |------| | |---------------------------| Notes: * - Unknown PLCC68 IC + - Not populated ***************************************************************************/ ROM_START( hotbubl ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "c1.uc1", 0x00001, 0x40000, CRC(7bb240e9) SHA1(99048fa275182c3da3bfb0dedd790f4b5858bd92) ) ROM_LOAD16_BYTE( "c2.uc9", 0x00000, 0x40000, CRC(7917b95d) SHA1(0344bae9c373c5943e7693720e5e531bc2e0d7ee) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "s1.uc14", 0x00000, 0x10000, CRC(5d8cf28e) SHA1(2a440bf5136f95af137b6688e566a14e65be94b1) ) /* same as the other games on this driver */ ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "br1.uc3", 0x000000, 0x080000, CRC(6fc18de4) SHA1(57b4823fc41637780f64eadd1ddf61db531a2599) ) ROM_LOAD16_BYTE( "br3.uc10", 0x000001, 0x080000, CRC(bb677240) SHA1(d7a26bcd33d491cee441edda6d092a1d08308b0e) ) ROM_REGION( 0x300000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "cr6.uc16", 0x100000, 0x080000, CRC(99d6523c) SHA1(0b628585d749e175d5a4dc600af1ba9cb936bfeb) ) ROM_LOAD( "cr7.uc19", 0x080000, 0x080000, CRC(a89d9ce4) SHA1(5965b2b4b67bc91bc0e7474e593c7e1953b75adc) ) ROM_LOAD( "cr5.uc15", 0x000000, 0x080000, CRC(65bd5159) SHA1(627ccc0ab131e643c3c52ee9bb41c7a85153c35e) ) ROM_LOAD( "cr2.uc7", 0x280000, 0x080000, CRC(27ad6fc8) SHA1(00b1a5c5e1a245590b300b9baf71585d41813e3e) ) ROM_LOAD( "cr3.uc12", 0x200000, 0x080000, CRC(c841a4f6) SHA1(9b0ee5623c87a0cfc63d3741a65d399bd6593f18) ) ROM_LOAD( "cr1.uc6", 0x180000, 0x080000, CRC(fc9101d2) SHA1(1d5b8484264b6d73fe032946096a469226cce901) ) ROM_REGION( 0x10000, "gfx3", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "t1.uc2", 0x00000, 0x10000, CRC(ce683a93) SHA1(aeee2671051f1badf2255375cd7c5fa847d1746c) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "s2.uc18", 0x00000, 0x40000, CRC(401c980f) SHA1(e47710c47cfeecce3ccf87f845b219a9c9f21ee3) ) ROM_END /*************************************************************************** Fire Hawk - ESD, 2001 --------------------- - To enter test mode, hold on button 1 at boot up PCB Layout ---------- ESD-PROT-002 |------------------------------------------------| | FHAWK_S1.U40 FHAWK_S2.U36 | | 6116 6295 FHAWK_S3.U41 | | 6295 FHAWK_G1.UC6| | PAL Z80 FHAWK_G2.UC5| | 4MHz |--------| | | | ACTEL | | |J 6116 62256 |A54SX16A| | |A 6116 62256 | | | |M |(QFP208)| | |M |--------| | |A DSW1 FHAWK_G3.UC2 | | DSW2 |--------| | | DSW3 | ACTEL | | | 6116 |A54SX16A| | | 6116 | | | | 62256 |(QFP208)| | | FHAWK_P1.U59 |--------| | | FHAWK_P2.U60 PAL 62256 62256| | | |12MHz 62256 68000 62256 62256| |------------------------------------------------| Notes: 68000 clock: 12.000MHz Z80 clock: 4.000MHz 6295 clocks: 1.000MHz (both), sample rate = 1000000 / 132 (both) VSync: 56Hz ***************************************************************************/ ROM_START( firehawk ) ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "fhawk_p1.u59", 0x00001, 0x80000, CRC(d6d71a50) SHA1(e947720a0600d049b7ea9486442e1ba5582536c2) ) ROM_LOAD16_BYTE( "fhawk_p2.u60", 0x00000, 0x80000, CRC(9f35d245) SHA1(5a22146f16bff7db924550970ed2a3048bc3edab) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "fhawk_s1.u40", 0x00000, 0x20000, CRC(c6609c39) SHA1(fe9b5f6c3ab42c48cb493fecb1181901efabdb58) ) ROM_REGION( 0x200000, "gfx1",0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "fhawk_g3.uc2", 0x00000, 0x200000, CRC(cae72ff4) SHA1(7dca7164015228ea039deffd234778d0133971ab) ) ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "fhawk_g1.uc6", 0x000000, 0x200000, CRC(2ab0b06b) SHA1(25362f6a517f188c62bac28b1a7b7b49622b1518) ) ROM_LOAD( "fhawk_g2.uc5", 0x200000, 0x200000, CRC(d11bfa20) SHA1(15142004ab49f7f1e666098211dff0835c61df8d) ) ROM_REGION( 0x00100, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ // Unused ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */ ROM_LOAD( "fhawk_s2.u36", 0x00000, 0x40000, CRC(d16aaaad) SHA1(96ca173ca433164ed0ae51b41b42343bd3cfb5fe) ) ROM_REGION( 0x040000, "oki2", 0 ) /* Samples */ ROM_LOAD( "fhawk_s3.u41", 0x00000, 0x40000, CRC(3fdcfac2) SHA1(c331f2ea6fd682cfb00f73f9a5b995408eaab5cf) ) ROM_END /*************************************************************************** Spectrum 2000 (c) 2000 YONA Tech CPU: 68HC000FN10 (68000, 68 pin PLCC) Sound: Z84C000FEC (Z80, 44 pin PQFP) AD-65 x 2 rebadged OKI M6295 OSC: 12.000MHz & 4.000MHz RAM: IS61C256AH-20N x 6, HT6116-70 x 7, UM6164DK-12 X 2 Dips: 2 x 8 position Other: 208 pin PQFP labeled YONA Tech 2000 K (silkscreened on the PCB as LTC1) GAL16V8B (not dumped) +-----------------------------------------------------+ | 6116 4MHz AD-65 2.U101 29F1610.UC1 | |VOL 1.U103 AD-65 3.U106 | | Z80 61C256 | +-+ 6116 61C256 | | SW1 SW2 6116 61C256 | +-+ 61C256 | | | |J +--------+ | |A | YONA | | |M | Tech | | |M 61C256 61C256 | 2000 K | | |A 5.U124 6.U120 GAL | | | | +-------+ +--------+ 6116 | +-+ |MC68000| 6116 | | | FN10 | 6164 | +-+ | | 6164 29F1610.UC2 | | +-------+ 29F1610.UC3 | | 6116 12MHz| | 6116 4.U3 | +-----------------------------------------------------+ ROMs YONATech1 is a TMS27C512 YONATech3 is a MX27C4000 YONATech2 & YONATech4 are TMS27C010A YONATech5 & YONATech6 are TMS27C020 UC1, UC2 & UC3 are all Micronix MX29F1610ML 16Mb Flash roms UC1, UC2 & UC3 have solder pads for both MX29F1610 Flash & 27C160 EPROMs ***************************************************************************/ DRIVER_INIT_MEMBER(nmk16_state,spec2k) { decryptcode( machine(), 23, 22, 21, 20, 19, 18, 17, 13, 14, 15, 16, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ); } ROM_START( spec2k ) ROM_REGION( 0x80000, "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) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "yonatech1.u103", 0x00000, 0x10000, CRC(ef5acda7) SHA1(e55b36a1598ecbbbad984997d61599dfa3958f60) ) ROM_REGION( 0x200000, "gfx1",0 ) /* Sprites, 16x16x4 */ ROM_LOAD( "u154.bin", 0x00000, 0x200000, CRC(f77b764e) SHA1(37e249bd4d7174c5232261880ce8debf42723716) ) /* UC1 MX29F1610ML Flash ROM */ ROM_REGION( 0x400000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "u153.bin", 0x000000, 0x200000, CRC(a00bbf8f) SHA1(622f52ef50d52cdd5e6b250d68439caae5c13404) ) /* UC2 MX29F1610ML Flash ROM */ ROM_LOAD( "u152.bin", 0x200000, 0x200000, CRC(f6423fab) SHA1(253e0791eb58efa1df42e9c74d397e6e65c8c252) ) /* UC3 MX29F1610ML Flash ROM */ ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF ) /* Layer 1, 8x8x4 */ ROM_LOAD( "yonatech4.u3", 0x00000, 0x20000, CRC(5626b08e) SHA1(63207ed6b4fc8684690bf3fe1991a4f3babd73e8) ) ROM_REGION( 0x40000, "oki1", 0 ) /* Samples */ ROM_LOAD( "yonatech2.u101", 0x00000, 0x20000, CRC(4160f172) SHA1(0478a5a4bbba115e6cfb5501aa55aa2836c963bf) ) ROM_REGION( 0x080000, "oki2", 0 ) /* Samples */ ROM_LOAD( "yonatech3.u106", 0x00000, 0x80000, CRC(6644c404) SHA1(b7ad3f9f08971432d024ef8be3fa3140f0bbae67) ) ROM_END /*************************************************************************** 1995, Afega 1x TMP68000P-10 (main) 1x GOLDSTAR Z8400A (sound) 1x AD-65 (equivalent to OKI6295) 1x LATTICE pLSI 1032 60LJ A428A48 1x oscillator 8.000MHz 1x oscillator 12.000MHz 1x 27256 (SU6) 1x 27C010 (SU12) 1x 27C020 (SU13) 2x 27c4001 (UB11, UB13) 3x 27C010 (UJ11, UJ12, UJ13) 1x 27C4001 (UI20) 1x JAMMA edge connector 1x trimmer (volume) ***************************************************************************/ ROM_START( twinactn ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD16_BYTE( "afega.uj13", 0x00000, 0x20000, CRC(9187701d) SHA1(1da8d1e3969f60c7b0521cd22c723cb51619df9d) ) ROM_LOAD16_BYTE( "afega.uj12", 0x00001, 0x20000, CRC(fe8cff9c) SHA1(a1a04deff9e2cb54c69601898cf4e5133c2bc437) ) ROM_REGION( 0x8000, "audiocpu", 0 ) /* Z80 Code */ ROM_LOAD( "afega.su6", 0x0000, 0x8000, CRC(3a52dc88) SHA1(87941987d34d93df6df9ff33ccfbd1f5d4a39c51) ) // 1111xxxxxxxxxxx = 0x00 ROM_REGION( 0x100000, "gfx3", 0 ) /* Sprites, 16x16x4 */ ROM_LOAD16_BYTE( "afega.ub11", 0x00000, 0x80000, CRC(287f20d8) SHA1(11faa36b97593c0b5cee70343750ae1ecd2f5b71) ) ROM_LOAD16_BYTE( "afega.ub13", 0x00001, 0x80000, CRC(f525f819) SHA1(78ffcb709a3a900d3851392630a11ab58fc0bc75) ) ROM_REGION( 0x80000, "gfx2", 0 ) /* Layer 0, 16x16x8 */ ROM_LOAD( "afega.ui20", 0x00000, 0x80000, CRC(237c8f92) SHA1(bb3131b450bd78d03b789626a465fb9e7a4604a7) ) ROM_REGION( 0x20000, "gfx1", 0 ) /* Layer 1, 8x8x4 */ ROM_LOAD( "afega.uj11", 0x00000, 0x20000, CRC(3f439e92) SHA1(27e5b1b0aa3b13fa35e3f83793037314b2942aa2) ) ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */ ROM_LOAD( "afega.su12", 0x000000, 0x20000, CRC(91d665f3) SHA1(10b5b07ed28ea78b6d3493afc03e003a8468c007) ) ROM_RELOAD( 0x040000, 0x20000 ) ROM_RELOAD( 0x080000, 0x20000 ) ROM_RELOAD( 0x0c0000, 0x20000 ) ROM_RELOAD( 0x020000, 0x20000 ) ROM_RELOAD( 0x060000, 0x20000 ) ROM_LOAD( "afega.su13", 0x0a0000, 0x20000, CRC(30e1c306) SHA1(c859f11fd329793b11e96264e91c79a557b488a4) ) ROM_CONTINUE( 0x0e0000, 0x20000 ) ROM_END /*************************************************************************** Game Drivers ***************************************************************************/ GAME( 1989, tharrier, 0, tharrier, tharrier, driver_device, 0, ROT270, "UPL", "Task Force Harrier", GAME_IMPERFECT_GRAPHICS ) GAME( 1989, tharrieru, tharrier,tharrier, tharrier, driver_device, 0, ROT270, "UPL (American Sammy license)", "Task Force Harrier (US?)", GAME_IMPERFECT_GRAPHICS ) GAME( 1990, mustang, 0, mustang, mustang, driver_device, 0, ROT0, "UPL", "US AAF Mustang (25th May. 1990)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, mustangs, mustang, mustang, mustang, driver_device, 0, ROT0, "UPL (Seoul Trading license)", "US AAF Mustang (25th May. 1990 / Seoul Trading)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, bioship, 0, bioship, bioship, driver_device, 0, ROT0, "UPL (American Sammy license)", "Bio-ship Paladin", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, sbsgomo, bioship, bioship, bioship, driver_device, 0, ROT0, "UPL", "Space Battle Ship Gomorrah", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, vandyke, 0, vandyke, vandyke, driver_device, 0, ROT270, "UPL", "Vandyke (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, vandykejal, vandyke, vandyke, vandyke, driver_device, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 1)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, vandykejal2,vandyke, vandyke, vandyke, driver_device, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 2)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1990, vandykeb, vandyke, vandykeb, vandykeb, nmk16_state, vandykeb, ROT270, "bootleg", "Vandyke (bootleg with PIC16c57)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, blkheart, 0, blkheart, blkheart, driver_device, 0, ROT0, "UPL", "Black Heart", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, blkheartj,blkheart, blkheart, blkheart, driver_device, 0, ROT0, "UPL", "Black Heart (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, acrobatm, 0, acrobatm, acrobatm, driver_device, 0, ROT270, "UPL (Taito license)", "Acrobat Mission", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1992, strahl, 0, strahl, strahl, driver_device, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 1)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1992, strahla, strahl, strahl, strahl, driver_device, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 2)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, tdragon, 0, tdragon, tdragon, nmk16_state, tdragon, ROT270, "NMK (Tecmo license)", "Thunder Dragon (9th Jan. 1992)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, tdragon1, tdragon, tdragon, tdragon, nmk16_state, tdragon, ROT270, "NMK (Tecmo license)", "Thunder Dragon (4th Jun. 1991)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1991, hachamf, 0, hachamf, hachamf, nmk16_state, hachamf, ROT0, "NMK", "Hacha Mecha Fighter (19th Sep. 1991)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1992, macross, 0, macross, macross, nmk16_state, nmk, ROT270, "Banpresto", "Super Spacefortress Macross / Chou-Jikuu Yousai Macross", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1993, gunnail, 0, gunnail, gunnail, nmk16_state, nmk, ROT270, "NMK / Tecmo", "GunNail (28th May. 1992)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1993, macross2, 0, macross2, macross2, driver_device, 0, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) GAME( 1993, tdragon2, 0, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) GAME( 1993, tdragon2a,tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Big Bang (9th Nov. 1993)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) GAME( 1994, raphero, 0, raphero, raphero, driver_device, 0, ROT270, "NMK / Media Shoji", "Rapid Hero", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 23rd July 1993 in test mode, (c)1994 on title screen /* both sets of both these games show a date of 9th Mar 1992 in the test mode, they look like different revisions so I doubt this is accurate */ GAME( 1992, sabotenb, 0, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 1)", GAME_NO_COCKTAIL ) GAME( 1992, sabotenba,sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 2)", GAME_NO_COCKTAIL ) GAME( 1992, cactus, sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "bootleg", "Cactus (bootleg of Saboten Bombers)", GAME_NO_COCKTAIL ) // PCB marked 'Cactus', no title screen GAME( 1993, bjtwin, 0, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 1)", GAME_NO_COCKTAIL ) GAME( 1993, bjtwina, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 2)", GAME_NO_COCKTAIL ) GAME( 1993, bjtwinp, bjtwin, bjtwin, bjtwin, driver_device, 0, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures)", GAME_NO_COCKTAIL ) // Genuine NMK PCB but GFX aren't encrypted GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk16_state, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", GAME_NO_COCKTAIL ) GAME( 1995, nouryokup,nouryoku, bjtwin, nouryoku, driver_device, 0, ROT0, "Tecmo", "Nouryoku Koujou Iinkai (prototype)", GAME_NO_COCKTAIL ) // GFX aren't encrypted /* Non NMK boards */ // these use the seibu sound system (sound / music stolen from Raiden) rather than the bootleggers copying the nmk004 GAME( 1990, mustangb, mustang, mustangb, mustang, driver_device, 0, ROT0, "bootleg", "US AAF Mustang (bootleg)", 0 ) GAME( 1990, mustangb2,mustang, mustangb, mustang, driver_device, 0, ROT0, "bootleg (TAB Austria)", "US AAF Mustang (TAB Austria bootleg)", 0 ) // PCB and roms have TAB Austria stickers GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg)", 0 ) // these are from Comad, based on the Thunder Dragon code? GAME( 1992, ssmissin, 0, ssmissin, ssmissin, nmk16_state, ssmissin, ROT270, "Comad", "S.S. Mission", GAME_NO_COCKTAIL ) GAME( 1996, airattck, 0, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 1)", GAME_NO_COCKTAIL ) GAME( 1996, airattcka,airattck, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 2)", GAME_NO_COCKTAIL ) // afega & clones GAME( 1995, twinactn, 0, twinactn, twinactn, driver_device, 0, ROT0, "Afega", "Twin Action", 0 ) GAME( 1998, stagger1, 0, stagger1, stagger1, driver_device, 0, ROT270, "Afega", "Stagger I (Japan)", 0 ) GAME( 1997, redhawk, stagger1, stagger1, stagger1, nmk16_state, redhawk, ROT270, "Afega (New Vision Ent. license)", "Red Hawk (US)", 0 ) GAME( 1997, redhawki, stagger1, redhawki, stagger1, driver_device, 0, ROT0, "Afega (Hea Dong Corp license)", "Red Hawk (Italy)", 0 ) // bootleg? strange scroll regs GAME( 1997, redhawke, stagger1, stagger1, stagger1, driver_device, 0, ROT270, "Afega (Excellent Co. license)", "Red Hawk (Excellent Co., Ltd)", 0 ) GAME( 1997, redhawkb, stagger1, redhawkb, redhawkb, driver_device, 0, ROT0, "bootleg", "Red Hawk (bootleg)", 0 ) GAME( 1998, grdnstrm, 0, grdnstrm, grdnstrm, driver_device, 0, ORIENTATION_FLIP_Y, "Afega (Apples Industries license)", "Guardian Storm", 0 ) GAME( 1998, grdnstrmk,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Sen Jin - Guardian Storm (Korea)", 0 ) GAME( 1998, redfoxwp2,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Red Fox War Planes II (China)", 0 ) GAME( 1998, bubl2000, 0, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Tuning", "Bubble 2000", 0 ) // on a tuning board (bootleg?) GAME( 1998, hotbubl, bubl2000, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Pandora", "Hot Bubble" , 0 ) // on an afega board .. GAME( 1999, popspops, 0, popspops, popspops, nmk16_state, grdnstrm, ROT0, "Afega", "Pop's Pop's", 0 ) GAME( 2000, mangchi, 0, popspops, mangchi, nmk16_state, bubl2000, ROT0, "Afega", "Mang-Chi", 0 ) GAME( 2000, spec2k, 0, firehawk, spec2k, nmk16_state, spec2k, ORIENTATION_FLIP_Y, "Yona Tech", "Spectrum 2000 (Euro)", 0 ) GAME( 2001, firehawk, 0, firehawk, firehawk, driver_device, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk", 0 ) // 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 )