Its with a mixture of sadness and respect that I write this report to you. For the benefit of those that haven't been keeping an eye on Yoyofr and Laxer3a's forums for SnesTYL9x, for some time now both Yoyofr and Laxer3a have been saying that they have less and less time to spend on the emulator. In fact they have mentioned that at some stage they would have to stop updating it and it looks like that point might be soon.
"Hi,
We are thinking about doing a "final release".
Yoyo does not have the net for a few weeks again... Need to wait a bit.
Laxer3a has explained that they have pretty much come as far as they can in terms of the speed of the emulator.
He does believe that if there was a major overhaul of the code to incorporate a dynamic recompiler/JIT then there would be the possibility of an approximate 10% increase in performance:
"Basically the SNES is kind of hard for dynarec because :
- Code can be automodifying (a code write itself).
In an architecture like MIPS or ARM cpu, you cant do that (because of the pipeline and code CACHE/ data CACHE seperated) So emulator writer goes really simpler.
--> One solution could be to emulate the code in RAM, and JIT the code in ROM.
- The Snes cpu is 1.7 Mhz only : I bet for the moment it takes around 100 Mhz of the main cpu to emulate it (even less probably). The JIT would probably increase the performance by 2 or 3 on the cpu emulation part... but how much TYL would increase in performance... I am not sure.
Most likely a 10% increase in performance globally ?
Most of the emu that benefit from JIT are the cpu consuming one : N64 -> 80 Mhz MIPS
GBA : 17 Mhz ARM cpu (ARM is annoying to emulate on MIPS : very costly)
This kind of technique would be usefull for the coprocessor as Tinnus said."
He also believes that if the graphics code was completely rewritten there would be a performance increase for the most popular roms:
"A full rewrite of the chipset (DSP / FX) emulation using VFPU for math stuff should increase the performance by quite a bit.
While the BEST/MOST popular games use it, it would require a LOT of dev to play 10 games.
That's why yoyo and I never went on this road...
Moreover, we had more priority at that time :-)"
But that the sheer time and effort involved in coding these outweigh any potential benefit and that neither he nor Yoyofr have the time to undertake this.
They have mentioned though that they would like to fix any current bugs (and there is a bug report thread going in the forum) so it is hoped that the "final release" if it is released will cover the known bugs in release 0.42.
As to my motivation in writing this piece, well Yoyofr and Laxer3a have never been ones to openly advertise the fact that they would consider help on the project but I'll quote Laxer3a:
"I am not sure neither yoyo and I want to go that far in tuning. If any good coder is interested to join in... May be worth sending a bottle to the sea actually. As the source matches the latest binary. "
So if there is someone out there that would consider the above coding rewrites as a challenge they'd like to take on......