There were a couple issues I needed resolved before I really could move forwards with Sonic R hacking. 2 things, mostly. 1: slogging through the menus every time I wanted to test a character or level change was an absolute chore. And 2: I needed a quick and easy way to edit the character and course select screens, or to add debugging screens.
Attempting to just fix Sonic R's existing menu system would have been nightmarish (it's really just a giant pile of spaghetti code when you get down to it) so instead I just threw the whole thing out and started anew.
- Launch any game mode instantly through the command line
- Define your own custom menus with simple JSON files a simple C++ API
- Define your own menu layouts with a C++ binding, with custom draw and input functions
- You can even have a Sonic Rush style character select or a Sonic Adventure 2 style level select or anything, really.