Previous 199869 Revisions Next

r19332 Wednesday 5th December, 2012 at 15:14:20 UTC by Angelo Salese
Temporary work around for Kanji CG hook-up
[src/mess/drivers]pc9801.c

trunk/src/mess/drivers/pc9801.c
r19331r19332
3737   - Microsoft Windows 1.0 MSDOS.SYS error (can be bypassed by loading MS-DOS first)
3838
3939   List of per-game TODO:
40   - 4D Boxing: tries to format User Disk;
4041   - Absolutely Mahjong: Epson splash screen doesn't appear at all, why?
4142   - Dragon Buster: has lots of gfx artifacts;
4243   - Far Side Moon: doesn't detect neither mouse nor sound board;
r19331r19332
661662            tile &= 0x1fff;
662663            kanji_on = 2;
663664         }
664         else if(tile == 0x56 && knj_tile)
665         else if((tile == 0x56 || tile == 0x57) && knj_tile)
665666         {
666667            pcg_sel = 1;
667668            tile = knj_tile & 0x7f;
r19331r19332
696697               if(kanji_on)
697698                  tile_data = (state->m_kanji_rom[tile*0x20+yi*2+(kanji_on & 1)]);
698699               else if(pcg_sel)
699                  tile_data = (state->m_pcg_ram[0xac000*2+tile*0x40+yi*2+lr+pcg_lr]);
700                  tile_data = (state->m_pcg_ram[0xac000*2+tile*0x40+yi*2+pcg_lr]);
700701               else
701702                  tile_data = (state->m_char_rom[tile*char_size+interlace_on*0x800+yi]);
702703            }
r19331r19332
11421143            pcg_offset = m_font_addr << 6;
11431144            pcg_offset|= m_font_line;
11441145            pcg_offset|= m_font_lr;
1145            return m_pcg_ram[pcg_offset];
1146            if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1147               return m_pcg_ram[pcg_offset];
1148
1149            return machine().rand(); // TODO, kanji ROM
11461150         }
11471151      }
11481152
r19331r19332
12131217            pcg_offset|= m_font_line;
12141218            pcg_offset|= m_font_lr;
12151219            //printf("%04x %02x %02x %08x\n",m_font_addr,m_font_line,m_font_lr,pcg_offset);
1216            m_pcg_ram[pcg_offset] = data;
1220            if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1221               m_pcg_ram[pcg_offset] = data;
12171222            return;
12181223         }
12191224      }
r19331r19332
15301535/* TODO: having this non-linear makes the system to boot in BASIC for PC-9821. Perhaps it stores settings? How to change these? */
15311536READ8_MEMBER(pc9801_state::pc9801rs_knjram_r)
15321537{
1533   return m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)];
1538   if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1539      return m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)];
1540
1541   return machine().rand();
15341542}
15351543
15361544WRITE8_MEMBER(pc9801_state::pc9801rs_knjram_w)
15371545{
1538   m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)] = data;
1546   if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700)
1547      m_pcg_ram[((m_font_addr & 0x7f7f) << 4) | m_font_lr | ((offset >> 1) & 0x0f)] = data;
15391548}
15401549
15411550/* FF-based */
r19331r19332
35423551   ROM_LOAD( "font_rs.rom", 0x00000, 0x46800, BAD_DUMP CRC(da370e7a) SHA1(584d0c7fde8c7eac1f76dc5e242102261a878c5e) )
35433552
35443553   ROM_REGION( 0x45000, "kanji", ROMREGION_ERASEFF )
3545   //ROM_COPY("chargen", 0x1800, 0x0000, 0x45000 )
3554   ROM_LOAD16_BYTE( "24256c-x01.bin", 0x00000, 0x8000, BAD_DUMP CRC(28ec1375) SHA1(9d8e98e703ce0f483df17c79f7e841c5c5cd1692) )
3555   ROM_LOAD16_BYTE( "24256c-x02.bin", 0x00001, 0x8000, BAD_DUMP CRC(90985158) SHA1(78fb106131a3f4eb054e87e00fe4f41193416d65) )
3556   ROM_LOAD16_BYTE( "24256c-x03.bin", 0x10000, 0x8000, BAD_DUMP CRC(d4893543) SHA1(eb8c1bee0f694e1e0c145a24152222d4e444e86f) )
3557   ROM_LOAD16_BYTE( "24256c-x04.bin", 0x10001, 0x8000, BAD_DUMP CRC(5dec0fc2) SHA1(41000da14d0805ed0801b31eb60623552e50e41c) )
35463558ROM_END
35473559
35483560/*

Previous 199869 Revisions Next


© 1997-2024 The MAME Team