Hi
Well work is still in progress it seems.
Here's how were splitting up the work:
Me:
- (DONE) Fix the root counters and interrupts with a much easier set of code. This one was annoying me to the point I just replaced the entire code by hand.
This fixed the super-fast spinning ships in Wipeout XL's menu and I'm sure it fixed other timer-related issues as well. It also allows the user to change the VSync rate at any point in the game instead of the "underclocking" setting. Changing the VSync rate affects the timing of the interrupts which occur during the vblank, so by tweaking this setting you might get more FPS, and it might allow games that don't like the current VSync rate to work now.
- I'm going to work with Unai to improve the performance of the dynarec by removing the need to clear the register mapping.
- I'm also going to work with Unai to get a new dynarec translation cache system, though this isn't as high a priority, it's still useful.
Unai:
- He's detailing to me the dynarec translation cache system he has in mind. This will prevent those single frame length framedrops when the cache needs to be cleared.
- He's also helping me improve the dynarec's speed by removing the need to clear the register mapping that is happening way too often.
Tinnus:
- He's waiting for me to give him the my newest codebase.
- When he gets the new codebase, he'll be working on peephole optimizations on the dynarec as well as other things he randomly seems to notice. ;P
- Possibly convert the GTE (used in 3D games for math) to ARM assembly.
I'd like to get a release with better performance out as soon as possible. Mainly for the fact that this thread is on it's 33rd page, and we need a new release to talk about. ;P
Time to get back to work on the dynarec...