Commit Graph

3633 Commits

Author SHA1 Message Date
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
Stephen Anthony 5c114e69d2 Fixed documentation type as reported on AtariAge. 2017-07-21 21:04:20 -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
Christian Speckner 30f1e2681b Changelog. 2017-07-16 00:57:54 +02:00
Stephen Anthony 31ea315756 Updated docs mentioning Blargg and PAL color-loss are now compatible. 2017-07-15 20:19:17 -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 a6fe6e0bd8 Oops, forgot to remove some documentation editing typos. 2017-07-09 22:43:09 -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
Christian Speckner aa5be284cb Add a note on ystart autodetection. 2017-07-10 00:49:09 +02:00
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
Christian Speckner 12dad0543e TIA tab: document old / new registers and delay queue. 2017-07-08 00:58:39 +02:00
Stephen Anthony 10c53bce89 Make 'listtraps' less verbose (fixes #157). 2017-07-06 21:05:52 -02:30
Stephen Anthony 7f2b6a8983 Debugger documentation and screenshot updates. 2017-07-06 20:55:01 -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 1d293df782 Updated changes for system label lower vs. upper case. 2017-07-04 20:24:19 -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