NES - progress on mapper 96, Oeka Kids - Anpanman no Hiragana Daisuki seems to play (but I can't get passed the title screen without Oeka Kids tablet emulation). Oeka Kids - Anpanman to Oekaki Shiyou!! fails to load (suggesting a PRG mapping problem?)

This commit is contained in:
adelikat 2012-07-31 02:58:59 +00:00
parent 0d768ef710
commit 4930979940
2 changed files with 78 additions and 2 deletions

View File

@ -107,6 +107,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo
desired data. So make sure your emu supports this.
*/
int chr_block;
int chr_pos = 0;
int prg_bank_mask_32k;
byte prg_bank_32k;
@ -116,11 +117,11 @@ namespace BizHawk.Emulation.Consoles.Nintendo
switch (Cart.board_type)
{
case "MAPPER096":
case "BANDAI-74*161/02/74":
break;
default:
return false;
}
chr_block = 0;
prg_bank_mask_32k = Cart.prg_size / 32 - 1;
return true;
@ -130,6 +131,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo
{
base.SyncState(ser);
ser.Sync("chr_block", ref chr_block);
ser.Sync("chr_pos", ref chr_pos);
ser.Sync("prg_bank_mask_16k", ref prg_bank_mask_32k);
ser.Sync("prg_bank_16k", ref prg_bank_32k);
}
@ -150,8 +152,79 @@ namespace BizHawk.Emulation.Consoles.Nintendo
{
if (addr < 0x2000)
{
if (addr >= 0x1000)
{
if (chr_block == 1)
{
return VRAM[(0x1000 * 3 * 2) + addr];
}
else
{
return VRAM[(0x1000 * 3) + addr];
}
}
else
{
if (chr_block == 1)
{
return VRAM[(0x1000 * chr_pos * 2) + addr];
}
else
{
return VRAM[(0x1000 * chr_pos * 2) + addr];
}
}
}
return base.ReadPPU(addr);
else
{
return base.ReadPPU(addr);
}
}
public override void WritePPU(int addr, byte value)
{
if (addr < 0x2000)
{
if (addr >= 0x1000)
{
if (chr_block == 1)
{
VRAM[(0x1000 * 3 * 2) + addr] = value;
}
else
{
VRAM[(0x1000 * 3) + addr] = value;
}
}
{
if (chr_block == 1)
{
VRAM[(0x1000 * chr_pos * 2) + addr] = value;
}
else
{
VRAM[(0x1000 * chr_pos * 2) + addr] = value;
}
}
}
else
{
base.WritePPU(addr, value);
}
}
public override void AddressPPU(int addr)
{
byte newpos;
if ((addr & 0x3000) != 0x2000) return;
if ((addr & 0x3FF) >= 0x3C0) return;
newpos = (byte)((addr >> 8) & 3);
if (chr_pos != newpos)
{
chr_pos = newpos;
}
base.AddressPPU(addr);
}
}
}

View File

@ -140,6 +140,9 @@ sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci - Ji Qi Ren Dai Zhan (Ch)
sha1:A9887C308C5D0659C3AA45D003A603C9DFFB148A B Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2
sha1:5084F25F14A61AB2799BD85D363B57B9B494601D Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2
sha1:6143D80047FFC17C752078C622A44C3E0CB7466E B Dong Fang de Chuan Shuo - The Hyrule Fantasy (Asia) NES board=MAPPER245
;wrong vram info
sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids - Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------