Who wouldn't just use "int" for all of this logic? It's so simple that you could do it on autopilot. You'd have to specifically try to limit to 8-bits.
If 'char' in-place of 'int' is a legacy quirk, then I get it. I just find it odd that over the course of twenty-five years the required expense couldn't be made to update the data type. It just makes more sense.
If you find it odd you haven't worked on any large projects that have enormous backlogs of bugs and features to build which need to be prioritized. Bugs that will never actually manifest in normal usage should be far down the list of things to fix, particularly if they are in 25 year old code that is battle hardened and in the critical path.
You have to remember that consoles are very limited devices, especially if core code was developed 25 years ago. Even in the late 90s, developing for the original Sony PSX, we were carrying flags in high bits, removing file names from our file systems for prod builds (relying on known sectors and offsets instead), making sure that no unnecessary strings were in the final build, etc.
While it was annoying at times to be so worried about bits and cycles, it was also a very rewarding type of puzzle, figuring out how to squeeze just a little more performance out of the limited system we had to work with.