Previous 199869 Revisions Next

r19462 Tuesday 11th December, 2012 at 02:32:06 UTC by Angelo Salese
Some quick and cheap way to fix kanji hook-up
[src/mess/drivers]pc9801.c

trunk/src/mess/drivers/pc9801.c
r19461r19462
3535    - Presumably one ROM is undumped?
3636
3737   floppy issues TODO (certain fail)
38   - 46 Okunen Monogatari - The Shinkaron
3839   - Bokosuka Wars
3940   - Dokkin Minako Sensei (2dd image)
4041   - Jangou 2: floppy fails to load after the title screen;
r19461r19462
12141215            }
12151216
12161217            /* 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;
12191220
12201221            return m_kanji_rom[pcg_offset];
12211222         }
r19461r19462
16181619   if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
16191620      return m_pcg_ram[pcg_offset];
16201621
1622   pcg_offset = m_font_addr << 5;
1623   pcg_offset|= offset & 0x1f;
1624//   pcg_offset|= m_font_lr;
1625
16211626   return m_kanji_rom[pcg_offset];
16221627}
16231628
r19461r19462
37143719   ROM_CONTINUE(                      0x60000, 0x4000  ) \
37153720   ROM_LOAD16_BYTE( "24256c-x04.bin", 0x40001, 0x4000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) ) \
37163721   ROM_CONTINUE(                      0x60001, 0x4000  ) \
3717   ROM_REGION( 0x80000, "kanji", ROMREGION_ERASEFF ) \
3722   ROM_REGION( 0x100000, "kanji", ROMREGION_ERASEFF ) \
37183723   ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF ) \
37193724
37203725
r19461r19462
40324037   UINT8 *chargen = machine().root_device().memregion("chargen")->base();
40334038
40344039   /* 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. */
40364041   for(i=0;i<0x80000/0x20;i++)
40374042   {
40384043      for(j=0;j<0x20;j++)
r19461r19462
40534058   }
40544059
40554060   /* 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;
40644071
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   }
40654080}
40664081
40674082/* Genuine dumps */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team