Commit Graph

2092 Commits

Author SHA1 Message Date
Stephen Anthony 628f981121 Various cleanups to documentation and snapshots:
- Changelog updated for recent fixed from Thomas J.
- Minor formatting fixes in TIASurface class
- Updated documentation for 'ss1x' mode; snapshots now have only scaling disabled, not effects removed
- Updated snapshots for change in ss1x, and also ran them all through pngcrush, to optimize size
2017-09-18 19:50:37 -02:30
thrust26 5fe51112dd fixed #214, now "usemouse.always" is checked too 2017-09-18 20:48:49 +02:00
thrust26 2a21b497fe fixed #178 by replacing myUserCLabels with myUserLabels 2017-09-18 20:27:16 +02:00
thrust26 ed47816303 fixed issue #201 with new reRender method
in phosphor modes buffers are simply copied form phosphor buffer, else the screen is rendered again
2017-09-18 15:49:30 +02:00
thrust26 11367e6a17 1x snapshots now support all 4 phosphor/Blargg combinations 2017-09-18 09:27:51 +02:00
thrust26 8aad8afda7 fixed 1x snapshot problem when phosphor was disabled 2017-09-17 23:58:52 +02:00
thrust26 b3eaaac5ed enable phosphor and TV effects for 1x snapshots 2017-09-17 23:38:59 +02:00
Stephen Anthony f442fae890 Fixed graphical corrution when saving snapshots in 1x mode
- Phosphor is now also disabled in this mode
2017-09-17 16:46:56 -02:30
Stephen Anthony 1d01b39f87 Minor cleanup of formatting and compile warnings. 2017-09-17 16:15:17 -02:30
thrust26 5b0965ad6c Fixed the fix. 2017-09-17 17:28:03 +02:00
thrust26 f0ced8ae4c Fixed 1x snapshot bug with phosphor #222 2017-09-17 17:20:48 +02:00
Christian Speckner c682dd1c27 Microoptimization: avoid function dispatch overhead. 2017-09-17 14:12:37 +02:00
thrust26 7d72265088 added TIA access tracking
improved ZP-RAM/Stack tracking
2017-09-17 10:35:45 +02:00
Christian Speckner 8485b0820f Collisions are disabled during vblank. 2017-09-17 01:35:01 +02:00
thrust26 cfa40722b9 updated poke(), now CPU emulation provides the flags
improved ZP/stack access tracking and output
added ZP code tracking
2017-09-16 22:37:19 +02:00
thrust26 3bf809a137 refined access tracking for ZP, Stack and IO addresses
improved RIOT RAM output in Distella
2017-09-16 17:38:37 +02:00
Stephen Anthony 03c1ab17fd Added access tracking to M6532 for ZP and IO addresses. 2017-09-16 10:37:42 -02:30
thrust26 7f65fad7cf preliminary implementation for ZP-RAM access tracking
extra access type flag for poke()
2017-09-16 13:48:04 +02:00
thrust26 10e6d483b1 added access tracking via poke()
code cleanup in DiStella and CartDebug
2017-09-16 08:54:32 +02:00
Stephen Anthony 7b63dc6f22 Cleanups to System class (call methods, remove debugging code). 2017-09-15 23:42:20 -02:30
Stephen Anthony 1d99a1e5fa Refactored various page accessing functionality:
- Removed System::PAGE_SHIFT from all classes (except where it's needed inside System); it is an implementation detail of that class that shouldn't be used outside the class, and was making the various calls to setPageAccess very messy
- Changed uInt32 to uInt16, and loop variable to 'addr' for all calls to setPageAccess; this is for consistency, and allows the reader to see how all the code is similar in different classes
- Updated comments in various places (mostly TIA and RIOT) to more clearly show how page accessing works.
2017-09-15 23:28:20 -02:30
Stephen Anthony ca69e2ed73 Refactor code and comments for TIA and RIOT 'page access' stuff. 2017-09-15 21:22:10 -02:30
thrust26 5f68b0565d 2nd part of Distella updates 2017-09-15 14:56:54 +02:00
thrust26 833d0c3b0e test 2017-09-13 22:43:49 +02:00
thrust26 7af7dd3bb6 test test test 2017-09-13 22:30:17 +02:00
thrust26 9c550d4933 test test test 2017-09-13 22:28:58 +02:00
thrust26 a798dedabf test 2 2017-09-13 22:16:46 +02:00
thrust26 76771c2c43 Merge branch 'master' of https://github.com/stella-emu/stella 2017-09-13 22:16:07 +02:00
thrust26 a515ab67f0 test 1 2017-09-13 22:15:46 +02:00
Christian Speckner c26372da4c Dot. 2017-09-13 20:37:54 +02:00
thrust26 95b04b2baa 1st part of Distella improvements 2017-09-13 16:04:54 +02:00
Stephen Anthony 648ed74527 Oops, missed one variable in the 64-bit clock conversion. 2017-09-12 11:04:59 -02:30
Stephen Anthony 86f65e8e87 Show message indicating what is being done when rewinding state (ie, '1 step', '10 frames', etc). 2017-09-11 15:58:41 -02:30
Stephen Anthony 483013baa7 Make PaddleReader constants private, to guard against same variable names used elsewhere. 2017-09-09 17:28:21 -02:30
Sergio Prado 391601d238 Fix error when building with uClibc-ng for ARM
The uClibc-ng C library defines a type called R0 when compiling for ARM,
that conflits with a global variable called R0 from PaddleReader.cxx.

src/emucore/tia/PaddleReader.cxx:25:3: error: ‘constexpr const double R0’ redeclared as different kind of symbol
   R0 = 1.5e3,
   ^
/home/sprado/workspace/build/buildroot/build/stella_uclibc/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/ucontext.h:42:3: note: previous declaration ‘<anonymous enum> R0’
   R0 = 0,
   ^~

So let's redefine R0 as a private member of the PaddleReader class.

Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
2017-09-09 17:25:29 -02:30
Stephen Anthony 2dc355b0d5 Debugger 'saverom' and 'saveses' now save to the default save directory.
The 'saveses' command now creates a filename based on the date and time when the command was entered.
2017-09-09 17:20:22 -02:30
Stephen Anthony b54b4eb4f6 Fixed documentation on some debugger 'save' commands; they don't take
any parameter, and choose the name (and locations) themselves.
This needs to be fixed, and will happen when I get to issue #172
(add save file dialogs).
2017-09-09 15:50:27 -02:30
Stephen Anthony b814296a9e Fixed bug in Windows, where 'Documents\Stella' wasn't being created. 2017-09-09 15:40:07 -02: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 9190943534 Added debugging output for FSNode. 2017-09-09 14:02:36 -02:30
Stephen Anthony 73282db9fd Fixed bug in FSNodeWindows::getParent() not always working correctly. 2017-09-09 13:57:42 -02:30
Stephen Anthony 02bae6346a Updated PNG library to latest version. 2017-09-08 23:55:02 -02:30
Stephen Anthony a018dc604a Extend debugger 'dump' command to take second parameter (for end of data range). 2017-09-08 22:23:45 -02:30
Stephen Anthony 823c693a9e Final updates for recent 64-bit cycles refactoring. 2017-09-08 18:52:03 -02:30
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 b6907d0d8a Added '_fcycles' debugger pseudo-op (gives cycles since frame started). 2017-09-08 17:59:33 -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 0aa55b310d Updated OSX project file for recent refactoring. 2017-09-04 14:37:13 -02:30
Stephen Anthony 59d58f8cdf Updated Visual Studio project file for recent refactoring. 2017-09-03 23:31:59 -02:30
Stephen Anthony eafe102daa Refactor StateManager and RewindManager for eventual use outside debugger. 2017-09-03 23:02:15 -02:30
Christian Speckner 5ca9b7912b Fix a very minor timing glitch in paddle emulation. 2017-09-02 00:53:08 +02:00
Christian Speckner 2757c906cb More TIA documentation. 2017-09-02 00:46:54 +02:00
Stephen Anthony c2302c2e71 Cart::getImage refactoring: use uInt32, since sizes are never negative. 2017-09-01 10:23:17 -02:30
Stephen Anthony e858ddf167 Removed reference to class for 'MC' scheme in Windows and OSX builds. 2017-08-31 22:07:40 -02:30
Stephen Anthony 754c901b5a Fix minor typos, but also a compile error (missing closing comments). 2017-08-31 22:03:41 -02:30
Christian Speckner cd390bcc5a TIA documentation. 2017-09-01 00:48:28 +02:00
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 6cf4aa4832 Further refactoring of bankswitching schemes, and removal of 'MC' scheme.
- MC is being removed, since the code has never been tested, and a test ROM has never been created
2017-08-31 15:31:27 -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 68f80f04d9 Peek/poke refactoring for next batch of bankswitch schemes. 2017-08-30 20:44:18 -02:30
Stephen Anthony a5d9550f2f First pass at cleanup of the peek/poke API from Device class:
- remove peek and poke from classes where the addressing is set up such that they aren't needed
- where possible, move from using 'myCurrentBank << 12' everywhere, to precomputing the value (perhaps a small optimization, but still valid)
2017-08-30 19:45:57 -02:30
Stephen Anthony 8cf8200908 Fixed logic error in detecting 'Alt' key.
DirtyHairy, it looks like you removed a negation and replaced it with
a positive (ie, you removed an _ifndef_, not an _ifdef_) :)
2017-08-30 19:41:16 -02:30
Christian Speckner fd85f9d0d5 Basic support for plain UNIX-style builds on OSX. 2017-08-30 23:13:07 +02:00
Stephen Anthony 2930e74333 Updated FE debugger support to allow changing banks dynamically. 2017-08-30 17:22:56 -02:30
Stephen Anthony 1358be402f Update explanation of FE scheme, and minor code optimization. 2017-08-30 16:53:00 -02:30
Stephen Anthony d37b89e2fd Oops, for Alex I used his github username, not the AtariAge one. 2017-08-30 12:00:26 -02:30
Stephen Anthony ae8304563d Updated credits for recent 'FE' research. 2017-08-30 11:52:02 -02:30
Stephen Anthony 92cd739001 Added 'Zippy the Porcupine' info to ROM properties database. 2017-08-30 11:09:06 -02:30
Stephen Anthony 3a02c54b0a Updated FE scheme to that described by the original FE patent application.
- This emulation is much simpler, and takes the scheme from being
esoteric to being a simple hotspot-based scheme
- The original patent application for the FE scheme describes in perfect
detail what is happening, and although the previous code worked, it
was complex and actually hid what was really happening.

Now that the scheme is hotspot-based, the debugger can be extended to
work better with it.  That part comes next.
2017-08-29 22:03:11 -02:30
Stephen Anthony 792421e67d Updated ROM properties database (Champ Games, mostly). 2017-08-23 22:12:40 -02:30
Stephen Anthony 52c16d604b Update TIA shadow registers for HMCLR (and code cleanup). Fixes #211. 2017-08-22 16:38:52 -02:30
Stephen Anthony 21bf401836 Commandline arguments 'holdxxx' now work correctly (fixes #209). 2017-08-22 14:15:30 -02:30
Christian Speckner 5661b245c7 Fix object positions in debugger (getting + setting), documentation. 2017-08-22 15:16:13 +02:00
Stephen Anthony 11d659e5cc Bumped version number. 2017-08-20 21:32:09 -02:30
Christian Speckner 8367ef9828 Documentation typo. 2017-08-20 23:57:11 +02:00
Christian Speckner 25bf4f55d6 Prevent ystart detection code from oscillating between 'fixed' and 'floating'. Documentation. 2017-08-20 23:54:04 +02:00
Christian Speckner 168c7ba201 Fix genesis controller initial state. 2017-08-20 23:39:30 +02:00
Stephen Anthony ab99610950 Bumped version number for 5.0.2 release. 2017-08-20 15:01:39 -02:30
Stephen Anthony f280e31671 Printing of traps in debugger takes into account TIA read/write address. 2017-08-19 20:59:06 -02:30
Stephen Anthony b608c5bf88 Updates for 5.0.2 release. 2017-08-19 20:34:00 -02:30
Stephen Anthony 6e55d98ad7 Fixed inconsistent Alt-p phosphor behaviour (fixes #196). 2017-08-19 19:48:41 -02:30
Stephen Anthony a9dd2b32cb Debugger 'listtraps' now shows all traps (fixes #190). 2017-08-18 18:47:35 -02:30
Stephen Anthony 48a99c6b6b Make Random class serializable, and save to state files. 2017-08-18 12:36:54 -02:30
Stephen Anthony c1f7c5c90b Fix potential app lockups when emulated CPU execution fails in the debugger. 2017-08-16 19:00:32 -02:30
Stephen Anthony 6f60437a9c Improve Blargg filters with cutoff on right side of screen (fixes #195). 2017-08-15 17:49:59 -02:30
Stephen Anthony 24e55baa2c Expose 'threads' option through the Video Settings -> General UI. 2017-08-15 10:58:19 -02:30
Stephen Anthony 4f336eddeb Added 'threads' commandline argument, to enable/disable multi-threading.
- Still TODO is expose this in the UI, but the infrastructure is there
- For now, this defaults to off
2017-08-14 21:29:48 -02:30
Stephen Anthony f011006af1 Removed unused variable. 2017-08-14 17:51:02 -02:30
Stephen Anthony a29d1da57b Threaded Blargg + phosphor improvements:
- Handle case of only 1 or zero (!) reported cores
 - Fix memory leak by using smart pointers
2017-08-14 11:57:19 -02:30
Christian Speckner 6d1a306b52 Blargg and phosphor threading by Thomas Jentzsch. 2017-08-14 09:20:42 -02:30
Stephen Anthony 7a9cde3e4d CDF updates (with versioning) from Spiceware. 2017-08-14 09:11:54 -02:30
Stephen Anthony f57d69a023 Fixed reading collision of ball and playfield (fixes #189). 2017-08-13 14:43:31 -02:30
Stephen Anthony 193da6c845 Fix DiStella trying to process the same PC address repeatedly (fixes #188). 2017-08-13 13:43:48 -02:30
Stephen Anthony 55111c4ccb Fixed minor warning for potential uninitialized variable. 2017-08-09 22:38:39 -02:30
Stephen Anthony 1e7e4cbe20 More TIA rendering optimizations. 2017-08-08 12:11:45 -02:30
Stephen Anthony 8759f340e8 Oops, premature optimization; it broke changing phosphor blend level. 2017-08-07 18:56:13 -02:30
Stephen Anthony 1dc78a9b5b Pre-calculate phosphor colours, and remove redundant shift parameter.
This leads to nice speedups in the TIASurface::render() method.
2017-08-07 18:39:30 -02:30
Stephen Anthony 322af0fb38 Fixed code where emplace_back was being used incorrectly. 2017-08-06 13:57:09 -02:30
Stephen Anthony e2b78b6df7 Remove redundant checks for 'ramrandom'; the code is checking a boolean,
then calling a method and checking the boolean again.
2017-08-06 13:30:45 -02:30
Stephen Anthony 18568cfbeb TIA performance improvements by Thomas Jentzsch. 2017-08-06 12:39:53 -02:30
Stephen Anthony 4a447290af Reverted Decathlon and allow all 4 directions being the default. 2017-08-06 12:05:31 -02:30
Stephen Anthony 8ce4d3468e Updated OSX project file for recent refactoring.
Fixed minor compile warning.
2017-08-05 13:34:56 -02:30
Stephen Anthony 025a1a7918 Minor refactoring, slight speedup of passing data in sound code. 2017-08-02 19:21:36 -02:30
Stephen Anthony b23830487d Minor refactoring; remove const reference where not needed. 2017-08-02 17:53:07 -02:30
Stephen Anthony f928277430 Updated Visual Studio project for recent refactoring.
Fixes a few minor warnings.
2017-08-02 16:16:05 -02:30
Stephen Anthony d22ed691b5 Updated PointingDevice (trakball and friends)
- changed from templates back to inheritance (sorry DirtyHairy :))
 - added 'tsense' commandline argument and associated UI
 - updated docs and screenshots for new functionality
2017-08-02 16:07:02 -02:30
Stephen Anthony ace146fe52 Introduce another version of BSPF::clamp. 2017-08-02 15:26:48 -02:30
Stephen Anthony 87282e6707 Further improvements to trakball handling by Thomas Jentzsch. 2017-08-01 11:15:41 -02:30
Stephen Anthony 6e4503f762 Further improvements to the trakball and friends cursor movement. 2017-07-30 20:19:00 -02:30
Stephen Anthony 5a5c520443 Updated Visual Studio project file to be compatible for everyone.
Basically, removed all paths that were specific to me (stephen)
and used relative paths instead.

The development webpage will need to be updated to match this.
2017-07-30 15:09:00 -02:30
Stephen Anthony 04ce40b27c Make sure trakball is read over entire vertical range. 2017-07-30 13:14:16 -02:30
Stephen Anthony eaf19d2b90 Forgot to include a file in the Windows project file. 2017-07-30 12:10:52 -02:30
Stephen Anthony 7652be906d Updated OSX project file for Controller refactoring.
- Minor refactoring in PointingDevice class
2017-07-30 12:02:48 -02:30
Stephen Anthony 91c5020a38 Updated Visual Studio project file for Controller refactoring.
- Some minor code refactoring/changes
 - Updated changelog and bumped version number.
2017-07-30 11:48:52 -02:30
Christian Speckner 218da3576c Refactor pointing devices, include Thomas' patch for movement inconsistencies. 2017-07-30 15:18:55 +02:00
Stephen Anthony aebe8fabc6 Revert Alt-Enter handling from previous commit; it only seems to work reliably for Alt-Tab. 2017-07-27 12:15:52 -02:30
Stephen Anthony 4af7ba28fb Fix for weird Alt-Tab behaviour in Linux.
- An extraneous TAB key event was being generated
  - This is possibly an SDL bug in Linux only; it doesn't happen on other systems
  - I've contacted the SDL mailing list for more info, so this code may be temporary
2017-07-26 21:18:08 -02:30
Christian Speckner 246b5e7596 Move frame manager to dedicated subdir, remove all external deps on it. 2017-07-27 00:33:39 +02:00
Stephen Anthony 00afc8ea4f Final updates for 5.0.1 release. 2017-07-23 12:33:16 -02:30
Stephen Anthony 9155a10250 Merge branch 'master' of https://github.com/stella-emu/stella 2017-07-21 23:30:26 -02:30
Stephen Anthony 7c2da9512d Updated OSX project file for C++14 changes. 2017-07-21 21:43:47 -02:30
Stephen Anthony 9bf95e9c88 Updated Visual Studio project file for C++14 changes. 2017-07-21 21:27:34 -02:30
Stephen Anthony cd689941b6 Move to C++14, now that all the minimum required compilers support it.
Clang 3.8, gcc 5, Visual Studio 2017 and Xcode 8 are now the minimum
supported compilers, and they all support C++14, so we may as well use it.

 - Change all make_ptr to make_unique
 - Change iterator begin(), end(), etc to const versions where appropriate
 - Remove UniquePtr, since C++14 supports it natively
2017-07-21 21:10:13 -02:30
Christian Speckner 0d5d3de420 Analog input refactoring and improvements
* Lazily update readout circuit simulation as soon as the pin
      changes
    * Always assume that "max resistance" means "connected to ground"
    * Minor accuracy improvements
2017-07-22 00:38:02 +02:00
Stephen Anthony 706755ad7f Fixed minor compile warning. 2017-07-20 18:58:19 -02:30
Stephen Anthony 2cc2fa6cc1 Make Decathlon ROMs always use all 4 directions on a joystick.
This is necessary, since the original controller was meant to be
track & field controller with two buttons, which map to left/right
on an Atari.
2017-07-20 11:15:57 -02:30
Stephen Anthony fe7c980d93 Minor refactoring in CompuMate class.
While having friends in real life is good, we should minimize them
in classes :)
2017-07-20 10:56:17 -02:30
Stephen Anthony 953761e1a1 Added 'Hunchy II' to ROM properties database. 2017-07-19 21:25:35 -02:30
Stephen Anthony 02b1f7e078 Make Random::next() const, since logically it should be.
The fact that it updates an internal variable is an implementation
detail that shouldn't be exposed outside the class.
2017-07-18 18:17:39 -02:30
Stephen Anthony 97f1220e11 Bumped version number for next release; we start again ... 2017-07-18 18:12:05 -02:30
Stephen Anthony 86734a4c1e Fixed formatting in changelog, and bumped version number. 2017-07-15 20:47:54 -02:30
Stephen Anthony 43c22af274 Fixed bug with missile colouring in debugger not changing colour
until after an instruction was executed.  Also, toggle-able widgets
(pixel and bits) in the debugger can now be toggled with a single
mouse click, not a double-click.  These fix issue #15.
2017-07-15 17:36:06 -02:30
Stephen Anthony 199627f0cb Updated Xcode project file for ColorWidget move. 2017-07-15 11:59:31 -02:30
Stephen Anthony 9f8baadb29 Some cosmetic UI changes and updated screenshots/docs. 2017-07-15 11:48:15 -02:30
Stephen Anthony d74bbba4f9 Updated documentation and screenshots. 2017-07-14 22:39:49 -02:30
Stephen Anthony bd759b68cb Added ability to force-enable TV phosphor mode.
This is enabled in the UI or through the 'tv.phosphor' commandline
argument.  Note that what was previously 'tv.phosphor' (for setting
the blend level) is now 'tv.phosblend'.

Updated documentation in various places.
2017-07-14 21:28:26 -02:30
Stephen Anthony adddc635f2 Pressing F12 in the debugger saves snapshots (implements #161). 2017-07-14 20:24:29 -02:30
Stephen Anthony c364526ff6 Made 'tv.jitter' effect enabled by default. 2017-07-14 09:27:04 -02:30
Stephen Anthony e99cbd8956 Made ColorWidget honour disabled colors. 2017-07-14 09:24:38 -02:30
Stephen Anthony 7904f3e900 Updated Visual Studio project file for ColorWidget move.
Fixed crash when attempting to enter "Video Settings" from the
ROM launcher; in that case, 'Debug Colors' must be disabled, since
the widgets only take effect in emulation mode.
2017-07-13 21:45:57 -02:30
Stephen Anthony 66e5a07f20 Make 'fastscbios' option default to true.
This was mentioned in some thread; I forget where, but the consensus
is that this should be the default.
2017-07-13 20:53:20 -02:30
Stephen Anthony fbb73b72f1 Erase old contents of RGB buffer when toggling phosphor and Blargg
effects (fixes #175).

Right idea, but I always forget that memset operates on bytes,
but the RGB buffer contains uInt32 (so multiply by 4).
2017-07-13 19:27:21 -02:30
Stephen Anthony 626ff450d9 Added ability to change debug colors from "Video Settings".
Moved ColorWidget from src/debugger/gui to src/gui, since it needs to be
compiled even when the debugger is disabled.

Minor code refactoring.
2017-07-13 18:40:42 -02:30
Stephen Anthony d9f52599dc Marked BUS scheme as experimental per authors request. 2017-07-12 18:07:40 -02:30
Stephen Anthony 87c1d12d1d Fixed dynamic setting of phosphor blend to not wraparound when reaching 0. 2017-07-12 16:16:41 -02:30
Stephen Anthony 0d1481cb9d Revert behaviour of TIA read from write-only addresses to match
Stella 4.x (fixes #173).
2017-07-11 17:18:56 -02:30
Stephen Anthony e9acf1f1e8 Updated various docs for impending 5.0 release.
Finalized state file format at 5.0.0.0.
2017-07-09 22:56:16 -02:30
Stephen Anthony d613173cd7 The default phosphor blend level can now be set globally (fixes #144).
Added new 'tv.phosphor' commandline argument to accomplish the above,
and associated UI item in Video Settings.

Updated docs for 'tv.phosphor' and 'tia.debugcolors'.  More work is
needed on this, since I need to add screenshots for this new functionality.
2017-07-09 22:40:06 -02:30
Stephen Anthony 7f6637a802 Updated ZLIB and PNG libraries to latest released versions. 2017-07-09 16:49:17 -02:30
Stephen Anthony fadf9d5535 Updated ROM properties to RomHunter version 13. 2017-07-09 15:48:10 -02:30
Stephen Anthony 10c53bce89 Make 'listtraps' less verbose (fixes #157). 2017-07-06 21:05:52 -02:30
Stephen Anthony f177aed814 Fix debugger trap documentation (fixes #156 from #164) 2017-07-06 19:45:12 -02:30
Stephen Anthony e1bc5c92e4 Trakball documentation fixes and other minor updates (from issue #164). 2017-07-06 19:30:11 -02:30
Christian Speckner 2111340785 Fix compile with gcc 5.4.0. 2017-07-06 00:00:05 +02:00
Stephen Anthony 6d4a98d735 Updated version for next pre-release. 2017-07-05 18:04:27 -02:30
Stephen Anthony 970804b9f3 Optimization: modify RGB pixel data locally instead of calling functions.
This is allowed, since after analyzing the code, we see the pixel format
will always be ARGB8888 mode, so we can hard-code the logic to do the
conversion.

This leads to a measurable performance improvement, since we eliminate
3 function calls per RGB colour lookup.  And the calls themselves involved
IF statements and various other shifts that weren't needed.  Assuming
normal phosphor mode with 160x210 pixels, this saves 100,800 function calls
per frame!
2017-07-05 14:48:43 -02:30
Stephen Anthony ea59fdd3f2 Code cleanups, commenting fixes, etc for Blargg-related code. 2017-07-05 14:11:41 -02:30
Stephen Anthony 6da07d8dc7 Optimization: eliminate redundant access through a struct. 2017-07-05 13:06:44 -02:30
Stephen Anthony 09af9d09a5 Finally fixed issue #75 (phosphor mode now works with Blargg). 2017-07-05 12:48:39 -02:30
Stephen Anthony d88969adcb Store and lookup system labels (aka, equates) in case-insensitive manner.
This fixes a bug in the debugger parser, where typing (for example)
'trap swchb' doesn't work but 'trap SWCHB' does.
2017-07-04 19:50:32 -02:30
Stephen Anthony 087fccd29f Updated OSX project file for recent class additions.
Eliminated some dead code.
2017-07-03 19:16:14 -02:30
Stephen Anthony 588cd82be9 Updated Visual Studio project file for recent class additions. 2017-07-02 21:08:12 -02:30
Stephen Anthony 7b57d52260 My neverending quest to protect against raw pointers.
Changed many 'const char* ...' to 'const char* const ...'.
2017-07-02 20:46:27 -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 2e776b05b8 Introduced 'tia.dbgcolors' commandline argument, which allows to set
the fixed debug colors to user-defined preferences.  Note that there
are 6 registers (P0,M0,P1,M1,PF,BL), and the option takes a string
of 6 characters, where each represents a colour for the respective
positional register (ROYGBP are the choices).

I may add a UI item for this, but this is as far as I will go with
allowing user editing.
2017-07-01 19:54:02 -02:30
Stephen Anthony bd78683274 Rearranged some Blargg code, added comments, general cleanups.
For now, Blargg phosphor mode simply shows the same image as without phosphor.
This is a WIP, and if we can't get it finished for 5.0, it will be released as-is.

Phosphor blend now defaults to 0 in the base properties, and is converted to
50 before being passed to higher levels.  This needs to change when we
get to issue #144.
2017-06-30 14:10:14 -02:30
Christian Speckner fa76042790 Make sure that pending RDY is handled after stepping the CPU. Closes #155. 2017-06-24 00:35:17 +02:00
Christian Speckner 4515e79b4e Jitter only of frame height has changed for three or more consecutive frames. 2017-06-24 00:09:34 +02:00
Christian Speckner 628133d2dd Don't jitter if frame height differes by less than 3 lines. 2017-06-23 01:01:36 +02:00
Christian Speckner b30ca12731 Fix TIA info in debugger after RSYNC. 2017-06-22 01:08:22 +02:00
Christian Speckner ccafbf2bbd Tie state transitions directly to hctr in order to avoid edge cases during RSYNC. 2017-06-22 01:08:22 +02:00
Stephen Anthony 881dc86ab7 Oops, we need to handle the case where the controller is undefined. 2017-06-18 21:59:04 -02:30
Stephen Anthony 0bc8a928f0 Minor optimization in creating controller device in Console. 2017-06-18 21:52:59 -02:30
Stephen Anthony 21195c20cb Updated OSX project file for recent Blargg changes. 2017-06-17 20:51:32 -02:30
Stephen Anthony 705d42edd8 Updated Visual Studio project file for Blargg code changes. 2017-06-17 20:40:11 -02:30
Stephen Anthony 0f2df7e87b Fairly large reorganization of the Blargg NTSC TV effects code:
- converted many pointers to references
  - merged code from several files into one class
  - broke up some methods into more managable chunks

This will allow it to be easy to add the phosphor code during
NTSC TV emulation.
2017-06-17 20:08:36 -02:30
Christian Speckner 5da20a3a7a Savestate handling. 2017-06-15 17:16:06 +02:00
Christian Speckner bdded5e600 Wait for frame handling to stabilize before drawing. 2017-06-15 17:12:39 +02:00
Christian Speckner c2ce1943ca Fix loading and saving TIA state. 2017-06-15 16:13:07 +02:00
Christian Speckner cf55f5d413 Fix buggy blanking of line 0. 2017-06-14 12:37:57 +02:00
Stephen Anthony 861778f627 Fixed minor datatype difference in Blargg filtering. 2017-06-11 18:48:15 -02:30
Stephen Anthony 4a2e4b666c Started cleaning up Blargg code:
- Converted some stuff to C++
  - PAL colour-loss now works with Blargg enabled, but not yet for phosphor mode
2017-06-11 17:01:40 -02:30
Stephen Anthony a7b3ee4448 Debugger lst and sym files now follow ROM filename, not properties filename. 2017-06-11 13:02:47 -02:30
Stephen Anthony 44ead7b926 Updated std::map to use emplace instead of insert (optimization). 2017-06-09 14:50:11 -02:30
Stephen Anthony 3355183d03 Updated OSX build script for change from Deployment to Release. 2017-06-04 18:21:43 -02:30
C.W. Betts c9a3097946 Add some retina formats to Stella.icns. 2017-06-04 17:44:17 -02:30
C.W. Betts 04ad81ce67 Use more modern names for the build configurations: Debug and Release, and delete Default. 2017-06-04 17:34:21 -02:30
C.W. Betts 15a7d1e520 Add the Atari cartridge file type to the InfoPlist.strings file.
It is localizable.

Update the version number in InfoPlist.Strings.
2017-06-04 17:34:21 -02:30
C.W. Betts fbf642a130 Xcode project maintenance:
Fix the docs name.
Bring back InfoPlist.strings.
Have the Xcode groups point to the project's directory structure.
2017-06-04 17:34:21 -02:30
C.W. Betts 6c5ce1081a More Mac improvements:
Use UTF-8 for saving/getting preferences: It's more reliable.
Retain defaults in the Preferences Objective-C class.
Fill out the types for the IBOutlet
2017-06-04 17:11:38 -02:30
C.W. Betts 9dce4c9db1 Fix possible issue resulting from being launched from Finder in 10.9 and later OSes.
Taken from SDL 1.2.
2017-06-04 13:33:52 -02:30
C.W. Betts b489a61e03 Fix over-release.
Add autorelease around the Preferences methods.
2017-06-04 13:27:30 -02:30
Christian Speckner 1ecb8852de Use console timing instead of frame layout in order to determine clock in paddle reader. 2017-05-31 00:01:11 +02:00
Stephen Anthony 6f16ee9c0b Bumped version # for another pre-release. 2017-05-29 16:30:42 -02:30
Stephen Anthony bc1fc44f75 Make Video dialog defaults match those in Settings class. 2017-05-29 11:17:23 -02:30
Stephen Anthony 5dbd9fee51 Some changes to phosphor blending:
- Updated default phosphor blend to '30'.
 - Added shortcut keys Alt-i and Alt-o to decrease/increase phosphor
blend mode dynamically, while a ROM is running.
 - Made range of blending 0 - 100.
2017-05-29 10:49:50 -02:30
Stephen Anthony 47aa5d4e5f Bumped version # for another pre-release. 2017-05-28 19:56:48 -02:30
Stephen Anthony ef9816014d Set default phosphor blend to 60; looks the most realistic on my test systems. 2017-05-28 19:53:48 -02:30
Stephen Anthony c8abbf50fb Fixed minor compile warnings in Visual Studio. 2017-05-28 18:51:46 -02:30
Stephen Anthony f8ea61875c Implemented new phosphor mode by Thomas Jentzsch.
- Phosphor mode with Blargg effects is currently broken.
2017-05-28 16:15:39 -02:30
Stephen Anthony e419bbbcab Sample playback update for BUS & CDF. 2017-05-28 14:40:51 -02:30
Stephen Anthony 79d8ed0010 Fixed TIA image in debugger being two frames behind. 2017-05-28 13:55:23 -02:30
Stephen Anthony 25e96c3164 Added previous scanline count to TIA info area of debugger. 2017-05-27 15:38:45 -02:30
Stephen Anthony 3ad77117ec Ignore annoying warning in Visual Studio that I know is actually valid code. 2017-05-27 14:23:47 -02:30
Stephen Anthony ea7a20a5a0 Merge branch 'master' of https://github.com/stella-emu/stella 2017-05-27 14:10:35 -02:30
Stephen Anthony cdd336857e Added 'fallthrough' directive in cases where we fall through a case statement. 2017-05-27 14:10:05 -02:30
Christian Speckner 8d46679286 Implement proper RDY emulation --- fixes #42. 2017-05-27 01:00:03 +02:00
Philip James 048da2f6dd Fixed compile when --disable-sound is passed to configure 2017-05-18 09:13:10 -02:30
Philip James 6ff2095a9f Fixed compile when --disable-cheats is passed to configure 2017-05-18 09:12:25 -02:30
Christian Speckner b2c8c3ff81 DelayQueue tuning:
* Remove stringstream from DelayQueueMember::name
    * Use a bit mask instead of modulo in DelayQueue
2017-05-16 01:26:07 +02:00
Stephen Anthony 4c555a83ed Updated OSX project file for recent DelayQueue changes. 2017-05-15 15:41:22 -02:30
Philip James f9368c681a Cleaned up a few places that still used SDL types and replaced them with BSPF types 2017-05-15 07:55:25 -02:30
Stephen Anthony 074f4ec2e0 Updated VS build for recent DelayQueue changes. 2017-05-14 22:48:13 -02:30
Stephen Anthony 336dbb0de4 PAL colour-loss is disabled by default. 2017-05-14 22:38:18 -02:30
Christian Speckner 744571b1da Optimization: rewrite DelayQueue w/o STL vectors. 2017-05-15 00:43:18 +02:00
Stephen Anthony 145d47315e Update to BUS FastJump. 2017-05-13 18:12:14 -02:30
Stephen Anthony 78cb21d798 Fixed PAL color-loss effect bug when the ROM always has an odd # of lines. 2017-05-12 18:12:32 -02:30
Stephen Anthony 73fe5f3b40 Oops, forgot to remove some debugging info. 2017-05-12 16:31:27 -02:30
Stephen Anthony fb5daa483b Re-activate PAL colour-loss effect.
- Only activates in PAL-like modes (PAL and PAL60)
2017-05-12 16:29:46 -02:30
Darrell Spice, Jr 1c9343e0e4 Update to CDF FastJump
Revised CDF so "false" reads after NOPs, taken branch instructions, etc. no longer crash JMP FASTJMP
2017-05-12 16:13:16 -02:30
Christian Speckner 362f7c2888 Reimplement jitter; fixes #11. 2017-05-09 00:10:14 +02:00
sa666666 2adbe7a3fc Merge branch 'master' into master 2017-05-07 17:40:11 -02:30
Darrell Spice, Jr 490724c079 Updated BUS to new spec
The Harmony/Melody BUS driver is undergoing a major revision to add support for the new JMP FASTJUMP feature.  This update implements the changes, as well as the fast jump feature which isn't yet in the HMdriver.  It also implements the load/save state support as well as the BUS debugger widget.

A few minor updates to CDF were also done.

Note that this update breaks compatibility with the previous BUS demos.
2017-05-07 14:43:54 -05:00
Stephen Anthony 0cb9b89d7d Fixed minor compile warnings in Visual Studio. 2017-05-07 00:04:09 -02:30
Stephen Anthony 670c72a1ed Fixed bug in 'ROM Audit' mode; sometimes ROMs without properties
would be erroneously renamed.  Also improved ROM Audit dialog a little.

Updated changelog.
2017-05-06 21:23:15 -02:30
Stephen Anthony 50cef57670 Great colon purge Part4: All in-game dialogs. 2017-05-06 19:47:42 -02:30
Stephen Anthony 1eca60dac5 Great colon purge Part3: all debugger ROM bankswitch tabs. 2017-05-06 16:52:40 -02:30
Stephen Anthony a87334a268 Great colon purge Part2: RIOT tab and controllers. 2017-05-06 14:06:19 -02:30
Stephen Anthony bab6e3119d Fixes for various dialog boxes in 'small-window' modes.
When in TIA emulation mode at 2x zoom level, all dialogs which
are variable in size will now fit in the window.  In other cases,
the dialog will take up 80% of the available space.
2017-05-05 20:25:52 -02:30
Stephen Anthony 6ba627e059 Show error message when a dialog box can't be opened.
Rework defaults for ROM launcher and TIA zoom level.

Both of these are basically defined around having only a 640x480
screen, which hasn't been the case on hardware (even phones) for
about 10 years.
2017-05-05 16:50:02 -02:30
Stephen Anthony 847e910d26 Added new darker colour for togglewidget background disabled bits. 2017-05-04 09:36:32 -02:30
Stephen Anthony 684c227381 Further fixes for ppc64le and SDL2. 2017-05-03 21:26:41 -02:30
Stephen Anthony 28b237794d Start of the great colon purge. 2017-05-03 21:03:32 -02:30
Stephen Anthony 5b13265772 Bump version # for next pre-release. 2017-05-03 20:09:41 -02:30
Stephen Anthony 1d30f1ddc0 Rearranged debug colours and collision widgets in TIA tab. 2017-05-03 20:01:08 -02:30
Stephen Anthony f1c35ee730 Removed code for functionality that will never be used. 2017-05-02 20:35:07 -02:30
Stephen Anthony 9416d5212c Added 'fixed debug colors to TIA tab, and rearranged buttons. 2017-05-02 18:56:03 -02:30
Stephen Anthony 0af03a3916 Debugger expressions need to be signed, since some results can be negative. 2017-05-01 20:58:31 -02:30
Stephen Anthony 2973d03e01 Added VDel and togglewidget for new/old ball in debugger TIA tab.
Cleaned up some minor spacing issues in previous CDF commit.
2017-04-30 14:42:06 -02:30
Darrell Spice, Jr 4958ca3d93 CDF updates
* Implemented load/save state.
* Updated the debugger tab, which required the following:
   - removal of : from RAM labels (part of the debugger overhaul)
   - setCrossed() functionality in the DataGrid
2017-04-30 13:39:40 -02:30
Stephen Anthony ba2bed21b5 Fix potential crash in ARM code in DPC+ scheme. 2017-04-27 20:24:19 -02:30
Stephen Anthony 8c756001f8 Activate player shadow registers, and align text in TIA tab. 2017-04-27 14:13:47 -02:30
Stephen Anthony a0e1ec322a Update statefile # for recent statefile format changes. 2017-04-25 20:20:54 -02:30
Stephen Anthony f8d7253ec3 Expose GRPx read/write of new/old registers in debugger TIA tab. 2017-04-25 19:42:04 -02:30
Stephen Anthony 3e1b03bed5 3 voice music correction for CTY scheme. 2017-04-25 19:26:04 -02:30
sa666666 dc5a0bdba1 Merge pull request #122 from SpiceWare/master
3 voice music correction
2017-04-25 19:24:34 -02:30
Darrell Spice, Jr 742eb36654 3 voice music correction
Christian discovered a bug in the updateMusicModeDataFetchers() function used by BUS, CDF, and DPC+.
2017-04-25 16:27:39 -05:00
Christian Speckner 24e449c5d4 Setters for player and ball old registers. 2017-04-25 22:58:05 +02:00
Christian Speckner bd74b7de38 Fix delay queue widget regression caused by typo. 2017-04-25 20:36:00 +02:00
Darrell Spice, Jr 86ecaca7d9 Updates to BUS
Add digital sample support to BUS.
2017-04-25 08:38:06 -05:00
Christian Speckner ea7792d57a Add getters for old / new GRPx / ENABL registers. 2017-04-24 23:47:06 +02:00
Christian Speckner f51c6c983b Show queued GRPx / ENABL shuffles in delay queue widget. 2017-04-24 23:42:44 +02:00
Stephen Anthony b0bb4bda29 Fixed crash from non-initialized value. 2017-04-24 14:03:27 -02:30
Stephen Anthony 2d58825b25 First pass at revamping debugger TIA tab (UI changes only). 2017-04-24 12:36:47 -02:30
Darrell Spice, Jr 3b0b6127cc Merge remote-tracking branch 'stella-emu/master' 2017-04-23 18:07:54 -05:00
Christian Speckner ce204901dc Flush the line cache after stepping.
Ensures that the display will match the step afterwards.
2017-04-24 00:34:25 +02:00
Christian Speckner 24cb2417fc Port improved line caching from 6502.ts . 2017-04-23 23:37:30 +02:00
Darrell Spice, Jr 26e9144468 Merge remote-tracking branch 'stella-emu/master' 2017-04-23 16:09:31 -05:00
Darrell Spice, Jr a4fdab5534 Updated CDF to new spec.
The Harmony/Melody CDF driver underwent a major revision to add support for the new JMP FASTJUMP feature.  Note that this update breaks compatibility with the previous CDF demos.

3-Voice Audio and Digital Sample playback are in place, though both sound "off" so further work will need to be done.   Debugger Widget needs additional work, and state save/load support needs to be finished.
2017-04-23 15:48:12 -05:00
Stephen Anthony 38deb5b1cf Potential fix for compile failure on ppc64le / SDL2. 2017-04-20 15:21:55 -02:30
Stephen Anthony 1675aece44 Merge branch 'master' of github.com:stella-emu/stella 2017-04-15 19:03:47 -02:30
Stephen Anthony 3aeae9b6f6 Improvements to the debugger prompt
- commands are now properly range checked (byte, short, etc)
  - better error messages
  - internally, use 16-bit/8-bit instead of 32-bit when necessary
2017-04-15 19:00:50 -02:30
Stephen Anthony a2d647b17f Updated OSX project file for Xcode under Sierra. 2017-04-14 23:40:49 -02:30
Stephen Anthony d456721c5e StringListWidget always wants focus. 2017-04-09 20:23:33 -02:30
Stephen Anthony 07f605d8be Minor documentation/commenting update for Paddle class. 2017-04-08 00:29:35 -02:30
Stephen Anthony 7b8d579360 Added debugger prompt command 'debugcolors', which shows a legend
of colors used in 'fixed debug colors' mode.
2017-04-08 00:11:02 -02:30
Stephen Anthony a8516ee504 Updated VS project file for recent class additions. 2017-04-07 20:48:27 -02:30
Stephen Anthony 4e794ba778 Updated debugger prompt commands 'trap', 'trapread' and 'trapwrite'
to work like the old 'm' versions, so they work on all mirrors and
also allow one to enter a range of values to trap.  Added more
stringent error checking for parameters.
2017-04-06 20:22:00 -02:30
Stephen Anthony 9736bdd3e8 Added 'palette' debugger prompt command, which shows a colour swatch
of the currently active TIA palette.
2017-04-06 17:54:41 -02:30
Stephen Anthony 435608422b Updated fixed debug colours to match in NTSC and PAL. 2017-04-06 17:26:17 -02:30
Stephen Anthony 6faf099f3e Updated OSX project files for recent class additions. 2017-04-04 19:44:18 -02:30
Stephen Anthony 60322a10d4 The PF register in the debugger no longer shows COLUBK.
Some minor rearranging of the 'queued writes' widget.
2017-04-04 18:19:11 -02:30
Stephen Anthony d3b50b5194 Fixed some minor issues with DelayQueueWidget.
- Removed redundant code to get TIA write address labels
  - Added '$' to indicate hex output
  - Added newlines to affected files.
2017-04-04 17:38:45 -02:30
Christian Speckner 3df449603e Delay queue widget: Finishing touches
* Reorder widgets in TIA tab
    * Change background color to readonly
    * Pacify compiler warning in iterator
    * Fix typo in TiaDebug
2017-04-04 21:55:16 +02:00
Stephen Anthony 96bbba223a Various improvements to the debugger prompt:
- 'cls' now only clears the screen, and not the command history
  - 'help' accepts another command as an argument, to give more info
    about the command (ie, help breakif is now valid)
  - command completion now works on built-in functions and pseudo-ops
2017-04-04 14:17:10 -02:30
Christian Speckner 467c45e7b2 Delay queue widget: replace mock.
* Add an iterator for interating over delay queue entries
    * Dynamically build delay queue widget content from iterator
    * Refactor shadow registers to reflect a possible delay
2017-04-04 00:39:55 +02:00
Christian Speckner 8275b1a9d6 Add DelayQueue widget (mocked content). 2017-04-04 00:39:55 +02:00
Stephen Anthony 157f25eba9 Updated Visual Studio project files for VS 2017. 2017-04-02 13:13:52 -02:30
Stephen Anthony 2d8ddd3296 DataGridWidgets now show different background colour by default in
read-only mode.  This allows classes that were previously written
to auto-magically work, instead of having to manually edit them.
2017-04-01 20:39:00 -02:30
Stephen Anthony faba2540f9 The debugger 'cls' no longer erases history. 2017-04-01 20:37:39 -02:30
Stephen Anthony ae65f95848 Updated debugger read-only UI items background colour. 2017-04-01 19:11:59 -02:30
Stephen Anthony 3e5df9c7bc Non-editable UI items in the debugger are now shown with a different background color. 2017-04-01 17:04:40 -02:30
Stephen Anthony 58f93c1930 Fixed inheritance issue with Widget::wantsFocus() and child classes.
Changed some code in TIA class to eliminate function calls.

Minor code refactoring wrt d'tors.
2017-04-01 15:41:34 -02:30
Stephen Anthony f041de441f Bumped state version #, since recent changes have made old
state files invalid (and cause a crash on my system, at least).
2017-03-30 14:51:31 -02:30
Stephen Anthony 4a8ff43fe2 Match override to virtual method, to stop compiler from complaining.
Also, if we don't know if a method should be const, then it needs
to be :)
2017-03-29 19:59:01 -02:30
Christian Speckner 988b36010b Positioning for missiles and ball. 2017-03-29 22:53:42 +02:00
Christian Speckner d00698c3e4 Better naming, implement player position setters 2017-03-29 22:02:15 +02:00
Christian Speckner a7fc82cbea Position readout for players. 2017-03-29 20:14:43 +02:00
Christian Speckner f1eb76303c Finish introduction of shadow registers:
* Reenable all register readouts
    * Refer to shadow registers in all readouts
    * (De)serialize shadow registers
2017-03-29 19:32:57 +02:00
Christian Speckner b3bfc86ccc Introduce shadow registers, start refactoring TIADebug to use them. 2017-03-29 18:18:35 +02:00
Christian Speckner eb209ee1dd Fix sign error with myXDelta. 2017-03-29 17:58:28 +02:00
Christian Speckner d6fbc23b60 Fix cursor in frame preview. 2017-03-29 17:46:25 +02:00
Stephen Anthony d819f9c7b8 Fixed overflow of text/UI items in large font mode in the debugger;
we need just a little more height.  There's similar issues for the
smallest font, but I need to think about that one a little more,
since many people are affected if we change the window size at the
smallest setting.
2017-03-28 15:18:20 -02:30
Stephen Anthony 3a8967f349 Fixed minor warnings in Xcode build. 2017-03-27 16:54:19 -02:30
Stephen Anthony 2e4849411b Bumped version for next test release. 2017-03-27 16:30:34 -02:30
Stephen Anthony 94cd456076 Final state load/save updates for DelayQueue. 2017-03-25 21:29:43 -02:30
Stephen Anthony 73beb8cb40 Re-enabled TIA::saveDisplay() and TIA::loadDisplay().
This means the debugger rewind feature is working again.  More testing
is required to make sure this is the same as Stella 4.x functionality.
2017-03-25 19:32:58 -02:30
Stephen Anthony fd4122e017 Re-abled state loading/saving.
There's still a few final items to fix, but it's 99% complete.
2017-03-25 17:58:58 -02:30
Stephen Anthony 0976fb1d93 Updated VS project file for BUS/CDF class additions. 2017-03-24 23:12:31 -02:30
Stephen Anthony 4b56a178d8 Re-enabled 'tia' command in debugger prompt. 2017-03-24 21:27:01 -02:30
Stephen Anthony 90aa152f59 Re-enable viewing TIA sound output in the debugger.
This code is only temporary, until we more properly deal with it
in the new sound core.
2017-03-24 21:13:31 -02:30
Stephen Anthony 7a0f322224 Remove all references to CX22/CX80 for trakball-like controllers.
Applicable controllers are now (consistently) named either
Amigamouse, Atarimouse or Trakball.
2017-03-24 20:29:30 -02:30
Christian Speckner 6c41bf6405 Don't start missile decodes while RESMPx is set. Fixes #83. 2017-03-24 22:29:09 +01:00
Stephen Anthony 9fb45a0a88 Add 'TODO', to make sure we come back to this at some point. 2017-03-24 18:54:01 -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
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
Christian Speckner 25261fff78 Fix a small ommission. 2017-03-20 00:40:42 +01:00
Christian Speckner 7325cd8034 Fully match missile starfield to hardware. 2017-03-20 00:31:29 +01:00
Christian Speckner 3b45bbd238 Fix RIOT load / save. 2017-03-19 22:39:54 +01:00
Christian Speckner 317169c59a Properly emulate interrupt flag behavior of INITM read on wraparound. 2017-03-19 22:26:00 +01:00
Stephen Anthony 471db61254 Updated OSX project file for class name change. 2017-03-18 21:44:59 -02:30
Stephen Anthony 2a9372b7c6 Updated VS project file for class name change. 2017-03-18 20:36:55 -02:30
Stephen Anthony a07a607c76 Console timing info is now available through Console::timing()
and TIA::consoleTiming().  This allows to query the TIA about
specific version of the console being emulated, which can be
distinct from the frame layout used by the TIA itself.
2017-03-18 19:50:48 -02:30
Christian Speckner 41e2f77333 Adapt missile starfield to match my own hardware. 2017-03-18 14:15:11 +01:00
Stephen Anthony 0c7b9aa079 Fixed comment error: Superchip is only 128 bytes RAM (but 256 bytes
of address space taken).
2017-03-16 20:59:52 -02:30
Stephen Anthony 0e712b39e1 Optimized Cart::isProbablySC. Perhaps a small change, but more
efficiency never hurts.
2017-03-16 20:41:37 -02:30
Stephen Anthony 02a399a8aa Fixed Superchip autodetect for Dig Dug as discussed on AtariAge. 2017-03-16 18:46:43 -02:30
Stephen Anthony 3950f80a30 Refactoring, convert TvMode to FrameLayout as per AtariAge thread. 2017-03-15 20:57:03 -02:30
Stephen Anthony 59a6f8f9d1 Made formatting for new code in M6532 class match what was already there
(just an OCD thing).  Updated changelog for new RIOT changes.
2017-03-14 19:32:33 -02:30
Christian Speckner 05b10bec6b Rework RIOT timer to match real hardware behavior. 2017-03-14 01:27:11 +01:00
Stephen Anthony 7cbec18f5a Updated ROM properties; remove some default values, add missing entries. 2017-03-12 21:08:39 -02:30
Stephen Anthony 68f9831061 Make sure that every frame draws all scanlines in the height of the window.
If the ROM doesn't reach that far, blank out all further scanlines.

Optimize FrameManager::height() method.
2017-03-11 16:53:04 -03:30
Christian Speckner 4a71e48a07 NUSIZ player improvements.
Match NUSIZ during draw / decode and hblank to hardware behavior.
2017-03-10 09:18:14 +01:00
Stephen Anthony 2057b1421c Set ROM launcher framerate to 30fps. There's no need for it to be
a full 60fps, and it reduces CPU usage up to 30% on some systems.
2017-03-08 18:13:01 -03:30
Christian Speckner e02166092d Improve player NUSIZ during hblank. 2017-03-08 00:01:41 +01:00
Stephen Anthony a2c98e2409 Fixed 'read past end of array' crash. 2017-03-06 18:11:10 -03:30
Stephen Anthony acd5b3c813 Final set of ystart adjustments (hopefully), taking care of corner cases
for weird ROMs, etc.
2017-03-06 13:32:28 -03:30
Christian Speckner d429b79d78 Improve ystart detection:
* Fix transition locked -> floating
    * Lock detected value after 30 stable frames
2017-03-06 00:28:31 +01:00
Stephen Anthony e18fe2005d Add DK VCS to properties database. 2017-03-05 15:20:56 -03:30
Christian Speckner c7da6c5b26 New frames always start on line 0. 2017-03-05 14:41:28 +01:00
Stephen Anthony ebe50a1eca Updated version to pre5. 2017-03-04 16:09:38 -03:30
Stephen Anthony bb18b3e777 Updated properties to RomHunter v12. 2017-03-04 16:06:53 -03:30
Stephen Anthony 185119eed9 When manually changing ystart from auto-detect mode, note when the
manually selected ystart line matches the auto-detected one, and reset
it in the ROM properties.  This makes sure that auto-detected values
are actually stored as '0', and not the auto-detected value.

Fixed ystart for 'Swoops' ROM.
2017-03-04 14:41:05 -03:30
Stephen Anthony 37774e08b8 Re-sync load() and save() methods in TIA class. 2017-03-03 22:04:30 -03:30
Stephen Anthony b5b058c615 Made VblankManager::ystart() always return a valid ystart, either
autocalculated or fixed.  This fixes selecting a scanline with the
mouse in TIA output widget in the debugger.

Made various methods inline for issue #7.
2017-03-03 21:57:36 -03:30
Stephen Anthony 517ac713ad Fixed approx. 100 ROMs that no longer need explicit ystart data
in the ROM properties file (due to fix to ystart autodetection).
2017-02-28 19:55:32 -03:30
Stephen Anthony 2a2797cbaf Fixed 'mystery constant' in M6532 in two other places. 2017-02-26 20:29:18 -03:30
Christian Speckner 10245ea102 Tentatively remove the legacy kludge in RIOT timer handling. 2017-02-27 00:25:06 +01:00
Christian Speckner 8f93704559 Frame manager fixes
* Don't wait until next line before starting frame after vblank is
      deactivated -> fixes white line on top of time pilot
    * Make ystart match stella 4 conventions
2017-02-27 00:15:03 +01:00
Stephen Anthony 5114a8e88e CX22/CX80 trakball controller has half the resolution of an
Atari/Amiga mouse, so do an extra divide by 2 for the counters.
2017-02-24 18:38:26 -03:30
Christian Speckner 38b452e1a0 Make sure that the resistance read from paddle controllers is always in the physical range. 2017-02-24 08:48:52 +01:00
Christian Speckner 41ec98c6c1 Fix small RSYNC regression. 2017-02-22 01:27:16 +01:00
Christian Speckner b173da05a0 Init S to 0xFD on reset. 2017-02-21 22:21:53 +01:00
Stephen Anthony 6846aadadf Fixed 'Maze Craze' NTSC ROMs to not use format autodetection. 2017-02-20 21:18:28 -03:30
Stephen Anthony 0d86649b47 Oops, used incorrect names in inptx serializable name() methods. 2017-02-20 21:10:24 -03:30
Stephen Anthony 8263eb1e7c Implemented Serializable for TIA inptx registers (LatchedInput
and PaddleReader).  For now, PaddleReader is stubbed out, since
it needs to save double values and Serializer can't do that yet.

Fixed bug in Ball, Background and Playfield serialization; they
were correctly saving data, but returning false (indicating failure).
2017-02-20 21:05:54 -03:30
Stephen Anthony 30e1996d5b Fixed reading of VBLANK register in debugger. 2017-02-20 20:42:33 -03:30
Stephen Anthony c99cb33cda The TIA image in the debugger is now correctly rendered in greyscale
below the current electron beam position.

Fix long-standing bug whereby entering the debugger for the first time
and tracing/scanline advancing, the TIA image was blanked, and didn't
work correctly until you exited and re-entered the debugger.

Minor refactoring optimizations, and renaming of methods.
2017-02-20 19:51:59 -03:30