This is a fusion of ProjectABE and VisualBoyAdvance’s CPU core upgraded to Thumb2, resulting in a native C++ SDL2-based Pokitto emulator.
Being a WIP, there’s a whole lot of stuff that still needs to be done. If anybody wants to help: testing, bug reports (especially along with bin+elf files demonstrating the bug) and PRs are greatly appreciated.
- A/S/D correspond to A/B/C.
- Arrow keys
- F2 take a PNG screenshot
- F3 to start/stop recording a GIF.
- F7 to Pause/Resume and F5 to Restart emulation
Use it like this:
PokittoEmu path/to/file.bin -g
Or like this:
PokittoEmu path/to/file.bin -G port
If you don’t specify the port (
-g), it defaults to 1234.
You can then connect to it using:
Use it like this:
PokittoEmu path/to/file.bin -p
Then use this to get the source lines:
addr2line -e path/to/file.elf < hotspots.log
While the emulator is running it will randomly sample the current instruction to detect hotspots. After shutdown it creates a
hotspots.log file with the addresses of the top 10 hottest spots in the code, in descending order. These are probably the performance bottlenecks of your game.
addr2line is a tool that comes with gcc.
Press F3 to start/stop recording a gif. It will be saved in the same path as the bin that is currently running. You can also use the
-r flag to record automatically.
Bleeding edge (features in source, not in a build yet):
- Multi-block SD card read support
To do (in no particular order):
- Limit GIF frame rate (currently hardcoded speed is too fast)
- Pixel art scaling algorithms
- Backlight control (it’s always on)
- Must hardfault on bad memory access
- 32-bit timers are incomplete
- 16-bit timers are missing entirely
- PWM + DAC + Sound
- Joystick support
- RTC / USART / I2C
- ROM API (only has EEPROM and partial Flash API)