- renamed Rewinder and associated dialog to TimeMachine and friends
- changed EventHandler state enum to stronger 'enum class' type (and associated changes to the codebase)
- moved EventHandlerState into separate class, allowing a few files to not need to include EventHandler.hxx (reduce compile dependency)
- plumbed EventHandlerState::TIMEMACHINE into the codebase; still TODO is activate it and add a usable dialog)
pre-defined location (ROM files and disassemblies, etc).
- Repurposed the snapshot load/save folders by changing OSystem::defaultSnapLoadDir to OSystem::defaultLoadDir, and similar for the save dir
- In Windows, this directory will now be 'Documents\Stella', while in Linux/OSX it will be $HOME
- Testing still required for Windows and OSX; only Linux is confirmed to work for now
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.
is closed (since it's not deleted until the next console is created).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3249 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
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
a memory leak where the Console was never being deleted.
For FSNode read, change 'uInt8[]' arrays to BytePtr, which is an alias to
a unique_ptr array. Again, this enables automatic deletion when the object
goes out of scope.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3173 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Introduce namespace to class MD5, so the method call is now MD5::hash()
instead of simply MD5().
Added C++11 '= delete' constructors to most classes, to more clearly
indicate the intent of the class. Note that this isn't absolutely
necessary, but is considered good form. I will be teaching a C++ class
over the summer using Stella for examples, so it makes sense to follow
the standard and the textbook recommendations :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3164 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added a specific closeConsole method, since the test for hasConsole was returning
true in cases where it shouldn't have.
Fixed PERL PropSet saving so that properties are always saved in sorted order
(by MD5). This isn't technically necessary, but it will eliminate huge changelogs
when only a small part of the file has changed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3134 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
only class that uses it. This is in preparation for improvements to ZIP
file handling.
Use emplace_back instead of push_back in several places, as it's faster.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the advantages of C++11 (move semantics, list initialization, etc).
I'd hoped to somehow wrap a vector behind Common::Array and not have
to change the codebase to this extent, but it didn't work out. And
I've since read that it's bad form to extend from std::vector anyway.
This is *THE LAST* bit of work I'm doing with arrays; everything is
now a proper vector.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3055 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
I've found and fixed a few memory leaks. You will need an up-to-date compiler.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3031 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
versa (I guess it's useful to test under multiple compilers).
Bumped version # for next test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3008 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Rearranged some of the desktop size code, to be more consistent with the
new API.
Beginning to remove the old assumptions that a smaller screen than 640x480
could be used. In the 4.0 release, the smallest (internal) screen
supported will actually be 640x480, and if the real desktop can't display
it, then it will be scaled down. This is one of the nice benefits of
killing pure software rendering support, and letting the hardware just
draw the screen as it likes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2877 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
SDL-specific code into its own EventHandlerSDL2 class. This is part
of a larger reorganization of the codebase, to completely remove
SDL-specific code from src/emucore, and make it easier to port to SDL2.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2850 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
into FrameBufferSDL2 only. This will make conversion to actual SDL2 code much
easier, since it won't be touching any of the core emulation code in src/emucore.
Next TODO is something similar for EventHandler (which uses SDL heavily and is
too tied to a core class).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2846 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
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
centering has been removed (SDL2 provides this natively).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2831 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added option to save snapshots using either internal database name
(the default) or actual ROM filename.
Extended FSNode API for parsing filenames and adding/removing extensions,
which was previously being done in different ways throughout the codebase.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2753 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
selection widget to a display of current bank state, taking into
account the more esoteric bank schemes. Currently, some functionality
is disabled/removed for now; I'll work on this for the next commit.
The format for displaying disassembler GFX/PGFX (binary or hex) is now
obeyed in the disassembly file output as well.
Changed various comments/enums/etc referring to 'preliminary' code to
'tentative' code, matching the actual intended meaning and the current
documentation.
Small API change for EditTextWidget; changed method name to setText, since
that's what I keep typing for some reason.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2743 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
disables normal keyboard input when in the debugger. This fixes issues
where commands/shortcut keys typed in the debugger would be interpreted
as actual CompuMate input.
For now, in-debugger key processing is completely disabled in such a
case. Eventually, we should probably add a virtual keyboard to the
CM RIOT area, and have it send its data directly to the CM handler.
Bumped version # slightly. I hope to get the next release ready to
go in a few weeks.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2705 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
from the launcher. This message should only appear when *reloading*
a ROM, not creating a new one completely.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2662 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'BASEDIR'/nvram. Previously it defaulted to BASEDIR, which was getting
filled with many such files.
Unfortunely, all files will have to moved manually, but it's an easy
one-time operation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2613 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
is add support for from the commandline, as well as optimizations
(automatically loading the first ROM when only one exists, or when
the name of the ZIP file itself is used).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2608 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
it's still partially broken).
Converted many methods to take FSNode objects instead of raw string
filenames. This is necessary since file reading will eventually
be abstracted into the FSNode class directly.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2605 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
opening ROMs, but at least the ROM launcher now properly descends into
ZIP 'folders'.
Removed obsolete unzip.h|c code, which hasn't been updated since 1998
and fails to compile on some systems. Replaced it with ZipHandler class,
which is a much nicer interface (and about half the code too).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2603 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba