1 /*****************************************************************************
2
3 ToaPlan game hardware from 1991 - 1994
4 Raizing/8ing game hardware from 1993 onwards
5 -------------------------------------------------
6 Driver by: Quench and Yochizo
7
8 Raizing games and Truxton 2 are heavily dependent on the Raine source -
9 many thanks to Richard Bush and the Raine team. [Yochizo]
10
11
12
13 Supported games:
14
15 Name Board No Maker Game name
16 ----------------------------------------------------------------------------
17 tekipaki TP-020 Toaplan Teki Paki
18 ghox TP-021 Toaplan Ghox
19 dogyuun TP-022 Toaplan Dogyuun
20 kbash TP-023 Toaplan Knuckle Bash
21 truxton2 TP-024 Toaplan Truxton 2 / Tatsujin 2
22 pipibibs TP-025 Toaplan Pipi & Bibis
23 whoopee TP-025 Toaplan Whoopee
24 pipibibi bootleg? Toaplan Pipi & Bibis
25 fixeight TP-026 Toaplan FixEight
26 grindstm TP-027 Toaplan Grind Stormer (1992)
27 grindsta TP-027 Toaplan Grind Stormer (1992) (older)
28 vfive TP-027 Toaplan V-V (V-Five) (1993 - Japan only)
29 batsugun TP-030 Toaplan Batsugun
30 batugnsp TP-030 Toaplan Batsugun (Special Version)
31 snowbro2 ?????? Toaplan Snow Bros. 2 - With New Elves
32
33 sstriker RA-MA7893-01 Raizing Sorcer Striker
34 mahoudai RA-MA7893-01 Raizing Mahou Daisakusen
35 kingdmgp RA-MA9402-03 Raizing/8ing Kingdom Grandprix
36 shippumd RA-MA9402-03 Raizing/8ing Shippu Mahou Daisakusen
37 battleg RA9503 Raizing/8ing Battle Garegga (Type 2)
38 battlega RA9503 Raizing/8ing Battle Garegga
39 battlegb RA9503 Raizing/8ing Battle Garegga (New Version?)
40 batrider RA9704 Raizing/8ing Armed Police Batrider - Rev B (Japan - Ver. Fri Feb 13 1998)
41 batridra RA9704 Raizing/8ing Armed Police Batrider (Japan - Ver. Mon Dec 22 1997)
42 batridrk RA9704 Raizing/8ing Armed Police Batrider (Korea - Ver. Fri Feb 13 1998)
43 bbakraid ET68-V99 8ing Battle Bakraid (Japan - Wed Apr 7th, 1999)
44 bbkraidu ET68-V99 8ing Battle Bakraid - unlimited version (Japan - Tue Jun 8th, 1999)
45
46 SET NOTES:
47
48 sstriker - might be a bootleg / hack, the region jumper is read with this set but even when set
49 to Japan you get all english text etc which seems a little odd, but might be correct.
50 kingdmgp - might be a bootleg / hack, some of the tiles needed for the credits screen have been
51 stripped out, doesn't seem very professional, since its rare and should probably only
52 have a different graphics rom its nearly impossible for us to verify, a lot of boards
53 being sold as 'Kingdom Grand Prix' are infact conversions using Neill Corlett's
54 ghastly hack
55
56 ** update the above two look like genuine korean release boards, raizing were probably
57 just missed a few things
58
59 ****************************************************************************
60 * Battle Garegga and Armed Police Batrider have secret characters. *
61 * Try to input the following commands to use them. *
62 * ======================================================================== *
63 * Battle Garegga *
64 * After inserting a coin (pushing a credit button), input *
65 * UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT A B C START *
66 * then you can use Mahou Daisakusen characters. *
67 * *
68 * ------------------------------------------------------------------------ *
69 * Armed Police Batrider *
70 * After inserting a coin (pushing a credit button), input *
71 * UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT A B START *
72 * then you can use Mahou Daisakusen and Battle Garegga characters. *
73 * *
74 ****************************************************************************
75
76
77 ############################################################################
78 # Battle Bakraid 'Unlimited Version' has unlocking codes to gain #
79 # access to extra players and game features. #
80 # Special thanks go to the 'R8ZING Shooter Tribute' page for finding #
81 # and publishing this info. #
82 # #
83 # ======================================================================== #
84 # PLAYER SELECT: PHASE 2 #
85 # Result: 3 more fighter planes available: #
86 # Code: UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT A B Start #
87 # Conditions: #
88 # 1. Start from the title screen #
89 # 2. Insert Coin #
90 # 3. Watch the 20 sec. counter and enter each part of the code right #
91 # between the counting. #
92 # Example: 12,up,11,up,10,down,9,down,8,left,7,right,6.left,5,r.. #
93 # After entering the [B] button a chime should sound. Phase 2 unlocked! #
94 # #
95 # ------------------------------------------------------------------------ #
96 # PLAYER SELECT: PHASE 3 #
97 # Result: 2 more fighter planes available: #
98 # Code: UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A Start #
99 # Conditions: #
100 # 1. Start from the title screen #
101 # 2. Insert Coin #
102 # 3. Watch the 20 sec. counter and enter each part of the code right #
103 # between the counting. #
104 # Important: The entering of this code has to be finished before the #
105 # counter passes 10 ! To do so, you will have to start after coin #
106 # insertion, right before it starts to count: #
107 # Example: up,19,up,18,down,17,down,16,left,15,right,14.left,.. #
108 # After entering the [A] button a chime should sound. Phase 3 unlocked! #
109 # #
110 # ------------------------------------------------------------------------ #
111 # TEAM EDIT: ENABLE #
112 # Result: Unlocks the 'team edit' feature to select a team of different #
113 # ships. See selection secrets on how to enter the team edit mode.#
114 # Code: UP DOWN UP DOWN LEFT RIGHT LEFT RIGHT A B Start #
115 # Conditions: #
116 # 1. Start from the title screen #
117 # 2. Insert Coin #
118 # 3. Watch the 20 sec. counter and enter each part of the code right #
119 # between the counting. #
120 # Important: This code hast to be entered so that the counter is at 0 when #
121 # you press the final button [B]. To do so, start after second 9: #
122 # Example: 9,up,8,down,7,up,6,down,5,left,4,right,3,left,2,right,1,A,0,B #
123 # After entering the [B] button a chime should sound. Team edit unlocked! #
124 # #
125 # ------------------------------------------------------------------------ #
126 # SPECIAL COURSE : ENABLE #
127 # Result: Unlocks the boss mode, a game mode where you fight the bosses #
128 # only. #
129 # Code: UP DOWN UP DOWN LEFT RIGHT LEFT RIGHT B A Start #
130 # Conditions: #
131 # 1. Start from the title screen #
132 # 2. Hold [C] button #
133 # 3. Insert Coin #
134 # 4. Watch the 20 sec. counter and enter each part of the code right #
135 # between the counting. #
136 # 5. Release [C] button #
137 # After entering the [A] button a chime should sound. Special course #
138 # unlocked! #
139 ############################################################################
140
141
142
143 *************** Hardware Info ***************
144
145 CPU:
146 MC68000P10
147 TMP68HC000N-16
148
149 Sound CPU/MCU:
150 HD647180X0FS6 (Hitachi Z180 Compatible CPU with inernal ROM code)
151 Z84C0006PEC (Z80)
152
153
154 Sound Chips:
155 YM3812
156 YM2151
157 YM2151 + YM3014
158 YM2151 + M6295
159 YM2151 + M6295 + M6295
160 YMZ280B-F + YAC516-E (Digital to Analog Converter)
161
162
163 Graphics Custom 208pin QFP:
164 GP9001 L7A0498 TOA PLAN
165
166 Toaplan / Raizing / 8ing games use different revisions of the custom
167 Toa Plan 208 pin QFP L7A0498 GP9001 series graphics processing chip:
168
169 Fixeight L7A0498 GP9001 TOA PLAN 9150
170 Grind Stormer L7A0498 GP9001 TOA PLAN 9150
171 Truxton II L7A0498 GP9001 TOA PLAN 9152
172 Ghox L7A0498 GP9001 TOA PLAN 9044
173 Armed Police Batrider L7A0498 GP9001 TOA PLAN NNG 9217 WK94254
174 Battle Garegga L7A0498 GP9001 TOA PLAN 9236
175 Mahou Daisakusen L7A0498 GP9001 TOA PLAN 9240
176 Battle Bakraid L7A0498 GP9001 TOA PLAN 9335
177
178
179 Game status:
180
181 Teki Paki Working, but no sound. Missing sound MCU dump
182 Ghox Working, but no sound. Missing sound MCU dump
183 Dogyuun Working, but no sound. MCU type unknown - its a Z?80 of some sort.
184 Knuckle Bash Working, but no sound. MCU dump exists, its a Z?80 of some sort.
185 Truxton 2 Working.
186 Pipi & Bibis Working.
187 Whoopee Working. Missing sound MCU dump. Using bootleg sound CPU dump for now
188 Pipi & Bibis (Ryouta Kikaku) Working.
189 FixEight Not working properly. Missing background GFX (controlled by MCU). MCU type unknown - its a Z?80 of some sort.
190 Grind Stormer Working, but no sound. MCU type unknown - its a Z?80 of some sort.
191 VFive Working, but no sound. MCU type unknown - its a Z?80 of some sort.
192 Batsugun Working, but no sound and wrong GFX priorities. MCU type unknown - its a Z?80 of some sort.
193 Batsugun Sp' Working, but no sound and wrong GFX priorities. MCU type unknown - its a Z?80 of some sort.
194 Snow Bros. 2 Working.
195 Mahou Daisakusen Working.
196 Shippu Mahou Daisakusen Working.
197 Battle Garegga Working.
198 Armed Police Batrider Working.
199 Battle Bakraid Working, but sound levels/panning/fading are bad
200
201
202 Notes:
203 See Input Port definition header below, for instructions
204 on how to enter pause/slow motion modes.
205 Code at $20A26 forces territory to Japan in V-Five. Some stuff
206 NOP'd at reset vector, and Z?80 CPU post test is skipped (bootleg ?)
207
208 To Do / Unknowns:
209 - Whoopee/Teki Paki sometimes tests bit 5 of the territory port
210 just after testing for vblank. Why ?
211 - Whoppee is currently using the sound CPU ROM (Z80) from a differnt
212 (pirate ?) version of Pipi and Bibis (Ryouta Kikaku copyright).
213 It really has a HD647180 CPU, and its internal ROM needs to be dumped.
214 - Fix top character text layer (implement the line position table).
215
216
217
218 *****************************************************************************/
219
220
221 #include "driver.h"
222 #include "vidhrdw/generic.h"
223 #include "cpu/m68000/m68000.h"
224 #include "cpu/z80/z80.h"
225 #include "machine/eeprom.h"
226
227
228 /**************** Machine stuff ******************/
229 #define HD64x180 0 /* Define if CPU support is available */
230 #define Zx80 0
231
232 #define CPU_2_NONE 0x00
233 #define CPU_2_Z80 0x5a
234 #define CPU_2_HD647180 0xa5
235 #define CPU_2_Zx80 0xff
236
237 /************ Machine RAM related values ************/
238 static data8_t *toaplan2_shared_ram;
239 static data8_t *raizing_shared_ram; /* Shared ram used in Shippumd and Mahoudai */
240 static data16_t *toaplan2_shared_ram16; /* Really 8bit RAM connected to Z180 */
241 static data16_t *Zx80_shared_ram; /* Really 8bit RAM connected to Z180 */
242 static data16_t *battleg_commram16; /* Comm ram used in Battle Garegga */
243 static data16_t *raizing_cpu_comm16; /* Raizing commands for the Z80 */
244 static data8_t raizing_cpu_reply[2]; /* Raizing replies to the 68K */
245
246 /************ Video RAM related values ************/
247 extern data16_t *toaplan2_txvideoram16;
248 extern data16_t *toaplan2_txvideoram16_offs;
249 extern data16_t *toaplan2_txscrollram16;
250 extern data16_t *toaplan2_tx_gfxram16;
251 size_t toaplan2_tx_vram_size;
252 size_t toaplan2_tx_offs_vram_size;
253 size_t toaplan2_tx_scroll_vram_size;
254 size_t paletteram_size;
255
256 /********** Status related values **********/
257 int toaplan2_sub_cpu = 0;
258 static int mcu_data = 0;
259 static int video_status;
260 static int prev_scanline;
261 //static int prev_beampos;
262 static INT8 old_p1_paddle_h; /* For Ghox */
263 static INT8 old_p1_paddle_v;
264 static INT8 old_p2_paddle_h;
265 static INT8 old_p2_paddle_v;
266 static int current_bank = 2; /* Z80 bank used in Battle Garegga and Batrider */
267 static int raizing_Z80_busreq;
268 static int bbakraid_unlimited_ver;
269
270 static int current_scanline = 0;
271 static int vblank_irq;
272
273 /**************** Video stuff ******************/
274 WRITE16_HANDLER( toaplan2_0_voffs_w );
275 WRITE16_HANDLER( toaplan2_1_voffs_w );
276
277 READ16_HANDLER ( toaplan2_0_videoram16_r );
278 READ16_HANDLER ( toaplan2_1_videoram16_r );
279 WRITE16_HANDLER( toaplan2_0_videoram16_w );
280 WRITE16_HANDLER( toaplan2_1_videoram16_w );
281
282 READ16_HANDLER ( toaplan2_txvideoram16_r );
283 WRITE16_HANDLER( toaplan2_txvideoram16_w );
284 READ16_HANDLER ( toaplan2_txvideoram16_offs_r );
285 WRITE16_HANDLER( toaplan2_txvideoram16_offs_w );
286 READ16_HANDLER ( toaplan2_txscrollram16_r );
287 WRITE16_HANDLER( toaplan2_txscrollram16_w );
288 READ16_HANDLER ( toaplan2_tx_gfxram16_r );
289 WRITE16_HANDLER( toaplan2_tx_gfxram16_w );
290 READ16_HANDLER ( raizing_tx_gfxram16_r );
291 WRITE16_HANDLER( raizing_tx_gfxram16_w );
292
293 WRITE16_HANDLER( toaplan2_0_scroll_reg_select_w );
294 WRITE16_HANDLER( toaplan2_1_scroll_reg_select_w );
295 WRITE16_HANDLER( toaplan2_0_scroll_reg_data_w );
296 WRITE16_HANDLER( toaplan2_1_scroll_reg_data_w );
297
298 WRITE16_HANDLER( batrider_objectbank_w );
299 WRITE16_HANDLER( batrider_textdata_decode );
300
301 VIDEO_EOF( toaplan2_0 );
302 VIDEO_EOF( toaplan2_1 );
303 VIDEO_EOF( batrider_0 );
304 VIDEO_START( toaplan2_0 );
305 VIDEO_START( toaplan2_1 );
306 VIDEO_START( truxton2_0 );
307 VIDEO_START( battleg_0 );
308 VIDEO_START( batrider_0 );
309 VIDEO_UPDATE( toaplan2_0 );
310 VIDEO_UPDATE( truxton2_0 );
311 VIDEO_UPDATE( dogyuun_1 );
312 VIDEO_UPDATE( batsugun_1 );
313 VIDEO_UPDATE( batrider_0 );
314 VIDEO_UPDATE( mahoudai_0 );
315
316
317 /********* Video wrappers for PIPIBIBI *********/
318 READ16_HANDLER ( pipibibi_videoram16_r );
319 WRITE16_HANDLER( pipibibi_videoram16_w );
320 READ16_HANDLER ( pipibibi_spriteram16_r );
321 WRITE16_HANDLER( pipibibi_spriteram16_w );
322 WRITE16_HANDLER( pipibibi_scroll_w );
323
324
325
326 /***************************************************************************
327 Initialisation handlers
328 ***************************************************************************/
329
330
MACHINE_INIT(toaplan2)331 static MACHINE_INIT( toaplan2 ) /* machine_init_toaplan2(); */
332 {
333 mcu_data = 0;
334 }
335
MACHINE_INIT(ghox)336 static MACHINE_INIT( ghox )
337 {
338 old_p1_paddle_h = 0;
339 old_p1_paddle_v = 0;
340 old_p2_paddle_h = 0;
341 old_p2_paddle_v = 0;
342
343 machine_init_toaplan2();
344 }
345
MACHINE_INIT(batrider)346 static MACHINE_INIT( batrider )
347 {
348 current_bank = 2;
349
350 machine_init_toaplan2();
351 }
352
DRIVER_INIT(T2_Z80)353 static DRIVER_INIT( T2_Z80 ) /* init_t2_Z80(); */
354 {
355 toaplan2_sub_cpu = CPU_2_Z80;
356 }
357
DRIVER_INIT(T2_Z180)358 static DRIVER_INIT( T2_Z180 )
359 {
360 toaplan2_sub_cpu = CPU_2_HD647180;
361 }
362
DRIVER_INIT(T2_Zx80)363 static DRIVER_INIT( T2_Zx80 )
364 {
365 toaplan2_sub_cpu = CPU_2_Zx80;
366 }
367
DRIVER_INIT(T2_noZ80)368 static DRIVER_INIT( T2_noZ80 )
369 {
370 toaplan2_sub_cpu = CPU_2_NONE;
371 }
372
DRIVER_INIT(fixeight)373 static DRIVER_INIT( fixeight )
374 {
375 install_mem_read16_handler(0, 0x28f002, 0x28fbff, MRA16_RAM );
376 install_mem_write16_handler(0, 0x28f002, 0x28fbff, MWA16_RAM );
377
378 toaplan2_sub_cpu = CPU_2_Zx80;
379 }
380
DRIVER_INIT(pipibibi)381 static DRIVER_INIT( pipibibi )
382 {
383 int A;
384 int oldword, newword;
385
386 data16_t *pipibibi_68k_rom = (data16_t *)(memory_region(REGION_CPU1));
387
388 /* unscramble the 68K ROM data. */
389
390 for (A = 0; A < (0x040000/2); A+=4)
391 {
392 newword = 0;
393 oldword = pipibibi_68k_rom[A];
394 newword |= ((oldword & 0x0001) << 9);
395 newword |= ((oldword & 0x0002) << 14);
396 newword |= ((oldword & 0x0004) << 8);
397 newword |= ((oldword & 0x0018) << 1);
398 newword |= ((oldword & 0x0020) << 9);
399 newword |= ((oldword & 0x0040) << 7);
400 newword |= ((oldword & 0x0080) << 5);
401 newword |= ((oldword & 0x0100) << 3);
402 newword |= ((oldword & 0x0200) >> 1);
403 newword |= ((oldword & 0x0400) >> 8);
404 newword |= ((oldword & 0x0800) >> 10);
405 newword |= ((oldword & 0x1000) >> 12);
406 newword |= ((oldword & 0x6000) >> 7);
407 newword |= ((oldword & 0x8000) >> 12);
408 pipibibi_68k_rom[A] = newword;
409
410 newword = 0;
411 oldword = pipibibi_68k_rom[A+1];
412 newword |= ((oldword & 0x0001) << 8);
413 newword |= ((oldword & 0x0002) << 12);
414 newword |= ((oldword & 0x0004) << 5);
415 newword |= ((oldword & 0x0008) << 11);
416 newword |= ((oldword & 0x0010) << 2);
417 newword |= ((oldword & 0x0020) << 10);
418 newword |= ((oldword & 0x0040) >> 1);
419 newword |= ((oldword & 0x0080) >> 7);
420 newword |= ((oldword & 0x0100) >> 4);
421 newword |= ((oldword & 0x0200) << 0);
422 newword |= ((oldword & 0x0400) >> 7);
423 newword |= ((oldword & 0x0800) >> 1);
424 newword |= ((oldword & 0x1000) >> 10);
425 newword |= ((oldword & 0x2000) >> 2);
426 newword |= ((oldword & 0x4000) >> 13);
427 newword |= ((oldword & 0x8000) >> 3);
428 pipibibi_68k_rom[A+1] = newword;
429
430 newword = 0;
431 oldword = pipibibi_68k_rom[A+2];
432 newword |= ((oldword & 0x000f) << 4);
433 newword |= ((oldword & 0x00f0) >> 4);
434 newword |= ((oldword & 0x0100) << 3);
435 newword |= ((oldword & 0x0200) << 1);
436 newword |= ((oldword & 0x0400) >> 1);
437 newword |= ((oldword & 0x0800) >> 3);
438 newword |= ((oldword & 0x1000) << 3);
439 newword |= ((oldword & 0x2000) << 1);
440 newword |= ((oldword & 0x4000) >> 1);
441 newword |= ((oldword & 0x8000) >> 3);
442 pipibibi_68k_rom[A+2] = newword;
443
444 newword = 0;
445 oldword = pipibibi_68k_rom[A+3];
446 newword |= ((oldword & 0x000f) << 4);
447 newword |= ((oldword & 0x00f0) >> 4);
448 newword |= ((oldword & 0x0100) << 7);
449 newword |= ((oldword & 0x0200) << 5);
450 newword |= ((oldword & 0x0400) << 3);
451 newword |= ((oldword & 0x0800) << 1);
452 newword |= ((oldword & 0x1000) >> 1);
453 newword |= ((oldword & 0x2000) >> 3);
454 newword |= ((oldword & 0x4000) >> 5);
455 newword |= ((oldword & 0x8000) >> 7);
456 pipibibi_68k_rom[A+3] = newword;
457 }
458
459 toaplan2_sub_cpu = CPU_2_Z80;
460 }
461
DRIVER_INIT(battleg)462 static DRIVER_INIT( battleg )
463 {
464 data8_t *Z80 = (data8_t *)memory_region(REGION_CPU2);
465
466 /* Set Z80 bank switch */
467 cpu_setbank(1, &Z80[0x10000]); /* Default bank is 2 */
468
469 toaplan2_sub_cpu = CPU_2_Z80;
470 }
471
DRIVER_INIT(bbakraid)472 static DRIVER_INIT( bbakraid )
473 {
474 bbakraid_unlimited_ver = 1;
475 toaplan2_sub_cpu = CPU_2_Z80;
476 }
477
DRIVER_INIT(bbakrada)478 static DRIVER_INIT( bbakrada )
479 {
480 bbakraid_unlimited_ver = 0;
481 toaplan2_sub_cpu = CPU_2_Z80;
482 }
483
484
485 /***************************************************************************
486 Toaplan games
487 ***************************************************************************/
488
READ16_HANDLER(toaplan2_inputport_0_word_r)489 READ16_HANDLER( toaplan2_inputport_0_word_r )
490 {
491 // int retval = (current_scanline>255) ? 1 : 0;
492 int retval = vblank_irq;
493 return retval;
494 }
495
toaplan2_irq(int irq_line)496 static void toaplan2_irq(int irq_line)
497 {
498 if (cpu_getiloops() == 0) current_scanline = 255;
499
500 if(current_scanline == 245)
501 {
502 cpu_set_irq_line(0, irq_line, HOLD_LINE);
503 vblank_irq = 1;
504 }
505
506 current_scanline++;
507 if(current_scanline > 261)
508 {
509 current_scanline = 0;
510 vblank_irq = 0;
511 }
512 }
513
INTERRUPT_GEN(toaplan2_vblank_irq2)514 static INTERRUPT_GEN( toaplan2_vblank_irq2 ) {toaplan2_irq(2);}
INTERRUPT_GEN(toaplan2_vblank_irq3)515 static INTERRUPT_GEN( toaplan2_vblank_irq3 ) {toaplan2_irq(3);}
INTERRUPT_GEN(toaplan2_vblank_irq4)516 static INTERRUPT_GEN( toaplan2_vblank_irq4 ) {toaplan2_irq(4);}
517
READ16_HANDLER(video_count_r)518 static READ16_HANDLER( video_count_r )
519 {
520 /* +---------+---------+--------+---------------------------+ */
521 /* | /H-Sync | /V-Sync | /Blank | Scanline Count | */
522 /* | Bit 15 | Bit 14 | Bit 8 | Bit 7-0 (count from #EF) | */
523 /* +---------+---------+--------+---------------------------+ */
524 /*************** Control Signals are active low ***************/
525
526 // static int current_beampos = 0;
527
528 // logerror("Was VC=%04x Vbl=%02x VS=%04x HS=%04x - ",video_status,vblank_irq,prev_scanline,prev_beampos );
529
530 video_status = 0xff00; /* Set signals inactive */
531 video_status |= (current_scanline & 0xff); /* Scanline */
532
533 if (vblank_irq) {
534 video_status &= ~0x0100;
535 }
536 if (prev_scanline != current_scanline) {
537 video_status &= ~0x8000; /* Activate V-Sync Clk */
538 }
539 // if (current_beampos) {
540 // video_status &= ~0x4000;
541 // }
542 // current_beampos = ~current_beampos;
543 prev_scanline = current_scanline;
544
545 // logerror("Now VC=%04x Vbl=%02x VS=%04x HS=%04x\n",video_status,vblank_irq,cpu_getscanline(),cpu_gethorzbeampos() );
546
547 return video_status;
548 }
549
WRITE_HANDLER(toaplan2_coin_w)550 static WRITE_HANDLER( toaplan2_coin_w )
551 {
552 /* +----------------+------ Bits 7-5 not used ------+--------------+ */
553 /* | Coin Lockout 2 | Coin Lockout 1 | Coin Count 2 | Coin Count 1 | */
554 /* | Bit 3 | Bit 2 | Bit 1 | Bit 0 | */
555
556 if (data & 0x0f)
557 {
558 coin_lockout_w( 0, ((data & 4) ? 0 : 1) );
559 coin_lockout_w( 1, ((data & 8) ? 0 : 1) );
560 coin_counter_w( 0, (data & 1) ); coin_counter_w( 0, 0 );
561 coin_counter_w( 1, (data & 2) ); coin_counter_w( 1, 0 );
562 }
563 else
564 {
565 coin_lockout_global_w(1); /* Lock all coin slots */
566 }
567 if (data & 0xe0)
568 {
569 logerror("Writing unknown upper bits (%02x) to coin control\n",data);
570 }
571 }
WRITE16_HANDLER(toaplan2_coin_word_w)572 static WRITE16_HANDLER( toaplan2_coin_word_w )
573 {
574 if (ACCESSING_LSB)
575 {
576 toaplan2_coin_w(offset, data & 0xff);
577 if (toaplan2_sub_cpu == CPU_2_Z80)
578 {
579 if (Machine->drv->sound[1].sound_type == SOUND_OKIM6295)
580 {
581 OKIM6295_set_bank_base(0, (((data & 0x10) >> 4) * 0x40000));
582 }
583 }
584 }
585 if (ACCESSING_MSB && (data & 0xff00) )
586 {
587 logerror("Writing unknown upper MSB command (%04x) to coin control\n",data & 0xff00);
588 }
589 }
590
READ16_HANDLER(toaplan2_shared_r)591 static READ16_HANDLER( toaplan2_shared_r )
592 {
593 return toaplan2_shared_ram[offset] & 0xff;
594 }
595
WRITE16_HANDLER(toaplan2_shared_w)596 static WRITE16_HANDLER( toaplan2_shared_w )
597 {
598 if (ACCESSING_LSB)
599 {
600 toaplan2_shared_ram[offset] = data & 0xff;
601 }
602 }
603
WRITE16_HANDLER(toaplan2_hd647180_cpu_w)604 static WRITE16_HANDLER( toaplan2_hd647180_cpu_w )
605 {
606 /* Command sent to secondary CPU. Support for HD647180 will be
607 required when a ROM dump becomes available for this hardware */
608
609 if (ACCESSING_LSB)
610 {
611 if (toaplan2_sub_cpu == CPU_2_Z80) /* Whoopee */
612 {
613 toaplan2_shared_ram[0] = data & 0xff;
614 }
615 else /* Teki Paki */
616 {
617 mcu_data = data & 0xff;
618 logerror("PC:%08x Writing command (%04x) to secondary CPU shared port\n",activecpu_get_previouspc(),mcu_data);
619 }
620 }
621 }
622
READ16_HANDLER(c2map_port_6_r)623 static READ16_HANDLER( c2map_port_6_r )
624 {
625 /* For Teki Paki hardware */
626 /* bit 4 high signifies secondary CPU is ready */
627 /* bit 5 is tested low before V-Blank bit ??? */
628 switch (toaplan2_sub_cpu)
629 {
630 case CPU_2_Z80: mcu_data = toaplan2_shared_ram[0]; break; /* Whoopee */
631 case CPU_2_HD647180: mcu_data = 0xff; break; /* Teki Paki */
632 default: mcu_data = 0x00; break;
633 }
634 if (mcu_data == 0xff) mcu_data = 0x10;
635 else mcu_data = 0x00;
636 return ( mcu_data | input_port_6_r(0) );
637 }
638
READ16_HANDLER(pipibibi_z80_status_r)639 static READ16_HANDLER( pipibibi_z80_status_r )
640 {
641 return toaplan2_shared_ram[0] & 0xff;
642 }
643
WRITE16_HANDLER(pipibibi_z80_task_w)644 static WRITE16_HANDLER( pipibibi_z80_task_w )
645 {
646 if (ACCESSING_LSB)
647 {
648 toaplan2_shared_ram[0] = data & 0xff;
649 }
650 }
651
READ16_HANDLER(ghox_p1_h_analog_r)652 static READ16_HANDLER( ghox_p1_h_analog_r )
653 {
654 INT8 value, new_value;
655
656 new_value = input_port_7_r(0);
657 if (new_value == old_p1_paddle_h) return 0;
658 value = new_value - old_p1_paddle_h;
659 old_p1_paddle_h = new_value;
660 return value;
661 }
662
READ16_HANDLER(ghox_p1_v_analog_r)663 static READ16_HANDLER( ghox_p1_v_analog_r )
664 {
665 INT8 new_value;
666
667 new_value = input_port_9_r(0); /* fake vertical movement */
668 if (new_value == old_p1_paddle_v) return input_port_1_r(0);
669 if (new_value > old_p1_paddle_v)
670 {
671 old_p1_paddle_v = new_value;
672 return (input_port_1_r(0) | 2);
673 }
674 old_p1_paddle_v = new_value;
675 return (input_port_1_r(0) | 1);
676 }
677
READ16_HANDLER(ghox_p2_h_analog_r)678 static READ16_HANDLER( ghox_p2_h_analog_r )
679 {
680 INT8 value, new_value;
681
682 new_value = input_port_8_r(0);
683 if (new_value == old_p2_paddle_h) return 0;
684 value = new_value - old_p2_paddle_h;
685 old_p2_paddle_h = new_value;
686 return value;
687 }
688
READ16_HANDLER(ghox_p2_v_analog_r)689 static READ16_HANDLER( ghox_p2_v_analog_r )
690 {
691 INT8 new_value;
692
693 new_value = input_port_10_r(0); /* fake vertical movement */
694 if (new_value == old_p2_paddle_v) return input_port_2_r(0);
695 if (new_value > old_p2_paddle_v)
696 {
697 old_p2_paddle_v = new_value;
698 return (input_port_2_r(0) | 2);
699 }
700 old_p2_paddle_v = new_value;
701 return (input_port_2_r(0) | 1);
702 }
703
READ16_HANDLER(ghox_mcu_r)704 static READ16_HANDLER( ghox_mcu_r )
705 {
706 return 0xff;
707 }
708
WRITE16_HANDLER(ghox_mcu_w)709 static WRITE16_HANDLER( ghox_mcu_w )
710 {
711 if (ACCESSING_LSB)
712 {
713 mcu_data = data;
714 if ((data >= 0xd0) && (data < 0xe0))
715 {
716 offset = ((data & 0x0f) * 2) + (0x38 / 2);
717 toaplan2_shared_ram16[offset ] = 0x0005; /* Return address for */
718 toaplan2_shared_ram16[offset-1] = 0x0056; /* RTS instruction */
719 }
720 else
721 {
722 logerror("PC:%08x Writing %08x to HD647180 cpu shared ram status port\n",activecpu_get_previouspc(),mcu_data);
723 }
724 toaplan2_shared_ram16[0x56 / 2] = 0x004e; /* Return a RTS instruction */
725 toaplan2_shared_ram16[0x58 / 2] = 0x0075;
726
727 if (data == 0xd3)
728 {
729 toaplan2_shared_ram16[0x56 / 2] = 0x003a; // move.w d1,d5
730 toaplan2_shared_ram16[0x58 / 2] = 0x0001;
731 toaplan2_shared_ram16[0x5a / 2] = 0x0008; // bclr.b #0,d5
732 toaplan2_shared_ram16[0x5c / 2] = 0x0085;
733 toaplan2_shared_ram16[0x5e / 2] = 0x0000;
734 toaplan2_shared_ram16[0x60 / 2] = 0x0000;
735 toaplan2_shared_ram16[0x62 / 2] = 0x00cb; // muls.w #3,d5
736 toaplan2_shared_ram16[0x64 / 2] = 0x00fc;
737 toaplan2_shared_ram16[0x66 / 2] = 0x0000;
738 toaplan2_shared_ram16[0x68 / 2] = 0x0003;
739 toaplan2_shared_ram16[0x6a / 2] = 0x0090; // sub.w d5,d0
740 toaplan2_shared_ram16[0x6c / 2] = 0x0045;
741 toaplan2_shared_ram16[0x6e / 2] = 0x00e5; // lsl.b #2,d1
742 toaplan2_shared_ram16[0x70 / 2] = 0x0009;
743 toaplan2_shared_ram16[0x72 / 2] = 0x004e; // rts
744 toaplan2_shared_ram16[0x74 / 2] = 0x0075;
745 }
746 }
747 }
748
READ16_HANDLER(ghox_shared_ram_r)749 static READ16_HANDLER( ghox_shared_ram_r )
750 {
751 /* Ghox 68K reads data from MCU shared RAM and writes it to main RAM.
752 It then subroutine jumps to main RAM and executes this code.
753 Here, we're just returning a RTS instruction for now.
754 See above ghox_mcu_w routine.
755
756 Offset $56 and $58 are accessed from around PC:0F814
757
758 Offset $38 and $36 are accessed from around PC:0DA7C
759 Offset $3c and $3a are accessed from around PC:02E3C
760 Offset $40 and $3E are accessed from around PC:103EE
761 Offset $44 and $42 are accessed from around PC:0FB52
762 Offset $48 and $46 are accessed from around PC:06776
763 */
764
765 return toaplan2_shared_ram16[offset] & 0xff;
766 }
WRITE16_HANDLER(ghox_shared_ram_w)767 static WRITE16_HANDLER( ghox_shared_ram_w )
768 {
769 if (ACCESSING_LSB)
770 {
771 toaplan2_shared_ram16[offset] = data & 0xff;
772 }
773 }
READ16_HANDLER(kbash_sub_cpu_r)774 static READ16_HANDLER( kbash_sub_cpu_r )
775 {
776 /* Knuckle Bash's 68000 reads secondary CPU status via an I/O port.
777 If a value of 2 is read, then secondary CPU is busy.
778 Secondary CPU must report 0xff when no longer busy, to signify that it
779 has passed POST.
780 */
781 return 0xff;
782 }
783
WRITE16_HANDLER(kbash_sub_cpu_w)784 static WRITE16_HANDLER( kbash_sub_cpu_w )
785 {
786 logerror("PC:%08x writing %04x to Zx80 secondary CPU status port %02x\n",activecpu_get_previouspc(),mcu_data,offset/2);
787 }
788
READ16_HANDLER(shared_ram_r)789 static READ16_HANDLER( shared_ram_r )
790 {
791 /* Other games using a Zx80 based secondary CPU, have shared memory between
792 the 68000 and the Zx80 CPU. The 68000 reads the status of the Zx80
793 via a location of the shared memory.
794 */
795 return toaplan2_shared_ram16[offset] & 0xff;
796 }
797
WRITE16_HANDLER(shared_ram_w)798 static WRITE16_HANDLER( shared_ram_w )
799 {
800 if (ACCESSING_LSB)
801 {
802 data &= 0xff;
803 switch (offset * 2)
804 {
805 case 0x6e8:
806 case 0x9e8:
807 case 0x9f0:
808 case 0xcf0:
809 case 0xcf8:
810 case 0xff8: toaplan2_shared_ram16[offset + 1] = data; /* Dogyuun */
811 toaplan2_shared_ram16[offset + 2] = data; /* FixEight */
812 logerror("PC:%08x Writing (%04x) to secondary CPU\n",activecpu_get_previouspc(),data);
813 if (data == 0x81) data = 0x0001;
814 break;
815 default: break;
816 }
817 toaplan2_shared_ram16[offset] = data;
818 }
819 }
820
READ16_HANDLER(Zx80_status_port_r)821 static READ16_HANDLER( Zx80_status_port_r )
822 {
823 /*** Status port includes Zx80 CPU POST codes. ************
824 *** This is actually a part of the 68000/Zx80 Shared RAM */
825
826 /*** Dogyuun mcu post data ***/
827 if (mcu_data == 0x800000aa) mcu_data = 0xff;
828 if (mcu_data == 0x00) mcu_data = 0x800000aa;
829
830 /*** FixEight mcu post data ***/
831 if (mcu_data == 0x8000ffaa)
832 {
833 #if 0 /* check the 37B6 code */
834 /* copy nvram data to shared ram after post is complete */
835 fixeight_sharedram[0] = fixeight_nvram[0]; /* Dip Switch A */
836 fixeight_sharedram[1] = fixeight_nvram[1]; /* Dip Switch B */
837 fixeight_sharedram[2] = fixeight_nvram[2]; /* Territory */
838 #endif
839 /* Hack Alert ! Fixeight does not have any DSW. The main CPU has a */
840 /* game keeping service mode. It writes/reads the settings to/from */
841 /* these shared RAM locations. The secondary CPU reads/writes them */
842 /* from/to nvram to store the settings (a 93C45 EEPROM) */
843 install_mem_read16_handler (0, 0x28f002, 0x28f003, MRA16_RAM);
844 install_mem_read16_handler (0, 0x28f004, 0x28f005, input_port_5_word_r); /* Dip Switch A - Wrong !!! */
845 install_mem_read16_handler (0, 0x28f006, 0x28f007, input_port_6_word_r); /* Dip Switch B - Wrong !!! */
846 install_mem_read16_handler (0, 0x28f008, 0x28f009, input_port_7_word_r); /* Territory Jumper block - Wrong !!! */
847 install_mem_read16_handler (0, 0x28f00a, 0x28fbff, MRA16_RAM);
848 install_mem_write16_handler (0, 0x28f002, 0x28f003, MWA16_RAM);
849 install_mem_write16_handler (0, 0x28f004, 0x28f009, MWA16_NOP);
850 install_mem_write16_handler (0, 0x28f00a, 0x28fbff, MWA16_RAM);
851
852 mcu_data = 0xffff;
853 }
854 if (mcu_data == 0xffaa) mcu_data = 0x8000ffaa;
855 if (mcu_data == 0xff00) mcu_data = 0xffaa;
856
857 logerror("PC:%08x reading %08x from Zx80 secondary CPU command/status port\n",activecpu_get_previouspc(),mcu_data);
858 return mcu_data & 0xff;
859 }
860
WRITE16_HANDLER(Zx80_command_port_w)861 static WRITE16_HANDLER( Zx80_command_port_w )
862 {
863 if (ACCESSING_LSB)
864 {
865 mcu_data = data;
866 logerror("PC:%08x Writing command (%04x) to Zx80 secondary CPU command/status port\n",activecpu_get_previouspc(),mcu_data);
867 }
868 }
869
READ16_HANDLER(Zx80_sharedram_r)870 static READ16_HANDLER( Zx80_sharedram_r )
871 {
872 return Zx80_shared_ram[offset] & 0xff;
873 }
874
WRITE16_HANDLER(Zx80_sharedram_w)875 static WRITE16_HANDLER( Zx80_sharedram_w )
876 {
877 if (ACCESSING_LSB)
878 {
879 Zx80_shared_ram[offset] = data & 0xff;
880 }
881 }
882
WRITE16_HANDLER(oki_bankswitch_w)883 static WRITE16_HANDLER( oki_bankswitch_w )
884 {
885 if (ACCESSING_LSB)
886 {
887 OKIM6295_set_bank_base(0, (data & 1) * 0x40000);
888 }
889 }
890
891
892
893 /***************************************************************************
894 Raizing games
895 ***************************************************************************/
896
READ16_HANDLER(raizing_shared_ram_r)897 static READ16_HANDLER( raizing_shared_ram_r )
898 {
899 return raizing_shared_ram[offset] & 0xff;
900 }
901
WRITE16_HANDLER(raizing_shared_ram_w)902 static WRITE16_HANDLER( raizing_shared_ram_w )
903 {
904 if (ACCESSING_LSB)
905 {
906 raizing_shared_ram[offset] = data & 0xff;
907 }
908 }
909
READ16_HANDLER(battleg_commram_r)910 static READ16_HANDLER( battleg_commram_r )
911 {
912 return battleg_commram16[offset];
913 }
914
WRITE16_HANDLER(battleg_commram_w)915 static WRITE16_HANDLER( battleg_commram_w )
916 {
917 COMBINE_DATA(&battleg_commram16[offset]);
918 cpu_set_irq_line(1, 0, HOLD_LINE);
919 if (offset == 0) cpu_yield(); /* Command issued so switch control */
920 }
921
READ_HANDLER(battleg_commram_check_r0)922 static READ_HANDLER( battleg_commram_check_r0 )
923 {
924 data8_t *battleg_common_RAM = (data8_t *)battleg_commram16;
925
926 return battleg_common_RAM[BYTE_XOR_BE(offset * 2 + 1)];
927 }
928
WRITE_HANDLER(battleg_commram_check_w0)929 static WRITE_HANDLER( battleg_commram_check_w0 )
930 {
931 data8_t *battleg_common_RAM = (data8_t *)battleg_commram16;
932
933 battleg_common_RAM[BYTE_XOR_BE(0)] = data;
934 cpu_yield(); /* Command issued so switch control */
935 }
936
READ16_HANDLER(battleg_z80check_r)937 static READ16_HANDLER( battleg_z80check_r )
938 {
939 return raizing_shared_ram[offset + 0x10] & 0xff;
940 }
941
WRITE_HANDLER(battleg_bankswitch_w)942 static WRITE_HANDLER( battleg_bankswitch_w )
943 {
944 data8_t *RAM = (data8_t *)memory_region(REGION_CPU2);
945 int bankaddress;
946 int bank;
947
948 bank = (data & 0x0f) - 10;
949
950 if (bank != current_bank)
951 {
952 current_bank = bank;
953 bankaddress = 0x10000 + 0x4000 * current_bank;
954 cpu_setbank(1, &RAM[bankaddress]);
955 }
956 }
957
raizing_oki6295_set_bankbase(int chip,int channel,int base)958 static void raizing_oki6295_set_bankbase( int chip, int channel, int base )
959 {
960 /* The OKI6295 ROM space is divided in four banks, each one independantly */
961 /* controlled. The sample table at the beginning of the addressing space */
962 /* is divided in four pages as well, banked together with the sample data */
963
964 data8_t *rom = (data8_t *)memory_region(REGION_SOUND1 + chip);
965
966 /* copy the samples */
967 memcpy(rom + channel * 0x10000, rom + 0x40000 + base, 0x10000);
968
969 /* and also copy the samples address table */
970 rom += channel * 0x100;
971 memcpy(rom, rom + 0x40000 + base, 0x100);
972 }
973
974
WRITE_HANDLER(raizing_okim6295_bankselect_0)975 static WRITE_HANDLER( raizing_okim6295_bankselect_0 )
976 {
977 raizing_oki6295_set_bankbase( 0, 0, (data & 0x0f) * 0x10000);
978 raizing_oki6295_set_bankbase( 0, 1, ((data >> 4) & 0x0f) * 0x10000);
979 }
980
WRITE_HANDLER(raizing_okim6295_bankselect_1)981 static WRITE_HANDLER( raizing_okim6295_bankselect_1 )
982 {
983 raizing_oki6295_set_bankbase( 0, 2, (data & 0x0f) * 0x10000);
984 raizing_oki6295_set_bankbase( 0, 3, ((data >> 4) & 0x0f) * 0x10000);
985 }
986
WRITE_HANDLER(raizing_okim6295_bankselect_2)987 static WRITE_HANDLER( raizing_okim6295_bankselect_2 )
988 {
989 raizing_oki6295_set_bankbase( 1, 0, (data & 0x0f) * 0x10000);
990 raizing_oki6295_set_bankbase( 1, 1, ((data >> 4) & 0x0f) * 0x10000);
991 }
992
WRITE_HANDLER(raizing_okim6295_bankselect_3)993 static WRITE_HANDLER( raizing_okim6295_bankselect_3 )
994 {
995 raizing_oki6295_set_bankbase( 1, 2, (data & 0x0f) * 0x10000);
996 raizing_oki6295_set_bankbase( 1, 3, ((data >> 4) & 0x0f) * 0x10000);
997 }
998
WRITE_HANDLER(batrider_bankswitch_w)999 static WRITE_HANDLER( batrider_bankswitch_w )
1000 {
1001 data8_t *RAM = (data8_t *)memory_region(REGION_CPU2);
1002 int bankaddress;
1003 int bank;
1004
1005 bank = data & 0x0f;
1006
1007 if (bank != current_bank)
1008 {
1009 current_bank = bank;
1010 logerror("Z80 cpu set bank #%d\n", bank);
1011 if (bank > 1)
1012 bankaddress = 0x10000 + 0x4000 * (current_bank - 2);
1013 else
1014 bankaddress = 0x4000 * current_bank;
1015 cpu_setbank(1, &RAM[bankaddress]);
1016 }
1017 }
1018
READ16_HANDLER(batrider_z80_busack_r)1019 static READ16_HANDLER( batrider_z80_busack_r )
1020 {
1021 /* Bit 1 returns the status of BUSAK from the Z80.
1022 BUSRQ is activated via bit 0x10 on the NVRAM write port.
1023 These accesses are made when the 68K wants to read the Z80
1024 ROM code. Failure to return the correct status incurrs a Sound Error.
1025 */
1026
1027 return raizing_Z80_busreq; /* Loop BUSRQ to BUSAK */
1028 }
WRITE16_HANDLER(batrider_z80_busreq_w)1029 static WRITE16_HANDLER( batrider_z80_busreq_w )
1030 {
1031 if (ACCESSING_LSB)
1032 {
1033 raizing_Z80_busreq = (data & 0xff);
1034 }
1035 }
1036
READ16_HANDLER(raizing_z80rom_r)1037 static READ16_HANDLER( raizing_z80rom_r )
1038 {
1039 data8_t *Z80_ROM_test = (data8_t *)memory_region(REGION_CPU2);
1040
1041 if (offset < 0x8000)
1042 return Z80_ROM_test[offset] & 0xff;
1043
1044 return Z80_ROM_test[offset + 0x8000] & 0xff;
1045 }
1046
1047
1048
1049 /*###################### Battle Bakraid ##############################*/
1050
1051 /* EEPROM contents with battle Bakraid Unlimited version features unlocked */
1052 static data8_t bbakraid_unlimited_nvram[512] = {
1053 0xc2,0x49,0x00,0x07,0xa1,0x20,0x2a,0x2a,0x2a,0x90,0x90,0x90,0x00,0x00,0x00,0x00,
1054 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x2a,0x2a,0x2a,0x94,
1055 0x94,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,
1056 0x93,0xe0,0x2a,0x2a,0x2a,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1057 0x00,0x00,0x00,0x02,0x00,0x03,0x0d,0x40,0x2a,0x2a,0x2a,0x9c,0x9c,0x9c,0x00,0x00,
1058 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x2a,0x2a,
1059 0x2a,0xa0,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
1060 0x00,0x07,0xa1,0x20,0x2b,0x2b,0x2b,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,
1061 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x2b,0x2b,0x2b,0x94,0x94,0x94,
1062 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,
1063 0x2b,0x2b,0x2b,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1064 0x00,0x02,0x00,0x03,0x0d,0x40,0x2b,0x2b,0x2b,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,
1065 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x2b,0x2b,0x2b,0xa0,
1066 0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,
1067 0xa1,0x20,0x23,0x23,0x23,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1068 0x00,0x00,0x00,0x02,0x00,0x06,0x1a,0x80,0x23,0x23,0x23,0x94,0x94,0x94,0x00,0x00,
1069 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,0x23,0x23,
1070 0x23,0x98,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
1071 0x00,0x03,0x0d,0x40,0x23,0x23,0x23,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,
1072 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x23,0x23,0x23,0xa0,0xa0,0xa0,
1073 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0xa1,0x20,
1074 0x3f,0x3f,0x3f,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1075 0x00,0x02,0x00,0x06,0x1a,0x80,0x3f,0x3f,0x3f,0x94,0x94,0x94,0x00,0x00,0x00,0x00,
1076 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x93,0xe0,0x3f,0x3f,0x3f,0x98,
1077 0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x03,
1078 0x0d,0x40,0x3f,0x3f,0x3f,0x9c,0x9c,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1079 0x00,0x00,0x00,0x02,0x00,0x01,0x86,0xa0,0x3f,0x3f,0x3f,0xa0,0xa0,0xa0,0x00,0x00,
1080 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0xc2,0x49,0xc2,0x49,
1081 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1082 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1083 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0xcf,0x00,0x04,0x00,0x00,0x21,0xd5,
1084 0x00,0x05,0x06,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xc2,0x49
1085 };
1086
1087
1088
1089 struct EEPROM_interface eeprom_interface_93C66 =
1090 {
1091 /* Pin 6 of the 93C66 is connected to Gnd!
1092 So it's configured for 512 bytes */
1093
1094 9, // address bits
1095 8, // data bits
1096 "*110", // read 110 aaaaaaaaa
1097 "*101", // write 101 aaaaaaaaa dddddddd
1098 "*111", // erase 111 aaaaaaaaa
1099 "*10000xxxxxxx",// lock 100x 00xxxx
1100 "*10011xxxxxxx",// unlock 100x 11xxxx
1101 // "*10001xxxx", // write all 1 00 01xxxx dddddddd
1102 // "*10010xxxx" // erase all 1 00 10xxxx
1103 };
1104
1105
NVRAM_HANDLER(bbakraid)1106 static NVRAM_HANDLER( bbakraid )
1107 {
1108 /* Pin 6 of 93C66 is connected to Gnd! */
1109
1110 if (read_or_write)
1111 EEPROM_save(file);
1112 else
1113 {
1114 EEPROM_init(&eeprom_interface_93C66);
1115
1116 if (file) EEPROM_load(file);
1117 else
1118 {
1119 if (bbakraid_unlimited_ver == 1)
1120 EEPROM_set_data(bbakraid_unlimited_nvram, sizeof(bbakraid_unlimited_nvram));
1121 }
1122 }
1123 }
1124
READ16_HANDLER(bbakraid_nvram_r)1125 static READ16_HANDLER( bbakraid_nvram_r )
1126 {
1127 /* Bit 1 returns the status of BUSAK from the Z80.
1128 BUSRQ is activated via bit 0x10 on the NVRAM write port.
1129 These accesses are made when the 68K wants to read the Z80
1130 ROM code. Failure to return the correct status incurrs a Sound Error.
1131 */
1132
1133 int data;
1134 data = ((EEPROM_read_bit() & 0x01) << 4);
1135 data |= ((raizing_Z80_busreq >> 4) & 0x01); /* Loop BUSRQ to BUSAK */
1136
1137 return data;
1138 }
1139
WRITE16_HANDLER(bbakraid_nvram_w)1140 static WRITE16_HANDLER( bbakraid_nvram_w )
1141 {
1142 if (data & ~0x001f)
1143 logerror("CPU #0 PC:%06X - Unknown EEPROM data being written %04X\n",activecpu_get_pc(),data);
1144
1145 if ( ACCESSING_LSB )
1146 {
1147 // chip select
1148 EEPROM_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE );
1149
1150 // latch the bit
1151 EEPROM_write_bit( (data & 0x04) >> 2 );
1152
1153 // clock line asserted: write latch or select next bit to read
1154 EEPROM_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE );
1155 }
1156 raizing_Z80_busreq = data & 0x10; /* see bbakraid_nvram_r above */
1157 }
1158
1159
1160 /****** Battle Bakraid 68K handlers ******/
READ16_HANDLER(raizing_sndcomms_r)1161 static READ16_HANDLER ( raizing_sndcomms_r )
1162 {
1163 // logerror("68K (PC:%06x) reading %04x from $50001%01x\n",activecpu_get_pc(),(raizing_cpu_reply[offset] & 0xff),(offset*2));
1164 return (raizing_cpu_reply[offset] & 0xff);
1165 }
WRITE16_HANDLER(raizing_sndcomms_w)1166 static WRITE16_HANDLER ( raizing_sndcomms_w )
1167 {
1168 // logerror("68K (PC:%06x) writing %04x to $50001%01x\n",activecpu_get_pc(),data,((offset*2)+4));
1169 COMBINE_DATA(&raizing_cpu_comm16[offset]);
1170
1171 cpu_set_nmi_line(1, ASSERT_LINE);
1172 cpu_yield();
1173 }
1174
1175 /****** Battle Bakraid Z80 handlers ******/
READ_HANDLER(raizing_command_r)1176 static READ_HANDLER ( raizing_command_r )
1177 {
1178 data8_t *raizing_cpu_comm = (data8_t *)raizing_cpu_comm16;
1179
1180 logerror("Z80 (PC:%04x) reading %02x from $48\n",activecpu_get_pc(),raizing_cpu_comm[BYTE_XOR_BE(1)]);
1181 return raizing_cpu_comm[BYTE_XOR_BE(1)];
1182 }
READ_HANDLER(raizing_request_r)1183 static READ_HANDLER ( raizing_request_r )
1184 {
1185 data8_t *raizing_cpu_comm = (data8_t *)raizing_cpu_comm16;
1186
1187 logerror("Z80 (PC:%04x) reading %02x from $4A\n",activecpu_get_pc(),raizing_cpu_comm[BYTE_XOR_BE(3)]);
1188 return raizing_cpu_comm[BYTE_XOR_BE(3)];
1189 }
WRITE_HANDLER(raizing_command_ack_w)1190 static WRITE_HANDLER ( raizing_command_ack_w )
1191 {
1192 // logerror("Z80 (PC:%04x) writing %02x to $40\n",activecpu_get_pc(),data);
1193 raizing_cpu_reply[0] = data;
1194 }
WRITE_HANDLER(raizing_request_ack_w)1195 static WRITE_HANDLER ( raizing_request_ack_w )
1196 {
1197 // logerror("Z80 (PC:%04x) writing %02x to $42\n",activecpu_get_pc(),data);
1198 raizing_cpu_reply[1] = data;
1199 }
1200
1201
WRITE_HANDLER(raizing_clear_nmi_w)1202 static WRITE_HANDLER ( raizing_clear_nmi_w )
1203 {
1204 // logerror("Clear NMI on the Z80 (Z80 PC:%06x writing %04x)\n",activecpu_get_pc(),data);
1205 cpu_set_nmi_line(1, CLEAR_LINE);
1206 cpu_yield();
1207 }
1208
WRITE16_HANDLER(bbakraid_trigger_z80_irq)1209 static WRITE16_HANDLER ( bbakraid_trigger_z80_irq )
1210 {
1211 // logerror("Triggering IRQ on the Z80 (PC:%06x)\n",activecpu_get_pc());
1212 cpu_set_irq_line(1, 0, HOLD_LINE);
1213 cpu_yield();
1214 }
1215
bbakraid_irqhandler(int state)1216 static void bbakraid_irqhandler (int state)
1217 {
1218 /* Not used ??? Connected to a test pin (TP082) */
1219 logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
1220 }
1221
INTERRUPT_GEN(bbakraid_snd_interrupt)1222 static INTERRUPT_GEN( bbakraid_snd_interrupt )
1223 {
1224 cpu_set_irq_line(1, 0, HOLD_LINE);
1225 }
1226
1227
MEMORY_READ16_START(tekipaki_readmem)1228 static MEMORY_READ16_START( tekipaki_readmem )
1229 { 0x000000, 0x01ffff, MRA16_ROM },
1230 { 0x020000, 0x03ffff, MRA16_ROM }, /* extra for Whoopee */
1231 { 0x080000, 0x082fff, MRA16_RAM },
1232 { 0x0c0000, 0x0c0fff, paletteram16_word_r },
1233 { 0x140004, 0x140007, toaplan2_0_videoram16_r },
1234 { 0x14000c, 0x14000d, toaplan2_inputport_0_word_r }, /* VBlank */
1235 { 0x180000, 0x180001, input_port_4_word_r }, /* Dip Switch A */
1236 { 0x180010, 0x180011, input_port_5_word_r }, /* Dip Switch B */
1237 { 0x180020, 0x180021, input_port_3_word_r }, /* Coin/System inputs */
1238 { 0x180030, 0x180031, c2map_port_6_r }, /* CPU 2 busy and Territory Jumper block */
1239 { 0x180050, 0x180051, input_port_1_word_r }, /* Player 1 controls */
1240 { 0x180060, 0x180061, input_port_2_word_r }, /* Player 2 controls */
1241 MEMORY_END
1242
1243 static MEMORY_WRITE16_START( tekipaki_writemem )
1244 { 0x000000, 0x01ffff, MWA16_ROM },
1245 { 0x020000, 0x03ffff, MWA16_ROM }, /* extra for Whoopee */
1246 { 0x080000, 0x082fff, MWA16_RAM },
1247 { 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1248 { 0x140000, 0x140001, toaplan2_0_voffs_w },
1249 { 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1250 { 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
1251 { 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
1252 { 0x180040, 0x180041, toaplan2_coin_word_w }, /* Coin count/lock */
1253 { 0x180070, 0x180071, toaplan2_hd647180_cpu_w },
1254 MEMORY_END
1255
1256 static MEMORY_READ16_START( ghox_readmem )
1257 { 0x000000, 0x03ffff, MRA16_ROM },
1258 { 0x040000, 0x040001, ghox_p2_h_analog_r }, /* Paddle 2 */
1259 { 0x080000, 0x083fff, MRA16_RAM },
1260 { 0x0c0000, 0x0c0fff, paletteram16_word_r },
1261 { 0x100000, 0x100001, ghox_p1_h_analog_r }, /* Paddle 1 */
1262 { 0x140004, 0x140007, toaplan2_0_videoram16_r },
1263 { 0x14000c, 0x14000d, toaplan2_inputport_0_word_r }, /* VBlank */
1264 { 0x180000, 0x180001, ghox_mcu_r }, /* really part of shared RAM */
1265 { 0x180006, 0x180007, input_port_4_word_r }, /* Dip Switch A */
1266 { 0x180008, 0x180009, input_port_5_word_r }, /* Dip Switch B */
1267 { 0x180010, 0x180011, input_port_3_word_r }, /* Coin/System inputs */
1268 // { 0x18000c, 0x18000d, input_port_1_word_r }, /* Player 1 controls (real) */
1269 // { 0x18000e, 0x18000f, input_port_2_word_r }, /* Player 2 controls (real) */
1270 { 0x18000c, 0x18000d, ghox_p1_v_analog_r }, /* Player 1 controls */
1271 { 0x18000e, 0x18000f, ghox_p2_v_analog_r }, /* Player 2 controls */
1272 { 0x180500, 0x180fff, ghox_shared_ram_r },
1273 { 0x18100c, 0x18100d, input_port_6_word_r }, /* Territory Jumper block */
1274 MEMORY_END
1275
1276 static MEMORY_WRITE16_START( ghox_writemem )
1277 { 0x000000, 0x03ffff, MWA16_ROM },
1278 { 0x080000, 0x083fff, MWA16_RAM },
1279 { 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1280 { 0x140000, 0x140001, toaplan2_0_voffs_w },
1281 { 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1282 { 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
1283 { 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
1284 { 0x180000, 0x180001, ghox_mcu_w }, /* really part of shared RAM */
1285 { 0x180500, 0x180fff, ghox_shared_ram_w, &toaplan2_shared_ram16 },
1286 { 0x181000, 0x181001, toaplan2_coin_word_w },
1287 MEMORY_END
1288
1289 static MEMORY_READ16_START( dogyuun_readmem )
1290 { 0x000000, 0x07ffff, MRA16_ROM },
1291 { 0x100000, 0x103fff, MRA16_RAM },
1292 { 0x200010, 0x200011, input_port_1_word_r }, /* Player 1 controls */
1293 { 0x200014, 0x200015, input_port_2_word_r }, /* Player 2 controls */
1294 { 0x200018, 0x200019, input_port_3_word_r }, /* Coin/System inputs */
1295 #if Zx80
1296 { 0x21e000, 0x21fbff, shared_ram_r }, /* $21f000 status port */
1297 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1298 #else
1299 { 0x21e000, 0x21efff, shared_ram_r },
1300 { 0x21f000, 0x21f001, Zx80_status_port_r }, /* Zx80 status port */
1301 { 0x21f004, 0x21f005, input_port_4_word_r }, /* Dip Switch A */
1302 { 0x21f006, 0x21f007, input_port_5_word_r }, /* Dip Switch B */
1303 { 0x21f008, 0x21f009, input_port_6_word_r }, /* Territory Jumper block */
1304 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1305 #endif
1306 /***** The following in 0x30000x are for video controller 1 ******/
1307 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
1308 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1309 { 0x400000, 0x400fff, paletteram16_word_r },
1310 /***** The following in 0x50000x are for video controller 2 ******/
1311 { 0x500004, 0x500007, toaplan2_1_videoram16_r },/* tile layers 2 */
1312 { 0x700000, 0x700001, video_count_r }, /* test bit 8 */
1313 MEMORY_END
1314
1315 static MEMORY_WRITE16_START( dogyuun_writemem )
1316 { 0x000000, 0x07ffff, MWA16_ROM },
1317 { 0x100000, 0x103fff, MWA16_RAM },
1318 { 0x200008, 0x200009, OKIM6295_data_0_lsb_w }, /// Really ?
1319 { 0x20001c, 0x20001d, toaplan2_coin_word_w },
1320 #if Zx80
1321 { 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 }, /* $21F000 */
1322 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1323 #else
1324 { 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
1325 { 0x21f000, 0x21f001, Zx80_command_port_w }, /* Zx80 command port */
1326 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1327 #endif
1328 /***** The following in 0x30000x are for video controller 1 ******/
1329 { 0x300000, 0x300001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1330 { 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1331 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1332 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1333 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1334 /***** The following in 0x50000x are for video controller 2 ******/
1335 { 0x500000, 0x500001, toaplan2_1_voffs_w }, /* VideoRAM selector/offset */
1336 { 0x500004, 0x500007, toaplan2_1_videoram16_w },/* Tile/Sprite VideoRAM */
1337 { 0x500008, 0x500009, toaplan2_1_scroll_reg_select_w },
1338 { 0x50000c, 0x50000d, toaplan2_1_scroll_reg_data_w },
1339 MEMORY_END
1340
1341 static MEMORY_READ16_START( kbash_readmem )
1342 { 0x000000, 0x07ffff, MRA16_ROM },
1343 { 0x100000, 0x103fff, MRA16_RAM },
1344 { 0x200000, 0x200001, kbash_sub_cpu_r },
1345 { 0x200004, 0x200005, input_port_4_word_r }, /* Dip Switch A */
1346 { 0x200006, 0x200007, input_port_5_word_r }, /* Dip Switch B */
1347 { 0x200008, 0x200009, input_port_6_word_r }, /* Territory Jumper block */
1348 { 0x208010, 0x208011, input_port_1_word_r }, /* Player 1 controls */
1349 { 0x208014, 0x208015, input_port_2_word_r }, /* Player 2 controls */
1350 { 0x208018, 0x208019, input_port_3_word_r }, /* Coin/System inputs */
1351 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
1352 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1353 { 0x400000, 0x400fff, paletteram16_word_r },
1354 { 0x700000, 0x700001, video_count_r }, /* test bit 8 */
1355 MEMORY_END
1356
1357 static MEMORY_WRITE16_START( kbash_writemem )
1358 { 0x000000, 0x07ffff, MWA16_ROM },
1359 { 0x100000, 0x103fff, MWA16_RAM },
1360 { 0x200000, 0x200003, kbash_sub_cpu_w }, /* sound number to play */
1361 // { 0x200002, 0x200003, kbash_sub_cpu_w2 }, /* ??? */
1362 { 0x20801c, 0x20801d, toaplan2_coin_word_w },
1363 { 0x300000, 0x300001, toaplan2_0_voffs_w },
1364 { 0x300004, 0x300007, toaplan2_0_videoram16_w },
1365 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1366 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1367 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1368 MEMORY_END
1369
1370 static MEMORY_READ16_START( truxton2_readmem )
1371 { 0x000000, 0x07ffff, MRA16_ROM },
1372 { 0x100000, 0x10ffff, MRA16_RAM },
1373 { 0x200004, 0x200007, toaplan2_0_videoram16_r },
1374 { 0x20000c, 0x20000d, toaplan2_inputport_0_word_r }, /* VBlank */
1375 { 0x300000, 0x300fff, paletteram16_word_r },
1376 { 0x400000, 0x401fff, toaplan2_txvideoram16_r },
1377 { 0x402000, 0x4021ff, toaplan2_txvideoram16_offs_r },
1378 { 0x402200, 0x402fff, MRA16_RAM },
1379 { 0x403000, 0x4031ff, toaplan2_txscrollram16_r },
1380 { 0x403200, 0x403fff, MRA16_RAM },
1381 { 0x500000, 0x50ffff, toaplan2_tx_gfxram16_r },
1382 { 0x600000, 0x600001, video_count_r },
1383 { 0x700000, 0x700001, input_port_4_word_r }, /* Dip Switch A */
1384 { 0x700002, 0x700003, input_port_5_word_r }, /* Dip Switch B */
1385 { 0x700004, 0x700005, input_port_6_word_r }, /* Territory Jumper block */
1386 { 0x700006, 0x700007, input_port_1_word_r }, /* Player 1 controls */
1387 { 0x700008, 0x700009, input_port_2_word_r }, /* Player 2 controls */
1388 { 0x70000a, 0x70000b, input_port_3_word_r }, /* Coin/System inputs */
1389 { 0x700010, 0x700011, OKIM6295_status_0_lsb_r },
1390 { 0x700014, 0x700015, MRA16_NOP },
1391 { 0x700016, 0x700017, YM2151_status_port_0_lsb_r },
1392 MEMORY_END
1393
1394 static MEMORY_WRITE16_START( truxton2_writemem )
1395 { 0x000000, 0x07ffff, MWA16_ROM },
1396 { 0x100000, 0x10ffff, MWA16_RAM },
1397 { 0x200000, 0x200001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1398 { 0x200004, 0x200007, toaplan2_0_videoram16_w },
1399 { 0x200008, 0x200009, toaplan2_0_scroll_reg_select_w },
1400 { 0x20000c, 0x20000d, toaplan2_0_scroll_reg_data_w },
1401 { 0x300000, 0x300fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1402 { 0x400000, 0x401fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1403 { 0x402000, 0x4021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1404 { 0x402200, 0x402fff, MWA16_RAM },
1405 { 0x403000, 0x4031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1406 { 0x403200, 0x403fff, MWA16_RAM },
1407 { 0x500000, 0x50ffff, toaplan2_tx_gfxram16_w, &toaplan2_tx_gfxram16 },
1408 { 0x700010, 0x700011, OKIM6295_data_0_lsb_w },
1409 { 0x700014, 0x700015, YM2151_register_port_0_lsb_w },
1410 { 0x700016, 0x700017, YM2151_data_port_0_lsb_w },
1411 { 0x70001e, 0x70001f, toaplan2_coin_word_w }, /* Coin count/lock */
1412 MEMORY_END
1413
1414 static MEMORY_READ16_START( pipibibs_readmem )
1415 { 0x000000, 0x03ffff, MRA16_ROM },
1416 { 0x080000, 0x082fff, MRA16_RAM },
1417 { 0x0c0000, 0x0c0fff, paletteram16_word_r },
1418 { 0x140004, 0x140007, toaplan2_0_videoram16_r },
1419 { 0x14000c, 0x14000d, toaplan2_inputport_0_word_r }, /* VBlank */
1420 { 0x190000, 0x190fff, toaplan2_shared_r },
1421 { 0x19c020, 0x19c021, input_port_4_word_r }, /* Dip Switch A */
1422 { 0x19c024, 0x19c025, input_port_5_word_r }, /* Dip Switch B */
1423 { 0x19c028, 0x19c029, input_port_6_word_r }, /* Territory Jumper block */
1424 { 0x19c02c, 0x19c02d, input_port_3_word_r }, /* Coin/System inputs */
1425 { 0x19c030, 0x19c031, input_port_1_word_r }, /* Player 1 controls */
1426 { 0x19c034, 0x19c035, input_port_2_word_r }, /* Player 2 controls */
1427 MEMORY_END
1428
1429 static MEMORY_WRITE16_START( pipibibs_writemem )
1430 { 0x000000, 0x03ffff, MWA16_ROM },
1431 { 0x080000, 0x082fff, MWA16_RAM },
1432 { 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1433 { 0x140000, 0x140001, toaplan2_0_voffs_w },
1434 { 0x140004, 0x140007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1435 { 0x140008, 0x140009, toaplan2_0_scroll_reg_select_w },
1436 { 0x14000c, 0x14000d, toaplan2_0_scroll_reg_data_w },
1437 { 0x190000, 0x190fff, toaplan2_shared_w },
1438 { 0x19c01c, 0x19c01d, toaplan2_coin_word_w }, /* Coin count/lock */
1439 MEMORY_END
1440
1441 static MEMORY_READ16_START( pipibibi_readmem )
1442 { 0x000000, 0x03ffff, MRA16_ROM },
1443 { 0x080000, 0x082fff, MRA16_RAM },
1444 { 0x083000, 0x0837ff, pipibibi_spriteram16_r },
1445 { 0x083800, 0x087fff, MRA16_RAM },
1446 { 0x0c0000, 0x0c0fff, paletteram16_word_r },
1447 { 0x120000, 0x120fff, MRA16_RAM },
1448 { 0x180000, 0x182fff, pipibibi_videoram16_r },
1449 { 0x190002, 0x190003, pipibibi_z80_status_r }, /* Z80 ready ? */
1450 { 0x19c020, 0x19c021, input_port_4_word_r }, /* Dip Switch A */
1451 { 0x19c024, 0x19c025, input_port_5_word_r }, /* Dip Switch B */
1452 { 0x19c028, 0x19c029, input_port_6_word_r }, /* Territory Jumper block */
1453 { 0x19c02c, 0x19c02d, input_port_3_word_r }, /* Coin/System inputs */
1454 { 0x19c030, 0x19c031, input_port_1_word_r }, /* Player 1 controls */
1455 { 0x19c034, 0x19c035, input_port_2_word_r }, /* Player 2 controls */
1456 MEMORY_END
1457
1458 static MEMORY_WRITE16_START( pipibibi_writemem )
1459 { 0x000000, 0x03ffff, MWA16_ROM },
1460 { 0x080000, 0x082fff, MWA16_RAM },
1461 { 0x083000, 0x0837ff, pipibibi_spriteram16_w }, /* SpriteRAM */
1462 { 0x083800, 0x087fff, MWA16_RAM }, /* SpriteRAM (unused) */
1463 { 0x0c0000, 0x0c0fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1464 { 0x120000, 0x120fff, MWA16_RAM }, /* Copy of SpriteRAM ? */
1465 // { 0x13f000, 0x13f001, MWA16_NOP }, /* ??? */
1466 { 0x180000, 0x182fff, pipibibi_videoram16_w }, /* TileRAM */
1467 { 0x188000, 0x18800f, pipibibi_scroll_w },
1468 { 0x190010, 0x190011, pipibibi_z80_task_w }, /* Z80 task to perform */
1469 { 0x19c01c, 0x19c01d, toaplan2_coin_word_w }, /* Coin count/lock */
1470 MEMORY_END
1471
1472 static MEMORY_READ16_START( fixeight_readmem )
1473 { 0x000000, 0x07ffff, MRA16_ROM },
1474 { 0x100000, 0x103fff, MRA16_RAM },
1475 { 0x200000, 0x200001, input_port_1_word_r }, /* Player 1 controls */
1476 { 0x200004, 0x200005, input_port_2_word_r }, /* Player 2 controls */
1477 { 0x200008, 0x200009, input_port_3_word_r }, /* Player 3 controls */
1478 { 0x200010, 0x200011, input_port_4_word_r }, /* Coin/System inputs */
1479 { 0x280000, 0x28dfff, MRA16_RAM }, /* part of shared ram ? */
1480 #if Zx80
1481 { 0x28e000, 0x28fbff, shared_ram_r }, /* $28f000 status port */
1482 { 0x28fc00, 0x28ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1483 #else
1484 { 0x28e000, 0x28efff, shared_ram_r },
1485 { 0x28f000, 0x28f001, Zx80_status_port_r }, /* Zx80 status port */
1486 // { 0x28f002, 0x28f003, MRA16_RAM }, /* part of shared ram */
1487 // { 0x28f004, 0x28f005, input_port_5_word_r }, /* Dip Switch A - Wrong !!! */
1488 // { 0x28f006, 0x28f007, input_port_6_word_r }, /* Dip Switch B - Wrong !!! */
1489 // { 0x28f008, 0x28f009, input_port_7_word_r }, /* Territory Jumper block - Wrong !!! */
1490 // { 0x28f002, 0x28fbff, MRA16_RAM }, /* part of shared ram */
1491 { 0x28fc00, 0x28ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1492 #endif
1493 { 0x300004, 0x300007, toaplan2_0_videoram16_r },
1494 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },
1495 { 0x400000, 0x400fff, paletteram16_word_r },
1496 { 0x500000, 0x501fff, toaplan2_txvideoram16_r },
1497 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
1498 { 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
1499 { 0x600000, 0x60ffff, toaplan2_tx_gfxram16_r },
1500 { 0x800000, 0x800001, video_count_r },
1501 MEMORY_END
1502
1503 static MEMORY_WRITE16_START( fixeight_writemem )
1504 { 0x000000, 0x07ffff, MWA16_ROM },
1505 { 0x100000, 0x103fff, MWA16_RAM },
1506 { 0x20001c, 0x20001d, toaplan2_coin_word_w }, /* Coin count/lock */
1507 { 0x280000, 0x28dfff, MWA16_RAM }, /* part of shared ram ? */
1508 #if Zx80
1509 { 0x28e000, 0x28fbff, shared_ram_w, &toaplan2_shared_ram16 }, /* $28F000 */
1510 { 0x28fc00, 0x28ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1511 #else
1512 { 0x28e000, 0x28efff, shared_ram_w, &toaplan2_shared_ram16 },
1513 { 0x28f000, 0x28f001, Zx80_command_port_w }, /* Zx80 command port */
1514 // { 0x28f002, 0x28f003, MWA16_RAM }, /* part of shared ram */
1515 // { 0x28f004, 0x28f009, MWA16_NOP }, /* part of shared ram */
1516 // { 0x28f002, 0x28fbff, MWA16_RAM }, /* part of shared ram */
1517 { 0x28fc00, 0x28ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1518 #endif
1519 { 0x300000, 0x300001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1520 { 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1521 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1522 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1523 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1524 { 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1525 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1526 { 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1527 { 0x600000, 0x60ffff, toaplan2_tx_gfxram16_w, &toaplan2_tx_gfxram16 },
1528 MEMORY_END
1529
1530 static MEMORY_READ16_START( vfive_readmem )
1531 { 0x000000, 0x07ffff, MRA16_ROM },
1532 { 0x100000, 0x103fff, MRA16_RAM },
1533 // { 0x200000, 0x20ffff, MRA16_ROM }, /* Sound ROM is here ??? */
1534 { 0x200010, 0x200011, input_port_1_word_r }, /* Player 1 controls */
1535 { 0x200014, 0x200015, input_port_2_word_r }, /* Player 2 controls */
1536 { 0x200018, 0x200019, input_port_3_word_r }, /* Coin/System inputs */
1537 #if Zx80
1538 { 0x21e000, 0x21fbff, shared_ram_r }, /* $21f000 status port */
1539 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1540 #else
1541 { 0x21e000, 0x21efff, shared_ram_r },
1542 { 0x21f000, 0x21f001, Zx80_status_port_r }, /* Zx80 status port */
1543 { 0x21f004, 0x21f005, input_port_4_word_r }, /* Dip Switch A */
1544 { 0x21f006, 0x21f007, input_port_5_word_r }, /* Dip Switch B */
1545 { 0x21f008, 0x21f009, input_port_6_word_r }, /* Territory Jumper block */
1546 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1547 #endif
1548 { 0x300004, 0x300007, toaplan2_0_videoram16_r },
1549 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r },
1550 { 0x400000, 0x400fff, paletteram16_word_r },
1551 { 0x700000, 0x700001, video_count_r },
1552 MEMORY_END
1553
1554 static MEMORY_WRITE16_START( vfive_writemem )
1555 { 0x000000, 0x07ffff, MWA16_ROM },
1556 { 0x100000, 0x103fff, MWA16_RAM },
1557 // { 0x200000, 0x20ffff, MWA16_ROM }, /* Sound ROM is here ??? */
1558 { 0x20001c, 0x20001d, toaplan2_coin_word_w }, /* Coin count/lock */
1559 #if Zx80
1560 { 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 }, /* $21F000 */
1561 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1562 #else
1563 { 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
1564 { 0x21f000, 0x21f001, Zx80_command_port_w }, /* Zx80 command port */
1565 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1566 #endif
1567 { 0x300000, 0x300001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1568 { 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1569 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1570 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1571 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1572 MEMORY_END
1573
1574 static MEMORY_READ16_START( batsugun_readmem )
1575 { 0x000000, 0x07ffff, MRA16_ROM },
1576 { 0x100000, 0x10ffff, MRA16_RAM },
1577 { 0x200010, 0x200011, input_port_1_word_r }, /* Player 1 controls */
1578 { 0x200014, 0x200015, input_port_2_word_r }, /* Player 2 controls */
1579 { 0x200018, 0x200019, input_port_3_word_r }, /* Coin/System inputs */
1580 { 0x210000, 0x21bbff, MRA16_RAM },
1581 #if Zx80
1582 { 0x21e000, 0x21fbff, shared_ram_r }, /* $21f000 status port */
1583 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1584 #else
1585 { 0x21e000, 0x21efff, shared_ram_r },
1586 { 0x21f000, 0x21f001, Zx80_status_port_r }, /* Zx80 status port */
1587 { 0x21f004, 0x21f005, input_port_4_word_r }, /* Dip Switch A */
1588 { 0x21f006, 0x21f007, input_port_5_word_r }, /* Dip Switch B */
1589 { 0x21f008, 0x21f009, input_port_6_word_r }, /* Territory Jumper block */
1590 { 0x21fc00, 0x21ffff, Zx80_sharedram_r }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1591 #endif
1592 /***** The following in 0x30000x are for video controller 1 ******/
1593 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
1594 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1595 { 0x400000, 0x400fff, paletteram16_word_r },
1596 /***** The following in 0x50000x are for video controller 2 ******/
1597 { 0x500004, 0x500007, toaplan2_1_videoram16_r },/* tile layers 2 */
1598 { 0x700000, 0x700001, video_count_r },
1599 MEMORY_END
1600
1601 static MEMORY_WRITE16_START( batsugun_writemem )
1602 { 0x000000, 0x07ffff, MWA16_ROM },
1603 { 0x100000, 0x10ffff, MWA16_RAM },
1604 { 0x20001c, 0x20001d, toaplan2_coin_word_w }, /* Coin count/lock */
1605 { 0x210000, 0x21bbff, MWA16_RAM },
1606 #if Zx80
1607 { 0x21e000, 0x21fbff, shared_ram_w, &toaplan2_shared_ram16 }, /* $21F000 */
1608 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1609 #else
1610 { 0x21e000, 0x21efff, shared_ram_w, &toaplan2_shared_ram16 },
1611 { 0x21f000, 0x21f001, Zx80_command_port_w }, /* Zx80 command port */
1612 { 0x21fc00, 0x21ffff, Zx80_sharedram_w, &Zx80_shared_ram }, /* 16-bit on 68000 side, 8-bit on Zx80 side */
1613 #endif
1614 /***** The following in 0x30000x are for video controller 1 ******/
1615 { 0x300000, 0x300001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1616 { 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1617 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1618 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1619 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1620 /***** The following in 0x50000x are for video controller 2 ******/
1621 { 0x500000, 0x500001, toaplan2_1_voffs_w }, /* VideoRAM selector/offset */
1622 { 0x500004, 0x500007, toaplan2_1_videoram16_w },/* Tile/Sprite VideoRAM */
1623 { 0x500008, 0x500009, toaplan2_1_scroll_reg_select_w },
1624 { 0x50000c, 0x50000d, toaplan2_1_scroll_reg_data_w },
1625 MEMORY_END
1626
1627 static MEMORY_READ16_START( snowbro2_readmem )
1628 { 0x000000, 0x07ffff, MRA16_ROM },
1629 { 0x100000, 0x10ffff, MRA16_RAM },
1630 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* tile layers */
1631 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1632 { 0x400000, 0x400fff, paletteram16_word_r },
1633 { 0x500002, 0x500003, YM2151_status_port_0_lsb_r },
1634 { 0x600000, 0x600001, OKIM6295_status_0_lsb_r },
1635 { 0x700000, 0x700001, input_port_8_word_r }, /* Territory Jumper block */
1636 { 0x700004, 0x700005, input_port_6_word_r }, /* Dip Switch A */
1637 { 0x700008, 0x700009, input_port_7_word_r }, /* Dip Switch B */
1638 { 0x70000c, 0x70000d, input_port_1_word_r }, /* Player 1 controls */
1639 { 0x700010, 0x700011, input_port_2_word_r }, /* Player 2 controls */
1640 { 0x700014, 0x700015, input_port_3_word_r }, /* Player 3 controls */
1641 { 0x700018, 0x700019, input_port_4_word_r }, /* Player 4 controls */
1642 { 0x70001c, 0x70001d, input_port_5_word_r }, /* Coin/System inputs */
1643 MEMORY_END
1644
1645 static MEMORY_WRITE16_START( snowbro2_writemem )
1646 { 0x000000, 0x07ffff, MWA16_ROM },
1647 { 0x100000, 0x10ffff, MWA16_RAM },
1648 { 0x300000, 0x300001, toaplan2_0_voffs_w }, /* VideoRAM selector/offset */
1649 { 0x300004, 0x300007, toaplan2_0_videoram16_w },/* Tile/Sprite VideoRAM */
1650 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1651 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1652 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1653 { 0x500000, 0x500001, YM2151_register_port_0_lsb_w },
1654 { 0x500002, 0x500003, YM2151_data_port_0_lsb_w },
1655 { 0x600000, 0x600001, OKIM6295_data_0_lsb_w },
1656 { 0x700030, 0x700031, oki_bankswitch_w }, /* Sample bank switch */
1657 { 0x700034, 0x700035, toaplan2_coin_word_w }, /* Coin count/lock */
1658 MEMORY_END
1659
1660 static MEMORY_READ16_START( mahoudai_readmem )
1661 { 0x000000, 0x07ffff, MRA16_ROM },
1662 { 0x100000, 0x10ffff, MRA16_RAM },
1663 { 0x218000, 0x21bfff, raizing_shared_ram_r },
1664 { 0x21c020, 0x21c021, input_port_1_word_r }, /* Player 1 controls */
1665 { 0x21c024, 0x21c025, input_port_2_word_r }, /* Player 2 controls */
1666 { 0x21c028, 0x21c029, input_port_3_word_r }, /* Coin/System inputs */
1667 { 0x21c02c, 0x21c02d, input_port_4_word_r }, /* Dip Switch A */
1668 { 0x21c030, 0x21c031, input_port_5_word_r }, /* Dip Switch B */
1669 { 0x21c034, 0x21c035, input_port_6_word_r }, /* Territory Jumper block */
1670 { 0x21c03c, 0x21c03d, video_count_r },
1671 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
1672 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1673 { 0x400000, 0x400fff, paletteram16_word_r },
1674 { 0x401000, 0x4017ff, MRA16_RAM }, /* Unused PaletteRAM */
1675 { 0x500000, 0x501fff, toaplan2_txvideoram16_r },
1676 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
1677 { 0x502200, 0x502fff, MRA16_RAM },
1678 { 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
1679 { 0x503200, 0x503fff, MRA16_RAM },
1680 MEMORY_END
1681
1682 static MEMORY_WRITE16_START( mahoudai_writemem )
1683 { 0x000000, 0x07ffff, MWA16_ROM },
1684 { 0x100000, 0x10ffff, MWA16_RAM },
1685 { 0x218000, 0x21bfff, raizing_shared_ram_w },
1686 { 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
1687 { 0x300000, 0x300001, toaplan2_0_voffs_w },
1688 { 0x300004, 0x300007, toaplan2_0_videoram16_w },
1689 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1690 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1691 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1692 { 0x401000, 0x4017ff, MWA16_RAM },
1693 { 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1694 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1695 { 0x502200, 0x502fff, MWA16_RAM },
1696 { 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1697 { 0x503200, 0x503fff, MWA16_RAM },
1698 MEMORY_END
1699
1700 static MEMORY_READ16_START( shippumd_readmem )
1701 { 0x000000, 0x0fffff, MRA16_ROM },
1702 { 0x100000, 0x10ffff, MRA16_RAM },
1703 { 0x218000, 0x21bfff, raizing_shared_ram_r },
1704 { 0x21c020, 0x21c021, input_port_1_word_r }, /* Player 1 controls */
1705 { 0x21c024, 0x21c025, input_port_2_word_r }, /* Player 2 controls */
1706 { 0x21c028, 0x21c029, input_port_3_word_r }, /* Coin/System inputs */
1707 { 0x21c02c, 0x21c02d, input_port_4_word_r }, /* Dip Switch A */
1708 { 0x21c030, 0x21c031, input_port_5_word_r }, /* Dip Switch B */
1709 { 0x21c034, 0x21c035, input_port_6_word_r }, /* Territory Jumper block */
1710 { 0x21c03c, 0x21c03d, video_count_r },
1711 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
1712 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1713 { 0x400000, 0x400fff, paletteram16_word_r },
1714 { 0x401000, 0x4017ff, MRA16_RAM }, /* Unused PaletteRAM */
1715 { 0x500000, 0x501fff, toaplan2_txvideoram16_r },
1716 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
1717 { 0x502200, 0x502fff, MRA16_RAM },
1718 { 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
1719 { 0x503200, 0x503fff, MRA16_RAM },
1720 MEMORY_END
1721
1722 static MEMORY_WRITE16_START( shippumd_writemem )
1723 { 0x000000, 0x0fffff, MWA16_ROM },
1724 { 0x100000, 0x10ffff, MWA16_RAM },
1725 { 0x218000, 0x21bfff, raizing_shared_ram_w },
1726 // { 0x21c008, 0x21c009, MWA16_NOP }, /* ??? */
1727 { 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
1728 { 0x300000, 0x300001, toaplan2_0_voffs_w },
1729 { 0x300004, 0x300007, toaplan2_0_videoram16_w },
1730 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1731 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1732 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1733 { 0x401000, 0x4017ff, MWA16_RAM },
1734 { 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1735 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1736 { 0x502200, 0x502fff, MWA16_RAM },
1737 { 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1738 { 0x503200, 0x503fff, MWA16_RAM },
1739 MEMORY_END
1740
1741 static MEMORY_READ16_START( battleg_readmem )
1742 { 0x000000, 0x0fffff, MRA16_ROM },
1743 { 0x100000, 0x10ffff, MRA16_RAM },
1744 { 0x218020, 0x218023, battleg_z80check_r },
1745 { 0x21c020, 0x21c021, input_port_1_word_r }, /* Player 1 controls */
1746 { 0x21c024, 0x21c025, input_port_2_word_r }, /* Player 2 controls */
1747 { 0x21c028, 0x21c029, input_port_3_word_r }, /* Coin/System inputs */
1748 { 0x21c02c, 0x21c02d, input_port_4_word_r }, /* Dip Switch A */
1749 { 0x21c030, 0x21c031, input_port_5_word_r }, /* Dip Switch B */
1750 { 0x21c034, 0x21c035, input_port_6_word_r }, /* Territory Jumper block */
1751 { 0x21c03c, 0x21c03d, video_count_r },
1752 { 0x300004, 0x300007, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
1753 { 0x30000c, 0x30000d, toaplan2_inputport_0_word_r }, /* VBlank */
1754 { 0x400000, 0x400fff, paletteram16_word_r },
1755 { 0x500000, 0x501fff, toaplan2_txvideoram16_r },
1756 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_r },
1757 { 0x502200, 0x502fff, MRA16_RAM },
1758 { 0x503000, 0x5031ff, toaplan2_txscrollram16_r },
1759 { 0x503200, 0x503fff, MRA16_RAM },
1760 { 0x600000, 0x600fff, battleg_commram_r }, /* CommRAM check */
1761 MEMORY_END
1762
1763 static MEMORY_WRITE16_START( battleg_writemem )
1764 { 0x000000, 0x0fffff, MWA16_ROM },
1765 { 0x100000, 0x10ffff, MWA16_RAM },
1766 { 0x21c01c, 0x21c01d, toaplan2_coin_word_w },
1767 { 0x300000, 0x300001, toaplan2_0_voffs_w },
1768 { 0x300004, 0x300007, toaplan2_0_videoram16_w },
1769 { 0x300008, 0x300009, toaplan2_0_scroll_reg_select_w },
1770 { 0x30000c, 0x30000d, toaplan2_0_scroll_reg_data_w },
1771 { 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1772 { 0x500000, 0x501fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1773 { 0x502000, 0x5021ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1774 { 0x502200, 0x502fff, MWA16_RAM },
1775 { 0x503000, 0x5031ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1776 { 0x503200, 0x503fff, MWA16_RAM },
1777 { 0x600000, 0x600fff, battleg_commram_w, &battleg_commram16 },
1778 MEMORY_END
1779
1780 static MEMORY_READ16_START( batrider_readmem )
1781 { 0x000000, 0x1fffff, MRA16_ROM },
1782 { 0x200000, 0x201fff, toaplan2_txvideoram16_r },/* Text VideoRAM */
1783 { 0x202000, 0x202fff, paletteram16_word_r },
1784 { 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_r },
1785 { 0x203200, 0x2033ff, toaplan2_txscrollram16_r },
1786 { 0x203400, 0x207fff, raizing_tx_gfxram16_r }, /* Main RAM actually */
1787 { 0x208000, 0x20ffff, MRA16_RAM },
1788 { 0x300000, 0x37ffff, raizing_z80rom_r },
1789 { 0x400000, 0x400001, toaplan2_inputport_0_word_r }, /* VBlank */
1790 { 0x400008, 0x40000b, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
1791 { 0x500000, 0x500001, input_port_1_word_r },
1792 { 0x500002, 0x500003, input_port_2_word_r },
1793 { 0x500004, 0x500005, input_port_3_word_r },
1794 { 0x500006, 0x500007, video_count_r },
1795 { 0x500008, 0x50000b, raizing_sndcomms_r },
1796 { 0x50000c, 0x50000d, batrider_z80_busack_r },
1797 MEMORY_END
1798
1799 static MEMORY_WRITE16_START( batrider_writemem )
1800 { 0x000000, 0x1fffff, MWA16_ROM },
1801 { 0x200000, 0x201fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1802 { 0x202000, 0x202fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 , &paletteram_size },
1803 { 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1804 { 0x203200, 0x2033ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1805 { 0x203400, 0x207fff, raizing_tx_gfxram16_w },
1806 { 0x208000, 0x20ffff, MWA16_RAM },
1807 { 0x400000, 0x400001, toaplan2_0_scroll_reg_data_w },
1808 { 0x400004, 0x400005, toaplan2_0_scroll_reg_select_w },
1809 { 0x400008, 0x40000b, toaplan2_0_videoram16_w },
1810 { 0x40000c, 0x40000d, toaplan2_0_voffs_w },
1811 { 0x500010, 0x500011, toaplan2_coin_word_w },
1812 { 0x500020, 0x500023, raizing_sndcomms_w, &raizing_cpu_comm16 },
1813 { 0x500060, 0x500061, batrider_z80_busreq_w },
1814 { 0x500080, 0x500081, batrider_textdata_decode },
1815 { 0x5000c0, 0x5000cf, batrider_objectbank_w },
1816 MEMORY_END
1817
1818 static MEMORY_READ16_START( bbakraid_readmem )
1819 { 0x000000, 0x1fffff, MRA16_ROM },
1820 { 0x200000, 0x201fff, toaplan2_txvideoram16_r },/* Text VideoRAM */
1821 { 0x202000, 0x202fff, paletteram16_word_r },
1822 { 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_r },
1823 { 0x203200, 0x2033ff, toaplan2_txscrollram16_r },
1824 { 0x203400, 0x207fff, raizing_tx_gfxram16_r }, /* Main RAM actually */
1825 { 0x208000, 0x20ffff, MRA16_RAM },
1826 { 0x300000, 0x33ffff, raizing_z80rom_r },
1827 { 0x400000, 0x400001, toaplan2_inputport_0_word_r }, /* VBlank */
1828 { 0x400008, 0x40000b, toaplan2_0_videoram16_r },/* Tile/Sprite VideoRAM */
1829 { 0x500000, 0x500001, input_port_1_word_r },
1830 { 0x500002, 0x500003, input_port_2_word_r },
1831 { 0x500004, 0x500005, input_port_3_word_r },
1832 { 0x500006, 0x500007, video_count_r },
1833 { 0x500010, 0x500013, raizing_sndcomms_r },
1834 { 0x500018, 0x500019, bbakraid_nvram_r },
1835 MEMORY_END
1836
1837 static MEMORY_WRITE16_START( bbakraid_writemem )
1838 { 0x000000, 0x1fffff, MWA16_ROM },
1839 { 0x200000, 0x201fff, toaplan2_txvideoram16_w, &toaplan2_txvideoram16, &toaplan2_tx_vram_size },
1840 { 0x202000, 0x202fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 , &paletteram_size },
1841 { 0x203000, 0x2031ff, toaplan2_txvideoram16_offs_w, &toaplan2_txvideoram16_offs, &toaplan2_tx_offs_vram_size },
1842 { 0x203200, 0x2033ff, toaplan2_txscrollram16_w, &toaplan2_txscrollram16, &toaplan2_tx_scroll_vram_size },
1843 { 0x203400, 0x207fff, raizing_tx_gfxram16_w },
1844 { 0x208000, 0x20ffff, MWA16_RAM },
1845 { 0x400000, 0x400001, toaplan2_0_scroll_reg_data_w },
1846 { 0x400004, 0x400005, toaplan2_0_scroll_reg_select_w },
1847 { 0x400008, 0x40000b, toaplan2_0_videoram16_w },
1848 { 0x40000c, 0x40000d, toaplan2_0_voffs_w },
1849 { 0x500008, 0x500009, bbakraid_trigger_z80_irq },
1850 { 0x500010, 0x500011, toaplan2_coin_word_w },
1851 { 0x500014, 0x500017, raizing_sndcomms_w, &raizing_cpu_comm16 },
1852 { 0x50001e, 0x50001f, bbakraid_nvram_w },
1853 { 0x500080, 0x500081, batrider_textdata_decode },
1854 { 0x5000c0, 0x5000cf, batrider_objectbank_w },
1855 MEMORY_END
1856
1857
1858
1859 static MEMORY_READ_START( sound_readmem )
1860 { 0x0000, 0x7fff, MRA_ROM },
1861 { 0x8000, 0x87ff, MRA_RAM },
1862 { 0xe000, 0xe000, YM3812_status_port_0_r },
1863 MEMORY_END
1864
1865 static MEMORY_WRITE_START( sound_writemem )
1866 { 0x0000, 0x7fff, MWA_ROM },
1867 { 0x8000, 0x87ff, MWA_RAM, &toaplan2_shared_ram },
1868 { 0xe000, 0xe000, YM3812_control_port_0_w },
1869 { 0xe001, 0xe001, YM3812_write_port_0_w },
1870 MEMORY_END
1871
1872 static MEMORY_READ_START( raizing_sound_readmem )
1873 { 0x0000, 0xbfff, MRA_ROM },
1874 { 0xc000, 0xdfff, MRA_RAM },
1875 { 0xe001, 0xe001, YM2151_status_port_0_r },
1876 { 0xe004, 0xe004, OKIM6295_status_0_r },
1877 MEMORY_END
1878
1879 static MEMORY_WRITE_START( raizing_sound_writemem )
1880 { 0x0000, 0xbfff, MWA_ROM },
1881 { 0xc000, 0xdfff, MWA_RAM, &raizing_shared_ram },
1882 { 0xe000, 0xe000, YM2151_register_port_0_w },
1883 { 0xe001, 0xe001, YM2151_data_port_0_w },
1884 { 0xe004, 0xe004, OKIM6295_data_0_w },
1885 { 0xe00e, 0xe00e, toaplan2_coin_w },
1886 MEMORY_END
1887
1888 static MEMORY_READ_START( battleg_sound_readmem )
1889 { 0x0000, 0x7fff, MRA_ROM },
1890 { 0x8000, 0xbfff, MRA_BANK1 },
1891 { 0xc000, 0xdfff, MRA_RAM },
1892 { 0xe001, 0xe001, YM2151_status_port_0_r },
1893 { 0xe004, 0xe004, OKIM6295_status_0_r },
1894 { 0xe01c, 0xe01d, battleg_commram_check_r0 },
1895 MEMORY_END
1896
1897 static MEMORY_WRITE_START( battleg_sound_writemem )
1898 { 0x0000, 0xbfff, MWA_ROM },
1899 { 0xc000, 0xdfff, MWA_RAM, &raizing_shared_ram },
1900 { 0xe000, 0xe000, YM2151_register_port_0_w },
1901 { 0xe001, 0xe001, YM2151_data_port_0_w },
1902 { 0xe004, 0xe004, OKIM6295_data_0_w },
1903 { 0xe006, 0xe006, raizing_okim6295_bankselect_0 },
1904 { 0xe008, 0xe008, raizing_okim6295_bankselect_1 },
1905 { 0xe00a, 0xe00a, battleg_bankswitch_w },
1906 { 0xe00c, 0xe00c, battleg_commram_check_w0 },
1907 MEMORY_END
1908
1909 static MEMORY_READ_START( batrider_sound_readmem )
1910 { 0x0000, 0x7fff, MRA_ROM },
1911 { 0x8000, 0xbfff, MRA_BANK1 },
1912 { 0xc000, 0xdfff, MRA_RAM },
1913 MEMORY_END
1914
1915 static MEMORY_WRITE_START( batrider_sound_writemem )
1916 { 0x0000, 0xbfff, MWA_ROM },
1917 { 0xc000, 0xdfff, MWA_RAM },
1918 MEMORY_END
1919
1920 static PORT_READ_START( batrider_sound_readport )
1921 { 0x48, 0x48, raizing_command_r },
1922 { 0x4a, 0x4a, raizing_request_r },
1923 { 0x81, 0x81, YM2151_status_port_0_r },
1924 { 0x82, 0x82, OKIM6295_status_0_r },
1925 { 0x84, 0x84, OKIM6295_status_1_r },
1926 PORT_END
1927
1928 static PORT_WRITE_START( batrider_sound_writeport )
1929 { 0x40, 0x40, raizing_command_ack_w }, /* Tune control */
1930 { 0x42, 0x42, raizing_request_ack_w }, /* Tune to play */
1931 { 0x46, 0x46, raizing_clear_nmi_w }, /* Clear the NMI state */
1932 { 0x80, 0x80, YM2151_register_port_0_w },
1933 { 0x81, 0x81, YM2151_data_port_0_w },
1934 { 0x82, 0x82, OKIM6295_data_0_w },
1935 { 0x84, 0x84, OKIM6295_data_1_w },
1936 { 0x88, 0x88, batrider_bankswitch_w },
1937 { 0xc0, 0xc0, raizing_okim6295_bankselect_0 },
1938 { 0xc2, 0xc2, raizing_okim6295_bankselect_1 },
1939 { 0xc4, 0xc4, raizing_okim6295_bankselect_2 },
1940 { 0xc6, 0xc6, raizing_okim6295_bankselect_3 },
1941 PORT_END
1942
1943 static MEMORY_READ_START( bbakraid_sound_readmem )
1944 { 0x0000, 0x7fff, MRA_ROM },
1945 { 0x8000, 0xbfff, MRA_BANK1 },
1946 { 0xc000, 0xffff, MRA_RAM },
1947 MEMORY_END
1948
1949 static MEMORY_WRITE_START( bbakraid_sound_writemem )
1950 { 0x0000, 0xbfff, MWA_ROM }, /* Only 2FFFh valid code */
1951 { 0xc000, 0xffff, MWA_RAM },
1952 MEMORY_END
1953
1954 static PORT_READ_START( bbakraid_sound_readport )
1955 { 0x48, 0x48, raizing_command_r },
1956 { 0x4a, 0x4a, raizing_request_r },
1957 { 0x81, 0x81, YMZ280B_status_0_r },
1958 PORT_END
1959
1960 static PORT_WRITE_START( bbakraid_sound_writeport )
1961 { 0x40, 0x40, raizing_command_ack_w }, /* Tune control */
1962 { 0x42, 0x42, raizing_request_ack_w }, /* Tune to play */
1963 { 0x46, 0x46, raizing_clear_nmi_w }, /* Clear the NMI state */
1964 { 0x80, 0x80, YMZ280B_register_0_w },
1965 { 0x81, 0x81, YMZ280B_data_0_w },
1966 PORT_END
1967
1968
1969 #if HD64x180
1970 static MEMORY_READ_START( hd647180_readmem )
1971 { 0x0000, 0x7fff, MRA_ROM },
1972 { 0xfe00, 0xffff, MRA_RAM }, /* Internal 512 bytes of RAM */
1973 MEMORY_END
1974
1975 static MEMORY_WRITE_START( hd647180_writemem )
1976 { 0x0000, 0x7fff, MWA_ROM },
1977 { 0xfe00, 0xffff, MWA_RAM }, /* Internal 512 bytes of RAM */
1978 MEMORY_END
1979 #endif
1980
1981
1982 #if Zx80
1983 static MEMORY_READ_START( Zx80_readmem )
1984 { 0x00000, 0x03fff, MRA_ROM },
1985 // { 0x00000, 0x007ff, MRA_RAM }, /* External shared RAM (Banked) */
1986 { 0x04000, 0x04000, YM2151_status_port_0_r },
1987 { 0x04002, 0x04002, OKIM6295_status_0_r },
1988 { 0x04008, 0x04008, input_port_1_r },
1989 { 0x0400a, 0x0400a, input_port_2_r },
1990 { 0x0400c, 0x0400c, input_port_3_r },
1991 { 0x0fe00, 0x0ffff, MRA_RAM }, /* Internal 512 bytes of RAM */
1992 { 0x80000, 0x87fff, MRA_RAM }, /* External shared RAM (ROM for KBASH) */
1993 MEMORY_END
1994
1995 static MEMORY_WRITE_START( Zx80_writemem )
1996 { 0x00000, 0x03fff, MWA_ROM, },
1997 // { 0x00000, 0x007ff, MWA_RAM, }, /* External shared RAM (Banked) */
1998 { 0x04000, 0x04000, YM2151_register_port_0_w },
1999 { 0x04001, 0x04001, YM2151_data_port_0_w },
2000 { 0x04002, 0x04002, OKIM6295_data_0_w },
2001 { 0x04004, 0x04004, oki_bankswitch_w },
2002 { 0x0400e, 0x0400e, toaplan2_coin_w },
2003 { 0x0fe00, 0x0ffff, MWA_RAM }, /* Internal 512 bytes of RAM */
2004 { 0x80000, 0x87fff, MWA_RAM, &Zx80_sharedram }, /* External shared RAM (ROM for KBASH) */
2005 MEMORY_END
2006
2007 static PORT_READ_START( Zx80_readport )
2008 { 0x0060, 0x0060, input_port_4_r }, /* Directly mapped I/O ports */
2009 { 0x0061, 0x0061, input_port_5_r }, /* Directly mapped I/O ports */
2010 { 0x0062, 0x0062, input_port_6_r }, /* Directly mapped I/O ports */
2011 PORT_END
2012 #endif
2013
2014
2015
2016 /*****************************************************************************
2017 Input Port definitions
2018 Service input of the TOAPLAN2_SYSTEM_INPUTS is used as a Pause type input.
2019 If you press then release the following buttons, the following occurs:
2020 Service & P2 start : The game will pause.
2021 P1 start : The game will continue.
2022 Service & P1 start & P2 start : The game will play in slow motion.
2023 *****************************************************************************/
2024
2025 #define TOAPLAN2_PLAYER_INPUT( player, button3, button4 ) \
2026 PORT_START \
2027 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | player ) \
2028 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | player ) \
2029 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | player ) \
2030 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player ) \
2031 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | player ) \
2032 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | player ) \
2033 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, button3 | player ) \
2034 PORT_BIT( 0x0080, IP_ACTIVE_HIGH, button4 | player ) \
2035 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2036
2037 #define SNOWBRO2_PLAYER_INPUT( player, button3, button4 ) \
2038 PORT_START \
2039 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | player ) \
2040 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | player ) \
2041 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | player ) \
2042 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player ) \
2043 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | player ) \
2044 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | player ) \
2045 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, button3 ) \
2046 PORT_BIT( 0x0080, IP_ACTIVE_HIGH, button4 ) \
2047 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2048
2049 #define TOAPLAN2_SYSTEM_INPUTS \
2050 PORT_START \
2051 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SERVICE1 )\
2052 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT ) \
2053 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 ) \
2054 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 ) \
2055 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 ) \
2056 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 ) \
2057 PORT_BIT( 0xff84, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2058
2059 #define DSWA_8 \
2060 PORT_START /* (4) DSWA */ \
2061 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) \
2062 PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
2063 PORT_DIPSETTING( 0x01, DEF_STR( On ) ) \
2064 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) ) \
2065 PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
2066 PORT_DIPSETTING( 0x02, DEF_STR( On ) ) \
2067 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) \
2068 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) \
2069 PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) \
2070 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2071
2072 #define EUROPEAN_COINAGE_8 \
2073 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) \
2074 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) \
2075 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) \
2076 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
2077 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) \
2078 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) \
2079 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) \
2080 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) \
2081 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) \
2082 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
2083
2084 #define NONEUROPEAN_COINAGE_8 \
2085 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) ) \
2086 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \
2087 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) \
2088 PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) ) \
2089 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) \
2090 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) \
2091 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \
2092 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) \
2093 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) ) \
2094 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
2095
2096 #define EUROPEAN_COINAGE_16 \
2097 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Coin_A ) ) \
2098 PORT_DIPSETTING( 0x0030, DEF_STR( 4C_1C ) ) \
2099 PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) ) \
2100 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) \
2101 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) \
2102 PORT_DIPNAME( 0x00c0, 0x0000, DEF_STR( Coin_B ) ) \
2103 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_2C ) ) \
2104 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) ) \
2105 PORT_DIPSETTING( 0x0080, DEF_STR( 1C_4C ) ) \
2106 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_6C ) )
2107
2108 #define NONEUROPEAN_COINAGE_16 \
2109 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Coin_A ) ) \
2110 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) \
2111 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) \
2112 PORT_DIPSETTING( 0x0030, DEF_STR( 2C_3C ) ) \
2113 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) ) \
2114 PORT_DIPNAME( 0xc0, 0x0000, DEF_STR( Coin_B ) ) \
2115 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) ) \
2116 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) \
2117 PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_3C ) ) \
2118 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) )
2119
2120 #define DIFFICULTY_8 \
2121 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) \
2122 PORT_DIPSETTING( 0x01, "Easy" ) \
2123 PORT_DIPSETTING( 0x00, "Medium" ) \
2124 PORT_DIPSETTING( 0x02, "Hard" ) \
2125 PORT_DIPSETTING( 0x03, "Hardest" )
2126
2127 #define LIVES_8 \
2128 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) \
2129 PORT_DIPSETTING( 0x30, "1" ) \
2130 PORT_DIPSETTING( 0x20, "2" ) \
2131 PORT_DIPSETTING( 0x00, "3" ) \
2132 PORT_DIPSETTING( 0x10, "5" )
2133
2134 #define DIFFICULTY_16 \
2135 PORT_DIPNAME( 0x0003, 0x0000, DEF_STR( Difficulty ) ) \
2136 PORT_DIPSETTING( 0x0001, "Easy" ) \
2137 PORT_DIPSETTING( 0x0000, "Medium" ) \
2138 PORT_DIPSETTING( 0x0002, "Hard" ) \
2139 PORT_DIPSETTING( 0x0003, "Hardest" )
2140
2141 #define LIVES_16 \
2142 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Lives ) ) \
2143 PORT_DIPSETTING( 0x0030, "1" ) \
2144 PORT_DIPSETTING( 0x0020, "2" ) \
2145 PORT_DIPSETTING( 0x0000, "3" ) \
2146 PORT_DIPSETTING( 0x0010, "5" )
2147
2148
2149
2150
2151 INPUT_PORTS_START( tekipaki )
2152 PORT_START /* (0) VBlank */
2153 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2154 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2155
2156 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2157
2158 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2159
2160 TOAPLAN2_SYSTEM_INPUTS
2161
2162 DSWA_8
2163 EUROPEAN_COINAGE_8
2164 // NONEUROPEAN_COINAGE_8
2165
2166 PORT_START /* (5) DSWB */
2167 DIFFICULTY_8
2168 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
2169 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2170 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
2171 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
2172 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2173 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2174 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
2175 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2176 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
2177 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
2178 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2179 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
2180 PORT_DIPNAME( 0x40, 0x00, "Game Mode" )
2181 PORT_DIPSETTING( 0x00, "Normal" )
2182 PORT_DIPSETTING( 0x40, "Stop" )
2183 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
2184 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2185 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2186
2187 PORT_START /* (6) Territory Jumper block */
2188 PORT_DIPNAME( 0x0f, 0x02, "Territory" )
2189 PORT_DIPSETTING( 0x02, "Europe" )
2190 PORT_DIPSETTING( 0x01, "USA" )
2191 PORT_DIPSETTING( 0x00, "Japan" )
2192 PORT_DIPSETTING( 0x03, "Hong Kong" )
2193 PORT_DIPSETTING( 0x05, "Taiwan" )
2194 PORT_DIPSETTING( 0x04, "Korea" )
2195 PORT_DIPSETTING( 0x07, "USA (Romstar)" )
2196 PORT_DIPSETTING( 0x08, "Hong Kong (Honest Trading Co.)" )
2197 PORT_DIPSETTING( 0x06, "Taiwan (Spacy Co. Ltd)" )
2198 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2199 INPUT_PORTS_END
2200
2201 INPUT_PORTS_START( ghox )
2202 PORT_START /* (0) VBlank */
2203 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2204 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2205
2206 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2207
2208 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2209
2210 TOAPLAN2_SYSTEM_INPUTS
2211
2212 DSWA_8
2213 EUROPEAN_COINAGE_8
2214 // NONEUROPEAN_COINAGE_8
2215
2216 PORT_START /* (5) DSWB */
2217 DIFFICULTY_8
2218 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
2219 PORT_DIPSETTING( 0x00, "100k and every 200k" )
2220 PORT_DIPSETTING( 0x04, "100k and every 300k" )
2221 PORT_DIPSETTING( 0x08, "100k only" )
2222 PORT_DIPSETTING( 0x0c, "None" )
2223 LIVES_8
2224 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2225 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2226 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2227 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
2228 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2229 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2230
2231 PORT_START /* (6) Territory Jumper block */
2232 PORT_DIPNAME( 0x0f, 0x02, "Territory" )
2233 PORT_DIPSETTING( 0x02, "Europe" )
2234 PORT_DIPSETTING( 0x01, "USA" )
2235 PORT_DIPSETTING( 0x00, "Japan" )
2236 PORT_DIPSETTING( 0x04, "Korea" )
2237 PORT_DIPSETTING( 0x03, "Hong Kong (Honest Trading Co.)" )
2238 PORT_DIPSETTING( 0x05, "Taiwan" )
2239 PORT_DIPSETTING( 0x06, "Spain & Portugal (APM Electronics SA)" )
2240 PORT_DIPSETTING( 0x07, "Italy (Star Electronica SRL)" )
2241 PORT_DIPSETTING( 0x08, "UK (JP Leisure Ltd)" )
2242 PORT_DIPSETTING( 0x0a, "Europe (Nova Apparate GMBH & Co)" )
2243 PORT_DIPSETTING( 0x0d, "Europe (Taito Corporation Japan)" )
2244 PORT_DIPSETTING( 0x09, "USA (Romstar)" )
2245 PORT_DIPSETTING( 0x0b, "USA (Taito America Corporation)" )
2246 PORT_DIPSETTING( 0x0c, "USA (Taito Corporation Japan)" )
2247 PORT_DIPSETTING( 0x0e, "Japan (Taito Corporation)" )
2248 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2249
2250 PORT_START /* (7) Paddle 1 (left-right) read at $100000 */
2251 PORT_ANALOG( 0xff, 0x00, IPT_DIAL | IPF_PLAYER1, 25, 15, 0, 0xff )
2252
2253 PORT_START /* (8) Paddle 2 (left-right) read at $040000 */
2254 PORT_ANALOG( 0xff, 0x00, IPT_DIAL | IPF_PLAYER2, 25, 15, 0, 0xff )
2255
2256 PORT_START /* (9) Paddle 1 (fake up-down) */
2257 PORT_ANALOG( 0xff, 0x00, IPT_DIAL_V | IPF_PLAYER1, 15, 0, 0, 0xff )
2258
2259 PORT_START /* (10) Paddle 2 (fake up-down) */
2260 PORT_ANALOG( 0xff, 0x00, IPT_DIAL_V | IPF_PLAYER2, 15, 0, 0, 0xff )
2261 INPUT_PORTS_END
2262
2263 INPUT_PORTS_START( dogyuun )
2264 PORT_START /* (0) VBlank */
2265 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2266 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2267
2268 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
2269
2270 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
2271
2272 TOAPLAN2_SYSTEM_INPUTS
2273
2274 PORT_START /* (4) DSWA */
2275 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Free_Play) )
2276 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2277 PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
2278 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2279 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2280 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2281 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2282 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2283 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2284 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2285 EUROPEAN_COINAGE_16
2286 // NONEUROPEAN_COINAGE_16
2287 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2288
2289 PORT_START /* (5) DSWB */
2290 DIFFICULTY_16
2291 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2292 PORT_DIPSETTING( 0x0004, "200k, 400k and 600k" )
2293 PORT_DIPSETTING( 0x0000, "200k only" )
2294 PORT_DIPSETTING( 0x0008, "400k only" )
2295 PORT_DIPSETTING( 0x000c, "None" )
2296 LIVES_16
2297 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2298 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2299 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2300 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2301 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2302 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2303
2304 PORT_START /* (6) Territory Jumper block */
2305 PORT_DIPNAME( 0x0f, 0x03, "Territory" )
2306 PORT_DIPSETTING( 0x03, "Europe" )
2307 PORT_DIPSETTING( 0x01, "USA" )
2308 PORT_DIPSETTING( 0x00, "Japan" )
2309 PORT_DIPSETTING( 0x05, "Korea (Unite Trading license)" )
2310 PORT_DIPSETTING( 0x04, "Hong Kong (Charterfield license)" )
2311 PORT_DIPSETTING( 0x06, "Taiwan" )
2312 PORT_DIPSETTING( 0x08, "South East Asia (Charterfield license)" )
2313 PORT_DIPSETTING( 0x0c, "USA (Atari Games Corp license)" )
2314 PORT_DIPSETTING( 0x0f, "Japan (Taito Corp license)" )
2315 /* Duplicate settings
2316 PORT_DIPSETTING( 0x0b, "Europe" )
2317 PORT_DIPSETTING( 0x07, "USA" )
2318 PORT_DIPSETTING( 0x0a, "Korea (Unite Trading license)" )
2319 PORT_DIPSETTING( 0x09, "Hong Kong (Charterfield license)" )
2320 PORT_DIPSETTING( 0x0b, "Taiwan" )
2321 PORT_DIPSETTING( 0x0d, "South East Asia (Charterfield license)" )
2322 PORT_DIPSETTING( 0x0c, "USA (Atari Games Corp license)" )
2323 */
2324 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* bit 0x10 sound ready */
2325 INPUT_PORTS_END
2326
2327 INPUT_PORTS_START( kbash )
2328 PORT_START /* (0) VBlank */
2329 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2330 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2331
2332 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
2333
2334 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
2335
2336 TOAPLAN2_SYSTEM_INPUTS
2337
2338 PORT_START /* (4) DSWA */
2339 PORT_DIPNAME( 0x0001, 0x0000, "Continue Mode" )
2340 PORT_DIPSETTING( 0x0000, "Normal" )
2341 PORT_DIPSETTING( 0x0001, "Discount" )
2342 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2343 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2344 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2345 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2346 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2347 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2348 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2349 EUROPEAN_COINAGE_16
2350 // NONEUROPEAN_COINAGE_16
2351 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2352
2353 PORT_START /* (5) DSWB */
2354 DIFFICULTY_16
2355 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2356 PORT_DIPSETTING( 0x0000, "100k and every 400k" )
2357 PORT_DIPSETTING( 0x0004, "100k only" )
2358 PORT_DIPSETTING( 0x0008, "200k only" )
2359 PORT_DIPSETTING( 0x000c, "None" )
2360 /* Lives are different in this game */
2361 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Lives ) )
2362 PORT_DIPSETTING( 0x0030, "1" )
2363 PORT_DIPSETTING( 0x0000, "2" )
2364 PORT_DIPSETTING( 0x0020, "3" )
2365 PORT_DIPSETTING( 0x0010, "4" )
2366 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2367 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2368 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2369 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2370 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2371 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2372 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2373
2374 PORT_START /* (6) Territory Jumper block */
2375 PORT_DIPNAME( 0x000f, 0x000a, "Territory" )
2376 PORT_DIPSETTING( 0x000a, "Europe" )
2377 PORT_DIPSETTING( 0x0009, "USA" )
2378 PORT_DIPSETTING( 0x0000, "Japan" )
2379 PORT_DIPSETTING( 0x0003, "Korea" )
2380 PORT_DIPSETTING( 0x0004, "Hong Kong" )
2381 PORT_DIPSETTING( 0x0007, "Taiwan" )
2382 PORT_DIPSETTING( 0x0006, "South East Asia" )
2383 PORT_DIPSETTING( 0x0002, "Europe, USA (Atari License)" )
2384 PORT_DIPSETTING( 0x0001, "USA, Europe (Atari License)" )
2385 PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2386 INPUT_PORTS_END
2387
2388 INPUT_PORTS_START( truxton2 )
2389 PORT_START /* (0) VBlank */
2390 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2391 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2392
2393 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_BUTTON4 )
2394
2395 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_BUTTON4 )
2396
2397 TOAPLAN2_SYSTEM_INPUTS
2398
2399 PORT_START /* (4) DSWA */
2400 PORT_DIPNAME( 0x0001, 0x0000, "Rapid Fire" )
2401 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
2402 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2403 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2404 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2405 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2406 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2407 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2408 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2409 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2410 EUROPEAN_COINAGE_16
2411 // NONEUROPEAN_COINAGE_16
2412 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2413
2414 PORT_START /* (5) DSWB */
2415 DIFFICULTY_16
2416 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2417 PORT_DIPSETTING( 0x0000, "70k and 200k" )
2418 PORT_DIPSETTING( 0x0004, "100k and 250k" )
2419 PORT_DIPSETTING( 0x0008, "100k only" )
2420 PORT_DIPSETTING( 0x000c, "200k only" )
2421 /* Lives are different in this game */
2422 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Lives ) )
2423 PORT_DIPSETTING( 0x0030, "2" )
2424 PORT_DIPSETTING( 0x0000, "3" )
2425 PORT_DIPSETTING( 0x0020, "4" )
2426 PORT_DIPSETTING( 0x0010, "5" )
2427 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2428 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2429 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2430 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2431 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2432 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2433
2434 PORT_START /* (6) Territory Jumper block */
2435 PORT_DIPNAME( 0x07, 0x02, "Territory" )
2436 PORT_DIPSETTING( 0x02, "Europe" )
2437 PORT_DIPSETTING( 0x01, "USA" )
2438 PORT_DIPSETTING( 0x00, "Japan" )
2439 PORT_DIPSETTING( 0x03, "Hong Kong" )
2440 PORT_DIPSETTING( 0x05, "Taiwan" )
2441 PORT_DIPSETTING( 0x06, "Asia" )
2442 PORT_DIPSETTING( 0x04, "Korea" )
2443 INPUT_PORTS_END
2444
2445 INPUT_PORTS_START( pipibibs )
2446 PORT_START /* (0) VBlank */
2447 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2448 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2449
2450 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2451
2452 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2453
2454 TOAPLAN2_SYSTEM_INPUTS
2455
2456 DSWA_8
2457 EUROPEAN_COINAGE_8
2458 // NONEUROPEAN_COINAGE_8
2459
2460 PORT_START /* (5) DSWB */
2461 DIFFICULTY_8
2462 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
2463 PORT_DIPSETTING( 0x04, "150k and every 200k" )
2464 PORT_DIPSETTING( 0x00, "200k and every 300k" )
2465 PORT_DIPSETTING( 0x08, "200k only" )
2466 PORT_DIPSETTING( 0x0c, "None" )
2467 LIVES_8
2468 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2469 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2470 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2471 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
2472 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2473 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2474
2475 PORT_START /* (6) Territory Jumper block */
2476 PORT_DIPNAME( 0x07, 0x06, "Territory" )
2477 PORT_DIPSETTING( 0x06, "Europe" )
2478 PORT_DIPSETTING( 0x04, "USA" )
2479 PORT_DIPSETTING( 0x00, "Japan" )
2480 PORT_DIPSETTING( 0x02, "Hong Kong (Honest Trading Co.)" )
2481 PORT_DIPSETTING( 0x03, "Taiwan" )
2482 PORT_DIPSETTING( 0x01, "Asia" )
2483 PORT_DIPSETTING( 0x07, "Europe (Nova Apparate GMBH & Co)" )
2484 PORT_DIPSETTING( 0x05, "USA (Romstar)" )
2485 PORT_DIPNAME( 0x08, 0x00, "Nudity" )
2486 PORT_DIPSETTING( 0x08, "Low" )
2487 PORT_DIPSETTING( 0x00, "High, but censored" )
2488 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2489 INPUT_PORTS_END
2490
2491 INPUT_PORTS_START( whoopee )
2492 PORT_START /* (0) VBlank */
2493 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2494 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2495
2496 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2497
2498 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2499
2500 TOAPLAN2_SYSTEM_INPUTS
2501
2502 DSWA_8
2503 // EUROPEAN_COINAGE_8
2504 NONEUROPEAN_COINAGE_8
2505
2506 PORT_START /* (5) DSWB */
2507 DIFFICULTY_8
2508 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
2509 PORT_DIPSETTING( 0x04, "150k and every 200k" )
2510 PORT_DIPSETTING( 0x00, "200k and every 300k" )
2511 PORT_DIPSETTING( 0x08, "200k only" )
2512 PORT_DIPSETTING( 0x0c, "None" )
2513 LIVES_8
2514 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2515 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2516 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2517 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
2518 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2519 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2520
2521 PORT_START /* (6) Territory Jumper block */
2522 PORT_DIPNAME( 0x07, 0x00, "Territory" )
2523 PORT_DIPSETTING( 0x06, "Europe" )
2524 PORT_DIPSETTING( 0x04, "USA" )
2525 PORT_DIPSETTING( 0x00, "Japan" )
2526 PORT_DIPSETTING( 0x02, "Hong Kong (Honest Trading Co.)" )
2527 PORT_DIPSETTING( 0x03, "Taiwan" )
2528 PORT_DIPSETTING( 0x01, "Asia" )
2529 PORT_DIPSETTING( 0x07, "Europe (Nova Apparate GMBH & Co)" )
2530 PORT_DIPSETTING( 0x05, "USA (Romstar)" )
2531 PORT_DIPNAME( 0x08, 0x08, "Nudity" )
2532 PORT_DIPSETTING( 0x08, "Low" )
2533 PORT_DIPSETTING( 0x00, "High, but censored" )
2534 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* bit 0x10 sound ready */
2535 INPUT_PORTS_END
2536
2537 INPUT_PORTS_START( pipibibi )
2538 PORT_START /* (0) VBlank */
2539 // PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK ) /* This video HW */
2540 // PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* doesnt wait for VBlank */
2541
2542 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2543
2544 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2545
2546 TOAPLAN2_SYSTEM_INPUTS
2547
2548 PORT_START /* (4) DSWA */
2549 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
2550 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2551 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
2552 /* This video HW doesn't support flip screen */
2553 // PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
2554 // PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2555 // PORT_DIPSETTING( 0x02, DEF_STR( On ) )
2556 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) /* Service Mode */
2557 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
2558 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2559 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2560 // EUROPEAN_COINAGE_8
2561 NONEUROPEAN_COINAGE_8
2562
2563 PORT_START /* (5) DSWB */
2564 DIFFICULTY_8
2565 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
2566 PORT_DIPSETTING( 0x04, "150k and every 200k" )
2567 PORT_DIPSETTING( 0x00, "200k and every 300k" )
2568 PORT_DIPSETTING( 0x08, "200k only" )
2569 PORT_DIPSETTING( 0x0c, "None" )
2570 LIVES_8
2571 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2572 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2573 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2574 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
2575 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2576 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2577
2578 PORT_START /* (6) Territory Jumper block */
2579 PORT_DIPNAME( 0x07, 0x05, "Territory" )
2580 PORT_DIPSETTING( 0x07, "World (Ryouta Kikaku)" )
2581 PORT_DIPSETTING( 0x00, "Japan (Ryouta Kikaku)" )
2582 PORT_DIPSETTING( 0x02, "World" )
2583 PORT_DIPSETTING( 0x05, "Europe" )
2584 PORT_DIPSETTING( 0x04, "USA" )
2585 PORT_DIPSETTING( 0x01, "Hong Kong (Honest Trading Co.)" )
2586 PORT_DIPSETTING( 0x06, "Spain & Portugal (APM Electronics SA)" )
2587 // PORT_DIPSETTING( 0x03, "World" )
2588 PORT_DIPNAME( 0x08, 0x00, "Nudity" )
2589 PORT_DIPSETTING( 0x08, "Low" )
2590 PORT_DIPSETTING( 0x00, "High, but censored" )
2591 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2592 INPUT_PORTS_END
2593
2594 INPUT_PORTS_START( fixeight )
2595 PORT_START /* (0) VBlank */
2596 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2597 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2598
2599 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2600
2601 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2602
2603 SNOWBRO2_PLAYER_INPUT( IPF_PLAYER3, IPT_START3, IPT_UNKNOWN )
2604
2605 PORT_START /* service input is a push-button marked 'Test SW' */
2606 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
2607 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
2608 PORT_BITX(0x0004, IP_ACTIVE_HIGH, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
2609 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
2610 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
2611 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
2612 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
2613 PORT_BIT( 0xff80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2614
2615 #if 0
2616 PORT_START /* Fake input, to display message */
2617 PORT_DIPNAME( 0x00, 0x00, " Press service button" )
2618 PORT_DIPSETTING( 0x00, "" )
2619 PORT_DIPNAME( 0x00, 0x00, " for game keeping options" )
2620 PORT_DIPSETTING( 0x00, "" )
2621 PORT_DIPNAME( 0x00, 0x00, "" )
2622 PORT_DIPSETTING( 0x00, "" )
2623 #endif
2624
2625 PORT_START /* (4) DSWA */
2626 PORT_DIPNAME( 0x0001, 0x0000, "Maximum Players" )
2627 PORT_DIPSETTING( 0x0000, "2" )
2628 PORT_DIPSETTING( 0x0001, "3" )
2629 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2630 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2631 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2632 PORT_DIPNAME( 0x0004, 0x0004, "Shooting style" )
2633 PORT_DIPSETTING( 0x0004, "Semi-auto" )
2634 PORT_DIPSETTING( 0x0000, "Fully-auto" )
2635 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2636 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2637 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2638 EUROPEAN_COINAGE_16
2639 // NONEUROPEAN_COINAGE_16
2640 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2641
2642 PORT_START /* (5) DSWB */
2643 DIFFICULTY_16
2644 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2645 PORT_DIPSETTING( 0x0004, "300k and every 300k" )
2646 PORT_DIPSETTING( 0x0008, "300k only" )
2647 PORT_DIPSETTING( 0x0000, "500k and every 500k" )
2648 PORT_DIPSETTING( 0x000c, "None" )
2649 LIVES_16
2650 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2651 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2652 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2653 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2654 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2655 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2656
2657 PORT_START /* (6) Territory Jumper block */
2658 PORT_DIPNAME( 0x0f, 0x09, "Territory" )
2659 PORT_DIPSETTING( 0x09, "Europe" )
2660 PORT_DIPSETTING( 0x08, "Europe (Taito Corp)" )
2661 PORT_DIPSETTING( 0x0b, "USA" )
2662 PORT_DIPSETTING( 0x0a, "USA (Taito America Corp)" )
2663 PORT_DIPSETTING( 0x0e, "Japan" )
2664 PORT_DIPSETTING( 0x0f, "Japan (Taito corp)" )
2665 PORT_DIPSETTING( 0x01, "Korea" )
2666 PORT_DIPSETTING( 0x00, "Korea (Taito Corp)" )
2667 PORT_DIPSETTING( 0x03, "Hong Kong" )
2668 PORT_DIPSETTING( 0x02, "Hong Kong (Taito Corp)" )
2669 PORT_DIPSETTING( 0x05, "Taiwan" )
2670 PORT_DIPSETTING( 0x04, "Taiwan (Taito corp)" )
2671 PORT_DIPSETTING( 0x07, "South East Asia" )
2672 PORT_DIPSETTING( 0x06, "South East Asia (Taito corp)" )
2673 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2674 INPUT_PORTS_END
2675
2676 INPUT_PORTS_START( grindstm )
2677 PORT_START /* (0) VBlank */
2678 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2679 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2680
2681 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2682
2683 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2684
2685 TOAPLAN2_SYSTEM_INPUTS
2686
2687 PORT_START /* (4) DSWA */
2688 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Cabinet ) )
2689 PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) )
2690 PORT_DIPSETTING( 0x0001, DEF_STR( Cocktail ) )
2691 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2692 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2693 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2694 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2695 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2696 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2697 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2698 EUROPEAN_COINAGE_16
2699 // NONEUROPEAN_COINAGE_16
2700 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2701
2702 PORT_START /* (5) DSWB */
2703 DIFFICULTY_16
2704 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2705 PORT_DIPSETTING( 0x0008, "200k only" )
2706 PORT_DIPSETTING( 0x0004, "300k and every 800k" )
2707 PORT_DIPSETTING( 0x0000, "300k and 800k" )
2708 PORT_DIPSETTING( 0x000c, "None" )
2709 LIVES_16
2710 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2711 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2712 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2713 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2714 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2715 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2716
2717 PORT_START /* (6) Territory Jumper block */
2718 PORT_DIPNAME( 0x0f, 0x08, "Territory" )
2719 PORT_DIPSETTING( 0x08, "Europe" )
2720 PORT_DIPSETTING( 0x0b, "USA" )
2721 PORT_DIPSETTING( 0x01, "Korea" )
2722 PORT_DIPSETTING( 0x03, "Hong Kong" )
2723 PORT_DIPSETTING( 0x05, "Taiwan" )
2724 PORT_DIPSETTING( 0x07, "South East Asia" )
2725 PORT_DIPSETTING( 0x0a, "USA (American Sammy Corporation License)" )
2726 PORT_DIPSETTING( 0x00, "Korea (Unite Trading License)" )
2727 PORT_DIPSETTING( 0x02, "Hong Kong (Charterfield License)" )
2728 PORT_DIPSETTING( 0x04, "Taiwan (Anomoto International Inc License)" )
2729 PORT_DIPSETTING( 0x06, "South East Asia (Charterfield License)" )
2730 /* Duplicate settings
2731 PORT_DIPSETTING( 0x09, "Europe" )
2732 PORT_DIPSETTING( 0x0d, "USA" )
2733 PORT_DIPSETTING( 0x0e, "Korea" )
2734 PORT_DIPSETTING( 0x0f, "Korea" )
2735 PORT_DIPSETTING( 0x0c, "USA (American Sammy Corporation License)" )
2736 */
2737 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* bit 0x10 sound ready */
2738 INPUT_PORTS_END
2739
2740 INPUT_PORTS_START( vfive )
2741 PORT_START /* (0) VBlank */
2742 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2743 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2744
2745 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2746
2747 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2748
2749 TOAPLAN2_SYSTEM_INPUTS
2750
2751 PORT_START /* (4) DSWA */
2752 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Cabinet ) )
2753 PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) )
2754 PORT_DIPSETTING( 0x0001, DEF_STR( Cocktail ) )
2755 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2756 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2757 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2758 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2759 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2760 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2761 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2762 NONEUROPEAN_COINAGE_16
2763 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2764
2765 PORT_START /* (5) DSWB */
2766 DIFFICULTY_16
2767 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2768 PORT_DIPSETTING( 0x0008, "200k only" )
2769 PORT_DIPSETTING( 0x0004, "300k and every 800k" )
2770 PORT_DIPSETTING( 0x0000, "300k and 800k" )
2771 PORT_DIPSETTING( 0x000c, "None" )
2772 LIVES_16
2773 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2774 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2775 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2776 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2777 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2778 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2779
2780 PORT_START /* (6) Territory Jumper block */
2781 /* Territory is forced to Japan in this set. */
2782 PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* bit 0x10 sound ready */
2783 INPUT_PORTS_END
2784
2785 INPUT_PORTS_START( batsugun )
2786 PORT_START /* (0) VBlank */
2787 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2788 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2789
2790 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2791
2792 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2793
2794 TOAPLAN2_SYSTEM_INPUTS
2795
2796 PORT_START /* (4) DSWA */
2797 PORT_DIPNAME( 0x0001, 0x0000, "Continue Mode" )
2798 PORT_DIPSETTING( 0x0000, "Normal" )
2799 PORT_DIPSETTING( 0x0001, "Discount" )
2800 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2801 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2802 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2803 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2804 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2805 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2806 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2807 EUROPEAN_COINAGE_16
2808 // NONEUROPEAN_COINAGE_16
2809 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2810
2811 PORT_START /* (5) DSWB */
2812 DIFFICULTY_16
2813 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2814 PORT_DIPSETTING( 0x0004, "500k and every 600k" )
2815 PORT_DIPSETTING( 0x0000, "1000k only" )
2816 PORT_DIPSETTING( 0x0008, "1500k only" )
2817 PORT_DIPSETTING( 0x000c, "None" )
2818 LIVES_16
2819 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2820 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2821 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2822 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2823 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2824 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2825
2826 PORT_START /* (6) Territory Jumper block */
2827 PORT_DIPNAME( 0x000f, 0x0009, "Territory" )
2828 PORT_DIPSETTING( 0x0009, "Europe" )
2829 PORT_DIPSETTING( 0x000b, "USA" )
2830 PORT_DIPSETTING( 0x000e, "Japan" )
2831 // PORT_DIPSETTING( 0x000f, "Japan" )
2832 PORT_DIPSETTING( 0x0001, "Korea" )
2833 PORT_DIPSETTING( 0x0003, "Hong Kong" )
2834 PORT_DIPSETTING( 0x0005, "Taiwan" )
2835 PORT_DIPSETTING( 0x0007, "South East Asia" )
2836 PORT_DIPSETTING( 0x0008, "Europe (Taito Corp License)" )
2837 PORT_DIPSETTING( 0x000a, "USA (Taito Corp License)" )
2838 PORT_DIPSETTING( 0x000c, "Japan (Taito Corp License)" )
2839 // PORT_DIPSETTING( 0x000d, "Japan (Taito Corp License)" )
2840 PORT_DIPSETTING( 0x0000, "Korea (Unite Trading License)" )
2841 PORT_DIPSETTING( 0x0002, "Hong Kong (Taito Corp License)" )
2842 PORT_DIPSETTING( 0x0004, "Taiwan (Taito Corp License)" )
2843 PORT_DIPSETTING( 0x0006, "South East Asia (Taito Corp License)" )
2844 PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* bit 0x10 sound ready */
2845 INPUT_PORTS_END
2846
2847 INPUT_PORTS_START( snowbro2 )
2848 PORT_START /* (0) VBlank */
2849 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2850 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2851
2852 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2853
2854 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2855
2856 SNOWBRO2_PLAYER_INPUT( IPF_PLAYER3, IPT_START3, IPT_UNKNOWN )
2857
2858 SNOWBRO2_PLAYER_INPUT( IPF_PLAYER4, IPT_START4, IPT_UNKNOWN )
2859
2860 TOAPLAN2_SYSTEM_INPUTS
2861
2862 PORT_START /* (6) DSWA */
2863 PORT_DIPNAME( 0x0001, 0x0000, "Continue Mode" )
2864 PORT_DIPSETTING( 0x0000, "Normal" )
2865 PORT_DIPSETTING( 0x0001, "Discount" )
2866 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2867 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2868 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2869 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2870 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2871 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2872 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2873 NONEUROPEAN_COINAGE_16
2874 /* The following are listed in service mode for European territory,
2875 but are not actually used in game play. */
2876 // EUROPEAN_COINAGE_16
2877 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2878
2879 PORT_START /* (7) DSWB */
2880 DIFFICULTY_16
2881 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2882 PORT_DIPSETTING( 0x0004, "100k and every 500k" )
2883 PORT_DIPSETTING( 0x0000, "100k only" )
2884 PORT_DIPSETTING( 0x0008, "200k only" )
2885 PORT_DIPSETTING( 0x000c, "None" )
2886 /* Lives have one different value */
2887 PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Lives ) )
2888 PORT_DIPSETTING( 0x0030, "1" )
2889 PORT_DIPSETTING( 0x0020, "2" )
2890 PORT_DIPSETTING( 0x0000, "3" )
2891 PORT_DIPSETTING( 0x0010, "4" )
2892 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2893 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2894 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2895 PORT_DIPNAME( 0x0080, 0x0000, "Maximum Players" )
2896 PORT_DIPSETTING( 0x0080, "2" )
2897 PORT_DIPSETTING( 0x0000, "4" )
2898 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2899
2900 PORT_START /* (8) Territory Jumper block */
2901 PORT_DIPNAME( 0x1c00, 0x0800, "Territory" )
2902 PORT_DIPSETTING( 0x0800, "Europe" )
2903 PORT_DIPSETTING( 0x0400, "USA" )
2904 PORT_DIPSETTING( 0x0000, "Japan" )
2905 PORT_DIPSETTING( 0x0c00, "Korea" )
2906 PORT_DIPSETTING( 0x1000, "Hong Kong" )
2907 PORT_DIPSETTING( 0x1400, "Taiwan" )
2908 PORT_DIPSETTING( 0x1800, "South East Asia" )
2909 PORT_DIPSETTING( 0x1c00, DEF_STR( Unused ) )
2910 PORT_DIPNAME( 0x2000, 0x0000, "Show All Rights Reserved" )
2911 PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
2912 PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) )
2913 PORT_BIT( 0xc3ff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2914 INPUT_PORTS_END
2915
2916 INPUT_PORTS_START( sstriker )
2917 PORT_START /* (0) VBlank */
2918 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2919 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2920
2921 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2922
2923 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2924
2925 TOAPLAN2_SYSTEM_INPUTS
2926
2927 PORT_START /* (4) DSWA */
2928 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Free_Play ) )
2929 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2930 PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
2931 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2932 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2933 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2934 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2935 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2936 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2937 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2938 NONEUROPEAN_COINAGE_16
2939 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2940
2941 PORT_START /* (5) DSWB */
2942 DIFFICULTY_16
2943 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2944 PORT_DIPSETTING( 0x0004, "200k and 500k" )
2945 PORT_DIPSETTING( 0x0000, "Every 300k" )
2946 PORT_DIPSETTING( 0x0008, "200k only" )
2947 PORT_DIPSETTING( 0x000c, "None" )
2948 LIVES_16
2949 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
2950 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2951 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
2952 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
2953 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
2954 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
2955 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2956
2957 PORT_START /* (6) Territory Jumper block */
2958 PORT_DIPNAME( 0x000e, 0x0004, "Territory" )
2959 PORT_DIPSETTING( 0x0004, "Europe" )
2960 PORT_DIPSETTING( 0x0002, "USA" )
2961 PORT_DIPSETTING( 0x0000, "Japan" )
2962 PORT_DIPSETTING( 0x0006, "South East Asia" )
2963 PORT_DIPSETTING( 0x0008, "China" )
2964 PORT_DIPSETTING( 0x000a, "Korea" )
2965 PORT_DIPSETTING( 0x000c, "Hong Kong" )
2966 PORT_DIPSETTING( 0x000e, "Taiwan" )
2967
2968 PORT_BIT( 0xfff1, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2969 INPUT_PORTS_END
2970
2971 INPUT_PORTS_START( mahoudai )
2972 PORT_START /* (0) VBlank */
2973 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
2974 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2975
2976 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
2977
2978 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
2979
2980 TOAPLAN2_SYSTEM_INPUTS
2981
2982 PORT_START /* (4) DSWA */
2983 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Free_Play ) )
2984 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2985 PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
2986 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
2987 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
2988 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
2989 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
2990 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
2991 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
2992 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
2993 NONEUROPEAN_COINAGE_16
2994 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2995
2996 PORT_START /* (5) DSWB */
2997 DIFFICULTY_16
2998 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
2999 PORT_DIPSETTING( 0x0004, "200k and 500k" )
3000 PORT_DIPSETTING( 0x0000, "Every 300k" )
3001 PORT_DIPSETTING( 0x0008, "200k only" )
3002 PORT_DIPSETTING( 0x000c, "None" )
3003 LIVES_16
3004 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
3005 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3006 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3007 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
3008 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
3009 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3010 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3011
3012 PORT_START /* (6) Territory Jumper block */
3013 /* not used, it seems. This setting forces Japan for Territory */
3014 PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3015 INPUT_PORTS_END
3016
3017 INPUT_PORTS_START( kingdmgp )
3018 PORT_START /* (0) VBlank */
3019 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3020 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3021
3022 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
3023
3024 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
3025
3026 TOAPLAN2_SYSTEM_INPUTS
3027
3028 PORT_START /* (4) DSWA */
3029 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Free_Play ) )
3030 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3031 PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
3032 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
3033 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3034 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
3035 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
3036 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3037 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
3038 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3039 NONEUROPEAN_COINAGE_16
3040 /* When Territory is set to Europe, the Coin A and B have
3041 different values */
3042 // EUROPEAN_COINAGE_16
3043 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3044
3045 PORT_START /* (5) DSWB */
3046 DIFFICULTY_16
3047 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
3048 PORT_DIPSETTING( 0x0004, "200k and 500k" )
3049 PORT_DIPSETTING( 0x0000, "Every 300k" )
3050 PORT_DIPSETTING( 0x0008, "200k only" )
3051 PORT_DIPSETTING( 0x000c, "None" )
3052 LIVES_16
3053 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
3054 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3055 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3056 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
3057 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
3058 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3059 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3060
3061 PORT_START /* (6) Territory Jumper block */
3062 /* Title screen is wrong when set to Japan for Territory */
3063 PORT_DIPNAME( 0x000e, 0x0004, "Territory" )
3064 PORT_DIPSETTING( 0x0004, "Europe" )
3065 PORT_DIPSETTING( 0x0002, "USA" )
3066 // PORT_DIPSETTING( 0x0000, "Japan" )
3067 PORT_DIPSETTING( 0x0006, "South East Asia" )
3068 PORT_DIPSETTING( 0x0008, "China" )
3069 PORT_DIPSETTING( 0x000a, "Korea" )
3070 PORT_DIPSETTING( 0x000c, "Hong Kong" )
3071 PORT_DIPSETTING( 0x000e, "Taiwan" )
3072 PORT_BIT( 0xfff1, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3073 INPUT_PORTS_END
3074
3075 INPUT_PORTS_START( shippumd )
3076 PORT_START /* (0) VBlank */
3077 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3078 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3079
3080 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
3081
3082 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
3083
3084 TOAPLAN2_SYSTEM_INPUTS
3085
3086 PORT_START /* (4) DSWA */
3087 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Free_Play ) )
3088 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3089 PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
3090 PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Flip_Screen ) )
3091 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3092 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
3093 PORT_SERVICE( 0x0004, IP_ACTIVE_HIGH ) /* Service Mode */
3094 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3095 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
3096 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3097 NONEUROPEAN_COINAGE_16
3098 /* When Territory is set to Europe, the Coin A and B have
3099 different values */
3100 // EUROPEAN_COINAGE_16
3101 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3102
3103 PORT_START /* (5) DSWB */
3104 DIFFICULTY_16
3105 PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) )
3106 PORT_DIPSETTING( 0x0004, "200k and 500k" )
3107 PORT_DIPSETTING( 0x0000, "Every 300k" )
3108 PORT_DIPSETTING( 0x0008, "200k only" )
3109 PORT_DIPSETTING( 0x000c, "None" )
3110 LIVES_16
3111 PORT_BITX( 0x0040, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
3112 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3113 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3114 PORT_DIPNAME( 0x0080, 0x0000, "Allow Continue" )
3115 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
3116 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3117 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3118
3119 PORT_START /* (6) Territory Jumper block */
3120 /* Title screen is corrupt for anything but Japan setting so this forces it to Japan */
3121 PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3122 INPUT_PORTS_END
3123
3124 INPUT_PORTS_START( battleg )
3125 PORT_START /* (0) VBlank */
3126 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3127 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3128
3129 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
3130
3131 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
3132
3133 TOAPLAN2_SYSTEM_INPUTS
3134
3135 PORT_START /* (4) DSWA */
3136 PORT_SERVICE( 0x0001, IP_ACTIVE_HIGH ) /* Service Mode */
3137 PORT_DIPNAME( 0x0002, 0x0000, "Credits to Start" )
3138 PORT_DIPSETTING( 0x0000, "1" )
3139 PORT_DIPSETTING( 0x0002, "2" )
3140 PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_A ) )
3141 PORT_DIPSETTING( 0x0018, DEF_STR( 4C_1C ) )
3142 PORT_DIPSETTING( 0x0014, DEF_STR( 3C_1C ) )
3143 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
3144 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3145 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
3146 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
3147 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
3148 PORT_DIPSETTING( 0x001c, DEF_STR( Free_Play ) )
3149 PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) )
3150 PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
3151 PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) )
3152 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
3153 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3154 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
3155 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
3156 PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) )
3157 // PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
3158 /* When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
3159 and Coin_B becomes the following dips */
3160 // PORT_DIPNAME( 0x0020, 0x0000, "Joystick Mode" )
3161 // PORT_DIPSETTING( 0x0000, "90 degrees ACW" )
3162 // PORT_DIPSETTING( 0x0020, "Normal" )
3163 // PORT_DIPNAME( 0x0040, 0x0000, "Effect" )
3164 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3165 // PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3166 // PORT_DIPNAME( 0x0080, 0x0000, "Music" )
3167 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3168 // PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
3169 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3170
3171 PORT_START /* (5) DSWB */
3172 DIFFICULTY_16
3173 PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Flip_Screen ) )
3174 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3175 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
3176 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3177 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
3178 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3179 PORT_DIPNAME( 0x0070, 0x0000, DEF_STR( Lives ) )
3180 PORT_DIPSETTING( 0x0030, "1" )
3181 PORT_DIPSETTING( 0x0020, "2" )
3182 PORT_DIPSETTING( 0x0000, "3" )
3183 PORT_DIPSETTING( 0x0010, "4" )
3184 PORT_DIPSETTING( 0x0040, "5" )
3185 PORT_DIPSETTING( 0x0050, "6" )
3186 PORT_BITX( 0, 0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
3187 // PORT_BITX( 0, 0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
3188 PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Bonus_Life ) )
3189 /* Bonus_Life for Non European territories */
3190 // PORT_DIPSETTING( 0x0000, "Every 1000k" )
3191 // PORT_DIPSETTING( 0x0080, "1000k and 2000k" )
3192 /* Bonus_Life values for European territories */
3193 PORT_DIPSETTING( 0x0080, "Every 2000k" )
3194 PORT_DIPSETTING( 0x0000, "None" )
3195 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3196
3197 PORT_START /* (6) DSWC / Territory Jumper block */
3198 PORT_DIPNAME( 0x0004, 0x0000, "Allow Continue" )
3199 PORT_DIPSETTING( 0x0004, DEF_STR( No ) )
3200 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3201 PORT_DIPNAME( 0x0008, 0x0000, "Stage Edit" )
3202 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3203 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
3204 PORT_DIPNAME( 0x0003, 0x0001, "Territory" )
3205 PORT_DIPSETTING( 0x0001, "Denmark (German Tuning license)" )
3206 /* These Settings End Up Reporting ROM-0 as BAD */
3207 // PORT_DIPSETTING( 0x0002, "USA (Fabtek license)" )
3208 // PORT_DIPSETTING( 0x0000, "Japan" )
3209 PORT_DIPSETTING( 0x0003, "China" )
3210 PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3211 INPUT_PORTS_END
3212
3213 INPUT_PORTS_START( battlega )
3214 PORT_START /* (0) VBlank */
3215 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3216 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3217
3218 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
3219
3220 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
3221
3222 TOAPLAN2_SYSTEM_INPUTS
3223
3224 PORT_START /* (4) DSWA */
3225 PORT_SERVICE( 0x0001, IP_ACTIVE_HIGH ) /* Service Mode */
3226 PORT_DIPNAME( 0x0002, 0x0000, "Credits to Start" )
3227 PORT_DIPSETTING( 0x0000, "1" )
3228 PORT_DIPSETTING( 0x0002, "2" )
3229 PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_A ) )
3230 PORT_DIPSETTING( 0x0018, DEF_STR( 4C_1C ) )
3231 PORT_DIPSETTING( 0x0014, DEF_STR( 3C_1C ) )
3232 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
3233 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3234 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
3235 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
3236 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
3237 PORT_DIPSETTING( 0x001c, DEF_STR( Free_Play ) )
3238 PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) )
3239 PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
3240 PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) )
3241 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
3242 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3243 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
3244 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
3245 PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) )
3246 // PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
3247 /* When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
3248 and Coin_B becomes the following dips */
3249 // PORT_DIPNAME( 0x0020, 0x0000, "Joystick Mode" )
3250 // PORT_DIPSETTING( 0x0000, "90 degrees ACW" )
3251 // PORT_DIPSETTING( 0x0020, "Normal" )
3252 // PORT_DIPNAME( 0x0040, 0x0000, "Effect" )
3253 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3254 // PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3255 // PORT_DIPNAME( 0x0080, 0x0000, "Music" )
3256 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3257 // PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
3258 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3259
3260 PORT_START /* (5) DSWB */
3261 DIFFICULTY_16
3262 PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Flip_Screen ) )
3263 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3264 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
3265 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3266 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
3267 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3268 PORT_DIPNAME( 0x0070, 0x0000, DEF_STR( Lives ) )
3269 PORT_DIPSETTING( 0x0030, "1" )
3270 PORT_DIPSETTING( 0x0020, "2" )
3271 PORT_DIPSETTING( 0x0000, "3" )
3272 PORT_DIPSETTING( 0x0010, "4" )
3273 PORT_DIPSETTING( 0x0040, "5" )
3274 PORT_DIPSETTING( 0x0050, "6" )
3275 PORT_BITX( 0, 0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
3276 // PORT_BITX( 0, 0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
3277 PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Bonus_Life ) )
3278 /* Bonus_Life for Non European territories */
3279 // PORT_DIPSETTING( 0x0000, "Every 1000k" )
3280 // PORT_DIPSETTING( 0x0080, "1000k and 2000k" )
3281 /* Bonus_Life values for European territories */
3282 PORT_DIPSETTING( 0x0080, "Every 2000k" )
3283 PORT_DIPSETTING( 0x0000, "None" )
3284 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3285
3286 PORT_START /* (6) DSWC / Territory Jumper block */
3287 PORT_DIPNAME( 0x0004, 0x0000, "Allow Continue" )
3288 PORT_DIPSETTING( 0x0004, DEF_STR( No ) )
3289 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3290 PORT_DIPNAME( 0x0008, 0x0000, "Stage Edit" )
3291 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3292 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
3293 PORT_DIPNAME( 0x0003, 0x0001, "Territory" )
3294 PORT_DIPSETTING( 0x0001, "Europe (German Tuning license)" )
3295 PORT_DIPSETTING( 0x0002, "USA (Fabtek license)" )
3296 PORT_DIPSETTING( 0x0000, "Japan" )
3297 PORT_DIPSETTING( 0x0003, "Asia" )
3298 PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3299 INPUT_PORTS_END
3300
3301 INPUT_PORTS_START( battlegb )
3302 PORT_START /* (0) VBlank */
3303 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3304 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3305
3306 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
3307
3308 TOAPLAN2_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
3309
3310 TOAPLAN2_SYSTEM_INPUTS
3311
3312 PORT_START /* (4) DSWA */
3313 PORT_SERVICE( 0x0001, IP_ACTIVE_HIGH ) /* Service Mode */
3314 PORT_DIPNAME( 0x0002, 0x0000, "Credits to Start" )
3315 PORT_DIPSETTING( 0x0000, "1" )
3316 PORT_DIPSETTING( 0x0002, "2" )
3317 PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_A ) )
3318 PORT_DIPSETTING( 0x0018, DEF_STR( 4C_1C ) )
3319 PORT_DIPSETTING( 0x0014, DEF_STR( 3C_1C ) )
3320 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
3321 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3322 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
3323 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
3324 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
3325 PORT_DIPSETTING( 0x001c, DEF_STR( Free_Play ) )
3326 PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) )
3327 PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
3328 PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) )
3329 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
3330 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3331 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
3332 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
3333 PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) )
3334 // PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
3335 /* When Coin_A is set to Free_Play, Coin_A becomes Coin_A and Coin_B,
3336 and Coin_B becomes the following dips */
3337 // PORT_DIPNAME( 0x0020, 0x0000, "Joystick Mode" )
3338 // PORT_DIPSETTING( 0x0000, "90 degrees ACW" )
3339 // PORT_DIPSETTING( 0x0020, "Normal" )
3340 // PORT_DIPNAME( 0x0040, 0x0000, "Effect" )
3341 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3342 // PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
3343 // PORT_DIPNAME( 0x0080, 0x0000, "Music" )
3344 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3345 // PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
3346 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3347
3348 PORT_START /* (5) DSWB */
3349 DIFFICULTY_16
3350 PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Flip_Screen ) )
3351 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3352 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
3353 PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3354 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
3355 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3356 PORT_DIPNAME( 0x0070, 0x0000, DEF_STR( Lives ) )
3357 PORT_DIPSETTING( 0x0030, "1" )
3358 PORT_DIPSETTING( 0x0020, "2" )
3359 PORT_DIPSETTING( 0x0000, "3" )
3360 PORT_DIPSETTING( 0x0010, "4" )
3361 PORT_DIPSETTING( 0x0040, "5" )
3362 PORT_DIPSETTING( 0x0050, "6" )
3363 PORT_BITX( 0, 0x0060, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite", 0, 0 )
3364 // PORT_BITX( 0, 0x0070, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Invulnerability", 0, 0 )
3365 PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Bonus_Life ) )
3366 /* Bonus_Life for Non European territories */
3367 // PORT_DIPSETTING( 0x0000, "Every 1000k" )
3368 // PORT_DIPSETTING( 0x0080, "1000k and 2000k" )
3369 /* Bonus_Life values for European territories */
3370 PORT_DIPSETTING( 0x0080, "Every 2000k" )
3371 PORT_DIPSETTING( 0x0000, "None" )
3372 PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3373
3374 PORT_START /* (6) DSWC / Territory Jumper block */
3375 PORT_DIPNAME( 0x0004, 0x0000, "Allow Continue" )
3376 PORT_DIPSETTING( 0x0004, DEF_STR( No ) )
3377 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3378 PORT_DIPNAME( 0x0008, 0x0000, "Stage Edit" )
3379 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3380 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
3381 PORT_DIPNAME( 0x0003, 0x0001, "Territory" )
3382 PORT_DIPSETTING( 0x0001, "Austria (German Tuning license)" )
3383 /* These Settings End Up Reporting ROM-0 as BAD */
3384 // PORT_DIPSETTING( 0x0002, "USA (Fabtek license)" )
3385 // PORT_DIPSETTING( 0x0000, "Japan" )
3386 PORT_DIPSETTING( 0x0003, "Hong Kong" )
3387 PORT_BIT( 0xfff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3388 INPUT_PORTS_END
3389
3390 INPUT_PORTS_START( batrider )
3391 PORT_START /* (0) VBlank */
3392 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3393 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3394
3395 PORT_START /* (1) Player Inputs */
3396 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
3397 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
3398 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
3399 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
3400 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
3401 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
3402 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
3403 PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
3404 PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
3405 PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
3406 PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
3407 PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
3408 PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
3409 PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
3410 PORT_BIT( 0x8080, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3411
3412 PORT_START /* (2) Coin/System and DSWC */
3413 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
3414 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
3415 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 )
3416 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
3417 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
3418 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
3419 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
3420 PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Flip_Screen ) )
3421 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3422 PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
3423 PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Demo_Sounds ) )
3424 PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
3425 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3426 PORT_DIPNAME( 0x0400, 0x0000, "Stage Edit" )
3427 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3428 PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
3429 PORT_DIPNAME( 0x0800, 0x0000, "Allow Continue" )
3430 PORT_DIPSETTING( 0x0800, DEF_STR( No ) )
3431 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3432 PORT_BITX( 0x1000, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
3433 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3434 PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
3435 /* These Dips are showed only when Coin_A is set to Free_Play.
3436 They are the last 3 Unused dips. Seems to be debug options */
3437 // PORT_DIPNAME( 0x2000, 0x0000, "Guest Player" )
3438 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3439 // PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
3440 // PORT_DIPNAME( 0x4000, 0x0000, "Player Select" )
3441 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3442 // PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
3443 // PORT_DIPNAME( 0x8000, 0x0000, "Special Course" )
3444 // PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3445 // PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
3446 PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unused ) )
3447 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3448 PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
3449 PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unused ) )
3450 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3451 PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
3452 PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unused ) )
3453 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3454 PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
3455
3456 PORT_START /* (3) DSWA and DSWB */
3457 PORT_SERVICE( 0x0001, IP_ACTIVE_HIGH ) /* Service Mode */
3458 PORT_DIPNAME( 0x0002, 0x0000, "Credits to Start" )
3459 PORT_DIPSETTING( 0x0000, "1" )
3460 PORT_DIPSETTING( 0x0002, "2" )
3461 /* When Coin_A is set to Free_Play, dip 0x0002 becomes: */
3462 // PORT_DIPNAME( 0x0002, 0x0000, "Joystick Mode" )
3463 // PORT_DIPSETTING( 0x0000, "Normal" )
3464 // PORT_DIPSETTING( 0x0002, "90 degrees ACW" )
3465 PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_A ) )
3466 PORT_DIPSETTING( 0x0018, DEF_STR( 4C_1C ) )
3467 PORT_DIPSETTING( 0x0014, DEF_STR( 3C_1C ) )
3468 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
3469 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3470 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
3471 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
3472 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
3473 PORT_DIPSETTING( 0x001c, DEF_STR( Free_Play ) )
3474 PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) )
3475 PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
3476 PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) )
3477 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
3478 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3479 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
3480 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
3481 PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) )
3482 // PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
3483 /* Coin_B becomes the following dips, when Coin_A is set to Free_Play */
3484 // PORT_DIPNAME( 0x0020, 0x0000, "Hit Score" )
3485 // PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
3486 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3487 // PORT_DIPNAME( 0x0040, 0x0000, "Sound Effect" )
3488 // PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
3489 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3490 // PORT_DIPNAME( 0x0080, 0x0000, "Music" )
3491 // PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
3492 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3493 PORT_DIPNAME( 0x0300, 0x0000, DEF_STR( Difficulty ) )
3494 PORT_DIPSETTING( 0x0100, "Easy" )
3495 PORT_DIPSETTING( 0x0000, "Medium" )
3496 PORT_DIPSETTING( 0x0200, "Hard" )
3497 PORT_DIPSETTING( 0x0300, "Hardest" )
3498 PORT_DIPNAME( 0x0c00, 0x0000, "Timer" )
3499 PORT_DIPSETTING( 0x0400, "Easy" )
3500 PORT_DIPSETTING( 0x0000, "Medium" )
3501 PORT_DIPSETTING( 0x0800, "Hard" )
3502 PORT_DIPSETTING( 0x0c00, "Hardest" )
3503 PORT_DIPNAME( 0x3000, 0x0000, DEF_STR( Lives ) )
3504 PORT_DIPSETTING( 0x3000, "1" )
3505 PORT_DIPSETTING( 0x2000, "2" )
3506 PORT_DIPSETTING( 0x0000, "3" )
3507 PORT_DIPSETTING( 0x1000, "4" )
3508 PORT_DIPNAME( 0xc000, 0x0000, DEF_STR( Bonus_Life ) )
3509 PORT_DIPSETTING( 0x4000, "Every 1000k" )
3510 PORT_DIPSETTING( 0x0000, "Every 1500k" )
3511 PORT_DIPSETTING( 0x8000, "Every 2000k" )
3512 PORT_DIPSETTING( 0xc000, "None" )
3513 INPUT_PORTS_END
3514
3515 INPUT_PORTS_START( bbakraid )
3516 PORT_START /* (0) VBlank */
3517 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_VBLANK )
3518 PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3519
3520 PORT_START /* (1) Player Inputs */
3521 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
3522 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
3523 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
3524 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
3525 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
3526 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
3527 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1 )
3528 PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
3529 PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
3530 PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
3531 PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
3532 PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
3533 PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
3534 PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
3535 PORT_BIT( 0x8080, IP_ACTIVE_HIGH, IPT_UNKNOWN )
3536
3537 PORT_START /* (2) Coin/System and DSW-3 */
3538 PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN3 )
3539 PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_TILT )
3540 PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_SERVICE1 )
3541 PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
3542 PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_COIN2 )
3543 PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_START1 )
3544 PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START2 )
3545 PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Flip_Screen ) )
3546 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3547 PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
3548 PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Demo_Sounds ) )
3549 PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
3550 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3551 PORT_DIPNAME( 0x0400, 0x0000, "Stage Edit" )
3552 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3553 PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
3554 PORT_DIPNAME( 0x0800, 0x0000, "Allow Continue" )
3555 PORT_DIPSETTING( 0x0800, DEF_STR( No ) )
3556 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
3557 PORT_BITX( 0x1000, 0x0000, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
3558 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3559 PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
3560 PORT_DIPNAME( 0x2000, 0x0000, "Save Scores" )
3561 PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
3562 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3563 PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unused ) )
3564 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3565 PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
3566 PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unused ) )
3567 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
3568 PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
3569
3570 PORT_START /* (3) DSWA and DSWB */
3571 PORT_SERVICE( 0x0001, IP_ACTIVE_HIGH ) /* Service Mode */
3572 PORT_DIPNAME( 0x0002, 0x0000, "Credits to Start" )
3573 PORT_DIPSETTING( 0x0000, "1" )
3574 PORT_DIPSETTING( 0x0002, "2" )
3575 /* When Coin_A is set to Free_Play, dip 0x0002 becomes: */
3576 // PORT_DIPNAME( 0x0002, 0x0000, "Joystick Mode" )
3577 // PORT_DIPSETTING( 0x0000, "Normal" )
3578 // PORT_DIPSETTING( 0x0002, "90 degrees ACW" )
3579 PORT_DIPNAME( 0x001c, 0x0000, DEF_STR( Coin_A ) )
3580 PORT_DIPSETTING( 0x0018, DEF_STR( 4C_1C ) )
3581 PORT_DIPSETTING( 0x0014, DEF_STR( 3C_1C ) )
3582 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
3583 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3584 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
3585 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) )
3586 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
3587 PORT_DIPSETTING( 0x001c, DEF_STR( Free_Play ) )
3588 PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) )
3589 PORT_DIPSETTING( 0x00c0, DEF_STR( 4C_1C ) )
3590 PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) )
3591 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
3592 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) )
3593 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
3594 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
3595 PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) )
3596 // PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) )
3597 /* Coin_B becomes the following dips, when Coin_A is set to Free_Play */
3598 /* Coin_B slot also behaves in freeplay mode when Coin_A is in freeplay */
3599 // PORT_DIPNAME( 0x0020, 0x0000, "Hit Score" )
3600 // PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
3601 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3602 // PORT_DIPNAME( 0x0040, 0x0000, "Sound Effect" )
3603 // PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
3604 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3605 // PORT_DIPNAME( 0x0080, 0x0000, "Music" )
3606 // PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
3607 // PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
3608 PORT_DIPNAME( 0x0300, 0x0000, DEF_STR( Difficulty ) )
3609 PORT_DIPSETTING( 0x0100, "Easy" )
3610 PORT_DIPSETTING( 0x0000, "Medium" )
3611 PORT_DIPSETTING( 0x0200, "Hard" )
3612 PORT_DIPSETTING( 0x0300, "Hardest" )
3613 PORT_DIPNAME( 0x0c00, 0x0000, "Timer" )
3614 PORT_DIPSETTING( 0x0400, "Low" )
3615 PORT_DIPSETTING( 0x0000, "Medium" )
3616 PORT_DIPSETTING( 0x0800, "High" )
3617 PORT_DIPSETTING( 0x0c00, "Highest" )
3618 PORT_DIPNAME( 0x3000, 0x0000, DEF_STR( Lives ) )
3619 PORT_DIPSETTING( 0x3000, "1" )
3620 PORT_DIPSETTING( 0x2000, "2" )
3621 PORT_DIPSETTING( 0x0000, "3" )
3622 PORT_DIPSETTING( 0x1000, "4" )
3623 PORT_DIPNAME( 0xc000, 0x0000, DEF_STR( Bonus_Life ) )
3624 PORT_DIPSETTING( 0x0000, "Every 200k" )
3625 PORT_DIPSETTING( 0x4000, "Every 300k" )
3626 PORT_DIPSETTING( 0x8000, "Every 400k" )
3627 PORT_DIPSETTING( 0xc000, "None" )
3628 INPUT_PORTS_END
3629
3630
3631
3632 static struct GfxLayout tilelayout =
3633 {
3634 16,16, /* 16x16 */
3635 RGN_FRAC(1,2), /* Number of tiles */
3636 4, /* 4 bits per pixel */
3637 { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
3638 { 0, 1, 2, 3, 4, 5, 6, 7,
3639 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
3640 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
3641 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 },
3642 8*4*16
3643 };
3644
3645 static struct GfxLayout spritelayout =
3646 {
3647 8,8, /* 8x8 */
3648 RGN_FRAC(1,2), /* Number of 8x8 sprites */
3649 4, /* 4 bits per pixel */
3650 { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
3651 { 0, 1, 2, 3, 4, 5, 6, 7 },
3652 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
3653 8*16
3654 };
3655
3656 static struct GfxLayout raizing_textlayout =
3657 {
3658 8,8, /* 8x8 characters */
3659 1024, /* 1024 characters */
3660 4, /* 4 bits per pixel */
3661 { 0, 1, 2, 3 },
3662 { 0, 4, 8, 12, 16, 20, 24, 28 },
3663 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
3664 8*32
3665 };
3666
3667 #ifdef MSB_FIRST
3668 static struct GfxLayout truxton2_tx_tilelayout =
3669 {
3670 8,8, /* 8x8 characters */
3671 1024, /* 1024 characters */
3672 4, /* 4 bits per pixel */
3673 { 0, 1, 2, 3 },
3674 { 0+8, 4+8, 16+8, 20+8, 32+8, 36+8, 48+8, 52+8 },
3675 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
3676 8*64
3677 };
3678
3679 static struct GfxLayout batrider_tx_tilelayout =
3680 {
3681 8,8, /* 8x8 characters */
3682 1024, /* 1024 characters */
3683 4, /* 4 bits per pixel */
3684 { 0, 1, 2, 3 },
3685 { 8, 12, 0, 4, 24, 28, 16, 20 },
3686 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
3687 8*32
3688 };
3689 #else
3690 static struct GfxLayout truxton2_tx_tilelayout =
3691 {
3692 8,8, /* 8x8 characters */
3693 1024, /* 1024 characters */
3694 4, /* 4 bits per pixel */
3695 { 0, 1, 2, 3 },
3696 { 0, 4, 16, 20, 32, 36, 48, 52 },
3697 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
3698 8*64
3699 };
3700
3701 static struct GfxLayout batrider_tx_tilelayout =
3702 {
3703 8,8, /* 8x8 characters */
3704 1024, /* 1024 characters */
3705 4, /* 4 bits per pixel */
3706 { 0, 1, 2, 3 },
3707 { 0, 4, 8, 12, 16, 20, 24, 28 },
3708 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
3709 8*32
3710 };
3711 #endif
3712
3713 static struct GfxDecodeInfo gfxdecodeinfo[] =
3714 {
3715 { REGION_GFX1, 0, &tilelayout, 0, 128 },
3716 { REGION_GFX1, 0, &spritelayout, 0, 64 },
3717 { -1 } /* end of array */
3718 };
3719
3720 static struct GfxDecodeInfo gfxdecodeinfo_2[] =
3721 {
3722 { REGION_GFX1, 0, &tilelayout, 0, 128 },
3723 { REGION_GFX1, 0, &spritelayout, 0, 64 },
3724 { REGION_GFX2, 0, &tilelayout, 0, 128 },
3725 { REGION_GFX2, 0, &spritelayout, 0, 64 },
3726 { -1 } /* end of array */
3727 };
3728
3729 static struct GfxDecodeInfo truxton2_gfxdecodeinfo[] =
3730 {
3731 { REGION_GFX1, 0, &tilelayout , 0, 128 },
3732 { REGION_GFX1, 0, &spritelayout , 0, 64 },
3733 // { REGION_CPU1, 0x40000, &truxton2_tx_tilelayout, 0, 128 }, /* Truxton 2 */
3734 // { REGION_CPU1, 0x68000, &truxton2_tx_tilelayout, 0, 128 }, /* Fix Eight */
3735 { 0, 0, &truxton2_tx_tilelayout, 0, 128 },
3736 { -1 } /* end of array */
3737 };
3738
3739 static struct GfxDecodeInfo raizing_gfxdecodeinfo[] =
3740 {
3741 { REGION_GFX1, 0, &tilelayout, 0, 128 },
3742 { REGION_GFX1, 0, &spritelayout, 0, 64 },
3743 { REGION_GFX2, 0, &raizing_textlayout, 0, 128 }, /* Extra-text layer */
3744 { -1 } /* end of array */
3745 };
3746
3747 /* This is wrong a bit. Text layer is dynamically changed. */
3748 static struct GfxDecodeInfo batrider_gfxdecodeinfo[] =
3749 {
3750 { REGION_GFX1, 0, &tilelayout, 0, 128 },
3751 { REGION_GFX1, 0, &spritelayout, 0, 64 },
3752 { 0, 0, &batrider_tx_tilelayout, 0, 16 },
3753 { -1 } /* end of array */
3754 };
3755
3756
irqhandler(int linestate)3757 static void irqhandler(int linestate)
3758 {
3759 cpu_set_irq_line(1,0,linestate);
3760 }
3761
3762 static struct YM3812interface ym3812_interface =
3763 {
3764 1, /* 1 chip */
3765 27000000/8, /* 3.375MHz , 27MHz Oscillator */
3766 { 100 }, /* volume */
3767 { irqhandler },
3768 };
3769
3770 static struct YM2151interface ym2151_interface =
3771 {
3772 1, /* 1 chip */
3773 27000000/8, /* 3.375MHz , 27MHz Oscillator */
3774 { YM3012_VOL(25,MIXER_PAN_LEFT,25,MIXER_PAN_RIGHT) },
3775 { 0 }
3776 };
3777
3778 static struct YM2151interface raizing_ym2151_interface =
3779 {
3780 1, /* 1 chip */
3781 32000000/8, /* 4.00MHz , 32MHz Oscillator */
3782 { YM3012_VOL(25,MIXER_PAN_LEFT,25,MIXER_PAN_RIGHT) },
3783 { 0 }
3784 };
3785
3786
3787 static struct OKIM6295interface okim6295_interface =
3788 {
3789 1, /* 1 chip */
3790 { 27000000/10/132 }, /* frequency (Hz). 2.7MHz to 6295 (using B mode) */
3791 { REGION_SOUND1 }, /* memory region */
3792 { 25 }
3793 };
3794
3795 static struct OKIM6295interface raizing_okim6295_interface =
3796 {
3797 1, /* 1 chip */
3798 { 32000000/32/132 }, /* frequency (Hz) 1MHz to 6295 (using B mode) */
3799 { REGION_SOUND1 }, /* memory region */
3800 { 25 }
3801 };
3802
3803 static struct OKIM6295interface battleg_okim6295_interface =
3804 {
3805 1, /* 1 chip */
3806 { 32000000/16/132 }, /* frequency (Hz). 2MHz to 6295 (using B mode) */
3807 { REGION_SOUND1 }, /* memory region */
3808 { 25 }
3809 };
3810
3811 static struct OKIM6295interface batrider_okim6295_interface =
3812 {
3813 2, /* 2 chips */
3814 { 32000000/10/132, 32000000/10/165 }, /* frequency (Hz). 3.2MHz to two 6295 (using B mode / A mode) */
3815 { REGION_SOUND1, REGION_SOUND2 }, /* memory region */
3816 { 25, 25 }
3817 };
3818
3819 static struct YMZ280Binterface ymz280b_interface =
3820 {
3821 1,
3822 { 16934400 },
3823 { REGION_SOUND1 },
3824 { YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
3825 { bbakraid_irqhandler }
3826 };
3827
3828
3829
3830 static MACHINE_DRIVER_START( tekipaki )
3831
3832 /* basic machine hardware */
3833 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
3834 MDRV_CPU_MEMORY(tekipaki_readmem,tekipaki_writemem)
3835 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
3836
3837 #if HD64x180
3838 MDRV_CPU_ADD(Z180, 10000000) /* HD647180 CPU actually */
3839 MDRV_CPU_MEMORY(hd647180_readmem,hd647180_writemem)
3840 #endif
3841
3842 MDRV_FRAMES_PER_SECOND(60)
3843 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3844
3845 MDRV_MACHINE_INIT(toaplan2)
3846
3847 /* video hardware */
3848 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
3849 MDRV_SCREEN_SIZE(32*16, 32*16)
3850 MDRV_VISIBLE_AREA(0, 319, 0, 239)
3851 MDRV_GFXDECODE(gfxdecodeinfo)
3852 MDRV_PALETTE_LENGTH(2048)
3853
3854 MDRV_VIDEO_START(toaplan2_0)
3855 MDRV_VIDEO_EOF(toaplan2_0)
3856 MDRV_VIDEO_UPDATE(toaplan2_0)
3857
3858 /* sound hardware */
3859 MDRV_SOUND_ADD(YM3812, ym3812_interface)
3860 MACHINE_DRIVER_END
3861
3862
3863 static MACHINE_DRIVER_START( ghox )
3864
3865 /* basic machine hardware */
3866 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
3867 MDRV_CPU_MEMORY(ghox_readmem,ghox_writemem)
3868 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
3869
3870 #if HD64x180
3871 MDRV_CPU_ADD(Z180, 10000000) /* HD647180 CPU actually */
3872 MDRV_CPU_MEMORY(hd647180_readmem,hd647180_writemem)
3873 #endif
3874
3875 MDRV_FRAMES_PER_SECOND(60)
3876 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3877
3878 MDRV_MACHINE_INIT(ghox)
3879
3880 /* video hardware */
3881 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
3882 MDRV_SCREEN_SIZE(32*16, 32*16)
3883 MDRV_VISIBLE_AREA(0, 319, 0, 239)
3884 MDRV_GFXDECODE(gfxdecodeinfo)
3885 MDRV_PALETTE_LENGTH(2048)
3886
3887 MDRV_VIDEO_START(toaplan2_0)
3888 MDRV_VIDEO_EOF(toaplan2_0)
3889 MDRV_VIDEO_UPDATE(toaplan2_0)
3890
3891 /* sound hardware */
3892 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3893 MDRV_SOUND_ADD(YM2151, ym2151_interface)
3894 MACHINE_DRIVER_END
3895
3896
3897 static MACHINE_DRIVER_START( dogyuun )
3898
3899 /* basic machine hardware */
3900 MDRV_CPU_ADD(M68000, 16000000) /* 16MHz Oscillator */
3901 MDRV_CPU_MEMORY(dogyuun_readmem,dogyuun_writemem)
3902 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
3903
3904 #if Zx80
3905 MDRV_CPU_ADD(Z180, 16000000) /* Z?80 type Toaplan marked CPU ??? */
3906 MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
3907 MDRV_CPU_PORTS(Zx80_readport,0)
3908 #endif
3909
3910 MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
3911 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3912
3913 MDRV_MACHINE_INIT(toaplan2)
3914
3915 /* video hardware */
3916 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
3917 MDRV_SCREEN_SIZE(32*16, 32*16)
3918 MDRV_VISIBLE_AREA(0, 319, 0, 239)
3919 MDRV_GFXDECODE(gfxdecodeinfo_2)
3920 MDRV_PALETTE_LENGTH(2048)
3921
3922 MDRV_VIDEO_START(toaplan2_1)
3923 MDRV_VIDEO_EOF(toaplan2_1)
3924 MDRV_VIDEO_UPDATE(dogyuun_1)
3925
3926 /* sound hardware */
3927 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3928 MDRV_SOUND_ADD(YM2151, ym2151_interface)
3929 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
3930 MACHINE_DRIVER_END
3931
3932
3933 static MACHINE_DRIVER_START( kbash )
3934
3935 /* basic machine hardware */
3936 MDRV_CPU_ADD(M68000, 16000000) /* 16MHz Oscillator */
3937 MDRV_CPU_MEMORY(kbash_readmem,kbash_writemem)
3938 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
3939
3940 #if Zx80
3941 MDRV_CPU_ADD(Z180, 16000000) /* Z?80 type Toaplan marked CPU ??? */
3942 MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
3943 MDRV_CPU_PORTS(Zx80_readport,0)
3944 #endif
3945
3946 MDRV_FRAMES_PER_SECOND(60)
3947 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3948
3949 MDRV_MACHINE_INIT(toaplan2)
3950
3951 /* video hardware */
3952 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
3953 MDRV_SCREEN_SIZE(32*16, 32*16)
3954 MDRV_VISIBLE_AREA(0, 319, 0, 239)
3955 MDRV_GFXDECODE(gfxdecodeinfo)
3956 MDRV_PALETTE_LENGTH(2048)
3957
3958 MDRV_VIDEO_START(toaplan2_0)
3959 MDRV_VIDEO_EOF(toaplan2_0)
3960 MDRV_VIDEO_UPDATE(toaplan2_0)
3961
3962 /* sound hardware */
3963 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3964 MDRV_SOUND_ADD(YM2151, ym2151_interface)
3965 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
3966 MACHINE_DRIVER_END
3967
3968
3969 static MACHINE_DRIVER_START( truxton2 )
3970
3971 /* basic machine hardware */
3972 MDRV_CPU_ADD(M68000, 16000000) /* 16MHz Oscillator */
3973 MDRV_CPU_MEMORY(truxton2_readmem,truxton2_writemem)
3974 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq2,262)
3975
3976 MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
3977 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
3978
3979 MDRV_MACHINE_INIT(toaplan2)
3980
3981 /* video hardware */
3982 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
3983 MDRV_SCREEN_SIZE(32*16, 32*16)
3984 MDRV_VISIBLE_AREA(0, 319, 0, 239)
3985 MDRV_GFXDECODE(truxton2_gfxdecodeinfo)
3986 MDRV_PALETTE_LENGTH(2048)
3987
3988 MDRV_VIDEO_START(truxton2_0)
3989 MDRV_VIDEO_EOF(toaplan2_0)
3990 MDRV_VIDEO_UPDATE(truxton2_0)
3991
3992 /* sound hardware */
3993 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3994 MDRV_SOUND_ADD(YM2151, ym2151_interface)
3995 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
3996 MACHINE_DRIVER_END
3997
3998
3999 static MACHINE_DRIVER_START( pipibibs )
4000
4001 /* basic machine hardware */
4002 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
4003 MDRV_CPU_MEMORY(pipibibs_readmem,pipibibs_writemem)
4004 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4005
4006 MDRV_CPU_ADD(Z80,27000000/8) /* ??? 3.37MHz , 27MHz Oscillator */
4007 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
4008
4009 MDRV_FRAMES_PER_SECOND(60)
4010 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4011 MDRV_INTERLEAVE(10)
4012
4013 MDRV_MACHINE_INIT(toaplan2)
4014
4015 /* video hardware */
4016 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4017 MDRV_SCREEN_SIZE(32*16, 32*16)
4018 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4019 MDRV_GFXDECODE(gfxdecodeinfo)
4020 MDRV_PALETTE_LENGTH(2048)
4021
4022 MDRV_VIDEO_START(toaplan2_0)
4023 MDRV_VIDEO_EOF(toaplan2_0)
4024 MDRV_VIDEO_UPDATE(toaplan2_0)
4025
4026 /* sound hardware */
4027 MDRV_SOUND_ADD(YM3812, ym3812_interface)
4028 MACHINE_DRIVER_END
4029
4030
4031 static MACHINE_DRIVER_START( whoopee )
4032
4033 /* basic machine hardware */
4034 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
4035 MDRV_CPU_MEMORY(tekipaki_readmem,tekipaki_writemem)
4036 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4037
4038 MDRV_CPU_ADD(Z80, 27000000/8) /* This should be a HD647180 */
4039 /* Change this to 10MHz when HD647180 gets dumped. 10MHz Oscillator */
4040 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
4041
4042 MDRV_FRAMES_PER_SECOND(60)
4043 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4044 MDRV_INTERLEAVE(10)
4045
4046 MDRV_MACHINE_INIT(toaplan2)
4047
4048 /* video hardware */
4049 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4050 MDRV_SCREEN_SIZE(32*16, 32*16)
4051 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4052 MDRV_GFXDECODE(gfxdecodeinfo)
4053 MDRV_PALETTE_LENGTH(2048)
4054
4055 MDRV_VIDEO_START(toaplan2_0)
4056 MDRV_VIDEO_EOF(toaplan2_0)
4057 MDRV_VIDEO_UPDATE(toaplan2_0)
4058
4059 /* sound hardware */
4060 MDRV_SOUND_ADD(YM3812, ym3812_interface)
4061 MACHINE_DRIVER_END
4062
4063
4064 static MACHINE_DRIVER_START( pipibibi )
4065
4066 /* basic machine hardware */
4067 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
4068 MDRV_CPU_MEMORY(pipibibi_readmem,pipibibi_writemem)
4069 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4070
4071 MDRV_CPU_ADD(Z80,27000000/8) /* ??? 3.37MHz */
4072 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
4073
4074 MDRV_FRAMES_PER_SECOND(60)
4075 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4076 MDRV_INTERLEAVE(10)
4077
4078 MDRV_MACHINE_INIT(toaplan2)
4079
4080 /* video hardware */
4081 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4082 MDRV_SCREEN_SIZE(32*16, 32*16)
4083 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4084 MDRV_GFXDECODE(gfxdecodeinfo)
4085 MDRV_PALETTE_LENGTH(2048)
4086
4087 MDRV_VIDEO_START(toaplan2_0)
4088 MDRV_VIDEO_EOF(toaplan2_0)
4089 MDRV_VIDEO_UPDATE(toaplan2_0)
4090
4091 /* sound hardware */
4092 MDRV_SOUND_ADD(YM3812, ym3812_interface)
4093 MACHINE_DRIVER_END
4094
4095
4096 static MACHINE_DRIVER_START( fixeight )
4097
4098 /* basic machine hardware */
4099 MDRV_CPU_ADD(M68000, 16000000) /* 16MHz Oscillator */
4100 MDRV_CPU_MEMORY(fixeight_readmem,fixeight_writemem)
4101 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4102
4103 #if Zx80
4104 MDRV_CPU_ADD(Z180, 16000000) /* Z?80 type Toaplan marked CPU ??? */
4105 MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
4106 MDRV_CPU_PORTS(Zx80_readport,0)
4107 #endif
4108
4109 MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
4110 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4111
4112 MDRV_MACHINE_INIT(toaplan2)
4113 /// MDRV_NVRAM_HANDLER(fixeight) /* See 37B6 code */
4114
4115 /* video hardware */
4116 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4117 MDRV_SCREEN_SIZE(32*16, 32*16)
4118 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4119 MDRV_GFXDECODE(truxton2_gfxdecodeinfo)
4120 MDRV_PALETTE_LENGTH(2048)
4121
4122 MDRV_VIDEO_START(truxton2_0)
4123 MDRV_VIDEO_EOF(toaplan2_0)
4124 MDRV_VIDEO_UPDATE(truxton2_0)
4125
4126 /* sound hardware */
4127 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4128 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4129 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
4130 MACHINE_DRIVER_END
4131
4132
4133 static MACHINE_DRIVER_START( vfive )
4134
4135 /* basic machine hardware */
4136 MDRV_CPU_ADD(M68000, 10000000) /* 10MHz Oscillator */
4137 MDRV_CPU_MEMORY(vfive_readmem,vfive_writemem)
4138 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4139
4140 #if Zx80
4141 MDRV_CPU_ADD(Z180, 10000000) /* Z?80 type Toaplan marked CPU ??? */
4142 MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
4143 MDRV_CPU_PORTS(Zx80_readport,0)
4144 #endif
4145
4146 MDRV_FRAMES_PER_SECOND( (27000000.0 / 4) / (432 * 263) )
4147 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4148
4149 MDRV_MACHINE_INIT(toaplan2)
4150
4151 /* video hardware */
4152 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4153 MDRV_SCREEN_SIZE(32*16, 32*16)
4154 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4155 MDRV_GFXDECODE(gfxdecodeinfo)
4156 MDRV_PALETTE_LENGTH(2048)
4157
4158 MDRV_VIDEO_START(toaplan2_0)
4159 MDRV_VIDEO_EOF(toaplan2_0)
4160 MDRV_VIDEO_UPDATE(toaplan2_0)
4161
4162 /* sound hardware */
4163 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4164 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4165 MACHINE_DRIVER_END
4166
4167
4168 static MACHINE_DRIVER_START( batsugun )
4169
4170 /* basic machine hardware */
4171 MDRV_CPU_ADD(M68000,32000000/2) /* 16MHz , 32MHz Oscillator */
4172 MDRV_CPU_MEMORY(batsugun_readmem,batsugun_writemem)
4173 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4174
4175 #if Zx80
4176 MDRV_CPU_ADD(Z180, 32000000/2) /* Z?80 type Toaplan marked CPU ??? */
4177 MDRV_CPU_MEMORY(Zx80_readmem,Zx80_writemem)
4178 MDRV_CPU_PORTS(Zx80_readport,0)
4179 #endif
4180
4181 MDRV_FRAMES_PER_SECOND(60)
4182 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4183
4184 MDRV_MACHINE_INIT(toaplan2)
4185
4186 /* video hardware */
4187 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4188 MDRV_SCREEN_SIZE(32*16, 32*16)
4189 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4190 MDRV_GFXDECODE(gfxdecodeinfo_2)
4191 MDRV_PALETTE_LENGTH(2048)
4192
4193 MDRV_VIDEO_START(toaplan2_1)
4194 MDRV_VIDEO_EOF(toaplan2_1)
4195 MDRV_VIDEO_UPDATE(batsugun_1)
4196
4197 /* sound hardware */
4198 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4199 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4200 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
4201 MACHINE_DRIVER_END
4202
4203
4204 static MACHINE_DRIVER_START( snowbro2 )
4205
4206 /* basic machine hardware */
4207 MDRV_CPU_ADD(M68000, 16000000)
4208 MDRV_CPU_MEMORY(snowbro2_readmem,snowbro2_writemem)
4209 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4210
4211 MDRV_FRAMES_PER_SECOND(60)
4212 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4213
4214 MDRV_MACHINE_INIT(toaplan2)
4215
4216 /* video hardware */
4217 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4218 MDRV_SCREEN_SIZE(32*16, 32*16)
4219 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4220 MDRV_GFXDECODE(gfxdecodeinfo)
4221 MDRV_PALETTE_LENGTH(2048)
4222
4223 MDRV_VIDEO_START(toaplan2_0)
4224 MDRV_VIDEO_EOF(toaplan2_0)
4225 MDRV_VIDEO_UPDATE(toaplan2_0)
4226
4227 /* sound hardware */
4228 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4229 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4230 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
4231 MACHINE_DRIVER_END
4232
4233
4234 static MACHINE_DRIVER_START( mahoudai )
4235
4236 /* basic machine hardware */
4237 MDRV_CPU_ADD(M68000,32000000/2) /* 16MHz , 32MHz Oscillator */
4238 MDRV_CPU_MEMORY(mahoudai_readmem,mahoudai_writemem)
4239 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4240
4241 MDRV_CPU_ADD(Z80,32000000/8) /* 4MHz , 32MHz Oscillator */
4242 MDRV_CPU_MEMORY(raizing_sound_readmem,raizing_sound_writemem)
4243
4244 MDRV_FRAMES_PER_SECOND(60)
4245 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4246 MDRV_INTERLEAVE(10)
4247
4248 MDRV_MACHINE_INIT(toaplan2)
4249
4250 /* video hardware */
4251 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4252 MDRV_SCREEN_SIZE(32*16, 32*16)
4253 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4254 MDRV_GFXDECODE(raizing_gfxdecodeinfo)
4255 MDRV_PALETTE_LENGTH(2048)
4256
4257 MDRV_VIDEO_START(battleg_0)
4258 MDRV_VIDEO_EOF(toaplan2_0)
4259 MDRV_VIDEO_UPDATE(mahoudai_0)
4260
4261 /* sound hardware */
4262 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4263 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4264 MDRV_SOUND_ADD(OKIM6295, raizing_okim6295_interface)
4265 MACHINE_DRIVER_END
4266
4267
4268 static MACHINE_DRIVER_START( shippumd )
4269
4270 /* basic machine hardware */
4271 MDRV_CPU_ADD(M68000,32000000/2) /* 16MHz , 32MHz Oscillator */
4272 MDRV_CPU_MEMORY(shippumd_readmem,shippumd_writemem)
4273 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4274
4275 MDRV_CPU_ADD(Z80,32000000/8) /* 4MHz , 32MHz Oscillator */
4276 MDRV_CPU_MEMORY(raizing_sound_readmem,raizing_sound_writemem)
4277
4278 MDRV_FRAMES_PER_SECOND(60)
4279 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4280 MDRV_INTERLEAVE(10)
4281
4282 MDRV_MACHINE_INIT(toaplan2)
4283
4284 /* video hardware */
4285 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4286 MDRV_SCREEN_SIZE(32*16, 32*16)
4287 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4288 MDRV_GFXDECODE(raizing_gfxdecodeinfo)
4289 MDRV_PALETTE_LENGTH(2048)
4290
4291 MDRV_VIDEO_START(battleg_0)
4292 MDRV_VIDEO_EOF(toaplan2_0)
4293 MDRV_VIDEO_UPDATE(truxton2_0)
4294
4295 /* sound hardware */
4296 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4297 MDRV_SOUND_ADD(YM2151, ym2151_interface)
4298 MDRV_SOUND_ADD(OKIM6295, raizing_okim6295_interface)
4299 MACHINE_DRIVER_END
4300
4301
4302 static MACHINE_DRIVER_START( battleg )
4303
4304 /* basic machine hardware */
4305 MDRV_CPU_ADD(M68000,32000000/2) /* 16MHz , 32MHz Oscillator */
4306 MDRV_CPU_MEMORY(battleg_readmem,battleg_writemem)
4307 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq4,262)
4308
4309 MDRV_CPU_ADD(Z80,32000000/8) /* 4MHz , 32MHz Oscillator */
4310 MDRV_CPU_MEMORY(battleg_sound_readmem,battleg_sound_writemem)
4311
4312 MDRV_FRAMES_PER_SECOND(60)
4313 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4314 MDRV_INTERLEAVE(10)
4315
4316 MDRV_MACHINE_INIT(toaplan2)
4317
4318 /* video hardware */
4319 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4320 MDRV_SCREEN_SIZE(32*16, 32*16)
4321 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4322 MDRV_GFXDECODE(raizing_gfxdecodeinfo)
4323 MDRV_PALETTE_LENGTH(2048)
4324
4325 MDRV_VIDEO_START(battleg_0)
4326 MDRV_VIDEO_EOF(toaplan2_0)
4327 MDRV_VIDEO_UPDATE(truxton2_0)
4328
4329 /* sound hardware */
4330 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4331 MDRV_SOUND_ADD(YM2151, raizing_ym2151_interface)
4332 MDRV_SOUND_ADD(OKIM6295, battleg_okim6295_interface)
4333 MACHINE_DRIVER_END
4334
4335
4336 static MACHINE_DRIVER_START( batrider )
4337
4338 /* basic machine hardware */
4339 MDRV_CPU_ADD(M68000,32000000/2) /* 16MHz , 32MHz Oscillator */
4340 MDRV_CPU_MEMORY(batrider_readmem,batrider_writemem)
4341 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq2,262)
4342
4343 MDRV_CPU_ADD(Z80,32000000/8) /* 4MHz , 32MHz Oscillator */
4344 MDRV_CPU_MEMORY(batrider_sound_readmem,batrider_sound_writemem)
4345 MDRV_CPU_PORTS(batrider_sound_readport,batrider_sound_writeport)
4346
4347 MDRV_FRAMES_PER_SECOND(60)
4348 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4349 MDRV_INTERLEAVE(10)
4350
4351 MDRV_MACHINE_INIT(batrider)
4352
4353 /* video hardware */
4354 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4355 MDRV_SCREEN_SIZE(32*16, 32*16)
4356 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4357 MDRV_GFXDECODE(batrider_gfxdecodeinfo)
4358 MDRV_PALETTE_LENGTH(2048)
4359
4360 MDRV_VIDEO_START(batrider_0)
4361 MDRV_VIDEO_EOF(batrider_0)
4362 MDRV_VIDEO_UPDATE(batrider_0)
4363
4364 /* sound hardware */
4365 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
4366 MDRV_SOUND_ADD(YM2151, raizing_ym2151_interface)
4367 MDRV_SOUND_ADD(OKIM6295, batrider_okim6295_interface)
4368 MACHINE_DRIVER_END
4369
4370 static MACHINE_DRIVER_START( bbakraid )
4371
4372 /* basic machine hardware */
4373 MDRV_CPU_ADD(M68000,32000000/2)
4374 MDRV_CPU_MEMORY(bbakraid_readmem,bbakraid_writemem)
4375 MDRV_CPU_VBLANK_INT(toaplan2_vblank_irq3,262)
4376
4377 MDRV_CPU_ADD(Z80,32000000/4)
4378 MDRV_CPU_MEMORY(bbakraid_sound_readmem,bbakraid_sound_writemem)
4379 MDRV_CPU_PORTS(bbakraid_sound_readport,bbakraid_sound_writeport)
4380 MDRV_CPU_PERIODIC_INT(bbakraid_snd_interrupt, 388)
4381 MDRV_FRAMES_PER_SECOND(60)
4382 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
4383 MDRV_INTERLEAVE(262)
4384
4385 MDRV_MACHINE_INIT(toaplan2)
4386 MDRV_NVRAM_HANDLER(bbakraid)
4387
4388 /* video hardware */
4389 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK)
4390 MDRV_SCREEN_SIZE(32*16, 32*16)
4391 MDRV_VISIBLE_AREA(0, 319, 0, 239)
4392 MDRV_GFXDECODE(batrider_gfxdecodeinfo)
4393 MDRV_PALETTE_LENGTH(2048)
4394
4395 MDRV_VIDEO_START(batrider_0)
4396 MDRV_VIDEO_UPDATE(batrider_0)
4397
4398 /* sound hardware */
4399 MDRV_SOUND_ADD(YMZ280B, ymz280b_interface)
4400 MACHINE_DRIVER_END
4401
4402
4403
4404 /***************************************************************************
4405
4406 Game driver(s)
4407
4408 ***************************************************************************/
4409
4410 /* -------------------------- Toaplan games ------------------------- */
4411 ROM_START( tekipaki )
4412 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* Main 68K code */
4413 ROM_LOAD16_BYTE( "tp020-1.bin", 0x000000, 0x010000, CRC(d8420bd5) SHA1(30c1ad9e053cd7e79adb42aa428ebee28e144755) )
4414 ROM_LOAD16_BYTE( "tp020-2.bin", 0x000001, 0x010000, CRC(7222de8e) SHA1(8352ae23efc24a2e20cc24b6d37cb8fc6b1a730c) )
4415
4416 #if HD64x180
4417 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
4418 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
4419 ROM_LOAD( "hd647180.020", 0x00000, 0x08000, NO_DUMP )
4420 #endif
4421
4422 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
4423 ROM_LOAD( "tp020-4.bin", 0x000000, 0x080000, CRC(3ebbe41e) SHA1(cea196c5f83e1a23d5b538a0db9bbbffa7af5118) )
4424 ROM_LOAD( "tp020-3.bin", 0x080000, 0x080000, CRC(2d5e2201) SHA1(5846c844eedd48305c1c67dc645b6e070b3f5b98) )
4425 ROM_END
4426
4427 ROM_START( ghox )
4428 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
4429 ROM_LOAD16_BYTE( "tp021-01.u10", 0x000000, 0x020000, CRC(9e56ac67) SHA1(daf241d9e55a6e60fc004ed61f787641595b1e62) )
4430 ROM_LOAD16_BYTE( "tp021-02.u11", 0x000001, 0x020000, CRC(15cac60f) SHA1(6efa3a50a5dfe6ef4072738d6a7d0d95dca8a675) )
4431
4432 #if HD64x180
4433 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound HD647180 code */
4434 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
4435 ROM_LOAD( "hd647180.021", 0x00000, 0x08000, NO_DUMP )
4436 #endif
4437
4438 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
4439 ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) )
4440 ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) )
4441 ROM_END
4442
4443 ROM_START( dogyuun )
4444 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4445 ROM_LOAD16_WORD( "tp022_01.r16", 0x000000, 0x080000, CRC(72f18907) SHA1(9d1b3800764a63e046644c78a2e0339280e038cb) )
4446
4447 /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH TOA PLAN) */
4448 /* Its a Z?80 of some sort - 94 pin chip. */
4449 #if Zx80
4450 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Secondary CPU code */
4451 /* Secondary CPU is a Toaplan marked chip ??? */
4452 // ROM_LOAD( "tp022.mcu", 0x00000, 0x08000, NO_DUMP )
4453 #endif
4454
4455 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4456 ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) )
4457 ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) )
4458
4459 ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )
4460 ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) )
4461 ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) )
4462
4463 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4464 ROM_LOAD( "tp022_2.w30", 0x00000, 0x40000, CRC(043271b3) SHA1(c7eaa929e55dd956579b824ea9d20a1d0129a925) )
4465 ROM_END
4466
4467 ROM_START( kbash )
4468 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4469 ROM_LOAD16_WORD_SWAP( "kbash01.bin", 0x000000, 0x080000, CRC(2965f81d) SHA1(46f2df30fa92c80ba5a37f75e756424e15534784) )
4470
4471 /* Secondary CPU is a Toaplan marked chip, (TS-004-Dash TOA PLAN) */
4472 /* Its a Z?80 of some sort - 94 pin chip. */
4473 #if Zx80
4474 ROM_REGION( 0x88000, REGION_CPU2, 0 ) /* Sound Z?80 code */
4475 ROM_LOAD( "kbash02.bin", 0x80000, 0x08000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
4476 #else
4477 ROM_REGION( 0x08000, REGION_USER1, 0 )
4478 ROM_LOAD( "kbash02.bin", 0x00200, 0x07e00, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
4479 ROM_CONTINUE( 0x00000, 0x00200 )
4480 #endif
4481
4482 ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
4483 ROM_LOAD( "kbash03.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) )
4484 ROM_LOAD( "kbash05.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) )
4485 ROM_LOAD( "kbash04.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) )
4486 ROM_LOAD( "kbash06.bin", 0x600000, 0x200000, CRC(9084b50a) SHA1(03b58278619524d2f09a4b1c152d5e057e792a56) )
4487
4488 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4489 ROM_LOAD( "kbash07.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) )
4490 ROM_END
4491
4492 ROM_START( truxton2 )
4493 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4494 ROM_LOAD16_WORD( "tp024_1.bin", 0x000000, 0x080000, CRC(f5cfe6ee) SHA1(30979888a4cd6500244117748f28386a7e20a169) )
4495
4496 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4497 ROM_LOAD( "tp024_4.bin", 0x000000, 0x100000, CRC(805c449e) SHA1(fdf985344145bd320b88b9b0c25e73066c9b2ada) )
4498 ROM_LOAD( "tp024_3.bin", 0x100000, 0x100000, CRC(47587164) SHA1(bac493e2d5507286b984957b289c929335d27eaa) )
4499
4500 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4501 ROM_LOAD( "tp024_2.bin", 0x00000, 0x80000, CRC(f2f6cae4) SHA1(bb4e8c36531bed97ced4696ca12fd40ede2531aa) )
4502 ROM_END
4503
4504 ROM_START( pipibibs )
4505 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
4506 ROM_LOAD16_BYTE( "tp025-1.bin", 0x000000, 0x020000, CRC(b2ea8659) SHA1(400431b656dbfbd5a9bc5961c3ea04c4d38b6f77) )
4507 ROM_LOAD16_BYTE( "tp025-2.bin", 0x000001, 0x020000, CRC(dc53b939) SHA1(e4de371f97ba7c350273ad43b7f58ff31672a269) )
4508
4509 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4510 ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) )
4511
4512 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4513 ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
4514 ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
4515 ROM_END
4516
4517 ROM_START( whoopee )
4518 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
4519 ROM_LOAD16_BYTE( "whoopee.1", 0x000000, 0x020000, CRC(28882e7e) SHA1(8fcd278a7d005eb81cd9e461139c0c0f756a4fa4) )
4520 ROM_LOAD16_BYTE( "whoopee.2", 0x000001, 0x020000, CRC(6796f133) SHA1(d4e657be260ba3fd3f0556ade617882513b52685) )
4521
4522 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4523 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
4524 /* use the Z80 version from the bootleg Pipi & Bibis set for now */
4525 ROM_LOAD( "hd647180.025", 0x00000, 0x08000, BAD_DUMP CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50) )
4526
4527 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4528 ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
4529 ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
4530 ROM_END
4531
4532 ROM_START( pipibibi )
4533 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Main 68K code */
4534 ROM_LOAD16_BYTE( "ppbb06.bin", 0x000000, 0x020000, CRC(14c92515) SHA1(2d7f7c89272bb2a8115f163ad651bef3bca5107e) )
4535 ROM_LOAD16_BYTE( "ppbb05.bin", 0x000001, 0x020000, CRC(3d51133c) SHA1(d7bd94ad11e9aeb5a5165c5ac6f71950849bcd2f) )
4536
4537 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4538 ROM_LOAD( "ppbb08.bin", 0x0000, 0x8000, CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50) )
4539
4540 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4541 /* GFX data differs slightly from Toaplan boards ??? */
4542 ROM_LOAD16_BYTE( "ppbb01.bin", 0x000000, 0x080000, CRC(0fcae44b) SHA1(ac72bc79e3a5d0a81647c312d310d00ace017272) )
4543 ROM_LOAD16_BYTE( "ppbb02.bin", 0x000001, 0x080000, CRC(8bfcdf87) SHA1(4537a7d646d3014f069c6fd0be457bb32e2f18ac) )
4544 ROM_LOAD16_BYTE( "ppbb03.bin", 0x100000, 0x080000, CRC(abdd2b8b) SHA1(a4246dd63515f01d1227c9a9e16d9f1c739ee39e) )
4545 ROM_LOAD16_BYTE( "ppbb04.bin", 0x100001, 0x080000, CRC(70faa734) SHA1(4448f4dbded56c142e57293d371e0a422c3a667e) )
4546
4547 ROM_REGION( 0x8000, REGION_USER1, 0 ) /* ??? Some sort of table */
4548 ROM_LOAD( "ppbb07.bin", 0x0000, 0x8000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) )
4549 ROM_END
4550
4551 ROM_START( fixeight )
4552 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4553 ROM_LOAD16_WORD_SWAP( "tp-026-1", 0x000000, 0x080000, CRC(f7b1746a) )
4554
4555 #if Zx80
4556 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Secondary CPU code */
4557 /* Secondary CPU is a Toaplan marked chip, (TS-001-Turbo TOA PLAN) */
4558 /* Its a Z?80 of some sort - 94 pin chip. */
4559 // ROM_LOAD( "tp-026.mcu", 0x0000, 0x8000, NO_DUMP )
4560 #endif
4561
4562 ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
4563 ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) )
4564 ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) )
4565
4566 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4567 ROM_LOAD( "tp-026-2", 0x00000, 0x40000, CRC(85063f1f) )
4568
4569 ROM_REGION( 0x80, REGION_USER1, 0 )
4570 /* Serial EEPROM (93C45) connected to Secondary CPU */
4571 ROM_LOAD( "93c45.u21", 0x00, 0x80, CRC(40d75df0) )
4572 ROM_END
4573
4574 ROM_START( grindstm )
4575 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4576 ROM_LOAD16_WORD_SWAP( "01.bin", 0x000000, 0x080000, CRC(4923f790) SHA1(1c2d66b432d190d0fb6ac7ca0ec0687aea3ccbf4) )
4577
4578 #if Zx80
4579 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */
4580 /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */
4581 /* Its a Z?80 of some sort - 94 pin chip. */
4582 // ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
4583 #endif
4584
4585 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4586 ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
4587 ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
4588 ROM_END
4589
4590 ROM_START( grindsta )
4591 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4592 ROM_LOAD16_WORD_SWAP( "tp027-01.rom", 0x000000, 0x080000, CRC(8d8c0392) SHA1(824dde274c8bef8a87c54d8ccdda7f0feb8d11e1) )
4593
4594 #if Zx80
4595 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */
4596 /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */
4597 /* Its a Z?80 of some sort - 94 pin chip. */
4598 // ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
4599 #endif
4600
4601 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4602 ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
4603 ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
4604 ROM_END
4605
4606 ROM_START( vfive )
4607 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4608 ROM_LOAD16_WORD_SWAP( "tp027_01.bin", 0x000000, 0x080000, CRC(731d50f4) SHA1(794255d0a809cda9170f5bac473df9d7f0efdac8) )
4609
4610 #if Zx80
4611 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */
4612 /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */
4613 /* Its a Z?80 of some sort - 94 pin chip. */
4614 // ROM_LOAD( "tp027.mcu", 0x8000, 0x8000, NO_DUMP )
4615 #endif
4616
4617 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4618 ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
4619 ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
4620 ROM_END
4621
4622 ROM_START( batsugun )
4623 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4624 ROM_LOAD16_WORD_SWAP( "tp030_01.bin", 0x000000, 0x080000, CRC(3873d7dd) SHA1(baf6187d7d554cfcf4a86b63f07fc30df7ef84c9) )
4625
4626 #if Zx80
4627 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */
4628 /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */
4629 /* Its a Z?80 of some sort - 94 pin chip. */
4630 // ROM_LOAD( "tp030.mcu", 0x8000, 0x8000, NO_DUMP )
4631 #endif
4632
4633 ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
4634 ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
4635 ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
4636 ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
4637 ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
4638
4639 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
4640 ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
4641 ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
4642
4643 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4644 ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
4645 ROM_END
4646
4647 ROM_START( batugnsp )
4648 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4649 ROM_LOAD16_WORD_SWAP( "tp030-sp.u69", 0x000000, 0x080000, CRC(8072a0cd) SHA1(3a0a9cdf894926a16800c4882a2b00383d981367) )
4650
4651 #if Zx80
4652 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */
4653 /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */
4654 /* Its a Z?80 of some sort - 94 pin chip. */
4655 // ROM_LOAD( "tp030.mcu", 0x8000, 0x8000, NO_DUMP )
4656 #endif
4657
4658 ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
4659 ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
4660 ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
4661 ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
4662 ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
4663
4664 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
4665 ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
4666 ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
4667
4668 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4669 ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
4670 ROM_END
4671
4672 ROM_START( snowbro2 )
4673 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4674 ROM_LOAD16_WORD_SWAP( "pro-4", 0x000000, 0x080000, CRC(4c7ee341) SHA1(ad46c605a38565d0148daac301be4e4b72302fe7) )
4675
4676 ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE )
4677 ROM_LOAD( "rom2-l", 0x000000, 0x100000, CRC(e9d366a9) SHA1(e87e3966fce3395324b90db6c134b3345104c04b) )
4678 ROM_LOAD( "rom2-h", 0x100000, 0x080000, CRC(9aab7a62) SHA1(611f6a15fdbac5d3063426a365538c1482e996bf) )
4679 ROM_LOAD( "rom3-l", 0x180000, 0x100000, CRC(eb06e332) SHA1(7cd597bfffc153d178530c0f0903bebd751c9dd1) )
4680 ROM_LOAD( "rom3-h", 0x280000, 0x080000, CRC(df4a952a) SHA1(b76af61c8437caca573ff1312832898666a611aa) )
4681
4682 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4683 ROM_LOAD( "rom4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) )
4684 ROM_END
4685
4686 /* -------------------------- Raizing games ------------------------- */
4687
4688 ROM_START( sstriker )
4689 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4690 ROM_LOAD16_WORD_SWAP( "ra-ma-01.01", 0x000000, 0x080000, CRC(92259f84) SHA1(127e62e407d95efd360bfe2cac9577f326abf6ef) )
4691
4692 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4693 ROM_LOAD( "ra_ma_01.02", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
4694
4695 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4696 ROM_LOAD( "ra_ma_01.03", 0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
4697 ROM_LOAD( "ra_ma_01.04", 0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
4698
4699 ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
4700 ROM_LOAD( "ra-ma-01.05", 0x000000, 0x008000, CRC(88b58841) SHA1(1d16b538c11a291bd1f46a510bfbd6259b45a0b5) )
4701
4702 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4703 ROM_LOAD( "ra_ma_01.06", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) )
4704 ROM_END
4705
4706 ROM_START( mahoudai )
4707 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* Main 68K code */
4708 ROM_LOAD16_WORD_SWAP( "ra_ma_01.01", 0x000000, 0x080000, CRC(970ccc5c) SHA1(c87cab83bde0284e631f02e50068407fee81d941) )
4709
4710 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4711 ROM_LOAD( "ra_ma_01.02", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
4712
4713 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
4714 ROM_LOAD( "ra_ma_01.03", 0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
4715 ROM_LOAD( "ra_ma_01.04", 0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
4716
4717 ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
4718 ROM_LOAD( "ra_ma_01.05", 0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) )
4719
4720 ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4721 ROM_LOAD( "ra_ma_01.06", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) )
4722 ROM_END
4723
4724 ROM_START( kingdmgp )
4725 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Main 68K code */
4726 ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) )
4727 ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) )
4728
4729 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4730 ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
4731
4732 ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
4733 ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
4734 ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
4735
4736 ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
4737 ROM_LOAD( "ma02rom5.eng", 0x000000, 0x008000, CRC(8c28460b) SHA1(0aed170762f6044896a7e608df60bbd37c583a71) )
4738
4739 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4740 ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) )
4741 ROM_END
4742
4743 ROM_START( shippumd )
4744 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Main 68K code */
4745 ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) )
4746 ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) )
4747
4748 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 code */
4749 ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
4750
4751 ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
4752 ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
4753 ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
4754
4755 ROM_REGION( 0x008000, REGION_GFX2, ROMREGION_DISPOSE )
4756 ROM_LOAD( "ma02rom5.bin", 0x000000, 0x008000, CRC(116ae559) SHA1(4cc2d2a23cc0aefd457111b7990e47184e79204c) )
4757
4758 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4759 ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) )
4760 ROM_END
4761
4762 ROM_START( battleg )
4763 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Main 68K code */
4764 ROM_LOAD16_BYTE( "u123", 0x000000, 0x080000, CRC(88a4e66a) SHA1(ca97e564eed0c5e028b937312e55da56400d5c8c) )
4765 ROM_LOAD16_BYTE( "u65", 0x000001, 0x080000, CRC(5dea32a3) SHA1(59df6689e3eb5ea9e49a758604d21a64c65ca14d) )
4766
4767 ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4768 ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
4769 ROM_CONTINUE( 0x10000, 0x18000 )
4770
4771 ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
4772 ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
4773 ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
4774 ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
4775 ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
4776
4777 ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
4778 ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
4779
4780 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4781 ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
4782 ROM_END
4783
4784 ROM_START( battlega )
4785 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Main 68K code */
4786 ROM_LOAD16_BYTE( "prg0.bin", 0x000000, 0x080000, CRC(f80c2fc2) SHA1(a9aac5c7f5439b6fe8d1b3db1fb02a27cc28fdf6) )
4787 ROM_LOAD16_BYTE( "prg1.bin", 0x000001, 0x080000, CRC(2ccfdd1e) SHA1(7a9f11f851854f3f8389b9c3c0906ebb8dc28712) )
4788
4789 ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4790 ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
4791 ROM_CONTINUE( 0x10000, 0x18000 )
4792
4793 ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
4794 ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
4795 ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
4796 ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
4797 ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
4798
4799 ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
4800 ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
4801
4802 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4803 ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
4804 ROM_END
4805
4806 ROM_START( battlegb )
4807 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Main 68K code */
4808 ROM_LOAD16_BYTE( "prg_0.bin", 0x000000, 0x080000, CRC(951ecc07) SHA1(a82e4b59e4a974566e59f3ab2fbae1aec7d88a2b) )
4809 ROM_LOAD16_BYTE( "prg_1.bin", 0x000001, 0x080000, CRC(729a60c6) SHA1(cb6f5d138bb82c32910f42d8ee16fa573a23cef3) )
4810
4811 ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4812 ROM_LOAD( "snd.bin", 0x00000, 0x08000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
4813 ROM_CONTINUE( 0x10000, 0x18000 )
4814
4815 ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )
4816 ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
4817 ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
4818 ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
4819 ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
4820
4821 ROM_REGION( 0x010000, REGION_GFX2, ROMREGION_DISPOSE )
4822 ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
4823
4824 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples */
4825 ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
4826 ROM_END
4827
4828 ROM_START( batrider )
4829 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* Main 68k code */
4830 ROM_LOAD16_BYTE( "prg0b.u22", 0x000000, 0x080000, CRC(4f3fc729) SHA1(b32d51c254741b82171a86c271679522a7aefd34) )
4831 ROM_LOAD16_BYTE( "prg1b.u23", 0x000001, 0x080000, CRC(8e70b492) SHA1(f84f2039826ae815afb058d71c1dbd190f9d524d) )
4832 ROM_LOAD16_BYTE( "prg2.u21" , 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
4833 ROM_LOAD16_BYTE( "prg3.u24" , 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
4834
4835 ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4836 ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
4837 ROM_CONTINUE( 0x10000, 0x38000 )
4838
4839 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
4840 ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
4841 ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
4842 ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
4843 ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
4844
4845 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples 1 */
4846 ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
4847
4848 ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* ADPCM Samples 2 */
4849 ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
4850 ROM_END
4851
4852 ROM_START( batridra )
4853 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* Main 68k code */
4854 ROM_LOAD16_BYTE( "prg0.bin", 0x000000, 0x080000, CRC(f93ea27c) SHA1(41023c2ee1efd70b5aa9c70e1ddd9e5c3d51d68a) )
4855 ROM_LOAD16_BYTE( "prg1.bin", 0x000001, 0x080000, CRC(8ae7f592) SHA1(8a20ebf85eca621f578d2302c3a3988647b077a7) )
4856 ROM_LOAD16_BYTE( "prg2.u21", 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
4857 ROM_LOAD16_BYTE( "prg3.u24", 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
4858
4859 ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4860 ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
4861 ROM_CONTINUE( 0x10000, 0x38000 )
4862
4863 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
4864 ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
4865 ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
4866 ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
4867 ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
4868
4869 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples 1 */
4870 ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
4871
4872 ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* ADPCM Samples 2 */
4873 ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
4874 ROM_END
4875
4876 ROM_START( batridrk )
4877 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* Main 68k code */
4878 ROM_LOAD16_BYTE( "prg0.u22", 0x000000, 0x080000, CRC(d9d8c907) SHA1(69c197f2a41f288913f042de9eb8274c0df3ac27) )
4879 ROM_LOAD16_BYTE( "prg1.u23", 0x000001, 0x080000, CRC(8e70b492) SHA1(f84f2039826ae815afb058d71c1dbd190f9d524d) )
4880 ROM_LOAD16_BYTE( "prg2.u21", 0x100000, 0x080000, CRC(bdaa5fbf) SHA1(abd72ac633c0c8e7b4b1d7902c0d6e014ba995fe) )
4881 ROM_LOAD16_BYTE( "prg3.u24", 0x100001, 0x080000, CRC(7aa9f941) SHA1(99bdbad7a96d461073b06a53c50fc57c2fd6fc6d) )
4882
4883 ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Sound Z80 code + bank */
4884 ROM_LOAD( "snd.u77", 0x00000, 0x08000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
4885 ROM_CONTINUE( 0x10000, 0x38000 )
4886
4887 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
4888 ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
4889 ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
4890 ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
4891 ROM_LOAD( "rom-4.bin", 0xc00000, 0x400000, CRC(bee03c94) SHA1(5bc1e6769c42857c03456426b502fcb86a114f19) )
4892
4893 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM Samples 1 */
4894 ROM_LOAD( "rom-5.bin", 0x040000, 0x100000, CRC(4274daf6) SHA1(85557b4707d529e5914f03c7a856864f5c24950e) )
4895
4896 ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* ADPCM Samples 2 */
4897 ROM_LOAD( "rom-6.bin", 0x040000, 0x100000, CRC(2a1c2426) SHA1(8abc3688ffc5ebb94b8d5118d4fa0908f07fe791) )
4898 ROM_END
4899
4900 ROM_START( bbakraid )
4901 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* Main 68k code */
4902 ROM_LOAD16_BYTE( "prg0u022.bin", 0x000000, 0x080000, CRC(0dd59512) SHA1(c6a4e6aa49c6ac3b04ae62a0a4cc8084ae048381) )
4903 ROM_LOAD16_BYTE( "prg1u023.bin", 0x000001, 0x080000, CRC(fecde223) SHA1(eb5ac0eda49b4b0f3d25d8a8bb356e77a453d3a7) )
4904 ROM_LOAD16_BYTE( "prg2u021.bin", 0x100000, 0x080000, CRC(ffba8656) SHA1(6526bb65fad3384de3f301a7d1095cbf03757433) )
4905 ROM_LOAD16_BYTE( "prg3u024.bin", 0x100001, 0x080000, CRC(834b8ad6) SHA1(0dd6223bb0749819ad29811eeb04fd08d937abb0) )
4906
4907 ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound Z80 code */
4908 ROM_LOAD( "sndu0720.bin", 0x00000, 0x08000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
4909 ROM_CONTINUE( 0x10000, 0x18000 )
4910
4911 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
4912 ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
4913 ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
4914 ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
4915 ROM_LOAD( "gfxu0513.bin", 0xc00000, 0x400000, CRC(8bb635a0) SHA1(9064f1a2d8bb88ddbca702fb8556d0dfe6a5cadc) )
4916
4917 ROM_REGION( 0x0c00000, REGION_SOUND1, 0 ) /* YMZ280B Samples */
4918 ROM_LOAD( "rom6.829", 0x000000, 0x400000, CRC(8848b4a0) SHA1(e0dce136c5d5a4c1a92b863e57848cd5927d06f1) )
4919 ROM_LOAD( "rom7.830", 0x400000, 0x400000, CRC(d6224267) SHA1(5c9b7b13effbef9f707811f84bfe50ca85e605e3) )
4920 ROM_LOAD( "rom8.831", 0x800000, 0x400000, CRC(a101dfb0) SHA1(4b729b0d562e09df35438e9e6b457b8de2690a6e) )
4921 ROM_END
4922
4923 ROM_START( bbakradu )
4924 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* Main 68k code */
4925 ROM_LOAD16_BYTE( "prg0u022.new", 0x000000, 0x080000, CRC(fa8d38d3) SHA1(aba91d87a8a62d3fe1139b4437b16e2f844264ad) )
4926 ROM_LOAD16_BYTE( "prg1u023.new", 0x000001, 0x080000, CRC(4ae9aa64) SHA1(45fdf72141c4c9f24a38d4218c65874799b9c868) )
4927 ROM_LOAD16_BYTE( "prg2u021.bin", 0x100000, 0x080000, CRC(ffba8656) SHA1(6526bb65fad3384de3f301a7d1095cbf03757433) )
4928 ROM_LOAD16_BYTE( "prg3u024.bin", 0x100001, 0x080000, CRC(834b8ad6) SHA1(0dd6223bb0749819ad29811eeb04fd08d937abb0) )
4929
4930 ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Sound Z80 code */
4931 ROM_LOAD( "sndu0720.bin", 0x00000, 0x08000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
4932 ROM_CONTINUE( 0x10000, 0x18000 )
4933
4934 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE )
4935 ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
4936 ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
4937 ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
4938 ROM_LOAD( "gfxu0513.bin", 0xc00000, 0x400000, CRC(8bb635a0) SHA1(9064f1a2d8bb88ddbca702fb8556d0dfe6a5cadc) )
4939
4940 ROM_REGION( 0x0c00000, REGION_SOUND1, 0 ) /* YMZ280B Samples */
4941 ROM_LOAD( "rom6.829", 0x000000, 0x400000, CRC(8848b4a0) SHA1(e0dce136c5d5a4c1a92b863e57848cd5927d06f1) )
4942 ROM_LOAD( "rom7.830", 0x400000, 0x400000, CRC(d6224267) SHA1(5c9b7b13effbef9f707811f84bfe50ca85e605e3) )
4943 ROM_LOAD( "rom8.831", 0x800000, 0x400000, CRC(a101dfb0) SHA1(4b729b0d562e09df35438e9e6b457b8de2690a6e) )
4944 ROM_END
4945
4946
4947
4948 /* The following is in order of Toaplan Board/game numbers */
4949 /* See list at top of file */
4950 /* Whoopee machine to be changed to Teki Paki when (if) HD647180 is dumped */
4951 /* Whoopee init to be changed to T2_Z180 when (if) HD647180 is dumped */
4952
4953 /* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */
4954 GAMEX( 1991, tekipaki, 0, tekipaki, tekipaki, T2_Z180, ROT0, "Toaplan", "Teki Paki", GAME_NO_SOUND )
4955 GAMEX( 1991, ghox, 0, ghox, ghox, T2_Z180, ROT270, "Toaplan", "Ghox", GAME_NO_SOUND )
4956 GAMEX( 1992, dogyuun, 0, dogyuun, dogyuun, T2_Zx80, ROT270, "Toaplan", "Dogyuun", GAME_NO_SOUND )
4957 GAMEX( 1993, kbash, 0, kbash, kbash, T2_Zx80, ROT0, "Toaplan", "Knuckle Bash", GAME_NO_SOUND )
4958 GAME ( 1992, truxton2, 0, truxton2, truxton2, T2_noZ80, ROT270, "Toaplan", "Truxton II / Tatsujin II / Tatsujin Oh (Japan)" )
4959 GAME ( 1991, pipibibs, 0, pipibibs, pipibibs, T2_Z80, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!!" )
4960 GAME ( 1991, whoopee, pipibibs, whoopee, whoopee, T2_Z80, ROT0, "Toaplan", "Whoopee!! / Pipi & Bibis" )
4961 GAME ( 1991, pipibibi, pipibibs, pipibibi, pipibibi, pipibibi, ROT0, "[Toaplan] Ryouta Kikaku", "Pipi & Bibis / Whoopee!! (bootleg ?)" )
4962 GAMEX( 1992, fixeight, 0, fixeight, fixeight, fixeight, ROT270, "Toaplan", "FixEight", GAME_NOT_WORKING )
4963 GAMEX( 1992, grindstm, vfive, vfive, grindstm, T2_Zx80, ROT270, "Toaplan", "Grind Stormer", GAME_NO_SOUND )
4964 GAMEX( 1992, grindsta, vfive, vfive, grindstm, T2_Zx80, ROT270, "Toaplan", "Grind Stormer (older set)", GAME_NO_SOUND )
4965 GAMEX( 1993, vfive, 0, vfive, vfive, T2_Zx80, ROT270, "Toaplan", "V-Five (Japan)", GAME_NO_SOUND )
4966 GAMEX( 1993, batsugun, 0, batsugun, batsugun, T2_Zx80, ROT270, "Toaplan", "Batsugun", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
4967 GAMEX( 1993, batugnsp, batsugun, batsugun, batsugun, T2_Zx80, ROT270, "Toaplan", "Batsugun (Special Ver.)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
4968 GAME ( 1994, snowbro2, 0, snowbro2, snowbro2, T2_noZ80, ROT0, "[Toaplan] Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise" )
4969 GAME ( 1993, mahoudai, 0, mahoudai, mahoudai, T2_Z80, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Japan)" )
4970 GAME ( 1993, sstriker, mahoudai, mahoudai, sstriker, T2_Z80, ROT270, "Raizing", "Sorcer Striker (World)" ) // from korean board
4971 GAME ( 1994, shippumd, 0, shippumd, shippumd, T2_Z80, ROT270, "Raizing / Eighting", "Shippu Mahou Daisakusen (Japan)" )
4972 GAME ( 1994, kingdmgp, shippumd, shippumd, kingdmgp, T2_Z80, ROT270, "Raizing / Eighting", "Kingdom Grandprix (World)" ) // from korean board, missing letters on credits screen but this is correct
4973 GAME ( 1996, battleg, 0, battleg, battleg, battleg, ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Denmark / China) (Tue Apr 2 1996)" )
4974 GAME ( 1996, battlega, battleg, battleg, battlega, battleg, ROT270, "Raizing / Eighting", "Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)" )
4975 GAME ( 1996, battlegb, battleg, battleg, battlegb, battleg, ROT270, "Raizing / Eighting", "Battle Garegga (Austria / Hong Kong) (Sat Mar 2 1996)" ) // displays New Version when set to HK
4976 GAME ( 1998, batrider, 0, batrider, batrider, battleg, ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, version B)" )
4977 GAME ( 1998, batridra, batrider, batrider, batrider, battleg, ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, version A)" )
4978 GAME ( 1998, batridrk, batrider, batrider, batrider, battleg, ROT270, "Raizing / Eighting", "Armed Police Batrider (Korea, version B)" )
4979 GAME ( 1999, bbakraid, 0, bbakraid, bbakraid, bbakraid, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)")
4980 GAME ( 1999, bbakradu, bbakraid, bbakraid, bbakraid, bbakrada, ROT270, "Eighting", "Battle Bakraid - Unlimited version (Japan) (Tue Jun 8 1999)")
4981