- 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
- Push path opening responsibility out of disk6 API in favor of using file descriptors
- Improves handling of readonly gzipped disk images (now data is read without gunzipping or mmap()ing the file)
- Currently represents an API-breaking change for macOS, iOS, GNU/Linux desktop ports (but should be easy to fix)
- Supported platforms:
- Mac/iOS (OpenAL)
- Desktop Linux/POSIX (OpenAL)
- Android (OpenSLES)
- TODO : for POSIX builds we should provide our own "null" audio backend if OpenAL/OpenSL not found by build script
- While LLVM/Clang appears to be very stable with codegen for ARM architectures, I have trust issues with Clang
producing optimized codegen for the 32bit x86 architecture.
- I have witnessed a number of examples where Clang generates invalid x86 code for both Chromium Breakpad and JSMN
in this project, as well as similar issues discovered at the day job. (This is for the LLVM toolchain in the
latest NDK as well as previous ones)
- Remove unused button2 variable
- Remake little-used backend joystick reset function as function pointer
- Allow soft reset and self-test on Android (although there is still a race condition due to code that directly sets
joy_button[12] values
- 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
- Moves extra work off CPU/audio thread
- Prepares the way to possibly remove the vestigal intermediate indexed framebuffer and do direct RGBA_8888 writes
to XImage or OpenGL texture
- Prepares the ground for possible better emulation of video scanner hardware
Conflicts:
src/display.c
src/video/glvideo.c
src/video/video.h