block 8bit writes to oam and palette memory (and update tests)

This commit is contained in:
zeromus 2010-08-27 19:11:00 +00:00
parent 86c9c63aed
commit a77cb87edc
2 changed files with 36 additions and 0 deletions

View File

@ -1924,6 +1924,10 @@ void FASTCALL _MMU_ARM9_write08(u32 adr, u8 val)
return;
}
//block 8bit writes to OAM and palette memory
if((adr&0x0F000000)==0x07000000) return;
if((adr&0x0F000000)==0x05000000) return;
if (adr >> 24 == 4)
{

View File

@ -43,6 +43,38 @@ int main(void) {
myassert(GFX_FOG_TABLE[i] == 0x00,"test whether fog table entries are non-readable");
}
//8bit vram reads should work. 8bit vram writes should fail
vu8* bgmem8 = (vu8*)0x06000000;
vu16* bgmem16 = (vu16*)0x06000000;
vu32* bgmem32 = (vu32*)0x06000000;
bgmem16[0] = 0x1234;
bgmem16[1] = 0x5678;
myassert(bgmem8[0] == 0x34 && bgmem8[1] == 0x12 && bgmem8[2] == 0x78 && bgmem8[3] == 0x56,"test 8bit vram reads");
bgmem8[0] = 0;
myassert(bgmem8[0] == 0x34, "test 8bit vram writes");
//test OAM also
vu8* oam8 = (vu8*)0x07000000;
vu16* oam16 = (vu16*)0x07000000;
vu32* oam32 = (vu32*)0x07000000;
oam16[0] = 0x1234;
oam16[1] = 0x5678;
myassert(oam8[0] == 0x34 && oam8[1] == 0x12 && oam8[2] == 0x78 && oam8[3] == 0x56,"test 8bit oam reads");
oam8[0] = 0;
myassert(oam8[0] == 0x34, "test 8bit oam writes");
//test pal also
vu8* pal8 = (vu8*)0x05000000;
vu16* pal16 = (vu16*)0x05000000;
vu32* pal32 = (vu32*)0x05000000;
pal16[0] = 0x1234;
pal16[1] = 0x5678;
myassert(pal8[0] == 0x34 && pal8[1] == 0x12 && pal8[2] == 0x78 && pal8[3] == 0x56,"test 8bit pal reads");
pal8[0] = 0;
myassert(pal8[0] == 0x34, "test 8bit pal writes");
//-------------------
iprintf("waiting for arm7 test to finish!\n");
//wait for arm7 test to finish