- HACK: Drop the acknowledgment bits when writing the DISP3DCNT register. Fixes the title screen in “Planet Rescue: Animal Emergency”. (Regression from r5259. Fixes bug #1538.)
This commit is contained in:
rogerman 2016-03-02 21:01:00 +00:00
parent 2f473cd113
commit 34ec6bb985
1 changed files with 9 additions and 3 deletions

View File

@ -3384,7 +3384,9 @@ void FASTCALL _MMU_ARM9_write08(u32 adr, u8 val)
ParseReg_DISP3DCNT();
return;
case REG_DISPA_DISP3DCNT+1:
T1WriteByte(MMU.ARM9_REG, 0x0061, val);
// TODO: We need to handle acknowledgement flags properly. But for now, just drop the bits.
// Test case: The "Planet Rescue: Animal Emergency" title screen will check these flags.
T1WriteByte(MMU.ARM9_REG, 0x0061, val & 0xCF);
ParseReg_DISP3DCNT();
return;
@ -3876,7 +3878,9 @@ void FASTCALL _MMU_ARM9_write16(u32 adr, u16 val)
return;
case REG_DISPA_DISP3DCNT:
T1WriteLong(MMU.ARM9_REG, 0x0060, val);
// TODO: We need to handle acknowledgement flags properly. But for now, just drop the bits.
// Test case: The "Planet Rescue: Animal Emergency" title screen will check these flags.
T1WriteWord(MMU.ARM9_REG, 0x0060, val & 0xCFFF);
ParseReg_DISP3DCNT();
return;
@ -4439,7 +4443,9 @@ void FASTCALL _MMU_ARM9_write32(u32 adr, u32 val)
return;
case REG_DISPA_DISP3DCNT:
T1WriteLong(MMU.ARM9_REG, 0x0060, val);
// TODO: We need to handle acknowledgement flags properly. But for now, just drop the bits.
// Test case: The "Planet Rescue: Animal Emergency" title screen will check these flags.
T1WriteLong(MMU.ARM9_REG, 0x0060, val & 0xFFFFCFFF);
ParseReg_DISP3DCNT();
return;