Commit Graph

63 Commits

Author SHA1 Message Date
Stephen Anthony 6ec49f3d96 Unify Cartridge::bank() and CartEnhanced::bank() (take 2).
Otherwise, gcc complains of methods mirroring another with the same name.
2020-05-24 19:33:21 -02:30
thrust26 4466f470a3 Revert "Merge branch 'master' of https://github.com/stella-emu/stella"
This reverts commit 3f9ef8026b, reversing
changes made to 191684b6d2.
2020-05-24 23:45:46 +02:00
Stephen Anthony dbae9b8856 Unify Cartridge::bank() and CartEnhanced::bank().
Otherwise, gcc complains of methods mirroring another with the same name.
2020-05-24 18:57:45 -02:30
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
Stephen Anthony 9ff00c3631 More fixes for DPC+ jitter issues, thanks to Spiceware. 2020-03-15 19:34:53 -02:30
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 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
Christian Speckner 126464f66f Switch MacOS to SettingsRepository, fix clash between bspf.hxx and Cocoa. 2019-04-26 00:23:53 +02:00
Stephen Anthony ea89ef01b4 Refactor DPC+ code wrt 'jitter'. The code and commenting now properly indicates that it is
a difference in mask values, and not actually jitter (TV 'jitter' effect is actually something else,
and is not causing the screen shaking here).
2019-04-24 17:11:37 -02:30
Stephen Anthony 7b2ca28306 Disable 'jitter' effect in older DPC+ driver versions (fixes #429). 2019-04-21 21:56:54 -02:30
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -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 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
Christian Speckner 6500ab0613 Compile thumbulator unconditionally. 2017-12-10 00:22:18 +01:00
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 4440aabc56 Final updates for bankswitch schemes, updating documentation.
- Some schemes are not completely documented and/or implemented, and in those cases a FIXME has been added.
2017-08-31 19:21:20 -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 ba2bed21b5 Fix potential crash in ARM code in DPC+ scheme. 2017-04-27 20:24:19 -02:30
Stephen Anthony db3ce957a5 Implemented console timing changes in a more general way.
There is now a virtual consoleChanged() method called on
a device when the console changes.  If the device is
interested in this notification, it simply has to implement
the method.

Updated DPC+ scheme to implement this method, so that the
Thumbulator object is automatically told whenever the console
changes, and can adjust its internal timing accordingly.
2017-03-22 15:46:48 -02:30
Unknown 97a229dd92 ARM Timer 1 support
Implemented ARM Timer 1 support in Thumbulator.  Revised DPC+ to use it.
2017-03-20 21:55:27 -05:00
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 087d382280 Added 3E+ bankswitching scheme by Thomas Jentzsch.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3311 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-21 21:37:06 +00:00
stephena 755611a5c1 In my quest to remove all d'tors, converted many more raw pointers to
unique_ptr.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3258 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 22:56:16 +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 47911eff21 Some cleanup of redundant spacing. Now that I'm free for basically the next month,
I'll be starting work on Stella again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3233 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-04 19:08:14 +00:00
stephena 4792b534d5 Fairly large commit, but basically it is only enabling the 'override'
C++11 keyword.  This makes developing/maintaining class hierarchies
more manageable.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3182 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-07-10 18:59:03 +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 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 3949101fb7 Some 'nullptr' updates to Cart classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3036 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-03 17:16:43 +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 5c75ff1c15 Finally added a large patch from SpiceWare which adds an extended
cart RAM tab to the debugger.  This is tailored to each respective
cart bankswitch type, allowing much more information to be shown than
you'd see in the normal RAM area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2921 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-13 16:28:28 +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
stephena 963c5d621b Changed 'dbg.boldfont' to dbg.fontstyle', which allows to use a combination
of bold and normal fonts within the debugger UI.  Because of the # of changes
this requires, this is as far as I'll willing to go with UI configurability.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2820 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-26 13:01:29 +00:00
stephena 777a6ceb8c Added DPC+ scheme to the debugger ROM tab. This may need to be
extended into yet another tab, since there's still the need to
show the display bank, frequency bank and DPC Harmony RAM.  Or
maybe there isn't a need to see this extra stuff??

Some more cleanups of the graphics/UI API.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2703 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-21 20:02:55 +00:00
stephena 831edca24e Finalized tab handling for dialogs containing multiple tabs
(for now, only the debugger, but might as well deal with the problem
in a general way once and for all).  The Shift-Left/Right keys now
work as they did before, and switch between tabs in a tabset.
For dialogs with multiple tabs, it now selects among those tabs
where the focused object is.  Clicking on another tabset then changes
the focus, and allows the same keys to switch among *that* tabset.

Now I can finally start the cart-specific bankswitch UI items.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2679 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-03-31 20:54:14 +00:00
stephena c4e5360a18 Updated copyright dates to 2013.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2579 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-04 19:49:01 +00:00
stephena b231dda2a9 Some more DPC+ updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2526 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-04 19:20:27 +00:00
stephena 3375cb9f98 Fix crash in CTY scheme when accessing a zero-byte/non-existent
flash file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2498 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-25 11:11:01 +00:00
stephena c95d5f804d Updated all files to copyright 2012. Happy New Year to anyone reading
these logs!

Moved TODO and Credits info directly to the webpage, where it will hopefully
be easier to maintain.

Fixed 'crackling' sound when loading a new ROM, introduced with the 3.5
sound restructuring.  It looks like stale data was being loaded by the
sound processing callback.  As well, moved the computation of certain
division variables from the sound callback to the framerate re-calculator
(where it's recomputed 1/5 of the time or less).

Updated AboutDialog with info about Stella DonationWare status, and active
members of Stella development.

Updated OSX in-app HTML documentation about Stella DonationWare status.

Bumped version # to 3.5.1_svn, and the process starts again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2318 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-31 21:56:36 +00:00
stephena 4e6d4cb1c6 Cleaned up some inlines that weren't needed.
Updated documentation with info about 2600-daptor, including
usage and its creator.  Also included more in-depth explanation
for the various controller types.

Errors from the Thumb ARM emulation code are now caught as exceptions,
and thrown to the parent class instead of calling exit() and simply
crashing Stella.  For now, the messages are simply printed and
emulation continues.  This will be expanded to show a detailed crash
log in the debugger, and offer the option to exit the ROM.

Removed most of the menus from the OSX port.  They weren't being
maintained anyway, and most of them didn't work.  I've modelled this
on the way other cross-platform OSX programs work (notably, ScummVM).
Basically, there are menus for exit and help, but otherwise you
should use the menuing system in the application itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2231 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-10 15:04:19 +00:00
stephena 72185d0848 Cleaned up formatting in Thumb ARM emulation code.
Wrapped THUMB ARM emulation in a define, so that it can be excluded
from builds.  To enable it, the 'THUMB_SUPPORT' directive must be
included in the build process.  This has been added to the OSX
project files, but is still TODO for Linux and Windows.

Removed some obsolete include paths from the OSX project files,
dating back about 5 years or so.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2215 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-16 16:53:41 +00:00
stephena 935fd4df3f Added initial implementation of ARM emulation to the DPC+ bankswitching
scheme.  However, it doesn't seem to be working yet ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2204 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-16 21:23:03 +00:00
stephena fcb12065ce Applied some updates to the DPC+ scheme, provided by Batari.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2202 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-08 16:02:00 +00:00
stephena 3339dc276d Updated copyright info for 2011. Happy New Year to anybody reading
these logs :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2199 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-01 16:04:32 +00:00