Views: 9,248,576 | Homepage | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search | 09-08-24 07:39 AM |
Guest: |
0 users reading Timing test cases | 1 bot |
Main - Development - Timing test cases | Hide post layouts | New reply |
Arisotura |
| ||
Big fire melon magical melon girl Level: 58 Posts: 7/941 EXP: 1505793 Next: 71753 Since: 03-28-17 From: France Last post: 3 days ago Last view: 16 hours ago |
I'm keeping a list here so we know what may break when altering timings, and can test extensively.
* Aging cart (test ROM) The ARM9 clears memory at the same time as the ARM7 relocates its binary. Get the timing wrong and the ARM7 binary is erased before having been relocated, resulting in the ROM not booting. * FF3 intro FMV Cause unknown, but it is timing-sensitive. actually seems to just require some form of cart read delay * Golden Sun: Dark Dawn bad memory timings result in distorted characters?? the bug disappeared in 0.7 before we touched any timings, tho * Rayman DS bad memory timings result in all sorts of weird effects (esp kDataCacheFetch or whatever it was) * Super Mario 64 DS very bad timings cause the character to be randomly teleported also, something is up with the Nintendo screen at the start (takes a lot of CPU, but messing with memory timings changes that) * Who wants to be a millionaire FMVs flicker if the FMV decoder and/or DMA take too long * Burnout Legends weird slowdown-compensation thing. seems to be based on GX timings. * Spellbound The ?'s on the menu. It sends display lists via DMA but doesn't wait for them to complete before doing other things with the GX. GX must be fast enough that the FIFO is always less than empty by the time a DMA transfer ends. * Colour Cross dual-screen 3D shits itself when not running the GX often enough. * Over the Hedge - Hammy Goes Nuts! bad timings (running too fast) causes intro sounds to be garbage. fixed in melonDS by setting kDataCacheTiming to 4 or more. except kDataCacheTiming needs to be 3 or less for Millionaire's FMVs. cause unknown. also affects NO$GBA. affected by 0.7.1 timing renovation: those issues were unrelated to timings and uncovered a bug in how we handled the GXSTAT busy flag * Etrian Odyssey game waits ~400 cycles after VBlank (subs/bcs loop that runs 200 times) then checks GXSTAT to see if it's still busy. if it is, it gives up otherwise it does all the handling to swap screens etc ____________________ Kuribo64 |
extherian |
| ||
Member Normal user Level: 8 Posts: 6/12 EXP: 2104 Next: 83 Since: 09-02-17 Last post: 1273 days ago Last view: 1557 days ago |
Now that GX timings are finished, how is progress on CPU/memory timings going? DeSmuME can run many of these games properly as long as the JIT block size is no greater than 12, but I have no idea if it's really accurate or not. |
Arisotura |
| ||
Big fire melon magical melon girl Level: 58 Posts: 242/941 EXP: 1505793 Next: 71753 Since: 03-28-17 From: France Last post: 3 days ago Last view: 16 hours ago |
still brainstorming how to do it without killing performance, but I think I have ideas ____________________ Kuribo64 |
extherian |
| ||
Member Normal user Level: 8 Posts: 9/12 EXP: 2104 Next: 83 Since: 09-02-17 Last post: 1273 days ago Last view: 1557 days ago |
Might a cached interpreter help? Dolphin and PPSSPP have this option for platforms that don't support dynarecs. |
Arisotura |
| ||
Big fire melon magical melon girl Level: 58 Posts: 253/941 EXP: 1505793 Next: 71753 Since: 03-28-17 From: France Last post: 3 days ago Last view: 16 hours ago |
might help, but I'd have to try it someday
there's already a related optimization in place tho, and it helps a little ____________________ Kuribo64 |
Main - Development - Timing test cases | Hide post layouts | New reply |
Page rendered in 0.074 seconds. (2048KB of memory used) MySQL - queries: 28, rows: 85/85, time: 0.046 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |