Overclocking your Gameboy Advance
An anonymous reader writes "The guys over at Ahead Games are working on an overclock mod for the GBA. They've been able to run it at up to 2x the regular operating speed without any major heat or battery life problems. Now, you're probably asking yourself "Why the hell would anyone want to overclock their Gameboy?" Answer: Super Nintendo emulation. There's already a working beta of a SNES emulator out for the GBA called SNES Advance. The big problem is there's just not enough horsepower under the GBA's hood to emulate the SNES sound chip. This mod will hopefully remedy that."
lack of buttons will be made up by a 2 button combo l1+a l2+b etc.. the forums at http://www.pocketheaven.com/boards/viewforum.php?f =33 have the info. The tests so far are great
Why not just get a GP32, you can emulate loads more machines and it looks like GBA soon (it's an ARM as well as the GBA)..
SNES Advance was originally called PocketSNES (PocketNES is by the same author, loopy).
But after that ripoff site appeared he changed the name to SNES Advance and got the www.snesadvance.org domain.
That sounds like a really slow emulator. It's probably an interpreting one, which means you can expect it to be something like a 100-1000 times slower than the emulated system clock-for-clock. A good example is Bochs, which is pretty damn slow, but the interpreted approach allows it to run on many systems with little porting.
What you really need for a fast emulator is dynamic translation - rewrite snippets of emulated instructions into native ones, and run that instead. You can get close to a 1:1 ratio of native:emulated clocks, which means in your case you'd have a 472MHz XScale emulating as if it were a 472MHZ SNES.
There's plenty of examples of dynamic translators about. Transmeta's processors all run a dynamic translator from x86 to some freaky native instruction set (they call it "code morphing"). Java's JIT (just-in-time) is an example of a very similar thing - it translates byte code to native instructions on the fly, but doesn't have to worry about maintaining the virtual system's state, because Java doesn't have the concept of one.
So yes, it should be possible.