add missing 8/16-bit reads to ROMCnt and ROM SPICnt

This commit is contained in:
Arisotura 2024-01-17 18:50:08 +01:00
parent 740305cc25
commit f4c8202b1a
1 changed files with 70 additions and 0 deletions

View File

@ -2728,11 +2728,37 @@ u8 NDS::ARM9IORead8(u32 addr)
case 0x04000132: return KeyCnt[0] & 0xFF; case 0x04000132: return KeyCnt[0] & 0xFF;
case 0x04000133: return KeyCnt[0] >> 8; case 0x04000133: return KeyCnt[0] >> 8;
case 0x040001A0:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetSPICnt() & 0xFF;
return 0;
case 0x040001A1:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetSPICnt() >> 8;
return 0;
case 0x040001A2: case 0x040001A2:
if (!(ExMemCnt[0] & (1<<11))) if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.ReadSPIData(); return NDSCartSlot.ReadSPIData();
return 0; return 0;
case 0x040001A4:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCnt() & 0xFF;
return 0;
case 0x040001A5:
if (!(ExMemCnt[0] & (1<<11)))
return (NDSCartSlot.GetROMCnt() >> 8) & 0xFF;
return 0;
case 0x040001A6:
if (!(ExMemCnt[0] & (1<<11)))
return (NDSCartSlot.GetROMCnt() >> 16) & 0xFF;
return 0;
case 0x040001A7:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCnt() >> 24;
return 0;
case 0x040001A8: case 0x040001A8:
if (!(ExMemCnt[0] & (1<<11))) if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCommand(0); return NDSCartSlot.GetROMCommand(0);
@ -2884,6 +2910,15 @@ u16 NDS::ARM9IORead16(u32 addr)
return NDSCartSlot.ReadSPIData(); return NDSCartSlot.ReadSPIData();
return 0; return 0;
case 0x040001A4:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCnt() & 0xFFFF;
return 0;
case 0x040001A6:
if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCnt() >> 16;
return 0;
case 0x040001A8: case 0x040001A8:
if (!(ExMemCnt[0] & (1<<11))) if (!(ExMemCnt[0] & (1<<11)))
return NDSCartSlot.GetROMCommand(0) | return NDSCartSlot.GetROMCommand(0) |
@ -3592,11 +3627,37 @@ u8 NDS::ARM7IORead8(u32 addr)
case 0x04000138: return RTC.Read() & 0xFF; case 0x04000138: return RTC.Read() & 0xFF;
case 0x040001A0:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetSPICnt() & 0xFF;
return 0;
case 0x040001A1:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetSPICnt() >> 8;
return 0;
case 0x040001A2: case 0x040001A2:
if (ExMemCnt[0] & (1<<11)) if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.ReadSPIData(); return NDSCartSlot.ReadSPIData();
return 0; return 0;
case 0x040001A4:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCnt() & 0xFF;
return 0;
case 0x040001A5:
if (ExMemCnt[0] & (1<<11))
return (NDSCartSlot.GetROMCnt() >> 8) & 0xFF;
return 0;
case 0x040001A6:
if (ExMemCnt[0] & (1<<11))
return (NDSCartSlot.GetROMCnt() >> 16) & 0xFF;
return 0;
case 0x040001A7:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCnt() >> 24;
return 0;
case 0x040001A8: case 0x040001A8:
if (ExMemCnt[0] & (1<<11)) if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCommand(0); return NDSCartSlot.GetROMCommand(0);
@ -3697,6 +3758,15 @@ u16 NDS::ARM7IORead16(u32 addr)
case 0x040001A0: if (ExMemCnt[0] & (1<<11)) return NDSCartSlot.GetSPICnt(); return 0; case 0x040001A0: if (ExMemCnt[0] & (1<<11)) return NDSCartSlot.GetSPICnt(); return 0;
case 0x040001A2: if (ExMemCnt[0] & (1<<11)) return NDSCartSlot.ReadSPIData(); return 0; case 0x040001A2: if (ExMemCnt[0] & (1<<11)) return NDSCartSlot.ReadSPIData(); return 0;
case 0x040001A4:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCnt() & 0xFFFF;
return 0;
case 0x040001A6:
if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCnt() >> 16;
return 0;
case 0x040001A8: case 0x040001A8:
if (ExMemCnt[0] & (1<<11)) if (ExMemCnt[0] & (1<<11))
return NDSCartSlot.GetROMCommand(0) | return NDSCartSlot.GetROMCommand(0) |