Skip to content

Commit 3de18dd

Browse files
committed
fix ares sysbus peek function after latest update
fixes 72f1495 and closes #3991.
1 parent 4a10ea5 commit 3de18dd

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed
5.01 KB
Binary file not shown.
2.6 KB
Binary file not shown.

waterbox/ares64/BizInterface.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -735,28 +735,36 @@ static u8 PeekFunc(u64 address)
735735

736736
if (addr > 0x0403'ffff && addr <= 0x0407'ffff) // RSP
737737
{
738-
address = (address & 0x3ffff) >> 2;
738+
address = (address & 0x1f) >> 2;
739739
if (address == 7) // SP_SEMAPHORE
740740
{
741741
return GetByteFromWord(ares::Nintendo64::rsp.status.semaphore & 1, addr);
742742
}
743743
}
744-
else if (addr > 0x0407'ffff && addr <= 0x040f'ffff) // RSP Status
744+
else if (addr > 0x0407'ffff && addr <= 0x040b'ffff) // RSP Status
745745
{
746-
address = (address & 0x7ffff) >> 2;
746+
address = (address & 0x1f) >> 2;
747747
if (address == 0) // SP_PC_REG
748748
{
749749
return GetByteFromWord(ares::Nintendo64::rsp.ipu.pc & 0xFFF, addr);
750750
}
751751
}
752+
else if (addr > 0x040b'ffff && addr <= 0x040f'ffff) // unmapped
753+
{
754+
return 0;
755+
}
752756
else if (addr > 0x046f'ffff && addr <= 0x047f'ffff) // RI
753757
{
754-
address = (address & 0xfffff) >> 2;
758+
address = (address & 0x1f) >> 2;
755759
if (address == 3) // RI_SELECT
756760
{
757761
return GetByteFromWord(ares::Nintendo64::ri.io.select, addr);
758762
}
759763
}
764+
else if (addr > 0x048f'ffff && addr <= 0x04ff'ffff) // unmapped
765+
{
766+
return 0;
767+
}
760768

761769
ares::Nintendo64::Thread unused;
762770
return ares::Nintendo64::bus.read<ares::Nintendo64::Byte>(addr, unused, nullptr);

0 commit comments

Comments
 (0)