Commit Graph

48 Commits

Author SHA1 Message Date
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 0c0f732e5f More conversions of C-style to std::array.
That's it for a little while; getting tired now ...
2019-12-27 19:22:09 -03:30
thrust26 b1b9e493f4 removed ARM RAM dump code again, redundant 2019-12-21 15:17:32 +01:00
thrust26 c65b9c6709 fix MessageBox height calculation
add first 0.5K RAM to ARM fatal error message
2019-12-21 11:59:07 +01:00
Christian Speckner 81eeec5fae Adapt access checks to modified BSS section. 2019-03-19 21:08:35 +01:00
Stephen Anthony 12d8ed570d Fix minor warning in VS. 2019-03-16 16:24:24 -02:30
Stephen Anthony e61caf069b Fix warnings under gcc and clang, both in normal compilation and R77 mode. 2019-03-09 19:40:45 -03:30
Stephen Anthony abc3b3a32b Fix warnings generated by clang 8.
- Several more still exist, and are mostly related to C-style code
- It has long been my intent to remove as much C-style code as possible
2019-03-02 12:06:08 -03:30
thrust26 bb3075947b segfault Stella protection added
some more small optimizations (fetch32 removed)
2019-02-24 09:23:57 +01:00
thrust26 b32d3eba49 oops 2019-02-23 16:09:39 +01:00
thrust26 486494eb7a defined UNSAFE_OPTIMIZATIONS in Thumbulator 2019-02-23 16:09:00 +01:00
thrust26 e245655747 Revert "optimized Thumbulator.cxx"
This reverts commit 9a09675e55.
2019-02-22 20:11:19 +01:00
thrust26 9a09675e55 optimized Thumbulator.cxx 2019-02-21 22:56:18 +01:00
Christian Speckner e80e15538b Thumbulator optimizations.
Pre-decode ROM image and turn instruction dispatch into a switch.
2019-02-20 00:32:48 +01:00
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
Stephen Anthony cbd30fad02 Fix final clang warnings in Thumbulator.
It ended up being much easier than I realized.
2018-09-22 22:58:57 -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
Christian Speckner 6500ab0613 Compile thumbulator unconditionally. 2017-12-10 00:22:18 +01:00
Christian Speckner 2b5416eade Don't trap write accesses to datastream pointers & friends in CDF / BUS. 2017-12-05 20:29:22 +01:00
Stephen Anthony 5b6fabcf3c Header file fixes for remaining files in 'emucore'. 2017-11-20 15:27:05 -03:30
Stephen Anthony 10bdcd58d2 Third pass at fixing warnings:
- added very stringent checks when compiling under clang; for now, there will still be warnings,
  since I haven't addressed the specific code yet (probably issues in OSX too)
- no issues when compiling with gcc; still need to check VS.
2017-10-11 21:49:31 -02:30
Stephen Anthony 7a9cde3e4d CDF updates (with versioning) from Spiceware. 2017-08-14 09:11:54 -02:30
Stephen Anthony 95c7b30a45 Some updates to the last BUS/CDF commit:
- update some code to the '5.0' way of doing things
  - allow compilation in Linux
  - whitespace/tab fixes to match main codebase
  - add some extra comments
  - test compile under gcc 6 and clang 5, and fix some warnings
2017-03-24 18:02:08 -02:30
Darrell Spice, Jr 6227186feb Preliminary support for BUS and CDF
Preliminary support for new Harmony/Melody drivers BUS and CDF.  Work remains for the 3-Voice Audio, Digital Sample playback, and some additional revisions to the debugger widgets.
2017-03-23 21:25:33 -05:00
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 983c6361f2 Updated thumbulator code from latest in repo.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3290 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-27 19:58:20 +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 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 c5819cae46 In my never-ending attempt to eliminate pointers whereever possible,
change all throws of 'const char*' to runtime_error.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3168 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-12 20:44:09 +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 27e005d7a5 Final batch of fixes from cppcheck.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3024 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-27 14:41:46 +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 0929adc20d Some dead code cleanup, detected by clang++.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2725 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-07 18:53:21 +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 f003bd31bd Changed disassemble and debug checks from run-time to compile-time
for Thumb ARM emulation.  On my (quite fast) system, this results in 4%
less CPU usage, so it should be much better on slower systems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2576 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-12-26 21:16:34 +00:00
stephena 2145c38087 Fixed bugs in DPC+ scheme; reset wasn't actually resetting the
Harmony RAM, and state saving wasn't working at all.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2523 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-03 18:05:14 +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 bb63ea3dd1 Reverted TIA changes that affect late NUSIZx changes. More work is needed
in this area.

Added commandline argument 'thumb.trapfatal', which causes fatal errors in
the Thumb ARM emulation to really be treated as fatal (ie, the emulation stops
and throws an exception).  This is enabled by default (as it always should be).
When disabled, fatal errors simply log the error and continue with emulation.
This was added because the current HarmonyCart ARM code isn't always exactly
compatible with the emulation in Stella, and there is a lagtime from when
Harmony implements something to when the same functionality is added to Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2279 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-07 22:50:23 +00:00
stephena 1d5ea6a9eb Updated DPC+ code to latest changes from Spiceware for the Frantic ROM.
Specifically, the 3-voice audio routines read from ROM instead of RAM, and
the setting the ARM MAM register no longer causes the ARM emulation to crash.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2278 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-05 22:31:40 +00:00
stephena f549cf9661 Removed some 'throw(...)' declarations, which are deprecated in the latest version
of the C++ standard.

Fixed bug when using snprintf; we must use BSPF_snprintf, since the function
has different names in different OS's.

Optimized loading of PNG images in the RomInfoWidget so that memory allocations
aren't continuously being done.  Basically, memory is allocated once and then
only re-allocated if a new image is larger than all previous ones.  This can
increase memory use slightly, as the image data stays around between image loads,
and it remembers the largest image loaded.  But if you images are all mostly the
same size, it should hurt memory usage too much.  And it really helps on certain
systems where repeated (re)-allocations can cause problems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-03 21:52:33 +00:00
stephena 5025a21d92 Updated Thumb ARM emulation to log its output instead of printing to the
console (which doesn't exist on every platform).  Also use proper C++
stringstreams instead of C-style arrays (which are evil).  If an exception
is thrown, start the debugger with a fatal error message.  Currently, this
message is simply printed in the debugger info window.  Still TODO is add
a dialog to show the entire input from within the UI, as well as a way
to exit the ROM when a fatal error occurs.

Cleaned up the API a little, adding explicit declarations for when a method
can throw an exception.  Also merged some empty classes directly into their
header files.

Added functionality to the System class for querying whether it has 
been reset while in 'autodetect' mode.  Autodect mode is defined as
when Stella starts and temporarily runs to autoconfigure itself.
Some classes (such as Thumb ARM emulation) need to know this, and
suppress debugging output/throwing exceptions when not running in
normal emulation mode.

I hope to have a new release done by the end of this week, or the end
of the month at the latest.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2232 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-24 16:04:48 +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