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:
parent
0d768ef710
commit
4930979940
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue