block 8bit writes to oam and palette memory (and update tests)
This commit is contained in:
parent
86c9c63aed
commit
a77cb87edc
|
@ -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)
|
||||
{
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue