- Removed System::PAGE_SHIFT from all classes (except where it's needed inside System); it is an implementation detail of that class that shouldn't be used outside the class, and was making the various calls to setPageAccess very messy
- Changed uInt32 to uInt16, and loop variable to 'addr' for all calls to setPageAccess; this is for consistency, and allows the reader to see how all the code is similar in different classes
- Updated comments in various places (mostly TIA and RIOT) to more clearly show how page accessing works.
- The cycles counter is now essentially monotonically increasing (ie, we never need to worry about it going backwards and giving a negative difference, simplifying a lot of code
- There are now reset() methods in all places that keep track of system cycles, but they are used for a full reset only; not called each frame like before (which had to be done to prevent overflow).
Clang 3.8, gcc 5, Visual Studio 2017 and Xcode 8 are now the minimum
supported compilers, and they all support C++14, so we may as well use it.
- Change all make_ptr to make_unique
- Change iterator begin(), end(), etc to const versions where appropriate
- Remove UniquePtr, since C++14 supports it natively
This has been in patch form for about a year, and I'm finally
getting around to applying it. Basically, we separate the Cart
class into 3 classes:
- Cart: stuff specific to cartridge emulation
- BSTypes: various bankswitch types, both as enum and strings
- CartDetector: actual bankswitch auto-detection code
Also made more use of smart pointers, and added const in a few
more places.
I promise to get back to the phosphor stuff soon. This is just
to clear my head a little.
The Harmony/Melody BUS driver is undergoing a major revision to add support for the new JMP FASTJUMP feature. This update implements the changes, as well as the fast jump feature which isn't yet in the HMdriver. It also implements the load/save state support as well as the BUS debugger widget.
A few minor updates to CDF were also done.
Note that this update breaks compatibility with the previous BUS demos.
* Implemented load/save state.
* Updated the debugger tab, which required the following:
- removal of : from RAM labels (part of the debugger overhaul)
- setCrossed() functionality in the DataGrid
The Harmony/Melody CDF driver underwent a major revision to add support for the new JMP FASTJUMP feature. Note that this update breaks compatibility with the previous CDF demos.
3-Voice Audio and Digital Sample playback are in place, though both sound "off" so further work will need to be done. Debugger Widget needs additional work, and state save/load support needs to be finished.
- update some code to the '5.0' way of doing things
- allow compilation in Linux
- whitespace/tab fixes to match main codebase
- add some extra comments
- test compile under gcc 6 and clang 5, and fix some warnings
Preliminary support for new Harmony/Melody drivers BUS and CDF. Work remains for the 3-Voice Audio, Digital Sample playback, and some additional revisions to the debugger widgets.