~ubuntu-branches/ubuntu/lucid/sdlmame/lucid

« back to all changes in this revision

Viewing changes to src/mame/drivers/snk6502.c

  • Committer: Bazaar Package Importer
  • Author(s): Cesare Falco
  • Date: 2009-11-03 17:10:15 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20091103171015-6hop4ory5lxnumpn
Tags: 0.135-0ubuntu1
* New upstream release - Closes (LP: #403212)
* debian/watch: unstable releases are no longer detected
* mame.ini: added the cheat subdirectories to cheatpath so zipped
  cheatfiles will be searched too
* renamed crsshair subdirectory to crosshair to reflect upstream change
* mame.ini: renamed references to crosshair subdirectory (see above)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
 
 
3
    Sasuke vs. Commander
 
4
    SNK
 
5
 
 
6
    driver by ?
 
7
 
 
8
    Games supported:
 
9
        * Sasuke vs. Commander
 
10
        * Satan of Saturn          [2 sets]
 
11
        * Zarzon (clone of 'satansat')
 
12
        * Vanguard                 [3 sets]
 
13
        * Fantasy                  [3 sets]       G-202
 
14
        * Pioneer Balloon                         G-204
 
15
        * Nibbler                  [4 sets]       G-208
 
16
 
 
17
    DIP locations verified from manual for:
 
18
        * Zarzon    (Satan of Saturn uses the same code, so I guess locations are the same)
 
19
        * Vanguard
 
20
        * Nibbler
 
21
 
 
22
****************************************************************************
 
23
 
 
24
Vanguard memory map (preliminary)
 
25
 
 
26
0000-03ff RAM
 
27
0400-07ff Video RAM 1
 
28
0800-0bff Video RAM 2
 
29
0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2)
 
30
1000-1fff Character generator RAM
 
31
4000-bfff ROM
 
32
 
 
33
read:
 
34
3104      IN0
 
35
3105      IN1
 
36
3106      DSW
 
37
3107      IN2
 
38
 
 
39
write
 
40
3100      Sound Port 0
 
41
3101      Sound Port 1
 
42
3103      bit 7 = flip screen
 
43
3200      y scroll register
 
44
3300      x scroll register
 
45
 
 
46
****************************************************************************
 
47
 
 
48
Fantasy and Nibbler memory map (preliminary)
 
49
 
 
50
0000-03ff RAM
 
51
0400-07ff Video RAM 1
 
52
0800-0bff Video RAM 2
 
53
0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2)
 
54
1000-1fff Character generator RAM
 
55
3000-bfff ROM
 
56
 
 
57
read:
 
58
2104      IN0
 
59
2105      IN1
 
60
2106      DSW
 
61
2107      IN2
 
62
 
 
63
write
 
64
2000-2001 To the HD46505S video controller
 
65
2100      Sound Port 0
 
66
2101      Sound Port 1
 
67
2103      bit 7 = flip screen
 
68
          bit 4-6 = music 2
 
69
          bit 3 = char bank selector
 
70
          bit 0-2 = background color
 
71
2200      y scroll register
 
72
2300      x scroll register
 
73
 
 
74
Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI.
 
75
 
 
76
****************************************************************************
 
77
 
 
78
Pioneer Balloon memory map (preliminary)
 
79
 
 
80
0000-03ff RAM          IC13 cpu
 
81
0400-07ff Video RAM 1  IC67 video
 
82
0800-0bff Video RAM 2  ???? video
 
83
0c00-0fff Color RAM    IC68 (3 bits for VRAM 1 and 3 bits for VRAM 2)
 
84
1000-1fff RAM          ???? Character generator
 
85
3000-3fff ROM 4/5      IC12
 
86
4000-4fff ROM 1        IC07
 
87
5000-5fff ROM 2        IC08
 
88
6000-6fff ROM 3        IC09
 
89
7000-7fff ROM 4        IC10
 
90
8000-8fff ROM 5        IC14
 
91
9000-9fff ROM 6        IC15
 
92
 
 
93
read:
 
94
b104      IN0
 
95
b105      IN1
 
96
b106      DSW
 
97
b107      IN2
 
98
 
 
99
write
 
100
b000      Sound Port 0
 
101
b001      Sound Port 1
 
102
b100      ????
 
103
b103      bit 7 = flip screen
 
104
          bit 4-6 = music 2
 
105
          bit 3 = char bank selector
 
106
          bit 0-2 = background color
 
107
b106      ????
 
108
b200      y scroll register
 
109
b300      x scroll register
 
110
 
 
111
Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI.
 
112
 
 
113
****************************************************************************
 
114
 
 
115
Stephh's notes (based on the games M6502 code and some tests) :
 
116
 
 
117
1a) 'vanguard'
 
118
 
 
119
  - There are 5 different coinage settings according to the game code
 
120
    which are based on DSW bits 1 to 3 :
 
121
 
 
122
      bit 3   bit 2   bit 1    effect
 
123
       OFF     OFF     OFF      1C_1C
 
124
       OFF     OFF     ON       2C_1C   (manual tells this is the default setting)
 
125
       OFF     ON      OFF      1C_3C
 
126
       ON      OFF     OFF      1C_2C
 
127
       ON      ON      OFF      1C_6C
 
128
 
 
129
    The 3 other combinaisons give 1C_1C
 
130
  - From the manual, it says that DSW bit 6 determines the cost of a game :
 
131
      * bit 6 = 0 : "25c / game"
 
132
      * bit 6 = 1 : "50c / game"
 
133
    When you look at the game code, it appears to be some of "Bonus Coinage" :
 
134
      * bit 6 = 0 : you get an additional credit each time you insert 1 coin
 
135
      * bit 6 = 1 : you get an additional credit each time you insert 2 coins
 
136
  - So, instead of having something like this :
 
137
        PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4")
 
138
        PORT_DIPSETTING(    0x02, "25c= 1C/1C 2C/3C 50c= 2C/2C" )
 
139
        PORT_DIPSETTING(    0x00, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
 
140
        PORT_DIPSETTING(    0x08, "25c= 1C/3C 50c= 1C/2C 2C/5C" )
 
141
        PORT_DIPSETTING(    0x04, "25c= 1C/4C 50c= 1C/3C 2C/7C" )
 
142
        PORT_DIPSETTING(    0x0c, "25c= 1C/7C 50c= 1C/6C 2C/13C" )
 
143
        duplicate settings - untested in game code
 
144
        PORT_DIPSETTING(    0x06, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
 
145
        PORT_DIPSETTING(    0x0a, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
 
146
        PORT_DIPSETTING(    0x0e, "25c= 1C/2C 50c= 1C/1C 2C/3C" )
 
147
        ...
 
148
        PORT_DIPNAME( 0x40, 0x00, "Game Cost" ) PORT_DIPLOCATION("SW1:!7")
 
149
        PORT_DIPSETTING(    0x00, "25c / game" )
 
150
        PORT_DIPSETTING(    0x40, "50c / game" )
 
151
    or using conditional Dip Switches, I've coded this the way I did.
 
152
  - You can always continue, provided you're on the 1st pattern.
 
153
    The continue text is in English !
 
154
  - 10 letters when you enter your initials
 
155
 
 
156
1b) 'vangrdce'
 
157
 
 
158
  - Code for coinage is the same as for 'vanguard'.
 
159
  - You can always continue, provided you're on the 1st pattern.
 
160
    The continue text is in English !
 
161
  - 3 letters when you enter your initials
 
162
 
 
163
1c) 'vanguarj'
 
164
 
 
165
  - Code for coinage is the same as for 'vanguard'.
 
166
  - You can always continue, provided you're on the 1st pattern.
 
167
    The continue text is in Japanese !
 
168
  - 10 letters when you enter your initials
 
169
 
 
170
2a) 'fantasy'
 
171
 
 
172
  - Code for coinage is the same as for 'vanguard'.
 
173
  - You can always continue, provided you're on the 1st pattern.
 
174
    Note that the continue text is in German !
 
175
  - 3 letters when you enter your initials
 
176
  - I can't tell if it's an ingame bug or not, but there's a mix
 
177
    between "COIN" and "CREDIT" ("COCR" is displayed)
 
178
 
 
179
2b) 'fantasyu'
 
180
 
 
181
  - Code for coinage is the same as for 'vanguard'.
 
182
  - This version seems easier than 'fantasy', especially on level 2
 
183
    where you have a sword and an easier maze.
 
184
  - Code has been added to test DSW bit 7 to allow or not a continue play.
 
185
    Note that the continue play is only available on the 1st pattern.
 
186
  - 3 letters when you enter your initials
 
187
  - "Fantasy" is written with different "font" and color
 
188
  - "CREDIT" is displayed instead of "COIN"
 
189
 
 
190
2b) 'fantasyj'
 
191
 
 
192
  - Code for coinage is the same as for 'vanguard'.
 
193
  - This version seems easier than 'fantasy', especially on level 2
 
194
    where you have a sword and an easier maze.
 
195
  - Code has been added to test DSW bit 7 to allow or not a continue play.
 
196
    Note that the continue play is only available on the 1st pattern.
 
197
    Also note that the continue text is still in English !
 
198
  - 3 letters when you enter your initials
 
199
  - "COIN" is correctly displayed.
 
200
 
 
201
3)  'pballoon'
 
202
 
 
203
  - Code for coinage is the same as for 'vanguard'.
 
204
  - The "Language" Dip Switch only has an effect at the end of the pattern
 
205
    when it displays "LAND HERE" or what I suppose to be same in Japanese.
 
206
  - 3 letters when you enter your initials
 
207
  - "CREDIT" is displayed
 
208
 
 
209
4a) 'nibbler'
 
210
 
 
211
  - "Lives settings" : 3, 4, 5 or 6 (table at 0x4edf)
 
212
  - Bonus life every 4 levels
 
213
  - Simplified instructions
 
214
  - DSW bit 2 determines what happens when the snake touches a corner (code at 0x3c91) :
 
215
      * bit 2 = 0 : pause for 13 frames
 
216
      * bit 2 = 1 : no pause
 
217
 
 
218
4b) 'nibblera'
 
219
 
 
220
  - "Lives settings" : 3, 4, 5 or 6 (table at 0x5bf0)
 
221
  - Bonus life every 4 levels
 
222
  - Detailed instructions
 
223
  - DSW bit 2 is no more tested when the snake touches a corner (code at 0x3b3c);
 
224
    this means that the snake ALWAYS pauses for 13 frames.
 
225
    However, there is extra code where it is tested to determine difficulty
 
226
    (code at 0x31b4 and 0x32f5 - tables at 0x3391 and 0x33b2)
 
227
 
 
228
4c) 'nibblerb'
 
229
 
 
230
  - code based on 'nibblera'
 
231
  - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7)
 
232
  - Bonus life every 4 levels
 
233
  - Detailed instructions
 
234
  - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner
 
235
    and DSW bit 2 determines difficulty as in 'nibblera'
 
236
    (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae)
 
237
 
 
238
4d) 'nibblero'
 
239
 
 
240
  - code is the same as 'nibblerb' (same routines, same code and tables addresses)
 
241
  - "Lives settings" : 2, 3, 4 or 5 (table at 0x5be7)
 
242
  - Bonus life every 8 levels
 
243
  - Detailed instructions
 
244
  - The snake ALWAYS pauses for 13 frames (code at 0x3b38) when it touches a corner
 
245
    and DSW bit 2 determines difficulty as in 'nibblera'
 
246
    (code at 0x31b0 and 0x32f1 - tables at 0x338d and 0x33ae)
 
247
  - The game is harder than 'nibblerb' because the tables at 0x338d and 0x33ae
 
248
    have higher values; so the snake goes faster and grows longer.
 
249
 
 
250
***************************************************************************/
 
251
 
 
252
/*
 
253
 
 
254
    TODO:
 
255
 
 
256
    - sasuke/satansat/vanguard discrete sound
 
257
    - vanguard/fantasy speech (hd38880/hd38882 emulation)
 
258
    - music freq (Satan of Saturn and clone)
 
259
    - correct music waveform/volume control
 
260
    - correct ROM names
 
261
    - fantasy is German? (the continue text is in German)
 
262
 
 
263
*/
 
264
 
 
265
#include "driver.h"
 
266
#include "deprecat.h"
 
267
#include "cpu/m6502/m6502.h"
 
268
#include "video/mc6845.h"
 
269
#include "sound/sn76477.h"
 
270
#include "sound/samples.h"
 
271
#include "snk6502.h"
 
272
 
 
273
 
 
274
#define MASTER_CLOCK    XTAL_11_289MHz
 
275
 
 
276
/* Change to 1 to allow fake debug buttons */
 
277
#define NIBBLER_HACK    0
 
278
 
 
279
 
 
280
#ifndef M_LN2
 
281
#define M_LN2           0.69314718055994530942
 
282
#endif
 
283
 
 
284
 
 
285
/* binary counter (1.4MHz update) */
 
286
static UINT8 sasuke_counter;
 
287
static emu_timer *sasuke_timer;
 
288
 
 
289
static TIMER_CALLBACK( sasuke_update_counter )
 
290
{
 
291
        sasuke_counter += 0x10;
 
292
}
 
293
 
 
294
static void sasuke_start_counter(running_machine *machine)
 
295
{
 
296
        sasuke_counter = 0;
 
297
 
 
298
        sasuke_timer = timer_alloc(machine, sasuke_update_counter, NULL);
 
299
        timer_adjust_periodic(sasuke_timer, attotime_zero, 0, ATTOTIME_IN_HZ(MASTER_CLOCK / 8));        // 1.4 MHz
 
300
}
 
301
 
 
302
 
 
303
/*************************************
 
304
 *
 
305
 *  Custom input ports
 
306
 *
 
307
 *************************************/
 
308
 
 
309
static CUSTOM_INPUT( snk6502_music0_r )
 
310
{
 
311
        return (snk6502_music0_playing() ? 0x01 : 0x00);
 
312
}
 
313
 
 
314
static CUSTOM_INPUT( sasuke_count_r )
 
315
{
 
316
        return (sasuke_counter >> 4);
 
317
}
 
318
 
 
319
 
 
320
/*************************************
 
321
 *
 
322
 *  Memory maps
 
323
 *
 
324
 *************************************/
 
325
 
 
326
static ADDRESS_MAP_START( sasuke_map, ADDRESS_SPACE_PROGRAM, 8 )
 
327
        AM_RANGE(0x0000, 0x03ff) AM_RAM
 
328
        AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE(&snk6502_videoram2)
 
329
        AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE(&videoram)
 
330
        AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(snk6502_colorram_w) AM_BASE(&colorram)
 
331
        AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(snk6502_charram_w) AM_BASE(&snk6502_charram)
 
332
        AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_address_w)
 
333
        AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_register_w)
 
334
        AM_RANGE(0x4000, 0x8fff) AM_ROM
 
335
        AM_RANGE(0xb000, 0xb001) AM_WRITE(sasuke_sound_w)
 
336
        AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w)      /* flip screen & irq enable */
 
337
        AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w)
 
338
        AM_RANGE(0xb004, 0xb004) AM_READ_PORT("IN0")
 
339
        AM_RANGE(0xb005, 0xb005) AM_READ_PORT("IN1")
 
340
        AM_RANGE(0xb006, 0xb006) AM_READ_PORT("DSW")
 
341
        AM_RANGE(0xb007, 0xb007) AM_READ_PORT("IN2")
 
342
        AM_RANGE(0xf800, 0xffff) AM_ROM
 
343
ADDRESS_MAP_END
 
344
 
 
345
static ADDRESS_MAP_START( satansat_map, ADDRESS_SPACE_PROGRAM, 8 )
 
346
        AM_RANGE(0x0000, 0x03ff) AM_RAM
 
347
        AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE(&snk6502_videoram2)
 
348
        AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE(&videoram)
 
349
        AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(snk6502_colorram_w) AM_BASE(&colorram)
 
350
        AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(snk6502_charram_w) AM_BASE(&snk6502_charram)
 
351
        AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_address_w)
 
352
        AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_register_w)
 
353
        AM_RANGE(0x4000, 0x97ff) AM_ROM
 
354
        AM_RANGE(0xb000, 0xb001) AM_WRITE(satansat_sound_w)
 
355
        AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w)      /* flip screen & irq enable */
 
356
        AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w)
 
357
        AM_RANGE(0xb004, 0xb004) AM_READ_PORT("IN0")
 
358
        AM_RANGE(0xb005, 0xb005) AM_READ_PORT("IN1")
 
359
        AM_RANGE(0xb006, 0xb006) AM_READ_PORT("DSW")
 
360
        AM_RANGE(0xb007, 0xb007) AM_READ_PORT("IN2")
 
361
        AM_RANGE(0xf800, 0xffff) AM_ROM
 
362
ADDRESS_MAP_END
 
363
 
 
364
static ADDRESS_MAP_START( vanguard_map, ADDRESS_SPACE_PROGRAM, 8 )
 
365
        AM_RANGE(0x0000, 0x03ff) AM_RAM
 
366
        AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE(&snk6502_videoram2)
 
367
        AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE(&videoram)
 
368
        AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(snk6502_colorram_w) AM_BASE(&colorram)
 
369
        AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(snk6502_charram_w) AM_BASE(&snk6502_charram)
 
370
        AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("crtc", mc6845_address_w)
 
371
        AM_RANGE(0x3001, 0x3001) AM_DEVWRITE("crtc", mc6845_register_w)
 
372
        AM_RANGE(0x3100, 0x3102) AM_WRITE(vanguard_sound_w)
 
373
        AM_RANGE(0x3103, 0x3103) AM_WRITE(snk6502_flipscreen_w)
 
374
        AM_RANGE(0x3104, 0x3104) AM_READ_PORT("IN0")
 
375
        AM_RANGE(0x3105, 0x3105) AM_READ_PORT("IN1")
 
376
        AM_RANGE(0x3106, 0x3106) AM_READ_PORT("DSW")
 
377
        AM_RANGE(0x3107, 0x3107) AM_READ_PORT("IN2")
 
378
        AM_RANGE(0x3200, 0x3200) AM_WRITE(snk6502_scrollx_w)
 
379
        AM_RANGE(0x3300, 0x3300) AM_WRITE(snk6502_scrolly_w)
 
380
        AM_RANGE(0x3400, 0x3400) AM_WRITE(vanguard_speech_w)    // speech
 
381
        AM_RANGE(0x4000, 0xbfff) AM_ROM
 
382
        AM_RANGE(0xf000, 0xffff) AM_ROM /* for the reset / interrupt vectors */
 
383
ADDRESS_MAP_END
 
384
 
 
385
static ADDRESS_MAP_START( fantasy_map, ADDRESS_SPACE_PROGRAM, 8 )
 
386
        AM_RANGE(0x0000, 0x03ff) AM_RAM
 
387
        AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE(&snk6502_videoram2)
 
388
        AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE(&videoram)
 
389
        AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(snk6502_colorram_w) AM_BASE(&colorram)
 
390
        AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(snk6502_charram_w) AM_BASE(&snk6502_charram)
 
391
        AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("crtc", mc6845_address_w)
 
392
        AM_RANGE(0x2001, 0x2001) AM_DEVWRITE("crtc", mc6845_register_w)
 
393
        AM_RANGE(0x2100, 0x2103) AM_WRITE(fantasy_sound_w)
 
394
        AM_RANGE(0x2104, 0x2104) AM_READ_PORT("IN0")
 
395
        AM_RANGE(0x2105, 0x2105) AM_READ_PORT("IN1")
 
396
        AM_RANGE(0x2106, 0x2106) AM_READ_PORT("DSW")
 
397
        AM_RANGE(0x2107, 0x2107) AM_READ_PORT("IN2")
 
398
        AM_RANGE(0x2200, 0x2200) AM_WRITE(snk6502_scrollx_w)
 
399
        AM_RANGE(0x2300, 0x2300) AM_WRITE(snk6502_scrolly_w)
 
400
        AM_RANGE(0x2400, 0x2400) AM_WRITE(fantasy_speech_w)     // speech
 
401
        AM_RANGE(0x3000, 0xbfff) AM_ROM
 
402
        AM_RANGE(0xf000, 0xffff) AM_ROM
 
403
ADDRESS_MAP_END
 
404
 
 
405
static ADDRESS_MAP_START( pballoon_map, ADDRESS_SPACE_PROGRAM, 8 )
 
406
        AM_RANGE(0x0000, 0x03ff) AM_RAM
 
407
        AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE(&snk6502_videoram2)
 
408
        AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE(&videoram)
 
409
        AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(snk6502_colorram_w) AM_BASE(&colorram)
 
410
        AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(snk6502_charram_w) AM_BASE(&snk6502_charram)
 
411
        AM_RANGE(0x3000, 0x9fff) AM_ROM
 
412
        AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("crtc", mc6845_address_w)
 
413
        AM_RANGE(0xb001, 0xb001) AM_DEVWRITE("crtc", mc6845_register_w)
 
414
        AM_RANGE(0xb100, 0xb103) AM_WRITE(fantasy_sound_w)
 
415
        AM_RANGE(0xb104, 0xb104) AM_READ_PORT("IN0")
 
416
        AM_RANGE(0xb105, 0xb105) AM_READ_PORT("IN1")
 
417
        AM_RANGE(0xb106, 0xb106) AM_READ_PORT("DSW")
 
418
        AM_RANGE(0xb107, 0xb107) AM_READ_PORT("IN2")
 
419
        AM_RANGE(0xb200, 0xb200) AM_WRITE(snk6502_scrollx_w)
 
420
        AM_RANGE(0xb300, 0xb300) AM_WRITE(snk6502_scrolly_w)
 
421
        AM_RANGE(0xf000, 0xffff) AM_ROM
 
422
ADDRESS_MAP_END
 
423
 
 
424
 
 
425
/*************************************
 
426
 *
 
427
 *  Port definitions
 
428
 *
 
429
 *************************************/
 
430
 
 
431
static INPUT_PORTS_START( snk6502_generic_joy8way )
 
432
        PORT_START("IN0")
 
433
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
434
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
435
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
436
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
437
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY
 
438
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY
 
439
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
 
440
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
 
441
 
 
442
        PORT_START("IN1")
 
443
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
444
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
445
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
446
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
447
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
 
448
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
 
449
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
 
450
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
 
451
 
 
452
        PORT_START("IN2")
 
453
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
 
454
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
 
455
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
456
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
457
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
458
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
459
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
 
460
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
 
461
 
 
462
        PORT_START("DSW")
 
463
        PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1")
 
464
        PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
 
465
        PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
 
466
        PORT_DIPNAME( 0x0e, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!3,!4")
 
467
        PORT_DIPSETTING (   0x02, DEF_STR( 2C_1C ) )
 
468
        PORT_DIPSETTING (   0x00, DEF_STR( 1C_1C ) )
 
469
        PORT_DIPSETTING (   0x08, DEF_STR( 1C_2C ) )
 
470
        PORT_DIPSETTING (   0x04, DEF_STR( 1C_3C ) )
 
471
        PORT_DIPSETTING (   0x0c, DEF_STR( 1C_6C ) )
 
472
/*  PORT_DIPSETTING (   0x06, DEF_STR( 1C_1C ) ) */
 
473
/*  PORT_DIPSETTING (   0x0a, DEF_STR( 1C_1C ) ) */
 
474
/*  PORT_DIPSETTING (   0x0e, DEF_STR( 1C_1C ) ) */
 
475
        PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6")
 
476
        PORT_DIPSETTING(    0x00, "3" )
 
477
        PORT_DIPSETTING(    0x10, "4" )
 
478
        PORT_DIPSETTING(    0x20, "5" )
 
479
/*  PORT_DIPSETTING(    0x30, "3" ) */
 
480
        PORT_DIPNAME( 0x40, 0x00, "Coinage Bonus" ) PORT_DIPLOCATION("SW1:!7")      /* see notes */
 
481
        PORT_DIPSETTING (   0x40, DEF_STR( 2C_1C ) )
 
482
        PORT_DIPSETTING (   0x00, DEF_STR( 1C_1C ) )
 
483
        PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW1:!8" )
 
484
INPUT_PORTS_END
 
485
 
 
486
static INPUT_PORTS_START( satansat )
 
487
        PORT_START("IN0")
 
488
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
 
489
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
 
490
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
 
491
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
 
492
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
 
493
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
 
494
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
 
495
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
 
496
 
 
497
        PORT_START("IN1")
 
498
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
 
499
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
 
500
        PORT_BIT( 0x7c, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
501
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk6502_music0_r, NULL)     /* music0 playing */
 
502
 
 
503
        PORT_START("IN2")
 
504
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
 
505
        PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                         /* NC */
 
506
        PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(sasuke_count_r, NULL)       /* connected to a binary counter */
 
507
 
 
508
        PORT_START("DSW")
 
509
        PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!1")
 
510
        PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
 
511
        PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
 
512
        PORT_DIPNAME( 0x0a, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2,!4")
 
513
        PORT_DIPSETTING (   0x08, DEF_STR( 2C_1C ) )
 
514
        PORT_DIPSETTING (   0x00, DEF_STR( 1C_1C ) )
 
515
        PORT_DIPSETTING (   0x02, DEF_STR( 1C_2C ) )
 
516
/*  PORT_DIPSETTING (   0x0a, DEF_STR( 2C_1C ) ) */
 
517
        PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!3")
 
518
        PORT_DIPSETTING (   0x04, "5000" )
 
519
        PORT_DIPSETTING (   0x00, "10000" )
 
520
        PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!5,!6") /* manual says 4 is the default value */
 
521
        PORT_DIPSETTING (   0x00, "3" )
 
522
        PORT_DIPSETTING (   0x10, "4" )
 
523
        PORT_DIPSETTING (   0x20, "5" )
 
524
/*  PORT_DIPSETTING(    0x30, "3" ) */
 
525
        PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW1:!7" )
 
526
        PORT_DIPNAME( 0x80, 0x00, "RAM Test" ) PORT_DIPLOCATION("SW1:!8") /* unused according to manual */
 
527
        PORT_DIPSETTING (   0x00, DEF_STR( Off ) )
 
528
        PORT_DIPSETTING (   0x80, DEF_STR( On ) )
 
529
INPUT_PORTS_END
 
530
 
 
531
/* Derived from 'satansat'. Might not reflect the actual hardware. Dip Swicthes verified from game code though. */
 
532
static INPUT_PORTS_START( sasuke )
 
533
        PORT_INCLUDE(satansat)
 
534
 
 
535
        PORT_MODIFY("IN0")
 
536
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
 
537
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
 
538
 
 
539
        PORT_MODIFY("IN1")
 
540
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
541
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
 
542
 
 
543
        PORT_MODIFY("DSW")
 
544
        PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!2")
 
545
        PORT_DIPSETTING (   0x00, DEF_STR( 1C_1C ) )
 
546
        PORT_DIPSETTING (   0x02, DEF_STR( 1C_2C ) )
 
547
        PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_HIGH, "SW1:!4" )
 
548
INPUT_PORTS_END
 
549
 
 
550
static INPUT_PORTS_START( vanguard )
 
551
        PORT_INCLUDE(snk6502_generic_joy8way)
 
552
 
 
553
        PORT_MODIFY("IN0")
 
554
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 )                /* fire down */
 
555
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 )                /* fire up */
 
556
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )                /* fire right */
 
557
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )                /* fire left */
 
558
 
 
559
        PORT_MODIFY("IN1")
 
560
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL  /* fire down */
 
561
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL  /* fire up */
 
562
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL  /* fire right */
 
563
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL  /* fire left */
 
564
 
 
565
        PORT_MODIFY("IN2")
 
566
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(snk6502_music0_r, NULL)     /* music0 playing */
 
567
INPUT_PORTS_END
 
568
 
 
569
static INPUT_PORTS_START( fantasy )
 
570
        PORT_INCLUDE(snk6502_generic_joy8way)
 
571
INPUT_PORTS_END
 
572
 
 
573
static INPUT_PORTS_START( fantasyu )
 
574
        PORT_INCLUDE(fantasy)
 
575
 
 
576
        PORT_MODIFY("DSW")
 
577
        PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:!8")
 
578
        PORT_DIPSETTING(    0x80, DEF_STR( No ) )
 
579
        PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )              /* 1st pattern only */
 
580
INPUT_PORTS_END
 
581
 
 
582
static INPUT_PORTS_START( pballoon )
 
583
        PORT_INCLUDE(snk6502_generic_joy8way)
 
584
 
 
585
        PORT_MODIFY("IN0")
 
586
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
 
587
 
 
588
        PORT_MODIFY("IN1")
 
589
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
 
590
 
 
591
        PORT_MODIFY("DSW")
 
592
        PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:!8")  /* code at 0x6c83 */
 
593
        PORT_DIPSETTING(    0x80, DEF_STR( English ) )
 
594
        PORT_DIPSETTING(    0x00, DEF_STR( Japanese ) )
 
595
INPUT_PORTS_END
 
596
 
 
597
static INPUT_PORTS_START( nibbler )
 
598
        PORT_INCLUDE(snk6502_generic_joy8way)
 
599
 
 
600
        /* There are no buttons on a real "Nibbler" cabinet, but I guess that the game was tested
 
601
       with a "Vanguard" cabinet so they have been mapped with debug features. */
 
602
#if NIBBLER_HACK
 
603
        PORT_MODIFY("IN0")
 
604
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 0") PORT_CODE(KEYCODE_Z) // slow down
 
605
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 1") PORT_CODE(KEYCODE_X)
 
606
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 2") PORT_CODE(KEYCODE_C)
 
607
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 3") PORT_CODE(KEYCODE_V)
 
608
 
 
609
        PORT_MODIFY("IN1")
 
610
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 4") PORT_CODE(KEYCODE_B) // pause
 
611
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 5") PORT_CODE(KEYCODE_N) // unpause
 
612
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 6") PORT_CODE(KEYCODE_M) // end game
 
613
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 7") PORT_CODE(KEYCODE_K)
 
614
#endif
 
615
 
 
616
        PORT_MODIFY("DSW")
 
617
        PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2")
 
618
        PORT_DIPSETTING(    0x00, "3" )
 
619
        PORT_DIPSETTING(    0x01, "4" )
 
620
        PORT_DIPSETTING(    0x02, "5" )
 
621
        PORT_DIPSETTING(    0x03, "6" )
 
622
        PORT_DIPNAME( 0x04, 0x00, "Pause at Corners" ) PORT_DIPLOCATION("SW1:!3")
 
623
        PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
 
624
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
625
        PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!4")
 
626
        PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
 
627
        PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
 
628
        PORT_DIPNAME( 0x10, 0x00, DEF_STR( Service_Mode ) ) PORT_DIPLOCATION("SW1:!5")
 
629
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
 
630
        PORT_DIPSETTING(    0x10, DEF_STR( On ) )
 
631
        PORT_DIPNAME( 0x20, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:!6")
 
632
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
 
633
        PORT_DIPSETTING(    0x20, DEF_STR( On ) )
 
634
        PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!7,!8")
 
635
        PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) )
 
636
        PORT_DIPSETTING(    0xc0, "2 Coins/1 Credit 4/3" )
 
637
        PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
 
638
        PORT_DIPSETTING(    0x80, "1 Coin/1 Credit 2/3" )
 
639
INPUT_PORTS_END
 
640
 
 
641
static INPUT_PORTS_START( nibblera )
 
642
        PORT_INCLUDE(nibbler)
 
643
 
 
644
        PORT_MODIFY("DSW")
 
645
        PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!3")
 
646
        PORT_DIPSETTING(    0x00, DEF_STR( Easy ) )
 
647
        PORT_DIPSETTING(    0x04, DEF_STR( Hard ) )
 
648
INPUT_PORTS_END
 
649
 
 
650
static INPUT_PORTS_START( nibblerb )
 
651
        PORT_INCLUDE(nibblera)
 
652
 
 
653
        PORT_MODIFY("DSW")
 
654
        PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!1,!2")
 
655
        PORT_DIPSETTING(    0x00, "2" )
 
656
        PORT_DIPSETTING(    0x01, "3" )
 
657
        PORT_DIPSETTING(    0x02, "4" )
 
658
        PORT_DIPSETTING(    0x03, "5" )
 
659
INPUT_PORTS_END
 
660
 
 
661
 
 
662
/*************************************
 
663
 *
 
664
 *  Graphics layouts
 
665
 *
 
666
 *************************************/
 
667
 
 
668
static const gfx_layout swapcharlayout =
 
669
{
 
670
        8,8,    /* 8*8 characters */
 
671
        256,    /* 256 characters */
 
672
        2,      /* 2 bits per pixel */
 
673
        { 256*8*8, 0 }, /* the two bitplanes are separated */
 
674
        { 0, 1, 2, 3, 4, 5, 6, 7 },
 
675
        { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
 
676
        8*8     /* every char takes 8 consecutive bytes */
 
677
};
 
678
 
 
679
static const gfx_layout charlayout =
 
680
{
 
681
        8,8,    /* 8*8 characters */
 
682
        RGN_FRAC(1,2),
 
683
        2,      /* 2 bits per pixel */
 
684
        { 0, RGN_FRAC(1,2) }, /* the two bitplanes are separated */
 
685
        { 0, 1, 2, 3, 4, 5, 6, 7 },
 
686
        { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
 
687
        8*8     /* every char takes 8 consecutive bytes */
 
688
};
 
689
 
 
690
static const gfx_layout charlayout_memory =
 
691
{
 
692
        8,8,    /* 8*8 characters */
 
693
        256,    /* 256 characters */
 
694
        2,      /* 2 bits per pixel */
 
695
        { 0, 256*8*8 }, /* the two bitplanes are separated */
 
696
        { 0, 1, 2, 3, 4, 5, 6, 7 },
 
697
        { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
 
698
        8*8     /* every char takes 8 consecutive bytes */
 
699
};
 
700
 
 
701
 
 
702
static GFXDECODE_START( sasuke )
 
703
        GFXDECODE_ENTRY( NULL,           0x1000, swapcharlayout,      0, 4 )    /* the game dynamically modifies this */
 
704
        GFXDECODE_ENTRY( "gfx1", 0x0000, swapcharlayout,    4*4, 4 )
 
705
GFXDECODE_END
 
706
 
 
707
static GFXDECODE_START( satansat )
 
708
        GFXDECODE_ENTRY( NULL,           0x1000, charlayout_memory,   0, 4 )    /* the game dynamically modifies this */
 
709
        GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout,        4*4, 4 )
 
710
GFXDECODE_END
 
711
 
 
712
static GFXDECODE_START( vanguard )
 
713
        GFXDECODE_ENTRY( NULL,           0x1000, charlayout_memory,   0, 8 )    /* the game dynamically modifies this */
 
714
        GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout,        8*4, 8 )
 
715
GFXDECODE_END
 
716
 
 
717
 
 
718
/*************************************
 
719
 *
 
720
 *  Interrupt Generators
 
721
 *
 
722
 *************************************/
 
723
 
 
724
static INTERRUPT_GEN( satansat_interrupt )
 
725
{
 
726
        if (cpu_getiloops(device) != 0)
 
727
        {
 
728
                UINT8 val = input_port_read(device->machine, "IN2");
 
729
 
 
730
                coin_counter_w(0, val & 1);
 
731
 
 
732
                /* user asks to insert coin: generate a NMI interrupt. */
 
733
                if (val & 0x01)
 
734
                        cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
 
735
        }
 
736
        else
 
737
                cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE);  /* one IRQ per frame */
 
738
}
 
739
 
 
740
static INTERRUPT_GEN( snk6502_interrupt )
 
741
{
 
742
        if (cpu_getiloops(device) != 0)
 
743
        {
 
744
                UINT8 val = input_port_read(device->machine, "IN2");
 
745
 
 
746
                coin_counter_w(0, val & 1);
 
747
                coin_counter_w(1, val & 2);
 
748
 
 
749
                /* user asks to insert coin: generate a NMI interrupt. */
 
750
                if (val & 0x03)
 
751
                        cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
 
752
        }
 
753
        else
 
754
                cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE);  /* one IRQ per frame */
 
755
}
 
756
 
 
757
 
 
758
/*************************************
 
759
 *
 
760
 *  6845 CRTC interface
 
761
 *
 
762
 *************************************/
 
763
 
 
764
static const mc6845_interface mc6845_intf =
 
765
{
 
766
        "screen",       /* screen we are acting on */
 
767
        8,                      /* number of pixels per video memory address */
 
768
        NULL,           /* before pixel update callback */
 
769
        NULL,           /* row update callback */
 
770
        NULL,           /* after pixel update callback */
 
771
        DEVCB_NULL,     /* callback for display state changes */
 
772
        DEVCB_NULL,     /* callback for cursor state changes */
 
773
        DEVCB_NULL,     /* HSYNC callback */
 
774
        DEVCB_NULL,     /* VSYNC callback */
 
775
        NULL            /* update address callback */
 
776
};
 
777
 
 
778
 
 
779
/*************************************
 
780
 *
 
781
 *  Machine initialisation
 
782
 *
 
783
 *************************************/
 
784
 
 
785
static MACHINE_RESET( sasuke )
 
786
{
 
787
        //snk6502_set_music_clock(M_LN2 * (RES_K(1) + RES_K(10) * 2) * CAP_U(1));
 
788
        // adjusted
 
789
        snk6502_set_music_clock(1 / 72.1);
 
790
 
 
791
        // adjusted
 
792
        snk6502_set_music_freq(38000);
 
793
 
 
794
        sasuke_start_counter(machine);
 
795
}
 
796
 
 
797
static MACHINE_RESET( satansat )
 
798
{
 
799
        // same as sasuke
 
800
        snk6502_set_music_freq(38000);
 
801
 
 
802
        sasuke_start_counter(machine);
 
803
}
 
804
 
 
805
static MACHINE_RESET( vanguard )
 
806
{
 
807
        // 41.6 Hz update (measured)
 
808
        snk6502_set_music_clock(1 / 41.6);
 
809
}
 
810
 
 
811
static MACHINE_RESET( pballoon )
 
812
{
 
813
        // 40.3 Hz update (measured)
 
814
        snk6502_set_music_clock(1 / 40.3);
 
815
}
 
816
 
 
817
 
 
818
/*************************************
 
819
 *
 
820
 *  Machine drivers
 
821
 *
 
822
 *************************************/
 
823
 
 
824
static MACHINE_DRIVER_START( sasuke )
 
825
        // basic machine hardware
 
826
        MDRV_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) // 700 kHz
 
827
        MDRV_CPU_PROGRAM_MAP(sasuke_map)
 
828
        MDRV_CPU_VBLANK_INT_HACK(satansat_interrupt, 2)
 
829
 
 
830
        MDRV_MACHINE_RESET(sasuke)
 
831
 
 
832
        // video hardware
 
833
 
 
834
        MDRV_SCREEN_ADD("screen", RASTER)
 
835
        MDRV_SCREEN_REFRESH_RATE((MASTER_CLOCK / 16) / (45 * 32 * 8))
 
836
        MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
 
837
        MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
 
838
        MDRV_SCREEN_SIZE(32*8, 32*8)
 
839
        MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
 
840
 
 
841
        MDRV_GFXDECODE(sasuke)
 
842
        MDRV_PALETTE_LENGTH(32)
 
843
 
 
844
        MDRV_PALETTE_INIT(satansat)
 
845
        MDRV_VIDEO_START(satansat)
 
846
        MDRV_VIDEO_UPDATE(snk6502)
 
847
 
 
848
        MDRV_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
 
849
 
 
850
        // sound hardware
 
851
        MDRV_SPEAKER_STANDARD_MONO("mono")
 
852
 
 
853
        MDRV_SOUND_ADD("snk6502", snk6502, 0)
 
854
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
855
 
 
856
        MDRV_SOUND_ADD("samples", SAMPLES, 0)
 
857
        MDRV_SOUND_CONFIG(sasuke_samples_interface)
 
858
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.12)
 
859
 
 
860
        MDRV_SOUND_ADD("sn76477.1", SN76477, 0)
 
861
        MDRV_SOUND_CONFIG(sasuke_sn76477_intf_1)
 
862
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
863
 
 
864
        MDRV_SOUND_ADD("sn76477.2", SN76477, 0)
 
865
        MDRV_SOUND_CONFIG(sasuke_sn76477_intf_2)
 
866
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
867
 
 
868
        MDRV_SOUND_ADD("sn76477.3", SN76477, 0)
 
869
        MDRV_SOUND_CONFIG(sasuke_sn76477_intf_3)
 
870
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
871
MACHINE_DRIVER_END
 
872
 
 
873
static MACHINE_DRIVER_START( satansat )
 
874
        // basic machine hardware
 
875
        MDRV_IMPORT_FROM(sasuke)
 
876
        MDRV_CPU_MODIFY("maincpu")
 
877
        MDRV_CPU_PROGRAM_MAP(satansat_map)
 
878
 
 
879
        MDRV_MACHINE_RESET(satansat)
 
880
 
 
881
        // video hardware
 
882
        MDRV_GFXDECODE(satansat)
 
883
 
 
884
        // sound hardware
 
885
        MDRV_SOUND_REPLACE("samples", SAMPLES, 0)
 
886
        MDRV_SOUND_CONFIG(vanguard_samples_interface)
 
887
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
 
888
 
 
889
        MDRV_SOUND_REPLACE("sn76477.1", SN76477, 0)
 
890
        MDRV_SOUND_CONFIG(satansat_sn76477_intf)
 
891
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
 
892
 
 
893
        MDRV_DEVICE_REMOVE("sn76477.2")
 
894
        MDRV_DEVICE_REMOVE("sn76477.3")
 
895
MACHINE_DRIVER_END
 
896
 
 
897
static MACHINE_DRIVER_START( vanguard )
 
898
        // basic machine hardware
 
899
        //MDRV_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 8)   // 1.4 MHz
 
900
        MDRV_CPU_ADD("maincpu", M6502, 930000)          // adjusted
 
901
        MDRV_CPU_PROGRAM_MAP(vanguard_map)
 
902
        MDRV_CPU_VBLANK_INT_HACK(snk6502_interrupt, 2)
 
903
 
 
904
        MDRV_MACHINE_RESET(vanguard)
 
905
 
 
906
        // video hardware
 
907
 
 
908
        MDRV_SCREEN_ADD("screen", RASTER)
 
909
        MDRV_SCREEN_REFRESH_RATE((MASTER_CLOCK / 16) / (45 * 32 * 8))
 
910
        MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
 
911
        MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
 
912
        MDRV_SCREEN_SIZE(32*8, 32*8)
 
913
        MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
 
914
 
 
915
        MDRV_GFXDECODE(vanguard)
 
916
        MDRV_PALETTE_LENGTH(64)
 
917
 
 
918
        MDRV_PALETTE_INIT(snk6502)
 
919
        MDRV_VIDEO_START(snk6502)
 
920
        MDRV_VIDEO_UPDATE(snk6502)
 
921
 
 
922
        MDRV_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
 
923
 
 
924
        // sound hardware
 
925
        MDRV_SPEAKER_STANDARD_MONO("mono")
 
926
 
 
927
        MDRV_SOUND_ADD("snk6502", snk6502, 0)
 
928
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
929
 
 
930
        MDRV_SOUND_ADD("samples", SAMPLES, 0)
 
931
        MDRV_SOUND_CONFIG(vanguard_samples_interface)
 
932
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
 
933
 
 
934
        MDRV_SOUND_ADD("sn76477.1", SN76477, 0)
 
935
        MDRV_SOUND_CONFIG(vanguard_sn76477_intf_1)
 
936
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
 
937
 
 
938
        MDRV_SOUND_ADD("sn76477.2", SN76477, 0)
 
939
        MDRV_SOUND_CONFIG(vanguard_sn76477_intf_2)
 
940
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
 
941
MACHINE_DRIVER_END
 
942
 
 
943
static MACHINE_DRIVER_START( fantasy )
 
944
        // basic machine hardware
 
945
        MDRV_IMPORT_FROM(vanguard)
 
946
        MDRV_CPU_MODIFY("maincpu")
 
947
        MDRV_CPU_PROGRAM_MAP(fantasy_map)
 
948
 
 
949
        // sound hardware
 
950
        MDRV_SOUND_REPLACE("samples", SAMPLES, 0)
 
951
        MDRV_SOUND_CONFIG(fantasy_samples_interface)
 
952
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
 
953
 
 
954
        MDRV_SOUND_REPLACE("sn76477.1", SN76477, 0)
 
955
        MDRV_SOUND_CONFIG(fantasy_sn76477_intf)
 
956
        MDRV_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
 
957
 
 
958
        MDRV_SOUND_ADD("discrete", DISCRETE, 0)
 
959
        MDRV_SOUND_CONFIG_DISCRETE(fantasy)
 
960
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
 
961
 
 
962
        MDRV_DEVICE_REMOVE("sn76477.2")
 
963
MACHINE_DRIVER_END
 
964
 
 
965
static MACHINE_DRIVER_START( nibbler )
 
966
        // basic machine hardware
 
967
        MDRV_IMPORT_FROM(fantasy)
 
968
 
 
969
        // sound hardware
 
970
        MDRV_DEVICE_REMOVE("samples")
 
971
MACHINE_DRIVER_END
 
972
 
 
973
static MACHINE_DRIVER_START( pballoon )
 
974
        // basic machine hardware
 
975
        MDRV_IMPORT_FROM(nibbler)
 
976
        MDRV_CPU_MODIFY("maincpu")
 
977
        MDRV_CPU_PROGRAM_MAP(pballoon_map)
 
978
 
 
979
        MDRV_MACHINE_RESET(pballoon)
 
980
 
 
981
        // video hardware
 
982
        MDRV_SCREEN_MODIFY("screen")
 
983
        MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
 
984
MACHINE_DRIVER_END
 
985
 
 
986
 
 
987
/*************************************
 
988
 *
 
989
 *  ROM definitions
 
990
 *
 
991
 *************************************/
 
992
 
 
993
ROM_START( sasuke )
 
994
        ROM_REGION( 0x10000, "maincpu", 0 )
 
995
        ROM_LOAD( "sc1",          0x4000, 0x0800, CRC(34cbbe03) SHA1(3d643e11370e61dde0c42c7761a856c5cf53d621) )
 
996
        ROM_LOAD( "sc2",          0x4800, 0x0800, CRC(38cc14f0) SHA1(d60df67f2a32c131e8957e225b79618d6262463d) )
 
997
        ROM_LOAD( "sc3",          0x5000, 0x0800, CRC(54c41285) SHA1(5618c2ac745bbde96bfda7f01f7aee7e2b643d7e) )
 
998
        ROM_LOAD( "sc4",          0x5800, 0x0800, CRC(23edafcf) SHA1(bda3bcb506f6e23f422aafd7ca9b95bfb4d1d8e1) )
 
999
        ROM_LOAD( "sc5",          0x6000, 0x0800, CRC(ca410e4f) SHA1(0d09422d01b4359853c173a4cb18c9b5fbc7fe7c) )
 
1000
        ROM_LOAD( "sc6",          0x6800, 0x0800, CRC(80406afb) SHA1(2c4a34a7450fa7258c5e6ead9b1fd6c6b973f081) )
 
1001
        ROM_LOAD( "sc7",          0x7000, 0x0800, CRC(04d0f104) SHA1(73ed501f70d2a9e8994f8392f617450eafef39b3) )
 
1002
        ROM_LOAD( "sc8",          0x7800, 0x0800, CRC(0219104b) SHA1(fd5c43304d59bc34e9ae6ef7576d75cf319d823e) )
 
1003
        ROM_RELOAD(               0xf800, 0x0800 ) /* for the reset/interrupt vectors */
 
1004
        ROM_LOAD( "sc9",          0x8000, 0x0800, CRC(d6ff889a) SHA1(1eea0366205dd0d9bffb5d093f259edc1d51cbe0) )
 
1005
        ROM_LOAD( "sc10",         0x8800, 0x0800, CRC(19df6b9a) SHA1(95e904251c39dcef227a4c125fc573e958ee78b7) )
 
1006
 
 
1007
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1008
        ROM_LOAD( "mcs_c",        0x0000, 0x0800, CRC(aff9743d) SHA1(a968a193ca551d92f79e09d1761dd2ccebc76eee) )
 
1009
        ROM_LOAD( "mcs_d",        0x0800, 0x0800, CRC(9c805120) SHA1(74b83daa3ce3c9f7d96ad872b9134edd6f1bcb8a) )
 
1010
 
 
1011
        ROM_REGION( 0x0020, "proms", 0 )
 
1012
        ROM_LOAD( "sasuke.clr",   0x0000, 0x0020, CRC(b70f34c1) SHA1(890cfbb25e14112713ba7900b9cd56554a8bc1ec) )
 
1013
 
 
1014
        ROM_REGION( 0x1000, "snk6502", 0 )  /* sound data for Vanguard-style audio section */
 
1015
        ROM_LOAD( "sc11",         0x0000, 0x0800, CRC(24a0e121) SHA1(e3cde355309de6678026d595955297258f069946) )
 
1016
ROM_END
 
1017
 
 
1018
ROM_START( satansat )
 
1019
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1020
        ROM_LOAD( "ss1",          0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) )
 
1021
        ROM_LOAD( "ss2",          0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) )
 
1022
        ROM_LOAD( "ss3",          0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) )
 
1023
        ROM_LOAD( "ss4",          0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) )
 
1024
        ROM_LOAD( "ss5",          0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) )
 
1025
        ROM_LOAD( "ss6",          0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) )
 
1026
        ROM_LOAD( "zarz128.15",   0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
 
1027
        ROM_LOAD( "zarz129.16",   0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) )
 
1028
        ROM_RELOAD(               0xf800, 0x0800 ) /* for the reset/interrupt vectors */
 
1029
        ROM_LOAD( "zarz130.22",   0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) )
 
1030
        ROM_LOAD( "ss10",         0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) )
 
1031
        ROM_LOAD( "ss11",         0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) )
 
1032
 
 
1033
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1034
        ROM_LOAD( "zarz135.73",   0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
 
1035
        ROM_LOAD( "zarz136.75",   0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
 
1036
 
 
1037
        ROM_REGION( 0x0020, "proms", 0 )
 
1038
        ROM_LOAD( "zarz138.03",   0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
 
1039
 
 
1040
        ROM_REGION( 0x1000, "snk6502", 0 )  /* sound data for Vanguard-style audio section */
 
1041
        ROM_LOAD( "ss12",         0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) )
 
1042
        ROM_LOAD( "zarz134.54",   0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
 
1043
ROM_END
 
1044
 
 
1045
ROM_START( satansata )
 
1046
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1047
        ROM_LOAD( "ic7.bin",   0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) )
 
1048
        ROM_LOAD( "ic8.bin",   0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) )
 
1049
        ROM_LOAD( "ic9.bin",   0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) )
 
1050
        ROM_LOAD( "ic10.bin",  0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) )
 
1051
        ROM_LOAD( "ic13.bin",  0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) )
 
1052
        ROM_LOAD( "ic14.bin",  0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) )
 
1053
        ROM_LOAD( "ic15.bin",  0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
 
1054
        ROM_LOAD( "ic16.bin",  0x7800, 0x0800, CRC(9ec5fe09) SHA1(ab50373b330f21f7f64657e088ba6968a3176be4) ) // different
 
1055
        ROM_RELOAD(            0xf800, 0x0800 ) /* for the reset/interrupt vectors */
 
1056
        ROM_LOAD( "ic22.bin",  0x8000, 0x0800, CRC(21092f1f) SHA1(dd8be669cd7a51ec84e020d0a7fa50708155d084) ) // different
 
1057
        ROM_LOAD( "ic23.bin",   0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) )
 
1058
        ROM_LOAD( "ic24.bin",   0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) )
 
1059
 
 
1060
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1061
        ROM_LOAD( "ic73.bin",   0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
 
1062
        ROM_LOAD( "ic75.bin",   0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
 
1063
 
 
1064
        ROM_REGION( 0x0020, "proms", 0 )
 
1065
        ROM_LOAD( "zarz138.03",   0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
 
1066
 
 
1067
        ROM_REGION( 0x1000, "snk6502", 0 )  /* sound data for Vanguard-style audio section */
 
1068
        ROM_LOAD( "ic53.bin",   0x0000, 0x0800, CRC(8cb95a6b) SHA1(41d3986f1c2876a914b0087127ae99e9a2b41564) ) // different
 
1069
        ROM_LOAD( "ic54.bin",   0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
 
1070
ROM_END
 
1071
 
 
1072
ROM_START( zarzon )
 
1073
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1074
        ROM_LOAD( "zarz122.07",   0x4000, 0x0800, CRC(bdfa67e2) SHA1(0de06cf53ee21b8f14b933b61e6dc706338746c4) )
 
1075
        ROM_LOAD( "zarz123.08",   0x4800, 0x0800, CRC(d034e61e) SHA1(dc802c3d7a9f7e473e323e3272fca406dab6d55d) )
 
1076
        ROM_LOAD( "zarz124.09",   0x5000, 0x0800, CRC(296397ea) SHA1(3a1ad7f3c4453bb20768b3e3ce04cd76873aa0ee) )
 
1077
        ROM_LOAD( "zarz125.10",   0x5800, 0x0800, CRC(26dc5e66) SHA1(07f47f3497bb85640e5e6a89ad7d6579108347fe) )
 
1078
        ROM_LOAD( "zarz126.13",   0x6000, 0x0800, CRC(cee18d7f) SHA1(5a7e60b6be06b3038f2eb81e76fc54cb65d4877b) )
 
1079
        ROM_LOAD( "zarz127.14",   0x6800, 0x0800, CRC(bbd2cc0d) SHA1(1128020b7c0f38f5ff2cc2da0fd2df5ebead4681) )
 
1080
        ROM_LOAD( "zarz128.15",   0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) )
 
1081
        ROM_LOAD( "zarz129.16",   0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) )
 
1082
        ROM_RELOAD(               0xf800, 0x0800 ) /* for the reset/interrupt vectors */
 
1083
        ROM_LOAD( "zarz130.22",   0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) )
 
1084
        ROM_LOAD( "zarz131.23",   0x8800, 0x0800, CRC(7be20678) SHA1(872de953df1f9f1725e14fdfd227ad872a813af8) )
 
1085
        ROM_LOAD( "zarz132.24",   0x9000, 0x0800, CRC(72b2cb76) SHA1(d7a95c908fe2227e2a0820a8e9713b1709c9e5af) )
 
1086
 
 
1087
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1088
        ROM_LOAD( "zarz135.73",   0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) )
 
1089
        ROM_LOAD( "zarz136.75",   0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) )
 
1090
 
 
1091
        ROM_REGION( 0x0020, "proms", 0 )
 
1092
        ROM_LOAD( "zarz138.03",   0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) )
 
1093
 
 
1094
        ROM_REGION( 0x1000, "snk6502", 0 )  /* sound data for Vanguard-style audio section */
 
1095
        ROM_LOAD( "zarz133.53",   0x0000, 0x0800, CRC(b253cf78) SHA1(56a73b22ed2866222c407a3e9b51b8e0c92cf2aa) )
 
1096
        ROM_LOAD( "zarz134.54",   0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) )
 
1097
ROM_END
 
1098
 
 
1099
ROM_START( vanguard )
 
1100
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1101
        ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
 
1102
        ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
 
1103
        ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
 
1104
        ROM_LOAD( "sk4_ic10.bin", 0x7000, 0x1000, CRC(54603274) SHA1(31571a560dbe300417b3ed5b114fa1d9ef742da9) )
 
1105
        ROM_LOAD( "sk4_ic13.bin", 0x8000, 0x1000, CRC(fde157d0) SHA1(3f705fb6a410004f4f86283694e3694e49701af6) )
 
1106
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1107
        ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
 
1108
        ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
 
1109
        ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) )
 
1110
 
 
1111
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1112
        ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
 
1113
        ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
 
1114
 
 
1115
        ROM_REGION( 0x0040, "proms", 0 )
 
1116
        ROM_LOAD( "sk5_ic7.bin",  0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
 
1117
        ROM_LOAD( "sk5_ic6.bin",  0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
 
1118
 
 
1119
        ROM_REGION( 0x1000, "snk6502", 0 )      /* sound ROMs */
 
1120
        ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) )  /* sound ROM 1 */
 
1121
        ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )  /* sound ROM 2 */
 
1122
 
 
1123
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1124
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1125
        ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
 
1126
        ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
 
1127
        ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
 
1128
ROM_END
 
1129
 
 
1130
ROM_START( vanguardc )
 
1131
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1132
        ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
 
1133
        ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
 
1134
        ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
 
1135
        ROM_LOAD( "4",            0x7000, 0x1000, CRC(770f9714) SHA1(4af37fc24e464681a8da6b184be0df32a4078f4f) )
 
1136
        ROM_LOAD( "5",            0x8000, 0x1000, CRC(3445cba6) SHA1(6afe6dad79b53df58b53ef9c5d24bb4d91fa5e8e) )
 
1137
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1138
        ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
 
1139
        ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
 
1140
        ROM_LOAD( "8",            0xb000, 0x1000, CRC(4b825bc8) SHA1(3fa32d9677e2cc3a1ebf52c0b9eed7dbf11201e9) )
 
1141
 
 
1142
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1143
        ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
 
1144
        ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
 
1145
 
 
1146
        ROM_REGION( 0x0040, "proms", 0 )
 
1147
        ROM_LOAD( "sk5_ic7.bin",  0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
 
1148
        ROM_LOAD( "sk5_ic6.bin",  0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
 
1149
 
 
1150
        ROM_REGION( 0x1000, "snk6502", 0 )      /* sound ROMs */
 
1151
        ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) )  /* confirmed, 6/21/05 */
 
1152
        ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )  /* confirmed, 6/21/05 */
 
1153
 
 
1154
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1155
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1156
        ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
 
1157
        ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
 
1158
        ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
 
1159
ROM_END
 
1160
 
 
1161
ROM_START( vanguardj )
 
1162
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1163
        ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) )
 
1164
        ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) )
 
1165
        ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) )
 
1166
        ROM_LOAD( "vgj4ic10.bin", 0x7000, 0x1000, CRC(0a91a5d1) SHA1(bef435e431e31179eb22a4c18ca1dedf6a4a0ab0) )
 
1167
        ROM_LOAD( "vgj5ic13.bin", 0x8000, 0x1000, CRC(06601a40) SHA1(d1efcf75edf3892fe59d63e524f4880ffce67965) )
 
1168
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1169
        ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) )
 
1170
        ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) )
 
1171
        ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) )
 
1172
 
 
1173
        ROM_REGION( 0x1000, "gfx1", 0 )
 
1174
        ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) )
 
1175
        ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) )
 
1176
 
 
1177
        ROM_REGION( 0x0040, "proms", 0 )
 
1178
        ROM_LOAD( "sk5_ic7.bin",  0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */
 
1179
        ROM_LOAD( "sk5_ic6.bin",  0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */
 
1180
 
 
1181
        ROM_REGION( 0x1000, "snk6502", 0 )      /* sound ROMs */
 
1182
        ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) )  /* sound ROM 1 */
 
1183
        ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )  /* sound ROM 2 */
 
1184
 
 
1185
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1186
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1187
        ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) )
 
1188
        ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) )
 
1189
        ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) )
 
1190
ROM_END
 
1191
 
 
1192
ROM_START( fantasyu )
 
1193
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1194
        ROM_LOAD( "ic12.cpu",     0x3000, 0x1000, CRC(22cb2249) SHA1(6c43e3fa9638b6d2e069199968923e470bd5d18b) )
 
1195
        ROM_LOAD( "ic07.cpu",     0x4000, 0x1000, CRC(0e2880b6) SHA1(666d6942864eb7a90178b3b6e2b0eb23aa3c967f) )
 
1196
        ROM_LOAD( "ic08.cpu",     0x5000, 0x1000, CRC(4c331317) SHA1(800850f4e8bcfbbade54eb9e47a53941f8798641) )
 
1197
        ROM_LOAD( "ic09.cpu",     0x6000, 0x1000, CRC(6ac1dbfc) SHA1(b9c7bf8d3b085db0b53646b5639c09f9ced2b1fe) )
 
1198
        ROM_LOAD( "ic10.cpu",     0x7000, 0x1000, CRC(c796a406) SHA1(1b7f5f307a81b481a3e7791128a01d4c1a20c4bf) )
 
1199
        ROM_LOAD( "ic14.cpu",     0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) )
 
1200
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1201
        ROM_LOAD( "ic15.cpu",     0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) )
 
1202
        ROM_LOAD( "ic16.cpu",     0xa000, 0x1000, CRC(6c2aeb6e) SHA1(fd0b913a663bf2a5f45fc3d342d7575a9c7dae46) )
 
1203
        ROM_LOAD( "ic17.cpu",     0xb000, 0x1000, CRC(f6aa5de1) SHA1(ca53cf66cc6cdb21a60760102f35a5b0745ce09b) )
 
1204
 
 
1205
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1206
        ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
 
1207
        ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
 
1208
 
 
1209
        ROM_REGION( 0x0040, "proms", 0 )
 
1210
        ROM_LOAD( "fantasy.ic7",  0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
 
1211
        ROM_LOAD( "fantasy.ic6",  0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
 
1212
 
 
1213
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1214
        ROM_LOAD( "fs_b_51.bin",  0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
 
1215
        ROM_LOAD( "fs_a_52.bin",  0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
 
1216
        ROM_LOAD( "fs_c_53.bin",  0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
 
1217
 
 
1218
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1219
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1220
        ROM_LOAD( "fs_d_7.bin",   0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
 
1221
        ROM_LOAD( "fs_e_8.bin",   0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
 
1222
        ROM_LOAD( "fs_f_11.bin",  0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
 
1223
ROM_END
 
1224
 
 
1225
ROM_START( fantasy )
 
1226
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1227
        ROM_LOAD( "5.12",         0x3000, 0x1000, CRC(0968ab50) SHA1(f09d03a171349895c5cb69e684901be63d272b32) )
 
1228
        ROM_LOAD( "1.7",          0x4000, 0x1000, CRC(de83000e) SHA1(ede1dda46406b4d340f1efea3bc85b2227af9e1d) )
 
1229
        ROM_LOAD( "2.8",          0x5000, 0x1000, CRC(90499b5a) SHA1(81a9d93a5655d2ff9504036bc764d8bb81e1470d) )
 
1230
        ROM_LOAD( "3.9",          0x6000, 0x1000, CRC(6fbffeb6) SHA1(b36aeaf095da4957103c8921957ff4be658eddf5) )
 
1231
        ROM_LOAD( "4.10",         0x7000, 0x1000, CRC(02e85884) SHA1(71fa6eb375fc417f92c049ec5118818b9ad48468) )
 
1232
        ROM_LOAD( "ic14.cpu",     0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) )
 
1233
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1234
        ROM_LOAD( "ic15.cpu",     0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) )
 
1235
        ROM_LOAD( "8.16",         0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) )
 
1236
        ROM_LOAD( "9.17",         0xb000, 0x1000, CRC(56a7c8b8) SHA1(6c417644851c7b4b5291d9c5b2c808ff4a1ad048) )
 
1237
 
 
1238
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1239
        ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
 
1240
        ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
 
1241
 
 
1242
        ROM_REGION( 0x0040, "proms", 0 )
 
1243
        ROM_LOAD( "fantasy.ic7",  0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */
 
1244
        ROM_LOAD( "fantasy.ic6",  0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */
 
1245
 
 
1246
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1247
        ROM_LOAD( "fs_b_51.bin",  0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
 
1248
        ROM_LOAD( "fs_a_52.bin",  0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
 
1249
        ROM_LOAD( "fs_c_53.bin",  0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
 
1250
 
 
1251
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1252
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1253
        ROM_LOAD( "fs_d_7.bin",   0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
 
1254
        ROM_LOAD( "fs_e_8.bin",   0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
 
1255
        ROM_LOAD( "fs_f_11.bin",  0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
 
1256
ROM_END
 
1257
 
 
1258
ROM_START( fantasyj )
 
1259
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1260
        ROM_LOAD( "fs5jic12.bin", 0x3000, 0x1000, CRC(dd1eac89) SHA1(d63078d4666e3c6db0c9b3f8b45ef81606ed5a4f) )
 
1261
        ROM_LOAD( "fs1jic7.bin",  0x4000, 0x1000, CRC(7b8115ae) SHA1(6274f937c57ab9cbb7c6283022b81f70dad7c232) )
 
1262
        ROM_LOAD( "fs2jic8.bin",  0x5000, 0x1000, CRC(61531dd1) SHA1(f3bc405bafc8ced6c6fce93ad2ad20ff6aa603e8) )
 
1263
        ROM_LOAD( "fs3jic9.bin",  0x6000, 0x1000, CRC(36a12617) SHA1(dd74abb4cbaeb1a56ee466043997187ebe933612) )
 
1264
        ROM_LOAD( "fs4jic10.bin", 0x7000, 0x1000, CRC(dbf7c347) SHA1(1bb3f924a7e1ec74ef68e237a0f68d62ce78532c) )
 
1265
        ROM_LOAD( "fs6jic14.bin", 0x8000, 0x1000, CRC(bf59a33a) SHA1(bdbdd03199758069b904fdf0455193682c4d457f) )
 
1266
        ROM_RELOAD(               0xf000, 0x1000 )      /* for the reset and interrupt vectors */
 
1267
        ROM_LOAD( "fs7jic15.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) )
 
1268
        ROM_LOAD( "fs8jic16.bin", 0xa000, 0x1000, CRC(ae5bf727) SHA1(3c5eaaba3971f57a5687945a614dd0d6c9e007d6) )
 
1269
        ROM_LOAD( "fs9jic17.bin", 0xb000, 0x1000, CRC(fa6903e2) SHA1(a5b9b7309ecaaeaba76e45610d5ab80415ecbdd0) )
 
1270
 
 
1271
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1272
        ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) )
 
1273
        ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) )
 
1274
 
 
1275
        ROM_REGION( 0x0040, "proms", 0 )
 
1276
        ROM_LOAD( "prom-8.bpr",   0x0000, 0x0020, CRC(1aa9285a) SHA1(d503aa76ca0cf032c7b1c962abc59677c41a2c62) ) /* foreground colors */
 
1277
        ROM_LOAD( "prom-7.bpr",   0x0020, 0x0020, CRC(7a6f7dc3) SHA1(e15d898275d1cd205cc2d28f7dd9df653594039e) ) /* background colors */
 
1278
 
 
1279
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1280
        ROM_LOAD( "fs_b_51.bin",  0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) )
 
1281
        ROM_LOAD( "fs_a_52.bin",  0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) )
 
1282
        ROM_LOAD( "fs_c_53.bin",  0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) )
 
1283
 
 
1284
        ROM_REGION( 0x5800, "speech", 0 )       /* space for the speech ROMs (not supported) */
 
1285
        //ROM_LOAD( "hd38882.bin",  0x0000, 0x4000, NO_DUMP )   /* HD38882 internal ROM */
 
1286
        ROM_LOAD( "fs_d_7.bin",   0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) )
 
1287
        ROM_LOAD( "fs_e_8.bin",   0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) )
 
1288
        ROM_LOAD( "fs_f_11.bin",  0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) )
 
1289
ROM_END
 
1290
 
 
1291
ROM_START( pballoon )
 
1292
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1293
        ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) )
 
1294
        ROM_LOAD( "sk7_ic07.bin", 0x4000, 0x1000, CRC(736e67df) SHA1(a58d9561f62d396ca90b0f69afe6240d809b10bb) )
 
1295
        ROM_LOAD( "sk7_ic08.bin", 0x5000, 0x1000, CRC(7a2032b2) SHA1(79570943468d647cda67d94b20eac1b2d9eb371f) )
 
1296
        ROM_LOAD( "sk7_ic09.bin", 0x6000, 0x1000, CRC(2d63cf3a) SHA1(8934af617229db445f9fd10e4028e1f8df4cfeb1) )
 
1297
        ROM_LOAD( "sk7_ic10.bin", 0x7000, 0x1000, CRC(7b88cbd4) SHA1(1be3c484bd08c747f38389114c157e84319c48be) )
 
1298
        ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) )
 
1299
        ROM_RELOAD(               0xf000, 0x1000 )  /* for the reset and interrupt vectors */
 
1300
        ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) )
 
1301
 
 
1302
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1303
        ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) )
 
1304
        ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) )
 
1305
 
 
1306
        ROM_REGION( 0x0040, "proms", 0 )
 
1307
        ROM_LOAD( "sk8_ic7.bin",  0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */
 
1308
        ROM_LOAD( "sk8_ic6.bin",  0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */
 
1309
 
 
1310
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1311
        ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
 
1312
        ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) )
 
1313
        ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) )
 
1314
ROM_END
 
1315
 
 
1316
ROM_START( nibbler )
 
1317
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1318
        ROM_LOAD( "g-0960-52.ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) )
 
1319
        ROM_LOAD( "g-0960-48.ic7",  0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) )
 
1320
        ROM_LOAD( "g-0960-49.ic8",  0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) )
 
1321
        ROM_LOAD( "g-0960-50.ic9",  0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) )
 
1322
        ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) )
 
1323
        ROM_LOAD( "g-0960-53.ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) )
 
1324
        ROM_RELOAD(                 0xf000, 0x1000 )    /* for the reset and interrupt vectors */
 
1325
        ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
 
1326
        ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
 
1327
        ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
 
1328
 
 
1329
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1330
        ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
 
1331
        ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
 
1332
 
 
1333
        ROM_REGION( 0x0040, "proms", 0 )
 
1334
        ROM_LOAD( "g-0708-05.ic7",  0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
 
1335
        ROM_LOAD( "g-0708-04.ic6",  0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
 
1336
 
 
1337
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1338
        ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
 
1339
        ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
 
1340
        ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
 
1341
ROM_END
 
1342
 
 
1343
ROM_START( nibblera )
 
1344
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1345
        ROM_LOAD( "ic12",           0x3000, 0x1000, CRC(6dfa1be5) SHA1(bb265702a2f74cb7d5ba27081f9fb2fe01dd95a5) )
 
1346
        ROM_LOAD( "ic7",            0x4000, 0x1000, CRC(808e1a03) SHA1(a747a16ee0c8cb803b72ac84e80f791b2bf1813a) )
 
1347
        ROM_LOAD( "ic8",            0x5000, 0x1000, CRC(1571d4a2) SHA1(42cbaa262c2265d904fd5844c0d3c63d3beb67a8) )
 
1348
        ROM_LOAD( "ic9",            0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) )
 
1349
        ROM_LOAD( "ic10",           0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) )
 
1350
        ROM_LOAD( "ic14",           0x8000, 0x1000, CRC(9f537185) SHA1(619df63f4df38014dc229f614043f867e6a5aa51) )
 
1351
        ROM_RELOAD(                 0xf000, 0x1000 )    /* for the reset and interrupt vectors */
 
1352
        ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
 
1353
        ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
 
1354
        ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
 
1355
 
 
1356
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1357
        ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
 
1358
        ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
 
1359
 
 
1360
        ROM_REGION( 0x0040, "proms", 0 )
 
1361
        ROM_LOAD( "g-0708-05.ic7",  0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
 
1362
        ROM_LOAD( "g-0708-04.ic6",  0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
 
1363
 
 
1364
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1365
        ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
 
1366
        ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
 
1367
        ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
 
1368
ROM_END
 
1369
 
 
1370
ROM_START( nibblerb )
 
1371
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1372
        ROM_LOAD( "50-144.012",     0x3000, 0x1000, CRC(68af8f4b) SHA1(be6ddd3a9abb05563c927b1ec54dbaab44b65492) )
 
1373
        ROM_LOAD( "50-140.007",     0x4000, 0x1000, CRC(c18b3009) SHA1(c3703d0300f5f1546417ecdc27ab747d9c7eb267) )
 
1374
        ROM_LOAD( "50-141.008",     0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) )
 
1375
        ROM_LOAD( "ic9",            0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // 50-142.009
 
1376
        ROM_LOAD( "ic10",           0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // 50-143.010
 
1377
        ROM_LOAD( "50-145.014",     0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) )
 
1378
        ROM_RELOAD(                 0xf000, 0x1000 )    /* for the reset and interrupt vectors */
 
1379
        ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) // 50-146.015
 
1380
        ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) // 50-147.016
 
1381
        ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) // 50-148.017
 
1382
 
 
1383
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1384
        ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) // 50-150.051
 
1385
        ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) // 50-149.050
 
1386
 
 
1387
        ROM_REGION( 0x0040, "proms", 0 )
 
1388
        ROM_LOAD( "g-0708-05.ic7",  0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
 
1389
        ROM_LOAD( "g-0708-04.ic6",  0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
 
1390
 
 
1391
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1392
        ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) // not in this set / board according to readme but it seems to be needed?!
 
1393
        ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) // 50-152.052
 
1394
        ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) // 50-151.053
 
1395
ROM_END
 
1396
 
 
1397
ROM_START( nibblero )
 
1398
        ROM_REGION( 0x10000, "maincpu", 0 )
 
1399
        ROM_LOAD( "50-144g.012",    0x3000, 0x1000, CRC(1093f525) SHA1(6a63372300765acdbac1d2e30fd73af7773de80f) )
 
1400
        ROM_LOAD( "50-140g.007",    0x4000, 0x1000, CRC(848651dd) SHA1(a5aafbcca42baca8d0d5d28546733aefc778ba99) )
 
1401
        ROM_LOAD( "50-141.008",     0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) )
 
1402
        ROM_LOAD( "ic9",            0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) )
 
1403
        ROM_LOAD( "ic10",           0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) )
 
1404
        ROM_LOAD( "50-145.014",     0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) )
 
1405
        ROM_RELOAD(                 0xf000, 0x1000 )    /* for the reset and interrupt vectors */
 
1406
        ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) )
 
1407
        ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) )
 
1408
        ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) )
 
1409
 
 
1410
        ROM_REGION( 0x2000, "gfx1", 0 )
 
1411
        ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) )
 
1412
        ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) )
 
1413
 
 
1414
        ROM_REGION( 0x0040, "proms", 0 )
 
1415
        ROM_LOAD( "g-0708-05.ic7",  0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */
 
1416
        ROM_LOAD( "g-0708-04.ic6",  0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */
 
1417
 
 
1418
        ROM_REGION( 0x1800, "snk6502", 0 )      /* sound ROMs */
 
1419
        ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) )
 
1420
        ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) )
 
1421
        ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) )
 
1422
ROM_END
 
1423
 
 
1424
 
 
1425
/*************************************
 
1426
 *
 
1427
 *  Game drivers
 
1428
 *
 
1429
 *************************************/
 
1430
 
 
1431
GAME( 1980, sasuke,   0,        sasuke,   sasuke,   0, ROT90, "SNK", "Sasuke vs. Commander", GAME_IMPERFECT_SOUND )
 
1432
GAME( 1981, satansat, 0,        satansat, satansat, 0, ROT90, "SNK", "Satan of Saturn (set 1)", GAME_IMPERFECT_SOUND )
 
1433
GAME( 1981, satansata,satansat, satansat, satansat, 0, ROT90, "SNK", "Satan of Saturn (set 2)", GAME_IMPERFECT_SOUND )
 
1434
GAME( 1981, zarzon,   satansat, satansat, satansat, 0, ROT90, "[SNK] (Taito America license)", "Zarzon", GAME_IMPERFECT_SOUND )
 
1435
GAME( 1981, vanguard, 0,        vanguard, vanguard, 0, ROT90, "SNK", "Vanguard (SNK)", GAME_IMPERFECT_SOUND )
 
1436
GAME( 1981, vanguardc,vanguard, vanguard, vanguard, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", GAME_IMPERFECT_SOUND )
 
1437
GAME( 1981, vanguardj,vanguard, vanguard, vanguard, 0, ROT90, "SNK", "Vanguard (Japan)", GAME_IMPERFECT_SOUND )
 
1438
GAME( 1981, fantasy,  0,        fantasy,  fantasy,  0, ROT90, "SNK", "Fantasy (World)", GAME_IMPERFECT_SOUND )
 
1439
GAME( 1981, fantasyu, fantasy,  fantasy,  fantasyu, 0, ROT90, "[SNK] (Rock-Ola license)", "Fantasy (US)", GAME_IMPERFECT_SOUND )
 
1440
GAME( 1981, fantasyj, fantasy,  fantasy,  fantasyu, 0, ROT90, "SNK", "Fantasy (Japan)", GAME_IMPERFECT_SOUND )
 
1441
GAME( 1982, pballoon, 0,        pballoon, pballoon, 0, ROT90, "SNK", "Pioneer Balloon", 0 )
 
1442
GAME( 1982, nibbler,  0,        nibbler,  nibbler,  0, ROT90, "Rock-Ola", "Nibbler (set 1)", 0 )
 
1443
GAME( 1982, nibblera, nibbler,  nibbler,  nibblera, 0, ROT90, "Rock-Ola", "Nibbler (set 2)", 0 )
 
1444
GAME( 1982, nibblerb, nibbler,  nibbler,  nibblerb, 0, ROT90, "Rock-Ola", "Nibbler (set 3)", 0 )
 
1445
GAME( 1983, nibblero, nibbler,  nibbler,  nibblerb, 0, ROT90, "Olympia",  "Nibbler (Olympia)", 0 )