1 /***************************************************************************
2
3 -= Newer Seta Hardware =-
4
5 driver by Luca Elia (l.elia@tin.it)
6
7
8 CPU : TMP68301*
9
10 Custom : X1-010 Sound: 8 Bit PCM
11 DX-101 Sprites
12 DX-102 x3
13
14 OSC: 50.0000MHz
15 32.5304MHz
16
17 * The Toshiba TMP68301 is a 68HC000 + serial I/O, parallel I/O,
18 3 timers, address decoder, wait generator, interrupt controller,
19 all integrated in a single chip.
20
21 -------------------------------------------------------------------------------------------
22 Ordered by Board Year Game By
23 -------------------------------------------------------------------------------------------
24 P-FG01-1 1995 Guardians / Denjin Makai II Banpresto
25 PO-113A 1994 Mobile Suit Gundam EX Revue Banpresto
26 P0-123A 1996 Wakakusamonogatari Mahjong Yonshimai Maboroshi Ware
27 P0-125A ; KE (Namco) 1996 Kosodate Quiz My Angel Namco
28 P0-136A ; KL (Namco) 1997 Kosodate Quiz My Angel 2 Namco
29 P0-142A 1999 Puzzle De Bowling Nihon System / Moss
30 P0-142A + extra parts 2000 Penguin Brothers Subsino
31 -------------------------------------------------------------------------------------------
32
33 TODO:
34
35 - Proper emulation of the TMP68301 CPU, in a core file.
36 - Flip screen / Zooming support.
37 - Fix some graphics imperfections (e.g. color depth selection,
38 "tilemap" sprites) [all done? - NS]
39 - I added a kludge involving a -0x10 yoffset, this fixes the lifeline in myangel.
40 I didn't find a better way to do it without breaking pzlbowl's title screen.
41
42 mj4simai:
43 - test mode doesn't work correctly, the grid is ok but when you press a key to go to the
44 next screen (input test) it stays up a second and then drops back into the game
45
46 myangel:
47 - some gfx at the end of the game (rays just before fireworks, and the border during
48 the wedding) have wrong colors. You can see the rays red, green and yellow because
49 that's how the palette is preinitialized by MAME, but the game never sets up those
50 palette entries. The game selects color depth "1", whose meaning is uncertain, and
51 color code 0 so I see no way to point to a different section of palette RAM.
52
53 - there are glitches in the bg horizontal scroll in the wedding sequence at the end of
54 the game. It looks like "scrollx" should be delayed one frame wrt "xoffs".
55
56 myangel2:
57 - before each level, the background image is shown with completely wrong colors. It
58 corrects itself when the level starts.
59
60 grdians:
61 - the map screen after the character selection needs zooming. There is a global
62 zoom register that should affect the background map and the level picture but
63 not the frontmost frame. This latter should use color 7ff (the last one)
64 and ignore the individual color codes in the tiles data. Zooming is also
65 used briefly in pengbros.
66
67 deerhunt,wschamp:
68 - offset tilemap sprite during demo
69
70 trophyh:
71 - mame hangs for around 15 seconds every now and then, at scene changes.
72 This is probably due to a couple of frames with an odd or corrupt sprites list,
73 taking a long time to render.
74
75 ***************************************************************************/
76
77 /***************************************************************************
78
79 MS Gundam Ex Revue
80 Banpresto, 1994
81
82 This game runs on Seta/Allumer hardware
83
84 PCB Layout
85 ----------
86
87 PO-113A BP949KA
88 |----------------------------------|
89 | X1-010 6264 U28 |
90 | 581001 U19 |
91 | U3 U5 U2 U4 581001 U17 |
92 | 62256 62256 U15 |
93 |J U20 |
94 |A U77 68301 U18 |
95 |M * U16 |
96 |M 93C46 U23 |
97 |A U22 |
98 | U21 |
99 | DSW1 50MHz |
100 | DSW2 PAL 32.5304MHz |
101 | 20MHz PAL |
102 |----------------------------------|
103
104 Notes:
105 *: unknown QFP208 (has large heatsink on it). Should be similar to other known
106 graphics chips used on Seta hardware of this era.
107 68301 clock: 16.000MHz
108 VSync: 60Hz
109
110 ***************************************************************************/
111
112 /***************************************************************************
113
114 Guardians
115 Banpresto, 1995
116
117 This hardware is not common Banpresto hardware. Possibly licenced
118 to them from another manufacturer? Or an early design that they decided
119 not to use for future games? Either way, this game is _extremely_ rare :-)
120
121 PCB Layout
122 ----------
123
124 P-FG01-1
125 ------------------------------------------------------
126 | X1-010 6264 U32 CXK581000 |
127 | CXK581000 U16 |
128 | |
129 | U20 |
130 | U3 U5 U2 U4 62256 CXK58257 |
131 | 62256 CXK58257 U15 |
132 | |
133 |J U19 |
134 |A TMP68301AF-16 |
135 |M U18 |
136 |M NEC |
137 |A NEC DX-101 U22 |
138 | DX-102 |
139 | U17 |
140 | PAL 50MHz |
141 | U21 |
142 | DSW1(8) |
143 | DSW2(8) CXK58257 NEC |
144 | CXK58257 DX-102|
145 ------------------------------------------------------
146
147 Notes:
148 HSync: 15.23kHz
149 VSync: 58.5Hz
150
151 ***************************************************************************/
152
153 /***************************************************************************
154
155 Penguin Brothers (Japan)
156
157 (c)2000 Subsino
158 Board: P0-142A
159 CPU: TMP68301 (68000 core)
160
161 OSC: 50.0000MHz
162 32.5304MHz
163 28.0000MHz
164
165 Chips.: DX-101
166 DX-102 x3
167 Sound: X1-010
168
169 Notes: pzlbowl PCB with extra parts:
170 28MHz OSC
171 2x 62256 SRAM
172 74HC00
173
174 ***************************************************************************/
175
176 /***************************************************************************
177 Sammy USA Outdoor Shooting Series PCB
178 Deer Hunting USA (c) 2000 Sammy USA
179 Turkey Hunting USA (c) 2001 Sammy USA
180 Wing Shooting Championship (c) 2001 Sammy USA*
181 Trophy Hunting - Bear & Moose (c) 2002 Sammy USA*
182 * Slightly different PCB then listed below. Two Player input / connection ports
183 CPU: Toshiba TMP68301AF-16 (100 Pin PQFP)
184 Video: NEC DX-101 (240 Pin PQFP)
185 NEC DX-102 (52 Pin PQFP x3)
186 Sound: X1-010 (Mitsubishi M60016 Gate Array, 80 Pin PQFP)
187 EEPROM: 93LC46BX (1K Low-power 64 x 16-bit organization serial EEPROM)
188 OSC: 50MHz & 28MHz
189 Other: 8 Position Dipswitch x 2
190 Lattice ispLSI2032
191 Lattice isp1016E
192 PCB Number: B0-003B
193 +-----------------------------------------------------------+
194 | VOL +------+ |
195 | |X1-010| M1 |
196 | +---+ +---+ |M60016| |
197 | | | | | M M |CALRUA| +---+ |
198 +-+ | U | | U | 2 1 +------+ | | |
199 | | 0 | | 0 | | | |
200 +-+ | 7 | | 6 | M M | U | |
201 | | | | | 2 1 | 1 | |
202 | +---+ +---+ | 8 | |
203 | Lattice | | |
204 | D +---+ C ispLSI2032 | | |
205 | S |DX | N BAT1 +-------+ +---+ |
206 | W |102| 5 |Toshiba| D |
207 | 1 +---+ | TMP | S EEPROM C |
208 | C | 68301 | W N |
209 | N Lattice +-------+ 2 2 |
210 | 6 isp1016E |
211 | +----------+ 50MHz |
212 | +---+ | | |
213 | |DX | SW1 | NEC | M M |
214 | |102| | DX-101 | 3 3 |
215 | +---+ M M | | |
216 | 1 1 | | |
217 | +----------+ |
218 | |
219 | +---+ +---++---++---+ |
220 | | | | || || | |
221 | +---+ 28MHz | | | || || | |
222 +-+ |DX | | U | | U || U || U | |
223 | |102| | 4 | | 4 || 3 || 3 | |
224 +-+ +---+ | 0 | | 1 || 8 || 9 | |
225 | | | | || || | |
226 | | | | || || | |
227 | +---+ +---++---++---+ |
228 +-----------------------------------------------------------+
229 Ram M1 are Toshiba TC55257DFL-70L
230 Ram M2 are NEC D43001GU-70L
231 Ram M3 are ISSI IS62C1024L-70Q
232 U06 Program rom ST27C801 (even)
233 U07 Program rom ST27C801 (odd)
234 U18 Mask rom (Samples 23C32000 32Mbit (read as 27C322))
235 U38 - U40 Mask roms (Graphics 23c64020 64Mbit) - 23C64020 read as 27C322 with pin11 +5v & 27C322 with pin11 GND
236 ***************************************************************************/
237
238 #include "driver.h"
239 #include "vidhrdw/generic.h"
240 #include "machine/tmp68301.h"
241 #include "machine/eeprom.h"
242 #include "seta.h"
243
244 extern VIDEO_UPDATE( seta2_gun );
245
246 /***************************************************************************
247
248
249 Memory Maps - Main CPU
250
251
252 ***************************************************************************/
253
WRITE16_HANDLER(seta2_sound_bank_w)254 WRITE16_HANDLER( seta2_sound_bank_w )
255 {
256 if (ACCESSING_LSB && Machine->sample_rate)
257 {
258 data8_t *ROM = memory_region( REGION_SOUND1 );
259 int banks = (memory_region_length( REGION_SOUND1 ) - 0x100000) / 0x20000;
260 if (data >= banks)
261 {
262 log_cb(RETRO_LOG_DEBUG, LOGPRE "CPU #0 PC %06X: invalid sound bank %04X\n",activecpu_get_pc(),data);
263 data %= banks;
264 }
265 memcpy(ROM + offset * 0x20000, ROM + 0x100000 + data * 0x20000, 0x20000);
266 }
267 }
268
269
270 /***************************************************************************
271 Guardians
272 ***************************************************************************/
273
WRITE16_HANDLER(grdians_lockout_w)274 static WRITE16_HANDLER( grdians_lockout_w )
275 {
276 if (ACCESSING_LSB)
277 {
278 /* initially 0, then either $25 (coin 1) or $2a (coin 2)*/
279 coin_counter_w(0,data & 0x01); /* or 0x04*/
280 coin_counter_w(1,data & 0x02); /* or 0x08*/
281 }
282 /* usrintf_showmessage("%04X", data & 0xffff);*/
283 }
284
MEMORY_READ16_START(grdians_readmem)285 static MEMORY_READ16_START( grdians_readmem )
286 { 0x000000, 0x1fffff, MRA16_ROM }, /* ROM*/
287 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
288 { 0x304000, 0x30ffff, MRA16_RAM }, /* ? seems tile data*/
289 { 0x600000, 0x600001, input_port_0_word_r }, /* DSW 1*/
290 { 0x600002, 0x600003, input_port_1_word_r }, /* DSW 2*/
291 { 0x700000, 0x700001, input_port_2_word_r }, /* P1*/
292 { 0x700002, 0x700003, input_port_3_word_r }, /* P2*/
293 { 0x700004, 0x700005, input_port_4_word_r }, /* Coins*/
294 { 0x70000c, 0x70000d, watchdog_reset16_r }, /* Watchdog*/
295 { 0xb00000, 0xb03fff, seta_sound_word_r }, /* Sound*/
296 { 0xc00000, 0xc3ffff, MRA16_RAM }, /* Sprites*/
297 { 0xc40000, 0xc4ffff, MRA16_RAM }, /* Palette*/
298 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
299 MEMORY_END
300
301 static MEMORY_WRITE16_START( grdians_writemem )
302 { 0x000000, 0x1fffff, MWA16_ROM }, /* ROM*/
303 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
304 { 0x304000, 0x30ffff, MWA16_RAM }, /* ? seems tile data*/
305 { 0x800000, 0x800001, grdians_lockout_w },
306 { 0xb00000, 0xb03fff, seta_sound_word_w }, /* Sound*/
307 { 0xc00000, 0xc3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
308 { 0xc40000, 0xc4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
309 { 0xc50000, 0xc5ffff, MWA16_RAM }, /* cleared*/
310 { 0xc60000, 0xc6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
311 { 0xe00010, 0xe0001f, seta2_sound_bank_w }, /* Samples Banks*/
312 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
313 MEMORY_END
314
315 /***************************************************************************
316 Mobile Suit Gundam EX Revue
317 ***************************************************************************/
318
319 static NVRAM_HANDLER(93C46_gundamex)
320 {
321 if (read_or_write)
322 {
323 EEPROM_save(file);
324 }
325 else
326 {
327 EEPROM_init(&eeprom_interface_93C46);
328 if (file)
329 {
330 EEPROM_load(file);
331 }
332 else
333 {
334 int length;
335 UINT8 *dat;
336
337 dat = EEPROM_get_data_pointer(&length);
338 dat[0]=0x70;
339 dat[1]=0x08;
340 }
341 }
342 }
343
READ16_HANDLER(gundamex_eeprom_r)344 READ16_HANDLER( gundamex_eeprom_r )
345 {
346 return ((EEPROM_read_bit() & 1)) << 3;
347 }
348
WRITE16_HANDLER(gundamex_eeprom_w)349 WRITE16_HANDLER( gundamex_eeprom_w )
350 {
351 EEPROM_set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE);
352 EEPROM_write_bit(data & 0x1);
353 EEPROM_set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE);
354 }
355
MEMORY_READ16_START(gundamex_readmem)356 static MEMORY_READ16_START( gundamex_readmem )
357 { 0x000000, 0x1fffff, MRA16_ROM }, /* ROM*/
358 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
359 { 0x400000, 0x5fffff, MRA16_ROM }, /* ROM*/
360 { 0x600000, 0x600001, input_port_0_word_r }, /* DSW 1*/
361 { 0x600002, 0x600003, input_port_1_word_r }, /* DSW 2*/
362 { 0x700000, 0x700001, input_port_2_word_r }, /* P1*/
363 { 0x700002, 0x700003, input_port_3_word_r }, /* P2*/
364 { 0x700004, 0x700005, input_port_4_word_r }, /* Coins*/
365 { 0x700008, 0x700009, input_port_5_word_r }, /* P1*/
366 { 0x70000a, 0x70000b, input_port_6_word_r }, /* P2*/
367 { 0xb00000, 0xb03fff, seta_sound_word_r }, /* Sound*/
368 { 0xfffd0a, 0xfffd0b, gundamex_eeprom_r }, /* Parallel Data Register*/
369 MEMORY_END
370
371 static MEMORY_WRITE16_START( gundamex_writemem )
372 { 0x000000, 0x1fffff, MWA16_ROM }, /* ROM*/
373 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
374 { 0x400000, 0x5fffff, MWA16_ROM }, /* ROM*/
375 { 0x70000c, 0x70000d, watchdog_reset16_w },
376 { 0x800000, 0x800001, grdians_lockout_w },
377 { 0xb00000, 0xb03fff, seta_sound_word_w }, /* Sound*/
378 { 0xc00000, 0xc3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
379 { 0xc40000, 0xc4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
380 { 0xc50000, 0xc5ffff, MWA16_RAM }, /* cleared*/
381 { 0xc60000, 0xc6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
382 { 0xe00010, 0xe0001f, seta2_sound_bank_w }, /* Samples Banks*/
383 { 0xfffd0a, 0xfffd0b, gundamex_eeprom_w }, /* Parallel Data Register */
384 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
385 MEMORY_END
386
387 /***************************************************************************
388 Wakakusamonogatari Mahjong Yonshimai
389 ***************************************************************************/
390
391 static int keyboard_row;
392
READ16_HANDLER(mj4simai_p1_r)393 static READ16_HANDLER( mj4simai_p1_r )
394 {
395 switch (keyboard_row)
396 {
397 case 0x01: return readinputport(3);
398 case 0x02: return readinputport(4);
399 case 0x04: return readinputport(5);
400 case 0x08: return readinputport(6);
401 case 0x10: return readinputport(7);
402 default: log_cb(RETRO_LOG_DEBUG, LOGPRE "p1_r with keyboard_row = %02x\n",keyboard_row); return 0xffff;
403 }
404 }
405
WRITE16_HANDLER(mj4simai_keyboard_w)406 static WRITE16_HANDLER( mj4simai_keyboard_w )
407 {
408 if (ACCESSING_LSB)
409 keyboard_row = data & 0xff;
410 }
411
MEMORY_READ16_START(mj4simai_readmem)412 static MEMORY_READ16_START( mj4simai_readmem )
413 { 0x000000, 0x1fffff, MRA16_ROM }, /* ROM*/
414 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
415 { 0x600000, 0x600001, mj4simai_p1_r }, /* P1*/
416 { 0x600002, 0x600003, mj4simai_p1_r }, /* P2, but I'm using P1 again*/
417 { 0x600006, 0x600007, watchdog_reset16_r }, /* Watchdog*/
418 { 0x600100, 0x600101, input_port_2_word_r }, /**/
419 { 0x600300, 0x600301, input_port_0_word_r }, /* DSW 1*/
420 { 0x600302, 0x600303, input_port_1_word_r }, /* DSW 2*/
421 { 0xb00000, 0xb03fff, seta_sound_word_r }, /* Sound*/
422 { 0xc00000, 0xc3ffff, MRA16_RAM }, /* Sprites*/
423 { 0xc40000, 0xc4ffff, MRA16_RAM }, /* Palette*/
424 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
425 MEMORY_END
426
427 static MEMORY_WRITE16_START( mj4simai_writemem )
428 { 0x000000, 0x1fffff, MWA16_ROM }, /* ROM*/
429 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
430 { 0x600004, 0x600005, mj4simai_keyboard_w }, /* select keyboard row to read*/
431 { 0x600200, 0x600201, MWA16_NOP }, /* Leds? Coins?*/
432 { 0x600300, 0x60030f, seta2_sound_bank_w }, /* Samples Banks*/
433 { 0xb00000, 0xb03fff, seta_sound_word_w }, /* Sound*/
434 { 0xc00000, 0xc3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
435 { 0xc40000, 0xc4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
436 { 0xc60000, 0xc6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
437 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
438 MEMORY_END
439
440
441 /***************************************************************************
442 Kosodate Quiz My Angel
443 ***************************************************************************/
444
445 static MEMORY_READ16_START( myangel_readmem )
446 { 0x000000, 0x1fffff, MRA16_ROM }, /* ROM*/
447 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
448 { 0x700000, 0x700001, input_port_2_word_r }, /* P1*/
449 { 0x700002, 0x700003, input_port_3_word_r }, /* P2*/
450 { 0x700004, 0x700005, input_port_4_word_r }, /* Coins*/
451 { 0x700006, 0x700007, watchdog_reset16_r }, /* Watchdog*/
452 { 0x700300, 0x700301, input_port_0_word_r }, /* DSW 1*/
453 { 0x700302, 0x700303, input_port_1_word_r }, /* DSW 2*/
454 { 0xb00000, 0xb03fff, seta_sound_word_r }, /* Sound*/
455 { 0xc00000, 0xc3ffff, MRA16_RAM }, /* Sprites*/
456 { 0xc40000, 0xc4ffff, MRA16_RAM }, /* Palette*/
457 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
458 MEMORY_END
459
460 static MEMORY_WRITE16_START( myangel_writemem )
461 { 0x000000, 0x1fffff, MWA16_ROM }, /* ROM*/
462 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
463 { 0x700200, 0x700201, MWA16_NOP }, /* Leds? Coins?*/
464 { 0x700310, 0x70031f, seta2_sound_bank_w }, /* Samples Banks*/
465 { 0xb00000, 0xb03fff, seta_sound_word_w }, /* Sound*/
466 { 0xc00000, 0xc3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
467 { 0xc40000, 0xc4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
468 { 0xc60000, 0xc6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
469 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
470 MEMORY_END
471
472
473 /***************************************************************************
474 Kosodate Quiz My Angel 2
475 ***************************************************************************/
476
477 static MEMORY_READ16_START( myangel2_readmem )
478 { 0x000000, 0x1fffff, MRA16_ROM }, /* ROM*/
479 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
480 { 0x600000, 0x600001, input_port_2_word_r }, /* P1*/
481 { 0x600002, 0x600003, input_port_3_word_r }, /* P2*/
482 { 0x600004, 0x600005, input_port_4_word_r }, /* Coins*/
483 { 0x600006, 0x600007, watchdog_reset16_r }, /* Watchdog*/
484 { 0x600300, 0x600301, input_port_0_word_r }, /* DSW 1*/
485 { 0x600302, 0x600303, input_port_1_word_r }, /* DSW 2*/
486 { 0xb00000, 0xb03fff, seta_sound_word_r }, /* Sound*/
487 { 0xd00000, 0xd3ffff, MRA16_RAM }, /* Sprites*/
488 { 0xd40000, 0xd4ffff, MRA16_RAM }, /* Palette*/
489 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
490 MEMORY_END
491
492 static MEMORY_WRITE16_START( myangel2_writemem )
493 { 0x000000, 0x1fffff, MWA16_ROM }, /* ROM*/
494 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
495 { 0x600200, 0x600201, MWA16_NOP }, /* Leds? Coins?*/
496 { 0x600300, 0x60030f, seta2_sound_bank_w }, /* Samples Banks*/
497 { 0xb00000, 0xb03fff, seta_sound_word_w }, /* Sound*/
498 { 0xd00000, 0xd3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
499 { 0xd40000, 0xd4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
500 { 0xd60000, 0xd6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
501 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
502 MEMORY_END
503
504
505 /***************************************************************************
506 Puzzle De Bowling
507 ***************************************************************************/
508
509 /* The game checks for a specific value read from the ROM region.
510 The offset to use is stored in RAM at address 0x20BA16 */
511 READ16_HANDLER( pzlbowl_protection_r )
512 {
513 UINT32 address = (cpu_readmem24bew_word(0x20ba16) << 16) | cpu_readmem24bew_word(0x20ba18);
514 return memory_region(REGION_CPU1)[address - 2];
515 }
516
READ16_HANDLER(pzlbowl_coins_r)517 READ16_HANDLER( pzlbowl_coins_r )
518 {
519 return readinputport(4) | (rand() & 0x80 );
520 }
521
WRITE16_HANDLER(pzlbowl_coin_counter_w)522 WRITE16_HANDLER( pzlbowl_coin_counter_w )
523 {
524 if (ACCESSING_LSB)
525 {
526 coin_counter_w(0,data & 0x10);
527 coin_counter_w(1,data & 0x20);
528 }
529 }
530
MEMORY_READ16_START(pzlbowl_readmem)531 static MEMORY_READ16_START( pzlbowl_readmem )
532 { 0x000000, 0x0fffff, MRA16_ROM }, /* ROM*/
533 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
534 { 0x400300, 0x400301, input_port_0_word_r }, /* DSW 1*/
535 { 0x400302, 0x400303, input_port_1_word_r }, /* DSW 2*/
536 { 0x500000, 0x500001, input_port_2_word_r }, /* P1*/
537 { 0x500002, 0x500003, input_port_3_word_r }, /* P2*/
538 { 0x500004, 0x500005, pzlbowl_coins_r }, /* Coins + Protection?*/
539 { 0x500006, 0x500007, watchdog_reset16_r }, /* Watchdog*/
540 { 0x700000, 0x700001, pzlbowl_protection_r }, /* Protection*/
541 { 0x800000, 0x83ffff, MRA16_RAM }, /* Sprites*/
542 { 0x840000, 0x84ffff, MRA16_RAM }, /* Palette*/
543 { 0x900000, 0x903fff, seta_sound_word_r }, /* Sound*/
544 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
545 MEMORY_END
546
547 static MEMORY_WRITE16_START( pzlbowl_writemem )
548 { 0x000000, 0x0fffff, MWA16_ROM }, /* ROM*/
549 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
550 { 0x400300, 0x40030f, seta2_sound_bank_w }, /* Samples Banks*/
551 { 0x500004, 0x500005, pzlbowl_coin_counter_w }, /* Coins Counter*/
552 { 0x800000, 0x83ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
553 { 0x840000, 0x84ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
554 { 0x860000, 0x86003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
555 { 0x900000, 0x903fff, seta_sound_word_w }, /* Sound*/
556 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
557 MEMORY_END
558
559
560 /***************************************************************************
561 Penguin Bros
562 ***************************************************************************/
563
564 static MEMORY_READ16_START( penbros_readmem )
565 { 0x000000, 0x0fffff, MRA16_ROM }, /* ROM*/
566 { 0x200000, 0x20ffff, MRA16_RAM }, /* RAM*/
567 { 0x210000, 0x23ffff, MRA16_RAM }, /* RAM*/
568 { 0x300000, 0x30ffff, MRA16_RAM }, /* RAM*/
569 { 0x500300, 0x500301, input_port_0_word_r }, /* DSW 1*/
570 { 0x500302, 0x500303, input_port_1_word_r }, /* DSW 2*/
571 { 0x600000, 0x600001, input_port_2_word_r }, /* P1*/
572 { 0x600002, 0x600003, input_port_3_word_r }, /* P2*/
573 { 0x600004, 0x600005, input_port_4_word_r }, /* Coins*/
574 { 0x600006, 0x600007, watchdog_reset16_r }, /* Watchdog*/
575 /* { 0x700000, 0x700001, pzlbowl_protection_r }, */ /* Protection*/
576 { 0xb00000, 0xb3ffff, MRA16_RAM }, /* Sprites*/
577 { 0xb40000, 0xb4ffff, MRA16_RAM }, /* Palette*/
578 { 0xa00000, 0xa03fff, seta_sound_word_r }, /* Sound*/
579 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers*/
580 MEMORY_END
581
582 static MEMORY_WRITE16_START( penbros_writemem )
583 { 0x000000, 0x0fffff, MWA16_ROM }, /* ROM*/
584 { 0x200000, 0x20ffff, MWA16_RAM }, /* RAM*/
585 { 0x300000, 0x30ffff, MWA16_RAM }, /* RAM*/
586 { 0x210000, 0x23ffff, MWA16_RAM }, /* RAM*/
587 { 0x500300, 0x50030f, seta2_sound_bank_w }, /* Samples Banks*/
588 { 0x600004, 0x600005, pzlbowl_coin_counter_w }, /* Coins Counter*/
589 { 0xb00000, 0xb3ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites*/
590 { 0xb40000, 0xb4ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette*/
591 { 0xb60000, 0xb6003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers*/
592 { 0xa00000, 0xa03fff, seta_sound_word_w }, /* Sound*/
593 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers*/
594 MEMORY_END
595
596 /***************************************************************************
597 Sammy Outdoor Shooting
598 ***************************************************************************/
599
600 static READ16_HANDLER( samshoot_gun1_r )
601 {
602 return (readinputport(8) << 8) | readinputport(2);
603 }
604
READ16_HANDLER(samshoot_gun2_r)605 static READ16_HANDLER( samshoot_gun2_r )
606 {
607 return (readinputport(9) << 8) | readinputport(3);
608 }
609
MEMORY_READ16_START(samshoot_readmem)610 static MEMORY_READ16_START( samshoot_readmem )
611 { 0x000000, 0x1fffff, MRA16_ROM },
612 { 0x200000, 0x20ffff, MRA16_RAM },
613 { 0x300000, 0x30ffff, MRA16_RAM },
614 { 0x400000, 0x400001, input_port_0_word_r }, /* DSW 1 */
615 { 0x400002, 0x400003, input_port_7_word_r }, /* Buttons */
616 { 0x500000, 0x500001, samshoot_gun1_r }, /* P1 */
617 { 0x580000, 0x580001, samshoot_gun2_r }, /* P2 */
618 { 0x700000, 0x700001, input_port_4_word_r }, /* Trigger */
619 { 0x700002, 0x700003, input_port_5_word_r }, /* Pump */
620 { 0x700004, 0x700005, input_port_6_word_r }, /* Coins */
621 { 0x700006, 0x700007, watchdog_reset16_r }, /* Watchdog? */
622 { 0x800000, 0x83ffff, MRA16_RAM }, /* Sprites */
623 { 0x840000, 0x84ffff, MRA16_RAM }, /* Palette */
624 { 0x900000, 0x903fff, seta_sound_word_r }, /* Sound */
625 { 0xfffd0a, 0xfffd0b, input_port_0_word_r }, /* parallel data register (DSW 2) */
626 { 0xfffc00, 0xffffff, MRA16_RAM }, /* TMP68301 Registers */
627 MEMORY_END
628
629 static MEMORY_WRITE16_START( samshoot_writemem )
630 { 0x000000, 0x1fffff, MWA16_ROM },
631 { 0x200000, 0x20ffff, MWA16_RAM },
632 { 0x300000, 0x30ffff, MWA16_RAM, (data16_t **)&generic_nvram, &generic_nvram_size },
633 { 0x400300, 0x40030f, seta2_sound_bank_w }, /* Samples Banks */
634 { 0x800000, 0x83ffff, MWA16_RAM, &spriteram16, &spriteram_size }, /* Sprites */
635 { 0x840000, 0x84ffff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16 }, /* Palette */
636 { 0x860000, 0x86003f, seta2_vregs_w, &seta2_vregs }, /* Video Registers */
637 { 0x900000, 0x903fff, seta_sound_word_w }, /* Sound */
638 { 0xfffc00, 0xffffff, tmp68301_regs_w, &tmp68301_regs }, /* TMP68301 Registers */
639 MEMORY_END
640
641 /***************************************************************************
642
643 Input Ports
644
645 ***************************************************************************/
646
647 /***************************************************************************
648 Mobile Suit Gundam EX Revue
649 ***************************************************************************/
650
651 INPUT_PORTS_START( gundamex )
652 PORT_START /* IN0 - $600000.w*/
653 PORT_DIPNAME( 0x0001, 0x0001, "1" )
654 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
655 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
656 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
657 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
658 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
659 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
660 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
661 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
662 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
663 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
664 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
665 PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
666 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
667 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
668 PORT_DIPNAME( 0x0020, 0x0020, "Freeze" )
669 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
670 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
671 PORT_DIPNAME( 0x0040, 0x0040, "Show Targets" )
672 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
673 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
674 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
675 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
676
677 PORT_START /* IN1 - $600002.w*/
678 PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
679 PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
680 PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) )
681 PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) )
682 PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
683 PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
684 PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
685 PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) )
686 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_5C ) )
687 PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
688 PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
689 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) )
690 PORT_DIPSETTING( 0x0000, "3 Coins/5 Credits" )
691 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )
692 PORT_DIPSETTING( 0x0008, DEF_STR( 2C_5C ) )
693 PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )
694 PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) )
695 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_5C ) )
696 PORT_DIPNAME( 0x0040, 0x0040, "Debug Mode" )
697 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
698 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
699 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
700 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
701 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
702 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
703
704 PORT_START /* IN2 - $700000.w*/
705 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
706 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
707 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
708 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
709 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
710 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
711 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
712 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
713 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
714
715 PORT_START /* IN3 - $700002.w*/
716 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
717 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
718 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
719 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
720 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
721 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
722 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
723 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
724 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
725
726 PORT_START /* IN4 - $700004.w*/
727 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
728 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
729 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
730 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
731 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* jumper pad */
732 PORT_DIPNAME( 0x0020, 0x0020, "Language" ) /* jumper pad */
733 PORT_DIPSETTING( 0x0020, "English" )
734 PORT_DIPSETTING( 0x0000, "Japanese" )
735 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
736 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
737 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
738
739 PORT_START /* IN5 - $700008.w*/
740 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
741 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
742 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
743 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
744 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
745 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
746 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
747 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
748 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
749
750 PORT_START /* IN6 - $70000a.w*/
751 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
752 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
753 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
754 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
755 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
756 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
757 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
758 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
759 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
760 INPUT_PORTS_END
761
762 /***************************************************************************
763 Guardians
764 ***************************************************************************/
765
766 INPUT_PORTS_START( grdians )
767 PORT_START /* IN0 - $600000.w*/
768 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
769 PORT_DIPSETTING( 0x0002, "Easy" ) /* 0*/
770 PORT_DIPSETTING( 0x0003, "Normal" ) /* 1*/
771 PORT_DIPSETTING( 0x0001, "Hard" ) /* 2*/
772 PORT_DIPSETTING( 0x0000, "Hardest" ) /* 3*/
773 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
774 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
775 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
776 PORT_DIPNAME( 0x0008, 0x0008, "Title" )
777 PORT_DIPSETTING( 0x0008, "Guardians" )
778 PORT_DIPSETTING( 0x0000, "Denjin Makai II" )
779 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
780 PORT_DIPSETTING( 0x0020, "1" )
781 PORT_DIPSETTING( 0x0030, "2" )
782 PORT_DIPSETTING( 0x0010, "3" )
783 PORT_DIPSETTING( 0x0000, "4" )
784 PORT_SERVICE( 0x0040, IP_ACTIVE_LOW )
785 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) )
786 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
787 PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
788
789 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
790
791 PORT_START /* IN1 - $600002.w*/
792 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
793 PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
794 PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
795 PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
796 PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
797 PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) )
798 PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
799 PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
800 PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
801 PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
802 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
803 PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
804 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
805 PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
806 PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
807 PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
808 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
809 PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
810 PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) )
811 PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) )
812 PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) )
813 PORT_DIPSETTING( 0x0040, DEF_STR( 3C_2C ) )
814 PORT_DIPSETTING( 0x0010, DEF_STR( 4C_3C ) )
815 PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) )
816 PORT_DIPSETTING( 0x0030, DEF_STR( 3C_4C ) )
817 PORT_DIPSETTING( 0x0070, DEF_STR( 2C_3C ) )
818 PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) )
819 PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) )
820 PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) )
821 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) )
822 PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) )
823 PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) )
824 PORT_DIPSETTING( 0x0090, DEF_STR( 1C_7C ) )
825 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
826
827 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
828
829 PORT_START /* IN2 - $700000.w*/
830 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
831 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
832 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
833 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
834 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
835 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
836 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
837 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
838
839 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
840
841 PORT_START /* IN3 - $700002.w*/
842 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
843 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
844 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
845 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
846 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
847 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
848 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
849 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
850
851 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
852
853 PORT_START /* IN4 - $700004.w*/
854 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
855 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
856 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
857 PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F1, IP_JOY_NONE )
858 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
859 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
860 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
861 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
862
863 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
864 INPUT_PORTS_END
865
866
867 /***************************************************************************
868 Wakakusamonogatari Mahjong Yonshimai
869 ***************************************************************************/
870
871 INPUT_PORTS_START( mj4simai )
872 PORT_START /* IN0 - $600300.w*/
873 PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )
874 PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) )
875 PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) )
876 PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) )
877 PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) )
878 PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
879 PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )
880 PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )
881 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )
882 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
883 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
884 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
885 PORT_DIPNAME( 0x0010, 0x0010, "Tumo Pin" )
886 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
887 PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
888 PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Flip_Screen ) )
889 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
890 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
891 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) )
892 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
893 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
894 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
895
896 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
897
898 PORT_START /* IN1 - $600302.w*/
899 PORT_DIPNAME( 0x0007, 0x0004, DEF_STR( Difficulty ) )
900 PORT_DIPSETTING( 0x0004, "0" )
901 PORT_DIPSETTING( 0x0003, "1" )
902 PORT_DIPSETTING( 0x0002, "2" )
903 PORT_DIPSETTING( 0x0001, "3" )
904 PORT_DIPSETTING( 0x0000, "4" )
905 PORT_DIPSETTING( 0x0007, "5" )
906 PORT_DIPSETTING( 0x0006, "6" )
907 PORT_DIPSETTING( 0x0005, "7" )
908 PORT_DIPNAME( 0x0008, 0x0008, "Allow Continue" )
909 PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
910 PORT_DIPSETTING( 0x0008, DEF_STR( Yes ) )
911 PORT_DIPNAME( 0x0010, 0x0000, "Select Girl" )
912 PORT_DIPSETTING( 0x0010, DEF_STR( No ) )
913 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
914 PORT_DIPNAME( 0x0020, 0x0000, "Com Put" )
915 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
916 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
917 PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
918 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
919 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
920 PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )
921 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
922 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
923
924 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
925
926 PORT_START /* IN2 - $600100.w*/
927 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
928 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
929 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
930 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
931 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
932 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
933 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
934 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
935
936 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
937
938 PORT_START /* IN3 - $600000(0)*/
939 PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "A", KEYCODE_A, IP_JOY_NONE )
940 PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "E", KEYCODE_E, IP_JOY_NONE )
941 PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "I", KEYCODE_I, IP_JOY_NONE )
942 PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "M", KEYCODE_M, IP_JOY_NONE )
943 PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "Kan", KEYCODE_LCONTROL, IP_JOY_NONE )
944 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1 )
945 PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
946
947 PORT_START /* IN4 - $600000(1)*/
948 PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "B", KEYCODE_B, IP_JOY_NONE )
949 PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "F", KEYCODE_F, IP_JOY_NONE )
950 PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "J", KEYCODE_J, IP_JOY_NONE )
951 PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "N", KEYCODE_N, IP_JOY_NONE )
952 PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "Reach", KEYCODE_LSHIFT, IP_JOY_NONE )
953 PORT_BITX(0x0020, IP_ACTIVE_LOW, 0, "Bet", KEYCODE_2, IP_JOY_NONE )
954 PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
955
956 PORT_START /* IN5 - $600000(2)*/
957 PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "C", KEYCODE_C, IP_JOY_NONE )
958 PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "G", KEYCODE_G, IP_JOY_NONE )
959 PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "K", KEYCODE_K, IP_JOY_NONE )
960 PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "Chi", KEYCODE_SPACE, IP_JOY_NONE )
961 PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "Ron", KEYCODE_Z, IP_JOY_NONE )
962 PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
963
964 PORT_START /* IN6 - $600000(3)*/
965 PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "D", KEYCODE_D, IP_JOY_NONE )
966 PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "H", KEYCODE_H, IP_JOY_NONE )
967 PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "L", KEYCODE_L, IP_JOY_NONE )
968 PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "Pon", KEYCODE_LALT, IP_JOY_NONE )
969 PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
970
971 PORT_START /* IN7 - $600000(4)*/
972 PORT_BITX( 0x0001, IP_ACTIVE_LOW, 0, "Last", KEYCODE_RALT, IP_JOY_NONE )
973 PORT_BITX( 0x0002, IP_ACTIVE_LOW, 0, "Take", KEYCODE_RCONTROL, IP_JOY_NONE )
974 PORT_BITX( 0x0004, IP_ACTIVE_LOW, 0, "Double", KEYCODE_RSHIFT, IP_JOY_NONE )
975 PORT_BITX( 0x0008, IP_ACTIVE_LOW, 0, "Flip", KEYCODE_X, IP_JOY_NONE )
976 PORT_BITX( 0x0010, IP_ACTIVE_LOW, 0, "Big", KEYCODE_ENTER, IP_JOY_NONE )
977 PORT_BITX( 0x0020, IP_ACTIVE_LOW, 0, "Small", KEYCODE_BACKSPACE, IP_JOY_NONE )
978 PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
979
980 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
981 INPUT_PORTS_END
982
983
984 /***************************************************************************
985 Kosodate Quiz My Angel
986 ***************************************************************************/
987
988 INPUT_PORTS_START( myangel )
989 PORT_START /* IN0 - $700300.w*/
990 PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
991 PORT_DIPNAME( 0x0002, 0x0002, "Unknown 1-1" )
992 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
993 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
994 PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2" )
995 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
996 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
997 PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3*" )
998 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
999 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1000 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
1001 PORT_DIPSETTING( 0x0020, "2" )
1002 PORT_DIPSETTING( 0x0030, "3" )
1003 PORT_DIPSETTING( 0x0010, "4" )
1004 PORT_DIPSETTING( 0x0000, "5" )
1005 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
1006 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1007 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
1008 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
1009 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
1010 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1011
1012 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1013
1014 PORT_START /* IN1 - $700302.w*/
1015 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) )
1016 PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
1017 PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
1018 PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
1019 PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
1020 PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) )
1021 PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
1022 PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
1023 PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
1024 PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
1025 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
1026 PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
1027 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
1028 PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
1029 PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
1030 PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
1031 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
1032 PORT_DIPNAME( 0x0010, 0x0010, "Unknown 2-4" )
1033 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
1034 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1035 PORT_DIPNAME( 0x0020, 0x0020, "Unknown 2-5" )
1036 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
1037 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1038 PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
1039 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1040 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1041 PORT_BITX( 0x0080, 0x0080, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Push Start To Freeze (Cheat)", IP_KEY_NONE, IP_JOY_NONE )
1042 PORT_DIPSETTING( 0x0080, DEF_STR( No ) )
1043 PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) )
1044
1045 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1046
1047 PORT_START /* IN2 - $700000.w*/
1048 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1049 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1050 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1051 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
1052 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1053 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1054 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1055 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1056
1057 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1058
1059 PORT_START /* IN3 - $700002.w*/
1060 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1061 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1062 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1063 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
1064 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1065 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1066 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1067 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1068
1069 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1070
1071 PORT_START /* IN4 - $700004.w*/
1072 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
1073 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
1074 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1075 PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
1076 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
1077 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
1078 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1079 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1080
1081 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1082 INPUT_PORTS_END
1083
1084
1085 /***************************************************************************
1086 Kosodate Quiz My Angel 2
1087 ***************************************************************************/
1088
1089 INPUT_PORTS_START( myangel2 )
1090 PORT_START /* IN0 - $600300.w*/
1091 PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
1092 PORT_DIPNAME( 0x0002, 0x0002, "Unknown 1-1" )
1093 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1094 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1095 PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2" )
1096 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1097 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1098 PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3*" )
1099 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
1100 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1101 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
1102 PORT_DIPSETTING( 0x0020, "2" )
1103 PORT_DIPSETTING( 0x0030, "3" )
1104 PORT_DIPSETTING( 0x0010, "4" )
1105 PORT_DIPSETTING( 0x0000, "5" )
1106 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
1107 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1108 PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
1109 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
1110 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
1111 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1112
1113 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1114
1115 PORT_START /* IN1 - $600302.w*/
1116 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) )
1117 PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) )
1118 PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
1119 PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
1120 PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
1121 PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) )
1122 PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
1123 PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
1124 PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
1125 PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
1126 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
1127 PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )
1128 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
1129 PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
1130 PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
1131 PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
1132 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
1133 PORT_DIPNAME( 0x0010, 0x0010, "Unknown 2-4" )
1134 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
1135 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1136 PORT_DIPNAME( 0x0020, 0x0020, "Unknown 2-5" )
1137 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
1138 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1139 PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
1140 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1141 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1142 PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )
1143 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
1144 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1145
1146 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1147
1148 PORT_START /* IN2 - $600000.w*/
1149 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1150 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1151 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1152 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
1153 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1154 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1155 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1156 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1157
1158 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1159
1160 PORT_START /* IN3 - $600002.w*/
1161 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1162 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1163 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1164 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
1165 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1166 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1167 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1168 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1169
1170 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1171
1172 PORT_START /* IN4 - $600004.w*/
1173 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
1174 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
1175 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1176 PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
1177 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
1178 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
1179 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1180 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1181
1182 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1183 INPUT_PORTS_END
1184
1185
1186 /***************************************************************************
1187 Puzzle De Bowling
1188 ***************************************************************************/
1189
1190 INPUT_PORTS_START( pzlbowl )
1191 PORT_START /* IN0 - $400300.w*/
1192 PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
1193 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
1194 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1195 PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
1196 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Flip_Screen ) )
1197 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1198 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1199 PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Difficulty ) )
1200 PORT_DIPSETTING( 0x0030, "Easy" )
1201 PORT_DIPSETTING( 0x0038, "Normal" )
1202 /* PORT_DIPSETTING( 0x0028, "Normal" )*/
1203 /* PORT_DIPSETTING( 0x0020, "Normal" )*/
1204 /* PORT_DIPSETTING( 0x0018, "Normal" )*/
1205 /* PORT_DIPSETTING( 0x0010, "Normal" )*/
1206 /* PORT_DIPSETTING( 0x0008, "Normal" )*/
1207 PORT_DIPSETTING( 0x0000, "Hard" )
1208 PORT_DIPNAME( 0x00c0, 0x00c0, "Winning Rounds (Player VS Player)" )
1209 PORT_DIPSETTING( 0x0040, "1" )
1210 PORT_DIPSETTING( 0x00c0, "2" )
1211 /* PORT_DIPSETTING( 0x0000, "2" )*/
1212 PORT_DIPSETTING( 0x0080, "3" )
1213
1214 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1215
1216 PORT_START /* IN1 - $400302.w*/
1217 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) )
1218 PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) )
1219 PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )
1220 PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) )
1221 /* PORT_DIPSETTING( 0x0002, DEF_STR( 1C_1C ) )*/
1222 PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) )
1223 PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) )
1224 PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) )
1225 PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) )
1226 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) )
1227 /* PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) )*/
1228 PORT_DIPSETTING( 0x0001, DEF_STR( 1C_3C ) )
1229 PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) )
1230 PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) )
1231 PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) )
1232 PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) )
1233 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
1234 PORT_DIPNAME( 0x0010, 0x0010, "Allow Continue" )
1235 PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
1236 PORT_DIPSETTING( 0x0010, DEF_STR( Yes ) )
1237 PORT_DIPNAME( 0x0020, 0x0020, "Join In" )
1238 PORT_DIPSETTING( 0x0000, DEF_STR( No ) )
1239 PORT_DIPSETTING( 0x0020, DEF_STR( Yes ) )
1240 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
1241 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1242 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1243 PORT_DIPNAME( 0x0080, 0x0000, "Language" )
1244 PORT_DIPSETTING( 0x0000, "English" )
1245 PORT_DIPSETTING( 0x0080, "Japanese" )
1246
1247 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1248
1249 PORT_START /* IN2 - $500000.w*/
1250 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
1251 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
1252 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
1253 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
1254 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1255 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1256 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
1257 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1258
1259 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1260
1261 PORT_START /* IN3 - $500002.w*/
1262 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
1263 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
1264 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
1265 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
1266 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1267 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1268 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
1269 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1270
1271 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1272
1273 PORT_START /* IN4 - $500004.w*/
1274 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
1275 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 ) /* unused, test mode shows it*/
1276 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1277 PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F1, IP_JOY_NONE )
1278 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
1279 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
1280 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1281 PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Protection?*/
1282
1283 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1284 INPUT_PORTS_END
1285
1286 /***************************************************************************
1287 Sammy Outdoor Shooting
1288 ***************************************************************************/
1289
1290 INPUT_PORTS_START( deerhunt )
1291 PORT_START /* $400000.w */
1292 PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
1293 PORT_DIPSETTING( 0x0005, DEF_STR( 4C_1C ) )
1294 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
1295 PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
1296 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
1297 PORT_DIPSETTING( 0x0003, DEF_STR( 1C_3C ) )
1298 PORT_DIPSETTING( 0x0002, DEF_STR( 1C_4C ) )
1299 PORT_DIPSETTING( 0x0001, DEF_STR( 1C_5C ) )
1300 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
1301 PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_A ) )
1302 PORT_DIPSETTING( 0x0028, DEF_STR( 4C_1C ) )
1303 PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) )
1304 PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
1305 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
1306 PORT_DIPSETTING( 0x0018, DEF_STR( 1C_3C ) )
1307 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_4C ) )
1308 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_5C ) )
1309 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
1310 PORT_DIPNAME( 0x0040, 0x0040, "Discount To Continue" )
1311 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1312 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1313 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
1314 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1315
1316 PORT_START /* fffd0a.w */
1317 PORT_DIPNAME( 0x0001, 0x0001, "Vert. Flip Screen" )
1318 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1319 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1320 PORT_DIPNAME( 0x0002, 0x0002, "Horiz. Flip Screen" )
1321 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1322 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1323 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
1324 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1325 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
1326 PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
1327 PORT_DIPSETTING( 0x0010, "Easy" )
1328 PORT_DIPSETTING( 0x0018, "Normal" )
1329 PORT_DIPSETTING( 0x0008, "Hard" )
1330 PORT_DIPSETTING( 0x0000, "Hardest" )
1331 PORT_DIPNAME( 0x0020, 0x0020, "Blood Color" )
1332 PORT_DIPSETTING( 0x0020, "Red" )
1333 PORT_DIPSETTING( 0x0000, "Yellow" )
1334 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Lives ) )
1335 PORT_DIPSETTING( 0x0040, "3" )
1336 PORT_DIPSETTING( 0x0000, "4" )
1337 PORT_DIPNAME( 0x0080, 0x0080, "Gun Type" )
1338 PORT_DIPSETTING( 0x0080, "Pump Action" )
1339 PORT_DIPSETTING( 0x0000, "Hand Gun" )
1340 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1341
1342 PORT_START /* $500000 */
1343 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 10, 0x0025, 0x00c5 )
1344
1345 PORT_START /* $580000.b */
1346 PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* P2 gun, read but not used */
1347
1348 PORT_START /* $700000 */
1349 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger */
1350 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1351 PORT_BIT( 0xff3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1352
1353 PORT_START /* $700003.b */
1354 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump */
1355 PORT_BIT( 0xffbf, IP_ACTIVE_LOW, IPT_UNKNOWN )
1356
1357 PORT_START /* $700005.b */
1358 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
1359 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
1360 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1361 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
1362 PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1363
1364 PORT_START /* $400002 */
1365 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* trigger */
1366 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* pump */
1367 PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNKNOWN )
1368
1369 PORT_START /* gun1 part 2 */
1370 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1371
1372 PORT_START /* gun2 part 2 */
1373 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* P2 gun */
1374 INPUT_PORTS_END
1375
1376
1377 INPUT_PORTS_START( turkhunt )
1378 PORT_START /* $400000.w */
1379 PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
1380 PORT_DIPSETTING( 0x0005, DEF_STR( 4C_1C ) )
1381 PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) )
1382 PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )
1383 PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C ) )
1384 PORT_DIPSETTING( 0x0003, DEF_STR( 1C_3C ) )
1385 PORT_DIPSETTING( 0x0002, DEF_STR( 1C_4C ) )
1386 PORT_DIPSETTING( 0x0001, DEF_STR( 1C_5C ) )
1387 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
1388 PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_A ) )
1389 PORT_DIPSETTING( 0x0028, DEF_STR( 4C_1C ) )
1390 PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) )
1391 PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )
1392 PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) )
1393 PORT_DIPSETTING( 0x0018, DEF_STR( 1C_3C ) )
1394 PORT_DIPSETTING( 0x0010, DEF_STR( 1C_4C ) )
1395 PORT_DIPSETTING( 0x0008, DEF_STR( 1C_5C ) )
1396 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) )
1397 PORT_DIPNAME( 0x0040, 0x0040, "Discount To Continue" )
1398 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1399 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1400 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
1401 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1402
1403 PORT_START /* fffd0a.w */
1404 PORT_DIPNAME( 0x0001, 0x0001, "Vert. Flip Screen" )
1405 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1406 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1407 PORT_DIPNAME( 0x0002, 0x0002, "Horiz. Flip Screen" )
1408 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1409 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1410 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
1411 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1412 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
1413 PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
1414 PORT_DIPSETTING( 0x0010, "Easy" )
1415 PORT_DIPSETTING( 0x0018, "Normal" )
1416 PORT_DIPSETTING( 0x0008, "Hard" )
1417 PORT_DIPSETTING( 0x0000, "Hardest" )
1418 PORT_DIPNAME( 0x0020, 0x0020, "Blood Color" )
1419 PORT_DIPSETTING( 0x0020, "Red" )
1420 PORT_DIPSETTING( 0x0000, "Yellow" )
1421 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Lives ) )
1422 PORT_DIPSETTING( 0x0040, "2" )
1423 PORT_DIPSETTING( 0x0000, "3" )
1424 PORT_DIPNAME( 0x0080, 0x0080, "Gun Type" )
1425 PORT_DIPSETTING( 0x0080, "Pump Action" )
1426 PORT_DIPSETTING( 0x0000, "Hand Gun" )
1427 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1428
1429 PORT_START /* $500000 */
1430 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 10, 0x0025, 0x00c5 )
1431
1432 PORT_START /* $580000.b */
1433 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* P2 gun, read but not used */
1434
1435 PORT_START /* $700000 */
1436 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger */
1437 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1438 PORT_BIT( 0xff3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1439
1440 PORT_START /* $700003.b */
1441 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump */
1442 PORT_BIT( 0xffbf, IP_ACTIVE_LOW, IPT_UNKNOWN )
1443
1444 PORT_START /* $700005.b */
1445 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
1446 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
1447 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1448 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
1449 PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1450
1451 PORT_START /* $400002 */
1452 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* trigger */
1453 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* pump */
1454 PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNKNOWN )
1455
1456 PORT_START /* gun1 part 2 */
1457 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1458
1459 PORT_START /* gun2 part 2 */
1460 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* P2 gun */
1461 INPUT_PORTS_END
1462
1463 INPUT_PORTS_START( wschamp )
1464 PORT_START /* $400000.w */
1465 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
1466 PORT_DIPSETTING( 0x0009, "4 Coins Start, 4 Coins Continue" )
1467 PORT_DIPSETTING( 0x0008, "4 Coins Start, 3 Coins Continue" )
1468 PORT_DIPSETTING( 0x0007, "4 Coins Start, 2 Coins Continue" )
1469 PORT_DIPSETTING( 0x0006, "4 Coins Start, 1 Coin Continue" )
1470 PORT_DIPSETTING( 0x000c, "3 Coins Start, 3 Coins Continue" )
1471 PORT_DIPSETTING( 0x000b, "3 Coins Start, 2 Coins Continue" )
1472 PORT_DIPSETTING( 0x000a, "3 Coins Start, 1 Coin Continue" )
1473 PORT_DIPSETTING( 0x000e, "2 Coins Start, 2 Coins Continue" )
1474 PORT_DIPSETTING( 0x000d, "2 Coins Start, 1 Coin Continue" )
1475 PORT_DIPSETTING( 0x000f, "1 Coin Start, 1 Coin Continue" )
1476 PORT_DIPSETTING( 0x0005, "1 Coin 2 Credits, 1 Credit Start & Continue" )
1477 PORT_DIPSETTING( 0x0004, "1 Coin 3 Credits, 1 Credit Start & Continue" )
1478 PORT_DIPSETTING( 0x0003, "1 Coin 4 Credits, 1 Credit Start & Continue" )
1479 PORT_DIPSETTING( 0x0002, "1 Coin 5 Credits, 1 Credit Start & Continue" )
1480 PORT_DIPSETTING( 0x0001, "1 Coin 6 Credits, 1 Credit Start & Continue" )
1481 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
1482 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
1483 PORT_BIT( 0xff70, IP_ACTIVE_LOW, IPT_UNKNOWN )
1484
1485 PORT_START /* fffd0a.w */
1486 PORT_DIPNAME( 0x0001, 0x0001, "Vert. Flip Screen" )
1487 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1488 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1489 PORT_DIPNAME( 0x0002, 0x0002, "Horiz. Flip Screen" )
1490 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1491 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1492 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
1493 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1494 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
1495 PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
1496 PORT_DIPSETTING( 0x0010, "Easy" )
1497 PORT_DIPSETTING( 0x0018, "Normal" )
1498 PORT_DIPSETTING( 0x0008, "Hard" )
1499 PORT_DIPSETTING( 0x0000, "Hardest" )
1500 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Lives ) )
1501 PORT_DIPSETTING( 0x0040, "2" )
1502 PORT_DIPSETTING( 0x0000, "3" )
1503 PORT_DIPNAME( 0x0080, 0x0080, "Gun Type" )
1504 PORT_DIPSETTING( 0x0080, "Pump Action" )
1505 PORT_DIPSETTING( 0x0000, "Hand Gun" )
1506 PORT_BIT( 0xff20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1507
1508 PORT_START /* $500000 */
1509 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 10, 0x0025, 0x00c5 )
1510
1511 PORT_START /* $580000.b */
1512 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER2, 35, 10, 0x0025, 0x00c5 )
1513
1514 PORT_START /* $700000 */
1515 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger P2 */
1516 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger P1 */
1517 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1518 PORT_BIT( 0xff1f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1519
1520 PORT_START /* $700003.b */
1521 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump P2 */
1522 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump P1 */
1523 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1524 PORT_BIT( 0xff1f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1525
1526 PORT_START /* $700005.b */
1527 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
1528 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
1529 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1530 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
1531 PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1532
1533 PORT_START /* $400002 */
1534 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* trigger P1 */
1535 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* pump P1 */
1536 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) /* trigger P2 */
1537 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) /* pump P2 */
1538 PORT_BIT( 0xffcc, IP_ACTIVE_LOW, IPT_UNKNOWN )
1539
1540 PORT_START /* gun1 part 2 */
1541 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1542
1543 PORT_START /* gun2 part 2 */
1544 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1545 INPUT_PORTS_END
1546
1547
1548 INPUT_PORTS_START( trophyh )
1549 PORT_START /* $400000.w */
1550 PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
1551 PORT_DIPSETTING( 0x0009, "4 Coins Start, 4 Coins Continue" )
1552 PORT_DIPSETTING( 0x0008, "4 Coins Start, 3 Coins Continue" )
1553 PORT_DIPSETTING( 0x0007, "4 Coins Start, 2 Coins Continue" )
1554 PORT_DIPSETTING( 0x0006, "4 Coins Start, 1 Coin Continue" )
1555 PORT_DIPSETTING( 0x000c, "3 Coins Start, 3 Coins Continue" )
1556 PORT_DIPSETTING( 0x000b, "3 Coins Start, 2 Coins Continue" )
1557 PORT_DIPSETTING( 0x000a, "3 Coins Start, 1 Coin Continue" )
1558 PORT_DIPSETTING( 0x000e, "2 Coins Start, 2 Coins Continue" )
1559 PORT_DIPSETTING( 0x000d, "2 Coins Start, 1 Coin Continue" )
1560 PORT_DIPSETTING( 0x000f, "1 Coin Start, 1 Coin Continue" )
1561 PORT_DIPSETTING( 0x0005, "1 Coin 2 Credits, 1 Credit Start & Continue" )
1562 PORT_DIPSETTING( 0x0004, "1 Coin 3 Credits, 1 Credit Start & Continue" )
1563 PORT_DIPSETTING( 0x0003, "1 Coin 4 Credits, 1 Credit Start & Continue" )
1564 PORT_DIPSETTING( 0x0002, "1 Coin 5 Credits, 1 Credit Start & Continue" )
1565 PORT_DIPSETTING( 0x0001, "1 Coin 6 Credits, 1 Credit Start & Continue" )
1566 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )
1567 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
1568 PORT_BIT( 0xff70, IP_ACTIVE_LOW, IPT_UNKNOWN )
1569
1570 PORT_START /* fffd0a.w */
1571 PORT_DIPNAME( 0x0001, 0x0001, "Vert. Flip Screen" )
1572 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1573 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1574 PORT_DIPNAME( 0x0002, 0x0002, "Horiz. Flip Screen" )
1575 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1576 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1577 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
1578 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1579 PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
1580 PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
1581 PORT_DIPSETTING( 0x0010, "Easy" )
1582 PORT_DIPSETTING( 0x0018, "Normal" )
1583 PORT_DIPSETTING( 0x0008, "Hard" )
1584 PORT_DIPSETTING( 0x0000, "Hardest" )
1585 PORT_DIPNAME( 0x0020, 0x0020, "Blood Color" ) /* WSChamp doesn't use Blood Color, so add it back in */
1586 PORT_DIPSETTING( 0x0020, "Red" )
1587 PORT_DIPSETTING( 0x0000, "Yellow" )
1588 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Lives ) )
1589 PORT_DIPSETTING( 0x0040, "2" )
1590 PORT_DIPSETTING( 0x0000, "3" )
1591 PORT_DIPNAME( 0x0080, 0x0080, "Gun Type" )
1592 PORT_DIPSETTING( 0x0080, "Pump Action" )
1593 PORT_DIPSETTING( 0x0000, "Hand Gun" )
1594 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1595
1596 PORT_START /* $500000 */
1597 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 10, 0x0025, 0x00c5 )
1598
1599 PORT_START /* $580000.b */
1600 PORT_ANALOG( 0x00ff, 0x0080, IPT_LIGHTGUN_X | IPF_PLAYER2, 35, 10, 0x0025, 0x00c5 )
1601
1602 PORT_START /* $700000 */
1603 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger P2 */
1604 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* trigger P1 */
1605 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1606 PORT_BIT( 0xff1f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1607
1608 PORT_START /* $700003.b */
1609 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump P2 */
1610 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* pump P1 */
1611 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1612 PORT_BIT( 0xff1f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1613
1614 PORT_START /* $700005.b */
1615 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
1616 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
1617 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1618 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
1619 PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1620
1621 PORT_START /* $400002 */
1622 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* trigger P1 */
1623 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* pump P1 */
1624 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) /* trigger P2 */
1625 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) /* pump P2 */
1626 PORT_BIT( 0xffcc, IP_ACTIVE_LOW, IPT_UNKNOWN )
1627
1628 PORT_START /* gun1 part 2 */
1629 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1630
1631 PORT_START /* gun2 part 2 */
1632 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 10, 0x08, 0xf8 )
1633 INPUT_PORTS_END
1634
1635 /***************************************************************************
1636 Penguin Bros
1637 ***************************************************************************/
1638
1639 INPUT_PORTS_START( penbros )
1640 PORT_START /* IN0 - $500300.w*/
1641 PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
1642 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
1643 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1644 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1645 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
1646 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1647 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1648 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
1649 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1650 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
1651 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
1652 PORT_DIPSETTING( 0x0020, DEF_STR( 3C_1C ) )
1653 PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) )
1654 PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) )
1655 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_2C ) )
1656 PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
1657 PORT_DIPSETTING( 0x0080, DEF_STR( 3C_1C ) )
1658 PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) )
1659 PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) )
1660 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_2C ) )
1661
1662 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1663
1664 PORT_START /* IN1 - $500302.w*/
1665 PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
1666 PORT_DIPSETTING( 0x0002, "Easy" )
1667 PORT_DIPSETTING( 0x0003, "Normal" )
1668 PORT_DIPSETTING( 0x0001, "Hard" )
1669 PORT_DIPSETTING( 0x0000, "Hardest" )
1670 PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
1671 PORT_DIPSETTING( 0x0000, "2" )
1672 PORT_DIPSETTING( 0x000c, "3" )
1673 PORT_DIPSETTING( 0x0004, "4" )
1674 PORT_DIPSETTING( 0x0008, "5" )
1675 PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Bonus_Life ) )
1676 PORT_DIPSETTING( 0x0010, "150k and 500k" )
1677 PORT_DIPSETTING( 0x0030, "200k and 700k" )
1678 PORT_DIPSETTING( 0x0000, "Every 250k" ) /* no extra life after the one at 1500k*/
1679 PORT_DIPSETTING( 0x0020, "None" )
1680 PORT_DIPNAME( 0x00c0, 0x00c0, "Winning Rounds (Player VS Player)" )
1681 PORT_DIPSETTING( 0x00c0, "2" )
1682 PORT_DIPSETTING( 0x0040, "3" )
1683 PORT_DIPSETTING( 0x0080, "4" )
1684 PORT_DIPSETTING( 0x0000, "5" )
1685
1686 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1687
1688 PORT_START /* IN2 - $600000.w*/
1689 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
1690 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
1691 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
1692 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
1693 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1694 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1695 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* unsure if used*/
1696 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
1697
1698 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1699
1700 PORT_START /* IN3 - $600002.w*/
1701 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
1702 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
1703 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
1704 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
1705 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1706 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1707 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 ) /* unsure if used*/
1708 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
1709
1710 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1711
1712 PORT_START /* IN4 - $600004.w*/
1713 PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
1714 PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 ) /* unused, test mode shows it*/
1715 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1716 PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F1, IP_JOY_NONE )
1717 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
1718 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
1719 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1720 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1721
1722 PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
1723 INPUT_PORTS_END
1724
1725
1726 /***************************************************************************
1727
1728
1729 Graphics Layouts
1730
1731
1732 ***************************************************************************/
1733
1734 static struct GfxLayout layout_4bpp_lo =
1735 {
1736 8,8,
1737 RGN_FRAC(1,4),
1738 4,
1739 { RGN_FRAC(1,4)+8,RGN_FRAC(1,4)+0,
1740 RGN_FRAC(0,4)+8,RGN_FRAC(0,4)+0 },
1741 { STEP8(0,1) },
1742 { STEP8(0,8*2) },
1743 8*8*2
1744 };
1745
1746 static struct GfxLayout layout_4bpp_hi =
1747 {
1748 8,8,
1749 RGN_FRAC(1,4),
1750 4,
1751 { RGN_FRAC(3,4)+8,RGN_FRAC(3,4)+0,
1752 RGN_FRAC(2,4)+8,RGN_FRAC(2,4)+0 },
1753 { STEP8(0,1) },
1754 { STEP8(0,8*2) },
1755 8*8*2
1756 };
1757
1758 static struct GfxLayout layout_6bpp =
1759 {
1760 8,8,
1761 RGN_FRAC(1,4),
1762 6,
1763 {
1764 RGN_FRAC(2,4)+8,RGN_FRAC(2,4)+0,
1765 RGN_FRAC(1,4)+8,RGN_FRAC(1,4)+0,
1766 RGN_FRAC(0,4)+8,RGN_FRAC(0,4)+0 },
1767 { STEP8(0,1) },
1768 { STEP8(0,8*2) },
1769 8*8*2
1770 };
1771
1772 static struct GfxLayout layout_8bpp =
1773 {
1774 8,8,
1775 RGN_FRAC(1,4),
1776 8,
1777 { RGN_FRAC(3,4)+8,RGN_FRAC(3,4)+0,
1778 RGN_FRAC(2,4)+8,RGN_FRAC(2,4)+0,
1779 RGN_FRAC(1,4)+8,RGN_FRAC(1,4)+0,
1780 RGN_FRAC(0,4)+8,RGN_FRAC(0,4)+0 },
1781 { STEP8(0,1) },
1782 { STEP8(0,8*2) },
1783 8*8*2
1784 };
1785
1786 static struct GfxLayout layout_3bpp_lo =
1787 {
1788 8,8,
1789 RGN_FRAC(1,4),
1790 3,
1791 { RGN_FRAC(1,4)+0,
1792 RGN_FRAC(0,4)+8,RGN_FRAC(0,4)+0 },
1793 { STEP8(0,1) },
1794 { STEP8(0,8*2) },
1795 8*8*2
1796 };
1797
1798 static struct GfxLayout layout_2bpp_hi =
1799 {
1800 8,8,
1801 RGN_FRAC(1,4),
1802 2,
1803 { RGN_FRAC(2,4)+8,RGN_FRAC(2,4)+0 },
1804 { STEP8(0,1) },
1805 { STEP8(0,8*2) },
1806 8*8*2
1807 };
1808
1809 /* Tiles are 8bpp, but the hardware is additionally able to discard
1810 some bitplanes and use the low 4 bits only, or the high 4 bits only */
1811 static struct GfxDecodeInfo gfxdecodeinfo[] =
1812 {
1813 { REGION_GFX1, 0, &layout_4bpp_lo, 0, 0x8000/16 },
1814 { REGION_GFX1, 0, &layout_4bpp_hi, 0, 0x8000/16 },
1815 { REGION_GFX1, 0, &layout_6bpp, 0, 0x8000/16 }, /* 6bpp, but 4bpp granularity */
1816 { REGION_GFX1, 0, &layout_8bpp, 0, 0x8000/16 }, /* 8bpp, but 4bpp granularity */
1817 { REGION_GFX1, 0, &layout_3bpp_lo, 0, 0x8000/16 }, /* 3bpp, but 4bpp granularity */
1818 { REGION_GFX1, 0, &layout_2bpp_hi, 0, 0x8000/16 }, /* ??? */
1819 { -1 }
1820 };
1821
1822
1823 /***************************************************************************
1824
1825 Machine Drivers
1826
1827 ***************************************************************************/
1828
INTERRUPT_GEN(seta2_interrupt)1829 static INTERRUPT_GEN( seta2_interrupt )
1830 {
1831 switch ( cpu_getiloops() )
1832 {
1833 case 0:
1834 /* VBlank is connected to INT0 (external interrupts pin 0) */
1835 tmp68301_external_interrupt_0();
1836 break;
1837 }
1838 }
1839
INTERRUPT_GEN(samshoot_interrupt)1840 static INTERRUPT_GEN( samshoot_interrupt )
1841 {
1842 switch ( cpu_getiloops() )
1843 {
1844 case 0:
1845 tmp68301_external_interrupt_0(); /* vblank */
1846 break;
1847 case 1:
1848 tmp68301_external_interrupt_2(); /* to do: hook up x1-10 interrupts */
1849 break;
1850 }
1851 }
1852
1853 static struct x1_010_interface x1_010_sound_intf_16MHz =
1854 {
1855 50000000/3, /* clock */
1856 YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT), /* volume */
1857 0x0000, /* address */
1858 };
1859
1860
1861 static MACHINE_DRIVER_START( mj4simai )
1862
1863 /* basic machine hardware */
1864 MDRV_CPU_ADD_TAG("main",M68000,32530400 / 2) /* !! TMP68301 !! */
1865 MDRV_CPU_MEMORY(mj4simai_readmem,mj4simai_writemem)
1866 MDRV_CPU_VBLANK_INT(seta2_interrupt,1)
1867
1868 MDRV_FRAMES_PER_SECOND(60)
1869 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1870
1871 MDRV_MACHINE_INIT( tmp68301 )
1872
1873 /* video hardware */
1874 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1875 MDRV_SCREEN_SIZE(0x200, 0x200)
1876 MDRV_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1)
1877 MDRV_GFXDECODE(gfxdecodeinfo)
1878 MDRV_PALETTE_LENGTH(0x8000)
1879
1880 MDRV_VIDEO_START(seta2)
1881 MDRV_VIDEO_UPDATE(seta2)
1882 MDRV_VIDEO_EOF(seta2)
1883
1884 /* sound hardware */
1885 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
1886 MDRV_SOUND_ADD(X1_010, x1_010_sound_intf_16MHz)
1887 MACHINE_DRIVER_END
1888
1889 static MACHINE_DRIVER_START( gundamex )
1890
1891 /* basic machine hardware */
1892 MDRV_IMPORT_FROM(mj4simai)
1893 MDRV_CPU_MODIFY("main")
1894 MDRV_CPU_REPLACE("main",M68000,16000000)
1895 MDRV_CPU_MEMORY(gundamex_readmem,gundamex_writemem)
1896 MDRV_NVRAM_HANDLER(93C46_gundamex)
1897
1898 /* video hardware */
1899 MDRV_VISIBLE_AREA(0x00, 0x180-1, 0x100, 0x1e0-1)
1900 MACHINE_DRIVER_END
1901
1902 static MACHINE_DRIVER_START( grdians )
1903
1904 MDRV_IMPORT_FROM(mj4simai)
1905 MDRV_CPU_MODIFY("main")
1906 MDRV_CPU_MEMORY(grdians_readmem,grdians_writemem)
1907
1908 /* video hardware */
1909 MDRV_VISIBLE_AREA(0x80, 0x80 + 0x130 -1, 0x80, 0x80 + 0xe8 -1)
1910 MACHINE_DRIVER_END
1911
1912
1913 static MACHINE_DRIVER_START( myangel )
1914
1915 /* basic machine hardware */
1916 MDRV_IMPORT_FROM(mj4simai)
1917 MDRV_CPU_MODIFY("main")
1918 MDRV_CPU_MEMORY(myangel_readmem,myangel_writemem)
1919
1920 /* video hardware */
1921 MDRV_VISIBLE_AREA(0, 0x178-1, 0x00, 0xf0-1)
1922
1923 MDRV_VIDEO_START(seta2_offset)
1924 MACHINE_DRIVER_END
1925
1926
1927 static MACHINE_DRIVER_START( myangel2 )
1928
1929 /* basic machine hardware */
1930 MDRV_IMPORT_FROM(mj4simai)
1931 MDRV_CPU_MODIFY("main")
1932 MDRV_CPU_MEMORY(myangel2_readmem,myangel2_writemem)
1933
1934 /* video hardware */
1935 MDRV_VISIBLE_AREA(0, 0x178-1, 0x00, 0xf0-1)
1936
1937 MDRV_VIDEO_START(seta2_offset)
1938 MACHINE_DRIVER_END
1939
1940
1941 static MACHINE_DRIVER_START( pzlbowl )
1942
1943 /* basic machine hardware */
1944 MDRV_IMPORT_FROM(mj4simai)
1945 MDRV_CPU_MODIFY("main")
1946 MDRV_CPU_MEMORY(pzlbowl_readmem,pzlbowl_writemem)
1947
1948 /* video hardware */
1949 MDRV_VISIBLE_AREA(0x10, 0x190-1, 0x100, 0x1f0-1)
1950 MACHINE_DRIVER_END
1951
1952
1953 static MACHINE_DRIVER_START( penbros )
1954
1955 /* basic machine hardware */
1956 MDRV_IMPORT_FROM(mj4simai)
1957 MDRV_CPU_MODIFY("main")
1958 MDRV_CPU_MEMORY(penbros_readmem,penbros_writemem)
1959
1960 /* video hardware */
1961 MDRV_VISIBLE_AREA(0, 0x140-1, 0x80, 0x160-1)
1962 MACHINE_DRIVER_END
1963
1964 static MACHINE_DRIVER_START( samshoot )
1965
1966 /* basic machine hardware */
1967 MDRV_IMPORT_FROM(mj4simai)
1968 MDRV_CPU_MODIFY("main")
1969 MDRV_CPU_MEMORY(samshoot_readmem, samshoot_writemem)
1970 MDRV_CPU_VBLANK_INT(samshoot_interrupt,2)
1971
1972 MDRV_NVRAM_HANDLER(generic_0fill)
1973
1974 MDRV_VIDEO_UPDATE(seta2_gun)
1975
1976 /* video hardware */
1977 MDRV_VISIBLE_AREA(0x40, 0x180-1, 0x40, 0x130-1)
1978 MACHINE_DRIVER_END
1979
1980
1981 /***************************************************************************
1982
1983 ROMs Loading
1984
1985 ***************************************************************************/
1986
1987 ROM_START( gundamex )
1988 ROM_REGION( 0x600000, REGION_CPU1, 0 ) /* TMP68301 Code */
1989 ROM_LOAD16_BYTE( "ka002002.u2", 0x000000, 0x080000, CRC(e850f6d8) SHA1(026325e305676b1f8d3d9e7573920f8b70d7bccb) )
1990 ROM_LOAD16_BYTE( "ka002004.u3", 0x000001, 0x080000, CRC(c0fb1208) SHA1(84b25e4c73cb8e023ee5dbf69f588be98700b43f) )
1991 ROM_LOAD16_BYTE( "ka002001.u4", 0x100000, 0x080000, CRC(553ebe6b) SHA1(7fb8a159513d31a1d60520ff14e4c4d133fd3e19) )
1992 ROM_LOAD16_BYTE( "ka002003.u5", 0x100001, 0x080000, CRC(946185aa) SHA1(524911c4c510d6c3e17a7ab42c7077c2fffbf06b) )
1993 ROM_LOAD16_WORD_SWAP( "ka001005.u77", 0x500000, 0x080000, CRC(f01d3d00) SHA1(ff12834e99a76261d619f10d186f4b329fb9cb7a) )
1994
1995 ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_ERASE) /* Sprites */
1996 ROM_LOAD( "ka001009.u16", 0x0000000, 0x200000, CRC(997d8d93) SHA1(4cb4cdb7e8208af4b14483610d9d6aa5e13acd89) )
1997 ROM_LOAD( "ka001010.u18", 0x0200000, 0x200000, CRC(811b67ca) SHA1(c8cfae6f54c76d63bd625ff011c872ffb75fd2e2) )
1998 ROM_LOAD( "ka001011.u20", 0x0400000, 0x200000, CRC(08a72700) SHA1(fb8003aa02dd249c30a757cb43b516260b41c1bf) )
1999 ROM_LOAD( "ka001012.u15", 0x0800000, 0x200000, CRC(b789e4a8) SHA1(400b773f24d677a9d47466fdbbe68cb6efc1ad37) )
2000 ROM_LOAD( "ka001013.u17", 0x0a00000, 0x200000, CRC(d8a0201f) SHA1(fe8a2407c872adde8aec8e9340b00be4f00a2872) )
2001 ROM_LOAD( "ka001014.u19", 0x0c00000, 0x200000, CRC(7635e026) SHA1(116a3daab14a17faca85c4a956b356aaf0fc2276) )
2002 ROM_LOAD( "ka001006.u21", 0x1000000, 0x200000, CRC(6aac2f2f) SHA1(fac5478ca2941a93c57f670a058ff626e537bcde) )
2003 ROM_LOAD( "ka001007.u22", 0x1200000, 0x200000, CRC(588f9d63) SHA1(ed5148d09d02e3bc12c50c39c5c86e6356b2dd7a) )
2004 ROM_LOAD( "ka001008.u23", 0x1400000, 0x200000, CRC(db55a60a) SHA1(03d118c7284ca86219891c473e2a89489710ea27) )
2005 ROM_FILL( 0x1800000, 0x600000, 0 ) /* 6bpp instead of 8bpp */
2006
2007 ROM_REGION( 0x300000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2008 /* Leave 1MB empty (addressable by the chip) */
2009 ROM_LOAD( "ka001015.u28", 0x100000, 0x200000, CRC(ada2843b) SHA1(09d06026031bc7558da511c3c0e29187ea0a0099) )
2010 ROM_END
2011
2012 ROM_START( grdians )
2013 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2014 ROM_LOAD16_BYTE( "u2.bin", 0x000000, 0x080000, CRC(36adc6f2) SHA1(544e87f88179fe1342e7a06a8948ac1828e85108) )
2015 ROM_LOAD16_BYTE( "u3.bin", 0x000001, 0x080000, CRC(2704f416) SHA1(9081a12cbb9927d36e1c50b52aa2c6003810ee42) )
2016 ROM_LOAD16_BYTE( "u4.bin", 0x100000, 0x080000, CRC(bb52447b) SHA1(61433f683210ab2bc2cf1cc4b5b7a39cc5b6493d) )
2017 ROM_LOAD16_BYTE( "u5.bin", 0x100001, 0x080000, CRC(9c164a3b) SHA1(6d688c7af9e7e8e8d54b2e4dfbf41f59c79242eb) )
2018
2019 ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_ERASE) /* Sprites */
2020 ROM_LOAD( "u16.bin", 0x0000000, 0x400000, CRC(6a65f265) SHA1(6cad11f718f8bbcff464d41eb4717460769237ed) )
2021 ROM_LOAD( "u20.bin", 0x0600000, 0x200000, CRC(a7226ab7) SHA1(408580dd35c568ffef1ebbd87359e3ec1f867020) )
2022 ROM_CONTINUE( 0x0400000, 0x200000 )
2023
2024 ROM_LOAD( "u15.bin", 0x0800000, 0x400000, CRC(01672dcd) SHA1(f61f60e3343cc5b6ccee391ee529966a141566db) )
2025 ROM_LOAD( "u19.bin", 0x0e00000, 0x200000, CRC(c0c998a0) SHA1(498fb1877527ed37412537f06a2c39ff0c60f146) )
2026 ROM_CONTINUE( 0x0c00000, 0x200000 )
2027
2028 ROM_LOAD( "u18.bin", 0x1000000, 0x400000, CRC(967babf4) SHA1(42a6311576417c44aeaceb8ba6bb3cd7794e4882) )
2029 ROM_LOAD( "u22.bin", 0x1600000, 0x200000, CRC(6239997a) SHA1(87b6d6f30f152f625f82fd858c1290176c7e156e) )
2030 ROM_CONTINUE( 0x1400000, 0x200000 )
2031
2032 ROM_LOAD( "u17.bin", 0x1800000, 0x400000, CRC(0fad0629) SHA1(1bdc8e7c5e39e83d327f14a672ec81b049112da6) )
2033 ROM_LOAD( "u21.bin", 0x1e00000, 0x200000, CRC(6f95e466) SHA1(28482fad16a3ac9302f152d81552e6f84a44f3e4) )
2034 ROM_CONTINUE( 0x1c00000, 0x200000 )
2035
2036 ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2037 /* Leave 1MB empty (addressable by the chip) */
2038 ROM_LOAD( "u32.bin", 0x100000, 0x100000, CRC(cf0f3017) SHA1(8376d3a674f71aec72f52c72758fbc53d9feb1a1) )
2039 ROM_END
2040
2041 ROM_START( mj4simai )
2042 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2043 ROM_LOAD16_BYTE( "ll.u2", 0x000000, 0x080000, CRC(7be9c781) SHA1(d29e579706d98909933f6bed2ee292c88ed10d2c) )
2044 ROM_LOAD16_BYTE( "lh1.u3", 0x000001, 0x080000, CRC(82aa3f72) SHA1(a93d5dc7cdf12f852a692759d91f6f2951b6b5b5) )
2045 ROM_LOAD16_BYTE( "hl.u4", 0x100000, 0x080000, CRC(226063b7) SHA1(1737baffc16ff7261f887911187ece96925fa6ff) )
2046 ROM_LOAD16_BYTE( "hh.u5", 0x100001, 0x080000, CRC(23aaf8df) SHA1(b3d678afce4ddef32e48d690c6d07b723dd0c28f) )
2047
2048 ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2049 ROM_LOAD( "cha-03.u16", 0x0000000, 0x400000, CRC(d367429a) SHA1(b32c215ef85c3d0a4c5550cef4f5c4c0e7030b7c) )
2050 ROM_LOAD( "cha-04.u18", 0x0400000, 0x400000, CRC(7f2008c3) SHA1(e45d863540eb2381f5d7660d64cdfef87c890768) )
2051 ROM_LOAD( "cha-05.u15", 0x0800000, 0x400000, CRC(e94ec40a) SHA1(2685dbc5680b5f76688c6b4fbe40ae682c525bfe) )
2052 ROM_LOAD( "cha-06.u17", 0x0c00000, 0x400000, CRC(5cb0b3a9) SHA1(92fb82d45b4c46326d5796981f812e20a8ddb4f2) )
2053 ROM_LOAD( "cha-01.u21", 0x1000000, 0x400000, CRC(35f47b37) SHA1(4a8eb088890272f2a069e2c3f00fadf6421f7b0e) )
2054 ROM_LOAD( "cha-02.u22", 0x1400000, 0x400000, CRC(f6346860) SHA1(4eebd3fa315b97964fa39b88224f9de7622ba881) )
2055 ROM_FILL( 0x1800000, 0x800000, 0 ) /* 6bpp instead of 8bpp */
2056
2057 ROM_REGION( 0x500000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2058 /* Leave 1MB empty (addressable by the chip) */
2059 ROM_LOAD( "cha-07.u32", 0x100000, 0x400000, CRC(817519ee) SHA1(ed09740cdbf61a328f7b50eb569cf498fb749416) )
2060 ROM_END
2061
2062 ROM_START( myangel )
2063 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2064 ROM_LOAD16_BYTE( "kq1-prge.u2", 0x000000, 0x080000, CRC(6137d4c0) SHA1(762341e11b56e4a7787a0662833b702b78aee0a9) )
2065 ROM_LOAD16_BYTE( "kq1-prgo.u3", 0x000001, 0x080000, CRC(4aad10d8) SHA1(a08e1c4f57c64be829e0807ae2791da947fd60aa) )
2066 ROM_LOAD16_BYTE( "kq1-tble.u4", 0x100000, 0x080000, CRC(e332a514) SHA1(dfd255239c80c48c9865e70681b9ddd175b8bf55) )
2067 ROM_LOAD16_BYTE( "kq1-tblo.u5", 0x100001, 0x080000, CRC(760cab15) SHA1(fa7ea85ec2ebfaab3111b8631ea6ea3d794d449c) )
2068
2069 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2070 ROM_LOAD( "kq1-cg2.u20", 0x000000, 0x200000, CRC(80b4e8de) SHA1(c8685c4f4e3c0415ce0ec88e0288835e504cab00) )
2071 ROM_LOAD( "kq1-cg0.u16", 0x200000, 0x200000, CRC(f8ae9a05) SHA1(4f3b41386a48a1608aa96b911e6b74ca775260fb) )
2072 ROM_LOAD( "kq1-cg3.u19", 0x400000, 0x200000, CRC(9bdc35c9) SHA1(fd0a1eb3dd10705bce5462263667353632558b58) )
2073 ROM_LOAD( "kq1-cg1.u15", 0x600000, 0x200000, CRC(23bd7ea4) SHA1(e925bbadc33fc2586bb18283cf989ab35f28c1e9) )
2074 ROM_LOAD( "kq1-cg6.u22", 0x800000, 0x200000, CRC(b25acf12) SHA1(5cca35921f3b376c3cc36f5b009eb845db2e1897) )
2075 ROM_LOAD( "kq1-cg4.u18", 0xa00000, 0x200000, CRC(dca7f8f2) SHA1(20595c7940a28d01bdc6610b67aaaeac61ba92e2) )
2076 ROM_LOAD( "kq1-cg7.u21", 0xc00000, 0x200000, CRC(9f48382c) SHA1(80dfc33a55123b5d3cdb3ed97b43a527f0254d61) )
2077 ROM_LOAD( "kq1-cg5.u17", 0xe00000, 0x200000, CRC(a4bc4516) SHA1(0eb11fa54d16bba1b96f9dd943a68949a3bb9a2f) )
2078
2079 ROM_REGION( 0x300000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2080 /* Leave 1MB empty (addressable by the chip) */
2081 ROM_LOAD( "kq1-snd.u32", 0x100000, 0x200000, CRC(8ca1b449) SHA1(f54096fb5400843af4879135c96760485b6cb319) )
2082 ROM_END
2083
2084 ROM_START( myangel2 )
2085 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2086 ROM_LOAD16_BYTE( "kqs1ezpr.u2", 0x000000, 0x080000, CRC(2469aac2) SHA1(7dade2de31252e305d24c659c4801dd4687ad1f6) )
2087 ROM_LOAD16_BYTE( "kqs1ozpr.u3", 0x000001, 0x080000, CRC(6336375c) SHA1(72089f77e94832e74e0512944acadeccd0dec8b0) )
2088 ROM_LOAD16_BYTE( "kqs1e-tb.u4", 0x100000, 0x080000, CRC(e759b4cc) SHA1(4f806a144a47935b2710f8af800ec0d771f12a18) )
2089 ROM_LOAD16_BYTE( "kqs1o-tb.u5", 0x100001, 0x080000, CRC(b6168737) SHA1(4c3de877c0c1dca1c43ac737a0bf231335237d3a) )
2090
2091 ROM_REGION( 0x1800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2092 ROM_LOAD( "kqs1-cg4.u20", 0x0000000, 0x200000, CRC(d1802241) SHA1(52c45a13d46f7ee8043e85b99d07b1765ca93dcc) )
2093 ROM_LOAD( "kqs1-cg0.u16", 0x0200000, 0x400000, CRC(c21a33a7) SHA1(bc6f479a8f4c716ba79a725f160ddeb95fdedbcb) )
2094 ROM_LOAD( "kqs1-cg5.u19", 0x0600000, 0x200000, CRC(d86cf19c) SHA1(da5a5b576ce107433605b24d8b9dcd0abd46bcde) )
2095 ROM_LOAD( "kqs1-cg1.u15", 0x0800000, 0x400000, CRC(dca799ba) SHA1(8379b11472c27b1945fe7fc274c7fedf756accba) )
2096 ROM_LOAD( "kqs1-cg6.u22", 0x0c00000, 0x200000, CRC(3f08886b) SHA1(054546ae44ffa5d0973f4ead080fe720a340e144) )
2097 ROM_LOAD( "kqs1-cg2.u18", 0x0e00000, 0x400000, CRC(f7f92c7e) SHA1(24a525a15fded0de6e382b346da6bd5e7b9eced5) )
2098 ROM_LOAD( "kqs1-cg7.u21", 0x1200000, 0x200000, CRC(2c977904) SHA1(2589447f2471cdc414266b34aff552044c680d93) )
2099 ROM_LOAD( "kqs1-cg3.u17", 0x1400000, 0x400000, CRC(de3b2191) SHA1(d7d6ea07b665cfd834747d3c0776b968ce03bc6a) )
2100
2101 ROM_REGION( 0x500000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2102 /* Leave 1MB empty (addressable by the chip) */
2103 ROM_LOAD( "kqs1-snd.u32", 0x100000, 0x400000, CRC(792a6b49) SHA1(341b4e8f248b5032217733bada32e353c67e3888) )
2104 ROM_END
2105
2106 ROM_START( pzlbowl )
2107 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */
2108 ROM_LOAD16_BYTE( "kup-u06.i03", 0x000000, 0x080000, CRC(314e03ac) SHA1(999398e55161dd75570d418f4c9899e3bf311cc8) )
2109 ROM_LOAD16_BYTE( "kup-u07.i03", 0x000001, 0x080000, CRC(a0423a04) SHA1(9539023c5c2f2bf72ee3fb6105443ffd3d61e2f8) )
2110
2111 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2112 ROM_LOAD( "kuc-u38.i00", 0x000000, 0x400000, CRC(3db24172) SHA1(89c39963e15c53b799994185d0c8b2e795478939) )
2113 ROM_LOAD( "kuc-u39.i00", 0x400000, 0x400000, CRC(9b26619b) SHA1(ea7a0bf46641d15353217b01e761d1a148bee4e7) )
2114 ROM_LOAD( "kuc-u40.i00", 0x800000, 0x400000, CRC(7e49a2cf) SHA1(d24683addbc54515c33fb620ac500e6702bd9e17) )
2115 ROM_LOAD( "kuc-u41.i00", 0xc00000, 0x400000, CRC(2febf19b) SHA1(8081ac590c0463529777b5e4817305a1a6f6ea41) )
2116
2117 ROM_REGION( 0x500000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2118 /* Leave 1MB empty (addressable by the chip) */
2119 ROM_LOAD( "kus-u18.i00", 0x100000, 0x400000, CRC(e2b1dfcf) SHA1(fb0b8be119531a1a27efa46ed7b86b05a37ed585) )
2120 ROM_END
2121
2122 ROM_START( penbros )
2123 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */
2124 ROM_LOAD16_BYTE( "u06.bin", 0x000000, 0x080000, CRC(7bbdffac) SHA1(d5766cb171b8d2e4c04a6bae37181fa5ada9d797) )
2125 ROM_LOAD16_BYTE( "u07.bin", 0x000001, 0x080000, CRC(d50cda5f) SHA1(fc66f55f2070b447c5db85c948ce40adc37512f7) )
2126
2127 ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2128 ROM_LOAD( "u38.bin", 0x000000, 0x400000, CRC(4247b39e) SHA1(f273931293beced312e02c870bf35e9cf0c91a8b) )
2129 ROM_LOAD( "u39.bin", 0x400000, 0x400000, CRC(f9f07faf) SHA1(66fc4a9ad422fb384d2c775e43619137226898fc) )
2130 ROM_LOAD( "u40.bin", 0x800000, 0x400000, CRC(dc9e0a96) SHA1(c2c8ccf9039ee0e179b08fdd2d37f29899349cda) )
2131 ROM_FILL( 0xc00000, 0x400000, 0 ) /* 6bpp instead of 8bpp */
2132
2133 ROM_REGION( 0x300000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2134 /* Leave 1MB empty (addressable by the chip) */
2135 ROM_LOAD( "u18.bin", 0x100000, 0x200000, CRC(de4e65e2) SHA1(82d4e590c714b3e9bf0ffaf1500deb24fd315595) )
2136 ROM_END
2137
2138 ROM_START( deerhunt ) /* Deer Hunting USA V4.3 (11/1/2000) - The "E05" breaks version label conventions but is correct & verified */
2139 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2140 ROM_LOAD16_BYTE( "as0906e05.u06", 0x000000, 0x100000, CRC(20c81f17) SHA1(d41d93d6ee88738cec55f7bf3ce6be1dbec68e09) ) /* checksum 694E printed on label */
2141 ROM_LOAD16_BYTE( "as0907e05.u07", 0x000001, 0x100000, CRC(1731aa2a) SHA1(cffae7a99a7f960a62ef0c4454884df17a93c1a6) ) /* checksum 5D89 printed on label */
2142
2143 ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */
2144 ROM_LOAD( "as0901m01.u38", 0x0000000, 0x800000, CRC(1d6acf8f) SHA1(6f61fe21bebb7c87e8e6c3ef3ba73b8cf327dde9) )
2145 ROM_LOAD( "as0902m01.u39", 0x0800000, 0x800000, CRC(c7ca2128) SHA1(86be3a3ec2f86f61acfa3d4d261faea3c27dc378) )
2146 ROM_LOAD( "as0903m01.u40", 0x1000000, 0x800000, CRC(e8ef81b3) SHA1(97666942ca6cca5b8ea6451314a2aaabad9e06ba) )
2147 ROM_LOAD( "as0904m01.u41", 0x1800000, 0x800000, CRC(d0f97fdc) SHA1(776c9d42d03a9f61155521212305e1ed696eaf47) )
2148
2149 ROM_REGION( 0x500000, REGION_SOUND1, ROMREGION_SOUNDONLY ) /* Samples */
2150 /* Leave 1MB empty (addressable by the chip) */
2151 ROM_LOAD( "as0905m01.u18", 0x100000, 0x400000, CRC(8d8165bb) SHA1(aca7051613d260734ee787b4c3db552c336bd600) )
2152 ROM_END
2153
2154
2155 ROM_START( deerhunta ) /* Deer Hunting USA V4.2 (xx/x/2000) */
2156 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2157 ROM_LOAD16_BYTE( "as0906e04-v4_2.u06", 0x000000, 0x100000, CRC(bb3af36f) SHA1(f04071347e8ad361bf666fcb6c0136e522f19d47) ) /* checksum 6640 printed on label */
2158 ROM_LOAD16_BYTE( "as0907e04-v4_2.u07", 0x000001, 0x100000, CRC(83f02117) SHA1(70fc2291bc93af3902aae88688be6a8078f7a07e) ) /* checksum 595A printed on label */
2159
2160 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2161 ROM_LOAD( "as0901m01.u38", 0x0000000, 0x800000, CRC(1d6acf8f) SHA1(6f61fe21bebb7c87e8e6c3ef3ba73b8cf327dde9) )
2162 ROM_LOAD( "as0902m01.u39", 0x0800000, 0x800000, CRC(c7ca2128) SHA1(86be3a3ec2f86f61acfa3d4d261faea3c27dc378) )
2163 ROM_LOAD( "as0903m01.u40", 0x1000000, 0x800000, CRC(e8ef81b3) SHA1(97666942ca6cca5b8ea6451314a2aaabad9e06ba) )
2164 ROM_LOAD( "as0904m01.u41", 0x1800000, 0x800000, CRC(d0f97fdc) SHA1(776c9d42d03a9f61155521212305e1ed696eaf47) )
2165
2166 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2167 /* Leave 1MB empty (addressable by the chip) */
2168 ROM_LOAD( "as0905m01.u18", 0x100000, 0x400000, CRC(8d8165bb) SHA1(aca7051613d260734ee787b4c3db552c336bd600) )
2169 ROM_END
2170
2171 ROM_START( deerhuntb ) /* Deer Hunting USA V4.0 (6/15/2000) */
2172 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2173 ROM_LOAD16_BYTE( "as0906e04.u06", 0x000000, 0x100000, CRC(07d9b64a) SHA1(f9aac644aab920bbac84b14836ee589ccd51f6db) ) /* checksum 7BBB printed on label */
2174 ROM_LOAD16_BYTE( "as0907e04.u07", 0x000001, 0x100000, CRC(19973d08) SHA1(da1cc02ce480a62ccaf94d0af1246a340f054b43) ) /* checksum 4C78 printed on label */
2175
2176 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2177 ROM_LOAD( "as0901m01.u38", 0x0000000, 0x800000, CRC(1d6acf8f) SHA1(6f61fe21bebb7c87e8e6c3ef3ba73b8cf327dde9) )
2178 ROM_LOAD( "as0902m01.u39", 0x0800000, 0x800000, CRC(c7ca2128) SHA1(86be3a3ec2f86f61acfa3d4d261faea3c27dc378) )
2179 ROM_LOAD( "as0903m01.u40", 0x1000000, 0x800000, CRC(e8ef81b3) SHA1(97666942ca6cca5b8ea6451314a2aaabad9e06ba) )
2180 ROM_LOAD( "as0904m01.u41", 0x1800000, 0x800000, CRC(d0f97fdc) SHA1(776c9d42d03a9f61155521212305e1ed696eaf47) )
2181
2182 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2183 /* Leave 1MB empty (addressable by the chip) */
2184 ROM_LOAD( "as0905m01.u18", 0x100000, 0x400000, CRC(8d8165bb) SHA1(aca7051613d260734ee787b4c3db552c336bd600) )
2185 ROM_END
2186
2187 ROM_START( turkhunt ) /* V1.0 is currently the only known version */
2188 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2189 ROM_LOAD16_BYTE( "asx906e01.u06", 0x000000, 0x100000, CRC(c96266e1) SHA1(0ca462b3b0f27198e36384eee6ea5c5d4e7e1293) ) /* checksum E510 printed on label */
2190 ROM_LOAD16_BYTE( "asx907e01.u07", 0x000001, 0x100000, CRC(7c67b502) SHA1(6a0e8883a115dac4095d86897e7eca2a007a1c71) ) /* checksum AB40 printed on label */
2191
2192 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2193 ROM_LOAD( "asx901m01.u38", 0x0000000, 0x800000, CRC(eabd3f44) SHA1(5a1ac986d11a8b019e18761cf4ea0a6f49fbdbfc) )
2194 ROM_LOAD( "asx902m01.u39", 0x0800000, 0x800000, CRC(c32130c8) SHA1(70d56ebed1f51657aaee02f95ac51589733e6eb7) )
2195 ROM_LOAD( "asx903m01.u40", 0x1000000, 0x800000, CRC(5f86c322) SHA1(5a72adb99eea176199f172384cb051e2b045ab94) )
2196 ROM_LOAD( "asx904m01.u41", 0x1800000, 0x800000, CRC(c77e0b66) SHA1(0eba30e62e4bd38c198fa6cb69fb94d002ded77a) )
2197
2198 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2199 /* Leave 1MB empty (addressable by the chip) */
2200 ROM_LOAD( "asx905m01.u18", 0x100000, 0x400000, CRC(8d9dd9a9) SHA1(1fc2f3688d2c24c720dca7357bca6bf5f4016c53) )
2201 ROM_END
2202
2203 ROM_START( wschamp ) /* Wing Shootiong Championship V2.00 (01/23/2002) */
2204 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2205 ROM_LOAD16_BYTE( "as1006e03.u06", 0x000000, 0x100000, CRC(0ad01677) SHA1(63e09b9f7cc8b781af1756f86caa0cc0962ae584) ) /* checksum 421E printed on label */
2206 ROM_LOAD16_BYTE( "as1007e03.u07", 0x000001, 0x100000, CRC(572624f0) SHA1(0c2f67daa22f4edd66a2be990dc6cd999faff0fa) ) /* checksum A48F printed on label */
2207
2208 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2209 ROM_LOAD( "as1001m01.u38", 0x0000000, 0x800000, CRC(92595579) SHA1(75a7131aedb18b7103677340c3cca7c91aaca2bf) )
2210 ROM_LOAD( "as1002m01.u39", 0x0800000, 0x800000, CRC(16c2bb08) SHA1(63926464c8bd8db7d05905a953765e645942beb4) )
2211 ROM_LOAD( "as1003m01.u40", 0x1000000, 0x800000, CRC(89618858) SHA1(a8bd07f233482e8f5a256af7ff9577648eb58ef4) )
2212 ROM_LOAD( "as1004m01.u41", 0x1800000, 0x800000, CRC(500c0909) SHA1(73ff27d46b9285f34a50a81c21c54437f21e1939) )
2213
2214 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2215 /* Leave 1MB empty (addressable by the chip) */
2216 ROM_LOAD( "as1005m01.u18", 0x100000, 0x400000, CRC(e4b137b8) SHA1(4d8d15073c51f7d383282cc5755ae5b2eab6226c) )
2217 ROM_END
2218
2219 ROM_START( wschampa ) /* Wing Shootiong Championship V1.01 */
2220 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2221 ROM_LOAD16_BYTE( "as1006e02.u06", 0x000000, 0x100000, CRC(d3d3b2b5) SHA1(2d036d795b40a4ed78bb9f7751f875cfc76276a9) ) /* checksum 31EF printed on label */
2222 ROM_LOAD16_BYTE( "as1007e02.u07", 0x000001, 0x100000, CRC(78ede6d9) SHA1(e6d10f52cd4c6bf97288df44911f23bb64fc012c) ) /* checksum 615E printed on label */
2223
2224 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2225 ROM_LOAD( "as1001m01.u38", 0x0000000, 0x800000, CRC(92595579) SHA1(75a7131aedb18b7103677340c3cca7c91aaca2bf) )
2226 ROM_LOAD( "as1002m01.u39", 0x0800000, 0x800000, CRC(16c2bb08) SHA1(63926464c8bd8db7d05905a953765e645942beb4) )
2227 ROM_LOAD( "as1003m01.u40", 0x1000000, 0x800000, CRC(89618858) SHA1(a8bd07f233482e8f5a256af7ff9577648eb58ef4) )
2228 ROM_LOAD( "as1004m01.u41", 0x1800000, 0x800000, CRC(500c0909) SHA1(73ff27d46b9285f34a50a81c21c54437f21e1939) )
2229
2230 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2231 /* Leave 1MB empty (addressable by the chip) */
2232 ROM_LOAD( "as1005m01.u18", 0x100000, 0x400000, CRC(e4b137b8) SHA1(4d8d15073c51f7d383282cc5755ae5b2eab6226c) )
2233 ROM_END
2234
2235 ROM_START( trophyh ) /* V1.0 is currently the only known version */
2236 ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* TMP68301 Code */
2237 ROM_LOAD16_BYTE( "as1106e01.u06", 0x000000, 0x100000, CRC(b4950882) SHA1(2749f7ffc5b543c9f39815f0913a1d1e385b63f4) ) /* checksum D8DA printed on label */
2238 ROM_LOAD16_BYTE( "as1107e01.u07", 0x000001, 0x100000, CRC(19ee67cb) SHA1(e75ce66d3ff5aad46ba997c09d6514260e617f55) ) /* checksum CEEF printed on label */
2239
2240 ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites */
2241 ROM_LOAD( "as1101m01.u38", 0x0000000, 0x800000, CRC(855ed675) SHA1(84ce229a9feb6331413253a5aed10b362e8102e5) )
2242 ROM_LOAD( "as1102m01.u39", 0x0800000, 0x800000, CRC(d186d271) SHA1(3c54438b35adfab8be91df0a633270d6db49beef) )
2243 ROM_LOAD( "as1103m01.u40", 0x1000000, 0x800000, CRC(adf8a54e) SHA1(bb28bf219d18082246f7964851a5c49b9c0ba7f5) )
2244 ROM_LOAD( "as1104m01.u41", 0x1800000, 0x800000, CRC(387882e9) SHA1(0fdd0c77dabd1066c6f3bd64e357236a76f524ab) )
2245
2246 ROM_REGION( 0x500000, REGION_SOUND1, 0 ) /* Samples */
2247 /* Leave 1MB empty (addressable by the chip) */
2248 ROM_LOAD( "as1105m01.u18", 0x100000, 0x400000, CRC(633d0df8) SHA1(3401c424f5c207ef438a9269e0c0e7d482771fed) )
2249 ROM_END
2250
2251
2252 GAME( 1994, gundamex, 0, gundamex, gundamex, 0, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue" )
2253 GAMEX( 1995, grdians, 0, grdians, grdians, 0, ROT0, "Banpresto", "Guardians - Denjin Makai II", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) /* Displays (c) Winky Soft at game's end.*/
2254 GAMEX( 1996, mj4simai, 0, mj4simai, mj4simai, 0, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", GAME_NO_COCKTAIL )
2255 GAMEX( 1996, myangel, 0, myangel, myangel, 0, ROT0, "Namco", "Kosodate Quiz My Angel (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2256 GAMEX( 1997, myangel2, 0, myangel2, myangel2, 0, ROT0, "Namco", "Kosodate Quiz My Angel 2 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2257 GAMEX( 1999, pzlbowl, 0, pzlbowl, pzlbowl, 0, ROT0, "Nihon System / Moss", "Puzzle De Bowling (Japan)", GAME_NO_COCKTAIL )
2258 GAMEX( 2000, penbros, 0, penbros, penbros, 0, ROT0, "Subsino", "Penguin Brothers (Japan)", GAME_NO_COCKTAIL )
2259
2260 GAMEX( 2000, deerhunt, 0, samshoot, deerhunt, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2261 GAMEX( 2000, deerhunta,deerhunt, samshoot, deerhunt, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2262 GAMEX( 2000, deerhuntb,deerhunt, samshoot, deerhunt, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2263 GAMEX( 2001, turkhunt, 0, samshoot, turkhunt, 0, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2264 GAMEX( 2001, wschamp, 0, samshoot, wschamp, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2265 GAMEX( 2001, wschampa, wschamp, samshoot, wschamp, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2266 GAMEX( 2002, trophyh, 0, samshoot, trophyh, 0, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
2267