trunk/src/mess/drivers/pc9801.c
| r19471 | r19472 | |
| 14 | 14 | - GRCG+ |
| 15 | 15 | - EGC |
| 16 | 16 | - rewrite using slot devices |
| 17 | | - some games put "Invalid command byte 05" |
| 17 | - some later SWs put "Invalid command byte 05" (Absolutely Mahjong on Epson logo) |
| 18 | - Basic games are mostly untested, but I think that upd7220 fails on those (Adventureland, Xevious) |
| 18 | 19 | |
| 19 | 20 | TODO (PC-9801RS): |
| 20 | 21 | - extra features; |
| r19471 | r19472 | |
| 36 | 37 | |
| 37 | 38 | floppy issues TODO (certain fail) |
| 38 | 39 | - 46 Okunen Monogatari - The Shinkaron |
| 40 | - AD&D Champions of Krynn |
| 39 | 41 | - Bokosuka Wars |
| 40 | 42 | - Dokkin Minako Sensei (2dd image) |
| 41 | 43 | - Jangou 2: floppy fails to load after the title screen; |
| r19471 | r19472 | |
| 44 | 46 | |
| 45 | 47 | List of per-game TODO: |
| 46 | 48 | - 4D Boxing: inputs are unresponsive |
| 47 | | (A Midsummer ...) |
| 49 | - A Ressha de Ikou 2: missing text (PC-9801RS only); |
| 48 | 50 | - Absolutely Mahjong: Kanji data doesn't appear at the Epson logo. Transitions are too fast. |
| 51 | - Agumix Selects!: needs GDC = 5 MHz, interlace doesn't apply there; |
| 49 | 52 | - Brandish 2: Intro needs some window masking effects; |
| 50 | 53 | - Dragon Buster: missing bitplanes for the PCG (or not?), slight issue with window masking; |
| 51 | 54 | - Far Side Moon: doesn't detect sound board (tied to 0x00ec ports) |
| 52 | 55 | - Jan Borg Suzume: gets stuck at a pic8259 read; |
| 56 | - Jump Hero: right status display isn't shown during gameplay (changes the mode dynamically?) |
| 53 | 57 | - Lovely Horror: Doesn't show kanji, tries to read it thru the 0xa9 port; |
| 54 | 58 | - Quarth: should do a split screen effect, it doesn't hence there are broken gfxs |
| 55 | 59 | - Quarth: uploads a PCG charset |
| 60 | - Runner's High: wrong double height on the title screen; |
| 56 | 61 | - Uchiyama Aki no Chou Bangai: keyboard irq is fussy (sometimes it doesn't register a key press); |
| 57 | 62 | |
| 58 | 63 | ======================================================================================== |
| r19471 | r19472 | |
| 270 | 275 | #include "machine/upd1990a.h" |
| 271 | 276 | #include "machine/i8251.h" |
| 272 | 277 | #include "sound/beep.h" |
| 278 | #include "sound/speaker.h" |
| 273 | 279 | #include "sound/2203intf.h" |
| 280 | #include "sound/2608intf.h" |
| 274 | 281 | #include "video/upd7220.h" |
| 275 | 282 | #include "machine/ram.h" |
| 276 | 283 | #include "formats/pc98fdi_dsk.h" |
| r19471 | r19472 | |
| 291 | 298 | m_sio(*this, UPD8251_TAG), |
| 292 | 299 | m_hgdc1(*this, "upd7220_chr"), |
| 293 | 300 | m_hgdc2(*this, "upd7220_btm"), |
| 301 | m_opn(*this, "opn"), |
| 302 | // m_opna(*this, "opna"), |
| 294 | 303 | m_video_ram_1(*this, "video_ram_1"), |
| 295 | 304 | m_video_ram_2(*this, "video_ram_2"){ } |
| 296 | 305 | |
| r19471 | r19472 | |
| 302 | 311 | required_device<i8251_device> m_sio; |
| 303 | 312 | required_device<upd7220_device> m_hgdc1; |
| 304 | 313 | required_device<upd7220_device> m_hgdc2; |
| 314 | required_device<ym2203_device> m_opn; |
| 315 | // optional_device<ym2608_device> m_opna; |
| 305 | 316 | |
| 317 | required_shared_ptr<UINT8> m_video_ram_1; |
| 318 | required_shared_ptr<UINT8> m_video_ram_2; |
| 319 | |
| 306 | 320 | virtual void video_start(); |
| 307 | 321 | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 308 | 322 | |
| 309 | | required_shared_ptr<UINT8> m_video_ram_1; |
| 310 | | required_shared_ptr<UINT8> m_video_ram_2; |
| 311 | 323 | UINT8 *m_ipl_rom; |
| 312 | 324 | UINT8 *m_work_ram; |
| 313 | 325 | UINT8 *m_ext_work_ram; |
| r19471 | r19472 | |
| 356 | 368 | UINT8 mode; |
| 357 | 369 | UINT8 tile[4], tile_index; |
| 358 | 370 | }m_grcg; |
| 371 | UINT8 m_has_opna; |
| 359 | 372 | |
| 360 | 373 | /* PC9821 specific */ |
| 361 | 374 | UINT8 m_sdip[24], m_sdip_bank; |
| r19471 | r19472 | |
| 443 | 456 | DECLARE_WRITE8_MEMBER(pc9821_vram256_w); |
| 444 | 457 | DECLARE_READ8_MEMBER(opn_porta_r); |
| 445 | 458 | DECLARE_WRITE8_MEMBER(opn_portb_w); |
| 459 | DECLARE_READ8_MEMBER(pc9801_ext_opna_r); |
| 460 | DECLARE_WRITE8_MEMBER(pc9801_ext_opna_w); |
| 446 | 461 | |
| 447 | 462 | DECLARE_READ8_MEMBER(sdip_0_r); |
| 448 | 463 | DECLARE_READ8_MEMBER(sdip_1_r); |
| r19471 | r19472 | |
| 1517 | 1532 | READ8_MEMBER(pc9801_state::pc9801_opn_r) |
| 1518 | 1533 | { |
| 1519 | 1534 | if((offset & 1) == 0) |
| 1520 | | return ym2203_r(machine().device("opn"),space, offset >> 1); |
| 1535 | { |
| 1536 | //if(m_has_opna) |
| 1537 | // return ym2608_r(m_opna, space, offset >> 1); |
| 1538 | |
| 1539 | return offset & 4 ? 0xff : ym2203_r(m_opn,space, offset >> 1); |
| 1540 | } |
| 1521 | 1541 | else // odd |
| 1522 | 1542 | { |
| 1523 | 1543 | printf("Read to undefined port [%02x]\n",offset+0x188); |
| r19471 | r19472 | |
| 1528 | 1548 | WRITE8_MEMBER(pc9801_state::pc9801_opn_w) |
| 1529 | 1549 | { |
| 1530 | 1550 | if((offset & 1) == 0) |
| 1531 | | ym2203_w(machine().device("opn"),space, offset >> 1,data); |
| 1551 | { |
| 1552 | /*if(m_has_opna) |
| 1553 | ym2608_w(m_opna,space, offset >> 1,data); |
| 1554 | else */ |
| 1555 | if((offset & 4) == 0) |
| 1556 | ym2203_w(m_opn,space, offset >> 1,data); |
| 1557 | } |
| 1532 | 1558 | else // odd |
| 1533 | 1559 | { |
| 1534 | 1560 | printf("Write to undefined port [%02x] %02x\n",offset+0x188,data); |
| r19471 | r19472 | |
| 1960 | 1986 | } |
| 1961 | 1987 | } |
| 1962 | 1988 | |
| 1989 | READ8_MEMBER( pc9801_state::pc9801_ext_opna_r ) |
| 1990 | { |
| 1991 | printf("OPNA EXT read ID [%02x]\n",offset); |
| 1992 | return 0; |
| 1993 | } |
| 1994 | |
| 1995 | WRITE8_MEMBER( pc9801_state::pc9801_ext_opna_w ) |
| 1996 | { |
| 1997 | printf("OPNA EXT write mask %02x -> [%02x]\n",data,offset); |
| 1998 | } |
| 1999 | |
| 2000 | |
| 1963 | 2001 | static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 32, pc9801_state ) |
| 1964 | 2002 | AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE8(pc9801rs_memory_r,pc9801rs_memory_w,0xffffffff) |
| 1965 | 2003 | ADDRESS_MAP_END |
| r19471 | r19472 | |
| 1981 | 2019 | AM_RANGE(0x00c8, 0x00cf) AM_READWRITE8(pc9801rs_2hd_r, pc9801rs_2hd_w, 0xffffffff) |
| 1982 | 2020 | // AM_RANGE(0x00ec, 0x00ef) PC-9801-86 sound board |
| 1983 | 2021 | AM_RANGE(0x00f0, 0x00ff) AM_READWRITE8(pc9801rs_f0_r, pc9801rs_f0_w, 0xffffffff) |
| 1984 | | AM_RANGE(0x0188, 0x018b) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffffffff) //ym2203 opn / <undefined> |
| 2022 | AM_RANGE(0x0188, 0x018f) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffffffff) //ym2203 opn / <undefined> |
| 1985 | 2023 | AM_RANGE(0x0438, 0x043b) AM_READWRITE8(pc9801rs_access_ctrl_r,pc9801rs_access_ctrl_w,0xffffffff) |
| 1986 | 2024 | AM_RANGE(0x043c, 0x043f) AM_WRITE8(pc9801rs_bank_w, 0xffffffff) //ROM/RAM bank |
| 1987 | 2025 | AM_RANGE(0x7fd8, 0x7fdf) AM_READWRITE8(pc9801_mouse_r, pc9801_mouse_w, 0xffffffff) // <undefined> / mouse ppi8255 ports |
| 2026 | AM_RANGE(0xa460, 0xa463) AM_READWRITE8(pc9801_ext_opna_r, pc9801_ext_opna_w, 0xffffffff) |
| 1988 | 2027 | AM_RANGE(0xbfd8, 0xbfdf) AM_WRITE8(pc9801rs_mouse_freq_w, 0xffffffff) |
| 1989 | 2028 | ADDRESS_MAP_END |
| 1990 | 2029 | |
| r19471 | r19472 | |
| 2041 | 2080 | AM_RANGE(0x00bc, 0x00bf) AM_READWRITE8(pc9810rs_fdc_ctrl_r,pc9810rs_fdc_ctrl_w,0xffff) |
| 2042 | 2081 | AM_RANGE(0x00c8, 0x00cf) AM_READWRITE8(pc9801rs_2hd_r, pc9801rs_2hd_w, 0xffff) |
| 2043 | 2082 | AM_RANGE(0x00f0, 0x00ff) AM_READWRITE8(pc9801rs_f0_r, pc9801rs_f0_w, 0xffff) |
| 2044 | | AM_RANGE(0x0188, 0x018b) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffff) //ym2203 opn / <undefined> |
| 2083 | AM_RANGE(0x0188, 0x018f) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffff) //ym2203 opn / <undefined> |
| 2045 | 2084 | AM_RANGE(0x0438, 0x043b) AM_READWRITE8(pc9801rs_access_ctrl_r,pc9801rs_access_ctrl_w,0xffff) |
| 2046 | 2085 | AM_RANGE(0x043c, 0x043f) AM_WRITE8(pc9801rs_bank_w, 0xffff) //ROM/RAM bank |
| 2047 | 2086 | AM_RANGE(0x7fd8, 0x7fdf) AM_READWRITE8(pc9801_mouse_r, pc9801_mouse_w, 0xffff) // <undefined> / mouse ppi8255 ports |
| 2087 | AM_RANGE(0xa460, 0xa463) AM_READWRITE8(pc9801_ext_opna_r, pc9801_ext_opna_w, 0xffff) |
| 2048 | 2088 | |
| 2049 | 2089 | ADDRESS_MAP_END |
| 2050 | 2090 | |
| r19471 | r19472 | |
| 2345 | 2385 | AM_RANGE(0x00c8, 0x00cf) AM_READWRITE8(pc9801rs_2hd_r, pc9801rs_2hd_w, 0xffffffff) |
| 2346 | 2386 | // AM_RANGE(0x00d8, 0x00df) AMD98 (sound?) board |
| 2347 | 2387 | AM_RANGE(0x00f0, 0x00ff) AM_READWRITE8(pc9801rs_f0_r, pc9801rs_f0_w, 0xffffffff) |
| 2348 | | AM_RANGE(0x0188, 0x018b) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffffffff) //ym2203 opn / <undefined> |
| 2388 | AM_RANGE(0x0188, 0x018f) AM_READWRITE8(pc9801_opn_r, pc9801_opn_w, 0xffffffff) //ym2203 opn / <undefined> |
| 2349 | 2389 | // AM_RANGE(0x018c, 0x018f) YM2203 OPN extended ports / <undefined> |
| 2350 | 2390 | // AM_RANGE(0x0430, 0x0430) IDE bank register |
| 2351 | 2391 | // AM_RANGE(0x0432, 0x0432) IDE bank register (mirror) |
| r19471 | r19472 | |
| 2382 | 2422 | AM_RANGE(0x8d1c, 0x8d1f) AM_READWRITE8(sdip_9_r,sdip_9_w,0xffffffff) |
| 2383 | 2423 | AM_RANGE(0x8e1c, 0x8e1f) AM_READWRITE8(sdip_a_r,sdip_a_w,0xffffffff) |
| 2384 | 2424 | AM_RANGE(0x8f1c, 0x8f1f) AM_READWRITE8(sdip_b_r,sdip_b_w,0xffffffff) |
| 2425 | AM_RANGE(0xa460, 0xa463) AM_READWRITE8(pc9801_ext_opna_r, pc9801_ext_opna_w, 0xffffffff) |
| 2385 | 2426 | // AM_RANGE(0xa460, 0xa46f) cs4231 PCM extended port / <undefined> |
| 2386 | 2427 | // AM_RANGE(0xbfdb, 0xbfdb) mouse timing port |
| 2387 | 2428 | // AM_RANGE(0xc0d0, 0xc0d3) MIDI port, option 0 / <undefined> |
| r19471 | r19472 | |
| 2781 | 2822 | |
| 2782 | 2823 | PORT_MODIFY("ROM_LOAD") |
| 2783 | 2824 | PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 2825 | |
| 2826 | // PORT_START("SOUND_CONFIG") |
| 2827 | // PORT_CONFNAME( 0x01, 0x00, "Sound Type" ) |
| 2828 | // PORT_CONFSETTING( 0x00, "YM2203 (OPN)" ) |
| 2829 | // PORT_CONFSETTING( 0x01, "YM2608 (OPNA)" ) |
| 2784 | 2830 | INPUT_PORTS_END |
| 2785 | 2831 | |
| 2786 | 2832 | static INPUT_PORTS_START( pc9821 ) |
| r19471 | r19472 | |
| 3419 | 3465 | m_fdc_ctrl = 3; |
| 3420 | 3466 | m_access_ctrl = 0; |
| 3421 | 3467 | m_keyb_press = 0xff; // temp kludge, for PC-9821 booting |
| 3468 | // m_has_opna = machine().root_device().ioport("SOUND_CONFIG")->read() & 1; |
| 3422 | 3469 | } |
| 3423 | 3470 | |
| 3424 | 3471 | MACHINE_RESET_MEMBER(pc9801_state,pc9821) |
| r19471 | r19472 | |
| 3470 | 3517 | AY8910_LEGACY_OUTPUT, |
| 3471 | 3518 | AY8910_DEFAULT_LOADS, |
| 3472 | 3519 | DEVCB_DRIVER_MEMBER(pc9801_state,opn_porta_r), |
| 3473 | | DEVCB_NULL,//(pc8801_state,opn_portb_r), |
| 3520 | DEVCB_NULL,//(pc9801_state,opn_portb_r), |
| 3474 | 3521 | DEVCB_NULL,//(pc9801_state,opn_porta_w), |
| 3475 | 3522 | DEVCB_DRIVER_MEMBER(pc9801_state,opn_portb_w), |
| 3476 | 3523 | }, |
| 3477 | 3524 | DEVCB_LINE(pc9801_sound_irq) |
| 3478 | 3525 | }; |
| 3479 | 3526 | |
| 3527 | #if 0 |
| 3528 | static const ym2608_interface pc98_ym2608_intf = |
| 3529 | { |
| 3530 | { |
| 3531 | AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT, |
| 3532 | AY8910_DEFAULT_LOADS, |
| 3533 | DEVCB_DRIVER_MEMBER(pc9801_state,opn_porta_r), |
| 3534 | DEVCB_NULL,//(pc9801_state,opn_portb_r), |
| 3535 | DEVCB_NULL,//(pc9801_state,opn_porta_w), |
| 3536 | DEVCB_DRIVER_MEMBER(pc9801_state,opn_portb_w), |
| 3537 | }, |
| 3538 | pc9801_sound_irq |
| 3539 | }; |
| 3540 | #endif |
| 3541 | |
| 3480 | 3542 | FLOPPY_FORMATS_MEMBER( pc9801_state::floppy_formats ) |
| 3481 | 3543 | FLOPPY_PC98FDI_FORMAT |
| 3482 | 3544 | FLOPPY_FORMATS_END |
| r19471 | r19472 | |
| 3557 | 3619 | |
| 3558 | 3620 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 3559 | 3621 | |
| 3560 | | MCFG_SOUND_ADD("opn", YM2203, 4000000) // unknown clock / divider |
| 3622 | MCFG_SOUND_ADD("opn", YM2203, MAIN_CLOCK_X1*2) // unknown clock / divider |
| 3561 | 3623 | MCFG_SOUND_CONFIG(pc98_ym2203_intf) |
| 3562 | 3624 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 3563 | 3625 | |
| r19471 | r19472 | |
| 3619 | 3681 | |
| 3620 | 3682 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 3621 | 3683 | |
| 3622 | | MCFG_SOUND_ADD("opn", YM2203, 4000000) // unknown clock / divider |
| 3684 | MCFG_SOUND_ADD("opn", YM2203, MAIN_CLOCK_X1*2) // unknown clock / divider |
| 3623 | 3685 | MCFG_SOUND_CONFIG(pc98_ym2203_intf) |
| 3624 | 3686 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 3625 | 3687 | |
| 3688 | // MCFG_SOUND_ADD("opna", YM2608, MAIN_CLOCK_X1*4) // unknown clock / divider |
| 3689 | // MCFG_SOUND_CONFIG(pc98_ym2608_intf) |
| 3690 | // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 3691 | |
| 3626 | 3692 | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 3627 | 3693 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
| 3628 | 3694 | MACHINE_CONFIG_END |
| r19471 | r19472 | |
| 3682 | 3748 | |
| 3683 | 3749 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 3684 | 3750 | |
| 3685 | | MCFG_SOUND_ADD("opn", YM2203, 4000000) // unknown clock / divider |
| 3751 | MCFG_SOUND_ADD("opn", YM2203, MAIN_CLOCK_X1*2) // unknown clock / divider |
| 3686 | 3752 | MCFG_SOUND_CONFIG(pc98_ym2203_intf) |
| 3687 | 3753 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 3688 | 3754 | |
| 3755 | // MCFG_SOUND_ADD("opna", YM2608, MAIN_CLOCK_X1*4) // unknown clock / divider |
| 3756 | // MCFG_SOUND_CONFIG(pc98_ym2608_intf) |
| 3757 | // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 3758 | |
| 3689 | 3759 | MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0) |
| 3690 | 3760 | MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15) |
| 3691 | 3761 | MACHINE_CONFIG_END |
| r19471 | r19472 | |
| 3722 | 3792 | ROM_REGION( 0x100000, "kanji", ROMREGION_ERASEFF ) \ |
| 3723 | 3793 | ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF ) \ |
| 3724 | 3794 | |
| 3795 | #define OPNA_LOAD \ |
| 3796 | ROM_REGION( 0x100000, "opna", ROMREGION_ERASE00 ) \ |
| 3725 | 3797 | |
| 3726 | 3798 | /* |
| 3727 | 3799 | F - 8086 5 |
| r19471 | r19472 | |
| 3775 | 3847 | ROM_LOAD( "font_ux.rom", 0x000000, 0x046800, BAD_DUMP CRC(19a76eeb) SHA1(96a006e8515157a624599c2b53a581ae0dd560fd) ) |
| 3776 | 3848 | |
| 3777 | 3849 | KANJI_ROMS |
| 3850 | OPNA_LOAD |
| 3778 | 3851 | ROM_END |
| 3779 | 3852 | |
| 3780 | 3853 | /* |
| r19471 | r19472 | |
| 3793 | 3866 | ROM_LOAD( "font_rx.rom", 0x000000, 0x046800, CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff) ) |
| 3794 | 3867 | |
| 3795 | 3868 | KANJI_ROMS |
| 3869 | OPNA_LOAD |
| 3796 | 3870 | ROM_END |
| 3797 | 3871 | |
| 3798 | 3872 | /* |
| r19471 | r19472 | |
| 3824 | 3898 | ROM_LOAD( "font_rs.rom", 0x00000, 0x46800, BAD_DUMP CRC(da370e7a) SHA1(584d0c7fde8c7eac1f76dc5e242102261a878c5e) ) |
| 3825 | 3899 | |
| 3826 | 3900 | KANJI_ROMS |
| 3901 | OPNA_LOAD |
| 3827 | 3902 | ROM_END |
| 3828 | 3903 | |
| 3829 | 3904 | /* |
| r19471 | r19472 | |
| 3844 | 3919 | ROM_LOAD( "font_vm.rom", 0x000000, 0x046800, BAD_DUMP CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff) ) |
| 3845 | 3920 | |
| 3846 | 3921 | KANJI_ROMS |
| 3922 | OPNA_LOAD |
| 3847 | 3923 | ROM_END |
| 3848 | 3924 | |
| 3849 | 3925 | /* |
| r19471 | r19472 | |
| 3867 | 3943 | ROM_LOAD( "font.rom", 0x00000, 0x46800, BAD_DUMP CRC(a61c0649) SHA1(554b87377d176830d21bd03964dc71f8e98676b1) ) |
| 3868 | 3944 | |
| 3869 | 3945 | KANJI_ROMS |
| 3946 | OPNA_LOAD |
| 3870 | 3947 | ROM_END |
| 3871 | 3948 | |
| 3872 | 3949 | /* |
| r19471 | r19472 | |
| 3888 | 3965 | ROM_LOAD( "font_as.rom", 0x000000, 0x046800, BAD_DUMP CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff) ) |
| 3889 | 3966 | |
| 3890 | 3967 | KANJI_ROMS |
| 3968 | OPNA_LOAD |
| 3891 | 3969 | ROM_END |
| 3892 | 3970 | |
| 3893 | 3971 | |
| r19471 | r19472 | |
| 3910 | 3988 | ROM_LOAD( "font_ne.rom", 0x00000, 0x46800, BAD_DUMP CRC(fb213757) SHA1(61525826d62fb6e99377b23812faefa291d78c2e) ) |
| 3911 | 3989 | |
| 3912 | 3990 | KANJI_ROMS |
| 3991 | OPNA_LOAD |
| 3913 | 3992 | ROM_END |
| 3914 | 3993 | |
| 3915 | 3994 | /* |
| r19471 | r19472 | |
| 3931 | 4010 | ROM_LOAD( "font_486mu.rom", 0x0000, 0x46800, CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff)) |
| 3932 | 4011 | |
| 3933 | 4012 | KANJI_ROMS |
| 4013 | OPNA_LOAD |
| 3934 | 4014 | ROM_END |
| 3935 | 4015 | |
| 3936 | 4016 | /* |
| r19471 | r19472 | |
| 3952 | 4032 | ROM_LOAD( "font_ce2.rom", 0x000000, 0x046800, CRC(d1c2702a) SHA1(e7781e9d35b6511d12631641d029ad2ba3f7daef) ) |
| 3953 | 4033 | |
| 3954 | 4034 | KANJI_ROMS |
| 4035 | OPNA_LOAD |
| 3955 | 4036 | ROM_END |
| 3956 | 4037 | |
| 3957 | 4038 | /* |
| r19471 | r19472 | |
| 3973 | 4054 | ROM_LOAD( "font_xs.rom", 0x000000, 0x046800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) ) |
| 3974 | 4055 | |
| 3975 | 4056 | KANJI_ROMS |
| 4057 | OPNA_LOAD |
| 3976 | 4058 | ROM_END |
| 3977 | 4059 | |
| 3978 | 4060 | |
| r19471 | r19472 | |
| 3995 | 4077 | ROM_LOAD( "font_a.rom", 0x00000, 0x46800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) ) |
| 3996 | 4078 | |
| 3997 | 4079 | KANJI_ROMS |
| 4080 | OPNA_LOAD |
| 3998 | 4081 | ROM_END |
| 3999 | 4082 | |
| 4000 | 4083 | /* |
| r19471 | r19472 | |
| 4016 | 4099 | ROM_LOAD( "font_v20.rom", 0x000000, 0x046800, BAD_DUMP CRC(6244c4c0) SHA1(9513cac321e89b4edb067b30e9ecb1adae7e7be7) ) |
| 4017 | 4100 | |
| 4018 | 4101 | KANJI_ROMS |
| 4102 | OPNA_LOAD |
| 4019 | 4103 | ROM_END |
| 4020 | 4104 | |
| 4021 | 4105 | |
| r19471 | r19472 | |
| 4077 | 4161 | copy_kanji_strip(src_1+0x60,dst_1+0x40,1); |
| 4078 | 4162 | } |
| 4079 | 4163 | } |
| 4164 | #undef copy_kanji_strip |
| 4080 | 4165 | } |
| 4081 | 4166 | |
| 4082 | 4167 | /* Genuine dumps */ |