mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Some quick and cheap way to fix kanji hook-up
This commit is contained in:
parent
1c48945837
commit
63fbbf5955
@ -35,6 +35,7 @@
|
|||||||
- Presumably one ROM is undumped?
|
- Presumably one ROM is undumped?
|
||||||
|
|
||||||
floppy issues TODO (certain fail)
|
floppy issues TODO (certain fail)
|
||||||
|
- 46 Okunen Monogatari - The Shinkaron
|
||||||
- Bokosuka Wars
|
- Bokosuka Wars
|
||||||
- Dokkin Minako Sensei (2dd image)
|
- Dokkin Minako Sensei (2dd image)
|
||||||
- Jangou 2: floppy fails to load after the title screen;
|
- Jangou 2: floppy fails to load after the title screen;
|
||||||
@ -1214,8 +1215,8 @@ READ8_MEMBER(pc9801_state::pc9801_a0_r)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Brandish 2 accesses a 0008a561 kanji address, obviously causing a crash. */
|
/* TODO: Brandish 2 accesses a 0008a561 kanji address, obviously causing a crash. */
|
||||||
if(pcg_offset >= 0x80000)
|
// if(pcg_offset >= 0x80000)
|
||||||
return 0;
|
// return 0;
|
||||||
|
|
||||||
return m_kanji_rom[pcg_offset];
|
return m_kanji_rom[pcg_offset];
|
||||||
}
|
}
|
||||||
@ -1618,6 +1619,10 @@ READ8_MEMBER(pc9801_state::pc9801rs_knjram_r)
|
|||||||
if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
|
if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
|
||||||
return m_pcg_ram[pcg_offset];
|
return m_pcg_ram[pcg_offset];
|
||||||
|
|
||||||
|
pcg_offset = m_font_addr << 5;
|
||||||
|
pcg_offset|= offset & 0x1f;
|
||||||
|
// pcg_offset|= m_font_lr;
|
||||||
|
|
||||||
return m_kanji_rom[pcg_offset];
|
return m_kanji_rom[pcg_offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3714,7 +3719,7 @@ MACHINE_CONFIG_END
|
|||||||
ROM_CONTINUE( 0x60000, 0x4000 ) \
|
ROM_CONTINUE( 0x60000, 0x4000 ) \
|
||||||
ROM_LOAD16_BYTE( "24256c-x04.bin", 0x40001, 0x4000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) ) \
|
ROM_LOAD16_BYTE( "24256c-x04.bin", 0x40001, 0x4000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) ) \
|
||||||
ROM_CONTINUE( 0x60001, 0x4000 ) \
|
ROM_CONTINUE( 0x60001, 0x4000 ) \
|
||||||
ROM_REGION( 0x80000, "kanji", ROMREGION_ERASEFF ) \
|
ROM_REGION( 0x100000, "kanji", ROMREGION_ERASEFF ) \
|
||||||
ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF ) \
|
ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF ) \
|
||||||
|
|
||||||
|
|
||||||
@ -4032,7 +4037,7 @@ DRIVER_INIT_MEMBER(pc9801_state,pc9801_kanji)
|
|||||||
UINT8 *chargen = machine().root_device().memregion("chargen")->base();
|
UINT8 *chargen = machine().root_device().memregion("chargen")->base();
|
||||||
|
|
||||||
/* Convert the ROM bitswap here from the original structure */
|
/* Convert the ROM bitswap here from the original structure */
|
||||||
/* TODO: kanji bitswap should be completely wrong */
|
/* TODO: kanji bitswap should be completely wrong, will check it out once that a dump is remade. */
|
||||||
for(i=0;i<0x80000/0x20;i++)
|
for(i=0;i<0x80000/0x20;i++)
|
||||||
{
|
{
|
||||||
for(j=0;j<0x20;j++)
|
for(j=0;j<0x20;j++)
|
||||||
@ -4053,15 +4058,25 @@ DRIVER_INIT_MEMBER(pc9801_state,pc9801_kanji)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* now copy the data from the fake roms into our kanji struct */
|
/* now copy the data from the fake roms into our kanji struct */
|
||||||
copy_kanji_strip(0x800, -1,0); copy_kanji_strip(0x820, -1,0); copy_kanji_strip(0x840, -1,0); copy_kanji_strip(0x860, -1,0);
|
copy_kanji_strip(0x0800, -1,0); copy_kanji_strip(0x0820, -1,0); copy_kanji_strip(0x0840, -1,0); copy_kanji_strip(0x0860, -1,0);
|
||||||
copy_kanji_strip(0x900, -1,0); copy_kanji_strip(0x920,0x3c0,1); copy_kanji_strip(0x940,0x3e0,1); copy_kanji_strip(0x960,0x400,1);
|
copy_kanji_strip(0x0900, -1,0); copy_kanji_strip(0x0920,0x3c0,1); copy_kanji_strip(0x0940,0x3e0,1); copy_kanji_strip(0x0960,0x400,1);
|
||||||
copy_kanji_strip(0xa00, -1,0); copy_kanji_strip(0xa20,0x420,1); copy_kanji_strip(0xa40,0x440,1); copy_kanji_strip(0xa60,0x460,1);
|
copy_kanji_strip(0x0a00, -1,0); copy_kanji_strip(0x0a20,0x420,1); copy_kanji_strip(0x0a40,0x440,1); copy_kanji_strip(0x0a60,0x460,1);
|
||||||
copy_kanji_strip(0xb00, -1,0); copy_kanji_strip(0xb20,0x480,1); copy_kanji_strip(0xb40,0x4a0,1); copy_kanji_strip(0xb60,0x4c0,1);
|
copy_kanji_strip(0x0b00, -1,0); copy_kanji_strip(0x0b20,0x480,1); copy_kanji_strip(0x0b40,0x4a0,1); copy_kanji_strip(0x0b60,0x4c0,1);
|
||||||
copy_kanji_strip(0xc00, -1,0); copy_kanji_strip(0xc20,0x4e0,1); copy_kanji_strip(0xc40,0x500,1); copy_kanji_strip(0xc60,0x520,1);
|
copy_kanji_strip(0x0c00, -1,0); copy_kanji_strip(0x0c20,0x4e0,1); copy_kanji_strip(0x0c40,0x500,1); copy_kanji_strip(0x0c60,0x520,1);
|
||||||
copy_kanji_strip(0xd00, -1,0); copy_kanji_strip(0xd20,0x540,1); copy_kanji_strip(0xd40,0x560,1); copy_kanji_strip(0xd60,0x580,1);
|
copy_kanji_strip(0x0d00, -1,0); copy_kanji_strip(0x0d20,0x540,1); copy_kanji_strip(0x0d40,0x560,1); copy_kanji_strip(0x0d60,0x580,1);
|
||||||
copy_kanji_strip(0xe00, -1,0); copy_kanji_strip(0xe20, -1,0); copy_kanji_strip(0xe40, -1,0); copy_kanji_strip(0xe60, -1,0);
|
copy_kanji_strip(0x0e00, -1,0); copy_kanji_strip(0x0e20, -1,0); copy_kanji_strip(0x0e40, -1,0); copy_kanji_strip(0x0e60, -1,0);
|
||||||
copy_kanji_strip(0xf00, -1,0); copy_kanji_strip(0xf20, -1,0); copy_kanji_strip(0xf40, -1,0); copy_kanji_strip(0xf60, -1,0);
|
copy_kanji_strip(0x0f00, -1,0); copy_kanji_strip(0x0f20, -1,0); copy_kanji_strip(0x0f40, -1,0); copy_kanji_strip(0x0f60, -1,0);
|
||||||
|
{
|
||||||
|
int src_1,dst_1;
|
||||||
|
|
||||||
|
for(src_1=0x1000,dst_1=0x660;src_1<0x8000;src_1+=0x100,dst_1+=0x60)
|
||||||
|
{
|
||||||
|
copy_kanji_strip(src_1, -1,0);
|
||||||
|
copy_kanji_strip(src_1+0x20,dst_1+0x00,1);
|
||||||
|
copy_kanji_strip(src_1+0x40,dst_1+0x20,1);
|
||||||
|
copy_kanji_strip(src_1+0x60,dst_1+0x40,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Genuine dumps */
|
/* Genuine dumps */
|
||||||
|
Loading…
Reference in New Issue
Block a user