Emulator Issues #6120
ARM/Android Laundry list
Posting a sort of "todo" list of things that need to be done still with the ARM/Android port of Dolphin. This is basically my Wunderlist in public format. These aren't in the most particular of orders.
- Android Input
- Needs to be reworked to use the ControllerInterface and be cleaner inside of the Java source
- Draw up more onscreen controls
- Basically just need more controls drawn, I only currently have the A and B buttons
- Probably should use a atlas or something
- Handle Android screen rotations
- Currently on screen rotation, the EGL context wipes and you don't get any more onscreen visuals
- Support immediates in the register cache
- Supporting immediates would allow quite a few instructions to be optimized out similar to JIT64 does
- Flush only required GPRs when dropping to Interpreter
- This is a micro-op, instead of flushing all registers in the cache before dropping to Interpreter. Check which registers are used by the next instruction and flush only the required ones. Which would be R0-R3 + registers that is used
- Downcount optimization
- Each block hits the CoreTiming::Downcount variable. This should be optimized by throwing downcount in to ppcState or even its own dedicated register
- When d != a && d != s, don't load destination register
- Currently the register cache will preload a PPC register when you call for it. This can be optimized so if the destination reg in a instruction is neither of the other two, you don't load it since the result will be thrown away anyway.
- Make register cache not use dedicated temp registers.
- Currently four registers are squirreled away for temporary usage. This can easily drop to three, but to be even better, it should be changed so that temp registers will pull from the same pool as the dedicated PPC registers, so if we don't use a lot of temp registers in a block, we have more PPC registers to play with
- Make VideoSoftware use regular texture decoding
- Right now VideoSoftware uses a large portion of its time decoding texture's texels on the fly, which can be optimized out similar to the other video backends, via the use of a texture cache.
- DSP LLE JIT
- Make a ARM/VFP/NEON capable JIT for the DSP
- Time stretching in OpenSLES
- Billiard said he was going to take the time to make it so all backends would use soundstretch indirectly. This has yet to come to fruition.
There is my list of current todos that I need done.