This has been developed ad-hoc over the years, with different subsystems (TIA, UI, phosphor, Blargg, etc). This is an attempt to consolidate the code, and also move to C++-style arrays.
Still TODO is look into refactoring phosphor stuff out of TIASurface and AtariNTSC classes, since the code is exactly the same, and doesn't really belong in either.
This is a major change, so some testing is definitely required.
- This caused incorrectly positioning for ContextMenu
- With this fix, the positioning code in ContextMenu and related dialogs becomes a lot less complex
- When disabled, it also disables the debugger and cheatcode support
- UI-wise, this reverts Stella to 1.x functionality (before any internal UI was added)
- Eliminates 47000 lines of code for those ports (like libretro) that don't need it.
Previously, they would sometimes use desktop dimensions, and on current versions of SDL,
this would exclude areas meant for taskbars, etc. So the resulting image was smaller than it should have been.
Map the R77 F13 key to the former.
Some refactoring of the mapping code in PKeyboardHandler and EventHandler.
Some refactoring of the VidMode handling in FrameBuffer.
Option 'tia.fsfill' is now used to select 4:3 vs. 16:9 mode in fullscreen.
- Certain parts of the code referred to int literals, when they should use named constants instead
- Different classes had enumerations for the same quantities; this is now fixed
- Basically, TIAConstants and FrameBufferConstants now contain all constants, and their relationship is clearly indicated (previously it wasn't as clear)
- We've already removed it from the UI, now it's removed from consideration altogether
- For now, NTSC ROMS use 240, PAL 250; this will change when we get aspect ratio working
- Now uses 'ColorId' as the datatype; this is currently mapped to uInt32, but can change in the future if required
- Eliminates needless and annoying casts in various places; all colors are now 'ColorId' type
- This addresses issue 158, and reduces CPU usage to near 0% when no changes are happening
- This returns the code to the same performance levels as version 3.x.
- It seems that textures must be destroyed *before* the renderer is destroyed
- This isn't mentioned anywhere in the SDL docs, and it works everywhere else, but in any event it is now fixed