1 /* Jaleco MegaSystem 32 (Preliminary Driver)
2
3
4 Used by Jaleco in the Mid-90's this system, based on the V70 processor consisted
5 of a two board set up, the first a standard mainboard and the second a 'cartridge'
6
7 -- Hardware Information (from Guru) --
8
9 MS32 Motherboard
10 ----------------
11
12 PCB ID : MB-93140A EB91022-20079-1
13 CPU : NEC D70632GD-20 (V70)
14 SOUND : Z80, YMF271, YAC513
15 OSC : 48.000MHz, 16.9344MHz, 40.000MHz
16 RAM : Cypress CY7C199-25 (x10)
17 Sharp LH528256-70 (x5)
18 Sharp LH5168D-10 (x1)
19 OKI M511664-80 (x8)
20 DIPs : 8 position (x3)
21 OTHER : 5.5v battery
22 Some PALs
23 2 pin connector for right speaker (sound out is STEREO)
24
25 Custom chips:
26 JALECO SS91022-01 (208 PIN PQFP)
27 JALECO SS91022-02 (100 PIN PQFP)
28 JALECO SS91022-03 (176 PIN PQFP) *
29 JALECO SS91022-05 (120 PIN PQFP) *
30 JALECO SS91022-07 (208 PIN PQFP)
31 JALECO GS91022-01 (120 PIN PQFP)
32 JALECO GS91022-02 (160 PIN PQFP)
33 JALECO GS91022-03 (100 PIN PQFP)
34 JALECO GS91022-04 (100 PIN PQFP) *
35
36 ROMs: None
37
38 Chips marked * also appear on a non-megasystem 32 tetris 2 plus board
39
40 MS32 Cartridge
41 --------------
42
43 Game Roms + Custom Chip
44
45 The Custom chip is probably related to the encryption?
46
47 Desert War - Custom chip: JALECO SS91022-10 (144 pin PQFP) (located on small plug-in board with) (ID: SE93139 EB91022-30056)
48 Game Paradise - Custom chip: JALECO SS91022-10 9515EV 420201 06441
49 Tetris Plus 2 - Custom chip: JALECO SS91022-10 9513EV 370121 06441
50 Tetris Plus - Custom chip: JALECO SS92046-01 9412EV 450891 06441
51 kirarast - Custom chip: JALECO SS92047-01 9425EV 367821 06441
52 Gratia (set 1) - Custom chip: JALECO SS92047-01 9423EV 450891 06441
53 Gratia (set 2) - Custom chip: JALECO SS91022-10
54 P47-Aces - Custom chip: JALECO SS92048-01 9410EV 436091 06441
55 Angel Kiss - Custom chip: Jaleco SS92047-01
56 others are unknown
57
58 Notes
59 -----
60
61 Some of the roms for each game are encrypted.
62
63 The only difference between the two Gratia sets is in the encrypted ROMs (they use
64 different custom chips). The program is the same.
65
66 16x16x8 'Scroll' Tiles (Non-Roz BG Layer)
67 8x8x8 'Ascii' Tiles (FG Layer)
68
69
70 ToDo / Notes
71 ------------
72
73 Z80 + Sound Bits
74
75 Re-Add Priorities
76
77 Dip switches/inputs in t2m32 and f1superb
78 some games (hayaosi1) don't seeem to have service mode even if it's listed among the dips
79 service mode is still accessible through F1 though
80
81 Fix Anything Else (Palette etc.)
82
83 Replace CPU divider with Idle skip since we don't know how fast the v70 really is (cpu timing is ignored)...
84
85 Mirror Ram addresses?
86
87 Not sure about the main "global brightness" control register, I don't think it can make the palette
88 completely black because of kirarast attract mode, so I'm making it cut by 50% at most.
89
90 gametngk seems to need some kind of shadow sprites but the only difference in the sprite attributes is one of the
91 priority bits, forcing sprites of that priority to be shadows doesn't work
92 tetrisp needs shadows as well, see the game selection screen.
93
94 The above might be related to the second "global brightness" control register, which is 000000 in all games
95 except gametngk, tetrisp, tp2m32 and gratia.
96
97 horizontal position of tx and bg tilemaps is off by 1 pixel in some games
98
99 There should be NVRAM somewhere, maybe fc000000-fc007fff
100
101 bbbxing: some sprite/roz/bg alignment issues
102
103 gratia: at the beginning of a level it shows the level name in the bottom right corner, scrolling it up
104 and making the score display scroll out of the screen. Is this correct ar should there be a raster
105 effect keeping the score on screen? And why didn't they just use sprites to do that?
106
107 gratia: the 3d sky shown at the beginning of the game has a black gap near the end. It would not be visible
108 if I made the "global brightness" register cut to 100% instead of 50%. Mmmm...
109
110 gratia: the 3d sky seems to be the only place needed the "wrap" parameter to draw_roz to be set. All other
111 games work fine with it not set, and there are many places where it definitely must not be set.
112
113 gratia: at the beginning of the game, before the sky appears, the city background appears for
114 an instant. Missing layer enable register?
115
116 background color: pen 0 is correct for gametngk, but wrong for f1superb. Maybe it dpeends on the layer
117 priority order?
118
119 roz layer wrapping: currently it's always ON, breaking places where it gets very small so it gets
120 repeated on the screen (p47aces, kirarast, bbbxing, gametngk need it OFF).
121 gratia and desertwr need it ON.
122
123 there are sprite lag issues, but they might be caused by cpu timing so it's better to leave
124 them alone until the CPU clock is correct.
125
126
127 Not Working Games
128 -----------------
129
130 tp2m32 - writes invalid SBR, enables interrupts, crashes (fixed patching the bogus SBR).
131 f1superb - the road is straight despite the road signs saying otherwise? :-p
132 - there are 4 unknown ROMS which might be related to the above.
133 - the handler for IRQ 11 also seems to be valid, the game might need it.
134
135
136 Jaleco Megasystem 32 Game List - thanks to Yasuhiro
137 ---------------------------------------------------
138
139 P-47 Aces (p47aces)
140 Game Tengoku / Game Paradise (gametngk)
141 Tetris Plus (tetrisp)
142 Tetris Plus 2 (tp2m32)
143 Best Bout Boxing (bbbxing)
144 Wangan Sensou / Desert War (desertwr)
145 Second Earth Gratia (92047-01 version) (gratia)
146 *Second Earth Gratia (91022-10 version) (gratiaa)
147 *Super Strong Warriors
148 F-1 Super Battle (f1superb)
149
150 Idol Janshi Su-Chi-Pi 2 (47pie2)
151 Ryuusei Janshi Kirara Star (kirarast)
152 Mahjong Angel Kiss
153 *Vs. Janshi Brand New Stars
154
155 Hayaoshi Quiz Ouza Ketteisen (hayaosi1)
156 *Hayaoshi Quiz Nettou Namahousou
157 *Hayaoshi Quiz Grand Champion Taikai
158
159 Maybe some more...
160
161 Games marked * need dumping / redumping
162
163 */
164
165 /********** BITS & PIECES **********/
166
167 #include "driver.h"
168
169 extern data32_t *ms32_fce00000;
170 extern data32_t *ms32_roz_ctrl;
171 extern data32_t *ms32_tx_scroll;
172 extern data32_t *ms32_bg_scroll;
173 extern data32_t *ms32_priram;
174 extern data32_t *ms32_palram;
175 extern data32_t *ms32_bgram;
176 extern data32_t *ms32_rozram;
177 extern data32_t *ms32_lineram;
178 extern data32_t *ms32_spram;
179 extern data32_t *ms32_txram;
180 extern data32_t *ms32_mainram;
181
182 WRITE32_HANDLER( ms32_brightness_w );
183 WRITE32_HANDLER( ms32_palram_w );
184 READ32_HANDLER( ms32_txram_r );
185 WRITE32_HANDLER( ms32_txram_w );
186 READ32_HANDLER( ms32_rozram_r );
187 WRITE32_HANDLER( ms32_rozram_w );
188 READ32_HANDLER( ms32_lineram_r );
189 WRITE32_HANDLER( ms32_lineram_w );
190 READ32_HANDLER( ms32_bgram_r );
191 WRITE32_HANDLER( ms32_bgram_w );
192 READ32_HANDLER( ms32_spram_r );
193 WRITE32_HANDLER( ms32_spram_w );
194 READ32_HANDLER( ms32_priram_r );
195 WRITE32_HANDLER( ms32_priram_w );
196 WRITE32_HANDLER( ms32_gfxctrl_w );
197 VIDEO_START( ms32 );
198 VIDEO_UPDATE( ms32 );
199
200 static data32_t *ms32_fc000000;
201
202 static data32_t *ms32_mahjong_input_select;
203
204 static data32_t to_main;
205
206 /********** READ INPUTS **********/
207
READ32_HANDLER(ms32_read_inputs1)208 static READ32_HANDLER ( ms32_read_inputs1 )
209 {
210 int a,b,c,d;
211 a = readinputport(0); /* unknown*/
212 b = readinputport(1); /* System inputs*/
213 c = readinputport(2); /* Player 1 inputs*/
214 d = readinputport(3); /* Player 2 inputs*/
215 return a << 24 | b << 16 | c << 0 | d << 8;
216 }
217
218
READ32_HANDLER(ms32_mahjong_read_inputs1)219 static READ32_HANDLER ( ms32_mahjong_read_inputs1 )
220 {
221 int a,b,c,d;
222 a = readinputport(0); /* unknown*/
223 b = readinputport(1); /* System inputs*/
224
225 switch (ms32_mahjong_input_select[0])
226 {
227 case 0x01:
228 c = readinputport(8); /* Player 1 inputs*/
229 break;
230 case 0x02:
231 c = readinputport(9); /* Player 1 inputs*/
232 break;
233 case 0x04:
234 c = readinputport(10); /* Player 1 inputs*/
235 break;
236 case 0x08:
237 c = readinputport(11); /* Player 1 inputs*/
238 break;
239 case 0x10:
240 c = readinputport(12); /* Player 1 inputs*/
241 break;
242 default:
243 c = 0;
244
245 }
246 d = readinputport(3); /* Player 2 inputs*/
247 return a << 24 | b << 16 | c << 0 | d << 8;
248 }
249
250
READ32_HANDLER(ms32_read_inputs2)251 static READ32_HANDLER ( ms32_read_inputs2 )
252 {
253 int a,b,c,d;
254 a = readinputport(4); /* Dip 1*/
255 b = readinputport(5); /* Dip 2*/
256 c = readinputport(6); /* Dip 3*/
257 d = readinputport(7); /* unused ?*/
258 return a << 8 | b << 0 | c << 16 | d << 24;
259 }
260
READ32_HANDLER(ms32_read_inputs3)261 static READ32_HANDLER ( ms32_read_inputs3 )
262 {
263 int a,b,c,d;
264 a = readinputport(10); /* unused?*/
265 b = readinputport(10); /* unused?*/
266 c = readinputport(9);
267 d = (readinputport(8) - 0xb0) & 0xff;
268 return a << 24 | b << 16 | c << 8 | d << 0;
269 }
270
WRITE32_HANDLER(ms32_sound_w)271 static WRITE32_HANDLER( ms32_sound_w )
272 {
273 soundlatch_w(0, data & 0xff);
274 cpu_set_irq_line(1, IRQ_LINE_NMI, ASSERT_LINE);
275
276 /* give the Z80 time to respond*/
277 cpu_spinuntil_time(TIME_IN_USEC(40));
278 }
279
READ32_HANDLER(ms32_sound_r)280 static READ32_HANDLER( ms32_sound_r )
281 {
282 return to_main^0xff;
283 }
284
WRITE32_HANDLER(reset_sub_w)285 static WRITE32_HANDLER( reset_sub_w )
286 {
287 if(data) cpu_set_reset_line(1,PULSE_LINE); /* 0 too ?*/
288 }
289
290
291
292
293 /********** MEMORY MAP **********/
294
295 /* some games games test more ram than others .. ram areas with closed comments before
296 the lines get tested by various games but I'm not sure are really used, maybe they're
297 mirror addresses? */
298
299 /*
300 p47 aces:
301 there are bugs in the test routine, so it checks twice the amount of RAM
302 actually present, relying on mirror addresses.
303 See how ASCII and SCROLL overlap.
304 SCRATCH RAM fee00000-fee1ffff
305 ASCII RAM fec00000-fec0ffff (actually fec00000-fec07fff ?)
306 SCROLL RAM fec08000-fec17fff (actually fec08000-fec0ffff ?)
307 ROTATE RAM fe000000-fe03ffff (actually fe000000-fe01ffff ?)
308 OBJECT RAM fe800000-fe87ffff (actually fe800000-fe83ffff ?)
309 COLOR RAM fd400000-fd40ffff (this one is actually larger than tested)
310 PRIORITY RAM fd180000-fd1bffff (actually fd180000-fd19ffff ?)
311 SOUND RAM
312
313 This applies to most of the other games.
314 Also, gametngk uses mirror addresses for the background during gameplay, without
315 support for them bad tiles appear in the bg.
316 */
317
318
MEMORY_READ32_START(ms32_readmem)319 static MEMORY_READ32_START( ms32_readmem )
320 { 0x00000000, 0x001fffff, MRA32_ROM },
321 { 0xfc000000, 0xfc007fff, MRA32_RAM },
322 { 0xfc800000, 0xfc800003, MRA32_NOP }, /* sound? */
323 { 0xfcc00004, 0xfcc00007, ms32_read_inputs1 },
324 { 0xfcc00010, 0xfcc00013, ms32_read_inputs2 },
325 /**/{ 0xfce00600, 0xfce0065f, MRA32_RAM }, /* roz control registers */
326 /**/{ 0xfce00a00, 0xfce00a17, MRA32_RAM }, /* tx scroll registers */
327 /**/{ 0xfce00a20, 0xfce00a37, MRA32_RAM }, /* bg scroll registers */
328
329 { 0xfd000000, 0xfd000003, ms32_sound_r },
330 { 0xfd0e0000, 0xfd0e0003, ms32_read_inputs3 }, /* analog controls in f1superb? */
331
332 /**/{ 0xfd104000, 0xfd105fff, MRA32_RAM }, /* f1superb */
333 /**/{ 0xfd144000, 0xfd145fff, MRA32_RAM }, /* f1superb */
334
335 { 0xfd180000, 0xfd19ffff, ms32_priram_r }, /* priority ram */
336 { 0xfd1a0000, 0xfd1bffff, ms32_priram_r }, /* mirror only used by memory test in service mode */
337
338 { 0xfd400000, 0xfd43ffff, MRA32_RAM }, /* Palette */
339 /**/{ 0xfd440000, 0xfd47ffff, MRA32_RAM }, /* f1superb color */
340
341 /**/{ 0xfdc00000, 0xfdc006ff, MRA32_RAM }, /* f1superb */
342 /**/{ 0xfde00000, 0xfde01fff, MRA32_RAM }, /* f1superb lineram */
343 { 0xfe000000, 0xfe01ffff, ms32_rozram_r }, /* roz layer */
344 { 0xfe020000, 0xfe03ffff, ms32_rozram_r }, /* mirror only used by memory test in service mode */
345 { 0xfe200000, 0xfe201fff, ms32_lineram_r }, /* line ram for roz layer */
346 /**/{ 0xfe202000, 0xfe2fffff, MRA32_RAM }, /* f1superb vram */
347
348 { 0xfe800000, 0xfe83ffff, ms32_spram_r }, /* sprites */
349 { 0xfe840000, 0xfe87ffff, ms32_spram_r }, /* mirror only used by memory test in service mode */
350 { 0xfec00000, 0xfec07fff, ms32_txram_r }, /* tx layer */
351 { 0xfec08000, 0xfec0ffff, ms32_bgram_r }, /* bg layer */
352 { 0xfec10000, 0xfec17fff, ms32_txram_r }, /* mirror only used by memory test in service mode */
353 { 0xfec18000, 0xfec1ffff, ms32_bgram_r },
354 { 0xfee00000, 0xfee1ffff, MRA32_RAM },
355 { 0xffe00000, 0xffffffff, MRA32_BANK1 },
356 MEMORY_END
357
358 static WRITE32_HANDLER( pip_w )
359 {
360 if (data)
361 usrintf_showmessage("fce00a7c = %02x",data);
362 }
363
MEMORY_WRITE32_START(ms32_writemem)364 static MEMORY_WRITE32_START( ms32_writemem )
365 { 0x00000000, 0x001fffff, MWA32_ROM },
366 { 0xfc000000, 0xfc007fff, MWA32_RAM, &ms32_fc000000 }, /* NVRAM?*/
367 { 0xfc800000, 0xfc800003, ms32_sound_w }, /* sound? */
368 { 0xfce00000, 0xfce00003, ms32_gfxctrl_w }, /* flip screen + other unknown bits */
369 { 0xfce00034, 0xfce00037, MWA32_NOP }, /* irq ack?*/
370 { 0xfce00038, 0xfce0003b, reset_sub_w },
371 { 0xfce00050, 0xfce0005f, MWA32_NOP }, /* watchdog? I haven't investigated*/
372 /* { 0xfce00000, 0xfce0007f, MWA32_RAM, &ms32_fce00000 },*/ /* registers not ram? */
373 { 0xfce00280, 0xfce0028f, ms32_brightness_w }, /* global brightness control*/
374 { 0xfce00600, 0xfce0065f, MWA32_RAM, &ms32_roz_ctrl }, /* roz control registers */
375 /* { 0xfce00800, 0xfce0085f, */ /* f1superb, roz #2 control?*/
376 { 0xfce00a00, 0xfce00a17, MWA32_RAM, &ms32_tx_scroll }, /* tx layer scroll */
377 { 0xfce00a20, 0xfce00a37, MWA32_RAM, &ms32_bg_scroll }, /* bg layer scroll */
378 { 0xfce00a7c, 0xfce00a7f, pip_w }, /* ??? layer related? seems to be always 0*/
379 /* { 0xfce00e00, 0xfce00e03, }, coin counters + something else*/
380
381 /* { 0xfd104000, 0xfd105fff, MWA32_RAM },*/ /* f1superb */
382 /* { 0xfd144000, 0xfd145fff, MWA32_RAM },*/ /* f1superb */
383
384 { 0xfd180000, 0xfd19ffff, ms32_priram_w, &ms32_priram }, /* priority ram */
385 { 0xfd1a0000, 0xfd1bffff, ms32_priram_w }, /* mirror only used by memory test in service mode */
386
387 { 0xfd1c0000, 0xfd1c0003, MWA32_RAM, &ms32_mahjong_input_select }, /* ?*/
388
389 { 0xfd400000, 0xfd43ffff, ms32_palram_w, &ms32_palram }, /* Palette */
390 /**/{ 0xfd440000, 0xfd47ffff, MWA32_RAM }, /* f1superb color */
391 /* { 0xfdc00000, 0xfdc006ff, MWA32_RAM }, // f1superb */
392 /* { 0xfde00000, 0xfde01fff, MWA32_RAM }, // f1superb, lineram #2? */
393
394 { 0xfe000000, 0xfe01ffff, ms32_rozram_w, &ms32_rozram }, /* roz layer */
395 { 0xfe020000, 0xfe03ffff, ms32_rozram_w }, /* mirror only used by memory test in service mode */
396 { 0xfe1ffc88, 0xfe1fffff, MWA32_NOP }, /* gratia writes here before falling into lineram, could be a mirror */
397 { 0xfe200000, 0xfe201fff, ms32_lineram_w, &ms32_lineram }, /* line ram for roz layer */
398 /**/{ 0xfe202000, 0xfe2fffff, MWA32_RAM }, /* f1superb vram */
399 /**/{ 0xfe100000, 0xfe1fffff, MWA32_RAM }, /* gratia writes here ?! /*/
400 { 0xfe800000, 0xfe83ffff, ms32_spram_w, &ms32_spram }, /* sprites */
401 { 0xfe840000, 0xfe87ffff, ms32_spram_w }, /* mirror only used by memory test in service mode */
402 { 0xfec00000, 0xfec07fff, ms32_txram_w, &ms32_txram }, /* tx layer */
403 { 0xfec08000, 0xfec0ffff, ms32_bgram_w, &ms32_bgram }, /* bg layer */
404 { 0xfec10000, 0xfec17fff, ms32_txram_w }, /* mirror only used by memory test in service mode */
405 { 0xfec18000, 0xfec1ffff, ms32_bgram_w }, /* mirror used by gametngk at the beginning of the game */
406 { 0xfee00000, 0xfee1ffff, MWA32_RAM, &ms32_mainram },
407 { 0xffe00000, 0xffffffff, MWA32_ROM },
408 MEMORY_END
409
410 /********** INPUT PORTS **********/
411
412 #define MS32_UNUSED_PORT \
413 PORT_START \
414 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) \
415 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) \
416 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) \
417 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) \
418 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) \
419 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) \
420 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \
421 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
422
423 #define MS32_SYSTEM_INPUTS \
424 PORT_START \
425 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \
426 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \
427 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) \
428 PORT_BITX(0x08, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F1, IP_JOY_NONE ) \
429 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \
430 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
431 /* bits 6 and 7 might be different from game to game */
432
433 #define MS32_UNKNOWN_INPUTS \
434 PORT_START \
435 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
436 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
437 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
438 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
439 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
440 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
441 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
442 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
443
444 #define MS32_PLAYER_INPUTS(_n_, _b1_, _b2_, _b3_, _b4_) \
445 PORT_START \
446 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER##_n_ ) \
447 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER##_n_ ) \
448 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER##_n_ ) \
449 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER##_n_ ) \
450 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_##_b1_ | IPF_PLAYER##_n_ ) \
451 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_##_b2_ | IPF_PLAYER##_n_ ) \
452 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_##_b3_ | IPF_PLAYER##_n_ ) \
453 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_##_b4_ | IPF_PLAYER##_n_ )
454
455 #define MS32_DIP1 \
456 PORT_START \
457 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) \
458 PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) \
459 PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) \
460 PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) \
461 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) \
462 PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) \
463 PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) \
464 PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) \
465 PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \
466 PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) \
467 PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) \
468 PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) \
469 PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \
470 PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \
471 PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) \
472 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) \
473 PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) \
474 PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
475 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Free_Play ) ) \
476 PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \
477 PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \
478 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
479
480
481 /*INPUT_PORTS_START( ms32 )
482 MS32_UNKNOWN_INPUTS
483
484 MS32_SYSTEM_INPUTS
485 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
486 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
487
488 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
489 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
490
491 MS32_DIP1
492
493 PORT_START // DIP2
494 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
495 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
496 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
497 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
498 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
499 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
500 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
501 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
502 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
503 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
504 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
505 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
506 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
507 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
508 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
509 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
510 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
511 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
512 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
513 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
514 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
515 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
516 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
517 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
518
519 PORT_START // DIP3
520 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
521 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
522 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
523 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
524 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
525 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
526 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
527 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
528 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
529 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
530 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
531 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
532 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
533 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
534 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
535 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
536 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
537 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
538 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
539 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
540 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
541 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
542 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
543 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
544
545 MS32_UNUSED_PORT
546
547 INPUT_PORTS_END
548 */
549
550 INPUT_PORTS_START( bbbxing )
551 MS32_UNKNOWN_INPUTS
552
553 MS32_SYSTEM_INPUTS
554 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* BUTTON5 in "test mode"*/
555 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* BUTTON5 in "test mode"*/
556
557 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) /* BUTTON4 in "test mode"*/
558 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) /* BUTTON4 in "test mode"*/
559
560 MS32_DIP1
561
562 PORT_START /* DIP2*/
563 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
564 PORT_DIPSETTING( 0x00, "Easy" )
565 PORT_DIPSETTING( 0xc0, "Normal" )
566 PORT_DIPSETTING( 0x40, "Hard" )
567 PORT_DIPSETTING( 0x80, "Hardest" )
568 PORT_DIPNAME( 0x30, 0x00, "Timer Speed" )
569 PORT_DIPSETTING( 0x00, "60/60" )
570 PORT_DIPSETTING( 0x20, "50/60" )
571 PORT_DIPSETTING( 0x10, "40/60" )
572 PORT_DIPSETTING( 0x30, "35/60" )
573 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
574 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
575 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
576 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
577 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
578 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
579 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
580 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
581 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
582 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
583 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
584 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
585
586 PORT_START /* DIP3*/
587 #if 0 /* this is what you have in the "test mode", but I don't see what this means 8( */
588 PORT_DIPNAME( 0x80, 0x80, "Jyogi" )
589 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
590 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
591 PORT_DIPNAME( 0x40, 0x40, "Kim" )
592 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
593 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
594 PORT_DIPNAME( 0x20, 0x20, "Thamalatt" )
595 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
596 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
597 PORT_DIPNAME( 0x10, 0x10, "Jose" )
598 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
599 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
600 PORT_DIPNAME( 0x08, 0x08, "Carolde" )
601 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
602 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
603 PORT_DIPNAME( 0x04, 0x04, "Biff" )
604 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
605 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
606 PORT_DIPNAME( 0x02, 0x02, "Grute" )
607 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
608 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
609 #else
610 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
611 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
612 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
613 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
614 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
615 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
616 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
617 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
618 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
619 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
620 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
621 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
622 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
623 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
624 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
625 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
626 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
627 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
628 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
629 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
630 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
631 #endif
632 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
633 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
634 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
635
636 MS32_UNUSED_PORT
637
638 INPUT_PORTS_END
639
640 INPUT_PORTS_START( desertwr )
641 MS32_UNKNOWN_INPUTS
642
643 MS32_SYSTEM_INPUTS
644 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
645 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
646
647 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
648 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
649
650 MS32_DIP1
651
652 PORT_START /* DIP2*/
653 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
654 PORT_DIPSETTING( 0x00, "Easy" )
655 PORT_DIPSETTING( 0xc0, "Normal" )
656 PORT_DIPSETTING( 0x40, "Hard" )
657 PORT_DIPSETTING( 0x80, "Hardest" )
658 PORT_DIPNAME( 0x30, 0x30, "Armors" )
659 /* PORT_DIPSETTING( 0x00, "2" ) */ /* duplicate setting ?*/
660 PORT_DIPSETTING( 0x10, "2" )
661 PORT_DIPSETTING( 0x30, "3" )
662 PORT_DIPSETTING( 0x20, "4" )
663 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
664 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
665 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
666 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
667 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
668 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
669 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
670 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
671 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
672 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
673 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
674 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
675
676 PORT_START /* DIP3*/
677 PORT_DIPNAME( 0x80, 0x00, "Language" )
678 PORT_DIPSETTING( 0x80, "Japanese" )
679 PORT_DIPSETTING( 0x00, "English" )
680 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
681 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
682 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
683 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
684 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
685 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
686 PORT_DIPNAME( 0x10, 0x00, "Title screen" )
687 PORT_DIPSETTING( 0x10, "Japanese" )
688 PORT_DIPSETTING( 0x00, "English" )
689 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
690 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
691 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
692 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
693 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
694 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
695 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
696 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
697 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
698 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
699 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
700 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
701
702 MS32_UNUSED_PORT
703
704 INPUT_PORTS_END
705
706 INPUT_PORTS_START( gametngk )
707 MS32_UNKNOWN_INPUTS
708
709 MS32_SYSTEM_INPUTS
710 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
711 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
712
713 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
714 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
715
716 MS32_DIP1
717
718 PORT_START /* DIP2*/
719 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
720 PORT_DIPSETTING( 0x00, "Easy" )
721 PORT_DIPSETTING( 0xc0, "Normal" )
722 PORT_DIPSETTING( 0x40, "Hard" )
723 PORT_DIPSETTING( 0x80, "Hardest" )
724 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
725 PORT_DIPSETTING( 0x00, "1" )
726 PORT_DIPSETTING( 0x30, "3" )
727 PORT_DIPSETTING( 0x10, "4" )
728 PORT_DIPSETTING( 0x20, "5" )
729 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
730 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
731 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
732 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
733 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
734 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
735 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
736 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
737 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
738 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
739 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
740 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
741
742 PORT_START /* DIP3*/
743 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
744 PORT_DIPNAME( 0x80, 0x00, "Language" )
745 PORT_DIPSETTING( 0x80, "Japanese" )
746 PORT_DIPSETTING( 0x00, "English" )
747 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
748 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
749 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
750 PORT_DIPNAME( 0x20, 0x20, "Voice" )
751 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
752 PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
753 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
754 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
755 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
756 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
757 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
758 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
759 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
760 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
761 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
762 PORT_BITX( 0x02, 0x02, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
763 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
764 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
765 PORT_DIPNAME( 0x01, 0x01, "Freeze" )
766 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
767 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
768
769 MS32_UNUSED_PORT
770
771 INPUT_PORTS_END
772
773 INPUT_PORTS_START( tetrisp )
774 MS32_UNKNOWN_INPUTS
775
776 MS32_SYSTEM_INPUTS
777 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
778 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
779
780 /* There are inputs for players 3 and 4 in the "test mode",
781 but NO addresses are read to check them ! */
782
783 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
784 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
785
786 MS32_DIP1
787
788 PORT_START /* DIP2*/
789 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
790 PORT_DIPSETTING( 0x00, "Easy" )
791 PORT_DIPSETTING( 0xc0, "Normal" )
792 PORT_DIPSETTING( 0x40, "Hard" )
793 PORT_DIPSETTING( 0x80, "Hardest" )
794 PORT_DIPNAME( 0x30, 0x30, "Winning Rounds (Player VS Player)" )
795 PORT_DIPSETTING( 0x00, "1/1" )
796 PORT_DIPSETTING( 0x30, "2/3" )
797 PORT_DIPSETTING( 0x10, "3/5" )
798 PORT_DIPSETTING( 0x20, "4/7" )
799 PORT_DIPNAME( 0x0c, 0x0c, "Join In" )
800 PORT_DIPSETTING( 0x0c, "All Modes" )
801 PORT_DIPSETTING( 0x04, "Normal and Puzzle Modes" )
802 PORT_DIPSETTING( 0x08, "VS Mode" )
803 /* PORT_DIPSETTING( 0x00, "Normal and Puzzle Modes" ) */ /* "can't play normal mode" in "test mode"*/
804 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
805 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
806 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
807 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
808 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
809 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
810
811 PORT_START /* DIP3*/
812 PORT_DIPNAME( 0x80, 0x00, "Language" )
813 PORT_DIPSETTING( 0x80, "Japanese" )
814 PORT_DIPSETTING( 0x00, "English" )
815 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
816 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
817 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
818 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
819 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
820 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
821 PORT_DIPNAME( 0x10, 0x10, "Voice" )
822 PORT_DIPSETTING( 0x00, "English Only" )
823 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
824 PORT_DIPNAME( 0x08, 0x08, "After VS Mode" )
825 PORT_DIPSETTING( 0x08, "Game Ends" )
826 PORT_DIPSETTING( 0x00, "Winner Continues" )
827 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
828 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
829 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
830 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
831 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
832 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
833 PORT_DIPNAME( 0x01, 0x01, "Freeze" )
834 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
835 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
836
837 MS32_UNUSED_PORT
838
839 INPUT_PORTS_END
840
841 INPUT_PORTS_START( tp2m32 )
842 MS32_UNKNOWN_INPUTS
843
844 MS32_SYSTEM_INPUTS
845 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
846 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
847
848 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
849 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
850
851 MS32_DIP1
852
853 PORT_START /* DIP2*/
854 PORT_DIPNAME( 0xc0, 0xc0, "Endless Difficulty" )
855 PORT_DIPSETTING( 0x00, "Easy" )
856 PORT_DIPSETTING( 0xc0, "Normal" )
857 PORT_DIPSETTING( 0x40, "Hard" )
858 PORT_DIPSETTING( 0x80, "Very Hard" )
859 PORT_DIPNAME( 0x30, 0x30, "Puzzle Difficulty" )
860 PORT_DIPSETTING( 0x00, "Easy" )
861 PORT_DIPSETTING( 0x30, "Normal" )
862 PORT_DIPSETTING( 0x10, "Hard" )
863 PORT_DIPSETTING( 0x20, "Very Hard" )
864 PORT_DIPNAME( 0x0c, 0x0c, "VS Match" )
865 PORT_DIPSETTING( 0x00, "1" )
866 PORT_DIPSETTING( 0x0c, "3" )
867 PORT_DIPSETTING( 0x04, "5" )
868 PORT_DIPSETTING( 0x08, "7" )
869 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
870 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
871 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
872 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
873 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
874 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
875
876 PORT_START /* DIP3*/
877 PORT_DIPNAME( 0x80, 0x00, "Language" )
878 PORT_DIPSETTING( 0x80, "Japanese" )
879 PORT_DIPSETTING( 0x00, "English" )
880 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
881 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
882 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
883 PORT_DIPNAME( 0x20, 0x20, "Voice" )
884 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
885 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
886 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
887 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
888 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
889 PORT_DIPNAME( 0x08, 0x08, "Join In" )
890 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
891 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
892 PORT_DIPNAME( 0x06, 0x06, "Bomb" )
893 PORT_DIPSETTING( 0x04, "0" )
894 PORT_DIPSETTING( 0x02, "1" )
895 PORT_DIPSETTING( 0x06, "2" )
896 PORT_DIPSETTING( 0x00, "3" )
897 PORT_DIPNAME( 0x01, 0x01, "Freeze" )
898 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
899 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
900
901 MS32_UNUSED_PORT
902
903 INPUT_PORTS_END
904
905 /* The Dip Switches for this game are completely wrong in the "test mode" ! */
906 INPUT_PORTS_START( p47aces )
907 MS32_UNKNOWN_INPUTS
908
909 MS32_SYSTEM_INPUTS
910 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
911 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
912
913 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
914 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) /* BUTTON3 and BUTTON4 in "test mode"*/
915
916 MS32_DIP1
917
918 PORT_START /* DIP2*/
919 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
920 PORT_DIPSETTING( 0x00, "Easy" )
921 PORT_DIPSETTING( 0xc0, "Normal" )
922 PORT_DIPSETTING( 0x40, "Hard" )
923 PORT_DIPSETTING( 0x80, "Hardest" )
924 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
925 PORT_DIPSETTING( 0x00, "1" )
926 PORT_DIPSETTING( 0x20, "2" )
927 PORT_DIPSETTING( 0x30, "3" )
928 PORT_DIPSETTING( 0x10, "4" )
929 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
930 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
931 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
932 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
933 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
934 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
935 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
936 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
937 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
938 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
939 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
940 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
941
942 PORT_START /* DIP3*/
943 PORT_DIPNAME( 0x80, 0x00, "Language" )
944 PORT_DIPSETTING( 0x80, "Japanese" )
945 PORT_DIPSETTING( 0x00, "English" )
946 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
947 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
948 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
949 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
950 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
951 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
952 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
953 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
954 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
955 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
956 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
957 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
958 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
959 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
960 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
961 PORT_DIPNAME( 0x03, 0x03, "FG/BG X offset" )
962 PORT_DIPSETTING( 0x03, "0/0" )
963 PORT_DIPSETTING( 0x02, "5/5" )
964 /* PORT_DIPSETTING( 0x01, "5/5" )*/
965 PORT_DIPSETTING( 0x00, "2/4" )
966
967 MS32_UNUSED_PORT
968
969 INPUT_PORTS_END
970
971 INPUT_PORTS_START( gratia )
972 MS32_UNKNOWN_INPUTS
973
974 MS32_SYSTEM_INPUTS
975 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
976 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
977
978 MS32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) /* BUTTON4 in "test mode"*/
979 MS32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) /* BUTTON4 in "test mode"*/
980
981 MS32_DIP1
982
983 PORT_START /* DIP2*/
984 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
985 PORT_DIPSETTING( 0x00, "Easy" )
986 PORT_DIPSETTING( 0xc0, "Normal" )
987 PORT_DIPSETTING( 0x40, "Hard" )
988 PORT_DIPSETTING( 0x80, "Hardest" )
989 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
990 PORT_DIPSETTING( 0x00, "1" )
991 PORT_DIPSETTING( 0x20, "2" )
992 PORT_DIPSETTING( 0x30, "3" )
993 PORT_DIPSETTING( 0x10, "4" )
994 PORT_BITX( 0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
995 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
996 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
997 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
998 PORT_DIPSETTING( 0x04, "200k and every 1000k" )
999 PORT_DIPSETTING( 0x00, "None" )
1000 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
1001 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1002 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1003 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
1004 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1005 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1006
1007 PORT_START /* DIP3*/
1008 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1009 PORT_DIPNAME( 0x80, 0x00, "Language" )
1010 PORT_DIPSETTING( 0x80, "Japanese" )
1011 PORT_DIPSETTING( 0x00, "English" )
1012 PORT_DIPNAME( 0x40, 0x40, "FBI Logo" )
1013 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
1014 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1015 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
1016 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1017 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1018 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
1019 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1020 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1021 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
1022 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1023 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1024 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
1025 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1026 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1027 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
1028 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1029 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1030 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
1031 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1032 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1033
1034 MS32_UNUSED_PORT
1035
1036 INPUT_PORTS_END
1037
1038 INPUT_PORTS_START( hayaosi1 )
1039 MS32_UNKNOWN_INPUTS
1040
1041 MS32_SYSTEM_INPUTS
1042 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1043 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1044
1045 PORT_START
1046 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1047 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1048 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1049 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1050 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
1051 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
1052 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 ) /* "Buzzer" (input 0 in "test mode")*/
1053 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER3 ) /* "Buzzer" (input 0 in "test mode")*/
1054
1055 PORT_START
1056 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1057 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
1058 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1059 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
1060 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
1061 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 )
1062 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 ) /* "Buzzer" (input 0 in "test mode")*/
1063 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1064
1065 MS32_DIP1 /* "Service Mode" Dip Switch doesn't work ! Use the "Test" button instead !*/
1066
1067 PORT_START /* DIP2*/
1068 PORT_DIPNAME( 0xc0, 0xc0, "Computer's AI (VS Mode)" )
1069 PORT_DIPSETTING( 0x40, "Low" )
1070 PORT_DIPSETTING( 0xc0, "Normal" )
1071 PORT_DIPSETTING( 0x80, "High" )
1072 PORT_DIPSETTING( 0x00, "Highest" )
1073 /* Lap Time Questions */
1074 /* 1 1:00 4 */
1075 /* 2 1:00 6 */
1076 /* 3 1:30 8 */
1077 /* 4 1:30 10 */
1078 /* 4 2:00 14 */
1079 /* final 2:00 18 */
1080 PORT_DIPNAME( 0x30, 0x30, "Time (Race Mode)" )
1081 PORT_DIPSETTING( 0x00, "Default - 0:15" )
1082 PORT_DIPSETTING( 0x20, "Default - 0:10" )
1083 PORT_DIPSETTING( 0x30, "Default" )
1084 PORT_DIPSETTING( 0x10, "Default + 0:15" )
1085 /* Round Default More */
1086 /* 1 10 15 */
1087 PORT_DIPNAME( 0x08, 0x08, "Questions (VS Mode)" ) /* TO DO : check all rounds*/
1088 PORT_DIPSETTING( 0x08, "Default" )
1089 PORT_DIPSETTING( 0x00, "More" )
1090 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* "Unused" ?*/
1091 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1092 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1093 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) /* "Demo Sounds" ?*/
1094 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1095 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1096 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* "Flip Screen" ?*/
1097 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1098 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1099
1100 PORT_START /* DIP3*/
1101 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
1102 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1103 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1104 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
1105 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1106 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1107 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
1108 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1109 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1110 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
1111 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1112 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1113 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
1114 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1115 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1116 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
1117 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1118 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1119 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
1120 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1121 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1122 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
1123 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1124 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1125
1126 MS32_UNUSED_PORT
1127
1128 INPUT_PORTS_END
1129
1130 INPUT_PORTS_START( kirarast ) /* player 1 inputs done? others?*/
1131 MS32_UNKNOWN_INPUTS
1132
1133 MS32_SYSTEM_INPUTS
1134 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1135 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1136
1137 MS32_UNUSED_PORT /* p1*/
1138 MS32_UNUSED_PORT /* p2*/
1139
1140 MS32_DIP1
1141
1142 PORT_START /* DIP2*/
1143 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR (Difficulty) )
1144 PORT_DIPSETTING( 0x00, "Easiest" )
1145 PORT_DIPSETTING( 0x80, "Very Easy" )
1146 PORT_DIPSETTING( 0x40, "Easier" )
1147 PORT_DIPSETTING( 0xc0, "Easy" )
1148 PORT_DIPSETTING( 0xe0, "Normal" )
1149 PORT_DIPSETTING( 0x60, "Hard" )
1150 PORT_DIPSETTING( 0xa0, "Harder" )
1151 PORT_DIPSETTING( 0x20, "Hardest" )
1152 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds) )
1153 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1154 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
1155 PORT_DIPNAME( 0x08, 0x08, "Tumo Pinfu" )
1156 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1157 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1158 PORT_DIPNAME( 0x04, 0x04, "Campaign Mode" )
1159 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1160 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
1161 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1162 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1163 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1164 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1165 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1166 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1167
1168 PORT_START /* DIP3*/
1169 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1170 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1171 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1172 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1173 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1174 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1175 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1176 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1177 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1178 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1179 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1180 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1181 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1182 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1183 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1184 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1185 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1186 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1187 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1188 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1189 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1190 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1191 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1192 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1193
1194 MS32_UNUSED_PORT
1195
1196 PORT_START /* Mahjong Inputs 0x01*/
1197 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
1198 PORT_BITX( 0x02, IP_ACTIVE_LOW, 0, "P1 A", KEYCODE_A, IP_JOY_NONE )
1199 PORT_BITX( 0x04, IP_ACTIVE_LOW, 0, "P1 E", KEYCODE_E, IP_JOY_NONE )
1200 PORT_BITX( 0x08, IP_ACTIVE_LOW, 0, "P1 M", KEYCODE_M, IP_JOY_NONE )
1201 PORT_BITX( 0x10, IP_ACTIVE_LOW, 0, "P1 I", KEYCODE_I, IP_JOY_NONE )
1202 PORT_BITX( 0x20, IP_ACTIVE_LOW, 0, "P1 Kan", KEYCODE_LCONTROL, IP_JOY_NONE )
1203 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1204 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1205
1206 PORT_START /* Mahjong Inputs 0x02*/
1207 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1208 PORT_BITX( 0x02, IP_ACTIVE_LOW, 0, "P1 B", KEYCODE_B, IP_JOY_NONE )
1209 PORT_BITX( 0x04, IP_ACTIVE_LOW, 0, "P1 F", KEYCODE_F, IP_JOY_NONE )
1210 PORT_BITX( 0x08, IP_ACTIVE_LOW, 0, "P1 N", KEYCODE_N, IP_JOY_NONE )
1211 PORT_BITX( 0x10, IP_ACTIVE_LOW, 0, "P1 J", KEYCODE_J, IP_JOY_NONE )
1212 PORT_BITX( 0x20, IP_ACTIVE_LOW, 0, "P1 Reach", KEYCODE_LSHIFT, IP_JOY_NONE )
1213 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1214 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1215
1216 PORT_START /* Mahjong Inputs 0x04*/
1217 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1218 PORT_BITX( 0x02, IP_ACTIVE_LOW, 0, "P1 C", KEYCODE_C, IP_JOY_NONE )
1219 PORT_BITX( 0x04, IP_ACTIVE_LOW, 0, "P1 G", KEYCODE_G, IP_JOY_NONE )
1220 PORT_BITX( 0x08, IP_ACTIVE_LOW, 0, "P1 Chi", KEYCODE_SPACE, IP_JOY_NONE )
1221 PORT_BITX( 0x10, IP_ACTIVE_LOW, 0, "P1 K", KEYCODE_K, IP_JOY_NONE )
1222 PORT_BITX( 0x20, IP_ACTIVE_LOW, 0, "P1 Ron", KEYCODE_Z, IP_JOY_NONE )
1223 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1224 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1225
1226 PORT_START /* Mahjong Inputs 0x08*/
1227 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1228 PORT_BITX( 0x02, IP_ACTIVE_LOW, 0, "P1 D", KEYCODE_D, IP_JOY_NONE )
1229 PORT_BITX( 0x04, IP_ACTIVE_LOW, 0, "P1 H", KEYCODE_H, IP_JOY_NONE )
1230 PORT_BITX( 0x08, IP_ACTIVE_LOW, 0, "P1 Pon", KEYCODE_LALT, IP_JOY_NONE )
1231 PORT_BITX( 0x10, IP_ACTIVE_LOW, 0, "P1 L", KEYCODE_L, IP_JOY_NONE )
1232 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1233 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1234 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1235
1236 PORT_START /* Mahjong Inputs 0x10*/
1237 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1238 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1239 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1240 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1241 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1242 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1243 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1244 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1245 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1246 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1247 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1248 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1249 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1250 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1251 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1252 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1253 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1254 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1255 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1256 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1257 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1258 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1259 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1260 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1261 INPUT_PORTS_END
1262
1263 INPUT_PORTS_START( f1superb ) /* Mostly wrong !*/
1264 MS32_UNKNOWN_INPUTS
1265
1266 MS32_SYSTEM_INPUTS
1267 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
1268 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
1269
1270 PORT_START
1271 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1272 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1273 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1274 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
1275 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1276 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1277 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1278 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
1279
1280 PORT_START
1281 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
1282 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
1283 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
1284 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 )
1285 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
1286 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
1287 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER4 )
1288 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER4 )
1289
1290 MS32_DIP1
1291
1292 PORT_START /* DIP2*/
1293 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1294 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1295 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1296 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1297 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1298 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1299 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1300 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1301 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1302 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1303 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1304 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1305 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1306 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1307 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1308 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1309 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1310 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1311 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1312 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1313 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1314 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1315 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1316 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1317
1318 PORT_START /* DIP3*/
1319 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1320 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1321 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1322 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1323 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1324 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1325 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1326 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1327 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1328 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1329 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1330 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1331 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1332 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1333 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1334 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1335 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1336 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1337 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1338 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1339 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1340 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1341 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1342 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1343
1344 MS32_UNUSED_PORT
1345
1346 PORT_START /* Acceleration (wrong?)*/
1347 PORT_ANALOG( 0xff, 0x00, IPT_AD_STICK_Y | IPF_REVERSE | IPF_PLAYER1, 50, 15, 0, 0xff)
1348
1349
1350 PORT_START /* Steering*/
1351 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 50, 15, 0x00, 0xff)
1352
1353 PORT_START /* Shift + Brake*/
1354 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1355 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1356 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1357 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1358 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1359 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1360 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1361 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1362 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1363 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1364 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1365 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1366 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1367 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1368 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1369 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1370 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1371 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1372 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1373 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1374 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1375 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1376 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1377 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1378
1379 INPUT_PORTS_END
1380
1381 /********** GFX DECODE **********/
1382
1383 /* sprites are contained in 256x256 "tiles" */
1384 static struct GfxLayout spritelayout =
1385 {
1386 256,256,
1387 RGN_FRAC(1,1),
1388 8,
1389 { GFX_RAW },
1390 { 0 }, /* org displacement */
1391 { 256*8 }, /* line modulo */
1392 256*256*8 /* char modulo */
1393 };
1394
1395 static struct GfxLayout bglayout =
1396 {
1397 16,16,
1398 RGN_FRAC(1,1),
1399 8,
1400 { GFX_RAW },
1401 { 0 }, /* org displacement */
1402 { 16*8 }, /* line modulo */
1403 16*16*8 /* char modulo */
1404 };
1405
1406
1407 static struct GfxLayout txlayout =
1408 {
1409 8,8,
1410 RGN_FRAC(1,1),
1411 8,
1412 { GFX_RAW },
1413 { 0 }, /* org displacement */
1414 { 8*8 }, /* line modulo */
1415 8*8*8 /* char modulo */
1416 };
1417
1418 static struct GfxDecodeInfo ms32_gfxdecodeinfo[] =
1419 {
1420 { REGION_GFX1, 0, &spritelayout, 0x0000, 0x10 },
1421 { REGION_GFX2, 0, &bglayout, 0x2000, 0x10 },
1422 { REGION_GFX3, 0, &bglayout, 0x1000, 0x10 },
1423 { REGION_GFX4, 0, &txlayout, 0x6000, 0x10 },
1424 { -1 }
1425 };
1426
1427
1428
1429 /********** INTERRUPTS **********/
1430
1431 /* Irqs used in desertwr:
1432 1 - 6a0 - minimal
1433 9 - 6c8 - minimal
1434 10 - 6d4 - big, vbl?
1435 */
1436
1437 static UINT16 irqreq;
1438
irq_callback(int irqline)1439 static int irq_callback(int irqline)
1440 {
1441 int i;
1442 for(i=15; i>=0 && !(irqreq & (1<<i)); i--);
1443 irqreq &= ~(1<<i);
1444 if(!irqreq)
1445 cpu_set_irq_line(0, 0, CLEAR_LINE);
1446 return i;
1447 }
1448
irq_init(void)1449 static void irq_init(void)
1450 {
1451 irqreq = 0;
1452 cpu_set_irq_line(0, 0, CLEAR_LINE);
1453 cpu_set_irq_callback(0, irq_callback);
1454 }
1455
irq_raise(int level)1456 static void irq_raise(int level)
1457 {
1458 irqreq |= (1<<level);
1459 cpu_set_irq_line(0, 0, ASSERT_LINE);
1460 }
1461
INTERRUPT_GEN(ms32_interrupt)1462 static INTERRUPT_GEN(ms32_interrupt)
1463 {
1464 if( cpu_getiloops() == 0 ) irq_raise(10);
1465 if( cpu_getiloops() == 1 ) irq_raise(9);
1466 /* hayaosi1 needs at least 12 IRQ 0 per frame to work (see code at FFE02289)
1467 kirarast needs it too, at least 8 per frame, but waits for a variable amount
1468 47pi2 needs ?? per frame (otherwise it hangs when you lose)
1469 in different points. Could this be a raster interrupt?
1470 Other games using it but not needing it to work:
1471 desertwr
1472 p47aces
1473 */
1474 if( cpu_getiloops() >= 3 && cpu_getiloops() <= 32 ) irq_raise(0);
1475 }
1476
1477 /********** SOUND **********/
1478
1479 /*
1480 Jaleco Mega System 32 sound Z80
1481
1482 RAM 62256 - the highest RAM adr line is grounded, only 16k is used
1483
1484 0000-3eff: program ROM (fixed)
1485 3f00-3f0f: YMF271-F
1486 3f10 : RW :command latch
1487 3f20 : RW :2nd command latch ?? (not connected on PCB)
1488 3f40 : W : YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4)
1489 3f70 : W : unknown ? connected to JALECO GS91022-04 pin 55 (from GAL)
1490 3f80 : Bank select - $bB
1491 4000-7fff: RAM
1492 8000-bfff: banked ROM area #1 - bank B+1
1493 c000-ffff: banked ROM area #2 - bank b+1
1494
1495 IRQ is unused (YMF271 timers are polled to control tempo)
1496 NMI reads the command latch
1497 code at $38 reads the 2nd command latch ??
1498 */
1499
READ_HANDLER(latch_r)1500 static READ_HANDLER( latch_r )
1501 {
1502 cpu_set_irq_line(1, IRQ_LINE_NMI, CLEAR_LINE);
1503 return soundlatch_r(0)^0xff;
1504 }
1505
WRITE_HANDLER(ms32_snd_bank_w)1506 static WRITE_HANDLER( ms32_snd_bank_w )
1507 {
1508 cpu_setbank(4, memory_region(REGION_CPU2) + 0x14000+0x4000*(data&0xf));
1509 cpu_setbank(5, memory_region(REGION_CPU2) + 0x14000+0x4000*(data>>4));
1510 }
1511
WRITE_HANDLER(to_main_w)1512 static WRITE_HANDLER( to_main_w )
1513 {
1514 to_main=data;
1515 irq_raise(1);
1516 }
1517
MEMORY_READ_START(ms32_snd_readmem)1518 static MEMORY_READ_START( ms32_snd_readmem )
1519 { 0x0000, 0x3eff, MRA_ROM },
1520 { 0x3f00, 0x3f0f, YMF271_0_r },
1521 { 0x3f10, 0x3f10, latch_r },
1522 { 0x3f20, 0x3f20, MRA_NOP }, /* 2nd latch ? */
1523 { 0x4000, 0x7fff, MRA_RAM },
1524 { 0x8000, 0xbfff, MRA_BANK4 },
1525 { 0xc000, 0xffff, MRA_BANK5 },
1526 MEMORY_END
1527
1528 static MEMORY_WRITE_START( ms32_snd_writemem )
1529 { 0x0000, 0x3eff, MWA_ROM },
1530 { 0x3f00, 0x3f0f, YMF271_0_w },
1531 { 0x3f10, 0x3f10, to_main_w },
1532 { 0x3f20, 0x3f20, MWA_NOP }, /* to_main2_w ? */
1533 { 0x3f40, 0x3f40, MWA_NOP }, /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
1534 { 0x3f70, 0x3f70, MWA_NOP }, /* watchdog? banking? very noisy*/
1535 { 0x3f80, 0x3f80, ms32_snd_bank_w },
1536 { 0x4000, 0x7fff, MWA_RAM },
1537 { 0x8000, 0xffff, MWA_ROM },
1538 MEMORY_END
1539
1540 static struct YMF271interface ymf271_interface =
1541 {
1542 1,
1543 { REGION_SOUND1, },
1544 { YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),},
1545 { 0 },
1546 };
1547
1548 /********** MACHINE INIT **********/
1549
MACHINE_INIT(ms32)1550 static MACHINE_INIT( ms32 )
1551 {
1552 cpu_setbank(1, memory_region(REGION_CPU1));
1553 cpu_setbank(4, memory_region(REGION_CPU2) + 0x14000);
1554 cpu_setbank(5, memory_region(REGION_CPU2) + 0x18000);
1555 irq_init();
1556 }
1557
1558 /********** MACHINE DRIVER **********/
1559
1560 static MACHINE_DRIVER_START( ms32 )
1561
1562 /* basic machine hardware */
1563 MDRV_CPU_ADD(V70, 20000000) /* 20MHz*/
MDRV_CPU_MEMORY(ms32_readmem,ms32_writemem)1564 MDRV_CPU_MEMORY(ms32_readmem,ms32_writemem)
1565 MDRV_CPU_VBLANK_INT(ms32_interrupt,32)
1566
1567 MDRV_CPU_ADD(Z80, 4000000)
1568 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
1569 MDRV_CPU_MEMORY(ms32_snd_readmem, ms32_snd_writemem)
1570
1571 MDRV_FRAMES_PER_SECOND(60)
1572 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1573 MDRV_INTERLEAVE(1000)
1574
1575 MDRV_MACHINE_INIT(ms32)
1576
1577 /* video hardware */
1578 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_NEEDS_6BITS_PER_GUN)
1579 MDRV_SCREEN_SIZE(40*8, 28*8)
1580 MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1581 MDRV_GFXDECODE(ms32_gfxdecodeinfo)
1582 MDRV_PALETTE_LENGTH(0x8000)
1583
1584 MDRV_VIDEO_START(ms32)
1585 MDRV_VIDEO_UPDATE(ms32)
1586
1587 /* sound hardware */
1588 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1589 MDRV_SOUND_ADD(YMF271, ymf271_interface)
1590 MACHINE_DRIVER_END
1591
1592
1593 /********** ROM LOADING **********/
1594
1595 ROM_START( bbbxing )
1596 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1597 ROM_LOAD32_BYTE( "bbbx25.bin", 0x000003, 0x80000, CRC(b526b41e) SHA1(44945931b159646468a954d5acdd2c6c61daf098) )
1598 ROM_LOAD32_BYTE( "bbbx27.bin", 0x000002, 0x80000, CRC(45b27ad8) SHA1(0af415b17400aabecdcb6d1d069f28b64780017f) )
1599 ROM_LOAD32_BYTE( "bbbx29.bin", 0x000001, 0x80000, CRC(85bbbe79) SHA1(bc5ebb96491762e6a0d202ddf7faeb57c66211b4) )
1600 ROM_LOAD32_BYTE( "bbbx31.bin", 0x000000, 0x80000, CRC(e0c865ed) SHA1(f21e8dc174c50d7afdd3f82c1c66dfcc002bdd07) )
1601
1602 ROM_REGION( 0x1100000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1603 ROM_LOAD32_WORD( "bbbx1.bin", 0x0000002, 0x200000, CRC(c1c10c3b) SHA1(e1f739f38e148c4d7aff6b81b3e42131c5c6c3dd) )
1604 ROM_LOAD32_WORD( "bbbx13.bin", 0x0000000, 0x200000, CRC(4b8c1574) SHA1(c389c70b532d54528a175f460ca3f329b34cf67c) )
1605 ROM_LOAD32_WORD( "bbbx2.bin", 0x0400002, 0x200000, CRC(03b77c1e) SHA1(f156ae6a4f2a8ae99815eb5a7b28425d273c1c3e) )
1606 ROM_LOAD32_WORD( "bbbx14.bin", 0x0400000, 0x200000, CRC(e9cfd83b) SHA1(8580c571a4144ea27c7fca7e86e3e4f5e4f5facb) )
1607 ROM_LOAD32_WORD( "bbbx3.bin", 0x0800002, 0x200000, CRC(bba0d1a4) SHA1(15f8de7478182c36927a84ee8de8eb8ac3e65d7b) )
1608 ROM_LOAD32_WORD( "bbbx15.bin", 0x0800000, 0x200000, CRC(6ab64a10) SHA1(4ee2cec6b9f8d729ff53851f7949c5cd3a8029d8) )
1609 ROM_LOAD32_WORD( "bbbx4.bin", 0x0c00002, 0x200000, CRC(97f97e3a) SHA1(260603a10fe742986aa4f7fb90e4f141bdadae17) )
1610 ROM_LOAD32_WORD( "bbbx16.bin", 0x0c00000, 0x200000, CRC(e001d6cb) SHA1(c887dbf192e6b46c86fd86bb5f58b44ab8fe8d73) )
1611 ROM_LOAD32_WORD( "bbbx5.bin", 0x1000002, 0x080000, CRC(64989edf) SHA1(033eab0e8a53607b2bb420f6356804b2cfa1544c) )
1612 ROM_LOAD32_WORD( "bbbx17.bin", 0x1000000, 0x080000, CRC(1d7ebaf0) SHA1(5aac7cb01013ce3be206318678aced5812bff9a9) )
1613
1614 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1615 ROM_LOAD( "bbbx9.bin", 0x000000, 0x200000, CRC(a41cb650) SHA1(1c55a4afe55c1250806f2d93c25842dc3fb7f987) )
1616
1617 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1618 ROM_LOAD( "bbbx11.bin", 0x000000, 0x200000, CRC(85238ca9) SHA1(1ce32d585fe66764d621c11882ef9d2abaea6256) )
1619
1620 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1621 ROM_LOAD( "bbbx32-2.bin",0x000000, 0x080000, CRC(3ffdae75) SHA1(2b837d28f7ecdd49e8525bd5c249e83021d5fe9f) )
1622
1623 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1624 ROM_LOAD( "bbbx21.bin", 0x000000, 0x040000, CRC(5f3ea01f) SHA1(761f6a5852312d2b12de009f3cf0476f5b2e906c) )
1625 ROM_RELOAD( 0x010000, 0x40000 )
1626
1627 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1628 ROM_LOAD( "bbbx22.bin", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common samples*/
1629 ROM_LOAD( "bbbx23.bin", 0x200000, 0x200000, CRC(b7875a23) SHA1(62bb4c1318f98ea68894658d92ce08e84d386d0c) )
1630 ROM_END
1631
1632 ROM_START( 47pie2 )
1633 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1634 ROM_LOAD32_BYTE( "93166-26.v11", 0x000003, 0x80000, CRC(e4e62134) SHA1(224b3e8dba56009bf2af6eceb7495e60302a6360) )
1635 ROM_LOAD32_BYTE( "93166-27.v11", 0x000002, 0x80000, CRC(7bd00919) SHA1(60565b5e1da5fee00ac4a7fb1202d7150dab49ee) )
1636 ROM_LOAD32_BYTE( "93166-28.v11", 0x000001, 0x80000, CRC(aa49eec2) SHA1(173afc596caa1c464fc3247cb64d36c1d97a1520) )
1637 ROM_LOAD32_BYTE( "93166-29.v11", 0x000000, 0x80000, CRC(92763e41) SHA1(eb593bbb586661c4c4e8728d845b146974d0bdf8) )
1638
1639 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1640 ROM_LOAD32_WORD( "94019-02.1", 0x000002, 0x200000, CRC(f9d692f2) SHA1(666df55d26e00be39073173fa3616ac9dafbe615) )
1641 ROM_LOAD32_WORD( "94019-01.13", 0x000000, 0x200000, CRC(1ddfe825) SHA1(27fbf492fdb4f0b4b8db18330e840c130213e15e) )
1642 ROM_LOAD32_WORD( "94019-04.2", 0x400002, 0x200000, CRC(24ca77ec) SHA1(a5c575224ab276cbed5785f40fc0d35dd2748e74) )
1643 ROM_LOAD32_WORD( "94019-03.14", 0x400000, 0x200000, CRC(b26426c4) SHA1(2d95137edea7d0c380dd8fd99852254ad3e4c837) )
1644 ROM_LOAD32_WORD( "94019-06.3", 0x800002, 0x200000, CRC(c8aa4b57) SHA1(55da6a43ba6f0cb32f5d024f67cae21d04019d2a) )
1645 ROM_LOAD32_WORD( "94019-05.15", 0x800000, 0x200000, CRC(1da63eb4) SHA1(8193ad27ddfe6ba242b73082d1b4a400e88401ba) )
1646 ROM_LOAD32_WORD( "94019-08.4", 0xc00002, 0x200000, CRC(4b07edc9) SHA1(22aaa923a94a7bec997d2adabc8ec2c7696c33a5) )
1647 ROM_LOAD32_WORD( "94019-07.16", 0xc00000, 0x200000, CRC(34f471a8) SHA1(4c9c358a9bfdb436a211caa14d085e631609681d) )
1648
1649 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1650 ROM_LOAD( "94019-09.11", 0x000000, 0x200000, CRC(cde7bb6f) SHA1(47454dac4ce67ce8d7e0c5ef3a732477ac8170a7) )
1651
1652 ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1653 ROM_LOAD( "94019-12.10", 0x000000, 0x100000, CRC(15ae05d9) SHA1(ac00d3766c42ccba4585b9acfacc81bcb940ac26) )
1654
1655 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1656 ROM_LOAD( "93166-30.bin", 0x000000, 0x080000, CRC(0c738883) SHA1(e552c1842d759e5e617eb9c6cc178620a461b4dd) )
1657
1658 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1659 ROM_LOAD( "93166-21.bin", 0x000000, 0x040000, CRC(e7fd1bf4) SHA1(74567530364bfd93bffddb588758d8498e197668) )
1660 ROM_RELOAD( 0x010000, 0x40000 )
1661
1662 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1663 ROM_LOAD( "94019-10.22", 0x000000, 0x200000, CRC(745d41ec) SHA1(9118d0f27b65c9d37970326ccf86fdccb81d32f5) )
1664 ROM_LOAD( "94019-11.23", 0x200000, 0x200000, CRC(021dc350) SHA1(c71936091f86440201fdbdc94b0d1d22c4018188) )
1665 ROM_END
1666
1667 ROM_START( 47pie2o )
1668 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1669 ROM_LOAD32_BYTE( "93166-26.v10", 0x000003, 0x80000, CRC(21dc94dd) SHA1(faf2eea891cb061d5df47ef31d9538feb0c1233c) )
1670 ROM_LOAD32_BYTE( "93166-27.v10", 0x000002, 0x80000, CRC(5bf18a7d) SHA1(70869dc37e6ad79ce4e85db71a03c5cccf9d732b) )
1671 ROM_LOAD32_BYTE( "93166-28.v10", 0x000001, 0x80000, CRC(b1261d51) SHA1(3f393aeb7a076c4d2d2cc7f22ead05f405186d80) )
1672 ROM_LOAD32_BYTE( "93166-29.v10", 0x000000, 0x80000, CRC(9211c82a) SHA1(0aa3f93293b81e0f66b985046eb5e91708693959) )
1673
1674 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1675 ROM_LOAD32_WORD( "94019-02.1", 0x000002, 0x200000, CRC(f9d692f2) SHA1(666df55d26e00be39073173fa3616ac9dafbe615) )
1676 ROM_LOAD32_WORD( "94019-01.13", 0x000000, 0x200000, CRC(1ddfe825) SHA1(27fbf492fdb4f0b4b8db18330e840c130213e15e) )
1677 ROM_LOAD32_WORD( "94019-04.2", 0x400002, 0x200000, CRC(24ca77ec) SHA1(a5c575224ab276cbed5785f40fc0d35dd2748e74) )
1678 ROM_LOAD32_WORD( "94019-03.14", 0x400000, 0x200000, CRC(b26426c4) SHA1(2d95137edea7d0c380dd8fd99852254ad3e4c837) )
1679 ROM_LOAD32_WORD( "94019-06.3", 0x800002, 0x200000, CRC(c8aa4b57) SHA1(55da6a43ba6f0cb32f5d024f67cae21d04019d2a) )
1680 ROM_LOAD32_WORD( "94019-05.15", 0x800000, 0x200000, CRC(1da63eb4) SHA1(8193ad27ddfe6ba242b73082d1b4a400e88401ba) )
1681 ROM_LOAD32_WORD( "94019-08.4", 0xc00002, 0x200000, CRC(4b07edc9) SHA1(22aaa923a94a7bec997d2adabc8ec2c7696c33a5) )
1682 ROM_LOAD32_WORD( "94019-07.16", 0xc00000, 0x200000, CRC(34f471a8) SHA1(4c9c358a9bfdb436a211caa14d085e631609681d) )
1683
1684 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1685 ROM_LOAD( "94019-09.11", 0x000000, 0x200000, CRC(cde7bb6f) SHA1(47454dac4ce67ce8d7e0c5ef3a732477ac8170a7) )
1686
1687 ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1688 ROM_LOAD( "94019-12.10", 0x000000, 0x100000, CRC(15ae05d9) SHA1(ac00d3766c42ccba4585b9acfacc81bcb940ac26) )
1689
1690 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1691 ROM_LOAD( "93166-30.bin", 0x000000, 0x080000, CRC(0c738883) SHA1(e552c1842d759e5e617eb9c6cc178620a461b4dd) )
1692
1693 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1694 ROM_LOAD( "93166-21.bin", 0x000000, 0x040000, CRC(e7fd1bf4) SHA1(74567530364bfd93bffddb588758d8498e197668) )
1695 ROM_RELOAD( 0x010000, 0x40000 )
1696
1697 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1698 ROM_LOAD( "94019-10.22", 0x000000, 0x200000, CRC(745d41ec) SHA1(9118d0f27b65c9d37970326ccf86fdccb81d32f5) )
1699 ROM_LOAD( "94019-11.23", 0x200000, 0x200000, CRC(021dc350) SHA1(c71936091f86440201fdbdc94b0d1d22c4018188) )
1700 ROM_END
1701
1702 ROM_START( desertwr )
1703 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1704 ROM_LOAD32_BYTE( "93166-26.37", 0x000003, 0x80000, CRC(582b9584) SHA1(027a987cde7e9e1b24aef6a3086eba61679ad0b6) )
1705 ROM_LOAD32_BYTE( "93166-27.38", 0x000002, 0x80000, CRC(cb60dda3) SHA1(0499b8ab19abdf8db8c18d778b3f9f6e0d277ff0) )
1706 ROM_LOAD32_BYTE( "93166-28.39", 0x000001, 0x80000, CRC(0de40efb) SHA1(c49c3b27939e428dec1f642b7fdb9a1ff760289a) )
1707 ROM_LOAD32_BYTE( "93166-29.40", 0x000000, 0x80000, CRC(fc25eae2) SHA1(a4d47fcb4d4c3285cf67d77d8a21478f344b98ca) )
1708
1709 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1710 ROM_LOAD32_WORD( "94038-01.20", 0x000000, 0x200000, CRC(f11f83e2) SHA1(e3c99e6583003210483163c79182cb14aa334702) )
1711 ROM_LOAD32_WORD( "94038-02.3", 0x000002, 0x200000, CRC(3d1fa710) SHA1(5fae3e8c714cca88e22e432dd7275c6898c631a8) )
1712 ROM_LOAD32_WORD( "94038-03.21", 0x400000, 0x200000, CRC(84fd5790) SHA1(6187ff32a63f3b4105ea875f52237f0d4314f8b6) )
1713 ROM_LOAD32_WORD( "94038-04.4", 0x400002, 0x200000, CRC(b9ef5b78) SHA1(e2f160a93532f67948a557db717d44c926ae0e49) )
1714 ROM_LOAD32_WORD( "94038-05.22", 0x800000, 0x200000, CRC(feee1b8d) SHA1(39e1d424dd56257139ab5ab8e897caa1c9cd4e71) )
1715 ROM_LOAD32_WORD( "94038-06.5", 0x800002, 0x200000, CRC(d417f289) SHA1(39cca11989bb5dc95ef03013d23a7c100bcb36ab) )
1716 ROM_LOAD32_WORD( "94038-07.23", 0xc00000, 0x200000, CRC(426f4193) SHA1(98a16a70c225d7cd061fcd6e88992d393e6ef9fd) )
1717 ROM_LOAD32_WORD( "94038-08.6", 0xc00002, 0x200000, CRC(f4088399) SHA1(9d53880996f85776815840bca1f8c3958de4c275) )
1718
1719 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1720 ROM_LOAD( "94038-11.13", 0x000000, 0x200000, CRC(bf2ec3a3) SHA1(904cd5ab2e855bdb94bc70efa6db42af672337d7) )
1721 ROM_LOAD( "94038-12.14", 0x200000, 0x200000, CRC(d0e113da) SHA1(57f27cbd58421a0afe724fec5628c4a29aad8868) )
1722
1723 ROM_REGION( 0x400000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1724 ROM_LOAD( "94038-09.12", 0x000000, 0x200000, CRC(72ec1ce7) SHA1(88bd9ca3aa7a6410e8fcf6fd70304f12724653bb) )
1725 ROM_LOAD( "94038-10.11", 0x200000, 0x200000, CRC(1e17f2a9) SHA1(19e6be1daa157593fbab84149f1f739dd39c9226) )
1726
1727 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1728 ROM_LOAD( "93166-30.41", 0x000000, 0x080000, CRC(980ab89c) SHA1(8468fc13a5988e25750e8d99ff464f46e86ab412) )
1729
1730 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1731 ROM_LOAD( "93166-21.30", 0x000000, 0x040000, CRC(9300be4c) SHA1(a8e9c1704abf26545aeb9a5d28fd0cafd38f2d84) )
1732 ROM_RELOAD( 0x010000, 0x40000 )
1733
1734 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1735 ROM_LOAD( "92042-01.33", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common samples*/
1736 ROM_LOAD( "94038-13.34", 0x200000, 0x200000, CRC(b0cac8f2) SHA1(f7d2e32d9c2f301341f7c02678c2c1e09ce655ba) )
1737 ROM_END
1738
1739 ROM_START( f1superb )
1740 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1741 ROM_LOAD32_BYTE( "f1sb26.bin", 0x000003, 0x80000, CRC(042fccd5) SHA1(4a69de3aef51adad502d54987468170b9e7bb8ac) )
1742 ROM_LOAD32_BYTE( "f1sb27.bin", 0x000002, 0x80000, CRC(5f96cf32) SHA1(c9c64576a8bb81a8e8bbe30b054ed33afd760b93) )
1743 ROM_LOAD32_BYTE( "f1sb28.bin", 0x000001, 0x80000, CRC(cfda8003) SHA1(460146556f606bf213d7e2ab29d2eb8827131bd0) )
1744 ROM_LOAD32_BYTE( "f1sb29.bin", 0x000000, 0x80000, CRC(f21f1481) SHA1(97a97ff3b9a71b1a024d8f2cfe57a1d02cec5ea4) )
1745
1746 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* 8x8 not all? */
1747 ROM_LOAD32_WORD( "f1sb1.bin", 0x0000002, 0x200000, CRC(53a3a97b) SHA1(c8cd501ae10d9eb48a02e4e59a1ce389a27afc44) )
1748 ROM_LOAD32_WORD( "f1sb13.bin", 0x0000000, 0x200000, CRC(36565a99) SHA1(db08ff3107dcc07ca31140715d7d4b7bd27fa4c5) )
1749 ROM_LOAD32_WORD( "f1sb2.bin", 0x0400002, 0x200000, CRC(a452f50a) SHA1(3782a37203b652ea5df5b04dc74a0fdace7b14cc) )
1750 ROM_LOAD32_WORD( "f1sb14.bin", 0x0400000, 0x200000, CRC(c0c20490) SHA1(9e93beae38c5cfca9f381b4d134c1d95cfa2223a) )
1751 ROM_LOAD32_WORD( "f1sb3.bin", 0x0800002, 0x200000, CRC(265d068c) SHA1(a2a7850fbc2a04e448f772544d2f6925f9aaf99c) )
1752 ROM_LOAD32_WORD( "f1sb15.bin", 0x0800000, 0x200000, CRC(575a146e) SHA1(bf67a89ac3145d38564b9dbc3c650c9d5f2bcd92) )
1753 ROM_LOAD32_WORD( "f1sb4.bin", 0x0c00002, 0x200000, CRC(0ccc66fd) SHA1(07ffef821300386224a7743e8f83088e3437c6db) )
1754 ROM_LOAD32_WORD( "f1sb16.bin", 0x0c00000, 0x200000, CRC(a2d017a1) SHA1(6c1dd67a1c9c18d69f7dbf7d4637671809be5c89) )
1755 ROM_LOAD32_WORD( "f1sb5.bin", 0x1000002, 0x200000, CRC(bff4271b) SHA1(dc5672f51348fe0a79352eeafaeeefd78428fe5a) )
1756 ROM_LOAD32_WORD( "f1sb17.bin", 0x1000000, 0x200000, CRC(2b9739d5) SHA1(db9e93fe79dfa041584730df9cc678caad073251) )
1757 ROM_LOAD32_WORD( "f1sb6.bin", 0x1400002, 0x200000, CRC(6caf48ec) SHA1(18ea445970285950c61c8eff74a3ab6387816990) )
1758 ROM_LOAD32_WORD( "f1sb18.bin", 0x1400000, 0x200000, CRC(c49055ff) SHA1(6038dc497583229060ad686090d6940c0a3d1558) )
1759 ROM_LOAD32_WORD( "f1sb7.bin", 0x1800002, 0x200000, CRC(a5458947) SHA1(7743d67a167f6eecfac6614d1336c6df425e5e95) )
1760 ROM_LOAD32_WORD( "f1sb19.bin", 0x1800000, 0x200000, CRC(b7cacf0d) SHA1(cea52b1062cf154ccba11640798902b0f9ddeb77) )
1761 ROM_LOAD32_WORD( "f1sb8.bin", 0x1c00002, 0x200000, CRC(ba3f1533) SHA1(3ff1c4cca8358fc8daf0d2c381672569085ac9ae) )
1762 ROM_LOAD32_WORD( "f1sb20.bin", 0x1c00000, 0x200000, CRC(fa349897) SHA1(31e08aa2821e409057e3094333b9ecbe04a6a38a) )
1763
1764 ROM_REGION( 0x800000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1765 ROM_LOAD( "f1sb9.bin", 0x000000, 0x200000, CRC(66b12e1f) SHA1(4dc3f162a5116403cc0c491af335208672c8e9af) )
1766 ROM_LOAD( "f1sb10.bin", 0x200000, 0x200000, CRC(893d7f4b) SHA1(b2734f20f703a0dcf8b1fdaebf2b6198b2fb0f51) )
1767 ROM_LOAD( "f1sb11.bin", 0x400000, 0x200000, CRC(0b848bb5) SHA1(e4c0e434add151112352d6068e5de1a7098e6346) )
1768 ROM_LOAD( "f1sb12.bin", 0x600000, 0x200000, CRC(edecd5f4) SHA1(9b86802d08e5c8ec1a6dcea75dc8f050d3e96970) )
1769
1770 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1771 ROM_LOAD( "f1sb31.bin", 0x000000, 0x200000, CRC(1d0d2efd) SHA1(e6446ef9c71be9316c286157f71e0043347c6a5c) )
1772
1773 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1774 ROM_LOAD( "f1sb32.bin", 0x000000, 0x080000, CRC(1b31fcce) SHA1(354cc6f43cd3bf3ba921ac8c5631ab993bedf563) )
1775
1776 ROM_REGION( 0x800000, REGION_USER1, 0 ) /* extra ROMs, unknown */
1777 ROM_LOAD( "f1sb2b.bin", 0x000000, 0x200000, CRC(18d73b16) SHA1(f06f4d31b15658cc1e1b559ae3b8a90b797546ca) )
1778 ROM_LOAD( "f1sb3b.bin", 0x200000, 0x200000, CRC(ce728fe0) SHA1(e0fd7b8f4d3dc9e2b15ddf027c61e67e5c1f22b5) )
1779 ROM_LOAD( "f1sb4b.bin", 0x400000, 0x200000, CRC(077180c5) SHA1(ab16739da709ecdbbb1264beba349ef6ecf3f8b1) )
1780 ROM_LOAD( "f1sb5b.bin", 0x600000, 0x200000, CRC(efabc47d) SHA1(195afde8a1f45da4fc04c3080a3cf5fdfff7be5e) )
1781
1782 ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* z80 program */
1783 ROM_LOAD( "f1sb21.bin", 0x000000, 0x040000, CRC(e131e1c7) SHA1(33f95a074930c49548069518d8c6dcde7fa25627) )
1784
1785 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1786 ROM_LOAD( "f1sb23.bin", 0x000000, 0x200000, CRC(bfefa3ab) SHA1(7770cc9b091e258ede7f2780df61a592cc008dd7) )
1787 ROM_LOAD( "f1sb24.bin", 0x200000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common samples*/
1788 ROM_END
1789
1790 ROM_START( gratia )
1791 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1792 ROM_LOAD32_BYTE( "94019.026", 0x000003, 0x80000, CRC(f398cba5) SHA1(11e06abebfdfc8a99b5c56e9f6ed389f645b6c72) )
1793 ROM_LOAD32_BYTE( "94019.027", 0x000002, 0x80000, CRC(ba3318c5) SHA1(9b100988b998c39b586b51fe9fee874dbf711610) )
1794 ROM_LOAD32_BYTE( "94019.028", 0x000001, 0x80000, CRC(e0762e89) SHA1(a567c347e7f73f1ef1c753d14ac4f58311380fac) )
1795 ROM_LOAD32_BYTE( "94019.029", 0x000000, 0x80000, CRC(8059800b) SHA1(7548d01b6ea15e962353b3585db6515e5819e5ce) )
1796
1797 ROM_REGION( 0x0c00000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1798 ROM_LOAD32_WORD( "94019.01", 0x000000, 0x200000, CRC(92d8ae9b) SHA1(02b36e6e14b28a9830e07fd328772dbb20b76889) )
1799 ROM_LOAD32_WORD( "94019.02", 0x000002, 0x200000, CRC(f7bd9cc4) SHA1(5658bfb4081439ab06c6ade2531581aa60d1c6be) )
1800 ROM_LOAD32_WORD( "94019.03", 0x400000, 0x200000, CRC(62a69590) SHA1(d95cc1e1ec85161ee6cd1ae77b405cf8ef81217a) )
1801 ROM_LOAD32_WORD( "94019.04", 0x400002, 0x200000, CRC(5a76a39b) SHA1(fc7c1ff9a0a3c2639fc52720aefe8b2a9e5d2857) )
1802 ROM_LOAD32_WORD( "94019.05", 0x800000, 0x200000, CRC(a16994df) SHA1(9170b1fd9252d7a9601c3b2e6b1ba86686730b86) )
1803 ROM_LOAD32_WORD( "94019.06", 0x800002, 0x200000, CRC(01d52ef1) SHA1(1585c7eb3729bab78467f627b7b671d619451a74) )
1804
1805 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1806 ROM_LOAD( "94019.08", 0x000000, 0x200000, CRC(abd124e0) SHA1(2da1d818c909e4abbb79ed03f3dbf15d744439ce) )
1807 ROM_LOAD( "94019.09", 0x200000, 0x200000, CRC(711ab08b) SHA1(185b80b965ac3aba4857b4f83637008c2c1cc6ff) )
1808
1809 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1810 ROM_LOAD( "94019_2.07", 0x000000, 0x200000, CRC(043f969b) SHA1(ad10339e561c1a65451a2e9a8e79ceda3787674a) )
1811
1812 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1813 ROM_LOAD( "94019_2.030",0x000000, 0x080000, CRC(f9543fcf) SHA1(8466c7893bc6c43e2a80b8f91a776fd0a345ea6c) )
1814
1815 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1816 ROM_LOAD( "94019.021",0x000000, 0x040000, CRC(6e8dd039) SHA1(f1e69c9b40b14ba0f8377a6d9b6c3933919bc803) )
1817 ROM_RELOAD( 0x010000, 0x40000 )
1818
1819 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1820 ROM_LOAD( "92042.01", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common rom?*/
1821 ROM_LOAD( "94019.10", 0x200000, 0x200000, CRC(a751e316) SHA1(3d658370c71b83582fd132b3da441089df9bfd05) )
1822 ROM_END
1823
1824 ROM_START( gratiaa )
1825 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1826 ROM_LOAD32_BYTE( "94019.026", 0x000003, 0x80000, CRC(f398cba5) SHA1(11e06abebfdfc8a99b5c56e9f6ed389f645b6c72) )
1827 ROM_LOAD32_BYTE( "94019.027", 0x000002, 0x80000, CRC(ba3318c5) SHA1(9b100988b998c39b586b51fe9fee874dbf711610) )
1828 ROM_LOAD32_BYTE( "94019.028", 0x000001, 0x80000, CRC(e0762e89) SHA1(a567c347e7f73f1ef1c753d14ac4f58311380fac) )
1829 ROM_LOAD32_BYTE( "94019.029", 0x000000, 0x80000, CRC(8059800b) SHA1(7548d01b6ea15e962353b3585db6515e5819e5ce) )
1830
1831 ROM_REGION( 0x0c00000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1832 ROM_LOAD32_WORD( "94019.01", 0x000000, 0x200000, CRC(92d8ae9b) SHA1(02b36e6e14b28a9830e07fd328772dbb20b76889) )
1833 ROM_LOAD32_WORD( "94019.02", 0x000002, 0x200000, CRC(f7bd9cc4) SHA1(5658bfb4081439ab06c6ade2531581aa60d1c6be) )
1834 ROM_LOAD32_WORD( "94019.03", 0x400000, 0x200000, CRC(62a69590) SHA1(d95cc1e1ec85161ee6cd1ae77b405cf8ef81217a) )
1835 ROM_LOAD32_WORD( "94019.04", 0x400002, 0x200000, CRC(5a76a39b) SHA1(fc7c1ff9a0a3c2639fc52720aefe8b2a9e5d2857) )
1836 ROM_LOAD32_WORD( "94019.05", 0x800000, 0x200000, CRC(a16994df) SHA1(9170b1fd9252d7a9601c3b2e6b1ba86686730b86) )
1837 ROM_LOAD32_WORD( "94019.06", 0x800002, 0x200000, CRC(01d52ef1) SHA1(1585c7eb3729bab78467f627b7b671d619451a74) )
1838
1839 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1840 ROM_LOAD( "94019.08", 0x000000, 0x200000, CRC(abd124e0) SHA1(2da1d818c909e4abbb79ed03f3dbf15d744439ce) )
1841 ROM_LOAD( "94019.09", 0x200000, 0x200000, CRC(711ab08b) SHA1(185b80b965ac3aba4857b4f83637008c2c1cc6ff) )
1842
1843 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1844 ROM_LOAD( "94019.07", 0x000000, 0x200000, BAD_DUMP CRC(acb75824) SHA1(3b43e00a2d240761565042c8feead25a83ef0eb1) ) /* FIXED BITS (xxxxxxxx11111111)*/
1845
1846 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1847 ROM_LOAD( "94019.030",0x000000, 0x080000, CRC(026b5379) SHA1(b9237477f1bf8ae83174e8231492fe667e6d6a13) )
1848
1849 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1850 ROM_LOAD( "94019.021",0x000000, 0x040000, CRC(6e8dd039) SHA1(f1e69c9b40b14ba0f8377a6d9b6c3933919bc803) )
1851 ROM_RELOAD( 0x010000, 0x40000 )
1852
1853 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1854 ROM_LOAD( "92042.01", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common rom?*/
1855 ROM_LOAD( "94019.10", 0x200000, 0x200000, CRC(a751e316) SHA1(3d658370c71b83582fd132b3da441089df9bfd05) )
1856 ROM_END
1857
1858 ROM_START( gametngk )
1859 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1860 ROM_LOAD32_BYTE( "mr94041.26", 0x000003, 0x80000, CRC(e622e774) SHA1(203c2a3563a337af4cec92a66e0fa410d901b01f) )
1861 ROM_LOAD32_BYTE( "mr94041.27", 0x000002, 0x80000, CRC(da862b9c) SHA1(17dc6da08d7f5551c8f4bc4d9c416dbfc82d8397) )
1862 ROM_LOAD32_BYTE( "mr94041.28", 0x000001, 0x80000, CRC(b3738934) SHA1(cd07572e55e83807e76179cfc6b97e0410067911) )
1863 ROM_LOAD32_BYTE( "mr94041.29", 0x000000, 0x80000, CRC(45154a45) SHA1(4c7c2c6738fdfe54ebe41a0ac6222cbfce5d7757) )
1864
1865 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1866 ROM_LOAD32_WORD( "mr94041.01", 0x0000000, 0x200000, CRC(3f99adf7) SHA1(cbb8d2fc253b0c58e7eb9286c66e6b36daf9d4af) )
1867 ROM_LOAD32_WORD( "mr94041.02", 0x0000002, 0x200000, CRC(c3c5ae69) SHA1(5ed7f57a7139f87c680c68e44ea4022b917a9381) )
1868 ROM_LOAD32_WORD( "mr94041.03", 0x0400000, 0x200000, CRC(d858b6de) SHA1(a06cf529c9508c8c8508894e2e004373edd9debf) )
1869 ROM_LOAD32_WORD( "mr94041.04", 0x0400002, 0x200000, CRC(8c96ca20) SHA1(097cab64ef8e515c59178c36171f87bed4b3d1e5) )
1870 ROM_LOAD32_WORD( "mr94041.05", 0x0800000, 0x200000, CRC(ac664a0b) SHA1(bd002822a38369599a1b5a7456957de1d9cd976e) )
1871 ROM_LOAD32_WORD( "mr94041.06", 0x0800002, 0x200000, CRC(70dd0dd4) SHA1(da648c16ad0cb12ac66656522da14392be7772c9) )
1872 ROM_LOAD32_WORD( "mr94041.07", 0x0c00000, 0x200000, CRC(a6966af5) SHA1(3a65824f3f325af39d8e9932357ce9f8878f0321) )
1873 ROM_LOAD32_WORD( "mr94041.08", 0x0c00002, 0x200000, CRC(d7d2f73a) SHA1(0eb28f4cdea73aa8fed0b62cbac6cd7d7694c2ee) )
1874
1875 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1876 ROM_LOAD( "mr94041.11", 0x000000, 0x200000, CRC(00dcdbc3) SHA1(f7e34bc9f714ea81fc9855d90db792dd1e99bae8) )
1877 ROM_LOAD( "mr94041.12", 0x200000, 0x200000, CRC(0ce48329) SHA1(9c198cef998eb3b9c33123bd8cc02210498f82d9) )
1878
1879 ROM_REGION( 0x400000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1880 ROM_LOAD( "mr94041.09", 0x000000, 0x200000, CRC(a33e6051) SHA1(d6e34b022eb36dcfa8cfe6d6d1254f994b3b3dca) )
1881 ROM_LOAD( "mr94041.10", 0x200000, 0x200000, CRC(b3497147) SHA1(df7d8ea7ec3e3df5e0c6658f14995df5479181bf) )
1882
1883 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1884 ROM_LOAD( "mr94041.30", 0x000000, 0x080000, CRC(c0f27b7f) SHA1(874fe80aa4b46520f844ef6efa61f28eabccbc4f) )
1885
1886 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1887 ROM_LOAD( "mr94041.21", 0x000000, 0x040000, CRC(38dcb837) SHA1(29fdde54e52dec4ee39a6f2db8e0d67774320d15) )
1888 ROM_RELOAD( 0x010000, 0x40000 )
1889
1890 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
1891 ROM_LOAD( "mr94041.13", 0x000000, 0x200000, CRC(fba84caf) SHA1(318270dbf825a8e0f315992c49a2dc34dd1df7c1) )
1892 ROM_LOAD( "mr94041.14", 0x200000, 0x200000, CRC(2d6308bd) SHA1(600b6ccdbb976301075e0b287124a9fd5fe7fc1b) )
1893 ROM_END
1894
1895 ROM_START( hayaosi1 )
1896 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1897 ROM_LOAD32_BYTE( "mb93138a.25", 0x000003, 0x80000, CRC(563c6f2f) SHA1(bc2a61fd2e0adf58256feeef8491b67af6d6eacf) )
1898 ROM_LOAD32_BYTE( "mb93138a.27", 0x000002, 0x80000, CRC(fe8e283a) SHA1(fc6c06ae296110b1f5794187d5208b17541614cb) )
1899 ROM_LOAD32_BYTE( "mb93138a.29", 0x000001, 0x80000, CRC(e6fe3d0d) SHA1(9a0caab82b160991b4f2ac993e7e4b4c5d3bb15e) )
1900 ROM_LOAD32_BYTE( "mb93138a.31", 0x000000, 0x80000, CRC(d944bf8c) SHA1(ce93b5d2ebe886b38dc42b1e554b17dc951a51b4) )
1901
1902 ROM_REGION( 0x900000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1903 ROM_LOAD32_WORD( "mr93038.04", 0x000000, 0x200000, CRC(ab5edb11) SHA1(b7742aefbce9efc512c3526714b6f20a6c03af60) )
1904 ROM_LOAD32_WORD( "mr93038.05", 0x000002, 0x200000, CRC(274522f1) SHA1(717435d6bf1b2a2220a2f0a53b070bb81cc2ed2b) )
1905 ROM_LOAD32_WORD( "mr93038.06", 0x400000, 0x200000, CRC(f9961ebf) SHA1(e91b160cb5a76e3f6044cc71681dadf2fbff7e8b) )
1906 ROM_LOAD32_WORD( "mr93038.07", 0x400002, 0x200000, CRC(1abef1c5) SHA1(4b40adaebf9d9963493bfb285badbb19a5b181be) )
1907 ROM_LOAD32_WORD( "mb93138a.15", 0x800000, 0x080000, CRC(a5f64d87) SHA1(11bf017f700faba57a5a2edced7a5d81a581bc50) )
1908 ROM_LOAD32_WORD( "mb93138a.3", 0x800002, 0x080000, CRC(a2ae2b21) SHA1(65cee4e5e0a9b8dcac578e34210e1af7d7b2e6f7) )
1909
1910 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1911 ROM_LOAD( "mr93038.03", 0x000000, 0x200000, CRC(6999dec9) SHA1(eb4c6ba200cd08b41509314c659feb3af12117ee) )
1912
1913 ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1914 ROM_LOAD( "mr93038.08", 0x000000, 0x100000, CRC(21282cb0) SHA1(52ea94a6457f7684674783c362052bcc40086dd0) )
1915
1916 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1917 ROM_LOAD( "mb93138a.32", 0x000000, 0x080000, CRC(f563a144) SHA1(14d86e4992329811857e1faf282cd9ec530a364c) )
1918
1919 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1920 ROM_LOAD( "mb93138a.21", 0x000000, 0x040000, CRC(8e8048b0) SHA1(93285a0570ed829b36f4e8c57d133a7dd14f123d) )
1921 ROM_RELOAD( 0x010000, 0x40000 )
1922
1923 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples - 8-bit signed PCM */
1924 ROM_LOAD( "mr92042.01", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common samples*/
1925 ROM_LOAD( "mr93038.01", 0x200000, 0x200000, CRC(b8a38bfc) SHA1(1aa7b69beebceb6f09a1ee006de054cb84002e94) )
1926 ROM_END
1927
1928 ROM_START( kirarast )
1929 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1930 ROM_LOAD32_BYTE( "mr95025.26", 0x000003, 0x80000, CRC(eb7faf5f) SHA1(5b79ff3043db5ef2622ae1665145462d949c9bb8) )
1931 ROM_LOAD32_BYTE( "mr95025.27", 0x000002, 0x80000, CRC(80644d05) SHA1(6da8bf8aeb1477112f9022c0c5f472cbcd27df8e) )
1932 ROM_LOAD32_BYTE( "mr95025.28", 0x000001, 0x80000, CRC(6df8c384) SHA1(3ad01d3d51cfc1f48029c16ee1cc74fc59d7603c) )
1933 ROM_LOAD32_BYTE( "mr95025.29", 0x000000, 0x80000, CRC(3b6e681b) SHA1(148fa10631db53a4ad1dcdfb60b4f0654e077396) )
1934
1935 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1936 ROM_LOAD32_WORD( "mr95025.01", 0x000000, 0x200000, CRC(02279069) SHA1(fb3ce00701271d0163f72e4f2e56faa9f16d8fd0) )
1937 ROM_LOAD32_WORD( "mr95025.02", 0x000002, 0x200000, CRC(885161d4) SHA1(1bc82de0b2759758d437db3ef9f0f7805f759b59) )
1938 ROM_LOAD32_WORD( "mr95025.03", 0x400000, 0x200000, CRC(1ae06df9) SHA1(e1493a386fd8c54c88afab43d13d73869ae467ee) )
1939 ROM_LOAD32_WORD( "mr95025.04", 0x400002, 0x200000, CRC(91ab7006) SHA1(0b99c352a696e21b2f31207cbf9b4a64edf543ce) )
1940 ROM_LOAD32_WORD( "mr95025.05", 0x800000, 0x200000, CRC(e61af029) SHA1(685315e833a168383c4c5cdaf72de172f14995b6) )
1941 ROM_LOAD32_WORD( "mr95025.06", 0x800002, 0x200000, CRC(63f64ffc) SHA1(a2a109be24b5f1ec2e41e423d4194394ea8c3c8b) )
1942 ROM_LOAD32_WORD( "mr95025.07", 0xc00000, 0x200000, CRC(0263a010) SHA1(b9c85647b406c89f0e839eac93eaf5d2e6963f7d) )
1943 ROM_LOAD32_WORD( "mr95025.08", 0xc00002, 0x200000, CRC(8efc00d6) SHA1(f750e0e21310ceceeae3ad80eb2fe2920f5a0076) )
1944
1945 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1946 ROM_LOAD( "mr95025.10", 0x000000, 0x200000, CRC(ba7ad413) SHA1(b1f1c218dea3217f21d5e2f44db3786055ed879a) )
1947 ROM_LOAD( "mr95025.11", 0x200000, 0x200000, CRC(11557299) SHA1(6efa56f897ab026f965376a0d4032f7a0d20cafe) )
1948
1949 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1950 ROM_LOAD( "mr95025.09", 0x000000, 0x200000, CRC(ca6cbd17) SHA1(9d16ef187b062590315066218e89bdf33cfd9865) )
1951
1952 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1953 ROM_LOAD( "mr95025.30", 0x000000, 0x080000, CRC(aee6e0c2) SHA1(dee985f7a9773ba7a4d31a3833a7775d778bbe5a) )
1954
1955 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1956 ROM_LOAD( "mr95025.21", 0x000000, 0x040000, CRC(a6c70c7f) SHA1(fe2108f3e8d46ed53d8c5c98e8d0fdb19b77075d) )
1957 ROM_RELOAD( 0x010000, 0x40000 )
1958
1959 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples - 8-bit signed PCM */
1960 ROM_LOAD( "mr95025.12", 0x000000, 0x200000, CRC(1dd4f766) SHA1(455befd3a216f2197cd2e7e4899d4f1af7d20bf7) )
1961 ROM_LOAD( "mr95025.13", 0x200000, 0x200000, CRC(0adfe5b8) SHA1(02309e5789b58896e5f68603502c76d4a917bd91) )
1962 ROM_END
1963
1964 ROM_START( akiss )
1965 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
1966 ROM_LOAD32_BYTE( "93166.26", 0x000003, 0x80000, CRC(5bdd01ee) SHA1(21b8e07bb7ef6b437a43719b02deeba970330900) )
1967 ROM_LOAD32_BYTE( "93166.27", 0x000002, 0x80000, CRC(bb11b2c9) SHA1(86ba06d28bc8f560ac3d05515d061e05c90d1628) )
1968 ROM_LOAD32_BYTE( "93166.28", 0x000001, 0x80000, CRC(20565478) SHA1(d532ab55be287f45d8d81317bb844c675eb1292c) )
1969 ROM_LOAD32_BYTE( "93166.29", 0x000000, 0x80000, CRC(ff454f0d) SHA1(db81aaaf4160eb62badbe08fc01543463470ac97) )
1970
1971 ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
1972 ROM_LOAD32_WORD( "95008-01.13", 0x000000, 0x200000, CRC(1be66420) SHA1(9fc85e6108f230418e012ad05586010235139039))
1973 ROM_LOAD32_WORD( "95008-02.1", 0x000002, 0x200000, CRC(1cc4808e) SHA1(70a19d66b4f187320c67760bc453b6afb7d66f9a) )
1974 ROM_LOAD32_WORD( "95008-03.14", 0x400000, 0x200000, CRC(4045f0dc) SHA1(5ba9786618ecad9410dbdf3664f9dda848a754f7) )
1975 ROM_LOAD32_WORD( "95008-04.2", 0x400002, 0x200000, CRC(ef3c139d) SHA1(3de374e77443dd4e967dbb5da820fe1c8c78aa1b) )
1976 ROM_LOAD32_WORD( "95008-05.15", 0x800000, 0x200000, CRC(43ea4a84) SHA1(d9d9898edcf432998ed6b9a1622812def45cf369) )
1977 ROM_LOAD32_WORD( "95008-06.3", 0x800002, 0x200000, CRC(24f23d4e) SHA1(8a7b6f28f25227391df73edb096695c5fe8df7dc))
1978 ROM_LOAD32_WORD( "95008-07.16", 0xc00000, 0x200000, CRC(bf47747e) SHA1(b97121953f41039182e25ea023802df4524cf9bd) )
1979 ROM_LOAD32_WORD( "95008-08.4", 0xc00002, 0x200000, CRC(34829a09) SHA1(7229c56fee53a9d4d29cf0c9dec471b6cc4dc30b) )
1980
1981 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
1982 ROM_LOAD( "95008-10.11", 0x000000, 0x200000, CRC(52da2e9e) SHA1(d7a29bdd1c6801aa8d36bc098e75091c63ba0766) )
1983
1984 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
1985 ROM_LOAD( "95008-09.10", 0x000000, 0x200000,CRC(7236f6a0) SHA1(98dbb55f08d669ef3bf69394bb9739d0e6137fcb) )
1986
1987 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
1988 ROM_LOAD( "93166.30", 0x000000, 0x080000, CRC(1807c1ea) SHA1(94696b8319c4982cb5d33423f56e2348f210cdb5) )
1989
1990 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
1991 ROM_LOAD( "93166.21", 0x000000, 0x040000, CRC(01a03687) SHA1(2340c4ed19f434e8c23709edfc93259313aefaf9))
1992 ROM_RELOAD( 0x010000, 0x40000 )
1993
1994 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples - 8-bit signed PCM */
1995 ROM_LOAD( "95008-11.22", 0x000000, 0x200000, CRC(23b9af76) SHA1(98b4087c142500dc759bda94d71c77634452a7ad))
1996 ROM_LOAD( "95008-12.23", 0x200000, 0x200000, CRC(780a2f45) SHA1(770cbf04e34ae7d72e6eb2304bcdfaff483cd8c1))
1997 ROM_END
1998
1999 ROM_START( p47aces )
2000 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
2001 ROM_LOAD32_BYTE( "p47-26.bin", 0x000003, 0x80000, CRC(e017b819) SHA1(942fb48e8bb3a263534a0351a1a9979d786bc475) )
2002 ROM_LOAD32_BYTE( "p47-27.bin", 0x000002, 0x80000, CRC(bd1b81e0) SHA1(b15f157fe3a30295f999a4c285da2d6f22d7fba6) )
2003 ROM_LOAD32_BYTE( "p47-28.bin", 0x000001, 0x80000, CRC(4742a5f7) SHA1(cd297aa150082c545647c9a755cf2cdbdc98c988) )
2004 ROM_LOAD32_BYTE( "p47-29.bin", 0x000000, 0x80000, CRC(86e17d8b) SHA1(73004f243c6dfb86ce4cc61475dc7caaf452750e) )
2005
2006 ROM_REGION( 0xe00000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
2007 ROM_LOAD32_WORD( "p47-01.bin", 0x000002, 0x200000, CRC(28732d3c) SHA1(15b2687bcad31793fc7d6a9dc3eccb7ad9b5f659) )
2008 ROM_LOAD32_WORD( "p47-13.bin", 0x000000, 0x200000, CRC(a6ccf999) SHA1(5d32fb6f6987ede6c125bec9581da4695ad64dff) )
2009 ROM_LOAD32_WORD( "p47-02.bin", 0x400002, 0x200000, CRC(128db576) SHA1(f6561f54f6b95842a5f14d29682449bf0d837a85) )
2010 ROM_LOAD32_WORD( "p47-14.bin", 0x400000, 0x200000, CRC(efc52b38) SHA1(589caaaba4e3ddaf41e05f0f12b8d4bc6d63fa5c) )
2011 ROM_LOAD32_WORD( "p47-03.bin", 0x800002, 0x200000, CRC(324cd504) SHA1(79b3ef3ae0aa14d903113ccf5b57d459c329cf12) )
2012 ROM_LOAD32_WORD( "p47-15.bin", 0x800000, 0x200000, CRC(ca164b17) SHA1(ea1cb0894632442f40d321b5843125f874768aae) )
2013 ROM_LOAD32_WORD( "p47-04.bin", 0xc00002, 0x100000, CRC(4b3372be) SHA1(cdc7d7615b6b5d45ca071b2967980dc6c6294ac0) )
2014 ROM_LOAD32_WORD( "p47-16.bin", 0xc00000, 0x100000, CRC(c23c5467) SHA1(5ff51ecb86ccbae2af160599890e13a7cc70072d) )
2015
2016 ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
2017 ROM_LOAD( "p47-11.bin", 0x000000, 0x200000, CRC(c1fe16b3) SHA1(8b9d2483ba06ab8072676e73d949c696535b3d26) )
2018 ROM_LOAD( "p47-12.bin", 0x200000, 0x200000, CRC(75871325) SHA1(9191263a52ec6ac325cf6130b35be7cdd1ec2f50) )
2019
2020 ROM_REGION( 0x400000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
2021 ROM_LOAD( "p47-10.bin", 0x000000, 0x200000, CRC(a44e9e06) SHA1(ff51796e160d996e931b92049e6214982f270caa) )
2022 ROM_LOAD( "p47-09.bin", 0x200000, 0x200000, CRC(226014a6) SHA1(090bdc1f6d2b9d33b431dbb49a457a4bb36cd3ad) )
2023
2024 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
2025 ROM_LOAD( "p47-30.bin", 0x000000, 0x080000, CRC(7ba90fad) SHA1(c0a3d4458816f00b8f5eb4b6d4531d1abeaccbe5) )
2026
2027 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
2028 ROM_LOAD( "p47-21.bin", 0x000000, 0x040000, CRC(f2d43927) SHA1(69ac20f339a515d58cafbcd6f7d7982ca5cda681) )
2029 ROM_RELOAD( 0x010000, 0x40000 )
2030
2031 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples - 8-bit signed PCM */
2032 ROM_LOAD( "p47-22.bin", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) )
2033 ROM_LOAD( "p47-23.bin", 0x200000, 0x200000, CRC(547fa4d4) SHA1(8a5ecb3300646762f63d37a27e643e1f6ce5e775) )
2034 ROM_END
2035
2036 ROM_START( tetrisp )
2037 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
2038 ROM_LOAD32_BYTE( "mr95024.26", 0x000003, 0x80000, CRC(d318a9ba) SHA1(cae86d86518fdfeb736e7b2040277c76cc3b4017) )
2039 ROM_LOAD32_BYTE( "mr95024.27", 0x000002, 0x80000, CRC(2d69b6d3) SHA1(f0a513f449aa25808672fb27e3691ccabfba48a1) )
2040 ROM_LOAD32_BYTE( "mr95024.28", 0x000001, 0x80000, CRC(87522e16) SHA1(4f0d8abec046884d89c559e3a4a5ac9e0e47a0dc) )
2041 ROM_LOAD32_BYTE( "mr95024.29", 0x000000, 0x80000, CRC(43a61941) SHA1(a097c88c45d8486eb6ffdd13904b6eb2a3fa45b9) )
2042
2043 ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
2044 ROM_LOAD32_WORD( "mr95024.01", 0x000002, 0x200000, CRC(cb0e92b9) SHA1(179cc9e2d819d7f6238e924184e8a383d172aa72) )
2045 ROM_LOAD32_WORD( "mr95024.13", 0x000000, 0x200000, CRC(4a825990) SHA1(f99ba9f88f5582259ba0e50480451d4e9d1d03b7) )
2046
2047 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
2048 ROM_LOAD( "mr95024.11", 0x000000, 0x200000, CRC(c0d5246f) SHA1(413285f6b40001281c4fcec1ce73400c3ae610ed) )
2049
2050 ROM_REGION( 0x200000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
2051 ROM_LOAD( "mr95024.10", 0x000000, 0x200000, CRC(a03e4a8d) SHA1(d52c78d5e9d874dce514ffb035f2424409d8fb7a) )
2052
2053 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
2054 ROM_LOAD( "mr95024.30", 0x000000, 0x080000, CRC(cea7002d) SHA1(5462edaeb9339790b95ed15a4bfaab8fae655b12) )
2055
2056 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
2057 ROM_LOAD( "mr95024.21", 0x000000, 0x040000, CRC(5c565e3b) SHA1(d349a8ca50d03c06d8978e6d3632b624f019dee4) )
2058 ROM_RELOAD( 0x010000, 0x40000 )
2059
2060 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
2061 ROM_LOAD( "mr95024.22", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) /* common samples*/
2062 ROM_LOAD( "mr95024.23", 0x200000, 0x200000, CRC(57502a17) SHA1(ce880188854dc17d9ebbfa3c373469cf5e6858c2) )
2063 ROM_END
2064
2065 ROM_START( tp2m32 )
2066 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* V70 code */
2067 ROM_LOAD32_BYTE( "tp2m3226.26", 0x000003, 0x80000, CRC(152f0ccf) SHA1(1e318e125a54216ebf3f85740db1dd85aacac819) )
2068 ROM_LOAD32_BYTE( "tp2m3227.27", 0x000002, 0x80000, CRC(d89468d0) SHA1(023fbc13b0f6332217904c89225b330aa5742f20) )
2069 ROM_LOAD32_BYTE( "tp2m3228.28", 0x000001, 0x80000, CRC(041aac23) SHA1(3f7863ffa897978493e98445fe020dccbe521752) )
2070 ROM_LOAD32_BYTE( "tp2m3229.29", 0x000000, 0x80000, CRC(4e83b2ca) SHA1(2766793f050a6952f4f53a763686f95bd7544f3f) )
2071
2072 ROM_REGION( 0x800000, REGION_GFX1, 0 ) /* sprites, don't dispose since we use GFX_RAW */
2073 ROM_LOAD32_WORD( "96019-01.9", 0x000000, 0x400000, CRC(06f7dc64) SHA1(722c51b707b9854c0293afdff18b27ec7cae6719) )
2074 ROM_LOAD32_WORD( "96019-02.8", 0x000002, 0x400000, CRC(3e613bed) SHA1(038b5e43fa3d69654107c8093126eeb2e8fa4ddc) )
2075
2076 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* roz tiles, don't dispose since we use GFX_RAW */
2077 ROM_LOAD( "tp2m3204.11", 0x000000, 0x200000, CRC(b5a03129) SHA1(a50d8b70615c49216f647534d1658c1a6d58a783) )
2078
2079 ROM_REGION( 0x400000, REGION_GFX3, 0 ) /* bg tiles, don't dispose since we use GFX_RAW */
2080 ROM_LOAD( "tp2m3203.10", 0x000000, 0x400000, CRC(94af8057) SHA1(e3bc6e02fe4c503ae51284770a76abbeff989147) )
2081
2082 ROM_REGION( 0x080000, REGION_GFX4, 0 ) /* tx tiles, don't dispose since we use GFX_RAW */
2083 ROM_LOAD( "tp2m3230.30", 0x000000, 0x080000, CRC(6845e476) SHA1(61c33714db2e2b5ccdcef0e0d3efdc391fe6aba2) )
2084
2085 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* z80 program */
2086 ROM_LOAD( "tp2m3221.21", 0x000000, 0x040000, CRC(2bcc4176) SHA1(74740fa13ab81b9819b4cfbe9d34a0749ba23b8f) )
2087 ROM_RELOAD( 0x010000, 0x40000 )
2088
2089 ROM_REGION( 0x400000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* samples */
2090 ROM_LOAD( "tp2m3205.22", 0x000000, 0x200000, CRC(74aa5c31) SHA1(7e3f86198fb678244fab76bee9c72bbdfc818118) )
2091 ROM_END
2092
2093 /********** DECRYPT **********/
2094
2095 /* 4 known types */
2096
2097 /* SS91022-10: desertwr, gratiaa, tp2m32, gametngk */
2098
2099 /* SS92046_01: bbbxing, f1superb, tetrisp, hayaosi1 */
2100
2101 /* SS92047-01: gratia, kirarast */
2102
2103 /* SS92048-01: p47aces, 47pie2, 47pie2o */
2104
2105 static void rearrange_sprites(void)
2106 {
2107 /* sprites are not encrypted, but we need to move the data around to handle them as 256x256 tiles */
2108 int i;
2109 unsigned char *source_data;
2110 int source_size;
2111
2112 unsigned char *result_data;
2113
2114 source_data = memory_region ( REGION_GFX1 );
2115 source_size = memory_region_length( REGION_GFX1 );
2116
2117 result_data = malloc(source_size);
2118 if (!result_data) return;
2119
2120 for(i=0; i<source_size; i++)
2121 {
2122 int j = (i & ~0x07f8) | ((i & 0x00f8) << 3) | ((i & 0x0700) >> 5);
2123
2124 result_data[i] = source_data[j];
2125 }
2126
2127 memcpy (source_data, result_data, source_size);
2128 free (result_data);
2129 }
2130
2131
decrypt_ms32_tx(int addr_xor,int data_xor)2132 static void decrypt_ms32_tx(int addr_xor,int data_xor)
2133 {
2134 int i;
2135 unsigned char *source_data;
2136 int source_size;
2137
2138 unsigned char *result_data;
2139
2140 source_data = memory_region ( REGION_GFX4 );
2141 source_size = memory_region_length( REGION_GFX4 );
2142
2143 result_data = malloc(source_size);
2144 if (!result_data) return;
2145
2146 addr_xor ^= 0x1005d;
2147
2148 for(i=0; i<source_size; i++)
2149 {
2150 int j;
2151
2152 /* two groups of cascading XORs for the address */
2153 j = 0;
2154 i ^= addr_xor;
2155
2156 if (BIT(i,18)) j ^= 0x40000; /* 18*/
2157 if (BIT(i,17)) j ^= 0x60000; /* 17*/
2158 if (BIT(i, 7)) j ^= 0x70000; /* 16*/
2159 if (BIT(i, 3)) j ^= 0x78000; /* 15*/
2160 if (BIT(i,14)) j ^= 0x7c000; /* 14*/
2161 if (BIT(i,13)) j ^= 0x7e000; /* 13*/
2162 if (BIT(i, 0)) j ^= 0x7f000; /* 12*/
2163 if (BIT(i,11)) j ^= 0x7f800; /* 11*/
2164 if (BIT(i,10)) j ^= 0x7fc00; /* 10*/
2165
2166 if (BIT(i, 9)) j ^= 0x00200; /* 9*/
2167 if (BIT(i, 8)) j ^= 0x00300; /* 8*/
2168 if (BIT(i,16)) j ^= 0x00380; /* 7*/
2169 if (BIT(i, 6)) j ^= 0x003c0; /* 6*/
2170 if (BIT(i,12)) j ^= 0x003e0; /* 5*/
2171 if (BIT(i, 4)) j ^= 0x003f0; /* 4*/
2172 if (BIT(i,15)) j ^= 0x003f8; /* 3*/
2173 if (BIT(i, 2)) j ^= 0x003fc; /* 2*/
2174 if (BIT(i, 1)) j ^= 0x003fe; /* 1*/
2175 if (BIT(i, 5)) j ^= 0x003ff; /* 0*/
2176
2177 i ^= addr_xor;
2178
2179 /* simple XOR for the data */
2180 result_data[i] = source_data[j] ^ (i & 0xff) ^ data_xor;
2181 }
2182
2183 memcpy (source_data, result_data, source_size);
2184 free (result_data);
2185 }
2186
decrypt_ms32_bg(int addr_xor,int data_xor)2187 static void decrypt_ms32_bg(int addr_xor,int data_xor)
2188 {
2189 int i;
2190 unsigned char *source_data;
2191 int source_size;
2192
2193 unsigned char *result_data;
2194
2195 source_data = memory_region ( REGION_GFX3 );
2196 source_size = memory_region_length( REGION_GFX3 );
2197
2198 result_data = malloc(source_size);
2199 if (!result_data) return;
2200
2201 addr_xor ^= 0xc1c5b;
2202
2203 for(i=0; i<source_size; i++)
2204 {
2205 int j;
2206
2207 /* two groups of cascading XORs for the address */
2208 j = (i & ~0xfffff); /* top bits are not affected */
2209 i ^= addr_xor;
2210
2211 if (BIT(i,19)) j ^= 0x80000; /* 19*/
2212 if (BIT(i, 8)) j ^= 0xc0000; /* 18*/
2213 if (BIT(i,17)) j ^= 0xe0000; /* 17*/
2214 if (BIT(i, 2)) j ^= 0xf0000; /* 16*/
2215 if (BIT(i,15)) j ^= 0xf8000; /* 15*/
2216 if (BIT(i,14)) j ^= 0xfc000; /* 14*/
2217 if (BIT(i,13)) j ^= 0xfe000; /* 13*/
2218 if (BIT(i,12)) j ^= 0xff000; /* 12*/
2219 if (BIT(i, 1)) j ^= 0xff800; /* 11*/
2220 if (BIT(i,10)) j ^= 0xffc00; /* 10*/
2221
2222 if (BIT(i, 9)) j ^= 0x00200; /* 9*/
2223 if (BIT(i, 3)) j ^= 0x00300; /* 8*/
2224 if (BIT(i, 7)) j ^= 0x00380; /* 7*/
2225 if (BIT(i, 6)) j ^= 0x003c0; /* 6*/
2226 if (BIT(i, 5)) j ^= 0x003e0; /* 5*/
2227 if (BIT(i, 4)) j ^= 0x003f0; /* 4*/
2228 if (BIT(i,18)) j ^= 0x003f8; /* 3*/
2229 if (BIT(i,16)) j ^= 0x003fc; /* 2*/
2230 if (BIT(i,11)) j ^= 0x003fe; /* 1*/
2231 if (BIT(i, 0)) j ^= 0x003ff; /* 0*/
2232
2233 i ^= addr_xor;
2234
2235 /* simple XOR for the data */
2236 result_data[i] = source_data[j] ^ (i & 0xff) ^ data_xor;
2237 }
2238
2239 memcpy (source_data, result_data, source_size);
2240 free (result_data);
2241 }
2242
2243
2244
2245 /* SS91022-10: desertwr, gratiaa, tp2m32, gametngk */
DRIVER_INIT(ss91022_10)2246 static DRIVER_INIT (ss91022_10)
2247 {
2248 rearrange_sprites();
2249 decrypt_ms32_tx(0x00000,0x35);
2250 decrypt_ms32_bg(0x00000,0xa3);
2251 }
2252
2253 /* SS92046_01: bbbxing, f1superb, tetrisp, hayaosi1 */
DRIVER_INIT(ss92046_01)2254 static DRIVER_INIT (ss92046_01)
2255 {
2256 rearrange_sprites();
2257 decrypt_ms32_tx(0x00020,0x7e);
2258 decrypt_ms32_bg(0x00001,0x9b);
2259 }
2260
2261 /* SS92047-01: gratia, kirarast */
DRIVER_INIT(ss92047_01)2262 static DRIVER_INIT (ss92047_01)
2263 {
2264 rearrange_sprites();
2265 decrypt_ms32_tx(0x24000,0x18);
2266 decrypt_ms32_bg(0x24000,0x55);
2267 }
2268
2269 /* SS92048-01: p47aces, 47pie2, 47pie2o */
DRIVER_INIT(ss92048_01)2270 static DRIVER_INIT (ss92048_01)
2271 {
2272 rearrange_sprites();
2273 decrypt_ms32_tx(0x20400,0xd6);
2274 decrypt_ms32_bg(0x20400,0xd4);
2275 }
2276
DRIVER_INIT(kirarast)2277 static DRIVER_INIT (kirarast)
2278 {
2279 /* { 0xfcc00004, 0xfcc00007, ms32_mahjong_read_inputs1 }*/
2280 install_mem_read32_handler(0, 0xfcc00004, 0xfcc00007, ms32_mahjong_read_inputs1 );
2281
2282 init_ss92047_01();
2283 }
2284
2285 static DRIVER_INIT (47pie2)
2286 {
2287 /* { 0xfcc00004, 0xfcc00007, ms32_mahjong_read_inputs1 }*/
2288 install_mem_read32_handler(0, 0xfcc00004, 0xfcc00007, ms32_mahjong_read_inputs1 );
2289
2290 init_ss92048_01();
2291 }
2292
DRIVER_INIT(tp2m32)2293 static DRIVER_INIT (tp2m32)
2294 {
2295 data32_t *pROM = (data32_t *)memory_region(REGION_CPU1);
2296 /* fix SBR register */
2297 pROM[0x1b848/4] &= 0x0000ffff;
2298
2299 init_ss91022_10();
2300 }
2301
DRIVER_INIT(f1superb)2302 static DRIVER_INIT (f1superb)
2303 {
2304 data32_t *pROM = (data32_t *)memory_region(REGION_CPU1);
2305 pROM[0x19d04/4]=0x167a021a; /* bne->br : sprite Y offset table is always copied to RAM*/
2306 init_ss92046_01();
2307 }
2308
2309 /********** GAME DRIVERS **********/
2310
2311 GAMEX( 1994, hayaosi1, 0, ms32, hayaosi1, ss92046_01, ROT0, "Jaleco", "Hayaoshi Quiz Ouza Ketteisen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2312 GAMEX( 1994, bbbxing, 0, ms32, bbbxing, ss92046_01, ROT0, "Jaleco", "Best Bout Boxing", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2313 GAMEX( 1994, 47pie2, 0, ms32, kirarast, 47pie2, ROT0, "Jaleco", "Idol Janshi Su-Chi-Pie 2 (v1.1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2314 GAMEX( 1994, 47pie2o, 47pie2, ms32, kirarast, 47pie2, ROT0, "Jaleco", "Idol Janshi Su-Chi-Pie 2 (v1.0)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2315 GAMEX( 1995, desertwr, 0, ms32, desertwr, ss91022_10, ROT270, "Jaleco", "Desert War - Wangan Sensou", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2316 GAMEX( 1995, gametngk, 0, ms32, gametngk, ss91022_10, ROT270, "Jaleco", "The Game Paradise - Master of Shooting! - Game Tengoku - The Game Paradise", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2317 GAMEX( 1995, tetrisp, 0, ms32, tetrisp, ss92046_01, ROT0, "Jaleco / BPS", "Tetris Plus", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2318 GAMEX( 1995, p47aces, 0, ms32, p47aces, ss92048_01, ROT0, "Jaleco", "P-47 Aces", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2319 GAMEX( 1995, akiss, 0, ms32, kirarast, kirarast, ROT0, "Jaleco", "Mahjong Angel Kiss", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2320 GAMEX( 1996, gratia, 0, ms32, gratia, ss92047_01, ROT0, "Jaleco", "Gratia - Second Earth (92047-01 version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2321 GAMEX( 1996, gratiaa, gratia, ms32, gratia, ss91022_10, ROT0, "Jaleco", "Gratia - Second Earth (91022-10 version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2322 GAMEX( 1996, kirarast, 0, ms32, kirarast, kirarast, ROT0, "Jaleco", "Ryuusei Janshi Kirara Star", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2323 GAMEX( 1997, tp2m32, tetrisp2, ms32, tp2m32, tp2m32, ROT0, "Jaleco", "Tetris Plus 2 (MegaSystem 32 Version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
2324
2325 /* these boot and show something */
2326 GAMEX( 1994, f1superb, 0, ms32, f1superb, f1superb, ROT0, "Jaleco", "F1 Super Battle", GAME_NOT_WORKING | GAME_NO_SOUND )
2327