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.
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.
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.
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