trunk/src/mess/drivers/pc9801.c
| r19461 | r19462 | |
| 35 | 35 | - Presumably one ROM is undumped? |
| 36 | 36 | |
| 37 | 37 | floppy issues TODO (certain fail) |
| 38 | - 46 Okunen Monogatari - The Shinkaron |
| 38 | 39 | - Bokosuka Wars |
| 39 | 40 | - Dokkin Minako Sensei (2dd image) |
| 40 | 41 | - Jangou 2: floppy fails to load after the title screen; |
| r19461 | r19462 | |
| 1214 | 1215 | } |
| 1215 | 1216 | |
| 1216 | 1217 | /* TODO: Brandish 2 accesses a 0008a561 kanji address, obviously causing a crash. */ |
| 1217 | | if(pcg_offset >= 0x80000) |
| 1218 | | return 0; |
| 1218 | // if(pcg_offset >= 0x80000) |
| 1219 | // return 0; |
| 1219 | 1220 | |
| 1220 | 1221 | return m_kanji_rom[pcg_offset]; |
| 1221 | 1222 | } |
| r19461 | r19462 | |
| 1618 | 1619 | if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700) |
| 1619 | 1620 | return m_pcg_ram[pcg_offset]; |
| 1620 | 1621 | |
| 1622 | pcg_offset = m_font_addr << 5; |
| 1623 | pcg_offset|= offset & 0x1f; |
| 1624 | // pcg_offset|= m_font_lr; |
| 1625 | |
| 1621 | 1626 | return m_kanji_rom[pcg_offset]; |
| 1622 | 1627 | } |
| 1623 | 1628 | |
| r19461 | r19462 | |
| 3714 | 3719 | ROM_CONTINUE( 0x60000, 0x4000 ) \ |
| 3715 | 3720 | ROM_LOAD16_BYTE( "24256c-x04.bin", 0x40001, 0x4000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) ) \ |
| 3716 | 3721 | ROM_CONTINUE( 0x60001, 0x4000 ) \ |
| 3717 | | ROM_REGION( 0x80000, "kanji", ROMREGION_ERASEFF ) \ |
| 3722 | ROM_REGION( 0x100000, "kanji", ROMREGION_ERASEFF ) \ |
| 3718 | 3723 | ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF ) \ |
| 3719 | 3724 | |
| 3720 | 3725 | |
| r19461 | r19462 | |
| 4032 | 4037 | UINT8 *chargen = machine().root_device().memregion("chargen")->base(); |
| 4033 | 4038 | |
| 4034 | 4039 | /* Convert the ROM bitswap here from the original structure */ |
| 4035 | | /* TODO: kanji bitswap should be completely wrong */ |
| 4040 | /* TODO: kanji bitswap should be completely wrong, will check it out once that a dump is remade. */ |
| 4036 | 4041 | for(i=0;i<0x80000/0x20;i++) |
| 4037 | 4042 | { |
| 4038 | 4043 | for(j=0;j<0x20;j++) |
| r19461 | r19462 | |
| 4053 | 4058 | } |
| 4054 | 4059 | |
| 4055 | 4060 | /* now copy the data from the fake roms into our kanji struct */ |
| 4056 | | copy_kanji_strip(0x800, -1,0); copy_kanji_strip(0x820, -1,0); copy_kanji_strip(0x840, -1,0); copy_kanji_strip(0x860, -1,0); |
| 4057 | | copy_kanji_strip(0x900, -1,0); copy_kanji_strip(0x920,0x3c0,1); copy_kanji_strip(0x940,0x3e0,1); copy_kanji_strip(0x960,0x400,1); |
| 4058 | | copy_kanji_strip(0xa00, -1,0); copy_kanji_strip(0xa20,0x420,1); copy_kanji_strip(0xa40,0x440,1); copy_kanji_strip(0xa60,0x460,1); |
| 4059 | | copy_kanji_strip(0xb00, -1,0); copy_kanji_strip(0xb20,0x480,1); copy_kanji_strip(0xb40,0x4a0,1); copy_kanji_strip(0xb60,0x4c0,1); |
| 4060 | | copy_kanji_strip(0xc00, -1,0); copy_kanji_strip(0xc20,0x4e0,1); copy_kanji_strip(0xc40,0x500,1); copy_kanji_strip(0xc60,0x520,1); |
| 4061 | | copy_kanji_strip(0xd00, -1,0); copy_kanji_strip(0xd20,0x540,1); copy_kanji_strip(0xd40,0x560,1); copy_kanji_strip(0xd60,0x580,1); |
| 4062 | | copy_kanji_strip(0xe00, -1,0); copy_kanji_strip(0xe20, -1,0); copy_kanji_strip(0xe40, -1,0); copy_kanji_strip(0xe60, -1,0); |
| 4063 | | copy_kanji_strip(0xf00, -1,0); copy_kanji_strip(0xf20, -1,0); copy_kanji_strip(0xf40, -1,0); copy_kanji_strip(0xf60, -1,0); |
| 4061 | copy_kanji_strip(0x0800, -1,0); copy_kanji_strip(0x0820, -1,0); copy_kanji_strip(0x0840, -1,0); copy_kanji_strip(0x0860, -1,0); |
| 4062 | copy_kanji_strip(0x0900, -1,0); copy_kanji_strip(0x0920,0x3c0,1); copy_kanji_strip(0x0940,0x3e0,1); copy_kanji_strip(0x0960,0x400,1); |
| 4063 | copy_kanji_strip(0x0a00, -1,0); copy_kanji_strip(0x0a20,0x420,1); copy_kanji_strip(0x0a40,0x440,1); copy_kanji_strip(0x0a60,0x460,1); |
| 4064 | copy_kanji_strip(0x0b00, -1,0); copy_kanji_strip(0x0b20,0x480,1); copy_kanji_strip(0x0b40,0x4a0,1); copy_kanji_strip(0x0b60,0x4c0,1); |
| 4065 | copy_kanji_strip(0x0c00, -1,0); copy_kanji_strip(0x0c20,0x4e0,1); copy_kanji_strip(0x0c40,0x500,1); copy_kanji_strip(0x0c60,0x520,1); |
| 4066 | copy_kanji_strip(0x0d00, -1,0); copy_kanji_strip(0x0d20,0x540,1); copy_kanji_strip(0x0d40,0x560,1); copy_kanji_strip(0x0d60,0x580,1); |
| 4067 | copy_kanji_strip(0x0e00, -1,0); copy_kanji_strip(0x0e20, -1,0); copy_kanji_strip(0x0e40, -1,0); copy_kanji_strip(0x0e60, -1,0); |
| 4068 | copy_kanji_strip(0x0f00, -1,0); copy_kanji_strip(0x0f20, -1,0); copy_kanji_strip(0x0f40, -1,0); copy_kanji_strip(0x0f60, -1,0); |
| 4069 | { |
| 4070 | int src_1,dst_1; |
| 4064 | 4071 | |
| 4072 | for(src_1=0x1000,dst_1=0x660;src_1<0x8000;src_1+=0x100,dst_1+=0x60) |
| 4073 | { |
| 4074 | copy_kanji_strip(src_1, -1,0); |
| 4075 | copy_kanji_strip(src_1+0x20,dst_1+0x00,1); |
| 4076 | copy_kanji_strip(src_1+0x40,dst_1+0x20,1); |
| 4077 | copy_kanji_strip(src_1+0x60,dst_1+0x40,1); |
| 4078 | } |
| 4079 | } |
| 4065 | 4080 | } |
| 4066 | 4081 | |
| 4067 | 4082 | /* Genuine dumps */ |