1 /***************************************************************************
2
3 Gals Panic 1990 Kaneko
4 Fantasia 1994 Comad
5 New Fantasia 1995 Comad
6 Fantasy '95 1995 Hi-max Technology Inc. (Running on a Comad PCB)
7 Miss World '96 1996 Comad
8 Fantasia II 1997 Comad
9 Gals Hustler 1997 Ace International
10
11 driver by Nicola Salmoria
12
13 The Comad games run on hardware similar to Gals Panic, with a different
14 sprite system. They are not ROM swaps because the addresses of work RAM
15 and of the OKI chip change from one to the other, however everything else
16 is pretty much identical.
17
18
19 TODO:
20 - There is a vector for IRQ4. The function does nothing in galpanic but is
21 more complicated in the Comad ones. However I'm not triggering it, and
22 they seems to work anyway...
23 - Four unknown ROMs in fantasia. The game seems to work fine without them.
24 - There was a ROM in the newfant set, obj2_14.rom, which was identical to
25 Terminator 2's t2.107. I can only assume this was a mistake of the dumper.
26 - lots of unknown reads and writes, also in galpanic but particularly in
27 the Comad ones.
28 - fantasia and newfant have a service mode but they doesn't work well (text
29 is missing or replaced by garbage). This might be just how the games are.
30 - Is there a background enable register? Or a background clear. fantasia and
31 newfant certainly look ugly as they are.
32
33 Notes about Gals Panic:
34 -----------------------
35 The current ROM set is strange because two ROMs overlap two others replacing
36 the program.
37
38 It's definitely a Kaneko boardset, but it could very well be they converted
39 some other game to run Gals Panic, because there's some ROMs piggybacked
40 on top of each other and some ROMs on a daughterboard plugged into smaller
41 sized ROM sockets. It's not a pirate version. The piggybacked ROMs even have
42 Kaneko stickers. The silkscreen on the board says PAMERA-4.
43
44 There is at least another version of the Gals Panic board. It's single board,
45 so no daughterboard. There are only 4 IC's socketed, the rest is soldered to
46 the board, and no piggybacked ROMs. Board number is MDK 321 V-0 EXPRO-02
47
48
49 Stephh's additional notes :
50
51 - The games might not work correctly if sound is disabled.
52 - There seems to exist 3 versions of 'galpanic' (Japan, US and World),
53 and we seem to have a World version according to the coinage.
54 Version is stored at 0x03ffff.b :
55 * 01 : Japan
56 * 02 : US
57 * 03 : World
58 In the version we have, you can only have one type of coinage
59 (there is no Dip Switch to change sort of "coin mode").
60 - In Comad games, here is a possible explanation of why the "Tilt" button
61 may hang the game and/or crash/exit MAME : if you look carefully at the
62 code, you'll notice that you have a "rts" instruction WITHOUT restoring
63 the registers saved by the "movem.l D0-D7/A0-A6, -(A7)" instruction.
64 Then, a "rte" instruction is performed.
65 - The "Demo Sounds" Dip Switch is told not to work and not to fit the
66 manual, but it appears that 00 seems to be read from in the "trap $d"
67 interruption. Is it because the addresses (0x53e830-0x53e84f) are also
68 used for 'galpanic_bgvideoram' ?
69 In the Comad games, the interruption is the same, but the addresses
70 which are checked are in full RAM. So the Dip Switch could be checked.
71
72 - I've added a "fake" 'galpanib' romset which is in fact the same as
73 'galpanic', but with the PRG ROMS which aren't overwritten.
74 Here are a few notes about what I found :
75 * This version is also a World version (0x03ffff.b = 03).
76 * In this version, there is a "Coin Mode" Dip Switch, but no
77 "Character Test" Dip Switch.
78 * Area 0xe00000-0xe00014 is a "calculator" area. I've tried to
79 simulate it (see 'galpanib_calc*' handlers) by comparing the code
80 with the other set. I don't know if there are some other unmapped
81 reads, but the game seems to run fine with what I've done.
82 * When you press the "Tilt" button, the game enters in an endless
83 loop, but this isn't a bug ! Check code begining at 0x000e02 and
84 ending at 0x000976 for more infos.
85 -Expects watchdog to reset it- pjp
86 * Sound hasn't been tested.
87 * The Comad games are definitively based on this version, the main
88 differences being that read/writes to 0xe00000 have been replaced.
89
90 - On Gals Hustler there is an extra test mode if you hold down player 2
91 button 1, I have no idea if its complete or not
92
93 ***************************************************************************/
94
95 #include "driver.h"
96 #include "machine/random.h"
97 #include "vidhrdw/generic.h"
98
99
100
101 extern data16_t *galpanic_bgvideoram,*galpanic_fgvideoram;
102 extern size_t galpanic_fgvideoram_size;
103
104 PALETTE_INIT( galpanic );
105 WRITE16_HANDLER( galpanic_bgvideoram_w );
106 WRITE16_HANDLER( galpanic_paletteram_w );
107 VIDEO_UPDATE( galpanic );
108 VIDEO_UPDATE( comad );
109
110
111
112
INTERRUPT_GEN(galpanic_interrupt)113 static INTERRUPT_GEN( galpanic_interrupt )
114 {
115 /* IRQ 3 drives the game, IRQ 5 updates the palette */
116 if (cpu_getiloops() != 0)
117 cpu_set_irq_line(0, 5, HOLD_LINE);
118 else
119 cpu_set_irq_line(0, 3, HOLD_LINE);
120 }
121
INTERRUPT_GEN(galhustl_interrupt)122 static INTERRUPT_GEN( galhustl_interrupt )
123 {
124 switch ( cpu_getiloops() )
125 {
126 case 2: cpu_set_irq_line(0, 5, HOLD_LINE); break;
127 case 1: cpu_set_irq_line(0, 4, HOLD_LINE); break;
128 case 0: cpu_set_irq_line(0, 3, HOLD_LINE); break;
129 }
130 }
131
132
WRITE16_HANDLER(galpanic_6295_bankswitch_w)133 static WRITE16_HANDLER( galpanic_6295_bankswitch_w )
134 {
135 if (ACCESSING_MSB)
136 {
137 UINT8 *rom = memory_region(REGION_SOUND1);
138
139 memcpy(&rom[0x30000],&rom[0x40000 + ((data >> 8) & 0x0f) * 0x10000],0x10000);
140 }
141 }
142
143
144 static data16_t *galpanib_calc_data;
145
146 static struct {
147 UINT16 x1p, y1p, x1s, y1s;
148 UINT16 x2p, y2p, x2s, y2s;
149
150 INT16 x12, y12, x21, y21;
151
152 UINT16 mult_a, mult_b;
153 } hit;
154
READ16_HANDLER(galpanib_calc_r)155 static READ16_HANDLER(galpanib_calc_r)
156 {
157 UINT16 data = 0;
158
159 switch (offset)
160 {
161 case 0x00 >> 1: /* watchdog*/
162 return watchdog_reset_r(0);
163
164 case 0x04 >> 1:
165 /* This is similar to the hit detection from SuperNova, but much simpler */
166
167 /* X Absolute Collision*/
168 if (hit.x1p > hit.x2p) data |= 0x0200;
169 else if (hit.x1p == hit.x2p) data |= 0x0400;
170 else if (hit.x1p < hit.x2p) data |= 0x0800;
171
172 /* Y Absolute Collision*/
173 if (hit.y1p > hit.y2p) data |= 0x2000;
174 else if (hit.y1p == hit.y2p) data |= 0x4000;
175 else if (hit.y1p < hit.y2p) data |= 0x8000;
176
177 /* XY Overlap Collision*/
178 hit.x12 = (hit.x1p) - (hit.x2p + hit.x2s);
179 hit.y12 = (hit.y1p) - (hit.y2p + hit.y2s);
180 hit.x21 = (hit.x1p + hit.x1s) - (hit.x2p);
181 hit.y21 = (hit.y1p + hit.y1s) - (hit.y2p);
182
183 if ((hit.x12 < 0) && (hit.y12 < 0) &&
184 (hit.x21 >= 0) && (hit.y21 >= 0))
185 data |= 0x0001;
186
187 return data;
188
189 case 0x10 >> 1:
190 return (((UINT32)hit.mult_a * (UINT32)hit.mult_b) >> 16);
191 case 0x12 >> 1:
192 return (((UINT32)hit.mult_a * (UINT32)hit.mult_b) & 0xffff);
193
194 case 0x14 >> 1:
195 return (mame_rand() & 0xffff);
196
197 default:
198 log_cb(RETRO_LOG_DEBUG, LOGPRE "CPU #0 PC %06x: warning - read unmapped calc address %06x\n",activecpu_get_pc(),offset<<1);
199 }
200
201 return 0;
202 }
203
WRITE16_HANDLER(galpanib_calc_w)204 static WRITE16_HANDLER(galpanib_calc_w)
205 {
206 switch (offset)
207 {
208 /* p is position, s is size*/
209 case 0x00 >> 1:
210 hit.x1p = data;
211 break;
212 case 0x02 >> 1:
213 hit.x1s = data;
214 break;
215 case 0x04 >> 1:
216 hit.y1p = data;
217 break;
218 case 0x06 >> 1:
219 hit.y1s = data;
220 break;
221 case 0x08 >> 1:
222 hit.x2p = data;
223 break;
224 case 0x0a >> 1:
225 hit.x2s = data;
226 break;
227 case 0x0c >> 1:
228 hit.y2p = data;
229 break;
230 case 0x0e >> 1:
231 hit.y2s = data;
232 break;
233 case 0x10 >> 1:
234 hit.mult_a = data;
235 break;
236 case 0x12 >> 1:
237 hit.mult_b = data;
238 break;
239 default:
240 log_cb(RETRO_LOG_DEBUG, LOGPRE "CPU #0 PC %06x: warning - write unmapped hit address %06x\n",activecpu_get_pc(),offset<<1);
241 }
242 }
243
WRITE16_HANDLER(galpanic_bgvideoram_mirror_w)244 static WRITE16_HANDLER( galpanic_bgvideoram_mirror_w )
245 {
246 int i;
247 for(i = 0; i < 8; i++)
248 {
249 /* or offset + i * 0x2000 ?*/
250 galpanic_bgvideoram_w(offset * 8 + i, data, mem_mask);
251 }
252 }
253
MEMORY_READ16_START(galpanic_readmem)254 static MEMORY_READ16_START( galpanic_readmem )
255 { 0x000000, 0x3fffff, MRA16_ROM },
256 { 0x400000, 0x400001, OKIM6295_status_0_lsb_r },
257 { 0x500000, 0x51ffff, MRA16_RAM },
258 { 0x520000, 0x53ffff, MRA16_RAM },
259 { 0x600000, 0x6007ff, MRA16_RAM },
260 { 0x700000, 0x7047ff, MRA16_RAM },
261 { 0x800000, 0x800001, input_port_0_word_r },
262 { 0x800002, 0x800003, input_port_1_word_r },
263 { 0x800004, 0x800005, input_port_2_word_r },
264 MEMORY_END
265
266 static MEMORY_WRITE16_START( galpanic_writemem )
267 { 0x000000, 0x3fffff, MWA16_ROM },
268 { 0x400000, 0x400001, OKIM6295_data_0_lsb_w },
269 { 0x500000, 0x51ffff, MWA16_RAM, &galpanic_fgvideoram, &galpanic_fgvideoram_size },
270 { 0x520000, 0x53ffff, galpanic_bgvideoram_w, &galpanic_bgvideoram }, /* + work RAM */
271 { 0x600000, 0x6007ff, galpanic_paletteram_w, &paletteram16 }, /* 1024 colors, but only 512 seem to be used */
272 { 0x700000, 0x7047ff, MWA16_RAM, &spriteram16, &spriteram_size },
273 { 0x900000, 0x900001, galpanic_6295_bankswitch_w },
274 { 0xa00000, 0xa00001, MWA16_NOP }, /* ??? */
275 { 0xb00000, 0xb00001, MWA16_NOP }, /* ??? */
276 { 0xc00000, 0xc00001, MWA16_NOP }, /* ??? */
277 { 0xd00000, 0xd00001, MWA16_NOP }, /* ??? */
278 MEMORY_END
279
280 static MEMORY_READ16_START( galpanib_readmem )
281 { 0x000000, 0x3fffff, MRA16_ROM },
282 { 0x400000, 0x400001, OKIM6295_status_0_lsb_r },
283 { 0x500000, 0x51ffff, MRA16_RAM },
284 { 0x520000, 0x53ffff, MRA16_RAM },
285 { 0x600000, 0x6007ff, MRA16_RAM },
286 { 0x700000, 0x7047ff, MRA16_RAM },
287 { 0x800000, 0x800001, input_port_0_word_r },
288 { 0x800002, 0x800003, input_port_1_word_r },
289 { 0x800004, 0x800005, input_port_2_word_r },
290 { 0xe00000, 0xe00015, galpanib_calc_r },
291 MEMORY_END
292
293 static MEMORY_WRITE16_START( galpanib_writemem )
294 { 0x000000, 0x3fffff, MWA16_ROM },
295 { 0x400000, 0x400001, OKIM6295_data_0_lsb_w },
296 { 0x500000, 0x51ffff, MWA16_RAM, &galpanic_fgvideoram, &galpanic_fgvideoram_size },
297 { 0x520000, 0x53ffff, galpanic_bgvideoram_w, &galpanic_bgvideoram }, /* + work RAM */
298 { 0x600000, 0x6007ff, galpanic_paletteram_w, &paletteram16 }, /* 1024 colors, but only 512 seem to be used */
299 { 0x700000, 0x7047ff, MWA16_RAM, &spriteram16, &spriteram_size },
300 { 0x900000, 0x900001, galpanic_6295_bankswitch_w },
301 { 0xa00000, 0xa00001, MWA16_NOP }, /* ??? */
302 { 0xb00000, 0xb00001, MWA16_NOP }, /* ??? */
303 { 0xc00000, 0xc00001, MWA16_NOP }, /* ??? */
304 { 0xd00000, 0xd00001, MWA16_NOP }, /* ??? */
305 { 0xe00000, 0xe00015, galpanib_calc_w, &galpanib_calc_data },
306 MEMORY_END
307
308 static READ16_HANDLER( kludge )
309 {
310 return mame_rand() & 0x0700;
311 }
312
MEMORY_READ16_START(comad_readmem)313 static MEMORY_READ16_START( comad_readmem )
314 { 0x000000, 0x4fffff, MRA16_ROM },
315 { 0x500000, 0x51ffff, MRA16_RAM },
316 { 0x520000, 0x53ffff, MRA16_RAM },
317 { 0x600000, 0x6007ff, MRA16_RAM },
318 { 0x700000, 0x700fff, MRA16_RAM },
319 { 0x800000, 0x800001, input_port_0_word_r },
320 { 0x800002, 0x800003, input_port_1_word_r },
321 { 0x800004, 0x800005, input_port_2_word_r },
322 /* { 0x800006, 0x800007, }, ??*/
323 { 0x80000a, 0x80000b, kludge }, /* bits 8-a = timer? palette update code waits for them to be 111 */
324 { 0x80000c, 0x80000d, kludge }, /* missw96 bits 8-a = timer? palette update code waits for them to be 111 */
325 { 0xc00000, 0xc0ffff, MRA16_RAM }, /* missw96 */
326 { 0xc80000, 0xc8ffff, MRA16_RAM }, /* fantasia, newfant */
327 { 0xf00000, 0xf00001, OKIM6295_status_0_msb_r }, /* fantasia, missw96 */
328 { 0xf80000, 0xf80001, OKIM6295_status_0_msb_r }, /* newfant */
329 MEMORY_END
330
331 static MEMORY_WRITE16_START( comad_writemem )
332 { 0x000000, 0x4fffff, MWA16_ROM },
333 { 0x500000, 0x51ffff, MWA16_RAM, &galpanic_fgvideoram, &galpanic_fgvideoram_size },
334 { 0x520000, 0x53ffff, galpanic_bgvideoram_w, &galpanic_bgvideoram }, /* + work RAM */
335 { 0x600000, 0x6007ff, galpanic_paletteram_w, &paletteram16 }, /* 1024 colors, but only 512 seem to be used */
336 { 0x700000, 0x700fff, MWA16_RAM, &spriteram16, &spriteram_size },
337 { 0x900000, 0x900001, galpanic_6295_bankswitch_w }, /* not sure */
338 { 0xc00000, 0xc0ffff, MWA16_RAM }, /* missw96 */
339 { 0xc80000, 0xc8ffff, MWA16_RAM }, /* fantasia, newfant */
340 { 0xf00000, 0xf00001, OKIM6295_data_0_msb_w }, /* fantasia, missw96 */
341 { 0xf80000, 0xf80001, OKIM6295_data_0_msb_w }, /* newfant */
342 MEMORY_END
343
344 static MEMORY_READ16_START( fantsia2_readmem )
345 { 0x000000, 0x4fffff, MRA16_ROM },
346 { 0x500000, 0x51ffff, MRA16_RAM },
347 { 0x520000, 0x53ffff, MRA16_RAM },
348 { 0x600000, 0x6007ff, MRA16_RAM },
349 { 0x700000, 0x700fff, MRA16_RAM },
350 { 0x800000, 0x800001, input_port_0_word_r },
351 { 0x800002, 0x800003, input_port_1_word_r },
352 { 0x800004, 0x800005, input_port_2_word_r },
353 /* { 0x800006, 0x800007, }, ??*/
354 { 0x800008, 0x800009, kludge }, /* bits 8-a = timer? palette update code waits for them to be 111 */
355 { 0xf80000, 0xf8ffff, MRA16_RAM },
356 { 0xc80000, 0xc80001, OKIM6295_status_0_msb_r },
357 MEMORY_END
358
359 static MEMORY_WRITE16_START( fantsia2_writemem )
360 { 0x000000, 0x4fffff, MWA16_ROM },
361 { 0x500000, 0x51ffff, MWA16_RAM, &galpanic_fgvideoram, &galpanic_fgvideoram_size },
362 { 0x520000, 0x53ffff, galpanic_bgvideoram_w, &galpanic_bgvideoram }, /* + work RAM */
363 { 0x600000, 0x6007ff, galpanic_paletteram_w, &paletteram16 }, /* 1024 colors, but only 512 seem to be used */
364 { 0x700000, 0x700fff, MWA16_RAM, &spriteram16, &spriteram_size },
365 { 0x900000, 0x900001, galpanic_6295_bankswitch_w }, /* not sure */
366 { 0xf80000, 0xf8ffff, MWA16_RAM },
367 { 0xa00000, 0xa00001, MWA16_NOP }, /* coin counters, + ? */
368 { 0xc80000, 0xc80001, OKIM6295_data_0_msb_w },
369 MEMORY_END
370
371
372 static MEMORY_READ16_START( galhustl_readmem )
373 { 0x000000, 0x0fffff, MRA16_ROM },
374 { 0x500000, 0x51ffff, MRA16_RAM },
375 { 0x580000, 0x583fff, MRA16_RAM },
376 { 0x600000, 0x6007ff, MRA16_RAM },
377 { 0x600800, 0x600fff, MRA16_RAM },
378 { 0x680000, 0x68001f, MRA16_RAM },
379 { 0x700000, 0x700fff, MRA16_RAM },
380 { 0x780000, 0x78001f, MRA16_RAM },
381 { 0x800000, 0x800001, input_port_0_word_r },
382 { 0x800002, 0x800003, input_port_1_word_r },
383 { 0x800004, 0x800005, input_port_2_word_r },
384 { 0xd00000, 0xd00001, OKIM6295_status_0_msb_r },
385 { 0xe80000, 0xe8ffff, MRA16_RAM },
386 MEMORY_END
387
388 static MEMORY_WRITE16_START( galhustl_writemem )
389 { 0x000000, 0x0fffff, MWA16_ROM },
390 { 0x500000, 0x51ffff, MWA16_RAM, &galpanic_fgvideoram, &galpanic_fgvideoram_size },
391 { 0x520000, 0x53ffff, galpanic_bgvideoram_w, &galpanic_bgvideoram },
392 { 0x580000, 0x583fff, galpanic_bgvideoram_mirror_w },
393 { 0x600000, 0x6007ff, galpanic_paletteram_w, &paletteram16 }, /* 1024 colors, but only 512 seem to be used */
394 { 0x600800, 0x600fff, MWA16_RAM }, /* writes only 1?*/
395 { 0x680000, 0x68001f, MWA16_RAM }, /* regs?*/
396 { 0x700000, 0x700fff, MWA16_RAM, &spriteram16, &spriteram_size },
397 { 0x780000, 0x78001f, MWA16_RAM }, /* regs?*/
398 { 0xa00000, 0xa00001, MWA16_NOP }, /* ?*/
399 { 0x900000, 0x900001, galpanic_6295_bankswitch_w },
400 { 0xd00000, 0xd00001, OKIM6295_data_0_msb_w },
401 { 0xe80000, 0xe8ffff, MWA16_RAM },
402 MEMORY_END
403
404
405 INPUT_PORTS_START( galpanic )
406 PORT_START
407 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
408 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
409 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
410 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x000522 */
411 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
412 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
413 PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
414 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
415 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
416 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
417 /* Coinage - World (0x03ffff.b = 03) */
418 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
419 PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
420 PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) )
421 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
422 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
423 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
424 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) )
425 PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) )
426 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) )
427 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
428 /* Coinage - Japan (0x03ffff.b = 01) and US (0x03ffff.b = 02)
429 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
430 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
431 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
432 PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
433 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
434 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
435 PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) )
436 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
437 PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
438 PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) )
439 */
440 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER1 )
441 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER1 )
442 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER1 )
443 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER1 )
444 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
445 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
446 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
447 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
448
449 PORT_START
450 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
451 PORT_DIPSETTING( 0x0002, "Easy" )
452 PORT_DIPSETTING( 0x0003, "Normal" )
453 PORT_DIPSETTING( 0x0001, "Hard" )
454 PORT_DIPSETTING( 0x0000, "Hardest" )
455 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
456 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
457 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
458 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
459 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
460 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
461 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
462 PORT_DIPSETTING( 0x0010, "2" )
463 PORT_DIPSETTING( 0x0030, "3" )
464 PORT_DIPSETTING( 0x0020, "4" )
465 PORT_DIPSETTING( 0x0000, "5" )
466 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) /* demo sounds? - see notes */
467 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
468 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
469 PORT_DIPNAME( 0x0080, 0x0080, "Character Test" )
470 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
471 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
472 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER2 )
473 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER2 )
474 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER2 )
475 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER2 )
476 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
477 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
478 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
479 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
480
481 PORT_START
482 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
483 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
484 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
485 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
486 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
487 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
488 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
489 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
490 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
491 INPUT_PORTS_END
492
493 INPUT_PORTS_START( galpanib )
494 PORT_START
495 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
496 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
497 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
498 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00060a */
499 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
500 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
501 PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
502 PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" )
503 PORT_DIPSETTING( 0x0008, "Mode 1" )
504 PORT_DIPSETTING( 0x0000, "Mode 2" )
505 /* Coinage - Japan (0x03ffff.b = 01)
506 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
507 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
508 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
509 PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
510 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
511 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
512 PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) )
513 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
514 PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) )
515 PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) )
516 */
517 /* Coin Mode 1 - US (0x03ffff.b = 02) and World (0x03ffff.b = 03) */
518 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
519 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
520 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
521 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) )
522 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
523 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
524 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
525 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
526 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) )
527 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
528 /* Coin Mode 2 - US (0x03ffff.b = 02) and World (0x03ffff.b = 03)
529 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
530 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
531 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
532 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
533 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
534 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
535 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
536 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
537 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
538 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
539 */
540 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER1 )
541 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER1 )
542 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER1 )
543 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER1 )
544 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
545 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
546 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
547 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
548
549 PORT_START
550 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
551 PORT_DIPSETTING( 0x0002, "Easy" )
552 PORT_DIPSETTING( 0x0003, "Normal" )
553 PORT_DIPSETTING( 0x0001, "Hard" )
554 PORT_DIPSETTING( 0x0000, "Hardest" )
555 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
556 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
557 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
558 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
559 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
560 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
561 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
562 PORT_DIPSETTING( 0x0010, "2" )
563 PORT_DIPSETTING( 0x0030, "3" )
564 PORT_DIPSETTING( 0x0020, "4" )
565 PORT_DIPSETTING( 0x0000, "5" )
566 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) /* demo sounds? - see notes */
567 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
568 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
569 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
570 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
571 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
572 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER2 )
573 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER2 )
574 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER2 )
575 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER2 )
576 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
577 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
578 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
579 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
580
581 PORT_START
582 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
583 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
584 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
585 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
586 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
587 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
588 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
589 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
590 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
591 INPUT_PORTS_END
592
593 INPUT_PORTS_START( fantasia )
594 PORT_START
595 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
596 PORT_DIPSETTING( 0x0002, "Easy" )
597 PORT_DIPSETTING( 0x0003, "Normal" )
598 PORT_DIPSETTING( 0x0001, "Hard" )
599 PORT_DIPSETTING( 0x0000, "Hardest" )
600 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
601 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
602 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
603 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) /* freeze/vblank? - code at 0x000734 ('fantasia') */
604 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) /* or 0x00075a ('newfant') - not called ? */
605 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
606 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
607 PORT_DIPSETTING( 0x0010, "2" )
608 PORT_DIPSETTING( 0x0030, "3" )
609 PORT_DIPSETTING( 0x0020, "4" )
610 PORT_DIPSETTING( 0x0000, "5" )
611 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) /* demo sounds? - same "trap #$d" as in 'galpanic' */
612 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
613 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
614 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
615 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
616 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
617 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
618 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
619 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
620 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
621 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
622 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
623 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
624 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
625
626 PORT_START
627 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
628 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
629 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
630 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00021c */
631 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
632 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
633 PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
634 PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" )
635 PORT_DIPSETTING( 0x0008, "Mode 1" )
636 PORT_DIPSETTING( 0x0000, "Mode 2" )
637 /* Coin Mode 1 */
638 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
639 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
640 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
641 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) )
642 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
643 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
644 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
645 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
646 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) )
647 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
648 /* Coin Mode 2
649 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
650 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
651 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
652 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
653 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
654 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
655 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
656 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
657 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
658 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
659 */
660 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
661 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
662 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
663 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
664 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
665 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Shot2" in "test mode" */
666 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
667 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
668
669 PORT_START
670 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
671 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
672 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
673 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
674 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
675 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
676 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) /* MAME may crash when pressed (see notes) */
677 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "Service" in "test mode" */
678 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
679 INPUT_PORTS_END
680
681 /* Same as 'fantasia', but no "Service Mode" Dip Switch (and thus no "hidden" buttons) */
682 INPUT_PORTS_START( missw96 )
683 PORT_START
684 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
685 PORT_DIPSETTING( 0x0002, "Easy" )
686 PORT_DIPSETTING( 0x0003, "Normal" )
687 PORT_DIPSETTING( 0x0001, "Hard" )
688 PORT_DIPSETTING( 0x0000, "Hardest" )
689 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
690 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
691 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
692 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) /* freeze/vblank? - code at 0x00074e - not called ? */
693 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
694 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
695 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
696 PORT_DIPSETTING( 0x0010, "2" )
697 PORT_DIPSETTING( 0x0030, "3" )
698 PORT_DIPSETTING( 0x0020, "4" )
699 PORT_DIPSETTING( 0x0000, "5" )
700 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) /* demo sounds? - same "trap #$d" as in 'galpanic' */
701 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
702 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
703 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
704 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
705 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
706 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
707 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
708 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
709 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
710 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
711 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
712 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
713 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
714
715 PORT_START
716 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
717 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
718 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
719 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) /* flip screen? - code at 0x00021c */
720 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
721 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
722 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
723 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
724 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
725 PORT_DIPNAME( 0x0008, 0x0008, "Coin Mode" )
726 PORT_DIPSETTING( 0x0008, "Mode 1" )
727 PORT_DIPSETTING( 0x0000, "Mode 2" )
728 /* Coin Mode 1 */
729 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
730 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
731 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
732 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_2C ) )
733 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
734 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
735 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
736 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
737 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) )
738 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
739 /* Coin Mode 2
740 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
741 PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) )
742 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
743 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) )
744 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
745 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
746 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
747 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
748 PORT_DIPSETTING( 0x0040, DEF_STR( 1C_3C ) )
749 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C ) )
750 */
751 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
752 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
753 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
754 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
755 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
756 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
757 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
758 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
759
760 PORT_START
761 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
762 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
763 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
764 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
765 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
766 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
767 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) /* MAME may crash when pressed (see notes) */
768 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
769 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
770 INPUT_PORTS_END
771
772 INPUT_PORTS_START( galhustl )
773 PORT_START
774 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) )
775 PORT_DIPSETTING( 0x0000, "6" )
776 PORT_DIPSETTING( 0x0001, "7" )
777 PORT_DIPSETTING( 0x0003, "8" )
778 PORT_DIPSETTING( 0x0002, "10" )
779 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
780 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
781 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
782 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
783 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
784 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
785 PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
786 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
787 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
788 PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
789 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
790 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
791 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
792 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
793 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
794 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
795 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
796 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
797 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
798 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
799 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
800 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
801 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
802 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
803
804 PORT_START
805 PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )
806 PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
807 PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
808 PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
809 PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
810 PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
811 PORT_DIPSETTING( 0x0003, DEF_STR( 2C_3C ) )
812 PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
813 PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
814 PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
815 PORT_DIPSETTING( 0x0010, "Easy" ) /* 5000 - 7000 */
816 PORT_DIPSETTING( 0x0018, "Normal" ) /* 4000 - 6000 */
817 PORT_DIPSETTING( 0x0008, "Hard" ) /* 6000 - 8000 */
818 PORT_DIPSETTING( 0x0000, "Hardest" ) /* 7000 - 9000 */
819 PORT_DIPNAME( 0x0060, 0x0060, "Play Time" )
820 PORT_DIPSETTING( 0x0040, "120 Sec" )
821 PORT_DIPSETTING( 0x0060, "100 Sec" )
822 PORT_DIPSETTING( 0x0020, "80 Sec" )
823 PORT_DIPSETTING( 0x0000, "70 Sec" )
824 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
825 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
826 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
827 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
828 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
829 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
830 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
831 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
832 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
833 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
834 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
835
836 PORT_START
837 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
838 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
839 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
840 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
841 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 )
842 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
843 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
844 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
845 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
846 INPUT_PORTS_END
847
848
849 static struct GfxLayout spritelayout =
850 {
851 16,16,
852 RGN_FRAC(1,1),
853 4,
854 { 0, 1, 2, 3 },
855 { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
856 64*4, 65*4, 66*4, 67*4, 68*4, 69*4, 70*4, 71*4 },
857 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
858 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 },
859 128*8
860 };
861
862 static struct GfxDecodeInfo gfxdecodeinfo[] =
863 {
864 { REGION_GFX1, 0, &spritelayout, 256, 16 },
865 { -1 } /* end of array */
866 };
867
868
869
870 static struct OKIM6295interface okim6295_interface =
871 {
872 1, /* 1 chip */
873 { 12000 }, /* 12000Hz frequency */
874 { REGION_SOUND1 }, /* memory region */
875 { 100 }
876 };
877
MACHINE_INIT(galpanib)878 static MACHINE_INIT( galpanib )
879 {
880 /* init watchdog */
881 watchdog_reset_r(0);
882 }
883
884 static MACHINE_DRIVER_START( galpanic )
885
886 /* basic machine hardware */
887 MDRV_CPU_ADD_TAG("main", M68000, 8000000)
888 MDRV_CPU_MEMORY(galpanic_readmem,galpanic_writemem)
889 MDRV_CPU_VBLANK_INT(galpanic_interrupt,2)
890
891 MDRV_FRAMES_PER_SECOND(60)
892 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION) /* frames per second, vblank duration */
893
894 /* video hardware */
895 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
896 MDRV_SCREEN_SIZE(256, 256)
897 MDRV_VISIBLE_AREA(0, 256-1, 0, 224-1)
898 MDRV_GFXDECODE(gfxdecodeinfo)
899 MDRV_PALETTE_LENGTH(1024 + 32768)
900 MDRV_COLORTABLE_LENGTH(1024)
901
902 MDRV_PALETTE_INIT(galpanic)
903 MDRV_VIDEO_START(generic_bitmapped)
904 MDRV_VIDEO_UPDATE(galpanic)
905
906 /* sound hardware */
907 MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
908 MACHINE_DRIVER_END
909
910
911 static MACHINE_DRIVER_START( galpanib )
912
913 /* basic machine hardware */
914 MDRV_IMPORT_FROM(galpanic)
915 MDRV_CPU_REPLACE("main", M68000, 10000000)
916 MDRV_CPU_MEMORY(galpanib_readmem,galpanib_writemem)
917
918 /* arm watchdog */
919 MDRV_MACHINE_INIT(galpanib)
920 MACHINE_DRIVER_END
921
922
923 static MACHINE_DRIVER_START( comad )
924
925 /* basic machine hardware */
926 MDRV_IMPORT_FROM(galpanic)
927 MDRV_CPU_REPLACE("main", M68000, 10000000)
928 MDRV_CPU_MEMORY(comad_readmem,comad_writemem)
929
930 /* video hardware */
931 MDRV_VIDEO_UPDATE(comad)
932 MACHINE_DRIVER_END
933
934
935 static MACHINE_DRIVER_START( fantsia2 )
936
937 /* basic machine hardware */
938 MDRV_IMPORT_FROM(comad)
939 MDRV_CPU_REPLACE("main", M68000, 12000000) /* ? */
940 MDRV_CPU_MEMORY(fantsia2_readmem,fantsia2_writemem)
941
942 /* video hardware */
943 MDRV_VIDEO_UPDATE(comad)
944 MACHINE_DRIVER_END
945
946 static MACHINE_DRIVER_START( galhustl )
947
948 /* basic machine hardware */
949 MDRV_IMPORT_FROM(comad)
950 MDRV_CPU_REPLACE("main", M68000, 12000000) /* ? */
951 MDRV_CPU_MEMORY(galhustl_readmem,galhustl_writemem)
952 MDRV_CPU_VBLANK_INT(galhustl_interrupt,3)
953
954 /* video hardware */
955 MDRV_VIDEO_UPDATE(comad)
956 MACHINE_DRIVER_END
957
958 /***************************************************************************
959
960 Game driver(s)
961
962 ***************************************************************************/
963
964 ROM_START( galpanic )
965 ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */
966 ROM_LOAD16_BYTE( "pm110.4m2", 0x000000, 0x80000, CRC(ae6b17a8) SHA1(f3a625eef45cc85cdf9760f77ea7ce93387911f9) )
967 ROM_LOAD16_BYTE( "pm109.4m1", 0x000001, 0x80000, CRC(b85d792d) SHA1(0ed78e15f6e58285ce6944200b023ada1e673b0e) )
968 /* The above two ROMs contain valid 68000 code, but the game doesn't */
969 /* work. I think there might be a protection (addressed at e00000). */
970 /* The two following ROMs replace the code with a working version. */
971 ROM_LOAD16_BYTE( "pm112.6", 0x000000, 0x20000, CRC(7b972b58) SHA1(a7f619fca665b15f4f004ae739f5776ee2d4d432) )
972 ROM_LOAD16_BYTE( "pm111.5", 0x000001, 0x20000, CRC(4eb7298d) SHA1(8858a40ffefbe4ecea7d5b70311c3775b7d987eb) )
973 ROM_LOAD16_BYTE( "pm004e.8", 0x100001, 0x80000, CRC(d3af52bc) SHA1(46be057106388578defecab1cdd1793ec76ebe92) )
974 ROM_LOAD16_BYTE( "pm005e.7", 0x100000, 0x80000, CRC(d7ec650c) SHA1(6c2250c74381497154bf516e0cf1db6bb56bb446) )
975 ROM_LOAD16_BYTE( "pm000e.15", 0x200001, 0x80000, CRC(5d220f3f) SHA1(7ff373e01027c8832712f7a2d732f8e49b875878) )
976 ROM_LOAD16_BYTE( "pm001e.14", 0x200000, 0x80000, CRC(90433eb1) SHA1(8688a85747ad9ecac395d782f130baa64fb9d12b) )
977 ROM_LOAD16_BYTE( "pm002e.17", 0x300001, 0x80000, CRC(713ee898) SHA1(c9f608a57fb90e5ee15eb76a74a7afcc406d5b4e) )
978 ROM_LOAD16_BYTE( "pm003e.16", 0x300000, 0x80000, CRC(6bb060fd) SHA1(4fc3946866c5a55e8340b62b5ad9beae723ce0da) )
979
980 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
981 ROM_LOAD( "pm006e.67", 0x000000, 0x100000, CRC(57aec037) SHA1(e6ba095b6892d4dcd76ba3343a97dd98ae29dc24) )
982
983 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
984 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
985 ROM_LOAD( "pm008e.l", 0x00000, 0x80000, CRC(d9379ba8) SHA1(5ae7c743319b1a12f2b101a9f0f8fe0728ed1476) )
986 ROM_RELOAD( 0x40000, 0x80000 )
987 ROM_LOAD( "pm007e.u", 0xc0000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) )
988 ROM_END
989
990 ROM_START( galpanib )
991 ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */
992 ROM_LOAD16_BYTE( "pm110.4m2", 0x000000, 0x80000, CRC(ae6b17a8) SHA1(f3a625eef45cc85cdf9760f77ea7ce93387911f9) )
993 ROM_LOAD16_BYTE( "pm109.4m1", 0x000001, 0x80000, CRC(b85d792d) SHA1(0ed78e15f6e58285ce6944200b023ada1e673b0e) )
994 ROM_LOAD16_BYTE( "pm004e.8", 0x100001, 0x80000, CRC(d3af52bc) SHA1(46be057106388578defecab1cdd1793ec76ebe92) )
995 ROM_LOAD16_BYTE( "pm005e.7", 0x100000, 0x80000, CRC(d7ec650c) SHA1(6c2250c74381497154bf516e0cf1db6bb56bb446) )
996 ROM_LOAD16_BYTE( "pm000e.15", 0x200001, 0x80000, CRC(5d220f3f) SHA1(7ff373e01027c8832712f7a2d732f8e49b875878) )
997 ROM_LOAD16_BYTE( "pm001e.14", 0x200000, 0x80000, CRC(90433eb1) SHA1(8688a85747ad9ecac395d782f130baa64fb9d12b) )
998 ROM_LOAD16_BYTE( "pm002e.17", 0x300001, 0x80000, CRC(713ee898) SHA1(c9f608a57fb90e5ee15eb76a74a7afcc406d5b4e) )
999 ROM_LOAD16_BYTE( "pm003e.16", 0x300000, 0x80000, CRC(6bb060fd) SHA1(4fc3946866c5a55e8340b62b5ad9beae723ce0da) )
1000
1001 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1002 ROM_LOAD( "pm006e.67", 0x000000, 0x100000, CRC(57aec037) SHA1(e6ba095b6892d4dcd76ba3343a97dd98ae29dc24) )
1003
1004 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1005 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1006 ROM_LOAD( "pm008e.l", 0x00000, 0x80000, CRC(d9379ba8) SHA1(5ae7c743319b1a12f2b101a9f0f8fe0728ed1476) )
1007 ROM_RELOAD( 0x40000, 0x80000 )
1008 ROM_LOAD( "pm007e.u", 0xc0000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) )
1009 ROM_END
1010
1011 ROM_START( fantasia )
1012 ROM_REGION( 0x500000, REGION_CPU1, 0 ) /* 68000 code */
1013 ROM_LOAD16_BYTE( "prog2_16.rom", 0x000000, 0x80000, CRC(e27c6c57) SHA1(420b66928c46e76fa2496f221691dd6c34542287) )
1014 ROM_LOAD16_BYTE( "prog1_13.rom", 0x000001, 0x80000, CRC(68d27413) SHA1(84cb7d6523325496469d621f6f4da1b719162147) )
1015 ROM_LOAD16_BYTE( "iscr6_09.rom", 0x100000, 0x80000, CRC(2a588393) SHA1(ef66ed94dd40a95a9b0fb5c3b075c1f654f60927) )
1016 ROM_LOAD16_BYTE( "iscr5_05.rom", 0x100001, 0x80000, CRC(6160e0f0) SHA1(faec9d082c9039885afa4560aa87c05e9ecb5217) )
1017 ROM_LOAD16_BYTE( "iscr4_08.rom", 0x200000, 0x80000, CRC(f776b743) SHA1(bd4d666ede454a56181e109745ac4b3203b2a87c) )
1018 ROM_LOAD16_BYTE( "iscr3_04.rom", 0x200001, 0x80000, CRC(5df0dff2) SHA1(62ebd3c79f2e8ab30d6862cc4bf80f1b56f1f572) )
1019 ROM_LOAD16_BYTE( "iscr2_07.rom", 0x300000, 0x80000, CRC(5707d861) SHA1(33f1cff693dfcb04edbf8738d3ea2a1884e6ff0c) )
1020 ROM_LOAD16_BYTE( "iscr1_03.rom", 0x300001, 0x80000, CRC(36cb811a) SHA1(403cef012990b0e01b481b8afc6b5811e7137833) )
1021 ROM_LOAD16_BYTE( "imag2_10.rom", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
1022 ROM_LOAD16_BYTE( "imag1_06.rom", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
1023
1024 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1025 ROM_LOAD( "obj1_17.rom", 0x00000, 0x80000, CRC(aadb6eb7) SHA1(6eaa994ad7b4e8341360eaf5ddb46240316b7274) )
1026
1027 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1028 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1029 ROM_LOAD( "mus-1_01.rom", 0x00000, 0x80000, CRC(22955efb) SHA1(791c18d1aa0c10810da05c199108f51f99fe1d49) )
1030 ROM_RELOAD( 0x40000, 0x80000 )
1031 ROM_LOAD( "mus-2_02.rom", 0xc0000, 0x80000, CRC(4cd4d6c3) SHA1(a617472a810aef6d82f5fe75ef2980c03c21c2fa) )
1032
1033 ROM_REGION16_BE( 0x200000, REGION_USER1, 0 ) /* unknown */
1034 ROM_LOAD16_BYTE( "gscr2_15.rom", 0x000000, 0x80000, CRC(46666768) SHA1(7281c4b45f6f9f6ad89fa2bb3f67f30433c0c513) )
1035 ROM_LOAD16_BYTE( "gscr1_12.rom", 0x000001, 0x80000, CRC(4bd25be6) SHA1(9834f081c0390ccaa1234efd2393b6495e946c64) )
1036 ROM_LOAD16_BYTE( "gscr4_14.rom", 0x100000, 0x80000, CRC(4e7e6ed4) SHA1(3e9e942e3de398edc8ac9f82769c3f41708d3741) )
1037 ROM_LOAD16_BYTE( "gscr3_11.rom", 0x100001, 0x80000, CRC(6d00a4c5) SHA1(8fc0d78200b82ab87658d364ebe2f2e7239722e7) )
1038 ROM_END
1039
1040 ROM_START( fantsy95 )
1041 ROM_REGION( 0x500000, REGION_CPU1, 0 ) /* 68000 code */
1042 ROM_LOAD16_BYTE( "prog2.12", 0x000000, 0x80000, CRC(1e684da7) SHA1(2104a6fb5f019011009f4faa769afcada90cff97) )
1043 ROM_LOAD16_BYTE( "prog1.7", 0x000001, 0x80000, CRC(dc4e4f6b) SHA1(9934121692a6d32164bef03c72c25dc727438e54) )
1044 ROM_LOAD16_BYTE( "i-scr2.10", 0x100000, 0x80000, CRC(ab8756ff) SHA1(0a7aa977151962e67b15a7e0f819b1412ff8dbdc) )
1045 ROM_LOAD16_BYTE( "i-scr1.5", 0x100001, 0x80000, CRC(d8e2ef77) SHA1(ec2c1dcc13e281288b5df43fa7a0b3cdf7357459) )
1046 ROM_LOAD16_BYTE( "i-scr4.9", 0x200000, 0x80000, CRC(4e52eb23) SHA1(be61c0dc68c49ded2dc6e8852fd92acac4986700) )
1047 ROM_LOAD16_BYTE( "i-scr3.4", 0x200001, 0x80000, CRC(797731f8) SHA1(571f939a7f85bd5b75a0660621961b531f44f736) )
1048 ROM_LOAD16_BYTE( "i-scr6.8", 0x300000, 0x80000, CRC(6f8e5239) SHA1(a1c2ec79e80906ca18cf3532ce38a1495ab37e44) )
1049 ROM_LOAD16_BYTE( "i-scr5.3", 0x300001, 0x80000, CRC(85420e3f) SHA1(d29e81cb1a33dca6232e14a0df2e21c8de45ba71) )
1050 ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
1051 ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
1052
1053 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1054 ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) )
1055
1056 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1057 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1058 ROM_LOAD( "musc1.1", 0x00000, 0x80000, CRC(3117e2ef) SHA1(6581a7104556d44f814c537bbd74998922927034) )
1059 ROM_RELOAD( 0x40000, 0x80000 )
1060 ROM_LOAD( "musc2.2", 0xc0000, 0x80000, CRC(0c1109f9) SHA1(0e4ea534a32b1649e2e9bb8af7254b917ec03a90) )
1061 ROM_END
1062
1063 ROM_START( newfant )
1064 ROM_REGION( 0x500000, REGION_CPU1, 0 ) /* 68000 code */
1065 ROM_LOAD16_BYTE( "prog2_12.rom", 0x000000, 0x80000, CRC(de43a457) SHA1(91db13f63b46146131c58e775119ea3b073ca409) )
1066 ROM_LOAD16_BYTE( "prog1_07.rom", 0x000001, 0x80000, CRC(370b45be) SHA1(775873df9d3af803dbd1a392a45cad5f37b1b1c7) )
1067 ROM_LOAD16_BYTE( "iscr2_10.rom", 0x100000, 0x80000, CRC(4f2da2eb) SHA1(4f0b72327d1bdfad24d822953f45218bfae29cff) )
1068 ROM_LOAD16_BYTE( "iscr1_05.rom", 0x100001, 0x80000, CRC(63c6894f) SHA1(213544da570a167f3411357308c576805f6882f3) )
1069 ROM_LOAD16_BYTE( "iscr4_09.rom", 0x200000, 0x80000, CRC(725741ec) SHA1(3455cf0aed9653c66b8b2f905ad683687d517419) )
1070 ROM_LOAD16_BYTE( "iscr3_04.rom", 0x200001, 0x80000, CRC(51d6b362) SHA1(bcd57643ac9d79c150714ec6b6a2bb8a24acf7a5) )
1071 ROM_LOAD16_BYTE( "iscr6_08.rom", 0x300000, 0x80000, CRC(178b2ef3) SHA1(d3c092a282278968a319e06731481570f217d404) )
1072 ROM_LOAD16_BYTE( "iscr5_03.rom", 0x300001, 0x80000, CRC(d2b5c5fa) SHA1(80fde69bc5f4e958b5d57a5179b6e601192780f4) )
1073 ROM_LOAD16_BYTE( "iscr8_11.rom", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
1074 ROM_LOAD16_BYTE( "iscr7_06.rom", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
1075
1076 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1077 ROM_LOAD( "obj1_13.rom", 0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) )
1078
1079 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1080 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1081 ROM_LOAD( "musc1_01.rom", 0x00000, 0x80000, CRC(10347fce) SHA1(f5fbe8ef363fe18b7104be5d2fa92943d1a5d7a2) )
1082 ROM_RELOAD( 0x40000, 0x80000 )
1083 ROM_LOAD( "musc2_02.rom", 0xc0000, 0x80000, CRC(b9646a8c) SHA1(e9432261ac86e4251a2c97301c6d014c05110a9c) )
1084 ROM_END
1085
1086 ROM_START( missw96 )
1087 ROM_REGION( 0x500000, REGION_CPU1, 0 ) /* 68000 code */
1088 ROM_LOAD16_BYTE( "mw96_10.bin", 0x000000, 0x80000, CRC(b1309bb1) SHA1(3cc7a903cb007d8fc0f836a33780c1c9231d1629) )
1089 ROM_LOAD16_BYTE( "mw96_06.bin", 0x000001, 0x80000, CRC(a5892bb3) SHA1(99130eb0af307fe66c9668414475e003f9c7d969) )
1090 ROM_LOAD16_BYTE( "mw96_09.bin", 0x100000, 0x80000, CRC(7032dfdf) SHA1(53728b60d0c772f6d936be47e21b069d0a75a2b4) )
1091 ROM_LOAD16_BYTE( "mw96_05.bin", 0x100001, 0x80000, CRC(91de5ab5) SHA1(d1153fa4745830d0fdd5bb311c38bf098ea29deb) )
1092 ROM_LOAD16_BYTE( "mw96_08.bin", 0x200000, 0x80000, CRC(b8e66fb5) SHA1(8abc6f8d85e0ad6acbf518e11fd81debc5a90957) )
1093 ROM_LOAD16_BYTE( "mw96_04.bin", 0x200001, 0x80000, CRC(e77a04f8) SHA1(e0043ec1d1bd5415c05ae93c9d785fc70174cb54) )
1094 ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
1095 ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
1096
1097 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1098 ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
1099
1100 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1101 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1102 ROM_LOAD( "mw96_01.bin", 0x00000, 0x80000, CRC(e78a659e) SHA1(d209184c70e0d7e6d17034c6f536535cda782d42) )
1103 ROM_RELOAD( 0x40000, 0x80000 )
1104 ROM_LOAD( "mw96_02.bin", 0xc0000, 0x80000, CRC(60fa0c00) SHA1(391aa31e61663cc083a8a2320ba48a9859f3fd4e) )
1105 ROM_END
1106
1107 ROM_START( fantsia2 )
1108 ROM_REGION( 0x500000, REGION_CPU1, 0 ) /* 68000 code */
1109 ROM_LOAD16_BYTE( "prog2.g17", 0x000000, 0x80000, CRC(57c59972) SHA1(4b1da928b537cf340a67026d07bc3dfc078b0d0f) )
1110 ROM_LOAD16_BYTE( "prog1.f17", 0x000001, 0x80000, CRC(bf2d9a26) SHA1(92f0c1bd32f1e5e0ede3ba847242a212dfae4986) )
1111 ROM_LOAD16_BYTE( "scr2.g16", 0x100000, 0x80000, CRC(887b1bc5) SHA1(b6fcdc8a56ea25758f363224d256e9b6c8e30244) )
1112 ROM_LOAD16_BYTE( "scr1.f16", 0x100001, 0x80000, CRC(cbba3182) SHA1(a484819940fa1ef18ce679465c31075798748bac) )
1113 ROM_LOAD16_BYTE( "scr4.g15", 0x200000, 0x80000, CRC(ce97e411) SHA1(be0ed41362db03f384229c708f2ba4146e5cb501) )
1114 ROM_LOAD16_BYTE( "scr3.f15", 0x200001, 0x80000, CRC(480cc2e8) SHA1(38fe57ba1e34537f8be65fcc023ccd43369a5d94) )
1115 ROM_LOAD16_BYTE( "scr6.g14", 0x300000, 0x80000, CRC(b29d49de) SHA1(854b76755acf58fb8a4648a0ce72ea6bdf26c555) )
1116 ROM_LOAD16_BYTE( "scr5.f14", 0x300001, 0x80000, CRC(d5f88b83) SHA1(518a1f6732149f2851bbedca61f7313c39beb91b) )
1117 ROM_LOAD16_BYTE( "scr8.g20", 0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
1118 ROM_LOAD16_BYTE( "scr7.f20", 0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
1119
1120 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
1121 ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
1122 ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
1123
1124 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1125 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1126 ROM_LOAD( "music2.1b", 0x00000, 0x80000, CRC(23cc4f9c) SHA1(06b5342c25de966ce590917c571e5b19af1fef7d) )
1127 ROM_RELOAD( 0x40000, 0x80000 )
1128 ROM_LOAD( "music1.1a", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
1129 ROM_END
1130
1131 ROM_START( galhustl )
1132 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */
1133 ROM_LOAD16_BYTE( "ue17.3", 0x00000, 0x80000, CRC(b2583dbb) SHA1(536f4aa2246ec816c4f270f9d42acc090718ee8b) )
1134 ROM_LOAD16_BYTE( "ud17.4", 0x00001, 0x80000, CRC(470a3668) SHA1(ad86e96ab8f1f5da23fb1feaabfb9c757965418e) )
1135
1136 ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */
1137 /* 00000-2ffff is fixed, 30000-3ffff is bank switched from all the ROMs */
1138 ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000, CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) )
1139 ROM_RELOAD( 0x40000, 0x80000 )
1140 ROM_LOAD( "galhstl2.uc6", 0xc0000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
1141
1142 ROM_REGION( 0x100000, REGION_GFX1, 0 )
1143 ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) )
1144 ROM_END
1145
1146 GAMEX( 1990, galpanic, 0, galpanic, galpanic, 0, ROT90, "Kaneko", "Gals Panic (set 1)", GAME_NO_COCKTAIL )
1147 GAMEX( 1990, galpanib, galpanic, galpanib, galpanib, 0, ROT90, "Kaneko", "Gals Panic (set 2)", GAME_NO_COCKTAIL )
1148 GAMEX( 1994, fantasia, 0, comad, fantasia, 0, ROT90, "Comad and New Japan System", "Fantasia", GAME_NO_COCKTAIL )
1149 GAMEX( 1995, newfant, 0, comad, fantasia, 0, ROT90, "Comad and New Japan System", "New Fantasia", GAME_NO_COCKTAIL )
1150 GAMEX( 1995, fantsy95, 0, comad, fantasia, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", GAME_NO_COCKTAIL )
1151 GAMEX( 1996, missw96, 0, comad, missw96, 0, ROT0, "Comad", "Miss World '96 Nude", GAME_NO_COCKTAIL )
1152 GAMEX( 1997, fantsia2, 0, fantsia2, missw96, 0, ROT0, "Comad", "Fantasia II", GAME_NO_COCKTAIL )
1153 GAME( 1997, galhustl, 0, galhustl, galhustl, 0, ROT0, "ACE International", "Gals Hustler" )
1154