Commit Graph

83 Commits

Author SHA1 Message Date
Stephen Anthony 298eea04cf Fix Pitfall II not working (fixes #661).
Note that I've refactored all the constructors to prevent this issue from happening again.
It already happened with 3E+/3E, and now DPC/F8.  Also, FA2/FA looked suspicious.
2020-06-10 16:59:27 -02:30
Stephen Anthony 7ae0aff062 Some more header file cleanups, hopefully resulting in faster compile
times.
2020-05-12 13:52:33 -02:30
thrust26 4699a28af8 refactored CartDPC class
replaced DPC ROM
2020-04-24 11:20:01 +02:00
thrust26 00e67f1a51 add RAM bank support to CartEnhanced
refactor Cart3E
differentiate between ROM and RAM banks (TODO: check debugger)
2020-04-15 14:53:05 +02:00
thrust26 e91bc140cd fix poke access counter offset
add a few more bank switching types
2020-04-02 12:03:35 +02:00
thrust26 3f7db393ba add access counting to many more bankswitching types 2020-04-02 10:38:15 +02:00
thrust26 96131e2f7f first shot at #586 (Heat Map) (TODO: differentiate cartridge read/write access)
add Cartridge::bankSize method (TODO: varying bank sizes)
add Cartridge::bankOrigin detection method (TODO: banks smaller 4K)
2020-04-01 11:06:03 +02:00
thrust26 d2fbbdbf61 rename code access into ROM access to better reflect the usage 2020-03-30 09:22:45 +02:00
Stephen Anthony 9ad47ae5f3 Updated copyright to 2020. Happy New Year to anyone reading this! 2019-12-31 13:48:56 -03:30
Stephen Anthony 54de3415ea More default initialization updates, in the process making c'tors smaller/non-existent.
I've already found a few potential bugs where instance variables weren't being initialized at all.
2019-12-29 18:36:56 -03:30
Stephen Anthony 36683adec1 And yet more fixes for warnings from clang-tidy. 2019-12-28 00:45:09 -03:30
Stephen Anthony 730b2970c8 Many more fixes for suggestions from clang-tidy. 2019-12-24 22:11:36 -03:30
Stephen Anthony 025eeba38c Convert some raw arrays to std::array.
Some fixes for warnings from Coverity.
2019-11-14 20:12:45 -03:30
Stephen Anthony 700fbd9c91 Some more std::array and size_t updates. 2019-09-18 10:27:32 -02:30
Stephen Anthony 218969eb59 Changed uInt32 to size_t where necessary.
Finally decided to stop fighting C++, and just use size_t everywhere an
array is used.
Even though this is a 64-bit value, it seems that C++/STL expects it
when dealing with arrays, so I guess we will too.
2019-09-16 21:29:08 -02:30
Stephen Anthony 354d5aa35a Fixed gcc warnings wrt getBank virtual methods.
Converted many C-style arrays to C++ std::array.  In the process, cleaned up a lot of magic constants.

Replaced most C-style memset/memcpy operations with C++ equivalents: std::fill/std::copy.
std::copy in particular fixes a few potential bugs, since it operates on the datatype size,
and not just on raw bytes.
2019-09-16 19:46:15 -02:30
Thomas Jentzsch 61d9f26bc6 implement variable DPC pitch 2019-07-25 11:09:02 +02:00
Christian Speckner 126464f66f Switch MacOS to SettingsRepository, fix clash between bspf.hxx and Cocoa. 2019-04-26 00:23:53 +02:00
Stephen Anthony 91c98ceed2 Converted another plain enum to 'enum class'. 2019-03-09 16:02:43 -03:30
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
Stephen Anthony b40a614cee Rework `Cartridge::initializeStartBank()` to require a specific starting bank.
Randomization and reading from properties still work too.
Fixes issues in several ROMs that essentially were getting bank randomization even though it was disabled.
2018-12-20 18:37:27 -03:30
Stephen Anthony 56669c5449 Convert Cart classes to receive 'md5' parameter.
That's an *awful* lot of work to simply pass info to each class :)
2018-12-18 10:24:40 -03:30
Stephen Anthony 31f6dba87d 'Cartridge.StartBank' ROM property is now used by the core. 2018-09-14 20:57:36 -02:30
Stephen Anthony d18f11afa2 Remove Serializable::name() method, and all reference to it in state files.
- this both speeds up load/save of state files, and makes them smaller
- affects both on-disk files, and Time Machine functionality
2018-09-13 20:50:23 -02:30
Stephen Anthony 8c7488914d Fix some warnings generated by cppcheck (a C++ linter). 2018-08-27 11:09:03 -02:30
Stephen Anthony 56437c38e6 Increased warning level in Visual Studio compiles.
Also fixed some new warnings that VS now finds.
2018-08-19 12:34:40 -02:30
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
thrust26 a14fa6a3ea - missing checks for developer settings added
- "dev.console" selection move to developer settings
- random startup bank implemented for some (tested!) bank switchings
- Options dialog button added in debugger
2017-11-18 13:14:27 +01:00
Stephen Anthony 1d99a1e5fa Refactored various page accessing functionality:
- 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.
2017-09-15 23:28:20 -02:30
Stephen Anthony c4d04ffe26 CartCDF and friends refactoring (have similar functionality):
- rework music fetcher code; there can never be a negative cycle count
- use get/put double Serializer methods for doubles.
2017-09-08 18:36:06 -02:30
Stephen Anthony ebb8725126 Refactor System::myCycles to be 64-bit instead of 32-bit.
- 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).
2017-09-08 11:29:30 -02:30
Stephen Anthony c2302c2e71 Cart::getImage refactoring: use uInt32, since sizes are never negative. 2017-09-01 10:23:17 -02:30
Stephen Anthony 31907f4be1 More peek/poke refactoring, and improved comments in bankswitching schemes. 2017-08-31 13:01:45 -02:30
Stephen Anthony 9972af022a Fairly huge refactoring of the cart autodetection code.
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.
2017-07-02 19:27:27 -02:30
Stephen Anthony abb7097cb7 Removed $Id$ stuff from codebase, since it's Subversion-specific.
Whitespace cleanup and update copyright to 2017.
2016-12-29 20:30:30 -03:30
stephena 883971985e Removed some redundant includes in various Cart classes.
Introduced Cartridge::initializeRAM() method, to eliminate duplicate
blocks of code in every bankswitch scheme that uses extra RAM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3316 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-24 23:57:07 +00:00
stephena 8dbd545433 After thinking about it a little, I wondered why we even need to wrap several
std:: functions into BSPF namespace at all.  So I removed them, and have the
calls map directly to the std:: versions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3304 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-03 00:35:00 +00:00
stephena eb56efc3d5 Convert BSPF C-style macros to C++ namespace equivalent.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3302 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 23:47:46 +00:00
stephena abf4a4a44c I was a little too eager with the 'constexpr'; it currently doesn't work on
enum types.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3300 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 21:27:10 +00:00
stephena ed766b5bb2 Cleanup some whitespace issues.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 18:16:09 +00:00
stephena 2aec7bc1b1 Converted classes in src/emucore to properly use C++11 '= default'
for destructors.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3240 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 21:28:10 +00:00
stephena 8f2d3a6cbb Updated copyright to 2016, even though it's a few days early.
To anyone reading this, Merry (belated) Christmas and Happy New Year!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 19:22:46 +00:00
stephena 9e23bc3580 Some bugs indicated by running Stella through Coverity. Note that many
of these aren't actually bugs per-se, but are to follow good programming
practices.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-05 01:30:17 +00:00
stephena 687b638437 Second pass at cleaning up warnings generated by -Weverything in clang.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3204 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 18:14:00 +00:00
stephena 0afb189322 Updated copyright to 2015. Happy New Year to anyone reading these logs :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 03:49:32 +00:00
stephena 068f07d919 A few optimizations, and removal of some dead code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3101 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-23 18:53:11 +00:00
stephena 1a09d37d1b Speed up accesses to System by using constants. It's fine to make
a class more generic, but when it's never used, all it does it slow
things down.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3016 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 00:40:27 +00:00
stephena 9f172cbb42 Fixed potential bug in Cartridge API; renamed bank() to getBank(),
since there are issues with mixing overloading and virtual functions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2963 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-28 13:40:37 +00:00
stephena ef183beab7 Slight cleanup of the System::PageAccess API. Since all c'tor calls will
*always* pass in 0,0,0 for the various bases, it is redundant to pass that
data in on each invocation.  So now the c'tor does it automatically.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2959 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-07-24 16:24:27 +00:00
stephena aa5691af8a OK, it looks like I'm back to Stella development, after a several month
break.  First thing to do is update the year.  Happy new year to anyone
reading these commit logs.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2833 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-01-12 17:23:42 +00:00