1 /***************************************************************************
2
3 Homedata Games
4
5 driver by Phil Stroffolino and Nicola Salmoria
6
7
8 *1987 X77 Mahjong Hourouki Part1 -Seisyun Hen-
9 *1987 X72 Mahjong Hourouki Gaiden
10 1988 Mahjong Joshi Pro-wres -Give up 5 byou mae-
11 *1988 A74 Mahjong Hourouki Okite
12 *1988 X80 Mahjong Clinic
13 *1988 M81 Mahjong Rokumeikan
14 *1988 J82 Reikai Doushi / Chinese Exorcist
15 *1989 X83 Mahjong Kojin Kyouju (Private Teacher)
16 1989 Battle Cry (not released in Japan)
17 *1989 X90 Mahjong Vitamin C
18 *1989 X91 Mahjong Yougo no Kiso Tairyoku
19 *1990 X02 Mahjong Lemon Angel
20 *1991 X07 Mahjong Kinjirareta Asobi -Ike Ike Kyoushi no Yokubou-
21
22 Games from other companies:
23
24 *1991 M15 Mahjong Ikagadesuka (c) Mitchell
25 *19?? Mahjong Jogakuen (c) Windom
26
27
28 These games use only tilemaps for graphics. These tilemaps are organized into
29 two pages (a visible page and a backbuffer) which are automatically swapped by the
30 hardware at vblank.
31
32 Some of the tiles are written directly by the CPU, others are written by a "blitter"
33 which unpacks RLE data from a ROM.
34
35
36 In games using the uPD7807CW, the coprocessor manages input ports and sound/music.
37
38
39 Notes:
40
41 - To access service mode in the older mahjong games, keep F2 pressed during boot.
42 Service mode doesn't work in hourouki because it needs an additional "check" ROM.
43
44 - The "help" button some games ask you to press is the start button.
45
46 - The games can change visible area at runtime. The meaning of the control registers
47 isn't understood, but it supported enough to give the correct visible area to all
48 games.
49 mjkinjas sets the registers to values different from all the other games; it also
50 has a 11MHz xtal instead of the 9MHz of all the others, so the two things are
51 probably related.
52
53 - the ROM for the uPD7807 is divided in 4 0x10000 banks. The first three just
54 contain a simple sample player, followed by the PCM data. The fourth bank contains
55 the main program. The program literally changes banks under its own feet. However,
56 the portions of code executed while the bank switch happens are identical in all
57 banks, so it still works with MAME's standard MRA_BANK handling.
58
59
60 TODO:
61 - Dip switches! They might be right for mjhokite, but I haven't verified the other
62 games.
63
64 - I'm not sure service mode in the newer mahjong games is working as it's supposed to.
65 dip switch changes are not reported, and keypresses only work after you insert a coin.
66
67 - Sound and inputs don't work in mjikaga. CPU communication issue?
68 Coins and dip switches *do* work however.
69 Also note that bit 2 of bankswitch_w() and bit 7 of pteacher_blitter_bank_w() might
70 have some other function, since the ROMs are smaller.
71
72 - wrong gfx in mrokumei at the beginning of a game. It is selecting the wrong gfx bank;
73 the bank handling seems correct in all other games, so I don't know what's wrong here.
74
75 - mjikaga shows some imperfections with horizontal placement of the screen.
76
77 - in attract mode, hourouki draws a horizontal black bar on the bottom right side of
78 the display.
79
80
81 ----------------------------------------------------------------------------
82 Mahjong Hourouki
83 (c)1987 Home Data
84
85 Board: A77-PWB-A-(A)
86
87 CPU: 68B09E Z80-A
88 Sound: SN76489AN DAC
89 OSC: 9.000MHz 16.000MHz
90 Custom: GX61A01
91
92 ----------------------------------------------------------------------------
93 Mahjong Hourouki Gaiden
94 (c)1987 Home Data
95
96 Board: A77-PWB-A-(A)
97
98 CPU: 68B09E Z80-A
99 Sound: SN76489AN DAC
100 OSC: 9.000MHz 16.000MHz
101 Custom: GX61A01
102
103 ----------------------------------------------------------------------------
104 Mahjong Hourouki Okite
105 (c)1988 Homedata
106
107 Almost same board as "Mahjong Clinic"
108
109 Board: X77-PWB-A-(A) A74 PWB-B
110
111 CPU: Hitachi HD68B09EP (location 14G), Sharp LH0080A (Z80A, location 10K)
112 Sound: SN76489 DAC?
113 OSC: 16.000MHz (OSC1) 9.000MHz (OSC2)
114 Custom: HOMEDATA GX61A01 102 8728KK (100pin PQFP, location 8C)
115
116 ----------------------------------------------------------------------------
117 Mahjong Rokumeikan
118 (c)1988 Home Data
119
120 Board: A74-PWB-A-(A) (main) A74 PWB-B (sub)
121
122 CPU: 68B09E Z80-A
123 Sound: SN76489AN DAC
124 OSC: 9.000MHz 16.000MHz
125 Custom: GX61A01
126
127 ----------------------------------------------------------------------------
128 ----------------------------------------------------------------------------
129 Reikai Doushi (Chinese Exorcist)
130 aka Last Apostle Puppet Show (US)
131 (c)1988 HOME DATA
132
133 CPU : 68B09E
134 SOUND : YM2203
135 OSC. : 16.000MHz 9.000MHz
136
137 ----------------------------------------------------------------------------
138 ----------------------------------------------------------------------------
139 Mahjong Kojinkyouju (Private Teacher)
140 (c)1989 HOME DATA
141
142 Board: X73-PWB-A(C)
143
144 CPU: 6809 uPC324C
145 Sound: SN76489
146 OSC: 16.000MHz 9.000MHz
147
148 ----------------------------------------------------------------------------
149 Mahjong Vitamin C
150 (c)1989 Home Data
151
152 Board: X73-PWB-A(A)
153
154 CPU: 68B09E uPD7807CW(?)
155 Sound: SN76489AN DAC
156 OSC: 9.000MHz 16.000MHz
157 Custom: GX61A01
158
159 ----------------------------------------------------------------------------
160 Mahjong-yougo no Kisotairyoku
161 (c)1989 Home Data
162
163 Board: X83-PWB-A(A)
164
165 CPU: 68B09E uPD7807CW(?)
166 Sound: SN76489AN DAC
167 OSC: 9.000MHz 16.000MHz
168 Custom: GX61A01
169
170 ----------------------------------------------------------------------------
171 Mahjong Kinjirareta Asobi
172 (c)1990 Home Data
173
174 Board: X83-PWB-A(A)
175
176 CPU: 68B09E uPD7807CW
177 Sound: SN76489AN
178 DAC
179 OSC: 11.000MHz 16.000MHz
180 Custom: GX61A01
181
182 ----------------------------------------------------------------------------
183 Mahjong Jogakuen
184 (c)19?? Windom
185
186 Board: X83-PWB-A(A)
187
188 CPU: 68B09E uPD7807CW(?)
189 Sound: SN76489AN DAC
190 OSC: 9.000MHz 16.000MHz
191 Custom: GX61A01
192
193 ----------------------------------------------------------------------------
194 ----------------------------------------------------------------------------
195 Mahjong Lemon Angel
196 (c)1990 Homedata
197
198 Board: X83-PWB-A(A)
199
200 CPU: Fujitsu MBL68B09E (16G)
201 (surface scratched 64pin DIP device on location 12G) [probably uPD7807CW]
202 Sound: SN76489
203 OSC: 16.0000MHz (XTAL1) 9.000MHz (XTAL2)
204 Custom: HOMEDATA GX61A01 102 8842KK
205
206 ----------------------------------------------------------------------------
207 Mahjong Ikagadesuka
208 (c)1991 Mitchell
209
210 Board: X83-PWB-A(A)
211
212 CPU: 68B09E uPD7807CW
213 Sound: SN76489AN DAC
214 OSC: 9.000MHz 16.000MHz
215 Custom: GX61A01
216
217 ***************************************************************************/
218
219 #include "driver.h"
220 #include "vidhrdw/generic.h"
221 #include "cpu/m6809/m6809.h"
222 #include "cpu/upd7810/upd7810.h"
223 #include "homedata.h"
224
225
226
227 /********************************************************************************/
228
229
230 static int vblank;
231
INTERRUPT_GEN(homedata_irq)232 static INTERRUPT_GEN( homedata_irq )
233 {
234 vblank = 1;
235 cpu_set_irq_line(0,M6809_FIRQ_LINE,HOLD_LINE);
236 }
237
INTERRUPT_GEN(upd7807_irq)238 static INTERRUPT_GEN( upd7807_irq )
239 {
240 cpu_set_irq_line(1,UPD7810_INTF1,HOLD_LINE);
241 }
242
243
244 /********************************************************************************
245
246 Older Mahjong games:
247
248 single CPU, handling SN76489 + DAC and inputs
249
250 ********************************************************************************/
251
252 static int keyb;
253
READ_HANDLER(mrokumei_keyboard_r)254 static READ_HANDLER( mrokumei_keyboard_r )
255 {
256 int res = 0x3f,i;
257
258 /* offset 0 is player 1, offset 1 player 2 (not supported) */
259 if (offset == 0)
260 {
261 for (i = 0;i < 5;i++)
262 {
263 if (keyb & (1 << i))
264 {
265 res = readinputport(3+i) & 0x3f;
266 break;
267 }
268 }
269 }
270
271 if (offset == 0)
272 {
273 /* bit 7: visible page
274 * bit 6: vblank
275 * other bits are inputs
276 */
277 res |= homedata_visible_page << 7;
278
279 if (vblank) res |= 0x40;
280
281 vblank = 0;
282 }
283
284 return res;
285 }
286
WRITE_HANDLER(mrokumei_keyboard_select_w)287 static WRITE_HANDLER( mrokumei_keyboard_select_w )
288 {
289 keyb = data;
290 }
291
292
293
294 static int sndbank;
295
READ_HANDLER(mrokumei_sound_io_r)296 static READ_HANDLER( mrokumei_sound_io_r )
297 {
298 if (sndbank & 4)
299 return(soundlatch_r(0));
300 else
301 return memory_region(REGION_CPU2)[0x10000 + offset + (sndbank & 1) * 0x10000];
302 }
303
WRITE_HANDLER(mrokumei_sound_bank_w)304 static WRITE_HANDLER( mrokumei_sound_bank_w )
305 {
306 /* bit 0 = ROM bank
307 bit 2 = ROM or soundlatch
308 */
309 sndbank = data;
310 }
311
WRITE_HANDLER(mrokumei_sound_io_w)312 static WRITE_HANDLER( mrokumei_sound_io_w )
313 {
314 switch (offset & 0xff)
315 {
316 case 0x40:
317 DAC_signed_data_w(0,data);
318 break;
319 default:
320 log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: I/O write to port %04x\n",activecpu_get_pc(),offset);
321 break;
322 }
323 }
324
WRITE_HANDLER(mrokumei_sound_cmd_w)325 static WRITE_HANDLER( mrokumei_sound_cmd_w )
326 {
327 soundlatch_w(offset,data);
328 cpu_set_irq_line(1,0,HOLD_LINE);
329 }
330
331
332 /********************************************************************************
333
334 Reikai Doushi:
335
336 slave uPD7807, handling YM2203 + DAC and inputs
337
338 ********************************************************************************/
339
340 static int upd7807_porta,upd7807_portc;
341
READ_HANDLER(reikaids_upd7807_porta_r)342 static READ_HANDLER( reikaids_upd7807_porta_r )
343 {
344 return upd7807_porta;
345 }
346
WRITE_HANDLER(reikaids_upd7807_porta_w)347 static WRITE_HANDLER( reikaids_upd7807_porta_w )
348 {
349 upd7807_porta = data;
350 }
351
WRITE_HANDLER(reikaids_upd7807_portc_w)352 static WRITE_HANDLER( reikaids_upd7807_portc_w )
353 {
354 /* port C layout:
355 7 coin counter
356 6 to main CPU (data)
357 5 YM2203 write clock
358 4 YM2203 read clock
359 3 YM2203 address (0 = register select 1 = data)
360 2 to main CPU (status)
361 1 \ ROM bank
362 0 /
363 */
364 /* log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: port C wr %02x (STATUS %d DATA %d)\n",activecpu_get_pc(),data,BIT(data,2),BIT(data,6));*/
365
366
367 cpu_setbank(2,memory_region(REGION_CPU2) + 0x10000 * (data & 0x03));
368
369 coin_counter_w(0,~data & 0x80);
370
371 if (BIT(upd7807_portc,5) && !BIT(data,5)) /* write clock 1->0 */
372 {
373 if (BIT(data,3))
374 YM2203_write_port_0_w(0,upd7807_porta);
375 else
376 YM2203_control_port_0_w(0,upd7807_porta);
377 }
378
379 if (BIT(upd7807_portc,4) && !BIT(data,4)) /* read clock 1->0 */
380 {
381 if (BIT(data,3))
382 upd7807_porta = YM2203_read_port_0_r(0);
383 else
384 upd7807_porta = YM2203_status_port_0_r(0);
385 }
386
387 upd7807_portc = data;
388 }
389
MACHINE_INIT(reikaids_upd7807)390 static MACHINE_INIT( reikaids_upd7807 )
391 {
392 /* on reset, ports are set as input (high impedance), therefore 0xff output */
393 reikaids_which=homedata_priority;
394 reikaids_upd7807_portc_w(0,0xff);
395 }
396
READ_HANDLER(reikaids_io_r)397 READ_HANDLER( reikaids_io_r )
398 {
399 int res = readinputport(2); /* bit 4 = coin, bit 5 = service*/
400
401 res |= BIT(upd7807_portc,2) * 0x01; /* bit 0 = upd7807 status*/
402 res |= BIT(upd7807_portc,6) * 0x02; /* bit 1 = upd7807 data*/
403 if (vblank) res |= 0x04; /* bit 2 = vblank*/
404 res |= homedata_visible_page * 0x08; /* bit 3 = visible page*/
405
406 vblank = 0;
407
408 /*logerror("%04x: io_r %02x\n",activecpu_get_pc(),res);*/
409
410 return res;
411 }
412
413 static int snd_command;
414
READ_HANDLER(reikaids_snd_command_r)415 static READ_HANDLER( reikaids_snd_command_r )
416 {
417 /*logerror("%04x: sndmcd_r (%02x)\n",activecpu_get_pc(),snd_command);*/
418 return snd_command;
419 }
420
WRITE_HANDLER(reikaids_snd_command_w)421 static WRITE_HANDLER( reikaids_snd_command_w )
422 {
423 snd_command = data;
424 /*logerror("%04x: coprocessor_command_w %02x\n",activecpu_get_pc(),data);*/
425 }
426
427
428
429 /********************************************************************************
430
431 Newer Mahjong games:
432
433 slave uPD7807, handling SN76489 + DAC and inputs
434
435 ********************************************************************************/
436
437 static int to_cpu,from_cpu;
438
WRITE_HANDLER(pteacher_snd_command_w)439 static WRITE_HANDLER( pteacher_snd_command_w )
440 {
441 /*logerror("%04x: snd_command_w %02x\n",activecpu_get_pc(),data);*/
442 from_cpu = data;
443 }
444
READ_HANDLER(pteacher_snd_r)445 static READ_HANDLER( pteacher_snd_r )
446 {
447 /*logerror("%04x: pteacher_snd_r %02x\n",activecpu_get_pc(),to_cpu);*/
448 return to_cpu;
449 }
450
READ_HANDLER(pteacher_io_r)451 static READ_HANDLER( pteacher_io_r )
452 {
453 /* bit 6: !vblank
454 * bit 7: visible page
455 * other bits seem unused
456 */
457
458 int res = (homedata_visible_page ^ 1) << 7;
459
460 if (!vblank) res |= 0x40;
461
462 vblank = 0;
463
464 return res;
465 }
466
READ_HANDLER(pteacher_keyboard_r)467 static READ_HANDLER( pteacher_keyboard_r )
468 {
469 int dips = readinputport(0);
470
471 /* log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: keyboard_r with port A = %02x\n",activecpu_get_pc(),upd7807_porta);*/
472
473 if (upd7807_porta & 0x80)
474 {
475 /* player 1 + dip switches */
476 int row = (upd7807_porta & 0x07);
477 return readinputport(2 + row) | (((dips >> row) & 1) << 5); /* 0-5*/
478 }
479 if (upd7807_porta & 0x08)
480 {
481 /* player 2 (not supported) + dip switches */
482 int row = ((upd7807_porta >> 4) & 0x07);
483 return 0xdf | (((dips >> (row+5)) & 1) << 5); /* 6-11*/
484 }
485
486 return 0xff;
487 }
488
READ_HANDLER(pteacher_upd7807_porta_r)489 static READ_HANDLER( pteacher_upd7807_porta_r )
490 {
491 if (!BIT(upd7807_portc,6))
492 upd7807_porta = from_cpu;
493 else
494 log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: read PA with PC *not* clear\n",activecpu_get_pc());
495
496 return upd7807_porta;
497 }
498
WRITE_HANDLER(pteacher_snd_answer_w)499 static WRITE_HANDLER( pteacher_snd_answer_w )
500 {
501 to_cpu = data;
502 /*logerror("%04x: to_cpu = %02x\n",activecpu_get_pc(),to_cpu);*/
503 }
504
WRITE_HANDLER(pteacher_upd7807_porta_w)505 static WRITE_HANDLER( pteacher_upd7807_porta_w )
506 {
507 upd7807_porta = data;
508 }
509
WRITE_HANDLER(pteacher_upd7807_portc_w)510 static WRITE_HANDLER( pteacher_upd7807_portc_w )
511 {
512 /* port C layout:
513 7 coin counter
514 6 enable message from main CPU on port A
515 5 clock latch for 76489 command
516 4
517 3 \ ROM bank
518 2 /
519 1 input (service)
520 0 input (coin)
521 */
522
523 /* log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: port C wr %02x\n",activecpu_get_pc(),data);*/
524
525 cpu_setbank(2,memory_region(REGION_CPU2) + 0x10000 * ((data & 0x0c) >> 2));
526
527 coin_counter_w(0,~data & 0x80);
528
529 if (BIT(upd7807_portc,5) && !BIT(data,5)) /* clock 1->0 */
530 SN76496_0_w(0,upd7807_porta);
531
532 upd7807_portc = data;
533 }
534
MACHINE_INIT(pteacher_upd7807)535 static MACHINE_INIT( pteacher_upd7807 )
536 {
537 /* on reset, ports are set as input (high impedance), therefore 0xff output */
538 pteacher_upd7807_portc_w(0,0xff);
539 }
540
541
542 /********************************************************************************/
543
544
WRITE_HANDLER(bankswitch_w)545 static WRITE_HANDLER( bankswitch_w )
546 {
547 data8_t *rom = memory_region(REGION_CPU1);
548 int len = memory_region_length(REGION_CPU1) - 0x10000+0x4000;
549 int offs = (data * 0x4000) & (len-1);
550
551 /* last bank is fixed */
552 if (offs < len - 0x4000)
553 {
554 cpu_setbank(1, &rom[offs + 0x10000]);
555 }
556 else
557 {
558 cpu_setbank(1, &rom[0xc000]);
559 }
560 }
561
562
563 /********************************************************************************/
564
565
MEMORY_READ_START(mrokumei_readmem)566 MEMORY_READ_START( mrokumei_readmem )
567 { 0x0000, 0x3fff, MRA_RAM }, /* videoram */
568 { 0x4000, 0x5fff, MRA_RAM },
569 { 0x6000, 0x6fff, MRA_RAM }, /* work ram */
570 { 0x7800, 0x7800, MRA_RAM }, /* only used to store the result of the ROM check */
571 { 0x7801, 0x7802, mrokumei_keyboard_r }, /* also vblank and active page*/
572 { 0x7803, 0x7803, input_port_2_r }, /* coin, service*/
573 { 0x7804, 0x7804, input_port_0_r }, /* DSW1*/
574 { 0x7805, 0x7805, input_port_1_r }, /* DSW2*/
575 { 0x7ffe, 0x7ffe, MRA_NOP }, /* ??? read every vblank, value discarded*/
576 { 0x8000, 0xffff, MRA_ROM },
577 MEMORY_END
578
579 MEMORY_WRITE_START( mrokumei_writemem )
580 { 0x0000, 0x3fff, mrokumei_videoram_w, &videoram },
581 { 0x4000, 0x5fff, MWA_RAM },
582 { 0x6000, 0x6fff, MWA_RAM },
583 { 0x7800, 0x7800, MWA_RAM }, /* only used to store the result of the ROM check */
584 { 0x7ff0, 0x7ffd, MWA_RAM, &homedata_vreg },
585 { 0x8000, 0x8000, mrokumei_blitter_start_w }, /* in some games also ROM bank switch to access service ROM*/
586 { 0x8001, 0x8001, mrokumei_keyboard_select_w },
587 { 0x8002, 0x8002, mrokumei_sound_cmd_w },
588 { 0x8003, 0x8003, SN76496_0_w },
589 { 0x8006, 0x8006, homedata_blitter_param_w },
590 { 0x8007, 0x8007, mrokumei_blitter_bank_w },
591 { 0x8000, 0xffff, MWA_ROM },
592 MEMORY_END
593
594 MEMORY_READ_START( mrokumei_sound_readmem )
595 { 0x0000, 0x7fff, MRA_ROM },
596 MEMORY_END
597
598 MEMORY_WRITE_START( mrokumei_sound_writemem )
599 { 0x0000, 0x7fff, MWA_ROM },
600 { 0xfffc, 0xfffd, MWA_NOP }, /* stack writes happen here, but there's no RAM */
601 { 0x8080, 0x8080, mrokumei_sound_bank_w },
602 MEMORY_END
603
604 static PORT_READ_START( mrokumei_sound_readport )
605 { 0x0000, 0xffff, mrokumei_sound_io_r },
606 MEMORY_END
607
608 static PORT_WRITE_START( mrokumei_sound_writeport )
609 { 0x0000, 0xffff, mrokumei_sound_io_w }, /* read address is 16-bit, write address is only 8-bit */
610 MEMORY_END
611
612 /********************************************************************************/
613
614 MEMORY_READ_START( reikaids_readmem )
615 { 0x0000, 0x3fff, MRA_RAM }, /* videoram */
616 { 0x4000, 0x5fff, MRA_RAM },
617 { 0x6000, 0x6fff, MRA_RAM }, /* work ram */
618 { 0x7800, 0x7800, MRA_RAM },
619 { 0x7801, 0x7801, input_port_0_r },
620 { 0x7802, 0x7802, input_port_1_r },
621 { 0x7803, 0x7803, reikaids_io_r }, /* coin, blitter, upd7807*/
622 { 0x8000, 0xbfff, MRA_BANK1 },
623 { 0xc000, 0xffff, MRA_ROM },
624 MEMORY_END
625
626 MEMORY_WRITE_START( reikaids_writemem )
627 { 0x0000, 0x3fff, reikaids_videoram_w, &videoram },
628 { 0x4000, 0x5fff, MWA_RAM },
629 { 0x6000, 0x6fff, MWA_RAM },
630 { 0x7800, 0x7800, MWA_RAM }, /* behaves as normal RAM */
631 { 0x7ff0, 0x7ffd, MWA_RAM, &homedata_vreg },
632 { 0x7ffe, 0x7ffe, reikaids_blitter_bank_w },
633 { 0x7fff, 0x7fff, reikaids_blitter_start_w },
634 { 0x8000, 0x8000, bankswitch_w },
635 { 0x8002, 0x8002, reikaids_snd_command_w },
636 { 0x8005, 0x8005, reikaids_gfx_bank_w },
637 { 0x8006, 0x8006, homedata_blitter_param_w },
638 { 0x8000, 0xffff, MWA_ROM },
639 MEMORY_END
640
641 static MEMORY_READ_START( reikaids_upd7807_readmem )
642 { 0x0000, 0xfeff, MRA_BANK2 }, /* External ROM (Banked) */
643 { 0xff00, 0xffff, MRA_RAM }, /* Internal RAM */
644 MEMORY_END
645
646 static MEMORY_WRITE_START( reikaids_upd7807_writemem )
647 { 0x0000, 0xfeff, MWA_ROM },
648 { 0xff00, 0xffff, MWA_RAM },
649 MEMORY_END
650
651 static PORT_READ_START( reikaids_upd7807_readport )
652 { UPD7807_PORTA, UPD7807_PORTA, reikaids_upd7807_porta_r },
653 { UPD7807_PORTT, UPD7807_PORTT, reikaids_snd_command_r },
654 PORT_END
655
656 static PORT_WRITE_START( reikaids_upd7807_writeport )
657 { UPD7807_PORTA, UPD7807_PORTA, reikaids_upd7807_porta_w },
658 { UPD7807_PORTB, UPD7807_PORTB, DAC_0_signed_data_w },
659 { UPD7807_PORTC, UPD7807_PORTC, reikaids_upd7807_portc_w },
660 PORT_END
661
662
663 /**************************************************************************/
664
665
666 MEMORY_READ_START( pteacher_readmem )
667 { 0x0000, 0x3fff, MRA_RAM },
668 { 0x4000, 0x5fff, MRA_RAM },
669 { 0x6000, 0x6fff, MRA_RAM }, /* work ram */
670 { 0x7800, 0x7800, MRA_RAM },
671 { 0x7801, 0x7801, pteacher_io_r }, /* vblank, visible page*/
672 { 0x7ff2, 0x7ff2, pteacher_snd_r },
673 { 0x8000, 0xbfff, MRA_BANK1 },
674 { 0xc000, 0xffff, MRA_ROM },
675 MEMORY_END
676
677 MEMORY_WRITE_START( pteacher_writemem )
678 { 0x0000, 0x3fff, pteacher_videoram_w, &videoram },
679 { 0x4000, 0x5eff, MWA_RAM },
680 { 0x5f00, 0x5fff, MWA_RAM },
681 { 0x6000, 0x6fff, MWA_RAM },
682 { 0x7800, 0x7800, MWA_RAM }, /* behaves as normal RAM */
683 { 0x7ff0, 0x7ffd, MWA_RAM, &homedata_vreg },
684 { 0x7fff, 0x7fff, pteacher_blitter_start_w },
685 { 0x8000, 0x8000, bankswitch_w },
686 { 0x8002, 0x8002, pteacher_snd_command_w },
687 { 0x8005, 0x8005, pteacher_blitter_bank_w },
688 { 0x8006, 0x8006, homedata_blitter_param_w },
689 { 0x8007, 0x8007, pteacher_gfx_bank_w },
690 { 0x8000, 0xffff, MWA_ROM },
691 MEMORY_END
692
693 static MEMORY_READ_START( pteacher_upd7807_readmem )
694 { 0x0000, 0xfeff, MRA_BANK2 }, /* External ROM (Banked) */
695 { 0xff00, 0xffff, MRA_RAM }, /* Internal RAM */
696 MEMORY_END
697
698 static MEMORY_WRITE_START( pteacher_upd7807_writemem )
699 { 0x0000, 0x0000, pteacher_snd_answer_w },
700 { 0x0000, 0xfeff, MWA_ROM },
701 { 0xff00, 0xffff, MWA_RAM },
702 MEMORY_END
703
704 static PORT_READ_START( pteacher_upd7807_readport )
705 { UPD7807_PORTA, UPD7807_PORTA, pteacher_upd7807_porta_r },
706 { UPD7807_PORTT, UPD7807_PORTT, pteacher_keyboard_r },
707 { UPD7807_PORTC, UPD7807_PORTC, input_port_1_r },
708 PORT_END
709
710 static PORT_WRITE_START( pteacher_upd7807_writeport )
711 { UPD7807_PORTA, UPD7807_PORTA, pteacher_upd7807_porta_w },
712 { UPD7807_PORTB, UPD7807_PORTB, DAC_0_signed_data_w },
713 { UPD7807_PORTC, UPD7807_PORTC, pteacher_upd7807_portc_w },
714 PORT_END
715
716
717 /**************************************************************************/
718
719
720 INPUT_PORTS_START( mjhokite )
721 PORT_START
722 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
723 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
724 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
725 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
726 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
727 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
728 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) )
729 PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
730 PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
731 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
732 PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
733 PORT_DIPNAME( 0x10, 0x10, "Initial Score" )
734 PORT_DIPSETTING( 0x10, "1000" )
735 PORT_DIPSETTING( 0x00, "2000" )
736 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Difficulty ) )
737 PORT_DIPSETTING( 0xe0, "1 (easiest)" )
738 PORT_DIPSETTING( 0xc0, "2" )
739 PORT_DIPSETTING( 0xa0, "3" )
740 PORT_DIPSETTING( 0x80, "4" )
741 PORT_DIPSETTING( 0x60, "5" )
742 PORT_DIPSETTING( 0x40, "6" )
743 PORT_DIPSETTING( 0x20, "7" )
744 PORT_DIPSETTING( 0x00, "8 (hardest)" )
745
746 PORT_START
747 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
748 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
749 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
750 PORT_DIPNAME( 0x02, 0x00, "Girl Voice" )
751 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
752 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
753 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
754 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
755 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
756 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
757 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
758 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
759 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
760 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
761 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
762 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
763 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
764 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
765 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
766 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
767 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
768 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
769 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
770 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
771
772 PORT_START
773 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
774 PORT_DIPNAME( 0x02, 0x02, "Freeze?" )
775 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
776 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
777 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* doesn't work in all games*/
778 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
779 PORT_BITX(0x10, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
780 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
781 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
782 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
783
784 PORT_START
785 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "A", KEYCODE_A, IP_JOY_NONE )
786 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "E", KEYCODE_E, IP_JOY_NONE )
787 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "I", KEYCODE_I, IP_JOY_NONE )
788 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "M", KEYCODE_M, IP_JOY_NONE )
789 PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "Kan", KEYCODE_LCONTROL, IP_JOY_NONE )
790 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
791
792 PORT_START
793 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "B", KEYCODE_B, IP_JOY_NONE )
794 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "F", KEYCODE_F, IP_JOY_NONE )
795 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "J", KEYCODE_J, IP_JOY_NONE )
796 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "N", KEYCODE_N, IP_JOY_NONE )
797 PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "Reach", KEYCODE_LSHIFT, IP_JOY_NONE )
798 PORT_BITX(0x20, IP_ACTIVE_LOW, 0, "Bet", KEYCODE_RCONTROL, IP_JOY_NONE )
799
800 PORT_START
801 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "C", KEYCODE_C, IP_JOY_NONE )
802 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "G", KEYCODE_G, IP_JOY_NONE )
803 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "K", KEYCODE_K, IP_JOY_NONE )
804 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "Chi", KEYCODE_SPACE, IP_JOY_NONE )
805 PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "Ron", KEYCODE_Z, IP_JOY_NONE )
806 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
807
808 PORT_START
809 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "D", KEYCODE_D, IP_JOY_NONE )
810 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "H", KEYCODE_H, IP_JOY_NONE )
811 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "L", KEYCODE_L, IP_JOY_NONE )
812 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "Pon", KEYCODE_LALT, IP_JOY_NONE )
813 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
814 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
815
816 PORT_START
817 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
818 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
819 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
820 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "Flip", KEYCODE_X, IP_JOY_NONE )
821 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
822 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
823 INPUT_PORTS_END
824
825 INPUT_PORTS_START( reikaids )
826 PORT_START /* IN0 - 0x7801*/
827 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER1 )
828 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER1 )
829 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER1 )
830 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER1 )
831 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* punch */
832 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* kick */
833 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* jump */
834 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
835
836 PORT_START /* IN1 - 0x7802*/
837 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER2 )
838 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER2 )
839 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER2 )
840 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER2 )
841 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) /* punch */
842 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) /* kick */
843 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 ) /* jump */
844 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
845
846 PORT_START /* IN2 - 0x7803*/
847 PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* coprocessor status */
848 PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* coprocessor data */
849 PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* vblank */
850 PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* visible page */
851 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
852 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 )
853 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
854 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
855
856 PORT_START /* DSW1*/
857 PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
858 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
859 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
860 PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) )
861 PORT_DIPSETTING( 0x06, "20k then every 60k" )
862 PORT_DIPSETTING( 0x04, "30k then every 80k" )
863 PORT_DIPSETTING( 0x02, "20k" )
864 PORT_DIPSETTING( 0x00, "30k" )
865 PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) )
866 PORT_DIPSETTING( 0x18, "2" )
867 PORT_DIPSETTING( 0x10, "3" )
868 PORT_DIPSETTING( 0x08, "4" )
869 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
870 PORT_DIPNAME( 0x20, 0x20, "Time" )
871 PORT_DIPSETTING( 0x20, "60" )
872 PORT_DIPSETTING( 0x00, "45" )
873 PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" )
874 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
875 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
876 PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" )
877 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
878 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
879
880 PORT_START /* DSW2*/
881 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
882 PORT_DIPSETTING( 0x03, "Easy" )
883 PORT_DIPSETTING( 0x02, "Normal" )
884 PORT_DIPSETTING( 0x01, "Hard" )
885 PORT_DIPSETTING( 0x00, "Hardest" )
886 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
887 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
888 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
889 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) )
890 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
891 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
892 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
893 PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
894 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
895 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) )
896 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
897 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
898 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
899 PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
900 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )
901 PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
902 PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
903 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) )
904 INPUT_PORTS_END
905
906 INPUT_PORTS_START( battlcry )
907 PORT_START /* IN0 - 0x7801*/
908 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
909 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
910 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
911 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
912 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* punch */
913 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* kick */
914 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* jump */
915 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
916
917 PORT_START /* IN1 - 0x7802*/
918 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
919 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
920 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
921 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
922 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) /* punch */
923 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 ) /* kick */
924 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 ) /* jump */
925 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
926
927 PORT_START /* IN2 - 0x7803*/
928 PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* coprocessor status */
929 PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* coprocessor data */
930 PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* vblank */
931 PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_SPECIAL ) /* visible page */
932 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
933 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 )
934 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
935 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
936
937 PORT_START /* DSW1*/
938 PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
939 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
940 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
941
942 PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) )
943 PORT_DIPSETTING( 0x18, "1" )
944 PORT_DIPSETTING( 0x10, "2" )
945 PORT_DIPSETTING( 0x08, "3" )
946 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
947 PORT_DIPNAME( 0x20, 0x20, "Time" )
948 PORT_DIPSETTING( 0x20, "90" )
949 PORT_DIPSETTING( 0x00, "120" )
950 PORT_DIPNAME( 0x40, 0x40, "Test Mode" )
951 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
952 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
953
954 PORT_START /* DSW2*/
955
956 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
957 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
958 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
959
960 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
961 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
962 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
963
964 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) )
965 PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) )
966 PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) )
967 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) )
968 PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
969 PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) )
970 PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
971 PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
972 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
973
974 INPUT_PORTS_END
975
976
977
978
979 #define MJ_KEYBOARD \
980 PORT_START \
981 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "A", KEYCODE_A, IP_JOY_NONE ) \
982 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "B", KEYCODE_B, IP_JOY_NONE ) \
983 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "C", KEYCODE_C, IP_JOY_NONE ) \
984 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "D", KEYCODE_D, IP_JOY_NONE ) \
985 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
986 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
987 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) \
988 \
989 PORT_START \
990 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "E", KEYCODE_E, IP_JOY_NONE ) \
991 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "F", KEYCODE_F, IP_JOY_NONE ) \
992 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "G", KEYCODE_G, IP_JOY_NONE ) \
993 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "H", KEYCODE_H, IP_JOY_NONE ) \
994 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
995 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
996 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) \
997 \
998 PORT_START \
999 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "I", KEYCODE_I, IP_JOY_NONE ) \
1000 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "J", KEYCODE_J, IP_JOY_NONE ) \
1001 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "K", KEYCODE_K, IP_JOY_NONE ) \
1002 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "L", KEYCODE_L, IP_JOY_NONE ) \
1003 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1004 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
1005 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) \
1006 \
1007 PORT_START \
1008 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "M", KEYCODE_M, IP_JOY_NONE ) \
1009 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "N", KEYCODE_N, IP_JOY_NONE ) \
1010 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "Chi", KEYCODE_SPACE, IP_JOY_NONE ) \
1011 PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "Pon", KEYCODE_LALT, IP_JOY_NONE ) \
1012 PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "Flip", KEYCODE_X, IP_JOY_NONE ) \
1013 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
1014 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) \
1015 \
1016 PORT_START \
1017 PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "Kan", KEYCODE_LCONTROL, IP_JOY_NONE ) \
1018 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "Reach", KEYCODE_LSHIFT, IP_JOY_NONE ) \
1019 PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "Ron", KEYCODE_Z, IP_JOY_NONE ) \
1020 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1021 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1022 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
1023 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) \
1024 \
1025 PORT_START \
1026 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \
1027 PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "Bet", KEYCODE_RCONTROL, IP_JOY_NONE ) \
1028 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1029 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1030 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
1031 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dip switch (handled separately */ \
1032 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
1033
1034
1035 INPUT_PORTS_START( pteacher )
1036 PORT_START /* dip switches (handled by pteacher_keyboard_r) */
1037 PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) )
1038 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1039 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1040 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1041 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1042 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1043 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1044 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1045 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1046 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1047 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
1048 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1049 PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1050 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
1051 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1052 PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1053 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
1054 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1055 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1056 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1057 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1058 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
1059 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
1060 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1061 PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
1062 PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1063 PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
1064 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1065 PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
1066 PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
1067 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1068 PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1069 PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
1070 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1071 PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED )
1072
1073 PORT_START
1074 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1075 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
1076 PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
1077
1078 MJ_KEYBOARD
1079 INPUT_PORTS_END
1080
1081 INPUT_PORTS_START( jogakuen )
1082 PORT_START /* dip switches (handled by pteacher_keyboard_r) */
1083 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
1084 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1085 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1086 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1087 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1088 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1089 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1090 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1091 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1092 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
1093 PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
1094 PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
1095 PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1096 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
1097 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1098 PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Flip_Screen ) )
1099 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
1100 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1101 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1102 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1103 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1104 PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1105 PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
1106 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1107 PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
1108 PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
1109 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1110 PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1111 PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
1112 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1113 PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
1114 PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1115 PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
1116 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1117 PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED )
1118
1119 PORT_START
1120 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1121 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
1122 PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
1123
1124 MJ_KEYBOARD
1125 INPUT_PORTS_END
1126
1127 INPUT_PORTS_START( mjikaga )
1128 PORT_START /* dip switches (handled by pteacher_keyboard_r) */
1129 PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
1130 PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
1131 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1132 PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1133 PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
1134 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1135 PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1136 PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
1137 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1138 PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1139 PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
1140 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1141 PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1142 PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
1143 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1144 PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1145 PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
1146 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1147 PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1148 PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
1149 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1150 PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
1151 PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
1152 PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
1153 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1154 PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
1155 PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
1156 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1157 PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
1158 PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
1159 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1160 PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
1161 PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
1162 PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
1163 PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED )
1164
1165 PORT_START
1166 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1167 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
1168 PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
1169
1170 MJ_KEYBOARD
1171 INPUT_PORTS_END
1172
1173
1174 /**************************************************************************/
1175
1176
1177 static struct GfxLayout char_layout =
1178 {
1179 8,8,
1180 RGN_FRAC(1,1),
1181 4,
1182 { 0, 1, 2, 3 },
1183 { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
1184 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
1185 32*8
1186 };
1187
1188 static struct GfxDecodeInfo mrokumei_gfxdecodeinfo[] =
1189 {
1190 { REGION_GFX1, 0, &char_layout, 0x6000, 0x100 },
1191 { REGION_GFX2, 0, &char_layout, 0x7000, 0x100 },
1192 { -1 }
1193 };
1194
1195 static struct GfxLayout tile_layout =
1196 {
1197 8,8,
1198 RGN_FRAC(1,1),
1199 8,
1200 { 0, 1, 2, 3, 4, 5, 6, 7 },
1201 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1202 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
1203 64*8
1204 };
1205
1206 static struct GfxDecodeInfo reikaids_gfxdecodeinfo[] =
1207 {
1208 { REGION_GFX1, 0, &tile_layout, 0x6000, 0x20 },
1209 { REGION_GFX2, 0, &tile_layout, 0x4000, 0x20 },
1210 { REGION_GFX3, 0, &tile_layout, 0x2000, 0x20 },
1211 { REGION_GFX4, 0, &tile_layout, 0x0000, 0x20 },
1212 { -1 }
1213 };
1214
1215 static struct GfxDecodeInfo pteacher_gfxdecodeinfo[] =
1216 {
1217 { REGION_GFX1, 0, &tile_layout, 0x0000, 0x40 },
1218 { REGION_GFX2, 0, &tile_layout, 0x4000, 0x40 },
1219 { -1 }
1220 };
1221
1222 static struct GfxLayout tile_layout_4bpp_hi =
1223 {
1224 8,8,
1225 RGN_FRAC(1,1),
1226 4,
1227 { 4, 5, 6, 7 },
1228 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1229 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
1230 64*8
1231 };
1232
1233 static struct GfxLayout tile_layout_4bpp_lo =
1234 {
1235 8,8,
1236 RGN_FRAC(1,1),
1237 4,
1238 { 0, 1, 2, 3 },
1239 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1240 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
1241 64*8
1242 };
1243
1244 static struct GfxDecodeInfo lemnangl_gfxdecodeinfo[] =
1245 {
1246 { REGION_GFX1, 0, &tile_layout_4bpp_hi, 0x0000, 0x200 },
1247 { REGION_GFX1, 0, &tile_layout_4bpp_lo, 0x2000, 0x200 },
1248 { REGION_GFX2, 0, &tile_layout_4bpp_lo, 0x4000, 0x200 },
1249 { REGION_GFX2, 0, &tile_layout_4bpp_hi, 0x6000, 0x200 },
1250 { -1 }
1251 };
1252
1253
1254
1255 static struct SN76496interface sn76496_interface =
1256 {
1257 1,
1258 { 16000000/4 }, /* 4MHz ? */
1259 { 50 }
1260 };
1261
1262 static struct DACinterface dac_interface =
1263 {
1264 1,
1265 { 100 }
1266 };
1267
1268
1269 static MACHINE_DRIVER_START( mrokumei )
1270
1271 /* basic machine hardware */
1272 MDRV_CPU_ADD(M6809, 16000000/4) /* 4MHz ? */
1273 MDRV_CPU_MEMORY(mrokumei_readmem,mrokumei_writemem)
1274 MDRV_CPU_VBLANK_INT(homedata_irq,1) /* also triggered by the blitter */
1275
1276 MDRV_CPU_ADD(Z80, 16000000/4) /* 4MHz ? */
1277 MDRV_CPU_FLAGS(CPU_AUDIO_CPU | CPU_16BIT_PORT)
1278 MDRV_CPU_MEMORY(mrokumei_sound_readmem,mrokumei_sound_writemem)
1279 MDRV_CPU_PORTS(mrokumei_sound_readport,mrokumei_sound_writeport)
1280
1281 MDRV_FRAMES_PER_SECOND(59)
1282 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1283
1284 /* video hardware */
1285 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1286 MDRV_SCREEN_SIZE(64*8, 32*8)
1287 /* visible area can be changed at runtime*/
1288 MDRV_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
1289 MDRV_GFXDECODE(mrokumei_gfxdecodeinfo)
1290 MDRV_PALETTE_LENGTH(0x8000)
1291
1292 MDRV_PALETTE_INIT(mrokumei)
1293 MDRV_VIDEO_START(mrokumei)
1294 MDRV_VIDEO_UPDATE(mrokumei)
1295 MDRV_VIDEO_EOF(homedata)
1296
1297 /* sound hardware */
1298 MDRV_SOUND_ADD(SN76496, sn76496_interface) /* SN76489 actually*/
1299 MDRV_SOUND_ADD(DAC, dac_interface)
1300 MACHINE_DRIVER_END
1301
1302
1303 /**************************************************************************/
1304
1305
1306 static struct YM2203interface ym2203_interface =
1307 {
1308 1,
1309 3000000, /* ? */
1310 { YM2203_VOL(100,25) },
1311 { input_port_3_r },
1312 { input_port_4_r },
1313 { 0 },
1314 { 0 },
1315 { NULL }
1316 };
1317
1318
1319 static struct DACinterface reikaids_dac_interface =
1320 {
1321 1,
1322 { 40 }
1323 };
1324
1325
1326 UPD7810_CONFIG cpu_config =
1327 {
1328 TYPE_7810,
1329 NULL /* io_callback */
1330 };
1331
1332
1333 static MACHINE_DRIVER_START( reikaids )
1334
1335 /* basic machine hardware */
1336 MDRV_CPU_ADD(M6809, 16000000/4) /* 4MHz ? */
MDRV_CPU_MEMORY(reikaids_readmem,reikaids_writemem)1337 MDRV_CPU_MEMORY(reikaids_readmem,reikaids_writemem)
1338 MDRV_CPU_VBLANK_INT(homedata_irq,1) /* also triggered by the blitter */
1339
1340 MDRV_CPU_ADD(UPD7807, 8000000) /* ??? MHz (max speed for the 7807 is 12MHz) */
1341 MDRV_CPU_CONFIG(cpu_config)
1342 MDRV_CPU_MEMORY(reikaids_upd7807_readmem,reikaids_upd7807_writemem)
1343 MDRV_CPU_PORTS(reikaids_upd7807_readport,reikaids_upd7807_writeport)
1344 MDRV_CPU_VBLANK_INT(upd7807_irq,1)
1345
1346 MDRV_INTERLEAVE(500) /* very high interleave required to sync for startup tests*/
1347
1348 MDRV_FRAMES_PER_SECOND(59)
1349 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1350
1351 MDRV_MACHINE_INIT(reikaids_upd7807)
1352
1353 /* video hardware */
1354 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1355 MDRV_SCREEN_SIZE(256, 256)
1356 MDRV_VISIBLE_AREA(0, 255, 16, 256-1-16)
1357 MDRV_GFXDECODE(reikaids_gfxdecodeinfo)
1358 MDRV_PALETTE_LENGTH(0x8000)
1359
1360 MDRV_PALETTE_INIT(reikaids)
1361 MDRV_VIDEO_START(reikaids)
1362 MDRV_VIDEO_UPDATE(reikaids)
1363 MDRV_VIDEO_EOF(homedata)
1364
1365 /* sound hardware */
1366 MDRV_SOUND_ADD(YM2203, ym2203_interface)
1367 MDRV_SOUND_ADD(DAC, reikaids_dac_interface)
1368 MACHINE_DRIVER_END
1369
1370
1371 /**************************************************************************/
1372
1373 static MACHINE_DRIVER_START( pteacher )
1374
1375 /* basic machine hardware */
1376 MDRV_CPU_ADD(M6809, 16000000/4) /* 4MHz ? */
1377 MDRV_CPU_MEMORY(pteacher_readmem,pteacher_writemem)
1378 MDRV_CPU_VBLANK_INT(homedata_irq,1) /* also triggered by the blitter */
1379
1380 MDRV_CPU_ADD_TAG("sound", UPD7807, 9000000) /* 9MHz ? */
1381 MDRV_CPU_CONFIG(cpu_config)
1382 MDRV_CPU_MEMORY(pteacher_upd7807_readmem,pteacher_upd7807_writemem)
1383 MDRV_CPU_PORTS(pteacher_upd7807_readport,pteacher_upd7807_writeport)
1384 MDRV_CPU_VBLANK_INT(upd7807_irq,1)
1385
1386 MDRV_INTERLEAVE(100) /* should be enough*/
1387
1388 MDRV_FRAMES_PER_SECOND(59)
1389 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1390
1391 MDRV_MACHINE_INIT(pteacher_upd7807)
1392
1393 /* video hardware */
1394 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1395 MDRV_SCREEN_SIZE(64*8, 32*8)
1396 /* visible area can be changed at runtime*/
1397 MDRV_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
1398 MDRV_GFXDECODE(pteacher_gfxdecodeinfo)
1399 MDRV_PALETTE_LENGTH(0x8000)
1400
1401 MDRV_PALETTE_INIT(pteacher)
1402 MDRV_VIDEO_START(pteacher)
1403 MDRV_VIDEO_UPDATE(pteacher)
1404 MDRV_VIDEO_EOF(homedata)
1405
1406 /* sound hardware */
1407 MDRV_SOUND_ADD(SN76496, sn76496_interface) /* SN76489 actually*/
1408 MDRV_SOUND_ADD(DAC, dac_interface)
1409 MACHINE_DRIVER_END
1410
1411 static MACHINE_DRIVER_START( mjkinjas )
1412
1413 MDRV_IMPORT_FROM(pteacher)
1414
1415 MDRV_CPU_REPLACE("sound", UPD7807, 11000000) /* 11MHz ? */
1416 MACHINE_DRIVER_END
1417
1418 static MACHINE_DRIVER_START( lemnangl )
1419
1420 MDRV_IMPORT_FROM(pteacher)
1421
1422 /* video hardware */
1423 MDRV_GFXDECODE(lemnangl_gfxdecodeinfo)
1424
1425 MDRV_VIDEO_START(lemnangl)
1426 MACHINE_DRIVER_END
1427
1428
1429
1430 /**************************************************************************/
1431
1432
1433 ROM_START( hourouki )
1434 ROM_REGION( 0x010000, REGION_CPU1, 0 ) /* 6809 Code */
1435 ROM_LOAD( "x77f01.bin", 0x08000, 0x8000, CRC(cd3197b8) SHA1(7dad9ce57a83d675a8a9a4e06df360c22100fe4b) )
1436
1437 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */
1438 ROM_LOAD( "x77a10.bin", 0x00000, 0x20000, CRC(dc1d616b) SHA1(93b8dfe1566556e9621c0d5f3998b31874f74a28) )
1439 ROM_RELOAD( 0x10000, 0x20000 )
1440
1441 ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
1442 ROM_LOAD( "x77a03.bin", 0, 0x20000, CRC(5960cde8) SHA1(857b56b304423102a5f1fc88ba4a2386d012bf4d) )
1443
1444 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1445 ROM_LOAD( "x77a04.bin", 0x00000, 0x20000, CRC(fd348e59) SHA1(df0eb4d24e3e778e7a06b7fd7fa4e077fa0ebf82) )
1446 ROM_LOAD( "x77a05.bin", 0x20000, 0x20000, CRC(3f76c8af) SHA1(2b41a9a06f8ccbb9f3879c742fa8af4424837fb2) )
1447
1448 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1449 ROM_LOAD16_BYTE( "x77e06.bin", 0x00000, 0x8000, CRC(63607fe5) SHA1(50c756d741117bd0ea8a877bcb1f025e02cc6d29) )
1450 ROM_LOAD16_BYTE( "x77e07.bin", 0x00001, 0x8000, CRC(79fcfc57) SHA1(4311a6bd8aa2dcad2b4fa5a9091c27dd74df62eb) )
1451
1452 ROM_REGION( 0x20000, REGION_USER1, 0 ) /* blitter data */
1453 ROM_LOAD( "x77a08.bin", 0x0000, 0x20000, CRC(22bde229) SHA1(8b44fa895f77b5c95d798172225a030fa0c04126) )
1454 ROM_END
1455
1456 ROM_START( mhgaiden )
1457 ROM_REGION( 0x010000, REGION_CPU1, 0 ) /* 6809 Code */
1458 ROM_LOAD( "x72e01.bin", 0x08000, 0x8000, CRC(98cfa53e) SHA1(dd08f5f9ff9d4a9e01e531247fcb17a8407ca8b6) )
1459
1460 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */
1461 ROM_LOAD( "x72b10.bin", 0x00000, 0x20000, CRC(00ebbc45) SHA1(9e7ade202bf37a86153a38d705ae26a72732d2bb) )
1462 ROM_RELOAD( 0x10000, 0x20000 )
1463
1464 ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
1465 ROM_LOAD( "x72b03.bin", 0, 0x20000, CRC(9019936f) SHA1(5b98ad1b4c0b141bc84fc17bea49784883c5775a) )
1466
1467 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1468 ROM_LOAD( "x72b04.bin", 0x00000, 0x20000, CRC(37e3e779) SHA1(7011159dee2c643c3fd6ffbbd0849f63933279ad) )
1469 ROM_LOAD( "x72b05.bin", 0x20000, 0x20000, CRC(aa5ce6f6) SHA1(d97b08fce68a69b1445d5ab28c0c97fabb5f264b) )
1470
1471 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1472 ROM_LOAD16_BYTE( "x72c06.bin", 0x00000, 0x8000, CRC(b57fb589) SHA1(21b2fc33b9045a4ffa9e4b0bd598fd3416c0adbf) )
1473 ROM_LOAD16_BYTE( "x72c07.bin", 0x00001, 0x8000, CRC(2aadb285) SHA1(90af8541092fbb116b6d6eaf1511b49a2f9bceaf) )
1474
1475 ROM_REGION( 0x20000, REGION_USER1, 0 ) /* blitter data */
1476 ROM_LOAD( "x72b08.bin", 0x0000, 0x20000, CRC(be312d23) SHA1(f2c18d6372c2f819248976c67abe0ddcd5cc1de1) )
1477 ROM_END
1478
1479 ROM_START( mjhokite )
1480 ROM_REGION( 0x010000, REGION_CPU1, 0 ) /* 6809 Code */
1481 ROM_LOAD( "a74_g01.6g", 0x08000, 0x8000, CRC(409cc501) SHA1(6e9ab81198a5a54489cca8b6dcafb67995351207) )
1482
1483 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */
1484 ROM_LOAD( "a74_a10.11k", 0x00000, 0x20000, CRC(2252f3ec) SHA1(018aaad087354b05b120aa42db572ed13f690f88) )
1485 ROM_RELOAD( 0x10000, 0x20000 )
1486
1487 ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
1488 ROM_LOAD( "a74_a03.1g", 0, 0x20000, CRC(bf801b74) SHA1(fd9b7a4590fdeba90423a7ceccd8dfbb8826460b) )
1489
1490 ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
1491 ROM_LOAD( "a74_a040.bin", 0x00000, 0x20000, CRC(b7a4ddbd) SHA1(70b9e44da7f32120fe86b23e431c3ae1eb36ef1a) )
1492 ROM_LOAD( "a74_a050.bin", 0x20000, 0x20000, CRC(c1718d39) SHA1(e37e2338b7e9409d9d542d30f363d07c7a873602) )
1493 ROM_LOAD( "a74_a041.bin", 0x40000, 0x20000, CRC(c6a6407d) SHA1(7421f4ae8b2959d16114cadc9098156e5a97b36f) )
1494 ROM_LOAD( "a74_a051.bin", 0x60000, 0x20000, CRC(74522b81) SHA1(6bd9655005f36887bec7c127f467e765447acd8f) )
1495
1496 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1497 ROM_LOAD16_BYTE( "a74_a06.1l", 0x00000, 0x8000, CRC(df057dd3) SHA1(0afae441b43a87e04511b8e652d2b03f48d8f705) )
1498 ROM_LOAD16_BYTE( "a74_a07.1m", 0x00001, 0x8000, CRC(3c230167) SHA1(5d57f614bf07baa8b5c96f1d14241ff7c66806c1) )
1499
1500 ROM_REGION( 0x20000, REGION_USER1, 0 ) /* blitter data */
1501 ROM_LOAD( "a74_a08.13a", 0x0000, 0x20000, CRC(dffdd855) SHA1(91469a997a6a9f74f1b84c127f30f5b0e2f974ac) )
1502 ROM_END
1503
1504 ROM_START( mjclinic )
1505 ROM_REGION( 0x010000, REGION_CPU1, 0 ) /* 6809 Code */
1506 ROM_LOAD( "x80_g01.6g", 0x08000, 0x8000, CRC(787b4fb5) SHA1(d1708979d209113b604f6d0973fe14a0c4348351) )
1507
1508 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */
1509 ROM_LOAD( "x80_a10.11k", 0x00000, 0x20000, CRC(afedbadf) SHA1(e2f101b59c0d23f9dc9b057c41d496fc3223cbb8) )
1510 ROM_RELOAD( 0x10000, 0x20000 )
1511
1512 ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
1513 ROM_LOAD( "x80_a03.1g", 0, 0x20000, CRC(34b63c89) SHA1(98383ce8e464ecc53677c060338cc03aa6238a0e) )
1514
1515 ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
1516 ROM_LOAD( "x80_a040.bin", 0x00000, 0x20000, CRC(6f18a8cf) SHA1(af8de2bd8b2157ceaa8192ead51ac4489c464ab2) )
1517 ROM_LOAD( "x80_a050.bin", 0x20000, 0x20000, CRC(6b1ec3a9) SHA1(dc7a857bb102325ebf2522369a231260c2e02c89) )
1518 ROM_LOAD( "x80_a041.bin", 0x40000, 0x20000, CRC(f70bb001) SHA1(3b29bb0bd155e97d3ccc72a8a07046c676c8452d) )
1519 ROM_LOAD( "x80_a051.bin", 0x60000, 0x20000, CRC(c7469cb8) SHA1(bcf7021667e943991865fdbc9620f00b09e1db3e) )
1520
1521 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1522 ROM_LOAD16_BYTE( "x80_a06.1l", 0x00000, 0x8000, CRC(c1f9b2fb) SHA1(abe17e2b3b880f91564e32c246116c33e2884889) )
1523 ROM_LOAD16_BYTE( "x80_a07.1m", 0x00001, 0x8000, CRC(e3120152) SHA1(b4a778a9b91e204e2c068dff9a40bd29eccf04a5) )
1524
1525 ROM_REGION( 0x20000, REGION_USER1, 0 ) /* blitter data */
1526 ROM_LOAD( "x80_a08.13a", 0x0000, 0x20000, CRC(174e8ec0) SHA1(a5075fe4bba9403ef9e0636d5f3f66aad8b2bc54) )
1527 ROM_END
1528
1529 ROM_START( mrokumei )
1530 ROM_REGION( 0x010000, REGION_CPU1, 0 ) /* 6809 Code */
1531 ROM_LOAD( "m81d01.bin", 0x08000, 0x8000, CRC(6f81a78a) SHA1(5e16327b04b065ed4e39a147b18711902dba6384) )
1532
1533 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */
1534 ROM_LOAD( "m81a10.bin", 0x00000, 0x20000, CRC(0866b2d3) SHA1(37a726830476e372db906382e1d0601c461c7c10) )
1535 ROM_RELOAD( 0x10000, 0x20000 )
1536
1537 ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
1538 ROM_LOAD( "m81a03.bin", 0, 0x20000, CRC(4f96e6d2) SHA1(9e6375ee543215691b28c914a8374c1d75c6681f) )
1539
1540 ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE )
1541 ROM_LOAD( "m81a40.bin", 0x00000, 0x20000, CRC(f07c6a91) SHA1(1e8b07817bb3661211b22c8c0ee35424b3ee8774) )
1542 ROM_LOAD( "m81a50.bin", 0x20000, 0x20000, CRC(5ef0d7f2) SHA1(9d0af693b95d941c4b5702c483aee9d33c2fb886) )
1543 ROM_LOAD( "m81a41.bin", 0x40000, 0x20000, CRC(9332b879) SHA1(fc70a6acf816564c1c90c2f9aa644f702a38eae1) )
1544 ROM_LOAD( "m81a51.bin", 0x60000, 0x20000, CRC(dda3ae30) SHA1(a0ba05cc46a4b2869ddf544c538e40a40f3babd5) )
1545
1546 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1547 ROM_LOAD16_BYTE( "m81b06.bin", 0x00000, 0x8000, CRC(96665d39) SHA1(9173791831555e69b8938d85340a08dd73012f8d) )
1548 ROM_LOAD16_BYTE( "m81b07.bin", 0x00001, 0x8000, CRC(14f39690) SHA1(821f9de1b28b9d7844fc1b002c7ee3bbdda7f905) )
1549
1550 ROM_REGION( 0x20000, REGION_USER1, 0 ) /* blitter data */
1551 ROM_LOAD( "m81a08.bin", 0x0000, 0x20000, CRC(dba706b9) SHA1(467c8c3e12cd64002d2516dd117bc87d03448f49) )
1552 ROM_END
1553
1554
1555 ROM_START( reikaids )
1556 ROM_REGION( 0x02c000, REGION_CPU1, 0 ) /* 6809 Code */
1557 ROM_LOAD( "j82c01.bin", 0x010000, 0x01c000, CRC(50fcc451) SHA1(ad717b8300f0903ef136569cf933b8af0e67eb6b) )
1558 ROM_CONTINUE( 0x00c000, 0x004000 )
1559
1560 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1561 ROM_LOAD( "x82a04.bin", 0x000000, 0x040000, CRC(52c9028a) SHA1(9d5e37b2f741d5c0e64ba3d674a72330058b96f2) )
1562
1563 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1564 ROM_LOAD( "x82a13.bin", 0x000000, 0x80000, CRC(954c8844) SHA1(94e09009d0ad40a62f2a92cd5bd500ffe2c4650a) )
1565 ROM_LOAD( "x82a14.bin", 0x080000, 0x80000, CRC(a748305e) SHA1(ee01025820a0915621d2c056d65e67a84a5f724c) )
1566 ROM_LOAD( "x82a15.bin", 0x100000, 0x80000, CRC(c50f7047) SHA1(13fcd1abaf88c759e747cf5f2c94a522276945c9) )
1567 ROM_LOAD( "x82a16.bin", 0x180000, 0x80000, CRC(b270094a) SHA1(edd4f7e3fd082c12758d82ea6eba2a060398b9ef) )
1568
1569 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1570 ROM_LOAD( "x82a09.bin", 0x000000, 0x80000, CRC(c496b187) SHA1(8ec4e09469c9f425681671f5ddb2d2d8768af42b) )
1571 ROM_LOAD( "x82a10.bin", 0x080000, 0x80000, CRC(4243fe28) SHA1(01260543a6f61f46ba56840c1b96ecedf637451c) )
1572
1573 ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )
1574 ROM_LOAD( "x82a08.bin", 0x000000, 0x80000, CRC(51cfd790) SHA1(208f00b1ccf420fe891dd30684481bf871c1aa63) )
1575
1576 ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE )
1577 ROM_LOAD( "x82a05.bin", 0x000000, 0x80000, CRC(fb65e0e0) SHA1(d560091cfad17af6539913db1279c62a680de4fc) )
1578
1579 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1580 ROM_LOAD16_BYTE( "e82a18.bin", 0x00000, 0x8000, CRC(1f52a7aa) SHA1(55bbba5bfad1eee4872939d23ac643aa3074b3cf) )
1581 ROM_LOAD16_BYTE( "e82a17.bin", 0x00001, 0x8000, CRC(f91d77a1) SHA1(a650a68e7e75719819fd04dda86d7fc8849dfe7d) )
1582
1583 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1584 ROM_LOAD( "x82a02.bin", 0x00000, 0x040000, CRC(90fe700f) SHA1(bf7f9955a2cb1af43a272bf3366ff8c09ff6f7e6) )
1585
1586 ROM_REGION( 0x0100, REGION_USER2, 0 )
1587 ROM_LOAD( "x82a19.bin", 0x0000, 0x0100, CRC(7ed947b4) SHA1(40c74a17976fab5d7f9da367083764934bb87281) ) /* priority (not used)*/
1588 ROM_END
1589
1590
1591 ROM_START( battlcry )
1592 ROM_REGION( 0x02c000, REGION_CPU1, 0 ) /* 6809 Code */
1593 ROM_LOAD( "s88e01.j13", 0x010000, 0x01c000, CRC(b08438fe) SHA1(41a0fcdabee449081840848c45983984d7153d1b) )
1594 ROM_CONTINUE( 0x00c000, 0x004000 )
1595
1596 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1597 ROM_LOAD( "s88b04.f20", 0x000000, 0x040000, CRC(c54b5a5e) SHA1(421082af349b170d74f5214d8b5eed44db472749) )
1598
1599 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1600 ROM_LOAD( "s88c13.e2", 0x000000, 0x80000, CRC(8103f007) SHA1(fcc51e57a1df572ad00000e03db1f5f949dea619) )
1601 ROM_LOAD( "s88c14.e1", 0x080000, 0x80000, CRC(a7b5fafb) SHA1(7a9448bf13ee680c99bc19a6fac7a14d6ce8ddfc) )
1602 ROM_LOAD( "s88c15.f2", 0x100000, 0x80000, CRC(597d833b) SHA1(d0c22981b105c1b4b37eae64964af8b683cc4687) )
1603 ROM_LOAD( "s88c16.f1", 0x180000, 0x80000, CRC(9ca1c1a1) SHA1(30bbb47503631295a16bdd77a5bc08681dd7c63e) )
1604
1605 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1606 ROM_LOAD( "s88c09.e5", 0x000000, 0x80000, CRC(8f77ac3e) SHA1(5903a167ddf69284035967876ef46d7d09582574) )
1607 ROM_LOAD( "s88c10.e4", 0x080000, 0x80000, CRC(cb44371e) SHA1(96ac9aa0034152ba88afc373475928ad6d9ecd29) )
1608
1609 ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )
1610 ROM_LOAD( "s88c08.e6", 0x000000, 0x80000, CRC(a989cfc2) SHA1(11c39a2ddd5e4be150d2f2ce332e312907df2377) )
1611
1612 ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_DISPOSE )
1613 ROM_LOAD( "s88c05.e7", 0x000000, 0x80000, CRC(e7f13340) SHA1(05b0f3ca369c95d4fd50cd9617fc044ad7bdf0d3) )
1614
1615 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1616 ROM_LOAD16_BYTE( "s88b18.f10", 0x00000, 0x8000, CRC(fa432edc) SHA1(55c01b6a1175539facdfdd0c3c49d878a59156a4) )
1617 ROM_LOAD16_BYTE( "s88b17.f9", 0x00001, 0x8000, CRC(7c55568e) SHA1(1e599cd00abe7b67bcb0c8d3f0c467a99ef79658) )
1618
1619 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1620 ROM_LOAD( "s88b02.f19", 0x00000, 0x040000, CRC(7044a542) SHA1(8efaa512f62fe9a37d2474c435c549118c019d67) )
1621
1622 ROM_REGION( 0x0100, REGION_USER2, 0 )
1623 ROM_LOAD( "s88a19.l5", 0x0000, 0x0100, CRC(c8ead41e) SHA1(d1e733691de9f9b71c9724de73086d36f381fc74) ) /* priority (not used)*/
1624 ROM_END
1625
1626
1627
1628 ROM_START( mjkojink )
1629 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1630 ROM_LOAD( "x83j01.16e", 0x010000, 0xc000, CRC(91f90376) SHA1(d452f538f4a1b774640ced49f0ab2784b112e8ba) )
1631 ROM_CONTINUE( 0x00c000, 0x4000 )
1632
1633 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1634 ROM_LOAD( "x83b02.9g", 0x00000, 0x40000, CRC(46a11578) SHA1(4ff7797808610b4bb0550be71acc49bbd8556fad) )
1635
1636 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1637 ROM_LOAD32_BYTE( "x83b14.1f", 0, 0x40000, CRC(2bcd7557) SHA1(1263a038a294fb521bdf315e8ac1198a42f68415) )
1638 ROM_LOAD32_BYTE( "x83b15.3f", 1, 0x40000, CRC(7d780e22) SHA1(f887f1a8e5fb65e560cb4987ae21a0c9100ebff0) )
1639 ROM_LOAD32_BYTE( "x83b16.4f", 2, 0x40000, CRC(5420a3f2) SHA1(0161eb2218d3e9cc018c3c2623de58855ab1a608) )
1640 ROM_LOAD32_BYTE( "x83b17.6f", 3, 0x40000, CRC(96bcdf83) SHA1(5568c15016a9cd68909aaf29a0bbe6659fdcefc9) )
1641
1642 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1643 ROM_LOAD32_BYTE( "x83b10.1c", 0, 0x40000, CRC(500bfeea) SHA1(cf60f6158611bfb360c7c97597a9d416530bec9e) )
1644 ROM_LOAD32_BYTE( "x83b11.3c", 1, 0x40000, CRC(2ef77717) SHA1(7d09dc3d73acaf910141598959fdc3501e17ddde) )
1645 ROM_LOAD32_BYTE( "x83b12.4c", 2, 0x40000, CRC(2035009d) SHA1(8a2aadcc49ac7e68dfabe5ea66b607459a89045d) )
1646 ROM_LOAD32_BYTE( "x83b13.6c", 3, 0x40000, CRC(53800df2) SHA1(5f18052a2d6afd27ff898ab597bb4e92fad238d7) )
1647
1648 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1649 ROM_LOAD16_BYTE( "x83a19.4k", 0x00000, 0x8000, CRC(d29c9ef0) SHA1(c4e2c0c3c9c7abee1a965d6842956cdf98a76ad4) )
1650 ROM_LOAD16_BYTE( "x83a18.3k", 0x00001, 0x8000, CRC(c3351952) SHA1(036be91ca428c5df016dd777bd658cb00f44ee3c) )
1651
1652 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1653 ROM_LOAD( "x83b03.12e", 0x0000, 0x40000, CRC(4ba8b5ec) SHA1(cee77583f2f7b7fdba7e0f17e4d1244891488d36) )
1654 ROM_END
1655
1656 ROM_START( vitaminc )
1657 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1658 ROM_LOAD( "x90e01.bin", 0x010000, 0xc000, CRC(bc982525) SHA1(30f5e9ab27f799b895a3d979109e331603d94249) )
1659 ROM_CONTINUE( 0x00c000, 0x4000 )
1660
1661 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1662 ROM_LOAD( "x90a02.bin", 0x00000, 0x40000, CRC(811f540a) SHA1(21993e99835a8995da28c24565b8e5dcc7aeb23e) )
1663
1664 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1665 ROM_LOAD32_BYTE( "x90a14.bin", 0, 0x40000, CRC(4b49d182) SHA1(2658175a23641cf6a4c989940ec2ce31b64ad53e) )
1666 ROM_LOAD32_BYTE( "x90a15.bin", 1, 0x40000, CRC(5e9016c2) SHA1(5255c1f05f1308ba6fe8b6655eb251a6e4a30a37) )
1667 ROM_LOAD32_BYTE( "x90a16.bin", 2, 0x40000, CRC(b8843000) SHA1(6d7b02334603f6abd64edcba8fd2f082839c4811) )
1668 ROM_LOAD32_BYTE( "x90a17.bin", 3, 0x40000, CRC(d74a843c) SHA1(0a0236390f47bb96bf39baaba9961130b26f70d7) )
1669
1670 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1671 ROM_LOAD32_BYTE( "x90a10.bin", 0, 0x40000, CRC(ee9fa36f) SHA1(c8864af92553f44180158dc1b34c9e1b81dfcd7f) )
1672 ROM_LOAD32_BYTE( "x90a11.bin", 1, 0x40000, CRC(b77d9ef4) SHA1(bb49b0dc28385c7052ff65ffc2c8446b37081965) )
1673 ROM_LOAD32_BYTE( "x90a12.bin", 2, 0x40000, CRC(da6a65d1) SHA1(3ab3a9e9c76dfc02579bf2fc390c23d24fe5a901) )
1674 ROM_LOAD32_BYTE( "x90a13.bin", 3, 0x40000, CRC(4da4553b) SHA1(da6fd2cfd5b027afe7e900f90128a25779acb15f) )
1675
1676 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1677 ROM_LOAD16_BYTE( "x90b19.bin", 0x00000, 0x8000, CRC(d0022cfb) SHA1(f384964a09fe6c1f8a993f5da67d81a23df22879) )
1678 ROM_LOAD16_BYTE( "x90b18.bin", 0x00001, 0x8000, CRC(fe1de95d) SHA1(e94282065b3c69de7c9ea214c752745c18c38cb7) )
1679
1680 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1681 ROM_LOAD( "x90a03.bin", 0x0000, 0x40000, CRC(35d5b4e6) SHA1(1ea4d03946aad33d33a817f83d20e7ad8faace6d) )
1682 ROM_END
1683
1684 ROM_START( mjyougo )
1685 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1686 ROM_LOAD( "x91c01.bin", 0x010000, 0xc000, CRC(e28e8c21) SHA1(8039d764fb48269f0cab549c5a8861c05ecb1ef1) )
1687 ROM_CONTINUE( 0x00c000, 0x4000 )
1688
1689 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1690 ROM_LOAD( "x91a02.bin", 0x00000, 0x40000, CRC(995b1399) SHA1(262f3d7ccffdaa578466d390d790f89186b3c993) )
1691
1692 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1693 ROM_LOAD32_BYTE( "x91a14.bin", 0, 0x40000, CRC(b165fbe8) SHA1(eaad2fb26aedd07c4ec0a8bf91cb10f32c76cb83) )
1694 ROM_LOAD32_BYTE( "x91a15.bin", 1, 0x40000, CRC(9b60bf2e) SHA1(13c1efbdc1f9f88f0d51dfd76c0128a490f63527) )
1695 ROM_LOAD32_BYTE( "x91a16.bin", 2, 0x40000, CRC(db4a1655) SHA1(f57c7faaf7632a13af4a7b18aa8f81a2042e4eb8) )
1696 ROM_LOAD32_BYTE( "x91a17.bin", 3, 0x40000, CRC(4f35ec3b) SHA1(5bf2d9eed69cc5e9358d95c0fba8b2b916274288) )
1697
1698 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1699 ROM_LOAD32_BYTE( "x91a10.bin", 0, 0x40000, CRC(cb364158) SHA1(5255756bfa1145b2773720a39e88fdb67f26e2e5) )
1700 ROM_LOAD32_BYTE( "x91a11.bin", 1, 0x40000, CRC(f3655577) SHA1(14eb0eda35015718f2e08da10d00ac8a381b4400) )
1701 ROM_LOAD32_BYTE( "x91a12.bin", 2, 0x40000, CRC(149e8f86) SHA1(660c05deabb0ce43b2f5b936c035df1a2b029fc6) )
1702 ROM_LOAD32_BYTE( "x91a13.bin", 3, 0x40000, CRC(59f7a140) SHA1(daad9433742b6292c8299935483f07f171436d17) )
1703
1704 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1705 ROM_LOAD16_BYTE( "x91a19.bin", 0x00000, 0x8000, CRC(f63493df) SHA1(0e436bffb03fa6218363ee205c4fe5f4e16a24cc) )
1706 ROM_LOAD16_BYTE( "x91a18.bin", 0x00001, 0x8000, CRC(b3541265) SHA1(d8e79c2856bb81e9ad9b79c012d64663a8997bbd) )
1707
1708 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1709 ROM_LOAD( "x91a03.bin", 0x0000, 0x40000, CRC(4863caa2) SHA1(6ef511cb4d184d4705eb0fd3eb3d82daad49564a) )
1710 ROM_END
1711
1712 ROM_START( mjkinjas )
1713 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1714 ROM_LOAD( "x07c01.bin", 0x010000, 0xc000, CRC(e6534904) SHA1(59c092f0369fc893763ad4b96551e0b4c2430a6a) )
1715 ROM_CONTINUE( 0x00c000, 0x4000 )
1716
1717 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1718 ROM_LOAD( "x07a02.bin", 0x00000, 0x40000, CRC(31396a5b) SHA1(c444f0a651da70c050a4c69bd09c31fc80dbf1de) )
1719
1720 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1721 ROM_LOAD32_BYTE( "x07a14.bin", 0, 0x80000, CRC(02829ede) SHA1(227d2bcbaafab19ab2c3ff9dad17a0792d114466) )
1722 ROM_LOAD32_BYTE( "x07a15.bin", 1, 0x80000, CRC(9c8b55db) SHA1(2142c0a6a6b89b2e07ac50be5c5af159610a1922) )
1723 ROM_LOAD32_BYTE( "x07a16.bin", 2, 0x80000, CRC(7898a340) SHA1(a04d71c5b964509d591659f8f09ea5f38080c0ae) )
1724 ROM_LOAD32_BYTE( "x07a17.bin", 3, 0x80000, CRC(bf1f6540) SHA1(94465a2dc20bc2b35d5518a485025b721ef87c49) )
1725
1726 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1727 ROM_LOAD32_BYTE( "x07a10.bin", 0, 0x80000, CRC(3bfab66e) SHA1(149d90d6fd1357b407bd9f2fe495ee28d55c9122) )
1728 ROM_LOAD32_BYTE( "x07a11.bin", 1, 0x80000, CRC(e8f610e3) SHA1(52970a56e67f6b36e1693c06207cbf14ebb96931) )
1729 ROM_LOAD32_BYTE( "x07a12.bin", 2, 0x80000, CRC(911f0972) SHA1(90b511725de3a226326ddc39106071230f3d3bc6) )
1730 ROM_LOAD32_BYTE( "x07a13.bin", 3, 0x80000, CRC(59be4c77) SHA1(1ba858c6b1e91753204e10738ca685a4df550d64) )
1731
1732 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1733 ROM_LOAD16_BYTE( "x07a19.bin", 0x00000, 0x8000, CRC(7acabdf8) SHA1(90e39c1dd3e32c057ab8bfcd82d022231a06847c) )
1734 ROM_LOAD16_BYTE( "x07a18.bin", 0x00001, 0x8000, CRC(d247bd5a) SHA1(298d62395ea7c687ed509863aaf3d8b758743cd8) )
1735
1736 ROM_REGION( 0x80000, REGION_USER1, 0 ) /* blitter data */
1737 ROM_LOAD( "x07a03.bin", 0x0000, 0x80000, CRC(f5ff3e72) SHA1(e3489a3b8988677866aadd41cb99f146217022ce) )
1738 ROM_END
1739
1740 ROM_START( jogakuen )
1741 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1742 ROM_LOAD( "a01.bin", 0x010000, 0xc000, CRC(a189490a) SHA1(0d9f6389d4b16c3b885cdc8be20b19db25812aad) )
1743 ROM_CONTINUE( 0x00c000, 0x4000 )
1744
1745 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1746 ROM_LOAD( "a02.bin", 0x00000, 0x40000, CRC(033add6c) SHA1(fc6b9333722228ba4270b1ba520e32e624b251c2) )
1747
1748 ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1749 ROM_LOAD32_BYTE( "a14.bin", 0, 0x80000, CRC(27ad91d7) SHA1(6d96b030a7f1f8c90fb31582b72acbbc759d1e2f) )
1750 ROM_LOAD32_BYTE( "a15.bin", 1, 0x80000, CRC(e3b2753b) SHA1(c7923da2a718b70c4359d2726e8f8744f55e0389) )
1751 ROM_LOAD32_BYTE( "a16.bin", 2, 0x80000, CRC(6e2c61fc) SHA1(57b33614b4968d5f88741ff0a52c9a1f28a14da7) )
1752 ROM_LOAD32_BYTE( "a17.bin", 3, 0x80000, CRC(2f79d467) SHA1(b82df890cb12c33f6cc58676c02595be7614fd12) )
1753
1754 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1755 ROM_LOAD32_BYTE( "a10.bin", 0, 0x80000, CRC(a453759a) SHA1(62b7a41ea97bc808f3250505a9ffeaf53f1b9308) )
1756 ROM_LOAD32_BYTE( "a11.bin", 1, 0x80000, CRC(252cf007) SHA1(7b3dd558ca00f6855ac037f30e348265a9778f7d) )
1757 ROM_LOAD32_BYTE( "a12.bin", 2, 0x80000, CRC(5db85eb5) SHA1(01291b98676a8f5116739f66e517fe05f806514a) )
1758 ROM_LOAD32_BYTE( "a13.bin", 3, 0x80000, CRC(fe04d5b7) SHA1(965c095ce4f8f494d91370fe798be9214c2195f2) )
1759
1760 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1761 ROM_LOAD16_BYTE( "a19.bin", 0x00000, 0x8000, CRC(9a3d9d5e) SHA1(1ab20fc5b7ab1c2508c76b0051923446c409e074) )
1762 ROM_LOAD16_BYTE( "a18.bin", 0x00001, 0x8000, CRC(3289edd4) SHA1(7db4fbda8a22c64dc29ce6b4b63204cebd641351) )
1763
1764 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1765 ROM_LOAD( "a03.bin", 0x0000, 0x40000, CRC(bb1507ab) SHA1(465f45c9cae2d4e064b784cc5ba25b60839e4b5f) )
1766 ROM_END
1767
1768
1769 ROM_START( lemnangl )
1770 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1771 ROM_LOAD( "x02_d01.16e", 0x010000, 0xc000, CRC(4c2fae05) SHA1(86516399bd1eb1565b446dfa0f9a974bde6f9af2) )
1772 ROM_CONTINUE( 0x00c000, 0x4000 )
1773
1774 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1775 ROM_LOAD( "x02a02.9g", 0x00000, 0x40000, CRC(e9aa8c80) SHA1(6db1345e20d53d8c69cebcac3b2a973fbcaa0e63) )
1776
1777 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1778 ROM_LOAD32_BYTE( "x02a14.1f", 0, 0x40000, CRC(4aa2397b) SHA1(5716de828e5e8735d5e6be0f7cfa95c52b37418a) )
1779 ROM_LOAD32_BYTE( "x02a15.3f", 1, 0x40000, CRC(d01986e2) SHA1(5889d771d5e13a12e650ee2e4885616373dcf828) )
1780 ROM_LOAD32_BYTE( "x02a16.4f", 2, 0x40000, CRC(16fca216) SHA1(e6715888053748a6da93dc087535da8e0b1ba702) )
1781 ROM_LOAD32_BYTE( "x02a17.6f", 3, 0x40000, CRC(7a6a96e7) SHA1(732e6f5ce0cac966aa8b6cfed3f39bb3ea30f57e) )
1782
1783 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1784 ROM_LOAD32_BYTE( "x02a10.1c", 0, 0x40000, CRC(e7164f57) SHA1(06f80ff72f12f2d821899c73051315bfa7b9bf7a) )
1785 ROM_LOAD32_BYTE( "x02a11.3c", 1, 0x40000, CRC(73fb5d3d) SHA1(99a26ae495e6768756c354330a6a859cfd1b9781) )
1786 ROM_LOAD32_BYTE( "x02a12.4c", 2, 0x40000, CRC(fc3a254a) SHA1(bf8172c00446b348b4432c71d92e8567ba50ab98) )
1787 ROM_LOAD32_BYTE( "x02a13.6c", 3, 0x40000, CRC(9f63e7e0) SHA1(4bd8077a3700ccbc4c4a358342b1f9fd4cba8f10) )
1788
1789 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1790 ROM_LOAD16_BYTE( "x02_b19.5k", 0x00000, 0x8000, CRC(f75959bc) SHA1(59a1debc28263a7f5f9b775817232fffc6e63ac4) )
1791 ROM_LOAD16_BYTE( "x02_b18.3k", 0x00001, 0x8000, CRC(3f1510b1) SHA1(a9892beb3d911ee91d7dd276d9c84d14ba3253d8) )
1792
1793 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1794 ROM_LOAD( "x02a03.12e", 0x0000, 0x40000, CRC(02ef0378) SHA1(6223a019fc7794872dd49151952c56892295a779) )
1795 ROM_END
1796
1797 ROM_START( mjikaga )
1798 ROM_REGION( 0x01c000, REGION_CPU1, 0 ) /* 6809 Code */
1799 ROM_LOAD( "m15a01.bin", 0x010000, 0xc000, CRC(938cc4fb) SHA1(f979c6eee0b72bf53be8c7ebbc4e1dc05bd447d4) )
1800 ROM_CONTINUE( 0x00c000, 0x4000 )
1801
1802 ROM_REGION( 0x40000, REGION_CPU2, 0) /* uPD7807 code */
1803 ROM_LOAD( "m15a02.bin", 0x00000, 0x40000, CRC(375933dd) SHA1(e813f02e53dc892714cd0e81301606600b72535c) )
1804
1805 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
1806 ROM_LOAD32_BYTE( "m15a14.bin", 0, 0x40000, CRC(a685c452) SHA1(819486730cdd89572f5c6b6176e9694cf99a4264) )
1807 ROM_LOAD32_BYTE( "m15a15.bin", 1, 0x40000, CRC(44153914) SHA1(f8149c2e5412eb2a93dd16bfcb4f618aeddf3ff9) )
1808 ROM_LOAD32_BYTE( "m15a16.bin", 2, 0x40000, CRC(a4b0b8ac) SHA1(f6fd54c8c7ded3f7502c07b208e5f317669bc3f0) )
1809 ROM_LOAD32_BYTE( "m15a17.bin", 3, 0x40000, CRC(bb9cb2ef) SHA1(4df3eb57b46cb3ca25d938bb54205487b2c06b6d) )
1810
1811 ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1812 ROM_LOAD32_BYTE( "m15a10.bin", 0, 0x40000, CRC(0aeed38e) SHA1(9becd3d5d32ca9678e9211480139c3a1beabb98d) )
1813 ROM_LOAD32_BYTE( "m15a11.bin", 1, 0x40000, CRC(a305e6e6) SHA1(a2c978050e70deb0244c660db800cba42eb3e2d0) )
1814 ROM_LOAD32_BYTE( "m15a12.bin", 2, 0x40000, CRC(946b3f55) SHA1(17451cbd7b0c828444aaf2ff170f3a7104596c1d) )
1815 ROM_LOAD32_BYTE( "m15a13.bin", 3, 0x40000, CRC(d9196955) SHA1(fa8fddbcd91b12d6cb918c0761ea478969a5a795) )
1816
1817 ROM_REGION( 0x010000, REGION_PROMS, 0 ) /* static palette */
1818 ROM_LOAD16_BYTE( "m15a19.bin", 0x00000, 0x8000, CRC(2f247acf) SHA1(468fee5a16c98751524e21ad0f608fc85c95ab86) )
1819 ROM_LOAD16_BYTE( "m15a18.bin", 0x00001, 0x8000, CRC(2648ca07) SHA1(e4f5ed62b014a6e397ce611c2c592f795d112219) )
1820
1821 ROM_REGION( 0x40000, REGION_USER1, 0 ) /* blitter data */
1822 ROM_LOAD( "m15a03.bin", 0x0000, 0x40000, CRC(07e2e8f8) SHA1(61eed47c4136733059c1d96e98cadb8ac9078f95) )
1823 ROM_END
1824
1825
1826
1827 static DRIVER_INIT( jogakuen )
1828 {
1829 /* it seems that Mahjong Jogakuen runs on the same board as the others,
1830 but with just these two addresses swapped. Instead of creating a new
1831 MachineDriver, I just fix them here. */
1832 install_mem_write_handler(0, 0x8007, 0x8007, pteacher_blitter_bank_w);
1833 install_mem_write_handler(0, 0x8005, 0x8005, pteacher_gfx_bank_w);
1834 }
1835
DRIVER_INIT(mjikaga)1836 static DRIVER_INIT( mjikaga )
1837 {
1838 /* Mahjong Ikagadesuka is different as well. */
1839 install_mem_read_handler(0, 0x7802, 0x7802, pteacher_snd_r);
1840 install_mem_write_handler(1, 0x0123, 0x0123, pteacher_snd_answer_w);
1841 }
1842
DRIVER_INIT(reikaids)1843 static DRIVER_INIT( reikaids )
1844 {
1845 homedata_priority=0;
1846 }
1847
DRIVER_INIT(battlcry)1848 static DRIVER_INIT( battlcry )
1849 {
1850 homedata_priority=1; /* priority and initial value for bank write */
1851 }
1852
1853 GAMEX(1987, hourouki, 0, mrokumei, mjhokite, 0, ROT0, "Home Data", "Mahjong Hourouki Part 1 - Seisyun Hen (Japan)", GAME_IMPERFECT_GRAPHICS )
1854 GAME( 1987, mhgaiden, 0, mrokumei, mjhokite, 0, ROT0, "Home Data", "Mahjong Hourouki Gaiden (Japan)" )
1855 GAME( 1988, mjhokite, 0, mrokumei, mjhokite, 0, ROT0, "Home Data", "Mahjong Hourouki Okite (Japan)" )
1856 GAME( 1988, mjclinic, 0, mrokumei, mjhokite, 0, ROT0, "Home Data", "Mahjong Clinic (Japan)" )
1857 GAMEX(1988, mrokumei, 0, mrokumei, mjhokite, 0, ROT0, "Home Data", "Mahjong Rokumeikan (Japan)", GAME_IMPERFECT_GRAPHICS )
1858
1859 GAME( 1988, reikaids, 0, reikaids, reikaids, reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)" )
1860 GAMEX(1991, battlcry, 0, reikaids, battlcry, battlcry, ROT0, "Home Data", "Battlecry", GAME_IMPERFECT_GRAPHICS )
1861 GAME( 1989, mjkojink, 0, pteacher, pteacher, 0, ROT0, "Home Data", "Mahjong Kojinkyouju (Private Teacher) (Japan)" )
1862 GAME( 1989, vitaminc, 0, pteacher, pteacher, 0, ROT0, "Home Data", "Mahjong Vitamin C (Japan)" )
1863 GAME( 1989, mjyougo, 0, pteacher, pteacher, 0, ROT0, "Home Data", "Mahjong-yougo no Kisotairyoku (Japan)" )
1864 GAME( 1991, mjkinjas, 0, mjkinjas, pteacher, 0, ROT0, "Home Data", "Mahjong Kinjirareta Asobi (Japan)" )
1865 GAME( 1992?,jogakuen, 0, pteacher, jogakuen, jogakuen, ROT0, "Windom", "Mahjong Jogakuen (Japan)" )
1866
1867 GAME( 1990, lemnangl, 0, lemnangl, pteacher, 0, ROT0, "Home Data", "Mahjong Lemon Angel (Japan)" )
1868
1869 GAMEX(1991?,mjikaga, 0, lemnangl, mjikaga, mjikaga, ROT0, "Mitchell", "Mahjong Ikaga Desu ka (Japan)", GAME_NO_SOUND )
1870