Ok, I had this idea a long time ago, but since I've lost my GP2X console I left it behind, and now I'm on the mood to talk about and see what people think
The problem about snes emulation that gp2x faces is that there are not so many sources for porting a snes emu to it, in fact, I can only name snes9x and zsnes
Snes9x is written in C++, so it means that it's kinda slow (and also its code is not much optimized, since the original platform is PC and PC do have a LOT of processing power nowadays...) but I think all tries gone this way
So why not try to port zsnes, which is faster and has as much support as snes9x?
Well, zsnes is mostly written in assembly language, which is architeture-specific, that's the only reason why you have zsnes only for PC
And why not try translating all the x86 assembly to arm assembly and using it?
The idea was to map all registers eax = r4, ebx = r5, etc... and then you can even accomplish a good percentage of the code being replace by plain text replacement, since "inc eax" will always go for a "add! r4, r4, #1", "jmp mylabel" to "b mylabel" (if the label is reachable) and so on...
Doing it by hand is a lot of (redundant) work, a program could be made to take a chunk of x86 code and output it as arm, and the someone just take a look over to see if it fits ok (well, in fact there will be a lot of places where you can do optimization to an certain extent, but let's not worry about this right now)
So... that was my idea when I had a gp2x... I miss those days
The problem about snes emulation that gp2x faces is that there are not so many sources for porting a snes emu to it, in fact, I can only name snes9x and zsnes
Snes9x is written in C++, so it means that it's kinda slow (and also its code is not much optimized, since the original platform is PC and PC do have a LOT of processing power nowadays...) but I think all tries gone this way
So why not try to port zsnes, which is faster and has as much support as snes9x?
Well, zsnes is mostly written in assembly language, which is architeture-specific, that's the only reason why you have zsnes only for PC
And why not try translating all the x86 assembly to arm assembly and using it?
The idea was to map all registers eax = r4, ebx = r5, etc... and then you can even accomplish a good percentage of the code being replace by plain text replacement, since "inc eax" will always go for a "add! r4, r4, #1", "jmp mylabel" to "b mylabel" (if the label is reachable) and so on...
Doing it by hand is a lot of (redundant) work, a program could be made to take a chunk of x86 code and output it as arm, and the someone just take a look over to see if it fits ok (well, in fact there will be a lot of places where you can do optimization to an certain extent, but let's not worry about this right now)
So... that was my idea when I had a gp2x... I miss those days