1 #include "../machine/toaplan1.c"
2 #include "../vidhrdw/toaplan1.c"
3
4 /***************************************************************************
5
6 ToaPlan game hardware from 1988-1991
7 ------------------------------------
8 MAME Driver by: Darren Olafson
9 Technical info: Carl-Henrik Sk�rstedt & Magnus Danielsson
10 Driver updates: Quench
11 Video updates : SUZ
12
13
14 Supported games:
15
16 ROM set Toaplan
17 name board No Game name
18 --------------------------------------------------
19 rallybik TP-012 Rally Bike/Dash Yarou
20 truxton TP-013B Truxton/Tatsujin
21 hellfire TP-??? HellFire
22 zerowing TP-015 Zero Wing
23 demonwld TP-016 Demon's World/Horror Story
24 samesame TP-017 Same Same Same! (Japan) [1989]
25 fireshrk TP-017 Fire Shark (World) [1990]
26 outzone TP-018 Out Zone
27 outzonep ?????? Out Zone (Pirate). Note this uses different ROM
28 layout for GFX ROMs. Result is the same though.
29 See ROM load for details.
30 vimana TP-019 Vimana
31 vimana2 TP-019 Vimana (alternate)
32 vimanan TP-019 Vimana (Nova Apparate GMBH & Co license)
33
34 To Do:
35 Add support for HD647180 (Z180) sound CPUs (once their internal
36 ROMS are dumped). These are:
37 Fire Shark
38 Vimana
39
40 ***************************************************************************/
41
42 #include "driver.h"
43 #include "vidhrdw/generic.h"
44
45
46 /**************** Machine stuff ******************/
47 int toaplan1_interrupt(void);
48 WRITE_HANDLER( toaplan1_int_enable_w );
49 READ_HANDLER( toaplan1_shared_r );
50 WRITE_HANDLER( toaplan1_shared_w );
51 READ_HANDLER( toaplan1_unk_r );
52 READ_HANDLER( samesame_port_6_r );
53 READ_HANDLER( vimana_mcu_r );
54 WRITE_HANDLER( vimana_mcu_w );
55 READ_HANDLER( vimana_input_port_5_r );
56
57 READ_HANDLER( demonwld_dsp_r );
58 WRITE_HANDLER( demonwld_dsp_w );
59 WRITE_HANDLER( demonwld_dsp_ctrl_w );
60
61 void toaplan1_init_machine(void);
62
63 WRITE_HANDLER( rallybik_coin_w );
64 WRITE_HANDLER( toaplan1_coin_w );
65
66 unsigned char *toaplan1_sharedram;
67
68
69 /**************** Video stuff ******************/
70 READ_HANDLER( toaplan1_vblank_r );
71 WRITE_HANDLER( toaplan1_flipscreen_w );
72
73 READ_HANDLER( toaplan1_videoram1_r );
74 WRITE_HANDLER( toaplan1_videoram1_w );
75 READ_HANDLER( toaplan1_videoram2_r );
76 WRITE_HANDLER( toaplan1_videoram2_w );
77 READ_HANDLER( rallybik_videoram3_r );
78 READ_HANDLER( toaplan1_videoram3_r );
79 WRITE_HANDLER( toaplan1_videoram3_w );
80 READ_HANDLER( toaplan1_colorram1_r );
81 WRITE_HANDLER( toaplan1_colorram1_w );
82 READ_HANDLER( toaplan1_colorram2_r );
83 WRITE_HANDLER( toaplan1_colorram2_w );
84
85 READ_HANDLER( video_ofs_r );
86 WRITE_HANDLER( video_ofs_w );
87 READ_HANDLER( video_ofs3_r );
88 WRITE_HANDLER( video_ofs3_w );
89 READ_HANDLER( scrollregs_r );
90 WRITE_HANDLER( scrollregs_w );
91 WRITE_HANDLER( offsetregs_w );
92 WRITE_HANDLER( layers_offset_w );
93
94 void toaplan1_eof_callback(void);
95 void rallybik_eof_callback(void);
96 void samesame_eof_callback(void);
97 int toaplan1_vh_start(void);
98 void toaplan1_vh_stop(void);
99 int rallybik_vh_start(void);
100 void rallybik_vh_stop(void);
101 void toaplan1_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
102 void rallybik_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
103
104 extern unsigned char *toaplan1_colorram1;
105 extern unsigned char *toaplan1_colorram2;
106 extern size_t colorram1_size;
107 extern size_t colorram2_size;
108
109
110
111
112 static struct MemoryReadAddress rallybik_readmem[] =
113 {
114 { 0x000000, 0x07ffff, MRA_ROM },
115 { 0x080000, 0x083fff, MRA_BANK1 },
116 { 0x0c0000, 0x0c0fff, MRA_BANK2 }, /* sprite ram data */
117 { 0x100002, 0x100003, video_ofs3_r },
118 { 0x100004, 0x100007, rallybik_videoram3_r }, /* tile layers */
119 { 0x100010, 0x10001f, scrollregs_r },
120 { 0x140000, 0x140001, input_port_0_r },
121 { 0x144000, 0x1447ff, toaplan1_colorram1_r },
122 { 0x146000, 0x1467ff, toaplan1_colorram2_r },
123 { 0x180000, 0x180fff, toaplan1_shared_r },
124 { -1 }
125 };
126 static struct MemoryWriteAddress rallybik_writemem[] =
127 {
128 { 0x000000, 0x07ffff, MWA_ROM },
129 { 0x080000, 0x083fff, MWA_BANK1 },
130 { 0x0c0000, 0x0c0fff, MWA_BANK2, &spriteram, &spriteram_size }, /* sprite ram data */
131 { 0x100002, 0x100003, video_ofs3_w },
132 { 0x100004, 0x100007, toaplan1_videoram3_w }, /* tile layers */
133 { 0x100010, 0x10001f, scrollregs_w },
134 { 0x140000, 0x140001, toaplan1_int_enable_w },
135 { 0x140008, 0x14000f, layers_offset_w },
136 { 0x144000, 0x1447ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
137 { 0x146000, 0x1467ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
138 { 0x180000, 0x180fff, toaplan1_shared_w, &toaplan1_sharedram },
139 { 0x1c0000, 0x1c0003, offsetregs_w },
140 { -1 }
141 };
142
143 static struct MemoryReadAddress truxton_readmem[] =
144 {
145 { 0x000000, 0x07ffff, MRA_ROM },
146 { 0x080000, 0x083fff, MRA_BANK1 },
147 { 0x0c0000, 0x0c0001, input_port_0_r },
148 { 0x0c0002, 0x0c0003, video_ofs_r },
149 { 0x0c0004, 0x0c0005, toaplan1_videoram1_r }, /* sprites info */
150 { 0x0c0006, 0x0c0007, toaplan1_videoram2_r }, /* sprite size ? */
151 { 0x100002, 0x100003, video_ofs3_r },
152 { 0x100004, 0x100007, toaplan1_videoram3_r }, /* tile layers */
153 { 0x100010, 0x10001f, scrollregs_r },
154 { 0x144000, 0x1447ff, toaplan1_colorram1_r },
155 { 0x146000, 0x1467ff, toaplan1_colorram2_r },
156 { 0x180000, 0x180fff, toaplan1_shared_r },
157 { -1 }
158 };
159 static struct MemoryWriteAddress truxton_writemem[] =
160 {
161 { 0x000000, 0x07ffff, MWA_ROM },
162 { 0x080000, 0x083fff, MWA_BANK1 },
163 { 0x0c0002, 0x0c0003, video_ofs_w },
164 { 0x0c0004, 0x0c0005, toaplan1_videoram1_w }, /* sprites info */
165 { 0x0c0006, 0x0c0007, toaplan1_videoram2_w }, /* sprite size ? */
166 { 0x100002, 0x100003, video_ofs3_w },
167 { 0x100004, 0x100007, toaplan1_videoram3_w }, /* tile layers */
168 { 0x100010, 0x10001f, scrollregs_w },
169 { 0x140000, 0x140001, toaplan1_int_enable_w },
170 { 0x140008, 0x14000f, layers_offset_w },
171 { 0x144000, 0x1447ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
172 { 0x146000, 0x1467ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
173 { 0x180000, 0x180fff, toaplan1_shared_w, &toaplan1_sharedram },
174 { 0x1c0000, 0x1c0003, offsetregs_w },
175 { 0x1c0006, 0x1c0007, toaplan1_flipscreen_w },
176 { -1 }
177 };
178
179 static struct MemoryReadAddress hellfire_readmem[] =
180 {
181 { 0x000000, 0x03ffff, MRA_ROM },
182 { 0x040000, 0x047fff, MRA_BANK1 },
183 { 0x084000, 0x0847ff, toaplan1_colorram1_r },
184 { 0x086000, 0x0867ff, toaplan1_colorram2_r },
185 { 0x0c0000, 0x0c0fff, toaplan1_shared_r },
186 { 0x100002, 0x100003, video_ofs3_r },
187 { 0x100004, 0x100007, toaplan1_videoram3_r }, /* tile layers */
188 { 0x100010, 0x10001f, scrollregs_r },
189 { 0x140000, 0x140001, input_port_0_r },
190 { 0x140002, 0x140003, video_ofs_r },
191 { 0x140004, 0x140005, toaplan1_videoram1_r }, /* sprites info */
192 { 0x140006, 0x140007, toaplan1_videoram2_r }, /* sprite size ? */
193 { -1 } /* end of table */
194 };
195 static struct MemoryWriteAddress hellfire_writemem[] =
196 {
197 { 0x000000, 0x03ffff, MWA_ROM },
198 { 0x040000, 0x047fff, MWA_BANK1 },
199 { 0x080002, 0x080003, toaplan1_int_enable_w },
200 { 0x080008, 0x08000f, layers_offset_w },
201 { 0x084000, 0x0847ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
202 { 0x086000, 0x0867ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
203 { 0x0c0000, 0x0c0fff, toaplan1_shared_w, &toaplan1_sharedram },
204 { 0x100002, 0x100003, video_ofs3_w },
205 { 0x100004, 0x100007, toaplan1_videoram3_w }, /* tile layers */
206 { 0x100010, 0x10001f, scrollregs_w },
207 { 0x140002, 0x140003, video_ofs_w },
208 { 0x140004, 0x140005, toaplan1_videoram1_w }, /* sprites info */
209 { 0x140006, 0x140007, toaplan1_videoram2_w }, /* sprite size ? */
210 { 0x180000, 0x180003, offsetregs_w },
211 { 0x180006, 0x180007, toaplan1_flipscreen_w },
212 { -1 } /* end of table */
213 };
214
215 static struct MemoryReadAddress zerowing_readmem[] =
216 {
217 { 0x000000, 0x07ffff, MRA_ROM },
218 { 0x080000, 0x087fff, MRA_BANK1 },
219 { 0x400000, 0x400005, toaplan1_unk_r },
220 { 0x404000, 0x4047ff, toaplan1_colorram1_r },
221 { 0x406000, 0x4067ff, toaplan1_colorram2_r },
222 { 0x440000, 0x440fff, toaplan1_shared_r },
223 { 0x480002, 0x480003, video_ofs3_r },
224 { 0x480004, 0x480007, toaplan1_videoram3_r }, /* tile layers */
225 { 0x480010, 0x48001f, scrollregs_r },
226 { 0x4c0000, 0x4c0001, input_port_0_r },
227 { 0x4c0002, 0x4c0003, video_ofs_r },
228 { 0x4c0004, 0x4c0005, toaplan1_videoram1_r }, /* sprites info */
229 { 0x4c0006, 0x4c0007, toaplan1_videoram2_r }, /* sprite size ? */
230 { -1 } /* end of table */
231 };
232 static struct MemoryWriteAddress zerowing_writemem[] =
233 {
234 { 0x000000, 0x07ffff, MWA_ROM },
235 { 0x080000, 0x087fff, MWA_BANK1 },
236 { 0x0c0000, 0x0c0003, offsetregs_w },
237 { 0x0c0006, 0x0c0007, toaplan1_flipscreen_w },
238 { 0x400002, 0x400003, toaplan1_int_enable_w },
239 { 0x400008, 0x40000f, layers_offset_w },
240 { 0x404000, 0x4047ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
241 { 0x406000, 0x4067ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
242 { 0x440000, 0x440fff, toaplan1_shared_w, &toaplan1_sharedram },
243 { 0x480002, 0x480003, video_ofs3_w },
244 { 0x480004, 0x480007, toaplan1_videoram3_w }, /* tile layers */
245 { 0x480010, 0x48001f, scrollregs_w },
246 { 0x4c0002, 0x4c0003, video_ofs_w },
247 { 0x4c0004, 0x4c0005, toaplan1_videoram1_w }, /* sprites info */
248 { 0x4c0006, 0x4c0007, toaplan1_videoram2_w }, /* sprite size ? */
249 { -1 } /* end of table */
250 };
251
252 static struct MemoryReadAddress demonwld_readmem[] =
253 {
254 { 0x000000, 0x03ffff, MRA_ROM },
255 { 0x400000, 0x400001, input_port_0_r },
256 { 0x404000, 0x4047ff, toaplan1_colorram1_r },
257 { 0x406000, 0x4067ff, toaplan1_colorram2_r },
258 { 0x600000, 0x600fff, toaplan1_shared_r },
259 { 0x800002, 0x800003, video_ofs3_r },
260 { 0x800004, 0x800007, toaplan1_videoram3_r }, /* tile layers */
261 { 0x800010, 0x80001f, scrollregs_r },
262 { 0xa00000, 0xa00001, input_port_0_r },
263 { 0xa00002, 0xa00003, video_ofs_r },
264 { 0xa00004, 0xa00005, toaplan1_videoram1_r }, /* sprites info */
265 { 0xa00006, 0xa00007, toaplan1_videoram2_r }, /* sprite size ? */
266 { 0xc00000, 0xc03fff, MRA_BANK1},
267 { -1 }
268 };
269 static struct MemoryWriteAddress demonwld_writemem[] =
270 {
271 { 0x000000, 0x03ffff, MWA_ROM },
272 { 0x340006, 0x340007, toaplan1_flipscreen_w },
273 { 0x404000, 0x4047ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
274 { 0x406000, 0x4067ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
275 { 0x600000, 0x600fff, toaplan1_shared_w, &toaplan1_sharedram },
276 { 0x800002, 0x800003, video_ofs3_w },
277 { 0x800004, 0x800007, toaplan1_videoram3_w }, /* tile layers */
278 { 0x800010, 0x80001f, scrollregs_w },
279 { 0x400000, 0x400001, toaplan1_int_enable_w },
280 { 0x400008, 0x40000f, layers_offset_w },
281 { 0xa00002, 0xa00003, video_ofs_w },
282 { 0xa00004, 0xa00005, toaplan1_videoram1_w }, /* sprites info */
283 { 0xa00006, 0xa00007, toaplan1_videoram2_w }, /* sprite size ? */
284 { 0xc00000, 0xc03fff, MWA_BANK1},
285 { 0xe00000, 0xe00003, offsetregs_w },
286 { 0xe0000a, 0xe0000b, demonwld_dsp_ctrl_w }, /* DSP Comms control */
287 { -1 }
288 };
289
290 static struct MemoryReadAddress samesame_readmem[] =
291 {
292 { 0x000000, 0x00ffff, MRA_ROM },
293 { 0x040000, 0x07ffff, MRA_ROM },
294 { 0x0c0000, 0x0c3fff, MRA_BANK1 },
295 { 0x100000, 0x100001, toaplan1_vblank_r },
296 { 0x104000, 0x1047ff, toaplan1_colorram1_r },
297 { 0x106000, 0x1067ff, toaplan1_colorram2_r },
298 { 0x140000, 0x140001, input_port_1_r },
299 { 0x140002, 0x140003, input_port_2_r },
300 { 0x140004, 0x140005, input_port_3_r },
301 { 0x140006, 0x140007, input_port_4_r },
302 { 0x140008, 0x140009, input_port_5_r },
303 { 0x14000a, 0x14000b, samesame_port_6_r }, /* Territory, and MCU ready */
304 { 0x180002, 0x180003, video_ofs3_r },
305 { 0x180004, 0x180007, toaplan1_videoram3_r }, /* tile layers */
306 { 0x180010, 0x18001f, scrollregs_r },
307 { 0x1c0000, 0x1c0001, input_port_0_r },
308 { 0x1c0002, 0x1c0003, video_ofs_r },
309 { 0x1c0004, 0x1c0005, toaplan1_videoram1_r }, /* sprites info */
310 { 0x1c0006, 0x1c0007, toaplan1_videoram2_r }, /* sprite size ? */
311 { -1 } /* end of table */
312 };
313 static struct MemoryWriteAddress samesame_writemem[] =
314 {
315 { 0x000000, 0x00ffff, MWA_ROM },
316 { 0x040000, 0x07ffff, MWA_ROM },
317 { 0x080000, 0x080003, offsetregs_w },
318 { 0x080006, 0x080007, toaplan1_flipscreen_w },
319 { 0x0c0000, 0x0c3fff, MWA_BANK1 }, /* Frame done at $c1ada */
320 /* { 0x100000, 0x100001, ??? }, disable palette refresh ? */
321 { 0x100002, 0x100003, toaplan1_int_enable_w },
322 { 0x100008, 0x10000f, layers_offset_w },
323 { 0x104000, 0x1047ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
324 { 0x106000, 0x1067ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
325 { 0x14000c, 0x14000d, toaplan1_coin_w }, /* Coin counter/lockout */
326 // { 0x14000e, 0x14000f, samesame_mcu_w }, /* Commands sent to HD647180 */
327 { 0x180002, 0x180003, video_ofs3_w },
328 { 0x180004, 0x180007, toaplan1_videoram3_w }, /* tile layers */
329 { 0x180010, 0x18001f, scrollregs_w },
330 /* { 0x1c0000, 0x1c0001, ??? }, disable sprite refresh ? */
331 { 0x1c0002, 0x1c0003, video_ofs_w },
332 { 0x1c0004, 0x1c0005, toaplan1_videoram1_w }, /* sprites info */
333 { 0x1c0006, 0x1c0007, toaplan1_videoram2_w }, /* sprite size ? */
334 { -1 } /* end of table */
335 };
336
337 static struct MemoryReadAddress outzone_readmem[] =
338 {
339 { 0x000000, 0x07ffff, MRA_ROM },
340 { 0x100000, 0x100001, input_port_0_r },
341 { 0x100002, 0x100003, video_ofs_r },
342 { 0x100004, 0x100005, toaplan1_videoram1_r }, /* sprites info */
343 { 0x100006, 0x100007, toaplan1_videoram2_r },
344 { 0x140000, 0x140fff, toaplan1_shared_r },
345 { 0x200002, 0x200003, video_ofs3_r },
346 { 0x200004, 0x200007, toaplan1_videoram3_r }, /* tile layers */
347 { 0x200010, 0x20001f, scrollregs_r },
348 { 0x240000, 0x243fff, MRA_BANK1 },
349 { 0x300000, 0x300001, toaplan1_vblank_r },
350 { 0x304000, 0x3047ff, toaplan1_colorram1_r },
351 { 0x306000, 0x3067ff, toaplan1_colorram2_r },
352 { -1 }
353 };
354 static struct MemoryWriteAddress outzone_writemem[] =
355 {
356 { 0x000000, 0x07ffff, MWA_ROM },
357 { 0x100002, 0x100003, video_ofs_w },
358 { 0x100004, 0x100005, toaplan1_videoram1_w }, /* sprites info */
359 { 0x100006, 0x100007, toaplan1_videoram2_w },
360 { 0x140000, 0x140fff, toaplan1_shared_w, &toaplan1_sharedram },
361 { 0x200002, 0x200003, video_ofs3_w },
362 { 0x200004, 0x200007, toaplan1_videoram3_w }, /* tile layers */
363 { 0x200010, 0x20001f, scrollregs_w },
364 { 0x240000, 0x243fff, MWA_BANK1 },
365 { 0x300000, 0x300001, toaplan1_int_enable_w },
366 { 0x300008, 0x30000f, layers_offset_w },
367 { 0x304000, 0x3047ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
368 { 0x306000, 0x3067ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
369 { 0x340000, 0x340003, offsetregs_w },
370 { 0x340006, 0x340007, toaplan1_flipscreen_w },
371 { -1 }
372 };
373
374 static struct MemoryReadAddress vimana_readmem[] =
375 {
376 { 0x000000, 0x03ffff, MRA_ROM },
377 { 0x0c0000, 0x0c0001, input_port_0_r },
378 { 0x0c0002, 0x0c0003, video_ofs_r },
379 { 0x0c0004, 0x0c0005, toaplan1_videoram1_r }, /* sprites info */
380 { 0x0c0006, 0x0c0007, toaplan1_videoram2_r }, /* sprite size ? */
381 { 0x400000, 0x400001, toaplan1_vblank_r },
382 { 0x404000, 0x4047ff, toaplan1_colorram1_r },
383 { 0x406000, 0x4067ff, toaplan1_colorram2_r },
384 { 0x440000, 0x440005, vimana_mcu_r },
385 { 0x440006, 0x440007, input_port_3_r },
386 { 0x440008, 0x440009, vimana_input_port_5_r },
387 { 0x44000a, 0x44000b, input_port_1_r },
388 { 0x44000c, 0x44000d, input_port_2_r },
389 { 0x44000e, 0x44000f, input_port_4_r },
390 { 0x440010, 0x440011, input_port_6_r },
391 { 0x480000, 0x487fff, MRA_BANK1 },
392 { 0x4c0000, 0x4c0001, toaplan1_unk_r },
393 { 0x4c0002, 0x4c0003, video_ofs3_r },
394 { 0x4c0004, 0x4c0007, toaplan1_videoram3_r }, /* tile layers */
395 { 0x4c0010, 0x4c001f, scrollregs_r },
396 { -1 } /* end of table */
397 };
398 static struct MemoryWriteAddress vimana_writemem[] =
399 {
400 { 0x000000, 0x03ffff, MWA_ROM },
401 { 0x080000, 0x080003, offsetregs_w },
402 { 0x080006, 0x080007, toaplan1_flipscreen_w },
403 { 0x0c0002, 0x0c0003, video_ofs_w },
404 { 0x0c0004, 0x0c0005, toaplan1_videoram1_w }, /* sprites info */
405 { 0x0c0006, 0x0c0007, toaplan1_videoram2_w }, /* sprite size ? */
406 { 0x400002, 0x400003, toaplan1_int_enable_w }, /* IRQACK? */
407 { 0x400008, 0x40000f, layers_offset_w },
408 { 0x404000, 0x4047ff, toaplan1_colorram1_w, &toaplan1_colorram1, &colorram1_size },
409 { 0x406000, 0x4067ff, toaplan1_colorram2_w, &toaplan1_colorram2, &colorram2_size },
410 { 0x440000, 0x440005, vimana_mcu_w },
411 { 0x480000, 0x487fff, MWA_BANK1 },
412 { 0x4c0002, 0x4c0003, video_ofs3_w },
413 { 0x4c0004, 0x4c0007, toaplan1_videoram3_w }, /* tile layers */
414 { 0x4c0010, 0x4c001f, scrollregs_w },
415 { -1 } /* end of table */
416 };
417
418
419
420 static struct MemoryReadAddress sound_readmem[] =
421 {
422 { 0x0000, 0x7fff, MRA_ROM },
423 { 0x8000, 0xffff, MRA_RAM },
424 { -1 } /* end of table */
425 };
426 static struct MemoryWriteAddress sound_writemem[] =
427 {
428 { 0x0000, 0x7fff, MWA_ROM },
429 { 0x8000, 0xffff, MWA_RAM, &toaplan1_sharedram },
430 { -1 } /* end of table */
431 };
432
433
434 static struct IOReadPort truxton_sound_readport[] =
435 {
436 { 0x00, 0x00, input_port_1_r }, /* Player 1 */
437 { 0x10, 0x10, input_port_2_r }, /* Player 2 */
438 { 0x20, 0x20, input_port_5_r }, /* Coin/Start inputs */
439 { 0x40, 0x40, input_port_3_r }, /* DSW1 */
440 { 0x50, 0x50, input_port_4_r }, /* DSW2 */
441 { 0x60, 0x60, YM3812_status_port_0_r },
442 { 0x70, 0x70, input_port_6_r }, /* Territory Jumper Block for Truxton */
443 { -1 } /* end of table */
444 };
445 static struct IOWritePort truxton_sound_writeport[] =
446 {
447 { 0x30, 0x30, toaplan1_coin_w }, /* Coin counter/lockout */
448 { 0x60, 0x60, YM3812_control_port_0_w },
449 { 0x61, 0x61, YM3812_write_port_0_w },
450 { -1 } /* end of table */
451 };
452 static struct IOWritePort rallybik_sound_writeport[] =
453 {
454 { 0x30, 0x30, rallybik_coin_w }, /* Coin counter/lockout */
455 { 0x60, 0x60, YM3812_control_port_0_w },
456 { 0x61, 0x61, YM3812_write_port_0_w },
457 { -1 } /* end of table */
458 };
459
460 static struct IOReadPort hellfire_sound_readport[] =
461 {
462 { 0x00, 0x00, input_port_3_r }, /* DSW1 */
463 { 0x10, 0x10, input_port_4_r }, /* DSW2 */
464 { 0x20, 0x20, input_port_6_r }, /* Territory Jumper Block */
465 { 0x40, 0x40, input_port_1_r }, /* Player 1 */
466 { 0x50, 0x50, input_port_2_r }, /* Player 2 */
467 { 0x60, 0x60, input_port_5_r }, /* Coin/Start inputs */
468 { 0x70, 0x70, YM3812_status_port_0_r },
469 { -1 } /* end of table */
470 };
471 static struct IOWritePort hellfire_sound_writeport[] =
472 {
473 { 0x30, 0x30, toaplan1_coin_w }, /* Coin counter/lockout */
474 { 0x70, 0x70, YM3812_control_port_0_w },
475 { 0x71, 0x71, YM3812_write_port_0_w },
476 { -1 } /* end of table */
477 };
478
479 static struct IOReadPort zerowing_sound_readport[] =
480 {
481 { 0x00, 0x00, input_port_1_r }, /* Player 1 */
482 { 0x08, 0x08, input_port_2_r }, /* Player 2 */
483 { 0x20, 0x20, input_port_3_r }, /* DSW1 */
484 { 0x28, 0x28, input_port_4_r }, /* DSW2 */
485 { 0x80, 0x80, input_port_5_r }, /* Coin/Start inputs */
486 { 0x88, 0x88, input_port_6_r }, /* Territory Jumper Block */
487 { 0xa8, 0xa8, YM3812_status_port_0_r },
488 { -1 } /* end of table */
489 };
490 static struct IOWritePort zerowing_sound_writeport[] =
491 {
492 { 0xa0, 0xa0, toaplan1_coin_w }, /* Coin counter/lockout */
493 { 0xa8, 0xa8, YM3812_control_port_0_w },
494 { 0xa9, 0xa9, YM3812_write_port_0_w },
495 { -1 } /* end of table */
496 };
497
498 static struct IOReadPort demonwld_sound_readport[] =
499 {
500 { 0x00, 0x00, YM3812_status_port_0_r },
501 { 0x20, 0x20, input_port_6_r },
502 { 0x60, 0x60, input_port_5_r },
503 { 0x80, 0x80, input_port_1_r },
504 { 0xa0, 0xa0, input_port_4_r },
505 { 0xc0, 0xc0, input_port_2_r },
506 { 0xe0, 0xe0, input_port_3_r },
507 { -1 } /* end of table */
508 };
509 static struct IOWritePort demonwld_sound_writeport[] =
510 {
511 { 0x00, 0x00, YM3812_control_port_0_w },
512 { 0x01, 0x01, YM3812_write_port_0_w },
513 { 0x40, 0x40, toaplan1_coin_w }, /* Coin counter/lockout */
514 { -1 } /* end of table */
515 };
516
517 static struct IOReadPort outzone_sound_readport[] =
518 {
519 { 0x08, 0x08, input_port_3_r },
520 { 0x0c, 0x0c, input_port_4_r },
521 { 0x10, 0x10, input_port_5_r },
522 { 0x14, 0x14, input_port_1_r },
523 { 0x18, 0x18, input_port_2_r },
524 { 0x1c, 0x1c, input_port_6_r },
525 { 0x00, 0x00, YM3812_status_port_0_r },
526 { -1 } /* end of table */
527 };
528 static struct IOWritePort outzone_sound_writeport[] =
529 {
530 { 0x00, 0x00, YM3812_control_port_0_w },
531 { 0x01, 0x01, YM3812_write_port_0_w },
532 { 0x04, 0x04, toaplan1_coin_w }, /* Coin counter/lockout */
533 { -1 } /* end of table */
534 };
535
536 static struct MemoryReadAddress DSP_readmem[] =
537 {
538 { 0x0000, 0x0fff, MRA_ROM }, /* 0x800 words */
539 { 0x8000, 0x811f, MRA_RAM }, /* The real DSP has this at address 0 */
540 /* View this at 4000h in the debugger */
541 { -1 } /* end of table */
542 };
543
544 static struct MemoryWriteAddress DSP_writemem[] =
545 {
546 { 0x0000, 0x0fff, MWA_ROM }, /* 0x800 words */
547 { 0x8000, 0x811f, MWA_RAM }, /* The real DSP has this at address 0 */
548 /* View this at 4000h in the debugger */
549 { -1 } /* end of table */
550 };
551
552 static struct IOReadPort DSP_readport[] =
553 {
554 { 0x01, 0x01, demonwld_dsp_r },
555 { -1 } /* end of table */
556 };
557
558 static struct IOWritePort DSP_writeport[] =
559 {
560 { 0x00, 0x03, demonwld_dsp_w },
561 { -1 } /* end of table */
562 };
563
564
565 /*****************************************************************************
566 Input Port definitions
567 *****************************************************************************/
568
569
570 #define TOAPLAN1_PLAYER_INPUT( player, button3 ) \
571 PORT_START \
572 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | player ) \
573 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | player ) \
574 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | player ) \
575 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | player ) \
576 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | player ) \
577 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | player ) \
578 PORT_BIT( 0x40, IP_ACTIVE_HIGH, button3 | player ) \
579 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
580
581 #define TOAPLAN1_SYSTEM_INPUTS \
582 PORT_START \
583 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 ) \
584 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) \
585 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \
586 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) \
587 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) \
588 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) \
589 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) \
590 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
591
592
593
594 INPUT_PORTS_START( rallybik )
595 PORT_START /* VBlank */
596 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
597 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
598
599 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
600
601 TOAPLAN1_PLAYER_INPUT( IPF_COCKTAIL, IPT_UNKNOWN )
602
603 PORT_START /* DSW A */
604 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
605 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
606 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
607 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
608 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
609 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
610 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
611 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
612 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
613 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
614 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
615 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
616 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
617 PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
618 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
619 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
620 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
621 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
622 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
623 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
624
625 PORT_START /* DSW B */
626 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
627 PORT_DIPSETTING( 0x01, "Easy" )
628 PORT_DIPSETTING( 0x00, "Medium" )
629 PORT_DIPSETTING( 0x02, "Hard" )
630 PORT_DIPSETTING( 0x03, "Hardest" )
631 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
632 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
633 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
634 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
635 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
636 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
637 PORT_DIPNAME( 0x30, 0x20, "Territory/Copyright" )
638 PORT_DIPSETTING( 0x20, "World/Taito Corp Japan" )
639 PORT_DIPSETTING( 0x10, "USA/Taito America" )
640 PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
641 PORT_DIPSETTING( 0x30, "USA/Taito America (Romstar)" )
642 PORT_DIPNAME( 0x40, 0x00, "Dip Switch Display" )
643 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
644 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
645 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
646 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
647 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
648
649 TOAPLAN1_SYSTEM_INPUTS
650
651 INPUT_PORTS_END
652
653 INPUT_PORTS_START( truxton )
654 PORT_START /* VBlank */
655 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
656 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
657
658 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
659
660 TOAPLAN1_PLAYER_INPUT( IPF_COCKTAIL, IPT_UNKNOWN )
661
662 PORT_START /* DSW A */
663 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
664 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
665 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
666 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
667 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
668 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
669 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
670 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
671 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
672 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
673 /* credits per coin options change, depending on the territory setting */
674 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
675 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
676 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
677 PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
678 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
679 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
680 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
681 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
682 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
683 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
684 /* The following are coin settings for Japan
685 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
686 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
687 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
688 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
689 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
690 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
691 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
692 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
693 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
694 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
695 */
696
697 PORT_START /* DSW B */
698 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
699 PORT_DIPSETTING( 0x01, "Easy" )
700 PORT_DIPSETTING( 0x00, "Medium" )
701 PORT_DIPSETTING( 0x02, "Hard" )
702 PORT_DIPSETTING( 0x03, "Hardest" )
703 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
704 PORT_DIPSETTING( 0x04, "50K, every 150K" )
705 PORT_DIPSETTING( 0x00, "70K, every 200K" )
706 PORT_DIPSETTING( 0x08, "100K only" )
707 PORT_DIPSETTING( 0x0c, "None" )
708 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
709 PORT_DIPSETTING( 0x30, "2" )
710 PORT_DIPSETTING( 0x00, "3" )
711 PORT_DIPSETTING( 0x20, "4" )
712 PORT_DIPSETTING( 0x10, "5" )
713 PORT_DIPNAME( 0x40, 0x00, "Show Dip Switches" )
714 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
715 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
716 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
717 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
718 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
719
720 TOAPLAN1_SYSTEM_INPUTS
721
722 PORT_START /* Territory Jumper Block */
723 PORT_DIPNAME( 0x07, 0x02, "Territory/Copyright" )
724 PORT_DIPSETTING( 0x02, "World/Taito Corp" )
725 PORT_DIPSETTING( 0x06, "World/Taito America" )
726 PORT_DIPSETTING( 0x04, "US/Taito America" )
727 PORT_DIPSETTING( 0x01, "US/Romstar" )
728 PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
729 // PORT_DIPSETTING( 0x05, "Same as 0x04" )
730 // PORT_DIPSETTING( 0x03, "Same as 0x02" )
731 // PORT_DIPSETTING( 0x07, "Same as 0x06" )
732 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
733 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
734 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
735 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
736 INPUT_PORTS_END
737
738 INPUT_PORTS_START( hellfire )
739 PORT_START /* VBlank */
740 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
741 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
742
743 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
744
745 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN )
746
747 PORT_START /* DSW A */
748 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
749 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
750 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
751 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
752 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
753 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
754 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
755 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
756 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
757 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
758 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
759 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
760 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
761 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
762 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
763 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
764 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
765 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
766 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
767 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
768
769 PORT_START /* DSWB */
770 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
771 PORT_DIPSETTING( 0x01, "Easy" )
772 PORT_DIPSETTING( 0x00, "Medium" )
773 PORT_DIPSETTING( 0x02, "Hard" )
774 PORT_DIPSETTING( 0x03, "Hardest" )
775 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
776 PORT_DIPSETTING( 0x00, "70K, every 200K" )
777 PORT_DIPSETTING( 0x04, "100K, every 250K" )
778 PORT_DIPSETTING( 0x08, "100K" )
779 PORT_DIPSETTING( 0x0c, "200K" )
780 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
781 PORT_DIPSETTING( 0x30, "2" )
782 PORT_DIPSETTING( 0x00, "3" )
783 PORT_DIPSETTING( 0x20, "4" )
784 PORT_DIPSETTING( 0x10, "5" )
785 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
786 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
787 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
788 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
789 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
790 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
791
792 TOAPLAN1_SYSTEM_INPUTS
793
794 PORT_START /* Territory Jumper block */
795 PORT_DIPNAME( 0x03, 0x02, "Territory" )
796 PORT_DIPSETTING( 0x02, "Europe" )
797 // PORT_DIPSETTING( 0x03, "Europe" )
798 PORT_DIPSETTING( 0x01, "US" )
799 PORT_DIPSETTING( 0x00, "Japan" )
800 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
801 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
802 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
803 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
804 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
805 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
806 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
807 INPUT_PORTS_END
808
809 INPUT_PORTS_START( zerowing )
810 PORT_START /* VBlank */
811 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
812 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
813
814 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
815
816 TOAPLAN1_PLAYER_INPUT( IPF_COCKTAIL, IPT_UNKNOWN )
817
818 PORT_START /* DSW A */
819 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
820 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
821 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
822 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
823 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
824 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
825 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
826 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
827 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
828 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
829 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
830 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
831 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
832 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
833 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
834 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
835 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
836 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
837 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
838 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
839
840 PORT_START /* DSW B */
841 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
842 PORT_DIPSETTING( 0x01, "Easy" )
843 PORT_DIPSETTING( 0x00, "Medium" )
844 PORT_DIPSETTING( 0x02, "Hard" )
845 PORT_DIPSETTING( 0x03, "Hardest" )
846 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
847 PORT_DIPSETTING( 0x00, "200K, every 500K" )
848 PORT_DIPSETTING( 0x04, "500K, every 1M" )
849 PORT_DIPSETTING( 0x08, "500K" )
850 PORT_DIPSETTING( 0x0c, "None" )
851 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
852 PORT_DIPSETTING( 0x30, "2" )
853 PORT_DIPSETTING( 0x00, "3" )
854 PORT_DIPSETTING( 0x20, "4" )
855 PORT_DIPSETTING( 0x10, "5" )
856 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
857 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
858 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
859 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
860 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
861 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
862
863 TOAPLAN1_SYSTEM_INPUTS
864
865 PORT_START /* Territory Jumper block */
866 PORT_DIPNAME( 0x03, 0x02, "Territory" )
867 PORT_DIPSETTING( 0x02, "Europe" )
868 // PORT_DIPSETTING( 0x03, "Europe" )
869 PORT_DIPSETTING( 0x01, "US" )
870 PORT_DIPSETTING( 0x00, "Japan" )
871 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
872 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
873 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
874 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
875 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
876 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
877 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
878 INPUT_PORTS_END
879
880 INPUT_PORTS_START( demonwld )
881 PORT_START /* VBlank */
882 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
883 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
884
885 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3 )
886
887 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3 )
888
889 PORT_START /* DSW A */
890 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
891 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
892 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
893 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
894 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
895 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
896 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
897 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
898 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
899 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
900 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
901 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
902 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
903 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
904 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
905 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
906 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
907 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
908 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
909 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
910
911 PORT_START /* DSW B */
912 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
913 PORT_DIPSETTING( 0x01, "Easy" )
914 PORT_DIPSETTING( 0x00, "Medium" )
915 PORT_DIPSETTING( 0x02, "Hard" )
916 PORT_DIPSETTING( 0x03, "Hardest" )
917 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
918 PORT_DIPSETTING( 0x00, "30K, every 100K" )
919 PORT_DIPSETTING( 0x04, "50K and 100K" )
920 PORT_DIPSETTING( 0x08, "100K only" )
921 PORT_DIPSETTING( 0x0c, "None" )
922 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
923 PORT_DIPSETTING( 0x30, "1" )
924 PORT_DIPSETTING( 0x20, "2" )
925 PORT_DIPSETTING( 0x00, "3" )
926 PORT_DIPSETTING( 0x10, "5" )
927 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
928 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
929 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
930 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
931 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
932 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
933
934 TOAPLAN1_SYSTEM_INPUTS
935
936 PORT_START /* Territory Jumper Block */
937 PORT_DIPNAME( 0x03, 0x02, "Territory/Copyright" )
938 PORT_DIPSETTING( 0x02, "World/Taito Japan" )
939 PORT_DIPSETTING( 0x03, "US/Toaplan" )
940 PORT_DIPSETTING( 0x01, "US/Taito America" )
941 PORT_DIPSETTING( 0x00, "Japan/Taito Corp" )
942 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
943 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
944 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
945 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
946 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
947 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
948 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
949 INPUT_PORTS_END
950
951 INPUT_PORTS_START( samesame )
952 PORT_START /* VBlank */
953 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
954 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
955
956 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
957
958 TOAPLAN1_PLAYER_INPUT( IPF_COCKTAIL, IPT_UNKNOWN )
959
960 PORT_START /* DSW A */
961 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
962 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
963 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
964 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
965 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
966 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
967 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
968 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
969 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
970 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
971 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
972 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
973 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
974 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
975 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
976 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
977 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
978 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
979 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
980 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
981 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
982 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
983 /* settings listed in service mode, but not actually used ???
984 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
985 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
986 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
987 PORT_DIPSETTING( 0x30, DEF_STR( 2C_3C ) )
988 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
989 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
990 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
991 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
992 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) )
993 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
994 */
995
996 PORT_START /* DSW B */
997 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
998 PORT_DIPSETTING( 0x01, "Easy" )
999 PORT_DIPSETTING( 0x00, "Medium" )
1000 PORT_DIPSETTING( 0x02, "Hard" )
1001 PORT_DIPSETTING( 0x03, "Hardest" )
1002 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1003 PORT_DIPSETTING( 0x04, "50K, every 150K" )
1004 PORT_DIPSETTING( 0x00, "70K, every 200K" )
1005 PORT_DIPSETTING( 0x08, "100K" )
1006 PORT_DIPSETTING( 0x0c, "None" )
1007 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
1008 PORT_DIPSETTING( 0x30, "2" )
1009 PORT_DIPSETTING( 0x00, "3" )
1010 PORT_DIPSETTING( 0x20, "4" )
1011 PORT_DIPSETTING( 0x10, "5" )
1012 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1013 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1014 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1015 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
1016 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
1017 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1018
1019 TOAPLAN1_SYSTEM_INPUTS
1020
1021 PORT_START /* Territory Jumper Block */
1022 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
1023 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1024 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1025 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
1026 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1027 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1028 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
1029 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1030 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
1031 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
1032 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1033 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1034 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1035 INPUT_PORTS_END
1036
1037 INPUT_PORTS_START( fireshrk )
1038 PORT_START /* VBlank */
1039 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
1040 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1041
1042 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_UNKNOWN )
1043
1044 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_UNKNOWN )
1045
1046 PORT_START /* DSW A */
1047 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
1048 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1049 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1050 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
1051 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1052 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1053 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
1054 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1055 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1056 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1057 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
1058 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
1059 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
1060 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
1061 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1062 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
1063 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
1064 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
1065 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
1066 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
1067
1068 PORT_START /* DSW B */
1069 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
1070 PORT_DIPSETTING( 0x01, "Easy" )
1071 PORT_DIPSETTING( 0x00, "Medium" )
1072 PORT_DIPSETTING( 0x02, "Hard" )
1073 PORT_DIPSETTING( 0x03, "Hardest" )
1074 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1075 PORT_DIPSETTING( 0x04, "50K, every 150K" )
1076 PORT_DIPSETTING( 0x00, "70K, every 200K" )
1077 PORT_DIPSETTING( 0x08, "100K" )
1078 PORT_DIPSETTING( 0x0c, "None" )
1079 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
1080 PORT_DIPSETTING( 0x30, "2" )
1081 PORT_DIPSETTING( 0x00, "3" )
1082 PORT_DIPSETTING( 0x20, "4" )
1083 PORT_DIPSETTING( 0x10, "5" )
1084 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1085 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1086 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1087 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
1088 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1089 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
1090
1091 TOAPLAN1_SYSTEM_INPUTS
1092
1093 PORT_START /* Territory Jumper Block */
1094 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
1095 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1096 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1097 PORT_DIPNAME( 0x06, 0x02, "Territory" )
1098 PORT_DIPSETTING( 0x02, "Europe" )
1099 PORT_DIPSETTING( 0x04, "USA" )
1100 PORT_DIPSETTING( 0x00, "USA (Romstar)" )
1101 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
1102 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1103 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1104 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1105 INPUT_PORTS_END
1106
1107 INPUT_PORTS_START( outzone )
1108 PORT_START /* VBlank */
1109 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
1110 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1111
1112 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3 )
1113
1114 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3 )
1115
1116 PORT_START /* DSW A */
1117 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
1118 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1119 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1120 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
1121 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1122 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1123 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
1124 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1125 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1126 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1127 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
1128 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
1129 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
1130 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
1131 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1132 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
1133 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
1134 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
1135 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
1136 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
1137
1138 PORT_START /* DSW B */
1139 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
1140 PORT_DIPSETTING( 0x01, "Easy" )
1141 PORT_DIPSETTING( 0x00, "Medium" )
1142 PORT_DIPSETTING( 0x02, "Hard" )
1143 PORT_DIPSETTING( 0x03, "Hardest" )
1144 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1145 PORT_DIPSETTING( 0x00, "Every 300K" )
1146 PORT_DIPSETTING( 0x04, "200K and 500K" )
1147 PORT_DIPSETTING( 0x08, "300K only" )
1148 PORT_DIPSETTING( 0x0c, "None" )
1149 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
1150 PORT_DIPSETTING( 0x30, "1" )
1151 PORT_DIPSETTING( 0x20, "2" )
1152 PORT_DIPSETTING( 0x00, "3" )
1153 PORT_DIPSETTING( 0x10, "5" )
1154 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", 0 ,0 )
1155 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1156 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1157 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
1158 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1159 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
1160
1161 TOAPLAN1_SYSTEM_INPUTS
1162
1163 PORT_START /* Territory Jumper Block */
1164 PORT_DIPNAME( 0x07, 0x02, "Territory" )
1165 PORT_DIPSETTING( 0x02, "Europe" )
1166 PORT_DIPSETTING( 0x01, "US" )
1167 PORT_DIPSETTING( 0x00, "Japan" )
1168 PORT_DIPSETTING( 0x03, "Hong Kong" )
1169 PORT_DIPSETTING( 0x04, "Korea" )
1170 PORT_DIPSETTING( 0x05, "Taiwan" )
1171 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
1172 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1173 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1174 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1175 INPUT_PORTS_END
1176
1177 INPUT_PORTS_START( vimana )
1178 PORT_START /* VBlank */
1179 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
1180 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1181
1182 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3 )
1183
1184 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3 )
1185
1186 PORT_START /* DSW A */
1187 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
1188 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1189 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1190 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
1191 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1192 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1193 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
1194 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1195 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1196 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1197 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
1198 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
1199 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
1200 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
1201 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1202 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
1203 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
1204 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
1205 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
1206 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
1207
1208 PORT_START /* DSW B */
1209 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
1210 PORT_DIPSETTING( 0x01, "Easy" )
1211 PORT_DIPSETTING( 0x00, "Medium" )
1212 PORT_DIPSETTING( 0x02, "Hard" )
1213 PORT_DIPSETTING( 0x03, "Hardest" )
1214 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1215 PORT_DIPSETTING( 0x00, "70K and 200K" )
1216 PORT_DIPSETTING( 0x04, "100K and 250K" )
1217 PORT_DIPSETTING( 0x08, "100K" )
1218 PORT_DIPSETTING( 0x0c, "200K" )
1219 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
1220 PORT_DIPSETTING( 0x30, "2" )
1221 PORT_DIPSETTING( 0x00, "3" )
1222 PORT_DIPSETTING( 0x20, "4" )
1223 PORT_DIPSETTING( 0x10, "5" )
1224 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1225 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1226 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1227 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
1228 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
1229 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1230
1231 TOAPLAN1_SYSTEM_INPUTS
1232
1233 PORT_START /* Territory Jumper Block */
1234 PORT_DIPNAME( 0x0f, 0x02, "Territory" )
1235 PORT_DIPSETTING( 0x02, "Europe" )
1236 PORT_DIPSETTING( 0x01, "US" )
1237 PORT_DIPSETTING( 0x00, "Japan" )
1238 PORT_DIPSETTING( 0x03, "Hong Kong" )
1239 PORT_DIPSETTING( 0x04, "Korea" )
1240 PORT_DIPSETTING( 0x05, "Taiwan" )
1241 // PORT_DIPSETTING( 0x06, "Taiwan" )
1242 // PORT_DIPSETTING( 0x07, "US" )
1243 // PORT_DIPSETTING( 0x08, "Hong Kong" )
1244 // PORT_DIPSETTING( 0x09, DEF_STR( Unused ) )
1245 // PORT_DIPSETTING( 0x0a, DEF_STR( Unused ) )
1246 // PORT_DIPSETTING( 0x0b, DEF_STR( Unused ) )
1247 // PORT_DIPSETTING( 0x0c, DEF_STR( Unused ) )
1248 // PORT_DIPSETTING( 0x0d, DEF_STR( Unused ) )
1249 // PORT_DIPSETTING( 0x0e, DEF_STR( Unused ) )
1250 // PORT_DIPSETTING( 0x0f, "Japan" )
1251 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1252 INPUT_PORTS_END
1253
1254 INPUT_PORTS_START( vimanan )
1255 PORT_START /* VBlank */
1256 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
1257 PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1258
1259 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER1, IPT_BUTTON3 )
1260
1261 TOAPLAN1_PLAYER_INPUT( IPF_PLAYER2, IPT_BUTTON3 )
1262
1263 PORT_START /* DSW A */
1264 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
1265 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1266 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
1267 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Flip_Screen ) )
1268 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1269 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1270 PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
1271 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
1272 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1273 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1274 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
1275 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1276 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
1277 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
1278 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1279 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1280 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
1281 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1282 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1283 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
1284 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1285 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
1286 /* settings for other territories (non Nova license)
1287 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )
1288 PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) )
1289 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
1290 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
1291 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1292 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )
1293 PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
1294 PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
1295 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
1296 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
1297 */
1298
1299 PORT_START /* DSW B */
1300 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) )
1301 PORT_DIPSETTING( 0x01, "Easy" )
1302 PORT_DIPSETTING( 0x00, "Medium" )
1303 PORT_DIPSETTING( 0x02, "Hard" )
1304 PORT_DIPSETTING( 0x03, "Hardest" )
1305 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1306 PORT_DIPSETTING( 0x00, "70K and 200K" )
1307 PORT_DIPSETTING( 0x04, "100K and 250K" )
1308 PORT_DIPSETTING( 0x08, "100K" )
1309 PORT_DIPSETTING( 0x0c, "200K" )
1310 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) )
1311 PORT_DIPSETTING( 0x30, "2" )
1312 PORT_DIPSETTING( 0x00, "3" )
1313 PORT_DIPSETTING( 0x20, "4" )
1314 PORT_DIPSETTING( 0x10, "5" )
1315 PORT_BITX( 0x40, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
1316 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1317 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1318 PORT_DIPNAME( 0x80, 0x00, "Allow Continue" )
1319 PORT_DIPSETTING( 0x80, DEF_STR( No ) )
1320 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1321
1322 TOAPLAN1_SYSTEM_INPUTS
1323
1324 PORT_START /* Territory Jumper Block */
1325 PORT_DIPNAME( 0x0f, 0x02, "Territory" )
1326 PORT_DIPSETTING( 0x02, "Europe" )
1327 PORT_DIPSETTING( 0x01, "US" )
1328 PORT_DIPSETTING( 0x00, "Japan" )
1329 PORT_DIPSETTING( 0x03, "Hong Kong" )
1330 PORT_DIPSETTING( 0x04, "Korea" )
1331 PORT_DIPSETTING( 0x05, "Taiwan" )
1332 // PORT_DIPSETTING( 0x06, "Taiwan" )
1333 // PORT_DIPSETTING( 0x07, "US" )
1334 // PORT_DIPSETTING( 0x08, "Hong Kong" )
1335 // PORT_DIPSETTING( 0x09, DEF_STR( Unused ) )
1336 // PORT_DIPSETTING( 0x0a, DEF_STR( Unused ) )
1337 // PORT_DIPSETTING( 0x0b, DEF_STR( Unused ) )
1338 // PORT_DIPSETTING( 0x0c, DEF_STR( Unused ) )
1339 // PORT_DIPSETTING( 0x0d, DEF_STR( Unused ) )
1340 // PORT_DIPSETTING( 0x0e, DEF_STR( Unused ) )
1341 // PORT_DIPSETTING( 0x0f, "Japan" )
1342 PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1343 INPUT_PORTS_END
1344
1345
1346 static struct GfxLayout tilelayout =
1347 {
1348 8,8, /* 8x8 */
1349 16384, /* 16384 tiles */
1350 4, /* 4 bits per pixel */
1351 { 3*8*0x20000, 2*8*0x20000, 1*8*0x20000, 0*8*0x20000 },
1352 { 0, 1, 2, 3, 4, 5, 6, 7 },
1353 { 0, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 },
1354 64
1355 };
1356
1357 static struct GfxLayout rallybik_spr_layout =
1358 {
1359 16,16, /* 16*16 sprites */
1360 2048, /* 2048 sprites */
1361 4, /* 4 bits per pixel */
1362 { 0*2048*32*8, 1*2048*32*8, 2*2048*32*8, 3*2048*32*8 },
1363 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
1364 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
1365 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
1366 32*8 /* every sprite takes 32 consecutive bytes */
1367 };
1368
1369 static struct GfxLayout vm_tilelayout =
1370 {
1371 8,8, /* 8x8 */
1372 32768, /* 32768 tiles */
1373 4, /* 4 bits per pixel */
1374 { 8*0x80000+8, 8*0x80000, 8, 0 },
1375 { 0, 1, 2, 3, 4, 5, 6, 7 },
1376 { 0, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 },
1377 128
1378 };
1379
1380
1381 static struct GfxDecodeInfo gfxdecodeinfo[] =
1382 {
1383 { REGION_GFX1, 0x00000, &tilelayout, 0, 64 },
1384 { REGION_GFX2, 0x00000, &tilelayout, 64*16, 64 },
1385 { -1 } /* end of array */
1386 };
1387
1388 static struct GfxDecodeInfo rallybik_gfxdecodeinfo[] =
1389 {
1390 { REGION_GFX1, 0x00000, &tilelayout, 0, 64 },
1391 { REGION_GFX2, 0x00000, &rallybik_spr_layout, 64*16, 64 },
1392 { -1 } /* end of array */
1393 };
1394
1395 static struct GfxDecodeInfo outzone_gfxdecodeinfo[] =
1396 {
1397 { REGION_GFX1, 0x00000, &vm_tilelayout, 0, 64 },
1398 { REGION_GFX2, 0x00000, &tilelayout, 64*16, 64 },
1399 { -1 } /* end of array */
1400 };
1401
1402 static struct GfxDecodeInfo vm_gfxdecodeinfo[] =
1403 {
1404 { REGION_GFX1, 0x00000, &tilelayout, 0, 64 },
1405 { REGION_GFX2, 0x00000, &vm_tilelayout, 64*16, 64 },
1406 { -1 } /* end of array */
1407 };
1408
1409
irqhandler(int linestate)1410 static void irqhandler(int linestate)
1411 {
1412 cpu_set_irq_line(1,0,linestate);
1413 }
1414
1415 static struct YM3812interface ym3812_interface =
1416 {
1417 1,
1418 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1419 { 255 },
1420 { irqhandler },
1421 };
1422
1423
1424
1425 static struct MachineDriver machine_driver_rallybik =
1426 {
1427 /* basic machine hardware */
1428 {
1429 {
1430 CPU_M68000,
1431 10000000,
1432 rallybik_readmem,rallybik_writemem,0,0,
1433 toaplan1_interrupt,1
1434 },
1435 {
1436 CPU_Z80,
1437 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1438 sound_readmem,sound_writemem,truxton_sound_readport,rallybik_sound_writeport,
1439 ignore_interrupt,0
1440 }
1441 },
1442 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1443 10,
1444 toaplan1_init_machine,
1445
1446 /* video hardware */
1447 320, 240, { 0, 319, 0, 239 },
1448 rallybik_gfxdecodeinfo,
1449 64*16+64*16, 64*16+64*16,
1450 0,
1451
1452 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM,
1453 rallybik_eof_callback,
1454 rallybik_vh_start,
1455 rallybik_vh_stop,
1456 rallybik_vh_screenrefresh,
1457
1458 /* sound hardware */
1459 0,0,0,0,
1460 {
1461 {
1462 SOUND_YM3812,
1463 &ym3812_interface
1464 },
1465 }
1466 };
1467
1468 static struct MachineDriver machine_driver_truxton =
1469 {
1470 /* basic machine hardware */
1471 {
1472 {
1473 CPU_M68000,
1474 10000000,
1475 truxton_readmem,truxton_writemem,0,0,
1476 toaplan1_interrupt,1
1477 },
1478 {
1479 CPU_Z80,
1480 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1481 sound_readmem,sound_writemem,truxton_sound_readport,truxton_sound_writeport,
1482 ignore_interrupt,0
1483 }
1484 },
1485 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1486 10,
1487 toaplan1_init_machine,
1488
1489 /* video hardware */
1490 320, 240, { 0, 319, 0, 239 },
1491 gfxdecodeinfo,
1492 64*16+64*16, 64*16+64*16,
1493 0,
1494
1495 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1496 toaplan1_eof_callback,
1497 toaplan1_vh_start,
1498 toaplan1_vh_stop,
1499 toaplan1_vh_screenrefresh,
1500
1501 /* sound hardware */
1502 0,0,0,0,
1503 {
1504 {
1505 SOUND_YM3812,
1506 &ym3812_interface
1507 },
1508 }
1509 };
1510
1511 static struct MachineDriver machine_driver_hellfire =
1512 {
1513 /* basic machine hardware */
1514 {
1515 {
1516 CPU_M68000,
1517 10000000,
1518 hellfire_readmem,hellfire_writemem,0,0,
1519 toaplan1_interrupt,1
1520 },
1521 {
1522 CPU_Z80,
1523 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1524 sound_readmem,sound_writemem,hellfire_sound_readport,hellfire_sound_writeport,
1525 ignore_interrupt,0
1526 }
1527 },
1528 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1529 10,
1530 toaplan1_init_machine,
1531
1532 /* video hardware */
1533 320, 256, { 0, 319, 16, 255 },
1534 gfxdecodeinfo,
1535 64*16+64*16, 64*16+64*16,
1536 0,
1537
1538 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1539 toaplan1_eof_callback,
1540 toaplan1_vh_start,
1541 toaplan1_vh_stop,
1542 toaplan1_vh_screenrefresh,
1543
1544 /* sound hardware */
1545 0,0,0,0,
1546 {
1547 {
1548 SOUND_YM3812,
1549 &ym3812_interface
1550 },
1551 }
1552 };
1553
1554 static struct MachineDriver machine_driver_zerowing =
1555 {
1556 /* basic machine hardware */
1557 {
1558 {
1559 CPU_M68000,
1560 10000000,
1561 zerowing_readmem,zerowing_writemem,0,0,
1562 toaplan1_interrupt,1
1563 },
1564 {
1565 CPU_Z80,
1566 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1567 sound_readmem,sound_writemem,zerowing_sound_readport,zerowing_sound_writeport,
1568 ignore_interrupt,0
1569 }
1570 },
1571 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1572 10,
1573 toaplan1_init_machine,
1574
1575 /* video hardware */
1576 320, 256, { 0, 319, 16, 255 },
1577 gfxdecodeinfo,
1578 64*16+64*16, 64*16+64*16,
1579 0,
1580
1581 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1582 toaplan1_eof_callback,
1583 toaplan1_vh_start,
1584 toaplan1_vh_stop,
1585 toaplan1_vh_screenrefresh,
1586
1587 /* sound hardware */
1588 0,0,0,0,
1589 {
1590 {
1591 SOUND_YM3812,
1592 &ym3812_interface
1593 },
1594 }
1595 };
1596
1597 static struct MachineDriver machine_driver_demonwld =
1598 {
1599 /* basic machine hardware */
1600 {
1601 {
1602 CPU_M68000,
1603 10000000,
1604 demonwld_readmem,demonwld_writemem,0,0,
1605 toaplan1_interrupt,1
1606 },
1607 {
1608 CPU_Z80,
1609 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1610 sound_readmem,sound_writemem,demonwld_sound_readport,demonwld_sound_writeport,
1611 ignore_interrupt,0
1612 },
1613 {
1614 CPU_TMS320C10,
1615 28000000/8, /* 3.5 MHz */
1616 DSP_readmem,DSP_writemem,DSP_readport,DSP_writeport,
1617 ignore_interrupt,0 /* IRQs are caused by 68000 */
1618 }
1619 },
1620 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1621 10,
1622 toaplan1_init_machine,
1623
1624 /* video hardware */
1625 320, 256, { 0, 319, 16, 255 },
1626 gfxdecodeinfo,
1627 64*16+64*16, 64*16+64*16,
1628 0,
1629
1630 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1631 toaplan1_eof_callback,
1632 toaplan1_vh_start,
1633 toaplan1_vh_stop,
1634 toaplan1_vh_screenrefresh,
1635
1636 /* sound hardware */
1637 0,0,0,0,
1638 {
1639 {
1640 SOUND_YM3812,
1641 &ym3812_interface
1642 },
1643 }
1644 };
1645
1646 static struct MachineDriver machine_driver_samesame =
1647 {
1648 /* basic machine hardware */
1649 {
1650 {
1651 CPU_M68000,
1652 10000000,
1653 samesame_readmem,samesame_writemem,0,0,
1654 toaplan1_interrupt,1
1655 }
1656 },
1657 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1658 1,
1659 toaplan1_init_machine,
1660
1661 /* video hardware */
1662 320, 240, { 0, 319, 0, 239 },
1663 gfxdecodeinfo,
1664 64*16+64*16, 64*16+64*16,
1665 0,
1666
1667 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1668 samesame_eof_callback,
1669 toaplan1_vh_start,
1670 toaplan1_vh_stop,
1671 toaplan1_vh_screenrefresh,
1672
1673 /* sound hardware */
1674 0,0,0,0,
1675 {
1676 {
1677 SOUND_YM3812,
1678 &ym3812_interface
1679 },
1680 }
1681 };
1682
1683 static struct MachineDriver machine_driver_outzone =
1684 {
1685 /* basic machine hardware */
1686 {
1687 {
1688 CPU_M68000,
1689 10000000,
1690 outzone_readmem,outzone_writemem,0,0,
1691 toaplan1_interrupt,1
1692 },
1693 {
1694 CPU_Z80,
1695 28000000/8, /* 3.5Mhz (28Mhz Oscillator) */
1696 sound_readmem,sound_writemem,outzone_sound_readport,outzone_sound_writeport,
1697 ignore_interrupt,0
1698 }
1699 },
1700 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1701 10,
1702 toaplan1_init_machine,
1703
1704 /* video hardware */
1705 320, 240, {0, 319, 0, 239 },
1706 outzone_gfxdecodeinfo,
1707 64*16+64*16, 64*16+64*16,
1708 0,
1709
1710 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1711 toaplan1_eof_callback,
1712 toaplan1_vh_start,
1713 toaplan1_vh_stop,
1714 toaplan1_vh_screenrefresh,
1715
1716 /* sound hardware */
1717 0,0,0,0,
1718 {
1719 {
1720 SOUND_YM3812,
1721 &ym3812_interface
1722 },
1723 }
1724 };
1725
1726 static struct MachineDriver machine_driver_vimana =
1727 {
1728 /* basic machine hardware */
1729 {
1730 {
1731 CPU_M68000,
1732 10000000,
1733 vimana_readmem,vimana_writemem,0,0,
1734 toaplan1_interrupt,1
1735 }
1736 },
1737 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */
1738 1,
1739 toaplan1_init_machine,
1740
1741 /* video hardware */
1742 320, 240, { 0, 319, 0, 239 },
1743 vm_gfxdecodeinfo,
1744 64*16+64*16, 64*16+64*16,
1745 0,
1746
1747 VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_UPDATE_BEFORE_VBLANK,
1748 toaplan1_eof_callback,
1749 toaplan1_vh_start,
1750 toaplan1_vh_stop,
1751 toaplan1_vh_screenrefresh,
1752
1753 /* sound hardware */
1754 0,0,0,0,
1755 {
1756 {
1757 SOUND_YM3812,
1758 &ym3812_interface
1759 },
1760 }
1761 };
1762
1763
1764
1765
1766 /***************************************************************************
1767
1768 Game driver(s)
1769
1770 ***************************************************************************/
1771
1772 ROM_START( rallybik )
1773 ROM_REGION( 0x080000, REGION_CPU1 ) /* Main 68K code */
1774 ROM_LOAD_EVEN( "b45-02.rom", 0x000000, 0x08000, 0x383386d7 )
1775 ROM_LOAD_ODD ( "b45-01.rom", 0x000000, 0x08000, 0x7602f6a7 )
1776 ROM_LOAD_EVEN( "b45-04.rom", 0x040000, 0x20000, 0xe9b005b1 )
1777 ROM_LOAD_ODD ( "b45-03.rom", 0x040000, 0x20000, 0x555344ce )
1778
1779 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1780 ROM_LOAD( "b45-05.rom", 0x0000, 0x4000, 0x10814601 )
1781
1782 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1783 ROM_LOAD( "b45-09.bin", 0x00000, 0x20000, 0x1dc7b010 )
1784 ROM_LOAD( "b45-08.bin", 0x20000, 0x20000, 0xfab661ba )
1785 ROM_LOAD( "b45-07.bin", 0x40000, 0x20000, 0xcd3748b4 )
1786 ROM_LOAD( "b45-06.bin", 0x60000, 0x20000, 0x144b085c )
1787
1788 ROM_REGION( 0x40000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1789 ROM_LOAD( "b45-11.rom", 0x00000, 0x10000, 0x0d56e8bb )
1790 ROM_LOAD( "b45-10.rom", 0x10000, 0x10000, 0xdbb7c57e )
1791 ROM_LOAD( "b45-12.rom", 0x20000, 0x10000, 0xcf5aae4e )
1792 ROM_LOAD( "b45-13.rom", 0x30000, 0x10000, 0x1683b07c )
1793
1794 ROM_REGION( 0x240, REGION_PROMS ) /* nibble bproms, lo/hi order to be determined */
1795 ROM_LOAD( "b45-15.bpr", 0x000, 0x100, 0x24e7d62f ) /* sprite priority control ?? */
1796 ROM_LOAD( "b45-16.bpr", 0x100, 0x100, 0xa50cef09 ) /* sprite priority control ?? */
1797 ROM_LOAD( "b45-14.bpr", 0x200, 0x020, 0xf72482db ) /* sprite control ?? */
1798 ROM_LOAD( "b45-17.bpr", 0x220, 0x020, 0xbc88cced ) /* sprite attribute (flip/position) ?? */
1799 ROM_END
1800
1801 ROM_START( truxton )
1802 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
1803 ROM_LOAD_EVEN( "b65_11.bin", 0x000000, 0x20000, 0x1a62379a )
1804 ROM_LOAD_ODD ( "b65_10.bin", 0x000000, 0x20000, 0xaff5195d )
1805
1806 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1807 ROM_LOAD( "b65_09.bin", 0x0000, 0x8000, 0xf1c0f410 )
1808
1809 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1810 ROM_LOAD( "b65_08.bin", 0x00000, 0x20000, 0xd2315b37 )
1811 ROM_LOAD( "b65_07.bin", 0x20000, 0x20000, 0xfb83252a )
1812 ROM_LOAD( "b65_06.bin", 0x40000, 0x20000, 0x36cedcbe )
1813 ROM_LOAD( "b65_05.bin", 0x60000, 0x20000, 0x81cd95f1 )
1814
1815 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1816 ROM_LOAD( "b65_04.bin", 0x00000, 0x20000, 0x8c6ff461 )
1817 ROM_LOAD( "b65_03.bin", 0x20000, 0x20000, 0x58b1350b )
1818 ROM_LOAD( "b65_02.bin", 0x40000, 0x20000, 0x1dd55161 )
1819 ROM_LOAD( "b65_01.bin", 0x60000, 0x20000, 0xe974937f )
1820 ROM_END
1821
1822 ROM_START( hellfire )
1823 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
1824 ROM_LOAD_EVEN( "b90-14.bin", 0x000000, 0x20000, 0x101df9f5 )
1825 ROM_LOAD_ODD ( "b90-15.bin", 0x000000, 0x20000, 0xe67fd452 )
1826
1827 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1828 ROM_LOAD( "b90-03.bin", 0x0000, 0x8000, 0x4058fa67 )
1829
1830 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1831 ROM_LOAD( "b90-04.bin", 0x00000, 0x20000, 0xea6150fc )
1832 ROM_LOAD( "b90-05.bin", 0x20000, 0x20000, 0xbb52c507 )
1833 ROM_LOAD( "b90-06.bin", 0x40000, 0x20000, 0xcf5b0252 )
1834 ROM_LOAD( "b90-07.bin", 0x60000, 0x20000, 0xb98af263 )
1835
1836 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1837 ROM_LOAD( "b90-11.bin", 0x00000, 0x20000, 0xc33e543c )
1838 ROM_LOAD( "b90-10.bin", 0x20000, 0x20000, 0x35fd1092 )
1839 ROM_LOAD( "b90-09.bin", 0x40000, 0x20000, 0xcf01009e )
1840 ROM_LOAD( "b90-08.bin", 0x60000, 0x20000, 0x3404a5e3 )
1841 ROM_END
1842
1843 ROM_START( zerowing )
1844 ROM_REGION( 0x080000, REGION_CPU1 ) /* Main 68K code */
1845 ROM_LOAD_EVEN( "o15-11.rom", 0x000000, 0x08000, 0x6ff2b9a0 )
1846 ROM_LOAD_ODD ( "o15-12.rom", 0x000000, 0x08000, 0x9773e60b )
1847 ROM_LOAD_EVEN( "o15-09.rom", 0x040000, 0x20000, 0x13764e95 )
1848 ROM_LOAD_ODD ( "o15-10.rom", 0x040000, 0x20000, 0x351ba71a )
1849
1850 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1851 ROM_LOAD( "o15-13.rom", 0x0000, 0x8000, 0xe7b72383 )
1852
1853 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1854 ROM_LOAD( "o15-05.rom", 0x00000, 0x20000, 0x4e5dd246 )
1855 ROM_LOAD( "o15-06.rom", 0x20000, 0x20000, 0xc8c6d428 )
1856 ROM_LOAD( "o15-07.rom", 0x40000, 0x20000, 0xefc40e99 )
1857 ROM_LOAD( "o15-08.rom", 0x60000, 0x20000, 0x1b019eab )
1858
1859 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1860 ROM_LOAD( "o15-03.rom", 0x00000, 0x20000, 0x7f245fd3 )
1861 ROM_LOAD( "o15-04.rom", 0x20000, 0x20000, 0x0b1a1289 )
1862 ROM_LOAD( "o15-01.rom", 0x40000, 0x20000, 0x70570e43 )
1863 ROM_LOAD( "o15-02.rom", 0x60000, 0x20000, 0x724b487f )
1864 ROM_END
1865
1866 ROM_START( demonwld )
1867 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
1868 ROM_LOAD_EVEN( "rom10", 0x000000, 0x20000, 0x036ee46c )
1869 ROM_LOAD_ODD ( "rom09", 0x000000, 0x20000, 0xbed746e3 )
1870
1871 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1872 ROM_LOAD( "rom11", 0x0000, 0x8000, 0x397eca1b )
1873
1874 ROM_REGION( 0x10000, REGION_CPU3 ) /* Co-Processor TMS320C10 MCU code */
1875 ROM_LOAD_EVEN( "dsp_22.bin", 0x0000, 0x0800, 0x79389a71 )
1876 ROM_LOAD_ODD ( "dsp_21.bin", 0x0000, 0x0800, 0x2d135376 )
1877
1878 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1879 ROM_LOAD( "rom05", 0x00000, 0x20000, 0x6506c982 )
1880 ROM_LOAD( "rom07", 0x20000, 0x20000, 0xa3a0d993 )
1881 ROM_LOAD( "rom06", 0x40000, 0x20000, 0x4fc5e5f3 )
1882 ROM_LOAD( "rom08", 0x60000, 0x20000, 0xeb53ab09 )
1883
1884 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1885 ROM_LOAD( "rom01", 0x00000, 0x20000, 0x1b3724e9 )
1886 ROM_LOAD( "rom02", 0x20000, 0x20000, 0x7b20a44d )
1887 ROM_LOAD( "rom03", 0x40000, 0x20000, 0x2cacdcd0 )
1888 ROM_LOAD( "rom04", 0x60000, 0x20000, 0x76fd3201 )
1889
1890 ROM_REGION( 0x40, REGION_PROMS ) /* nibble bproms, lo/hi order to be determined */
1891 ROM_LOAD( "prom12.bpr", 0x00, 0x20, 0xbc88cced ) /* sprite attribute (flip/position) ?? */
1892 ROM_LOAD( "prom13.bpr", 0x20, 0x20, 0xa1e17492 ) /* ??? */
1893 ROM_END
1894
1895 ROM_START( samesame )
1896 ROM_REGION( 0x080000, REGION_CPU1 ) /* Main 68K code */
1897 ROM_LOAD_EVEN( "o17_09.bin", 0x000000, 0x08000, 0x3f69e437 )
1898 ROM_LOAD_ODD ( "o17_10.bin", 0x000000, 0x08000, 0x4e723e0a )
1899 ROM_LOAD_EVEN( "o17_11.bin", 0x040000, 0x20000, 0xbe07d101 )
1900 ROM_LOAD_ODD ( "o17_12.bin", 0x040000, 0x20000, 0xef698811 )
1901
1902 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound HD647180 code */
1903 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
1904 ROM_LOAD( "hd647180.017", 0x00000, 0x08000, 0x00000000 )
1905
1906 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1907 ROM_LOAD( "o17_05.bin", 0x00000, 0x20000, 0x565315f8 )
1908 ROM_LOAD( "o17_06.bin", 0x20000, 0x20000, 0x95262d4c )
1909 ROM_LOAD( "o17_07.bin", 0x40000, 0x20000, 0x4c4b735c )
1910 ROM_LOAD( "o17_08.bin", 0x60000, 0x20000, 0x95c6586c )
1911
1912 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1913 ROM_LOAD( "o17_01.bin", 0x00000, 0x20000, 0xea12e491 )
1914 ROM_LOAD( "o17_02.bin", 0x20000, 0x20000, 0x32a13a9f )
1915 ROM_LOAD( "o17_03.bin", 0x40000, 0x20000, 0x68723dc9 )
1916 ROM_LOAD( "o17_04.bin", 0x60000, 0x20000, 0xfe0ecb13 )
1917 ROM_END
1918
1919 ROM_START( fireshrk )
1920 ROM_REGION( 0x080000, REGION_CPU1 ) /* Main 68K code */
1921 ROM_LOAD_EVEN( "9.bin", 0x000000, 0x08000, 0xf0c70e6f )
1922 ROM_LOAD_ODD ( "10.bin", 0x000000, 0x08000, 0x9d253d77 )
1923 ROM_LOAD_EVEN( "11.bin", 0x040000, 0x20000, 0x6beac378 )
1924 ROM_LOAD_ODD ( "12.bin", 0x040000, 0x20000, 0x6adb6eb5 )
1925
1926 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound HD647180 code */
1927 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
1928 ROM_LOAD( "hd647180.017", 0x00000, 0x08000, 0x00000000 )
1929
1930 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1931 ROM_LOAD( "o17_05.bin", 0x00000, 0x20000, 0x565315f8 )
1932 ROM_LOAD( "o17_06.bin", 0x20000, 0x20000, 0x95262d4c )
1933 ROM_LOAD( "o17_07.bin", 0x40000, 0x20000, 0x4c4b735c )
1934 ROM_LOAD( "o17_08.bin", 0x60000, 0x20000, 0x95c6586c )
1935
1936 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1937 ROM_LOAD( "o17_01.bin", 0x00000, 0x20000, 0xea12e491 )
1938 ROM_LOAD( "o17_02.bin", 0x20000, 0x20000, 0x32a13a9f )
1939 ROM_LOAD( "o17_03.bin", 0x40000, 0x20000, 0x68723dc9 )
1940 ROM_LOAD( "o17_04.bin", 0x60000, 0x20000, 0xfe0ecb13 )
1941 ROM_END
1942
1943 ROM_START( outzone )
1944 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
1945 ROM_LOAD_EVEN( "rom7.bin", 0x000000, 0x20000, 0x936e25d8 )
1946 ROM_LOAD_ODD ( "rom8.bin", 0x000000, 0x20000, 0xd19b3ecf )
1947
1948 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1949 ROM_LOAD( "rom9.bin", 0x0000, 0x8000, 0x73d8e235 )
1950
1951 ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1952 ROM_LOAD( "rom5.bin", 0x00000, 0x80000, 0xc64ec7b6 )
1953 ROM_LOAD( "rom6.bin", 0x80000, 0x80000, 0x64b6c5ac )
1954
1955 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1956 ROM_LOAD( "rom2.bin", 0x00000, 0x20000, 0x6bb72d16 )
1957 ROM_LOAD( "rom1.bin", 0x20000, 0x20000, 0x0934782d )
1958 ROM_LOAD( "rom3.bin", 0x40000, 0x20000, 0xec903c07 )
1959 ROM_LOAD( "rom4.bin", 0x60000, 0x20000, 0x50cbf1a8 )
1960 ROM_END
1961
1962 ROM_START( outzonep )
1963 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
1964 ROM_LOAD_EVEN( "18.bin", 0x000000, 0x20000, 0x31a171bb )
1965 ROM_LOAD_ODD ( "19.bin", 0x000000, 0x20000, 0x804ecfd1 )
1966
1967 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound Z80 code */
1968 ROM_LOAD( "rom9.bin", 0x0000, 0x8000, 0x73d8e235 )
1969
1970 ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
1971 ROM_LOAD( "rom5.bin", 0x00000, 0x80000, 0xc64ec7b6 )
1972 ROM_LOAD( "rom6.bin", 0x80000, 0x80000, 0x64b6c5ac )
1973 /* same data, different layout
1974 ROM_LOAD_GFX_EVEN( "04.bin", 0x000000, 0x10000, 0x3d11eae0 )
1975 ROM_LOAD_GFX_ODD ( "08.bin", 0x000000, 0x10000, 0xc7628891 )
1976 ROM_LOAD_GFX_EVEN( "13.bin", 0x080000, 0x10000, 0xb23dd87e )
1977 ROM_LOAD_GFX_ODD ( "09.bin", 0x080000, 0x10000, 0x445651ba )
1978 ROM_LOAD_GFX_EVEN( "03.bin", 0x020000, 0x10000, 0x6b347646 )
1979 ROM_LOAD_GFX_ODD ( "07.bin", 0x020000, 0x10000, 0x461b47f9 )
1980 ROM_LOAD_GFX_EVEN( "14.bin", 0x0a0000, 0x10000, 0xb28ae37a )
1981 ROM_LOAD_GFX_ODD ( "10.bin", 0x0a0000, 0x10000, 0x6596a076 )
1982 ROM_LOAD_GFX_EVEN( "02.bin", 0x040000, 0x10000, 0x11a781c3 )
1983 ROM_LOAD_GFX_ODD ( "06.bin", 0x040000, 0x10000, 0x1055da17 )
1984 ROM_LOAD_GFX_EVEN( "15.bin", 0x0c0000, 0x10000, 0x9c9e811b )
1985 ROM_LOAD_GFX_ODD ( "11.bin", 0x0c0000, 0x10000, 0x4c4d44dc )
1986 ROM_LOAD_GFX_EVEN( "01.bin", 0x060000, 0x10000, 0xe8c46aea )
1987 ROM_LOAD_GFX_ODD ( "05.bin", 0x060000, 0x10000, 0xf8a2fe01 )
1988 ROM_LOAD_GFX_EVEN( "16.bin", 0x0e0000, 0x10000, 0xcffcb99b )
1989 ROM_LOAD_GFX_ODD ( "12.bin", 0x0e0000, 0x10000, 0x90d37ded )
1990 */
1991
1992 ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
1993 ROM_LOAD( "rom2.bin", 0x00000, 0x20000, 0x6bb72d16 )
1994 ROM_LOAD( "rom1.bin", 0x20000, 0x20000, 0x0934782d )
1995 ROM_LOAD( "rom3.bin", 0x40000, 0x20000, 0xec903c07 )
1996 ROM_LOAD( "rom4.bin", 0x60000, 0x20000, 0x50cbf1a8 )
1997 ROM_END
1998
1999 ROM_START( vimana )
2000 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
2001 ROM_LOAD_EVEN( "vim07.bin", 0x000000, 0x20000, 0x1efaea84 )
2002 ROM_LOAD_ODD ( "vim08.bin", 0x000000, 0x20000, 0xe45b7def )
2003
2004 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound HD647180 code */
2005 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
2006 ROM_LOAD( "hd647180.019", 0x00000, 0x08000, 0x00000000 )
2007
2008 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2009 ROM_LOAD( "vim6.bin", 0x00000, 0x20000, 0x2886878d )
2010 ROM_LOAD( "vim5.bin", 0x20000, 0x20000, 0x61a63d7a )
2011 ROM_LOAD( "vim4.bin", 0x40000, 0x20000, 0xb0515768 )
2012 ROM_LOAD( "vim3.bin", 0x60000, 0x20000, 0x0b539131 )
2013
2014 ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2015 ROM_LOAD( "vim1.bin", 0x00000, 0x80000, 0xcdde26cd )
2016 ROM_LOAD( "vim2.bin", 0x80000, 0x80000, 0x1dbfc118 )
2017
2018 ROM_REGION( 0x40, REGION_PROMS ) /* nibble bproms, lo/hi order to be determined */
2019 ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, 0xbc88cced ) /* sprite attribute (flip/position) ?? */
2020 ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, 0xa1e17492 ) /* ??? */
2021 ROM_END
2022
2023 ROM_START( vimana2 )
2024 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
2025 ROM_LOAD_EVEN( "vimana07.bin", 0x000000, 0x20000, 0x5a4bf73e )
2026 ROM_LOAD_ODD ( "vimana08.bin", 0x000000, 0x20000, 0x03ba27e8 )
2027
2028 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound HD647180 code */
2029 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
2030 ROM_LOAD( "hd647180.019", 0x00000, 0x08000, 0x00000000 )
2031
2032 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2033 ROM_LOAD( "vim6.bin", 0x00000, 0x20000, 0x2886878d )
2034 ROM_LOAD( "vim5.bin", 0x20000, 0x20000, 0x61a63d7a )
2035 ROM_LOAD( "vim4.bin", 0x40000, 0x20000, 0xb0515768 )
2036 ROM_LOAD( "vim3.bin", 0x60000, 0x20000, 0x0b539131 )
2037
2038 ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2039 ROM_LOAD( "vim1.bin", 0x00000, 0x80000, 0xcdde26cd )
2040 ROM_LOAD( "vim2.bin", 0x80000, 0x80000, 0x1dbfc118 )
2041
2042 ROM_REGION( 0x40, REGION_PROMS ) /* nibble bproms, lo/hi order to be determined */
2043 ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, 0xbc88cced ) /* sprite attribute (flip/position) ?? */
2044 ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, 0xa1e17492 ) /* ??? */
2045 ROM_END
2046
2047 ROM_START( vimanan )
2048 ROM_REGION( 0x040000, REGION_CPU1 ) /* Main 68K code */
2049 ROM_LOAD_EVEN( "tp019-07.rom", 0x000000, 0x20000, 0x78888ff2 )
2050 ROM_LOAD_ODD ( "tp019-08.rom", 0x000000, 0x20000, 0x6cd2dc3c )
2051
2052 ROM_REGION( 0x10000, REGION_CPU2 ) /* Sound HD647180 code */
2053 /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
2054 ROM_LOAD( "hd647180.019", 0x00000, 0x08000, 0x00000000 )
2055
2056 ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2057 ROM_LOAD( "vim6.bin", 0x00000, 0x20000, 0x2886878d )
2058 ROM_LOAD( "vim5.bin", 0x20000, 0x20000, 0x61a63d7a )
2059 ROM_LOAD( "vim4.bin", 0x40000, 0x20000, 0xb0515768 )
2060 ROM_LOAD( "vim3.bin", 0x60000, 0x20000, 0x0b539131 )
2061
2062 ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
2063 ROM_LOAD( "vim1.bin", 0x00000, 0x80000, 0xcdde26cd )
2064 ROM_LOAD( "vim2.bin", 0x80000, 0x80000, 0x1dbfc118 )
2065
2066 ROM_REGION( 0x40, REGION_PROMS ) /* nibble bproms, lo/hi order to be determined */
2067 ROM_LOAD( "tp019-09.bpr", 0x00, 0x20, 0xbc88cced ) /* sprite attribute (flip/position) ?? */
2068 ROM_LOAD( "tp019-10.bpr", 0x20, 0x20, 0xa1e17492 ) /* ??? */
2069 ROM_END
2070
2071
2072
2073 GAME ( 1988, rallybik, 0, rallybik, rallybik, 0, ROT270, "[Toaplan] Taito Corporation", "Rally Bike / Dash Yarou" )
2074 GAME ( 1988, truxton, 0, truxton, truxton, 0, ROT270, "[Toaplan] Taito Corporation", "Truxton / Tatsujin" )
2075 GAME ( 1989, hellfire, 0, hellfire, hellfire, 0, ROT0, "Toaplan (Taito license)", "Hellfire" )
2076 GAME ( 1989, zerowing, 0, zerowing, zerowing, 0, ROT0, "Toaplan", "Zero Wing" )
2077 GAME ( 1989, demonwld, 0, demonwld, demonwld, 0, ROT0, "Toaplan (Taito license)", "Demon's World / Horror Story" )
2078 GAMEX( 1990, fireshrk, 0, samesame, fireshrk, 0, ROT270, "Toaplan", "Fire Shark", GAME_NO_SOUND )
2079 GAMEX( 1989, samesame, fireshrk, samesame, samesame, 0, ROT270, "Toaplan", "Same! Same! Same!", GAME_NO_SOUND )
2080 GAME ( 1990, outzone, 0, outzone, outzone, 0, ROT270, "Toaplan", "Out Zone" )
2081 GAME ( 1990, outzonep, outzone, outzone, outzone, 0, ROT270, "bootleg", "Out Zone (bootleg)" )
2082 GAMEX( 1991, vimana, 0, vimana, vimana, 0, ROT270, "Toaplan", "Vimana (set 1)", GAME_NO_SOUND )
2083 GAMEX( 1991, vimana2, vimana, vimana, vimana, 0, ROT270, "Toaplan", "Vimana (set 2)", GAME_NO_SOUND )
2084 GAMEX( 1991, vimanan, vimana, vimana, vimanan, 0, ROT270, "Toaplan (Nova Apparate GMBH & Co license)", "Vimana (Nova Apparate GMBH & Co)", GAME_NO_SOUND )
2085