// license:BSD-3-Clause // copyright-holders:Nicola Salmoria, Dan Boris /*************************************************************************** Sasuke vs. Commander SNK driver by ? Games supported: * Sasuke vs. Commander * Satan of Saturn [2 sets] * Zarzon (clone of 'satansat') * Vanguard [3 sets] * Fantasy [3 sets] G-202 * Pioneer Balloon G-204 * Nibbler [4 sets] G-208 DIP locations verified from manual for: * Zarzon (Satan of Saturn uses the same code, so I guess locations are the same) * Vanguard * Nibbler **************************************************************************** Vanguard memory map (preliminary) 0000-03ff RAM 0400-07ff Video RAM 1 0800-0bff Video RAM 2 0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2) 1000-1fff Character generator RAM 4000-bfff ROM read: 3104 IN0 3105 IN1 3106 DSW 3107 IN2 write 3100 Sound Port 0 3101 Sound Port 1 3103 bit 7 = flip screen 3200 y scroll register 3300 x scroll register **************************************************************************** Fantasy and Nibbler memory map (preliminary) 0000-03ff RAM 0400-07ff Video RAM 1 0800-0bff Video RAM 2 0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2) 1000-1fff Character generator RAM 3000-bfff ROM read: 2104 IN0 2105 IN1 2106 DSW 2107 IN2 write 2000-2001 To the HD46505S video controller 2100 Sound Port 0 2101 Sound Port 1 2103 bit 7 = flip screen bit 4-6 = music 2 bit 3 = char bank selector bit 0-2 = background color 2200 y scroll register 2300 x scroll register Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI. **************************************************************************** Pioneer Balloon memory map (preliminary) 0000-03ff RAM IC13 cpu 0400-07ff Video RAM 1 IC67 video 0800-0bff Video RAM 2 ???? video 0c00-0fff Color RAM IC68 (3 bits for VRAM 1 and 3 bits for VRAM 2) 1000-1fff RAM ???? Character generator 3000-3fff ROM 4/5 IC12 4000-4fff ROM 1 IC07 5000-5fff ROM 2 IC08 6000-6fff ROM 3 IC09 7000-7fff ROM 4 IC10 8000-8fff ROM 5 IC14 9000-9fff ROM 6 IC15 read: b104 IN0 b105 IN1 b106 DSW b107 IN2 write b000 Sound Port 0 b001 Sound Port 1 b100 ???? b103 bit 7 = flip screen bit 4-6 = music 2 bit 3 = char bank selector bit 0-2 = background color b106 ???? b200 y scroll register b300 x scroll register Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI. **************************************************************************** Nibbler information: Version Number - Hold DOWN on controller after crosshatch appears. A number will show up to the right of the primary game creator's initials "JU". The music that has been in MAME for this game since it was first added is not from Nibbler! IC51 is a leftover from the game board to which the conversion kit for Nibbler was applied, a Pioneer Balloon, and is where MAME's original rom dump came from. Both the dedicated cabinet boards and the conversion kit boards for Nibbler never came with nor do the manuals for them list a "iC51" in the parts list breakdown. In fact, sound roms between different games using the snk6502 custom sound can largely be interchanged with another using the same. **************************************************************************** Stephh's notes (based on the games M6502 code and some tests) : 1a) 'vanguard' - There are 5 different coinage settings according to the game code which are based on DSW bits 1 to 3 : bit 3 bit 2 bit 1 effect OFF OFF OFF 1C_1C OFF OFF ON 2C_1C (manual tells this is the default setting) OFF ON OFF 1C_3C ON OFF OFF 1C_2C ON ON OFF 1C_6C The 3 other combinaisons give 1C_1C - From the manual, it says that DSW bit 6 determines the cost of a game : * bit 6 = 0 : "25c / game" * bit 6 = 1 : "50c / game" When you look at the game code, it appears to be some of "Bonus Coinage" : * bit 6 = 0 : you get an additional credit each time you insert 1 coin * bit 6 = 1 : you get an additional credit each time you insert 2 coins - So, instead of having something like this : PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4") PORT_DIPSETTING( 0x02, "25c= 1C/1C 2C/3C 50c= 2C/2C" ) PORT_DIPSETTING( 0x00, "25c= 1C/2C 50c= 1C/1C 2C/3C" ) PORT_DIPSETTING( 0x08, "25c= 1C/3C 50c= 1C/2C 2C/5C" ) PORT_DIPSETTING( 0x04, "25c= 1C/4C 50c= 1C/3C 2C/7C" ) PORT_DIPSETTING( 0x0c, "25c= 1C/7C 50c= 1C/6C 2C/13C" ) duplicate settings - untested in game code PORT_DIPSETTING( 0x06, "25c= 1C/2C 50c= 1C/1C 2C/3C" ) PORT_DIPSETTING( 0x0a, "25c= 1C/2C 50c= 1C/1C 2C/3C" ) PORT_DIPSETTING( 0x0e, "25c= 1C/2C 50c= 1C/1C 2C/3C" ) ... PORT_DIPNAME( 0x40, 0x00, "Game Cost" ) PORT_DIPLOCATION("SW1:!7") PORT_DIPSETTING( 0x00, "25c / game" ) PORT_DIPSETTING( 0x40, "50c / game" ) or using conditional Dip Switches, I've coded this the way I did. - You can always continue, provided you're on the 1st pattern. The continue text is in English ! - 10 letters when you enter your initials 1b) 'vangrdce' - Code for coinage is the same as for 'vanguard'. - You can always continue, provided you're on the 1st pattern. The continue text is in English ! - 3 letters when you enter your initials 1c) 'vanguarj' - Code for coinage is the same as for 'vanguard'. - You can always continue, provided you're on the 1st pattern. The continue text is in Japanese ! - 10 letters when you enter your initials 2a) 'fantasy' - Code for coinage is the same as for 'vanguard'. - You can always continue, provided you're on the 1st pattern. Note that the continue text is in German ! - 3 letters when you enter your initials - I can't tell if it's an ingame bug or not, but there's a mix between "COIN" and "CREDIT" ("COCR" is displayed) 2b) 'fantasyu' - Code for coinage is the same as for 'vanguard'. - This version seems easier than 'fantasy', especially on level 2 where you have a sword and an easier maze. - Code has been added to test DSW bit 7 to allow or not a continue play. Note that the continue play is only available on the 1st pattern. - 3 letters when you enter your initials - "Fantasy" is written with different "font" and color - "CREDIT" is displayed instead of "COIN" 2b) 'fantasyj' - Code for coinage is the same as for 'vanguard'. - This version seems easier than 'fantasy', especially on level 2 where you have a sword and an easier maze. - Code has been added to test DSW bit 7 to allow or not a continue play. Note that the continue play is only available on the 1st pattern. Also note that the continue text is still in English ! - 3 letters when you enter your initials - "COIN" is correctly displayed. 3) 'pballoon' - Code for coinage is the same as for 'vanguard'. - The "Language" Dip Switch only has an effect at the end of the pattern when it displays "LAND HERE" or what I suppose to be same in Japanese. - 3 letters when you enter your initials - "CREDIT" is displayed 4a) 'nibbler6' - "Lives settings" : 3, 4, 5 or 6 (table at 0x4edf) - Bonus life every 4 levels - Simplified instructions - DSW bit 2 determines what happens when the snake touches a corner (code at 0x3c91) : * bit 2 = 0 : pause for 13 frames * bit 2 = 1 : no pause 4b) 'nibbler' - "Lives settings" : 3, 4, 5 or 6 (table at 0x5bf0) - Bonus life every 4 levels - Detailed instructions - DSW bit 2 is no more tested when the snake touches a corner (code at 0x3b3c); this means that the snake ALWAYS pauses for 13 frames. However, there is extra code where it is tested to determine difficulty (code at 0x31b4 and 0x32f5 - tables at 0x3391 and 0x33b2) 4c) 'nibbler8' - code based on 'nibbler' - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7) - Bonus life every 4 levels - Detailed instructions - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner and DSW bit 2 determines difficulty as in 'nibbler' (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae) 4d) 'nibblero' - code is the same as 'nibbler8' (same routines, same code and tables addresses) - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7) - Bonus life every 8 levels - Detailed instructions - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner and DSW bit 2 determines difficulty as in 'nibbler' (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae) - The game is harder than 'nibblerb' because the tables at 0x338d and 0x33ae have higher values; so the snake goes faster and grows longer. ***************************************************************************/ /* TODO: - sasuke/satansat/vanguard discrete sound - vanguard/fantasy speech (hd38880/hd38882 emulation) - music freq (Satan of Saturn and clone) - correct music waveform/volume control - correct ROM names */ #include "emu.h" #include "includes/snk6502.h" #include "audio/snk6502.h" #include "cpu/m6502/m6502.h" #include "sound/samples.h" #include "sound/sn76477.h" #include "video/mc6845.h" #include "screen.h" #include "speaker.h" #define MASTER_CLOCK XTAL(11'289'000) void snk6502_state::machine_start() { // these could be split in different MACHINE_STARTs to save only // what's actually needed, but is the extra complexity really worth it? save_item(NAME(m_sasuke_counter)); // sasuke only save_item(NAME(m_charbank)); save_item(NAME(m_backcolor)); save_item(NAME(m_irq_mask)); // satansat only } /* binary counter (1.4MHz update) */ TIMER_DEVICE_CALLBACK_MEMBER(snk6502_state::sasuke_update_counter) { m_sasuke_counter += 0x10; } void snk6502_state::sasuke_start_counter() { m_sasuke_counter = 0; } /************************************* * * Custom input ports * *************************************/ CUSTOM_INPUT_MEMBER(snk6502_state::sasuke_count_r) { return (m_sasuke_counter >> 4); } /************************************* * * Memory maps * *************************************/ void snk6502_state::sasuke_map(address_map &map) { map(0x0000, 0x03ff).ram(); map(0x0400, 0x07ff).ram().w(FUNC(snk6502_state::videoram2_w)).share("videoram2"); map(0x0800, 0x0bff).ram().w(FUNC(snk6502_state::videoram_w)).share("videoram"); map(0x0c00, 0x0fff).ram().w(FUNC(snk6502_state::colorram_w)).share("colorram"); map(0x1000, 0x1fff).ram().w(FUNC(snk6502_state::charram_w)).share("charram"); map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w)); map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w)); map(0x4000, 0x8fff).rom(); map(0xb000, 0xb001).w("snk6502", FUNC(sasuke_sound_device::sound_w)); map(0xb002, 0xb002).w(FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */ map(0xb003, 0xb003).w(FUNC(snk6502_state::satansat_backcolor_w)); map(0xb004, 0xb004).portr("IN0"); map(0xb005, 0xb005).portr("IN1"); map(0xb006, 0xb006).portr("DSW"); map(0xb007, 0xb007).portr("IN2"); map(0xf800, 0xffff).rom(); } void snk6502_state::satansat_map(address_map &map) { map(0x0000, 0x03ff).ram(); map(0x0400, 0x07ff).ram().w(FUNC(snk6502_state::videoram2_w)).share("videoram2"); map(0x0800, 0x0bff).ram().w(FUNC(snk6502_state::videoram_w)).share("videoram"); map(0x0c00, 0x0fff).ram().w(FUNC(snk6502_state::colorram_w)).share("colorram"); map(0x1000, 0x1fff).ram().w(FUNC(snk6502_state::charram_w)).share("charram"); map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w)); map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w)); map(0x4000, 0x9fff).rom(); map(0xb000, 0xb001).w("snk6502", FUNC(satansat_sound_device::sound_w)); map(0xb002, 0xb002).w(FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */ map(0xb003, 0xb003).w(FUNC(snk6502_state::satansat_backcolor_w)); map(0xb004, 0xb004).portr("IN0"); map(0xb005, 0xb005).portr("IN1"); map(0xb006, 0xb006).portr("DSW"); map(0xb007, 0xb007).portr("IN2"); map(0xf800, 0xffff).rom(); } uint8_t vanguard_state::highmem_r(offs_t offset) { // RDY toggles on ϕ2 during each access to memory above $3FFF, generating one wait state if (!machine().side_effects_disabled()) m_maincpu->adjust_icount(-1); return m_highmem->read8(offset + 0x4000); } void vanguard_state::highmem_w(offs_t offset, uint8_t data) { // RDY toggles on ϕ2 during each access to memory above $3FFF, but 6502 does not apply wait states to writes m_highmem->write8(offset + 0x4000, data); } void vanguard_state::vanguard_map(address_map &map) { map(0x0000, 0x03ff).ram(); map(0x0400, 0x07ff).ram().w(FUNC(vanguard_state::videoram2_w)).share("videoram2"); map(0x0800, 0x0bff).ram().w(FUNC(vanguard_state::videoram_w)).share("videoram"); map(0x0c00, 0x0fff).ram().w(FUNC(vanguard_state::colorram_w)).share("colorram"); map(0x1000, 0x1fff).ram().w(FUNC(vanguard_state::charram_w)).share("charram"); map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w)); map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w)); map(0x3100, 0x3102).w("snk6502", FUNC(vanguard_sound_device::sound_w)); map(0x3103, 0x3103).w(FUNC(vanguard_state::flipscreen_w)); map(0x3104, 0x3104).portr("IN0"); map(0x3105, 0x3105).portr("IN1"); map(0x3106, 0x3106).portr("DSW"); map(0x3107, 0x3107).portr("IN2"); map(0x3200, 0x3200).w(FUNC(vanguard_state::scrollx_w)); map(0x3300, 0x3300).w(FUNC(vanguard_state::scrolly_w)); map(0x3400, 0x3400).w("snk6502", FUNC(vanguard_sound_device::speech_w)); // speech map(0x4000, 0xffff).rw(FUNC(vanguard_state::highmem_r), FUNC(vanguard_state::highmem_w)); } void vanguard_state::vanguard_upper_map(address_map &map) { map(0x4000, 0xbfff).rom().region("maincpu", 0x4000); map(0xf000, 0xffff).rom().region("maincpu", 0xf000); /* for the reset / interrupt vectors */ } void fantasy_state::fantasy_map(address_map &map) { map(0x0000, 0x03ff).ram(); map(0x0400, 0x07ff).ram().w(FUNC(fantasy_state::videoram2_w)).share("videoram2"); map(0x0800, 0x0bff).ram().w(FUNC(fantasy_state::videoram_w)).share("videoram"); map(0x0c00, 0x0fff).ram().w(FUNC(fantasy_state::colorram_w)).share("colorram"); map(0x1000, 0x1fff).ram().w(FUNC(fantasy_state::charram_w)).share("charram"); map(0x2000, 0x2000).w("crtc", FUNC(mc6845_device::address_w)); map(0x2001, 0x2001).w("crtc", FUNC(mc6845_device::register_w)); map(0x2100, 0x2102).w("snk6502", FUNC(fantasy_sound_device::sound_w)); map(0x2103, 0x2103).w(FUNC(fantasy_state::fantasy_flipscreen_w)); // affects both video and sound map(0x2104, 0x2104).portr("IN0"); map(0x2105, 0x2105).portr("IN1"); map(0x2106, 0x2106).portr("DSW"); map(0x2107, 0x2107).portr("IN2"); map(0x2200, 0x2200).w(FUNC(fantasy_state::scrollx_w)); map(0x2300, 0x2300).w(FUNC(fantasy_state::scrolly_w)); map(0x2400, 0x2400).w("snk6502", FUNC(fantasy_sound_device::speech_w)); // speech map(0x3000, 0x3fff).rom().region("maincpu", 0x3000); map(0x4000, 0xffff).rw(FUNC(fantasy_state::highmem_r), FUNC(fantasy_state::highmem_w)); } void fantasy_state::pballoon_map(address_map &map) { map(0x0000, 0x03ff).ram(); map(0x0400, 0x07ff).ram().w(FUNC(fantasy_state::videoram2_w)).share("videoram2"); map(0x0800, 0x0bff).ram().w(FUNC(fantasy_state::videoram_w)).share("videoram"); map(0x0c00, 0x0fff).ram().w(FUNC(fantasy_state::colorram_w)).share("colorram"); map(0x1000, 0x1fff).ram().w(FUNC(fantasy_state::charram_w)).share("charram"); map(0x3000, 0x3fff).rom().region("maincpu", 0x3000); map(0x4000, 0xffff).rw(FUNC(fantasy_state::highmem_r), FUNC(fantasy_state::highmem_w)); } void fantasy_state::pballoon_upper_map(address_map &map) { map(0x4000, 0x9fff).rom().region("maincpu", 0x4000); map(0xb000, 0xb000).w("crtc", FUNC(mc6845_device::address_w)); map(0xb001, 0xb001).w("crtc", FUNC(mc6845_device::register_w)); map(0xb100, 0xb102).w("snk6502", FUNC(fantasy_sound_device::sound_w)); map(0xb103, 0xb103).w(FUNC(fantasy_state::fantasy_flipscreen_w)); // affects both video and sound map(0xb104, 0xb104).portr("IN0"); map(0xb105, 0xb105).portr("IN1"); map(0xb106, 0xb106).portr("DSW"); map(0xb107, 0xb107).portr("IN2"); map(0xb200, 0xb200).w(FUNC(fantasy_state::scrollx_w)); map(0xb300, 0xb300).w(FUNC(fantasy_state::scrolly_w)); map(0xf000, 0xffff).rom().region("maincpu", 0xf000); } /************************************* * * Port definitions * *************************************/ INPUT_CHANGED_MEMBER(snk6502_state::coin_inserted) { m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } static INPUT_PORTS_START( snk6502_generic_joy8way ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) PORT_START("DSW") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1") PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4") PORT_DIPSETTING ( 0x02, DEF_STR( 2C_1C ) ) PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING ( 0x08, DEF_STR( 1C_2C ) ) PORT_DIPSETTING ( 0x04, DEF_STR( 1C_3C ) ) PORT_DIPSETTING ( 0x0c, DEF_STR( 1C_6C ) ) /* PORT_DIPSETTING ( 0x06, DEF_STR( 1C_1C ) ) */ /* PORT_DIPSETTING ( 0x0a, DEF_STR( 1C_1C ) ) */ /* PORT_DIPSETTING ( 0x0e, DEF_STR( 1C_1C ) ) */ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6") PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x10, "4" ) PORT_DIPSETTING( 0x20, "5" ) /* PORT_DIPSETTING( 0x30, "3" ) */ PORT_DIPNAME( 0x40, 0x00, "Coinage Bonus" ) PORT_DIPLOCATION("SW1:!7") /* see notes */ PORT_DIPSETTING ( 0x40, DEF_STR( 2C_1C ) ) PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW1:!8" ) INPUT_PORTS_END static INPUT_PORTS_START( satansat ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x7c, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("snk6502:custom", snk6502_sound_device, music0_playing) // music0 playing PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* NC */ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(snk6502_state, sasuke_count_r) // connected to a binary counter PORT_START("DSW") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1") PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) PORT_DIPNAME( 0x0a, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!4") PORT_DIPSETTING ( 0x08, DEF_STR( 2C_1C ) ) PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) ) /* PORT_DIPSETTING ( 0x0a, DEF_STR( 2C_1C ) ) */ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!3") PORT_DIPSETTING ( 0x04, "5000" ) PORT_DIPSETTING ( 0x00, "10000" ) PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6") /* manual says 4 is the default value */ PORT_DIPSETTING ( 0x00, "3" ) PORT_DIPSETTING ( 0x10, "4" ) PORT_DIPSETTING ( 0x20, "5" ) /* PORT_DIPSETTING( 0x30, "3" ) */ PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW1:!7" ) PORT_DIPNAME( 0x80, 0x00, "RAM Test" ) PORT_DIPLOCATION("SW1:!8") /* unused according to manual */ PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING ( 0x80, DEF_STR( On ) ) INPUT_PORTS_END /* Derived from 'satansat'. Might not reflect the actual hardware. Dip Switches verified from game code though. */ static INPUT_PORTS_START( sasuke ) PORT_INCLUDE(satansat) PORT_MODIFY("IN0") PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) PORT_MODIFY("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_MODIFY("DSW") PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2") PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) ) PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_HIGH, "SW1:!4" ) INPUT_PORTS_END static INPUT_PORTS_START( vanguard ) PORT_INCLUDE(snk6502_generic_joy8way) PORT_MODIFY("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) /* fire down */ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) /* fire up */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) /* fire right */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* fire left */ PORT_MODIFY("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL /* fire down */ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL /* fire up */ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL /* fire right */ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL /* fire left */ PORT_MODIFY("IN2") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("snk6502:custom", snk6502_sound_device, music0_playing) // music0 playing INPUT_PORTS_END static INPUT_PORTS_START( fantasy ) PORT_INCLUDE(snk6502_generic_joy8way) INPUT_PORTS_END static INPUT_PORTS_START( fantasyu ) PORT_INCLUDE(fantasy) PORT_MODIFY("DSW") PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:!8") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* 1st pattern only */ INPUT_PORTS_END static INPUT_PORTS_START( pballoon ) PORT_INCLUDE(snk6502_generic_joy8way) PORT_MODIFY("IN0") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_MODIFY("IN1") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_MODIFY("DSW") PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:!8") /* code at 0x6c83 */ PORT_DIPSETTING( 0x80, DEF_STR( English ) ) PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) ) INPUT_PORTS_END static INPUT_PORTS_START( nibbler ) // Rock-Ola documentation recommends a "4 Way Joystick - Heavy Duty" (RMC #G-6477-A). PORT_START("IN0") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_4WAY PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_START("IN1") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0) PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) PORT_START("DSW") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2") PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x01, "4" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x03, "6" ) PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!3") PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!4") PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) PORT_DIPNAME( 0x10, 0x00, DEF_STR( Service_Mode ) ) PORT_DIPLOCATION("SW1:!5") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) PORT_DIPNAME( 0x20, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:!6") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!7,!8") PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc0, "2 Coins/1 Credit 4/3" ) PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x80, "1 Coin/1 Credit 2/3" ) /* There are no buttons on a real "Nibbler" cabinet, but I guess that the game was tested with a "Vanguard" cabinet so they have been mapped with debug features. */ PORT_START("DEBUG") PORT_CONFNAME( 0x01, 0x00, "Enable Debug Inputs" ) PORT_CONFSETTING( 0x00, DEF_STR( No ) ) PORT_CONFSETTING( 0x01, DEF_STR( Yes ) ) PORT_MODIFY("IN0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 0") PORT_CODE(KEYCODE_Z) // slow down PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 1") PORT_CODE(KEYCODE_X) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 2") PORT_CODE(KEYCODE_C) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 3") PORT_CODE(KEYCODE_V) PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x00) PORT_MODIFY("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 4") PORT_CODE(KEYCODE_B) // pause PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 5") PORT_CODE(KEYCODE_N) // unpause PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 6") PORT_CODE(KEYCODE_M) // end game PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 7") PORT_CODE(KEYCODE_COMMA) PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x00) INPUT_PORTS_END static INPUT_PORTS_START( nibbler8 ) PORT_INCLUDE(nibbler) PORT_MODIFY("DSW") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x01, "3" ) PORT_DIPSETTING( 0x02, "4" ) PORT_DIPSETTING( 0x03, "5" ) INPUT_PORTS_END static INPUT_PORTS_START( nibbler6 ) PORT_INCLUDE(nibbler8) PORT_MODIFY("DSW") PORT_DIPNAME( 0x04, 0x00, "Pause at Corners" ) PORT_DIPLOCATION("SW1:!3") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END /************************************* * * Graphics layouts * *************************************/ static const gfx_layout swapcharlayout = { 8,8, /* 8*8 characters */ 256, /* 256 characters */ 2, /* 2 bits per pixel */ { 256*8*8, 0 }, /* the two bitplanes are separated */ { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*8 /* every char takes 8 consecutive bytes */ }; static const gfx_layout charlayout = { 8,8, /* 8*8 characters */ RGN_FRAC(1,2), 2, /* 2 bits per pixel */ { 0, RGN_FRAC(1,2) }, /* the two bitplanes are separated */ { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*8 /* every char takes 8 consecutive bytes */ }; static const gfx_layout charlayout_memory = { 8,8, /* 8*8 characters */ 256, /* 256 characters */ 2, /* 2 bits per pixel */ { 0, 256*8*8 }, /* the two bitplanes are separated */ { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*8 /* every char takes 8 consecutive bytes */ }; static GFXDECODE_START( gfx_sasuke ) GFXDECODE_ENTRY( nullptr, 0x1000, swapcharlayout, 0, 4 ) /* the game dynamically modifies this */ GFXDECODE_ENTRY( "gfx1", 0x0000, swapcharlayout, 4*4, 4 ) GFXDECODE_END static GFXDECODE_START( gfx_satansat ) GFXDECODE_ENTRY( nullptr, 0x1000, charlayout_memory, 0, 4 ) /* the game dynamically modifies this */ GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 4*4, 4 ) GFXDECODE_END static GFXDECODE_START( gfx_vanguard ) GFXDECODE_ENTRY( nullptr, 0x1000, charlayout_memory, 0, 8 ) /* the game dynamically modifies this */ GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 8*4, 8 ) GFXDECODE_END /************************************* * * Interrupt Generators * *************************************/ INTERRUPT_GEN_MEMBER(snk6502_state::satansat_interrupt) { if(m_irq_mask) device.execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ } INTERRUPT_GEN_MEMBER(snk6502_state::snk6502_interrupt) { device.execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ } /************************************* * * Machine initialisation * *************************************/ MACHINE_RESET_MEMBER(snk6502_state,sasuke) { sasuke_start_counter(); } /************************************* * * Machine drivers * *************************************/ void snk6502_state::sasuke(machine_config &config) { // basic machine hardware M6502(config, m_maincpu, MASTER_CLOCK / 16); // 700 kHz m_maincpu->set_addrmap(AS_PROGRAM, &snk6502_state::sasuke_map); m_maincpu->set_vblank_int("screen", FUNC(snk6502_state::satansat_interrupt)); MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,sasuke) // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz((MASTER_CLOCK / 16) / (45 * 32 * 8)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); screen.set_screen_update(FUNC(snk6502_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_sasuke); PALETTE(config, m_palette, FUNC(snk6502_state::satansat_palette), 32); MCFG_VIDEO_START_OVERRIDE(snk6502_state,satansat) mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 16)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); TIMER(config, "sasuke_timer").configure_periodic(FUNC(snk6502_state::sasuke_update_counter), attotime::from_hz(MASTER_CLOCK / 8)); // sound hardware SASUKE_SOUND(config, "snk6502", 0); } void snk6502_state::satansat(machine_config &config) { sasuke(config); // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &snk6502_state::satansat_map); // video hardware m_gfxdecode->set_info(gfx_satansat); // sound hardware SATANSAT_SOUND(config.replace(), "snk6502", 0); } void vanguard_state::vanguard(machine_config &config) { // basic machine hardware M6502(config, m_maincpu, MASTER_CLOCK / 8); // runs twice as fast as CRTC m_maincpu->set_addrmap(AS_PROGRAM, &vanguard_state::vanguard_map); m_maincpu->set_vblank_int("screen", FUNC(vanguard_state::snk6502_interrupt)); ADDRESS_MAP_BANK(config, m_highmem); m_highmem->set_addrmap(0, &vanguard_state::vanguard_upper_map); m_highmem->set_data_width(8); m_highmem->set_addr_width(16); // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz((MASTER_CLOCK / 16) / (45 * 32 * 8)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); screen.set_screen_update(FUNC(vanguard_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_vanguard); PALETTE(config, m_palette, FUNC(vanguard_state::snk6502_palette), 64); MCFG_VIDEO_START_OVERRIDE(vanguard_state,snk6502) mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 16)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); // sound hardware VANGUARD_SOUND(config, "snk6502", 0); } void fantasy_state::fantasy(machine_config &config) { vanguard(config); // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &fantasy_state::fantasy_map); // sound hardware FANTASY_SOUND(config.replace(), "snk6502", 0); } void fantasy_state::nibbler(machine_config &config) { fantasy(config); // sound hardware NIBBLER_SOUND(config.replace(), "snk6502", 0); } void fantasy_state::pballoon(machine_config &config) { nibbler(config); // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &fantasy_state::pballoon_map); m_highmem->set_addrmap(AS_PROGRAM, &fantasy_state::pballoon_upper_map); MCFG_VIDEO_START_OVERRIDE(snk6502_state, pballoon) // sound hardware PBALLOON_SOUND(config.replace(), "snk6502", 0); } /************************************* * * ROM definitions * *************************************/ ROM_START( sasuke ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sc1", 0x4000, 0x0800, CRC(34cbbe03) SHA1(3d643e11370e61dde0c42c7761a856c5cf53d621) ) ROM_LOAD( "sc2", 0x4800, 0x0800, CRC(38cc14f0) SHA1(d60df67f2a32c131e8957e225b79618d6262463d) ) ROM_LOAD( "sc3", 0x5000, 0x0800, CRC(54c41285) SHA1(5618c2ac745bbde96bfda7f01f7aee7e2b643d7e) ) ROM_LOAD( "sc4", 0x5800, 0x0800, CRC(23edafcf) SHA1(bda3bcb506f6e23f422aafd7ca9b95bfb4d1d8e1) ) ROM_LOAD( "sc5", 0x6000, 0x0800, CRC(ca410e4f) SHA1(0d09422d01b4359853c173a4cb18c9b5fbc7fe7c) ) ROM_LOAD( "sc6", 0x6800, 0x0800, CRC(80406afb) SHA1(2c4a34a7450fa7258c5e6ead9b1fd6c6b973f081) ) ROM_LOAD( "sc7", 0x7000, 0x0800, CRC(04d0f104) SHA1(73ed501f70d2a9e8994f8392f617450eafef39b3) ) ROM_LOAD( "sc8", 0x7800, 0x0800, CRC(0219104b) SHA1(fd5c43304d59bc34e9ae6ef7576d75cf319d823e) ) ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ ROM_LOAD( "sc9", 0x8000, 0x0800, CRC(d6ff889a) SHA1(1eea0366205dd0d9bffb5d093f259edc1d51cbe0) ) ROM_LOAD( "sc10", 0x8800, 0x0800, CRC(19df6b9a) SHA1(95e904251c39dcef227a4c125fc573e958ee78b7) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "mcs_c", 0x0000, 0x0800, CRC(aff9743d) SHA1(a968a193ca551d92f79e09d1761dd2ccebc76eee) ) ROM_LOAD( "mcs_d", 0x0800, 0x0800, CRC(9c805120) SHA1(74b83daa3ce3c9f7d96ad872b9134edd6f1bcb8a) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "sasuke.clr", 0x0000, 0x0020, CRC(b70f34c1) SHA1(890cfbb25e14112713ba7900b9cd56554a8bc1ec) ) ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */ ROM_LOAD( "sc11", 0x0000, 0x0800, CRC(24a0e121) SHA1(e3cde355309de6678026d595955297258f069946) ) ROM_END ROM_START( satansat ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ss1", 0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) ) ROM_LOAD( "ss2", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) ) ROM_LOAD( "ss3", 0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) ) ROM_LOAD( "ss4", 0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) ) ROM_LOAD( "ss5", 0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) ) ROM_LOAD( "ss6", 0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) ) ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) ) ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) ) ROM_LOAD( "ss10", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) ) ROM_LOAD( "ss11", 0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) ) ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */ ROM_LOAD( "ss12", 0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) ) ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) ROM_END ROM_START( satansata ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic7.bin", 0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) ) ROM_LOAD( "ic8.bin", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) ) ROM_LOAD( "ic9.bin", 0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) ) ROM_LOAD( "ic10.bin", 0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) ) ROM_LOAD( "ic13.bin", 0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) ) ROM_LOAD( "ic14.bin", 0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) ) ROM_LOAD( "ic15.bin", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) ROM_LOAD( "ic16.bin", 0x7800, 0x0800, CRC(9ec5fe09) SHA1(ab50373b330f21f7f64657e088ba6968a3176be4) ) // different ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ ROM_LOAD( "ic22.bin", 0x8000, 0x0800, CRC(21092f1f) SHA1(dd8be669cd7a51ec84e020d0a7fa50708155d084) ) // different ROM_LOAD( "ic23.bin", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) ) ROM_LOAD( "ic24.bin", 0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "ic73.bin", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) ) ROM_LOAD( "ic75.bin", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */ ROM_LOAD( "ic53.bin", 0x0000, 0x0800, CRC(8cb95a6b) SHA1(41d3986f1c2876a914b0087127ae99e9a2b41564) ) // different ROM_LOAD( "ic54.bin", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) ROM_END ROM_START( zarzon ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "zarz122.07", 0x4000, 0x0800, CRC(bdfa67e2) SHA1(0de06cf53ee21b8f14b933b61e6dc706338746c4) ) ROM_LOAD( "zarz123.08", 0x4800, 0x0800, CRC(d034e61e) SHA1(dc802c3d7a9f7e473e323e3272fca406dab6d55d) ) ROM_LOAD( "zarz124.09", 0x5000, 0x0800, CRC(296397ea) SHA1(3a1ad7f3c4453bb20768b3e3ce04cd76873aa0ee) ) ROM_LOAD( "zarz125.10", 0x5800, 0x0800, CRC(26dc5e66) SHA1(07f47f3497bb85640e5e6a89ad7d6579108347fe) ) ROM_LOAD( "zarz126.13", 0x6000, 0x0800, CRC(cee18d7f) SHA1(5a7e60b6be06b3038f2eb81e76fc54cb65d4877b) ) ROM_LOAD( "zarz127.14", 0x6800, 0x0800, CRC(bbd2cc0d) SHA1(1128020b7c0f38f5ff2cc2da0fd2df5ebead4681) ) ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) ) ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) ) ROM_LOAD( "zarz131.23", 0x8800, 0x0800, CRC(7be20678) SHA1(872de953df1f9f1725e14fdfd227ad872a813af8) ) ROM_LOAD( "zarz132.24", 0x9000, 0x0800, CRC(72b2cb76) SHA1(d7a95c908fe2227e2a0820a8e9713b1709c9e5af) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) ) ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */ ROM_LOAD( "zarz133.53", 0x0000, 0x0800, CRC(b253cf78) SHA1(56a73b22ed2866222c407a3e9b51b8e0c92cf2aa) ) ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) ROM_END ROM_START( satansatind ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ss01.rom", 0x4000, 0x0800, CRC(7f16f8fe) SHA1(7ba2a3c31f7463eda0f300a27008a3fed9c84d9d) ) ROM_LOAD( "ss02.rom", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) ) ROM_LOAD( "ss03.rom", 0x5000, 0x0800, CRC(6e0077e8) SHA1(b7e665b2b6a993ef75c87d53a2a814d141791590) ) ROM_LOAD( "ss04.rom", 0x5800, 0x0800, CRC(f9e33359) SHA1(b2586d5adff1703ecd86ed40681f5b703bd9a660) ) ROM_LOAD( "ss05.rom", 0x6000, 0x0800, CRC(f771e007) SHA1(80f01116be697680a8d64212d61dffaec1350f14) ) ROM_LOAD( "ss06.rom", 0x6800, 0x0800, CRC(e5b02850) SHA1(940ba0ebe7e37820ee1a1dc9f407b974fe354509) ) ROM_LOAD( "ss07.rom", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) ROM_LOAD( "ss08.rom", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) ) ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ ROM_LOAD( "ss09.rom", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) ) ROM_LOAD( "ss10.rom", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) ) ROM_LOAD( "ss11.rom", 0x9000, 0x0800, CRC(3cbcbddb) SHA1(1567c7fe7c8855427d1f9435b317ba15ed8545c8) ) ROM_LOAD( "ss16.rom", 0x9800, 0x0800, CRC(20bd6ee4) SHA1(a19011120c6f3c1c4e96439c1cbcf489ff991582) ) // extra code, unique to this set ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "ss14.rom", 0x0000, 0x0800, CRC(5dfcd508) SHA1(6c2863b9850adf7ff0f323be71670438c66a85ee) ) ROM_LOAD( "ss15.rom", 0x0800, 0x0800, CRC(363d0500) SHA1(a02ad9e46c62075f54ad87ff287a50bc263c66d8) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */ ROM_LOAD( "ss12.rom", 0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) ) ROM_LOAD( "ss13.rom", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) ROM_END ROM_START( vanguard ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) ROM_LOAD( "sk4_ic10.bin", 0x7000, 0x1000, CRC(54603274) SHA1(31571a560dbe300417b3ed5b114fa1d9ef742da9) ) ROM_LOAD( "sk4_ic13.bin", 0x8000, 0x1000, CRC(fde157d0) SHA1(3f705fb6a410004f4f86283694e3694e49701af6) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */ ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */ ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) ROM_END ROM_START( vanguardc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) ROM_LOAD( "4", 0x7000, 0x1000, CRC(770f9714) SHA1(4af37fc24e464681a8da6b184be0df32a4078f4f) ) ROM_LOAD( "5", 0x8000, 0x1000, CRC(3445cba6) SHA1(6afe6dad79b53df58b53ef9c5d24bb4d91fa5e8e) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) ROM_LOAD( "8", 0xb000, 0x1000, CRC(4b825bc8) SHA1(3fa32d9677e2cc3a1ebf52c0b9eed7dbf11201e9) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* confirmed, 6/21/05 */ ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* confirmed, 6/21/05 */ ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) ROM_END ROM_START( vanguardj ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) ROM_LOAD( "vgj4ic10.bin", 0x7000, 0x1000, CRC(0a91a5d1) SHA1(bef435e431e31179eb22a4c18ca1dedf6a4a0ab0) ) ROM_LOAD( "vgj5ic13.bin", 0x8000, 0x1000, CRC(06601a40) SHA1(d1efcf75edf3892fe59d63e524f4880ffce67965) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) ) ROM_REGION( 0x1000, "gfx1", 0 ) ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */ ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */ ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) ROM_END ROM_START( fantasyu ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic12.cpu", 0x3000, 0x1000, CRC(22cb2249) SHA1(6c43e3fa9638b6d2e069199968923e470bd5d18b) ) ROM_LOAD( "ic07.cpu", 0x4000, 0x1000, CRC(0e2880b6) SHA1(666d6942864eb7a90178b3b6e2b0eb23aa3c967f) ) ROM_LOAD( "ic08.cpu", 0x5000, 0x1000, CRC(4c331317) SHA1(800850f4e8bcfbbade54eb9e47a53941f8798641) ) ROM_LOAD( "ic09.cpu", 0x6000, 0x1000, CRC(6ac1dbfc) SHA1(b9c7bf8d3b085db0b53646b5639c09f9ced2b1fe) ) ROM_LOAD( "ic10.cpu", 0x7000, 0x1000, CRC(c796a406) SHA1(1b7f5f307a81b481a3e7791128a01d4c1a20c4bf) ) ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) ) ROM_LOAD( "ic16.cpu", 0xa000, 0x1000, CRC(6c2aeb6e) SHA1(fd0b913a663bf2a5f45fc3d342d7575a9c7dae46) ) ROM_LOAD( "ic17.cpu", 0xb000, 0x1000, CRC(f6aa5de1) SHA1(ca53cf66cc6cdb21a60760102f35a5b0745ce09b) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */ ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) ROM_END ROM_START( fantasyg ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "5.12", 0x3000, 0x1000, CRC(0968ab50) SHA1(f09d03a171349895c5cb69e684901be63d272b32) ) ROM_LOAD( "1.7", 0x4000, 0x1000, CRC(de83000e) SHA1(ede1dda46406b4d340f1efea3bc85b2227af9e1d) ) ROM_LOAD( "2.8", 0x5000, 0x1000, CRC(90499b5a) SHA1(81a9d93a5655d2ff9504036bc764d8bb81e1470d) ) ROM_LOAD( "3.9", 0x6000, 0x1000, CRC(6fbffeb6) SHA1(b36aeaf095da4957103c8921957ff4be658eddf5) ) ROM_LOAD( "4.10", 0x7000, 0x1000, CRC(02e85884) SHA1(71fa6eb375fc417f92c049ec5118818b9ad48468) ) ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) ) ROM_LOAD( "8.16", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) ) ROM_LOAD( "9.17", 0xb000, 0x1000, CRC(56a7c8b8) SHA1(6c417644851c7b4b5291d9c5b2c808ff4a1ad048) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */ ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) ROM_END // SK-7A and SK-6 PCBs ROM_START( fantasyg2 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ts5.bin", 0x3000, 0x1000, CRC(6edca14e) SHA1(d9152e212f2b3cdb6e7968e4e7638454ea02c4a5) ) ROM_LOAD( "fs1.bin", 0x4000, 0x1000, CRC(d99656e8) SHA1(6f5febaeca2ec167523f48361ae2395772bcef53) ) ROM_LOAD( "ts2.bin", 0x5000, 0x1000, CRC(2db6ce28) SHA1(18cced543f27664b3eaddf103a41580a905ffae1) ) ROM_LOAD( "ts3.bin", 0x6000, 0x1000, CRC(1a0aa7c5) SHA1(c8f34618ffc98c73db7067851de24f245b8988ad) ) ROM_LOAD( "fs4.bin", 0x7000, 0x1000, CRC(c02ad442) SHA1(a90b2d04fc2e8b2dda634c18eafb88007eaedc67) ) ROM_LOAD( "fs6.bin", 0x8000, 0x1000, CRC(e5b91bc2) SHA1(85515eb57c8040fc95a9c62706e1a504e6749f66) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "fs7.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) ) ROM_LOAD( "fs8.bin", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) ) ROM_LOAD( "fs9.bin", 0xb000, 0x1000, CRC(49574d4a) SHA1(37cae0df7e8705c300f684b3351b5bdba5e44ea2) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "fs10.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) ROM_LOAD( "fs11.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */ ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) ROM_END ROM_START( fantasyj ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "fs5jic12.bin", 0x3000, 0x1000, CRC(dd1eac89) SHA1(d63078d4666e3c6db0c9b3f8b45ef81606ed5a4f) ) ROM_LOAD( "fs1jic7.bin", 0x4000, 0x1000, CRC(7b8115ae) SHA1(6274f937c57ab9cbb7c6283022b81f70dad7c232) ) ROM_LOAD( "fs2jic8.bin", 0x5000, 0x1000, CRC(61531dd1) SHA1(f3bc405bafc8ced6c6fce93ad2ad20ff6aa603e8) ) ROM_LOAD( "fs3jic9.bin", 0x6000, 0x1000, CRC(36a12617) SHA1(dd74abb4cbaeb1a56ee466043997187ebe933612) ) ROM_LOAD( "fs4jic10.bin", 0x7000, 0x1000, CRC(dbf7c347) SHA1(1bb3f924a7e1ec74ef68e237a0f68d62ce78532c) ) ROM_LOAD( "fs6jic14.bin", 0x8000, 0x1000, CRC(bf59a33a) SHA1(bdbdd03199758069b904fdf0455193682c4d457f) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "fs7jic15.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) ) ROM_LOAD( "fs8jic16.bin", 0xa000, 0x1000, CRC(ae5bf727) SHA1(3c5eaaba3971f57a5687945a614dd0d6c9e007d6) ) ROM_LOAD( "fs9jic17.bin", 0xb000, 0x1000, CRC(fa6903e2) SHA1(a5b9b7309ecaaeaba76e45610d5ab80415ecbdd0) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "prom-8.bpr", 0x0000, 0x0020, CRC(1aa9285a) SHA1(d503aa76ca0cf032c7b1c962abc59677c41a2c62) ) /* foreground colors */ ROM_LOAD( "prom-7.bpr", 0x0020, 0x0020, CRC(7a6f7dc3) SHA1(e15d898275d1cd205cc2d28f7dd9df653594039e) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) ROM_END ROM_START( pballoon ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) ) ROM_LOAD( "sk7_ic07.bin", 0x4000, 0x1000, CRC(736e67df) SHA1(a58d9561f62d396ca90b0f69afe6240d809b10bb) ) ROM_LOAD( "sk7_ic08.bin", 0x5000, 0x1000, CRC(7a2032b2) SHA1(79570943468d647cda67d94b20eac1b2d9eb371f) ) ROM_LOAD( "sk7_ic09.bin", 0x6000, 0x1000, CRC(2d63cf3a) SHA1(8934af617229db445f9fd10e4028e1f8df4cfeb1) ) ROM_LOAD( "sk7_ic10.bin", 0x7000, 0x1000, CRC(7b88cbd4) SHA1(1be3c484bd08c747f38389114c157e84319c48be) ) ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) ) ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "sk8_ic7.bin", 0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */ ROM_LOAD( "sk8_ic6.bin", 0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) ) ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) ) ROM_END ROM_START( pballoonr ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) ) ROM_LOAD( "rock-ola_skpb1.ic7", 0x4000, 0x1000, CRC(dfd802e8) SHA1(2014295c678d0534585e27d9b5c7ac525113cd0c) ) ROM_LOAD( "rock-ola_skpb1.ic8", 0x5000, 0x1000, CRC(c433c062) SHA1(63df947c56f51a623b378d2a8a5b2cd05c23c414) ) ROM_LOAD( "rock-ola_skpb1.ic9", 0x6000, 0x1000, CRC(f85b9c37) SHA1(905eb162436a0a46688df9343296c140480d00cb) ) ROM_LOAD( "rock-ola_skpb1.ic10", 0x7000, 0x1000, CRC(8020e52d) SHA1(fbe2a27560904225b4406171c1cdbae9941887bd) ) ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) ) ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "sk8_ic7.bin", 0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */ ROM_LOAD( "sk8_ic6.bin", 0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) ) ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) ) ROM_END ROM_START( nibbler ) /* revision 9 - rom labels match manual part numbers/locations */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "g-0960-52.ic12", 0x3000, 0x1000, CRC(6dfa1be5) SHA1(bb265702a2f74cb7d5ba27081f9fb2fe01dd95a5) ) ROM_LOAD( "g-0960-48.ic7", 0x4000, 0x1000, CRC(808e1a03) SHA1(a747a16ee0c8cb803b72ac84e80f791b2bf1813a) ) ROM_LOAD( "g-0960-49.ic8", 0x5000, 0x1000, CRC(1571d4a2) SHA1(42cbaa262c2265d904fd5844c0d3c63d3beb67a8) ) ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) ROM_LOAD( "g-0960-53.ic14", 0x8000, 0x1000, CRC(9f537185) SHA1(619df63f4df38014dc229f614043f867e6a5aa51) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END ROM_START( nibbler8 ) /* revision 8 */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "50-144.012", 0x3000, 0x1000, CRC(68af8f4b) SHA1(be6ddd3a9abb05563c927b1ec54dbaab44b65492) ) ROM_LOAD( "50-140.007", 0x4000, 0x1000, CRC(c18b3009) SHA1(c3703d0300f5f1546417ecdc27ab747d9c7eb267) ) ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) ) ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // 50-142.009 ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // 50-143.010 ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) // 50-146.015 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) // 50-147.016 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) // 50-148.017 ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) // 50-150.051 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) // 50-149.050 ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END ROM_START( nibbler7 ) /* revision 7 */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(8685d060) SHA1(64b10f9afc9ca97db7b4f7784da0df1574a56919) ) // sldh ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(b07195c7) SHA1(7aeccb274eb83aa9c24ccd1e72c694f316d25c4d) ) // sldh ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(61034cca) SHA1(8aa06784afe60b7ce9c1ea1c27685610fa9104cf) ) // sldh ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(7a87c766) SHA1(8660cf78de7a4e2aec178155d2941094a3978ba3) ) // sldh ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END ROM_START( nibbler6 ) /* revision 6 */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) ) // sldh ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) ) // sldh ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) ) ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) ) ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) ) ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) ) // sldh ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END ROM_START( nibblera ) /* revision 9 - alternate? */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "2732.ic12", 0x3000, 0x1000, CRC(e569937b) SHA1(6ee9aa528cc3f0685153b3170f41b9a665d358e0) ) ROM_LOAD( "2732.ic07", 0x4000, 0x1000, CRC(7f9d715c) SHA1(59fbdbb55dceaa86235911589395fa5243e44afe) ) ROM_LOAD( "2732.ic08", 0x5000, 0x1000, CRC(e46eb1c9) SHA1(b70a14085985096eb6650f3d06343a20d75e61b5) ) ROM_LOAD( "2732.ic09", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) ROM_LOAD( "2732.ic10", 0x7000, 0x1000, BAD_DUMP CRC(746e94cd) SHA1(284696722857900760d35f1f8ef53290deddac20) ) // FIXED BITS (xxx1xxxx) ROM_LOAD( "2732.ic14", 0x8000, 0x1000, CRC(48ec4af0) SHA1(9b4b80c288d5ade998c0bbcfc3868c9dcd438707) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "2732.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "2732.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "2732.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "2732.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "2732.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "2716.ic52", 0x0800, 0x0800, CRC(cabe6c34) SHA1(664ab47555d4c05189d797836f34045f00ac119e) ) ROM_LOAD( "2716.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) // missing in set ROM_END ROM_START( nibblerp ) /* revision 6 + extra soundrom */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) ) // sldh ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) ) // sldh ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) ) // sldh ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) ) ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) ) ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */ ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) /* Rom from Pioneer Balloon */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END ROM_START( nibblero ) /* revision 8 */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "50-144g.012", 0x3000, 0x1000, CRC(1093f525) SHA1(6a63372300765acdbac1d2e30fd73af7773de80f) ) ROM_LOAD( "50-140g.007", 0x4000, 0x1000, CRC(848651dd) SHA1(a5aafbcca42baca8d0d5d28546733aefc778ba99) ) ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) ) ROM_LOAD( "nibblero.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // ic9 ROM_LOAD( "nibblero.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // ic10 ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) ) ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) ROM_REGION( 0x2000, "gfx1", 0 ) ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) ROM_REGION( 0x0040, "proms", 0 ) ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */ ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) ROM_END /************************************* * * Game drivers * *************************************/ GAME( 1980, sasuke, 0, sasuke, sasuke, snk6502_state, empty_init, ROT90, "SNK", "Sasuke vs. Commander", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, satansat, 0, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK", "Satan of Saturn (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, satansata, satansat, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK", "Satan of Saturn (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, zarzon, satansat, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK (Taito America license)", "Zarzon", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, satansatind, satansat, satansat, satansat, snk6502_state, empty_init, ROT90, "bootleg (Inder S.A.)", "Satan of Saturn (Inder S.A., bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, vanguard, 0, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK", "Vanguard (SNK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, vanguardc, vanguard, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, vanguardj, vanguard, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK", "Vanguard (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, fantasyu, 0, fantasy, fantasyu, fantasy_state, empty_init, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1981, fantasyg, fantasyu, fantasy, fantasy, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Germany, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg? GAME( 1981, fantasyg2, fantasyu, fantasy, fantasy, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Germany, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg? GAME( 1981, fantasyj, fantasyu, fantasy, fantasyu, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1982, pballoon, 0, pballoon, pballoon, fantasy_state, empty_init, ROT90, "SNK", "Pioneer Balloon", MACHINE_SUPPORTS_SAVE ) GAME( 1982, pballoonr, pballoon, pballoon, pballoon, fantasy_state, empty_init, ROT90, "SNK (Rock-Ola license)", "Pioneer Balloon (Rock-Ola license)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibbler, 0, nibbler, nibbler, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 9, set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibblera, nibbler, nibbler, nibbler, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 9, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibbler8, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 8)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, nibblero, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola (Olympia license)", "Nibbler (rev 8, Olympia)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibbler7, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 7)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibbler6, nibbler, nibbler, nibbler6, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 6)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, nibblerp, nibbler, nibbler, nibbler6, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 6, Pioneer Balloon conversion)", MACHINE_SUPPORTS_SAVE ) // music