- Re-gzipping ejected images is based solely on the file extension and not the actual file stream contents
- Read/write disk images with extension ".gz" are re-gzipped in-place upon ejection
- Read/write disk images without extension ".gz" are not changed upon ejection
- Read-only disk images maintain current behavior (no modifications performed at all)
- 'was_gzipped' state is persisted in .apple2.json preferences
- This removes all file-renaming codepaths at the cost of temporarily nonconformance to naming convesion (e.g., disk
images inserted read/write are still called 'foo.dsk.gz' although they are not compressed)
- Unclean shutdown of emulator leaves any disk images that were inserted read/write in their non-gzipped state
(regardless of file name extension) on disk until emulator restarted and disk images explictly ejected or clean
shudown. App removal after unclean shutdown will potentially leave mis-named disk images lingering.
- Emulator will handle edge cases of non-gzipped disk images with '.gz' extension and gzipped disk images without
'.gz' extension
- Eliminates a whole bunch of boilerplate setter/getter code in various places
- Accesses preferences directly from JSON data through custom json_parse.h API
- Improves code locality for Java menus/settings
- Breaking changes currently only tested on Linux desktop build =P
- Goal is to eventually eliminate most/many of the disparate getter/setter functions to allow better
modularity/scaling and platform portability
* Removes Linux-specific joystick handling
* Adds cross-platform GLUT joystick handling; Caveats:
- GLUT is not robust to joystick hot plugging like my old Linux-specific code was. (Fix should be made in the
GLUT driver and pushed upstream if we really care)
- Deprecated X11 renderer now can only use keypad joystick
* Deprecate "lazy" color modes
* Allow setting speaker sound volume
* Make Joystick code more generic (future support of touch input)
* Deprecate setting emulator mode (//e is ascendant)