Commit Graph

102 Commits

Author SHA1 Message Date
Christian Speckner 126464f66f Switch MacOS to SettingsRepository, fix clash between bspf.hxx and Cocoa. 2019-04-26 00:23:53 +02:00
Stephen Anthony eb13d515fb Enable conditional compilation for PNG support. Some ports (libretro) don't need it at all. 2019-04-21 20:07:56 -02:30
Thomas Jentzsch 6f51b6039d renamed and refined StellaSettingsDialog
added to OptionsDialog for testing
2019-03-29 13:42:47 +01:00
Stephen Anthony 3b15f8da5d Move SerialPort declaration/instantiation directly into AtariVox.
- This is the only class that uses it, so it makes no sense for OSystem to even care about it
2019-03-03 21:30:53 -03:30
Stephen Anthony 61cf68cb98 Move `getTicks()` from OSystem to TimerManager.
- This allows OSystem dependency to be removed in a few places (WIP).
- It more properly belongs in TimerManager, which has other functionality related to std::chrono.
- Historically this was a virtual method in OSystem, since different ports implemented it differently.  Now that we use proper C++11 code, it doesn't need to be there anymore.
- Changed from a virtual call to a static call, so it's probably even a little faster.
2019-02-26 19:20:28 -03:30
Stephen Anthony 88afab2d22 More restructuring of the OSystem and derived class interaction
- Each derived class no longer calls methods from the base class
- The base class now directly queries the derived class with a pure virtual method, making sure it is called
- Implemented 'basedir' commandline argument for Linux

Windows and macOS currently won't compile.  I'll work on those next.
2019-02-24 19:14:55 -03:30
Stephen Anthony 904821cff9 Refactoring of settings load/save functionality
- commandline parsing is now done in main function
- loading of settings is handled by OSystem
- settings that are used only in main are not accessible globally
- beginnings of converting Settings class to use map instead of linear arrays
2019-02-20 23:43:29 -03:30
Stephen Anthony 8f800d97b9 First pass at cleaning up the various config file location mess
- only 'romdir' is configurable; the rest are now always under the 'basedir'
- next step is to allow 'basedir' to be configurable, and optionally use the APP dir
- ConfigPathDialog dialog is now almost empty (only contains romdir), so perhaps this can move elsewhere
2019-02-16 15:26:24 -03:30
thrust26 9fba356d8b RomInfoWidget auto detects controllers and displays results 2019-02-15 22:19:19 +01:00
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
Stephen Anthony fb07d250d9 Simplify AudioSettings class a little.
- Use only one c'tor, which fixes some warnings from Coverity
- Fix large compile times when AudioSettings class is changed
2018-08-29 09:10:55 -02:30
Stephen Anthony 2e2984864d Add timer/callback functionality to OSystem.
Previously this was done by SDL_AddTimer, but the new approach is much better:
- it is proper C++ (using std::thread and lambdas)
- It is not tied to the SDL toolkit, which is C-based
Also, re-added logic to reset events ~0.5 seconds after starting ROM emulation; this resets 'hold' events
2018-08-23 11:48:24 -02:30
Stephen Anthony 7ae6d84739 Completely remove ability to use a per-ROM properties file.
This 'feature' now seems unnecessary, and it complicates the code by having it.
2018-08-17 13:56:08 -02:30
Christian Speckner 3a5572d3b9 Add measured FPS to OSD, squash a bunch of minor bugs. 2018-07-30 23:19:47 +02:00
Christian Speckner 5656051aae Tie in UI. 2018-06-25 00:30:52 +02:00
Christian Speckner ef5261689a Major audio settings overhaul. 2018-06-23 00:58:28 +02:00
Christian Speckner 8edc597189 Hook and fix up EmulationWorker -> threading works, pick'n'pile is happy. 2018-06-07 23:38:14 +02:00
Christian Speckner a14cf8d077 Refactoring: start debugger from dispatch loop. 2018-05-24 00:13:43 +02:00
Christian Speckner 5c1bd83904 Merge branch 'master' into feature/precise-audio 2018-02-12 23:32:03 +01:00
thrust26 2a3bb4329e load and update existing game specific properties file 2018-02-12 16:47:03 +01:00
Christian Speckner cb89d09c7f Refactoring: remove framerate from OSystem and Console. 2018-02-03 01:01:02 +01:00
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
Stephen Anthony 7890a94144 Several large infrastructure changes for upcoming Time Machine stuff:
- 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)
2017-12-20 21:56:22 -03:30
Stephen Anthony bf6d28e181 Added basic infrastructure for what will become the rewind dialog. 2017-12-15 13:19:29 -03:30
thrust26 b5c9842716 DeveloperDialog added
- developer only options now have "dev." prefix
- options relevant for players and developers are duplicated ("dev." prefix)
2017-11-17 14:02:10 +01:00
Stephen Anthony a7f1764411 Second pass at optimizing header files, to eliminate cascaded compiles. 2017-11-16 13:31:20 -03:30
Stephen Anthony b7bf3b79b2 First pass at a consistent default for load/saving files that don't have a
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
2017-09-09 15:06:21 -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
Philip James 6ff2095a9f Fixed compile when --disable-cheats is passed to configure 2017-05-18 09:12:25 -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
Christian Speckner cdfac18f1c Fix build w/o debugger. 2016-10-26 14:59:52 +02: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 f431e3e3a5 A few more constexpr additions, and removal of redundant comments.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3301 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 22:52:29 +00:00
stephena a85debea63 Fixed bug in ROM launcher; hasConsole() would be true even when the console
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
2016-01-18 16:03:22 +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 8dbd5d7f48 Converted more new/delete pairs to unique_ptr. This actually made me notice
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
2015-06-14 20:02:32 +00:00
stephena e7fb7318fb Bumped version #.
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
2015-04-26 19:02:42 +00:00
stephena df5f3c1c5a Updated ROM properties database to RomHunter v/10.
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
2015-01-01 16:21:30 +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 1460947005 Move ZipHandler from OSystem directly into FSNodeZip class, since it's the
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
2014-12-26 17:19:36 +00:00
stephena 4c9e139fcc Cleaned up the OSystem code for managing Console and Debugger, removing
stuff from destructors and using unique_ptr.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3063 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-09 22:03:50 +00:00
stephena 92aa5c2e36 Just when I thought there were no more cleanups to do ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3059 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-09 03:05:19 +00:00
stephena 7b9169c18d Convert all arrays in the codebase to vectors, so that we get all
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
2014-11-08 21:27:36 +00:00
stephena 79ada8685c The long march to converting Stella to C++11 has finally started. Already,
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
2014-11-02 23:40:20 +00:00
stephena d891357cad More cleanups from cppcheck.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3021 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 19:51:02 +00:00
stephena af33538d5a Some cleanup of the Random class, and converting several classes
in emucore to use references instead of pointers.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3017 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-26 15:54:02 +00:00
stephena 920dcdb8a5 More const cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3011 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-21 23:02:20 +00:00
stephena fe1713ee87 Fixed some warning that showed up in gcc but not clang++, and vice
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
2014-10-18 15:57:03 +00:00
stephena c21220ce2c Joysticks are now detected dynamically, meaning that they can be added/removed
while the emulator is running.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3002 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-13 22:37:15 +00:00
stephena b068b3299f Removed some obsolete references to OpenGL.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2885 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-05-07 11:15:00 +00:00