学研TV BOYエミュレータをつくる その6

TV BOYエミュレータを更新しました。とりあえず遊ぶためにパッチを当てます。

  • 市街戦200X年(ふつうに遊べる!)
  • ミスターボム(ふつうに遊べる!)
  • エキサイトインベーダー(ふつうに遊べる!)NEW
  • ロボタンウォーズ(ふつうに遊べる!)NEW
  • 地対空大作戦(サウンドが鳴らない)
  • フロッガーサウンドが鳴らない)NEW

ソースコード差分は以下になります。

takeda-toshiya.my.coocan.jp

void MEMORY::open_cart(const _TCHAR* file_path)
{
    FILEIO* fio = new FILEIO();
    if(fio->Fopen(file_path, FILEIO_READ_BINARY)) {
        fio->Fread(rom, sizeof(rom), 1);
        fio->Fclose();
        // EXCITE INVADER
        if (rom[0x0f3c]==0x96 && rom[0x0f3d]==0x02) {
            rom[0x0f3c]=0x86;
            rom[0x0f3d]=0x81;
        }
        // ROBOTAN WARS
        if (rom[0x06f0]==0x96 && rom[0x06f1]==0x19) {
            rom[0x06f0]=0x86;
            rom[0x06f1]=0x10;
        }
        inserted = true;
    }
    delete fio;
}
#ifdef _TVBOY
    // FROGGER
    if( total_icount % 2400 == 1 && d_mem->read_data8(0xfff4)==0xfa && d_mem->read_data8(0xfff5)==0xd7) {
        wai_state &= ~HD6301_SLP;
        if(!(CC & 0x10)) {
            TAKE_OCI;
        }
    }
#endif
    // check interrupt
    if(int_state & NMI_REQ_BIT) {
: