1 // license:BSD-3-Clause
2 // copyright-holders:Nicola Salmoria, Dan Boris
3 /***************************************************************************
4
5 Sasuke vs. Commander
6 SNK
7
8 driver by ?
9
10 Games supported:
11 * Sasuke vs. Commander
12 * Satan of Saturn [2 sets]
13 * Zarzon (clone of 'satansat')
14 * Vanguard [3 sets]
15 * Fantasy [3 sets] G-202
16 * Pioneer Balloon G-204
17 * Nibbler [4 sets] G-208
18
19 DIP locations verified from manual for:
20 * Zarzon (Satan of Saturn uses the same code, so I guess locations are the same)
21 * Vanguard
22 * Nibbler
23
24 ****************************************************************************
25
26 Vanguard memory map (preliminary)
27
28 0000-03ff RAM
29 0400-07ff Video RAM 1
30 0800-0bff Video RAM 2
31 0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2)
32 1000-1fff Character generator RAM
33 4000-bfff ROM
34
35 read:
36 3104 IN0
37 3105 IN1
38 3106 DSW
39 3107 IN2
40
41 write
42 3100 Sound Port 0
43 3101 Sound Port 1
44 3103 bit 7 = flip screen
45 3200 y scroll register
46 3300 x scroll register
47
48 ****************************************************************************
49
50 Fantasy and Nibbler memory map (preliminary)
51
52 0000-03ff RAM
53 0400-07ff Video RAM 1
54 0800-0bff Video RAM 2
55 0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2)
56 1000-1fff Character generator RAM
57 3000-bfff ROM
58
59 read:
60 2104 IN0
61 2105 IN1
62 2106 DSW
63 2107 IN2
64
65 write
66 2000-2001 To the HD46505S video controller
67 2100 Sound Port 0
68 2101 Sound Port 1
69 2103 bit 7 = flip screen
70 bit 4-6 = music 2
71 bit 3 = char bank selector
72 bit 0-2 = background color
73 2200 y scroll register
74 2300 x scroll register
75
76 Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI.
77
78 ****************************************************************************
79
80 Pioneer Balloon memory map (preliminary)
81
82 0000-03ff RAM IC13 cpu
83 0400-07ff Video RAM 1 IC67 video
84 0800-0bff Video RAM 2 ???? video
85 0c00-0fff Color RAM IC68 (3 bits for VRAM 1 and 3 bits for VRAM 2)
86 1000-1fff RAM ???? Character generator
87 3000-3fff ROM 4/5 IC12
88 4000-4fff ROM 1 IC07
89 5000-5fff ROM 2 IC08
90 6000-6fff ROM 3 IC09
91 7000-7fff ROM 4 IC10
92 8000-8fff ROM 5 IC14
93 9000-9fff ROM 6 IC15
94
95 read:
96 b104 IN0
97 b105 IN1
98 b106 DSW
99 b107 IN2
100
101 write
102 b000 Sound Port 0
103 b001 Sound Port 1
104 b100 ????
105 b103 bit 7 = flip screen
106 bit 4-6 = music 2
107 bit 3 = char bank selector
108 bit 0-2 = background color
109 b106 ????
110 b200 y scroll register
111 b300 x scroll register
112
113 Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI.
114
115 ****************************************************************************
116
117 Nibbler information:
118
119 Version Number - Hold DOWN on controller after crosshatch appears. A number
120 will show up to the right of the primary game creator's initials "JU".
121
122 The music that has been in MAME for this game since it was first added
123 is not from Nibbler! IC51 is a leftover from the game board to which the
124 conversion kit for Nibbler was applied, a Pioneer Balloon, and is where MAME's
125 original rom dump came from. Both the dedicated cabinet boards and the
126 conversion kit boards for Nibbler never came with nor do the manuals for them
127 list a "iC51" in the parts list breakdown. In fact, sound roms between different
128 games using the snk6502 custom sound can largely be interchanged with another
129 using the same.
130
131 ****************************************************************************
132
133 Stephh's notes (based on the games M6502 code and some tests) :
134
135 1a) 'vanguard'
136
137 - There are 5 different coinage settings according to the game code
138 which are based on DSW bits 1 to 3 :
139
140 bit 3 bit 2 bit 1 effect
141 OFF OFF OFF 1C_1C
142 OFF OFF ON 2C_1C (manual tells this is the default setting)
143 OFF ON OFF 1C_3C
144 ON OFF OFF 1C_2C
145 ON ON OFF 1C_6C
146
147 The 3 other combinaisons give 1C_1C
148 - From the manual, it says that DSW bit 6 determines the cost of a game :
149 * bit 6 = 0 : "25c / game"
150 * bit 6 = 1 : "50c / game"
151 When you look at the game code, it appears to be some of "Bonus Coinage" :
152 * bit 6 = 0 : you get an additional credit each time you insert 1 coin
153 * bit 6 = 1 : you get an additional credit each time you insert 2 coins
154 - So, instead of having something like this :
155 PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4")
156 PORT_DIPSETTING( 0x02, "25c= 1C/1C 2C/3C 50c= 2C/2C" )
157 PORT_DIPSETTING( 0x00, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
158 PORT_DIPSETTING( 0x08, "25c= 1C/3C 50c= 1C/2C 2C/5C" )
159 PORT_DIPSETTING( 0x04, "25c= 1C/4C 50c= 1C/3C 2C/7C" )
160 PORT_DIPSETTING( 0x0c, "25c= 1C/7C 50c= 1C/6C 2C/13C" )
161 duplicate settings - untested in game code
162 PORT_DIPSETTING( 0x06, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
163 PORT_DIPSETTING( 0x0a, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
164 PORT_DIPSETTING( 0x0e, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
165 ...
166 PORT_DIPNAME( 0x40, 0x00, "Game Cost" ) PORT_DIPLOCATION("SW1:!7")
167 PORT_DIPSETTING( 0x00, "25c / game" )
168 PORT_DIPSETTING( 0x40, "50c / game" )
169 or using conditional Dip Switches, I've coded this the way I did.
170 - You can always continue, provided you're on the 1st pattern.
171 The continue text is in English !
172 - 10 letters when you enter your initials
173
174 1b) 'vangrdce'
175
176 - Code for coinage is the same as for 'vanguard'.
177 - You can always continue, provided you're on the 1st pattern.
178 The continue text is in English !
179 - 3 letters when you enter your initials
180
181 1c) 'vanguarj'
182
183 - Code for coinage is the same as for 'vanguard'.
184 - You can always continue, provided you're on the 1st pattern.
185 The continue text is in Japanese !
186 - 10 letters when you enter your initials
187
188 2a) 'fantasy'
189
190 - Code for coinage is the same as for 'vanguard'.
191 - You can always continue, provided you're on the 1st pattern.
192 Note that the continue text is in German !
193 - 3 letters when you enter your initials
194 - I can't tell if it's an ingame bug or not, but there's a mix
195 between "COIN" and "CREDIT" ("COCR" is displayed)
196
197 2b) 'fantasyu'
198
199 - Code for coinage is the same as for 'vanguard'.
200 - This version seems easier than 'fantasy', especially on level 2
201 where you have a sword and an easier maze.
202 - Code has been added to test DSW bit 7 to allow or not a continue play.
203 Note that the continue play is only available on the 1st pattern.
204 - 3 letters when you enter your initials
205 - "Fantasy" is written with different "font" and color
206 - "CREDIT" is displayed instead of "COIN"
207
208 2b) 'fantasyj'
209
210 - Code for coinage is the same as for 'vanguard'.
211 - This version seems easier than 'fantasy', especially on level 2
212 where you have a sword and an easier maze.
213 - Code has been added to test DSW bit 7 to allow or not a continue play.
214 Note that the continue play is only available on the 1st pattern.
215 Also note that the continue text is still in English !
216 - 3 letters when you enter your initials
217 - "COIN" is correctly displayed.
218
219 3) 'pballoon'
220
221 - Code for coinage is the same as for 'vanguard'.
222 - The "Language" Dip Switch only has an effect at the end of the pattern
223 when it displays "LAND HERE" or what I suppose to be same in Japanese.
224 - 3 letters when you enter your initials
225 - "CREDIT" is displayed
226
227 4a) 'nibbler6'
228
229 - "Lives settings" : 3, 4, 5 or 6 (table at 0x4edf)
230 - Bonus life every 4 levels
231 - Simplified instructions
232 - DSW bit 2 determines what happens when the snake touches a corner (code at 0x3c91) :
233 * bit 2 = 0 : pause for 13 frames
234 * bit 2 = 1 : no pause
235
236 4b) 'nibbler'
237
238 - "Lives settings" : 3, 4, 5 or 6 (table at 0x5bf0)
239 - Bonus life every 4 levels
240 - Detailed instructions
241 - DSW bit 2 is no more tested when the snake touches a corner (code at 0x3b3c);
242 this means that the snake ALWAYS pauses for 13 frames.
243 However, there is extra code where it is tested to determine difficulty
244 (code at 0x31b4 and 0x32f5 - tables at 0x3391 and 0x33b2)
245
246 4c) 'nibbler8'
247
248 - code based on 'nibbler'
249 - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7)
250 - Bonus life every 4 levels
251 - Detailed instructions
252 - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner
253 and DSW bit 2 determines difficulty as in 'nibbler'
254 (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae)
255
256 4d) 'nibblero'
257
258 - code is the same as 'nibbler8' (same routines, same code and tables addresses)
259 - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7)
260 - Bonus life every 8 levels
261 - Detailed instructions
262 - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner
263 and DSW bit 2 determines difficulty as in 'nibbler'
264 (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae)
265 - The game is harder than 'nibblerb' because the tables at 0x338d and 0x33ae
266 have higher values; so the snake goes faster and grows longer.
267
268 ***************************************************************************/
269
270 /*
271
272 TODO:
273
274 - sasuke/satansat/vanguard discrete sound
275 - vanguard/fantasy speech (hd38880/hd38882 emulation)
276 - music freq (Satan of Saturn and clone)
277 - correct music waveform/volume control
278 - correct ROM names
279
280 */
281
282 #include "emu.h"
283 #include "includes/snk6502.h"
284 #include "audio/snk6502.h"
285
286 #include "cpu/m6502/m6502.h"
287 #include "sound/samples.h"
288 #include "sound/sn76477.h"
289 #include "video/mc6845.h"
290 #include "screen.h"
291 #include "speaker.h"
292
293
294 #define MASTER_CLOCK XTAL(11'289'000)
295
296
machine_start()297 void snk6502_state::machine_start()
298 {
299 // these could be split in different MACHINE_STARTs to save only
300 // what's actually needed, but is the extra complexity really worth it?
301 save_item(NAME(m_sasuke_counter)); // sasuke only
302 save_item(NAME(m_charbank));
303 save_item(NAME(m_backcolor));
304 save_item(NAME(m_irq_mask)); // satansat only
305 }
306
307 /* binary counter (1.4MHz update) */
TIMER_DEVICE_CALLBACK_MEMBER(snk6502_state::sasuke_update_counter)308 TIMER_DEVICE_CALLBACK_MEMBER(snk6502_state::sasuke_update_counter)
309 {
310 m_sasuke_counter += 0x10;
311 }
312
sasuke_start_counter()313 void snk6502_state::sasuke_start_counter()
314 {
315 m_sasuke_counter = 0;
316 }
317
318
319 /*************************************
320 *
321 * Custom input ports
322 *
323 *************************************/
324
CUSTOM_INPUT_MEMBER(snk6502_state::sasuke_count_r)325 CUSTOM_INPUT_MEMBER(snk6502_state::sasuke_count_r)
326 {
327 return (m_sasuke_counter >> 4);
328 }
329
330
331 /*************************************
332 *
333 * Memory maps
334 *
335 *************************************/
336
sasuke_map(address_map & map)337 void snk6502_state::sasuke_map(address_map &map)
338 {
339 map(0x0000, 0x03ff).ram();
340 map(0x0400, 0x07ff).ram().w(FUNC(snk6502_state::videoram2_w)).share("videoram2");
341 map(0x0800, 0x0bff).ram().w(FUNC(snk6502_state::videoram_w)).share("videoram");
342 map(0x0c00, 0x0fff).ram().w(FUNC(snk6502_state::colorram_w)).share("colorram");
343 map(0x1000, 0x1fff).ram().w(FUNC(snk6502_state::charram_w)).share("charram");
344 map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
345 map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
346 map(0x4000, 0x8fff).rom();
347 map(0xb000, 0xb001).w("snk6502", FUNC(sasuke_sound_device::sound_w));
348 map(0xb002, 0xb002).w(FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */
349 map(0xb003, 0xb003).w(FUNC(snk6502_state::satansat_backcolor_w));
350 map(0xb004, 0xb004).portr("IN0");
351 map(0xb005, 0xb005).portr("IN1");
352 map(0xb006, 0xb006).portr("DSW");
353 map(0xb007, 0xb007).portr("IN2");
354 map(0xf800, 0xffff).rom();
355 }
356
satansat_map(address_map & map)357 void snk6502_state::satansat_map(address_map &map)
358 {
359 map(0x0000, 0x03ff).ram();
360 map(0x0400, 0x07ff).ram().w(FUNC(snk6502_state::videoram2_w)).share("videoram2");
361 map(0x0800, 0x0bff).ram().w(FUNC(snk6502_state::videoram_w)).share("videoram");
362 map(0x0c00, 0x0fff).ram().w(FUNC(snk6502_state::colorram_w)).share("colorram");
363 map(0x1000, 0x1fff).ram().w(FUNC(snk6502_state::charram_w)).share("charram");
364 map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
365 map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
366 map(0x4000, 0x9fff).rom();
367 map(0xb000, 0xb001).w("snk6502", FUNC(satansat_sound_device::sound_w));
368 map(0xb002, 0xb002).w(FUNC(snk6502_state::satansat_b002_w)); /* flip screen & irq enable */
369 map(0xb003, 0xb003).w(FUNC(snk6502_state::satansat_backcolor_w));
370 map(0xb004, 0xb004).portr("IN0");
371 map(0xb005, 0xb005).portr("IN1");
372 map(0xb006, 0xb006).portr("DSW");
373 map(0xb007, 0xb007).portr("IN2");
374 map(0xf800, 0xffff).rom();
375 }
376
highmem_r(offs_t offset)377 uint8_t vanguard_state::highmem_r(offs_t offset)
378 {
379 // RDY toggles on ϕ2 during each access to memory above $3FFF, generating one wait state
380 if (!machine().side_effects_disabled())
381 m_maincpu->adjust_icount(-1);
382
383 return m_highmem->read8(offset + 0x4000);
384 }
385
highmem_w(offs_t offset,uint8_t data)386 void vanguard_state::highmem_w(offs_t offset, uint8_t data)
387 {
388 // RDY toggles on ϕ2 during each access to memory above $3FFF, but 6502 does not apply wait states to writes
389 m_highmem->write8(offset + 0x4000, data);
390 }
391
vanguard_map(address_map & map)392 void vanguard_state::vanguard_map(address_map &map)
393 {
394 map(0x0000, 0x03ff).ram();
395 map(0x0400, 0x07ff).ram().w(FUNC(vanguard_state::videoram2_w)).share("videoram2");
396 map(0x0800, 0x0bff).ram().w(FUNC(vanguard_state::videoram_w)).share("videoram");
397 map(0x0c00, 0x0fff).ram().w(FUNC(vanguard_state::colorram_w)).share("colorram");
398 map(0x1000, 0x1fff).ram().w(FUNC(vanguard_state::charram_w)).share("charram");
399 map(0x3000, 0x3000).w("crtc", FUNC(mc6845_device::address_w));
400 map(0x3001, 0x3001).w("crtc", FUNC(mc6845_device::register_w));
401 map(0x3100, 0x3102).w("snk6502", FUNC(vanguard_sound_device::sound_w));
402 map(0x3103, 0x3103).w(FUNC(vanguard_state::flipscreen_w));
403 map(0x3104, 0x3104).portr("IN0");
404 map(0x3105, 0x3105).portr("IN1");
405 map(0x3106, 0x3106).portr("DSW");
406 map(0x3107, 0x3107).portr("IN2");
407 map(0x3200, 0x3200).w(FUNC(vanguard_state::scrollx_w));
408 map(0x3300, 0x3300).w(FUNC(vanguard_state::scrolly_w));
409 map(0x3400, 0x3400).w("snk6502", FUNC(vanguard_sound_device::speech_w)); // speech
410 map(0x4000, 0xffff).rw(FUNC(vanguard_state::highmem_r), FUNC(vanguard_state::highmem_w));
411 }
412
vanguard_upper_map(address_map & map)413 void vanguard_state::vanguard_upper_map(address_map &map)
414 {
415 map(0x4000, 0xbfff).rom().region("maincpu", 0x4000);
416 map(0xf000, 0xffff).rom().region("maincpu", 0xf000); /* for the reset / interrupt vectors */
417 }
418
fantasy_map(address_map & map)419 void fantasy_state::fantasy_map(address_map &map)
420 {
421 map(0x0000, 0x03ff).ram();
422 map(0x0400, 0x07ff).ram().w(FUNC(fantasy_state::videoram2_w)).share("videoram2");
423 map(0x0800, 0x0bff).ram().w(FUNC(fantasy_state::videoram_w)).share("videoram");
424 map(0x0c00, 0x0fff).ram().w(FUNC(fantasy_state::colorram_w)).share("colorram");
425 map(0x1000, 0x1fff).ram().w(FUNC(fantasy_state::charram_w)).share("charram");
426 map(0x2000, 0x2000).w("crtc", FUNC(mc6845_device::address_w));
427 map(0x2001, 0x2001).w("crtc", FUNC(mc6845_device::register_w));
428 map(0x2100, 0x2102).w("snk6502", FUNC(fantasy_sound_device::sound_w));
429 map(0x2103, 0x2103).w(FUNC(fantasy_state::fantasy_flipscreen_w)); // affects both video and sound
430 map(0x2104, 0x2104).portr("IN0");
431 map(0x2105, 0x2105).portr("IN1");
432 map(0x2106, 0x2106).portr("DSW");
433 map(0x2107, 0x2107).portr("IN2");
434 map(0x2200, 0x2200).w(FUNC(fantasy_state::scrollx_w));
435 map(0x2300, 0x2300).w(FUNC(fantasy_state::scrolly_w));
436 map(0x2400, 0x2400).w("snk6502", FUNC(fantasy_sound_device::speech_w)); // speech
437 map(0x3000, 0x3fff).rom().region("maincpu", 0x3000);
438 map(0x4000, 0xffff).rw(FUNC(fantasy_state::highmem_r), FUNC(fantasy_state::highmem_w));
439 }
440
pballoon_map(address_map & map)441 void fantasy_state::pballoon_map(address_map &map)
442 {
443 map(0x0000, 0x03ff).ram();
444 map(0x0400, 0x07ff).ram().w(FUNC(fantasy_state::videoram2_w)).share("videoram2");
445 map(0x0800, 0x0bff).ram().w(FUNC(fantasy_state::videoram_w)).share("videoram");
446 map(0x0c00, 0x0fff).ram().w(FUNC(fantasy_state::colorram_w)).share("colorram");
447 map(0x1000, 0x1fff).ram().w(FUNC(fantasy_state::charram_w)).share("charram");
448 map(0x3000, 0x3fff).rom().region("maincpu", 0x3000);
449 map(0x4000, 0xffff).rw(FUNC(fantasy_state::highmem_r), FUNC(fantasy_state::highmem_w));
450 }
451
pballoon_upper_map(address_map & map)452 void fantasy_state::pballoon_upper_map(address_map &map)
453 {
454 map(0x4000, 0x9fff).rom().region("maincpu", 0x4000);
455 map(0xb000, 0xb000).w("crtc", FUNC(mc6845_device::address_w));
456 map(0xb001, 0xb001).w("crtc", FUNC(mc6845_device::register_w));
457 map(0xb100, 0xb102).w("snk6502", FUNC(fantasy_sound_device::sound_w));
458 map(0xb103, 0xb103).w(FUNC(fantasy_state::fantasy_flipscreen_w)); // affects both video and sound
459 map(0xb104, 0xb104).portr("IN0");
460 map(0xb105, 0xb105).portr("IN1");
461 map(0xb106, 0xb106).portr("DSW");
462 map(0xb107, 0xb107).portr("IN2");
463 map(0xb200, 0xb200).w(FUNC(fantasy_state::scrollx_w));
464 map(0xb300, 0xb300).w(FUNC(fantasy_state::scrolly_w));
465 map(0xf000, 0xffff).rom().region("maincpu", 0xf000);
466 }
467
468
469 /*************************************
470 *
471 * Port definitions
472 *
473 *************************************/
474
INPUT_CHANGED_MEMBER(snk6502_state::coin_inserted)475 INPUT_CHANGED_MEMBER(snk6502_state::coin_inserted)
476 {
477 m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
478 }
479
480 static INPUT_PORTS_START( snk6502_generic_joy8way )
481 PORT_START("IN0")
482 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
483 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
484 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
485 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
486 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY
487 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY
488 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
489 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
490
491 PORT_START("IN1")
492 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
493 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
494 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
495 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
496 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
497 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
498 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
499 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
500
501 PORT_START("IN2")
502 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0)
503 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0)
504 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
505 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
506 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
507 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
508 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
509 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
510
511 PORT_START("DSW")
512 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1")
513 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
514 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
515 PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4")
516 PORT_DIPSETTING ( 0x02, DEF_STR( 2C_1C ) )
517 PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) )
518 PORT_DIPSETTING ( 0x08, DEF_STR( 1C_2C ) )
519 PORT_DIPSETTING ( 0x04, DEF_STR( 1C_3C ) )
520 PORT_DIPSETTING ( 0x0c, DEF_STR( 1C_6C ) )
521 /* PORT_DIPSETTING ( 0x06, DEF_STR( 1C_1C ) ) */
522 /* PORT_DIPSETTING ( 0x0a, DEF_STR( 1C_1C ) ) */
523 /* PORT_DIPSETTING ( 0x0e, DEF_STR( 1C_1C ) ) */
524 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
525 PORT_DIPSETTING( 0x00, "3" )
526 PORT_DIPSETTING( 0x10, "4" )
527 PORT_DIPSETTING( 0x20, "5" )
528 /* PORT_DIPSETTING( 0x30, "3" ) */
529 PORT_DIPNAME( 0x40, 0x00, "Coinage Bonus" ) PORT_DIPLOCATION("SW1:!7") /* see notes */
530 PORT_DIPSETTING ( 0x40, DEF_STR( 2C_1C ) )
531 PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) )
532 PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW1:!8" )
533 INPUT_PORTS_END
534
535 static INPUT_PORTS_START( satansat )
536 PORT_START("IN0")
537 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
538 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
539 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
540 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
541 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
542 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
543 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
544 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
545
546 PORT_START("IN1")
547 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
548 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
549 PORT_BIT( 0x7c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
550 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("snk6502:custom", snk6502_sound_device, music0_playing) // music0 playing
551
552 PORT_START("IN2")
553 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0)
554 PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* NC */
555 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(snk6502_state, sasuke_count_r) // connected to a binary counter
556
557 PORT_START("DSW")
558 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1")
559 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
560 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
561 PORT_DIPNAME( 0x0a, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!4")
562 PORT_DIPSETTING ( 0x08, DEF_STR( 2C_1C ) )
563 PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) )
564 PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) )
565 /* PORT_DIPSETTING ( 0x0a, DEF_STR( 2C_1C ) ) */
566 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!3")
567 PORT_DIPSETTING ( 0x04, "5000" )
568 PORT_DIPSETTING ( 0x00, "10000" )
569 PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6") /* manual says 4 is the default value */
570 PORT_DIPSETTING ( 0x00, "3" )
571 PORT_DIPSETTING ( 0x10, "4" )
572 PORT_DIPSETTING ( 0x20, "5" )
573 /* PORT_DIPSETTING( 0x30, "3" ) */
574 PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW1:!7" )
575 PORT_DIPNAME( 0x80, 0x00, "RAM Test" ) PORT_DIPLOCATION("SW1:!8") /* unused according to manual */
576 PORT_DIPSETTING ( 0x00, DEF_STR( Off ) )
577 PORT_DIPSETTING ( 0x80, DEF_STR( On ) )
578 INPUT_PORTS_END
579
580 /* Derived from 'satansat'. Might not reflect the actual hardware. Dip Switches verified from game code though. */
581 static INPUT_PORTS_START( sasuke )
582 PORT_INCLUDE(satansat)
583
584 PORT_MODIFY("IN0")
585 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
586 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
587
588 PORT_MODIFY("IN1")
589 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
590 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
591
592 PORT_MODIFY("DSW")
593 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2")
594 PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) )
595 PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) )
596 PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_HIGH, "SW1:!4" )
597 INPUT_PORTS_END
598
599 static INPUT_PORTS_START( vanguard )
600 PORT_INCLUDE(snk6502_generic_joy8way)
601
602 PORT_MODIFY("IN0")
603 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) /* fire down */
604 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) /* fire up */
605 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) /* fire right */
606 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* fire left */
607
608 PORT_MODIFY("IN1")
609 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL /* fire down */
610 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL /* fire up */
611 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL /* fire right */
612 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL /* fire left */
613
614 PORT_MODIFY("IN2")
615 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("snk6502:custom", snk6502_sound_device, music0_playing) // music0 playing
616 INPUT_PORTS_END
617
618 static INPUT_PORTS_START( fantasy )
619 PORT_INCLUDE(snk6502_generic_joy8way)
620 INPUT_PORTS_END
621
622 static INPUT_PORTS_START( fantasyu )
623 PORT_INCLUDE(fantasy)
624
625 PORT_MODIFY("DSW")
626 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:!8")
627 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
628 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* 1st pattern only */
629 INPUT_PORTS_END
630
631 static INPUT_PORTS_START( pballoon )
632 PORT_INCLUDE(snk6502_generic_joy8way)
633
634 PORT_MODIFY("IN0")
635 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
636
637 PORT_MODIFY("IN1")
638 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
639
640 PORT_MODIFY("DSW")
641 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:!8") /* code at 0x6c83 */
642 PORT_DIPSETTING( 0x80, DEF_STR( English ) )
643 PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) )
644 INPUT_PORTS_END
645
646 static INPUT_PORTS_START( nibbler )
647 // Rock-Ola documentation recommends a "4 Way Joystick - Heavy Duty" (RMC #G-6477-A).
648 PORT_START("IN0")
649 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_4WAY
650 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_4WAY
651 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
652 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
653
654 PORT_START("IN1")
655 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
656 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
657 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
658 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
659
660 PORT_START("IN2")
661 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0)
662 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, snk6502_state,coin_inserted, 0)
663 PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
664 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
665 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
666
667 PORT_START("DSW")
668 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2")
669 PORT_DIPSETTING( 0x00, "3" )
670 PORT_DIPSETTING( 0x01, "4" )
671 PORT_DIPSETTING( 0x02, "5" )
672 PORT_DIPSETTING( 0x03, "6" )
673 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!3")
674 PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
675 PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
676 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!4")
677 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
678 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
679 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Service_Mode ) ) PORT_DIPLOCATION("SW1:!5")
680 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
681 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
682 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:!6")
683 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
684 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
685 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!7,!8")
686 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
687 PORT_DIPSETTING( 0xc0, "2 Coins/1 Credit 4/3" )
688 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
689 PORT_DIPSETTING( 0x80, "1 Coin/1 Credit 2/3" )
690
691 /* There are no buttons on a real "Nibbler" cabinet, but I guess that the game was tested
692 with a "Vanguard" cabinet so they have been mapped with debug features. */
693 PORT_START("DEBUG")
694 PORT_CONFNAME( 0x01, 0x00, "Enable Debug Inputs" )
695 PORT_CONFSETTING( 0x00, DEF_STR( No ) )
696 PORT_CONFSETTING( 0x01, DEF_STR( Yes ) )
697
698 PORT_MODIFY("IN0")
699 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 0") PORT_CODE(KEYCODE_Z) // slow down
700 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 1") PORT_CODE(KEYCODE_X)
701 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 2") PORT_CODE(KEYCODE_C)
702 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 3") PORT_CODE(KEYCODE_V)
703 PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x00)
704
705 PORT_MODIFY("IN1")
706 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 4") PORT_CODE(KEYCODE_B) // pause
707 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 5") PORT_CODE(KEYCODE_N) // unpause
708 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 6") PORT_CODE(KEYCODE_M) // end game
709 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x01) PORT_NAME("Debug 7") PORT_CODE(KEYCODE_COMMA)
710 PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DEBUG", 0x01, EQUALS, 0x00)
711 INPUT_PORTS_END
712
713 static INPUT_PORTS_START( nibbler8 )
714 PORT_INCLUDE(nibbler)
715
716 PORT_MODIFY("DSW")
717 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2")
718 PORT_DIPSETTING( 0x00, "2" )
719 PORT_DIPSETTING( 0x01, "3" )
720 PORT_DIPSETTING( 0x02, "4" )
721 PORT_DIPSETTING( 0x03, "5" )
722 INPUT_PORTS_END
723
724 static INPUT_PORTS_START( nibbler6 )
725 PORT_INCLUDE(nibbler8)
726
727 PORT_MODIFY("DSW")
728 PORT_DIPNAME( 0x04, 0x00, "Pause at Corners" ) PORT_DIPLOCATION("SW1:!3")
729 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
730 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
731 INPUT_PORTS_END
732
733
734 /*************************************
735 *
736 * Graphics layouts
737 *
738 *************************************/
739
740 static const gfx_layout swapcharlayout =
741 {
742 8,8, /* 8*8 characters */
743 256, /* 256 characters */
744 2, /* 2 bits per pixel */
745 { 256*8*8, 0 }, /* the two bitplanes are separated */
746 { 0, 1, 2, 3, 4, 5, 6, 7 },
747 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
748 8*8 /* every char takes 8 consecutive bytes */
749 };
750
751 static const gfx_layout charlayout =
752 {
753 8,8, /* 8*8 characters */
754 RGN_FRAC(1,2),
755 2, /* 2 bits per pixel */
756 { 0, RGN_FRAC(1,2) }, /* the two bitplanes are separated */
757 { 0, 1, 2, 3, 4, 5, 6, 7 },
758 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
759 8*8 /* every char takes 8 consecutive bytes */
760 };
761
762 static const gfx_layout charlayout_memory =
763 {
764 8,8, /* 8*8 characters */
765 256, /* 256 characters */
766 2, /* 2 bits per pixel */
767 { 0, 256*8*8 }, /* the two bitplanes are separated */
768 { 0, 1, 2, 3, 4, 5, 6, 7 },
769 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
770 8*8 /* every char takes 8 consecutive bytes */
771 };
772
773
774 static GFXDECODE_START( gfx_sasuke )
775 GFXDECODE_ENTRY( nullptr, 0x1000, swapcharlayout, 0, 4 ) /* the game dynamically modifies this */
776 GFXDECODE_ENTRY( "gfx1", 0x0000, swapcharlayout, 4*4, 4 )
777 GFXDECODE_END
778
GFXDECODE_START(gfx_satansat)779 static GFXDECODE_START( gfx_satansat )
780 GFXDECODE_ENTRY( nullptr, 0x1000, charlayout_memory, 0, 4 ) /* the game dynamically modifies this */
781 GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 4*4, 4 )
782 GFXDECODE_END
783
784 static GFXDECODE_START( gfx_vanguard )
785 GFXDECODE_ENTRY( nullptr, 0x1000, charlayout_memory, 0, 8 ) /* the game dynamically modifies this */
786 GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 8*4, 8 )
787 GFXDECODE_END
788
789
790 /*************************************
791 *
792 * Interrupt Generators
793 *
794 *************************************/
795
796 INTERRUPT_GEN_MEMBER(snk6502_state::satansat_interrupt)
797 {
798 if(m_irq_mask)
799 device.execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */
800 }
801
INTERRUPT_GEN_MEMBER(snk6502_state::snk6502_interrupt)802 INTERRUPT_GEN_MEMBER(snk6502_state::snk6502_interrupt)
803 {
804 device.execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */
805 }
806
807
808 /*************************************
809 *
810 * Machine initialisation
811 *
812 *************************************/
813
MACHINE_RESET_MEMBER(snk6502_state,sasuke)814 MACHINE_RESET_MEMBER(snk6502_state,sasuke)
815 {
816 sasuke_start_counter();
817 }
818
819
820 /*************************************
821 *
822 * Machine drivers
823 *
824 *************************************/
825
sasuke(machine_config & config)826 void snk6502_state::sasuke(machine_config &config)
827 {
828 // basic machine hardware
829 M6502(config, m_maincpu, MASTER_CLOCK / 16); // 700 kHz
830 m_maincpu->set_addrmap(AS_PROGRAM, &snk6502_state::sasuke_map);
831 m_maincpu->set_vblank_int("screen", FUNC(snk6502_state::satansat_interrupt));
832
833 MCFG_MACHINE_RESET_OVERRIDE(snk6502_state,sasuke)
834
835 // video hardware
836
837 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
838 screen.set_refresh_hz((MASTER_CLOCK / 16) / (45 * 32 * 8));
839 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
840 screen.set_size(32*8, 32*8);
841 screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
842 screen.set_screen_update(FUNC(snk6502_state::screen_update));
843
844 GFXDECODE(config, m_gfxdecode, m_palette, gfx_sasuke);
845 PALETTE(config, m_palette, FUNC(snk6502_state::satansat_palette), 32);
846 MCFG_VIDEO_START_OVERRIDE(snk6502_state,satansat)
847
848 mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 16));
849 crtc.set_screen("screen");
850 crtc.set_show_border_area(false);
851 crtc.set_char_width(8);
852
853 TIMER(config, "sasuke_timer").configure_periodic(FUNC(snk6502_state::sasuke_update_counter), attotime::from_hz(MASTER_CLOCK / 8));
854
855 // sound hardware
856 SASUKE_SOUND(config, "snk6502", 0);
857 }
858
satansat(machine_config & config)859 void snk6502_state::satansat(machine_config &config)
860 {
861 sasuke(config);
862
863 // basic machine hardware
864 m_maincpu->set_addrmap(AS_PROGRAM, &snk6502_state::satansat_map);
865
866 // video hardware
867 m_gfxdecode->set_info(gfx_satansat);
868
869 // sound hardware
870 SATANSAT_SOUND(config.replace(), "snk6502", 0);
871 }
872
vanguard(machine_config & config)873 void vanguard_state::vanguard(machine_config &config)
874 {
875 // basic machine hardware
876 M6502(config, m_maincpu, MASTER_CLOCK / 8); // runs twice as fast as CRTC
877 m_maincpu->set_addrmap(AS_PROGRAM, &vanguard_state::vanguard_map);
878 m_maincpu->set_vblank_int("screen", FUNC(vanguard_state::snk6502_interrupt));
879
880 ADDRESS_MAP_BANK(config, m_highmem);
881 m_highmem->set_addrmap(0, &vanguard_state::vanguard_upper_map);
882 m_highmem->set_data_width(8);
883 m_highmem->set_addr_width(16);
884
885 // video hardware
886 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
887 screen.set_refresh_hz((MASTER_CLOCK / 16) / (45 * 32 * 8));
888 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
889 screen.set_size(32*8, 32*8);
890 screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
891 screen.set_screen_update(FUNC(vanguard_state::screen_update));
892
893 GFXDECODE(config, m_gfxdecode, m_palette, gfx_vanguard);
894 PALETTE(config, m_palette, FUNC(vanguard_state::snk6502_palette), 64);
895 MCFG_VIDEO_START_OVERRIDE(vanguard_state,snk6502)
896
897 mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 16));
898 crtc.set_screen("screen");
899 crtc.set_show_border_area(false);
900 crtc.set_char_width(8);
901
902 // sound hardware
903 VANGUARD_SOUND(config, "snk6502", 0);
904 }
905
fantasy(machine_config & config)906 void fantasy_state::fantasy(machine_config &config)
907 {
908 vanguard(config);
909
910 // basic machine hardware
911 m_maincpu->set_addrmap(AS_PROGRAM, &fantasy_state::fantasy_map);
912
913 // sound hardware
914 FANTASY_SOUND(config.replace(), "snk6502", 0);
915 }
916
nibbler(machine_config & config)917 void fantasy_state::nibbler(machine_config &config)
918 {
919 fantasy(config);
920
921 // sound hardware
922 NIBBLER_SOUND(config.replace(), "snk6502", 0);
923 }
924
pballoon(machine_config & config)925 void fantasy_state::pballoon(machine_config &config)
926 {
927 nibbler(config);
928
929 // basic machine hardware
930 m_maincpu->set_addrmap(AS_PROGRAM, &fantasy_state::pballoon_map);
931 m_highmem->set_addrmap(AS_PROGRAM, &fantasy_state::pballoon_upper_map);
932
933 MCFG_VIDEO_START_OVERRIDE(snk6502_state, pballoon)
934
935 // sound hardware
936 PBALLOON_SOUND(config.replace(), "snk6502", 0);
937 }
938
939
940 /*************************************
941 *
942 * ROM definitions
943 *
944 *************************************/
945
946 ROM_START( sasuke )
947 ROM_REGION( 0x10000, "maincpu", 0 )
948 ROM_LOAD( "sc1", 0x4000, 0x0800, CRC(34cbbe03) SHA1(3d643e11370e61dde0c42c7761a856c5cf53d621) )
949 ROM_LOAD( "sc2", 0x4800, 0x0800, CRC(38cc14f0) SHA1(d60df67f2a32c131e8957e225b79618d6262463d) )
950 ROM_LOAD( "sc3", 0x5000, 0x0800, CRC(54c41285) SHA1(5618c2ac745bbde96bfda7f01f7aee7e2b643d7e) )
951 ROM_LOAD( "sc4", 0x5800, 0x0800, CRC(23edafcf) SHA1(bda3bcb506f6e23f422aafd7ca9b95bfb4d1d8e1) )
952 ROM_LOAD( "sc5", 0x6000, 0x0800, CRC(ca410e4f) SHA1(0d09422d01b4359853c173a4cb18c9b5fbc7fe7c) )
953 ROM_LOAD( "sc6", 0x6800, 0x0800, CRC(80406afb) SHA1(2c4a34a7450fa7258c5e6ead9b1fd6c6b973f081) )
954 ROM_LOAD( "sc7", 0x7000, 0x0800, CRC(04d0f104) SHA1(73ed501f70d2a9e8994f8392f617450eafef39b3) )
955 ROM_LOAD( "sc8", 0x7800, 0x0800, CRC(0219104b) SHA1(fd5c43304d59bc34e9ae6ef7576d75cf319d823e) )
956 ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */
957 ROM_LOAD( "sc9", 0x8000, 0x0800, CRC(d6ff889a) SHA1(1eea0366205dd0d9bffb5d093f259edc1d51cbe0) )
958 ROM_LOAD( "sc10", 0x8800, 0x0800, CRC(19df6b9a) SHA1(95e904251c39dcef227a4c125fc573e958ee78b7) )
959
960 ROM_REGION( 0x1000, "gfx1", 0 )
961 ROM_LOAD( "mcs_c", 0x0000, 0x0800, CRC(aff9743d) SHA1(a968a193ca551d92f79e09d1761dd2ccebc76eee) )
962 ROM_LOAD( "mcs_d", 0x0800, 0x0800, CRC(9c805120) SHA1(74b83daa3ce3c9f7d96ad872b9134edd6f1bcb8a) )
963
964 ROM_REGION( 0x0020, "proms", 0 )
965 ROM_LOAD( "sasuke.clr", 0x0000, 0x0020, CRC(b70f34c1) SHA1(890cfbb25e14112713ba7900b9cd56554a8bc1ec) )
966
967 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */
968 ROM_LOAD( "sc11", 0x0000, 0x0800, CRC(24a0e121) SHA1(e3cde355309de6678026d595955297258f069946) )
969 ROM_END
970
971 ROM_START( satansat )
972 ROM_REGION( 0x10000, "maincpu", 0 )
973 ROM_LOAD( "ss1", 0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) )
974 ROM_LOAD( "ss2", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) )
975 ROM_LOAD( "ss3", 0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) )
976 ROM_LOAD( "ss4", 0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) )
977 ROM_LOAD( "ss5", 0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) )
978 ROM_LOAD( "ss6", 0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) )
979 ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
980 ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) )
981 ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */
982 ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) )
983 ROM_LOAD( "ss10", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) )
984 ROM_LOAD( "ss11", 0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) )
985
986 ROM_REGION( 0x1000, "gfx1", 0 )
987 ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
988 ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
989
990 ROM_REGION( 0x0020, "proms", 0 )
991 ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
992
993 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */
994 ROM_LOAD( "ss12", 0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) )
995 ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
996 ROM_END
997
998 ROM_START( satansata )
999 ROM_REGION( 0x10000, "maincpu", 0 )
1000 ROM_LOAD( "ic7.bin", 0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) )
1001 ROM_LOAD( "ic8.bin", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) )
1002 ROM_LOAD( "ic9.bin", 0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) )
1003 ROM_LOAD( "ic10.bin", 0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) )
1004 ROM_LOAD( "ic13.bin", 0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) )
1005 ROM_LOAD( "ic14.bin", 0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) )
1006 ROM_LOAD( "ic15.bin", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
1007 ROM_LOAD( "ic16.bin", 0x7800, 0x0800, CRC(9ec5fe09) SHA1(ab50373b330f21f7f64657e088ba6968a3176be4) ) // different
1008 ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */
1009 ROM_LOAD( "ic22.bin", 0x8000, 0x0800, CRC(21092f1f) SHA1(dd8be669cd7a51ec84e020d0a7fa50708155d084) ) // different
1010 ROM_LOAD( "ic23.bin", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) )
1011 ROM_LOAD( "ic24.bin", 0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) )
1012
1013 ROM_REGION( 0x1000, "gfx1", 0 )
1014 ROM_LOAD( "ic73.bin", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
1015 ROM_LOAD( "ic75.bin", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
1016
1017 ROM_REGION( 0x0020, "proms", 0 )
1018 ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
1019
1020 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */
1021 ROM_LOAD( "ic53.bin", 0x0000, 0x0800, CRC(8cb95a6b) SHA1(41d3986f1c2876a914b0087127ae99e9a2b41564) ) // different
1022 ROM_LOAD( "ic54.bin", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
1023 ROM_END
1024
1025 ROM_START( zarzon )
1026 ROM_REGION( 0x10000, "maincpu", 0 )
1027 ROM_LOAD( "zarz122.07", 0x4000, 0x0800, CRC(bdfa67e2) SHA1(0de06cf53ee21b8f14b933b61e6dc706338746c4) )
1028 ROM_LOAD( "zarz123.08", 0x4800, 0x0800, CRC(d034e61e) SHA1(dc802c3d7a9f7e473e323e3272fca406dab6d55d) )
1029 ROM_LOAD( "zarz124.09", 0x5000, 0x0800, CRC(296397ea) SHA1(3a1ad7f3c4453bb20768b3e3ce04cd76873aa0ee) )
1030 ROM_LOAD( "zarz125.10", 0x5800, 0x0800, CRC(26dc5e66) SHA1(07f47f3497bb85640e5e6a89ad7d6579108347fe) )
1031 ROM_LOAD( "zarz126.13", 0x6000, 0x0800, CRC(cee18d7f) SHA1(5a7e60b6be06b3038f2eb81e76fc54cb65d4877b) )
1032 ROM_LOAD( "zarz127.14", 0x6800, 0x0800, CRC(bbd2cc0d) SHA1(1128020b7c0f38f5ff2cc2da0fd2df5ebead4681) )
1033 ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
1034 ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) )
1035 ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */
1036 ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) )
1037 ROM_LOAD( "zarz131.23", 0x8800, 0x0800, CRC(7be20678) SHA1(872de953df1f9f1725e14fdfd227ad872a813af8) )
1038 ROM_LOAD( "zarz132.24", 0x9000, 0x0800, CRC(72b2cb76) SHA1(d7a95c908fe2227e2a0820a8e9713b1709c9e5af) )
1039
1040 ROM_REGION( 0x1000, "gfx1", 0 )
1041 ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
1042 ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
1043
1044 ROM_REGION( 0x0020, "proms", 0 )
1045 ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
1046
1047 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */
1048 ROM_LOAD( "zarz133.53", 0x0000, 0x0800, CRC(b253cf78) SHA1(56a73b22ed2866222c407a3e9b51b8e0c92cf2aa) )
1049 ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
1050 ROM_END
1051
1052
1053
1054
1055 ROM_START( satansatind )
1056 ROM_REGION( 0x10000, "maincpu", 0 )
1057 ROM_LOAD( "ss01.rom", 0x4000, 0x0800, CRC(7f16f8fe) SHA1(7ba2a3c31f7463eda0f300a27008a3fed9c84d9d) )
1058 ROM_LOAD( "ss02.rom", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) )
1059 ROM_LOAD( "ss03.rom", 0x5000, 0x0800, CRC(6e0077e8) SHA1(b7e665b2b6a993ef75c87d53a2a814d141791590) )
1060 ROM_LOAD( "ss04.rom", 0x5800, 0x0800, CRC(f9e33359) SHA1(b2586d5adff1703ecd86ed40681f5b703bd9a660) )
1061 ROM_LOAD( "ss05.rom", 0x6000, 0x0800, CRC(f771e007) SHA1(80f01116be697680a8d64212d61dffaec1350f14) )
1062 ROM_LOAD( "ss06.rom", 0x6800, 0x0800, CRC(e5b02850) SHA1(940ba0ebe7e37820ee1a1dc9f407b974fe354509) )
1063 ROM_LOAD( "ss07.rom", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
1064 ROM_LOAD( "ss08.rom", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) )
1065 ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */
1066 ROM_LOAD( "ss09.rom", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) )
1067 ROM_LOAD( "ss10.rom", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) )
1068 ROM_LOAD( "ss11.rom", 0x9000, 0x0800, CRC(3cbcbddb) SHA1(1567c7fe7c8855427d1f9435b317ba15ed8545c8) )
1069 ROM_LOAD( "ss16.rom", 0x9800, 0x0800, CRC(20bd6ee4) SHA1(a19011120c6f3c1c4e96439c1cbcf489ff991582) ) // extra code, unique to this set
1070
1071 ROM_REGION( 0x1000, "gfx1", 0 )
1072 ROM_LOAD( "ss14.rom", 0x0000, 0x0800, CRC(5dfcd508) SHA1(6c2863b9850adf7ff0f323be71670438c66a85ee) )
1073 ROM_LOAD( "ss15.rom", 0x0800, 0x0800, CRC(363d0500) SHA1(a02ad9e46c62075f54ad87ff287a50bc263c66d8) )
1074
1075 ROM_REGION( 0x0020, "proms", 0 )
1076 ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
1077
1078 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound data for Vanguard-style audio section */
1079 ROM_LOAD( "ss12.rom", 0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) )
1080 ROM_LOAD( "ss13.rom", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
1081 ROM_END
1082
1083 ROM_START( vanguard )
1084 ROM_REGION( 0x10000, "maincpu", 0 )
1085 ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
1086 ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
1087 ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
1088 ROM_LOAD( "sk4_ic10.bin", 0x7000, 0x1000, CRC(54603274) SHA1(31571a560dbe300417b3ed5b114fa1d9ef742da9) )
1089 ROM_LOAD( "sk4_ic13.bin", 0x8000, 0x1000, CRC(fde157d0) SHA1(3f705fb6a410004f4f86283694e3694e49701af6) )
1090 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1091 ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
1092 ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
1093 ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) )
1094
1095 ROM_REGION( 0x1000, "gfx1", 0 )
1096 ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
1097 ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
1098
1099 ROM_REGION( 0x0040, "proms", 0 )
1100 ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
1101 ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
1102
1103 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */
1104 ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */
1105 ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */
1106
1107 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1108 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1109 ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
1110 ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
1111 ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
1112 ROM_END
1113
1114 ROM_START( vanguardc )
1115 ROM_REGION( 0x10000, "maincpu", 0 )
1116 ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
1117 ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
1118 ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
1119 ROM_LOAD( "4", 0x7000, 0x1000, CRC(770f9714) SHA1(4af37fc24e464681a8da6b184be0df32a4078f4f) )
1120 ROM_LOAD( "5", 0x8000, 0x1000, CRC(3445cba6) SHA1(6afe6dad79b53df58b53ef9c5d24bb4d91fa5e8e) )
1121 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1122 ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
1123 ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
1124 ROM_LOAD( "8", 0xb000, 0x1000, CRC(4b825bc8) SHA1(3fa32d9677e2cc3a1ebf52c0b9eed7dbf11201e9) )
1125
1126 ROM_REGION( 0x1000, "gfx1", 0 )
1127 ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
1128 ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
1129
1130 ROM_REGION( 0x0040, "proms", 0 )
1131 ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
1132 ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
1133
1134 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */
1135 ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* confirmed, 6/21/05 */
1136 ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* confirmed, 6/21/05 */
1137
1138 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1139 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1140 ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
1141 ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
1142 ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
1143 ROM_END
1144
1145 ROM_START( vanguardj )
1146 ROM_REGION( 0x10000, "maincpu", 0 )
1147 ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
1148 ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
1149 ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
1150 ROM_LOAD( "vgj4ic10.bin", 0x7000, 0x1000, CRC(0a91a5d1) SHA1(bef435e431e31179eb22a4c18ca1dedf6a4a0ab0) )
1151 ROM_LOAD( "vgj5ic13.bin", 0x8000, 0x1000, CRC(06601a40) SHA1(d1efcf75edf3892fe59d63e524f4880ffce67965) )
1152 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1153 ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
1154 ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
1155 ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) )
1156
1157 ROM_REGION( 0x1000, "gfx1", 0 )
1158 ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
1159 ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
1160
1161 ROM_REGION( 0x0040, "proms", 0 )
1162 ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
1163 ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
1164
1165 ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */
1166 ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */
1167 ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */
1168
1169 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1170 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1171 ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
1172 ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
1173 ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
1174 ROM_END
1175
1176 // Dumped from a Germany sourced Zaccaria Vanguard cabinet PCB. Continue text is in German. Only the program ROMs were dumped,
1177 // but the other ROMs labels match the original SNK version and are believed to be the same
1178 ROM_START( vanguardg )
1179 ROM_REGION( 0x10000, "maincpu", 0 )
1180 ROM_LOAD( "vg1.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
1181 ROM_LOAD( "vg2.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
1182 ROM_LOAD( "vg3.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
1183 ROM_LOAD( "vg4g.bin", 0x7000, 0x1000, CRC(4a82306a) SHA1(086d6c96d79681b482378c04b7340d3285d11ed8) )
1184 ROM_LOAD( "vg5.bin", 0x8000, 0x1000, CRC(fde157d0) SHA1(3f705fb6a410004f4f86283694e3694e49701af6) )
1185 ROM_RELOAD( 0xf000, 0x1000 ) // for the reset and interrupt vectors
1186 ROM_LOAD( "vg6.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
1187 ROM_LOAD( "vg7.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
1188 ROM_LOAD( "vg8s.bin", 0xb000, 0x1000, CRC(abe5fa3f) SHA1(cadb7c873ef025792c9ec38a6399ed19ade3b755) )
1189
1190 ROM_REGION( 0x1000, "gfx1", 0 )
1191 ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
1192 ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
1193
1194 ROM_REGION( 0x0040, "proms", 0 )
1195 ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) // foreground colors
1196 ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) // background colors
1197
1198 ROM_REGION( 0x1000, "snk6502", 0 ) // sound ROMs
1199 ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) )
1200 ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )
1201
1202 ROM_REGION( 0x5800, "speech", 0 )
1203 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1204 ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
1205 ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
1206 ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
1207 ROM_END
1208
1209 ROM_START( fantasyu )
1210 ROM_REGION( 0x10000, "maincpu", 0 )
1211 ROM_LOAD( "ic12.cpu", 0x3000, 0x1000, CRC(22cb2249) SHA1(6c43e3fa9638b6d2e069199968923e470bd5d18b) )
1212 ROM_LOAD( "ic07.cpu", 0x4000, 0x1000, CRC(0e2880b6) SHA1(666d6942864eb7a90178b3b6e2b0eb23aa3c967f) )
1213 ROM_LOAD( "ic08.cpu", 0x5000, 0x1000, CRC(4c331317) SHA1(800850f4e8bcfbbade54eb9e47a53941f8798641) )
1214 ROM_LOAD( "ic09.cpu", 0x6000, 0x1000, CRC(6ac1dbfc) SHA1(b9c7bf8d3b085db0b53646b5639c09f9ced2b1fe) )
1215 ROM_LOAD( "ic10.cpu", 0x7000, 0x1000, CRC(c796a406) SHA1(1b7f5f307a81b481a3e7791128a01d4c1a20c4bf) )
1216 ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) )
1217 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1218 ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) )
1219 ROM_LOAD( "ic16.cpu", 0xa000, 0x1000, CRC(6c2aeb6e) SHA1(fd0b913a663bf2a5f45fc3d342d7575a9c7dae46) )
1220 ROM_LOAD( "ic17.cpu", 0xb000, 0x1000, CRC(f6aa5de1) SHA1(ca53cf66cc6cdb21a60760102f35a5b0745ce09b) )
1221
1222 ROM_REGION( 0x2000, "gfx1", 0 )
1223 ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
1224 ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
1225
1226 ROM_REGION( 0x0040, "proms", 0 )
1227 ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
1228 ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
1229
1230 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1231 ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
1232 ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
1233 ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
1234
1235 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1236 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1237 ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
1238 ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
1239 ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
1240 ROM_END
1241
1242 ROM_START( fantasyg )
1243 ROM_REGION( 0x10000, "maincpu", 0 )
1244 ROM_LOAD( "5.12", 0x3000, 0x1000, CRC(0968ab50) SHA1(f09d03a171349895c5cb69e684901be63d272b32) )
1245 ROM_LOAD( "1.7", 0x4000, 0x1000, CRC(de83000e) SHA1(ede1dda46406b4d340f1efea3bc85b2227af9e1d) )
1246 ROM_LOAD( "2.8", 0x5000, 0x1000, CRC(90499b5a) SHA1(81a9d93a5655d2ff9504036bc764d8bb81e1470d) )
1247 ROM_LOAD( "3.9", 0x6000, 0x1000, CRC(6fbffeb6) SHA1(b36aeaf095da4957103c8921957ff4be658eddf5) )
1248 ROM_LOAD( "4.10", 0x7000, 0x1000, CRC(02e85884) SHA1(71fa6eb375fc417f92c049ec5118818b9ad48468) )
1249 ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) )
1250 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1251 ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) )
1252 ROM_LOAD( "8.16", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) )
1253 ROM_LOAD( "9.17", 0xb000, 0x1000, CRC(56a7c8b8) SHA1(6c417644851c7b4b5291d9c5b2c808ff4a1ad048) )
1254
1255 ROM_REGION( 0x2000, "gfx1", 0 )
1256 ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
1257 ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
1258
1259 ROM_REGION( 0x0040, "proms", 0 )
1260 ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
1261 ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
1262
1263 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1264 ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
1265 ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
1266 ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
1267
1268 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1269 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1270 ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
1271 ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
1272 ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
1273 ROM_END
1274
1275 // SK-7A and SK-6 PCBs
1276 ROM_START( fantasyg2 )
1277 ROM_REGION( 0x10000, "maincpu", 0 )
1278 ROM_LOAD( "ts5.bin", 0x3000, 0x1000, CRC(6edca14e) SHA1(d9152e212f2b3cdb6e7968e4e7638454ea02c4a5) )
1279 ROM_LOAD( "fs1.bin", 0x4000, 0x1000, CRC(d99656e8) SHA1(6f5febaeca2ec167523f48361ae2395772bcef53) )
1280 ROM_LOAD( "ts2.bin", 0x5000, 0x1000, CRC(2db6ce28) SHA1(18cced543f27664b3eaddf103a41580a905ffae1) )
1281 ROM_LOAD( "ts3.bin", 0x6000, 0x1000, CRC(1a0aa7c5) SHA1(c8f34618ffc98c73db7067851de24f245b8988ad) )
1282 ROM_LOAD( "fs4.bin", 0x7000, 0x1000, CRC(c02ad442) SHA1(a90b2d04fc2e8b2dda634c18eafb88007eaedc67) )
1283 ROM_LOAD( "fs6.bin", 0x8000, 0x1000, CRC(e5b91bc2) SHA1(85515eb57c8040fc95a9c62706e1a504e6749f66) )
1284 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1285 ROM_LOAD( "fs7.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) )
1286 ROM_LOAD( "fs8.bin", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) )
1287 ROM_LOAD( "fs9.bin", 0xb000, 0x1000, CRC(49574d4a) SHA1(37cae0df7e8705c300f684b3351b5bdba5e44ea2) )
1288
1289 ROM_REGION( 0x2000, "gfx1", 0 )
1290 ROM_LOAD( "fs10.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
1291 ROM_LOAD( "fs11.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
1292
1293 ROM_REGION( 0x0040, "proms", 0 )
1294 ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
1295 ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
1296
1297 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1298 ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
1299 ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
1300 ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
1301
1302 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1303 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1304 ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
1305 ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
1306 ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
1307 ROM_END
1308
1309 ROM_START( fantasyj )
1310 ROM_REGION( 0x10000, "maincpu", 0 )
1311 ROM_LOAD( "fs5jic12.bin", 0x3000, 0x1000, CRC(dd1eac89) SHA1(d63078d4666e3c6db0c9b3f8b45ef81606ed5a4f) )
1312 ROM_LOAD( "fs1jic7.bin", 0x4000, 0x1000, CRC(7b8115ae) SHA1(6274f937c57ab9cbb7c6283022b81f70dad7c232) )
1313 ROM_LOAD( "fs2jic8.bin", 0x5000, 0x1000, CRC(61531dd1) SHA1(f3bc405bafc8ced6c6fce93ad2ad20ff6aa603e8) )
1314 ROM_LOAD( "fs3jic9.bin", 0x6000, 0x1000, CRC(36a12617) SHA1(dd74abb4cbaeb1a56ee466043997187ebe933612) )
1315 ROM_LOAD( "fs4jic10.bin", 0x7000, 0x1000, CRC(dbf7c347) SHA1(1bb3f924a7e1ec74ef68e237a0f68d62ce78532c) )
1316 ROM_LOAD( "fs6jic14.bin", 0x8000, 0x1000, CRC(bf59a33a) SHA1(bdbdd03199758069b904fdf0455193682c4d457f) )
1317 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1318 ROM_LOAD( "fs7jic15.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) )
1319 ROM_LOAD( "fs8jic16.bin", 0xa000, 0x1000, CRC(ae5bf727) SHA1(3c5eaaba3971f57a5687945a614dd0d6c9e007d6) )
1320 ROM_LOAD( "fs9jic17.bin", 0xb000, 0x1000, CRC(fa6903e2) SHA1(a5b9b7309ecaaeaba76e45610d5ab80415ecbdd0) )
1321
1322 ROM_REGION( 0x2000, "gfx1", 0 )
1323 ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
1324 ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
1325
1326 ROM_REGION( 0x0040, "proms", 0 )
1327 ROM_LOAD( "prom-8.bpr", 0x0000, 0x0020, CRC(1aa9285a) SHA1(d503aa76ca0cf032c7b1c962abc59677c41a2c62) ) /* foreground colors */
1328 ROM_LOAD( "prom-7.bpr", 0x0020, 0x0020, CRC(7a6f7dc3) SHA1(e15d898275d1cd205cc2d28f7dd9df653594039e) ) /* background colors */
1329
1330 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1331 ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
1332 ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
1333 ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
1334
1335 ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */
1336 //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */
1337 ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
1338 ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
1339 ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
1340 ROM_END
1341
1342 ROM_START( pballoon )
1343 ROM_REGION( 0x10000, "maincpu", 0 )
1344 ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) )
1345 ROM_LOAD( "sk7_ic07.bin", 0x4000, 0x1000, CRC(736e67df) SHA1(a58d9561f62d396ca90b0f69afe6240d809b10bb) )
1346 ROM_LOAD( "sk7_ic08.bin", 0x5000, 0x1000, CRC(7a2032b2) SHA1(79570943468d647cda67d94b20eac1b2d9eb371f) )
1347 ROM_LOAD( "sk7_ic09.bin", 0x6000, 0x1000, CRC(2d63cf3a) SHA1(8934af617229db445f9fd10e4028e1f8df4cfeb1) )
1348 ROM_LOAD( "sk7_ic10.bin", 0x7000, 0x1000, CRC(7b88cbd4) SHA1(1be3c484bd08c747f38389114c157e84319c48be) )
1349 ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) )
1350 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1351 ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) )
1352
1353 ROM_REGION( 0x2000, "gfx1", 0 )
1354 ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) )
1355 ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) )
1356
1357 ROM_REGION( 0x0040, "proms", 0 )
1358 ROM_LOAD( "sk8_ic7.bin", 0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */
1359 ROM_LOAD( "sk8_ic6.bin", 0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */
1360
1361 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1362 ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
1363 ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) )
1364 ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) )
1365 ROM_END
1366
1367 ROM_START( pballoonr )
1368 ROM_REGION( 0x10000, "maincpu", 0 )
1369 ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) )
1370 ROM_LOAD( "rock-ola_skpb1.ic7", 0x4000, 0x1000, CRC(dfd802e8) SHA1(2014295c678d0534585e27d9b5c7ac525113cd0c) )
1371 ROM_LOAD( "rock-ola_skpb1.ic8", 0x5000, 0x1000, CRC(c433c062) SHA1(63df947c56f51a623b378d2a8a5b2cd05c23c414) )
1372 ROM_LOAD( "rock-ola_skpb1.ic9", 0x6000, 0x1000, CRC(f85b9c37) SHA1(905eb162436a0a46688df9343296c140480d00cb) )
1373 ROM_LOAD( "rock-ola_skpb1.ic10", 0x7000, 0x1000, CRC(8020e52d) SHA1(fbe2a27560904225b4406171c1cdbae9941887bd) )
1374 ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) )
1375 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1376 ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) )
1377
1378 ROM_REGION( 0x2000, "gfx1", 0 )
1379 ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) )
1380 ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) )
1381
1382 ROM_REGION( 0x0040, "proms", 0 )
1383 ROM_LOAD( "sk8_ic7.bin", 0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */
1384 ROM_LOAD( "sk8_ic6.bin", 0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */
1385
1386 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1387 ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
1388 ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) )
1389 ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) )
1390 ROM_END
1391
1392 ROM_START( nibbler ) /* revision 9 - rom labels match manual part numbers/locations */
1393 ROM_REGION( 0x10000, "maincpu", 0 )
1394 ROM_LOAD( "g-0960-52.ic12", 0x3000, 0x1000, CRC(6dfa1be5) SHA1(bb265702a2f74cb7d5ba27081f9fb2fe01dd95a5) )
1395 ROM_LOAD( "g-0960-48.ic7", 0x4000, 0x1000, CRC(808e1a03) SHA1(a747a16ee0c8cb803b72ac84e80f791b2bf1813a) )
1396 ROM_LOAD( "g-0960-49.ic8", 0x5000, 0x1000, CRC(1571d4a2) SHA1(42cbaa262c2265d904fd5844c0d3c63d3beb67a8) )
1397 ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) )
1398 ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) )
1399 ROM_LOAD( "g-0960-53.ic14", 0x8000, 0x1000, CRC(9f537185) SHA1(619df63f4df38014dc229f614043f867e6a5aa51) )
1400 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1401 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1402 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1403 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1404
1405 ROM_REGION( 0x2000, "gfx1", 0 )
1406 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1407 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1408
1409 ROM_REGION( 0x0040, "proms", 0 )
1410 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1411 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1412
1413 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1414 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1415 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1416 ROM_END
1417
1418 ROM_START( nibbler8 ) /* revision 8 */
1419 ROM_REGION( 0x10000, "maincpu", 0 )
1420 ROM_LOAD( "50-144.012", 0x3000, 0x1000, CRC(68af8f4b) SHA1(be6ddd3a9abb05563c927b1ec54dbaab44b65492) )
1421 ROM_LOAD( "50-140.007", 0x4000, 0x1000, CRC(c18b3009) SHA1(c3703d0300f5f1546417ecdc27ab747d9c7eb267) )
1422 ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) )
1423 ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // 50-142.009
1424 ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // 50-143.010
1425 ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) )
1426 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1427 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) // 50-146.015
1428 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) // 50-147.016
1429 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) // 50-148.017
1430
1431 ROM_REGION( 0x2000, "gfx1", 0 )
1432 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) // 50-150.051
1433 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) // 50-149.050
1434
1435 ROM_REGION( 0x0040, "proms", 0 )
1436 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1437 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1438
1439 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1440 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1441 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1442 ROM_END
1443
1444 ROM_START( nibbler7 ) /* revision 7 */
1445 ROM_REGION( 0x10000, "maincpu", 0 )
1446 ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(8685d060) SHA1(64b10f9afc9ca97db7b4f7784da0df1574a56919) ) // sldh
1447 ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(b07195c7) SHA1(7aeccb274eb83aa9c24ccd1e72c694f316d25c4d) ) // sldh
1448 ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(61034cca) SHA1(8aa06784afe60b7ce9c1ea1c27685610fa9104cf) ) // sldh
1449 ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) )
1450 ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) )
1451 ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(7a87c766) SHA1(8660cf78de7a4e2aec178155d2941094a3978ba3) ) // sldh
1452 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1453 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1454 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1455 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1456
1457 ROM_REGION( 0x2000, "gfx1", 0 )
1458 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1459 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1460
1461 ROM_REGION( 0x0040, "proms", 0 )
1462 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1463 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1464
1465 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1466 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1467 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1468 ROM_END
1469
1470 ROM_START( nibbler6 ) /* revision 6 */
1471 ROM_REGION( 0x10000, "maincpu", 0 )
1472 ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) ) // sldh
1473 ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) ) // sldh
1474 ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) )
1475 ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) )
1476 ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) )
1477 ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) ) // sldh
1478 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1479 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1480 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1481 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1482
1483 ROM_REGION( 0x2000, "gfx1", 0 )
1484 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1485 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1486
1487 ROM_REGION( 0x0040, "proms", 0 )
1488 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1489 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1490
1491 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1492 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1493 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1494 ROM_END
1495
1496 ROM_START( nibblera ) /* revision 9 - alternate? */
1497 ROM_REGION( 0x10000, "maincpu", 0 )
1498 ROM_LOAD( "2732.ic12", 0x3000, 0x1000, CRC(e569937b) SHA1(6ee9aa528cc3f0685153b3170f41b9a665d358e0) )
1499 ROM_LOAD( "2732.ic07", 0x4000, 0x1000, CRC(7f9d715c) SHA1(59fbdbb55dceaa86235911589395fa5243e44afe) )
1500 ROM_LOAD( "2732.ic08", 0x5000, 0x1000, CRC(e46eb1c9) SHA1(b70a14085985096eb6650f3d06343a20d75e61b5) )
1501 ROM_LOAD( "2732.ic09", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) )
1502 ROM_LOAD( "2732.ic10", 0x7000, 0x1000, BAD_DUMP CRC(746e94cd) SHA1(284696722857900760d35f1f8ef53290deddac20) ) // FIXED BITS (xxx1xxxx)
1503 ROM_LOAD( "2732.ic14", 0x8000, 0x1000, CRC(48ec4af0) SHA1(9b4b80c288d5ade998c0bbcfc3868c9dcd438707) )
1504 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1505 ROM_LOAD( "2732.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1506 ROM_LOAD( "2732.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1507 ROM_LOAD( "2732.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1508
1509 ROM_REGION( 0x2000, "gfx1", 0 )
1510 ROM_LOAD( "2732.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1511 ROM_LOAD( "2732.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1512
1513 ROM_REGION( 0x0040, "proms", 0 )
1514 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1515 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1516
1517 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1518 ROM_LOAD( "2716.ic52", 0x0800, 0x0800, CRC(cabe6c34) SHA1(664ab47555d4c05189d797836f34045f00ac119e) )
1519 ROM_LOAD( "2716.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) // missing in set
1520 ROM_END
1521
1522 ROM_START( nibblerp ) /* revision 6 + extra soundrom */
1523 ROM_REGION( 0x10000, "maincpu", 0 )
1524 ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) ) // sldh
1525 ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) ) // sldh
1526 ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) ) // sldh
1527 ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) )
1528 ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) )
1529 ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) )
1530 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1531 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1532 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1533 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1534
1535 ROM_REGION( 0x2000, "gfx1", 0 )
1536 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1537 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1538
1539 ROM_REGION( 0x0040, "proms", 0 )
1540 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1541 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1542
1543 ROM_REGION( 0x1800, "snk6502", 0 ) /* sound ROMs */
1544 ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) /* Rom from Pioneer Balloon */
1545 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1546 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1547 ROM_END
1548
1549 ROM_START( nibblero ) /* revision 8 */
1550 ROM_REGION( 0x10000, "maincpu", 0 )
1551 ROM_LOAD( "50-144g.012", 0x3000, 0x1000, CRC(1093f525) SHA1(6a63372300765acdbac1d2e30fd73af7773de80f) )
1552 ROM_LOAD( "50-140g.007", 0x4000, 0x1000, CRC(848651dd) SHA1(a5aafbcca42baca8d0d5d28546733aefc778ba99) )
1553 ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) )
1554 ROM_LOAD( "nibblero.ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // ic9
1555 ROM_LOAD( "nibblero.ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // ic10
1556 ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) )
1557 ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */
1558 ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
1559 ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
1560 ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
1561
1562 ROM_REGION( 0x2000, "gfx1", 0 )
1563 ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
1564 ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
1565
1566 ROM_REGION( 0x0040, "proms", 0 )
1567 ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
1568 ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
1569
1570 ROM_REGION( 0x1800, "snk6502", ROMREGION_ERASEFF ) /* sound ROMs */
1571 ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
1572 ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
1573 ROM_END
1574
1575
1576 /*************************************
1577 *
1578 * Game drivers
1579 *
1580 *************************************/
1581
1582 GAME( 1980, sasuke, 0, sasuke, sasuke, snk6502_state, empty_init, ROT90, "SNK", "Sasuke vs. Commander", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1583 GAME( 1981, satansat, 0, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK", "Satan of Saturn (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1584 GAME( 1981, satansata, satansat, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK", "Satan of Saturn (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1585 GAME( 1981, zarzon, satansat, satansat, satansat, snk6502_state, empty_init, ROT90, "SNK (Taito America license)", "Zarzon", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1586 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 )
1587 GAME( 1981, vanguard, 0, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK", "Vanguard (SNK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1588 GAME( 1981, vanguardc, vanguard, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1589 GAME( 1981, vanguardg, vanguard, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK", "Vanguard (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1590 GAME( 1981, vanguardj, vanguard, vanguard, vanguard, vanguard_state,empty_init, ROT90, "SNK", "Vanguard (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1591 GAME( 1981, fantasyu, 0, fantasy, fantasyu, fantasy_state, empty_init, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1592 GAME( 1981, fantasyg, fantasyu, fantasy, fantasy, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Germany, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
1593 GAME( 1981, fantasyg2, fantasyu, fantasy, fantasy, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Germany, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
1594 GAME( 1981, fantasyj, fantasyu, fantasy, fantasyu, fantasy_state, empty_init, ROT90, "SNK", "Fantasy (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
1595 GAME( 1982, pballoon, 0, pballoon, pballoon, fantasy_state, empty_init, ROT90, "SNK", "Pioneer Balloon", MACHINE_SUPPORTS_SAVE )
1596 GAME( 1982, pballoonr, pballoon, pballoon, pballoon, fantasy_state, empty_init, ROT90, "SNK (Rock-Ola license)", "Pioneer Balloon (Rock-Ola license)", MACHINE_SUPPORTS_SAVE )
1597 GAME( 1982, nibbler, 0, nibbler, nibbler, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 9, set 1)", MACHINE_SUPPORTS_SAVE )
1598 GAME( 1982, nibblera, nibbler, nibbler, nibbler, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 9, set 2)", MACHINE_SUPPORTS_SAVE )
1599 GAME( 1982, nibbler8, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 8)", MACHINE_SUPPORTS_SAVE )
1600 GAME( 1983, nibblero, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola (Olympia license)", "Nibbler (rev 8, Olympia)", MACHINE_SUPPORTS_SAVE )
1601 GAME( 1982, nibbler7, nibbler, nibbler, nibbler8, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 7)", MACHINE_SUPPORTS_SAVE )
1602 GAME( 1982, nibbler6, nibbler, nibbler, nibbler6, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 6)", MACHINE_SUPPORTS_SAVE )
1603 GAME( 1982, nibblerp, nibbler, nibbler, nibbler6, fantasy_state, empty_init, ROT90, "Rock-Ola", "Nibbler (rev 6, Pioneer Balloon conversion)", MACHINE_SUPPORTS_SAVE ) // music
1604