Skip to content

Instantly share code, notes, and snippets.

@Wolfvak
Created June 3, 2019 01:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Wolfvak/3776d8a542ff1b976005b321ee69daab to your computer and use it in GitHub Desktop.
Save Wolfvak/3776d8a542ff1b976005b321ee69daab to your computer and use it in GitHub Desktop.
GM9 + better_arm11 overview
new features:
- added touchscreen and circlepad support: cpad behaves the same as the dpad and the touchscreen is used by the swkbd
- turns off the LCD whenever the shell is closed (and turns it on when the shell is opened)
- starts flashing the notification LED whenever it expects input and the shell is closed
- touchscreen calibration is performed automagically with the data provided by the user on initial 3DS boot
- added a software keyboard for text input
performance optimizations:
- basically a complete rewrite of the ARM11 binary used, now it performs a ton of tasks in the background, giving more CPU time for the ARM9
- HID latencies have been removed from the ARM9 (faster response)
- framebuffers are now RGB565, leads to only being able to display 64K colors at once but greatly improves performance by having every read/write operation be a single 16bit read/write, instead of 3 8bit read/writes. also greatly simplifies pointer arithmetic. also only consumes 2/3rds of the memory used for bitmaps.
- enabled write buffering for VRAM, leading to more speed
- rewrote a couple of algorithms used by the UI code, noticed improvements up to 75%
- reverted to pure ARM code compiled with Os
- removed dead floating point code used by lodepng
- instead of bundling the same CRC32 table and functions twice, lodepng now uses the preexisting functions
- rewrote exception handling code to be smaller, faster and simpler, and actually do pointer checking on dumps
- any NULL pointer accesses will now trigger aborts instead of read through ITCM
probably forgetting some other minor stuff
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment