GBADotnet
GBADotnet copied to clipboard
Fix zayd prefetch roms
prefetch-abuse-idelafter.gba
prefetch-abuse-str.gba
prefetch-abuse-master.gba
Roms as used here are checked in but also in this zip prefetch-abuse.zip
No idea what this is testing but it's likely related to the missing few timing tests in #5 and possible also to the other zayd dma timings #75
Tests here are from https://github.com/GhostRain0/PrefetchAbuse
Each column in the test refers to a different wait state configuration:
Column | WaitState | Region 0 | Region 1 | Region 2 |
---|---|---|---|---|
1 | 0x4000 | 4,2 | 4,4 | 4,8 |
2 | 0x4010 | 4,1 | 4,4 | 4,8 |
3 | 0x4004 | 3,2 | 4,4 | 4,8 |
4 | 0x4014 | 3,1 | 4,4 | 4,8 |
Except in the prefetch-abuse-str case I only fail timings on colums 2 and 3, so wait states with 1 cycle for seq access to region 0. I then only fail those in 2 rows (4 & 7).
The rows here refer to the number of idle states before the test is executed (caused by mul spam). Row 4 is "IDLES_VERYLONG" which is mul r3, r8, r11
where r11 is 0xAAAAAAAA
. Row 7 is mul r3, r8, r11
followed by mul r3, r8, r10
.
These are just statements rather than any judgement on what's happening.
Also none of this is about why the str case fails so badly across the board. I think that might be something to do with wait states for str
to ROM space whilst bus is in use by prefetch