Commit Graph

2092 Commits

Author SHA1 Message Date
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
Christian Speckner 39f756f821 Fix paddle input if no paddles are not connected.
Don't charge cap if resistance is maxed.
2017-02-20 00:49:54 +01:00
Christian Speckner 75bd732525 Fix artifacts due to varying frame height and doublebuffering.
Duplicate myLastFrameHeight and swap the values
2017-02-19 22:28:47 +01:00
Christian Speckner 146d0afe4f Set undefined bits on TIA read from last data bus value. 2017-02-19 15:39:54 +01:00
Christian Speckner 0efbbdec45 Debugger fixes:
* Fix scanline stepping during blank
    * Fix start of visible range
2017-02-16 22:58:24 +01:00
Stephen Anthony ad81f2b5d7 Updated OSX project file for trakball class changes. 2017-02-11 23:28:05 -03:30
Stephen Anthony af5374a586 Updated VS project file for new trakball classes. 2017-02-11 22:53:39 -03:30
Stephen Anthony d9304fa06b Forgot to re-initialize on load() in Playfield. 2017-02-11 22:37:11 -03:30
Stephen Anthony c73c606638 Implemented Serializable for Background, Ball and Playfield classes,
since it looks like they won't be heavily modified any further.
2017-02-11 22:30:58 -03:30
Stephen Anthony 52d3bd9df3 Separated the various trakball-compatible controllers into their
own class, preparing for further work on issue #70.

The 3 classes are now named more appropriately, as mentioned in
issue #70.
2017-02-11 21:07:42 -03:30
Stephen Anthony c80f72b367 Allow configure script to run with clang-5, and fixed a minor
warning when compiling with clang++-5.
2017-02-10 21:32:58 -03:30
Christian Speckner c0a3a5394d Minor RSYNC fixes. 2017-02-09 01:36:47 +01:00
Christian Speckner fd95231722 Refine NUSIZ during draw decode. 2017-02-07 23:55:29 +01:00
Christian Speckner 00bfd088d3 Refactoring, add some buffering to improve performance. 2017-02-06 22:43:35 +01:00
Christian Speckner cef5fb4da0 Avoid side effects if the divider is unchanged by a NUSIZ write. 2017-02-06 21:12:41 +01:00
Christian Speckner 1a7ac60232 Match NUSIZ during player decode or draw to real hardware. 2017-02-06 00:30:39 +01:00
Stephen Anthony 8b4096e1ef Grabmouse is not used when using a virtual controller that doesn't output
analog data (ie, not a mouse).  This fixes the issue of mouse grabbing
when a ROM isn't even using the mouse.
2017-01-28 19:45:30 -03:30
Stephen Anthony d99f83580f Updated Linux/UNIX port to use XDG_CONFIG_HOME for storing settings
file.  For most people, that means the files are now stored in
'~/.config/stella' instead of '~/.stella'.  Manually moving the directory
will be necessary if you wish to keep the old settings.
2017-01-28 19:14:11 -03:30
Stephen Anthony 94e77d3b94 Partially implemented step by scanline in the debugger; I still have
some questions for DirtyHairy before I can finish it.
2017-01-28 18:33:44 -03:30
Christian Speckner f1d503a0ef Cleanup. 2017-01-27 01:12:34 +01:00
Christian Speckner 94292bbbd1 Even more accurate RESMx. 2017-01-26 01:02:33 +01:00
Christian Speckner 990fac5895 RESMx simplification and improvements. 2017-01-25 00:11:33 +01:00
Christian Speckner 72b8f6491e More accurately model RESMx during decode or draw. 2017-01-24 22:28:31 +01:00
Stephen Anthony 5033e8bfe6 Updated OSX project file for VBlankmanager class. 2017-01-22 19:24:27 -03:30
Stephen Anthony 0c50df546b Updated VS project file for VBlankManager class. 2017-01-21 13:42:10 -03:30
Christian Speckner efc881a284 Correct slight blunder ;) 2017-01-21 16:10:57 +01:00
Christian Speckner ac14e40bff Fix an oversight. 2017-01-21 00:59:29 +01:00
Christian Speckner 6070291769 Slight improvement of the description of NUSIZ during draw. 2017-01-21 00:45:00 +01:00
Christian Speckner d521a230bd Introduce a one clock delay on ENAM. Fixes Midnight Magic. 2017-01-20 01:02:52 +01:00
Christian Speckner 6bb64d55e2 Fix naming. 2017-01-19 00:25:44 +01:00
Christian Speckner 517b0d167a Refactoring: move ystart detection logic into separate class. 2017-01-18 01:17:19 +01:00
Christian Speckner f189906813 Remove _6502TS_CORE from include guards now that we have just one core. 2017-01-18 00:15:18 +01:00
Stephen Anthony 6c73c11961 Updated OSX project to always use internal zlib library,
and changed the preferences file to 'Stella-emu.plist'.
2017-01-15 17:38:27 -03:30
Stephen Anthony ac226eb6eb Updated ROM properties for Coke Zero demos. 2017-01-15 15:05:16 -03:30
Stephen Anthony e60e3ac9d2 Create zlib defines in a cleaner cross-platform way. 2017-01-15 14:57:56 -03:30
Stephen Anthony 7ee1ccbbc9 Fixed latest zlib stuff to compile in Windows. 2017-01-15 13:54:44 -03:30
Stephen Anthony 49a11e2ce1 Updated PNG and ZLIB libraries to latest released versions.
Since Zlib 1.2.10, it seems that zlib and png need to be paired
together.  The UNIX 'configure' script has been updated to either use
system png and zlib libraries, or both as built-in libraries.  This
shouldn't affect Windows (which uses both built-in anyway), but it
does require changes to OSX (which currently doesn't build at all).
2017-01-15 13:28:41 -03:30
Stephen Anthony 6a5b8adc06 Forgot to include updated release info for tagged release. 2017-01-15 11:54:36 -03:30
Stephen Anthony 96567dfd4d A few ROM properties updates that I missed before. 2017-01-14 22:42:37 -03:30
Stephen Anthony 46d3532816 Merge branch 'master' of github.com:stella-emu/stella 2017-01-14 21:40:39 -03:30
Stephen Anthony 42122c3465 First pass to get debugger stuff working for TIA display. 2017-01-14 21:39:45 -03:30
Christian Speckner 3303f0560a Finalize and start frames right after vsync -> stabilizes algorithm. 2017-01-15 01:34:05 +01:00
Stephen Anthony c0aa5c83f5 Minor refactoring. 2017-01-14 13:18:12 -03:30
Christian Speckner b0b807407a Fix vsync locked -> floating transition. 2017-01-14 14:08:44 +01:00
Stephen Anthony bf1ff1aae0 Change YStart and Display widgets in GameInfoDialog to be sliders
instead of textboxes.  This allows to eliminate error checking,
since the widget will only allow sane values.

Added YStart/Display min/max variables to FrameManager, and
refactor for other parts of the codebase to use these variables.
2017-01-13 22:49:38 -03:30
Stephen Anthony 6c33dda9dd Updated ROM properties for a few ROMs I missed before. 2017-01-13 21:08:42 -03:30
Christian Speckner 0a8b1debfc Fix PAL autodetection:
* Be more tolerant when waiting for vsync during TV mode autodetect.
  * Count PAL and NTSC frames during autodetect, use the mode with
    more statistics.
2017-01-13 09:20:56 +01:00
Stephen Anthony 2ccb559138 Finalized update of Display.YStart in ROM properties. 2017-01-12 20:31:36 -03:30
Stephen Anthony 3cccb8bc57 Partial update of ROM properties for Display.YStart removal. 2017-01-12 14:23:32 -03:30
Christian Speckner aba48e85cf Limit the number of lines FrameManager waits for frame with large scanlines, refactoring. 2017-01-10 23:59:36 +01:00
Christian Speckner a6725f2436 Enable manual TV mode selection:
* Make mode autodetection in FrameManager conditional, disable by
      default
    * Add glue for externally setting up TV mode
    * Properly setup TIA TV mode in Console
    * Refactoring
2017-01-10 01:22:25 +01:00
Christian Speckner ef000d2ae5 Support manual height, remove vertical centering logic (no easy way to get this to work with ystart autodetect). 2017-01-10 00:12:25 +01:00
Christian Speckner bd46bb4174 Implement RSYNC. 2017-01-09 00:10:55 +01:00
Christian Speckner df1b2a99ce Fix invalid access in FrameManager. 2017-01-09 00:10:26 +01:00
Christian Speckner 7b733d6126 Start removing ystart from props where it isn't required. 2017-01-08 00:57:27 +01:00
Christian Speckner 452f083fc1 Support fixed ystart, change ystart default to 0 = autodetect. 2017-01-08 00:31:35 +01:00
Christian Speckner 602b7b9d0d Improve NUSIZ during player draw counter decode. 2017-01-06 00:52:25 +01:00
Christian Speckner 14ebb9772a Fix RESM during draw counter decode. 2017-01-05 21:07:41 +01:00
Christian Speckner eb1fe88176 Fix player decode logic reset during hblank. 2017-01-05 14:43:26 +01:00
Christian Speckner 6a2259ef2f Avoid possible issues during bogus vsync writes. 2017-01-02 00:10:06 +01:00
Christian Speckner a5f1a8624f Fix what looks like an inconsistency in the calculation of scanline count. 2017-01-01 22:34:28 +01:00
Christian Speckner a83e7eb26d Fix garbage for ROMs with varying visible frame heights:
* Keep track of max frame height
  * Blank out any missing scanlines
  * Refactoring
2017-01-01 22:28:13 +01:00
Stephen Anthony 8815a6f027 Updated all references to new stella-emu webpage. 2016-12-31 17:19:29 -03: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
Stephen Anthony 26f4aa91a6 Updated libpng to latest release. 2016-12-29 17:24:45 -03:30
Christian Speckner cbb3c46461 Tentatively adjust RESMPx for 32 pixel players by one pixel. 2016-12-21 22:39:51 +01:00
Christian Speckner 0d37bbe132 Movement from starfield effect does only affect objects less four pixels wide. 2016-12-21 21:54:40 +01:00
Stephen Anthony 44acd10973 Updated ROM properties:
- Star Castle Arcade (Thomas J.)
 - Meltdown and Mega Bitmap Demo (fully working for the first time)
2016-12-19 18:11:57 -03:30
Stephen Anthony a6bc247852 WSYNC should only work when the last access was a read. 2016-12-19 15:56:26 -03:30
Stephen Anthony 07287fe761 Fixed trap'm' debugger commands when setting TIA addresses. 2016-12-19 14:26:35 -03:30
Christian Speckner f66a61f3b7 Tweak immediate ball rendering after RESBL -> fixes Keystone Kappers 2016-12-19 01:05:42 +01:00
Christian Speckner 17c0007c51 Bump version to 5.0.0-pre3. 2016-12-18 23:35:45 +01:00
Christian Speckner 7d7c0f6c9e Refine and unify late RESx during hblank, comments. 2016-12-18 22:47:24 +01:00
Christian Speckner f4932b8bf5 Fix INPT5. 2016-12-18 21:58:33 +01:00
Christian Speckner b700149cde Add a 1 cycle delay to ENABL (including delayed mode) -> fixes Super Challenge Football. 2016-12-18 14:39:24 +01:00
Stephen Anthony afcaf8581f Make the compiler happy. 2016-12-17 21:21:09 -03:30
Christian Speckner 7b7f8767aa Emulate final movement counter reset -> fixes Masters of the Universe. 2016-12-18 00:48:17 +01:00
Christian Speckner 39ee43ee66 Fix wide player positioning, adjust NUSIZx during decode to better match real hardware. 2016-12-17 21:46:52 +01:00
Stephen Anthony e618a6c72c Fixed display of FPS in the TIA message window. This also fixes sound
issues, since the correct framerate is being communicated to the
emulation core.
2016-12-17 13:06:56 -03:30
Christian Speckner d77d2f2e61 Try to implement side effects of nusiz after draw dispatch -> fixes meltdown. 2016-12-17 15:17:40 +01:00
Christian Speckner 48d90768f3 Fix wide player dispatch after resp -> fixes missile command. 2016-12-16 23:40:26 +01:00
Christian Speckner a982a334a8 Fix RESMP for 8 pixel players. Fixes frostbite ice pans. 2016-12-15 01:01:20 +01:00
Christian Speckner 65008135b8 Fix CompuMate TV mode detect
* Make sure that compumate runs with the proper controllers attached
    * Make sure that CompuMate::myKeyTable is always valid
    * Whitespace fix
2016-12-14 21:02:52 +01:00
Christian Speckner e742686f90 Bump to 5.0.0-pre2 . 2016-12-14 00:40:36 +01:00
Christian Speckner b4eb78b127 Yet another adjustment to positionining during extended hblank. 2016-12-14 00:40:36 +01:00
Stephen Anthony 760d889478 Fixed crash in auto-detecting Compumate ROM.
The PAL version is still mistakenly detected as NTSC, though.
2016-12-13 20:03:12 -03:30
Christian Speckner 839ba71f20 Effectively fix the mystery positioning bug. 2016-12-14 00:03:17 +01:00
Christian Speckner 12fe183890 Simplify FrameManager state machine, smarter ystart / vblank detection. 2016-12-13 22:28:20 +01:00
Christian Speckner f0828c597d Checkpoint. 2016-12-13 22:28:20 +01:00
Stephen Anthony f982f0257f Enabled viewing TIA collision and playfield info in the debugger. 2016-12-13 12:03:54 -03:30
Stephen Anthony 7b0a82f04a Enabled some more TIA stuff in the debugger. 2016-12-13 10:57:15 -03:30
Christian Speckner b28dfaa31f Add call to resetCycles. 2016-12-12 22:51:42 +01:00
Christian Speckner a35f378d87 Improve TV mode detection logic:
* Skip the first view frames
    * Change the algorithm to be more eager to accept mode changes until the
      mode has settled for at least five frames
    * If in doubt, assign odd frames to NTSC
2016-12-12 22:25:47 +01:00
Christian Speckner b9e2fc9022 Fix VSYNC during kernel, retain conditional debug logging for later use. 2016-12-11 20:50:12 +01:00
Christian Speckner 18c31ebc2b Add a 1 clock delay to vblank. 2016-12-11 01:27:09 +01:00
Stephen Anthony 137c5b5e54 Updated Visual Studio project files for removal of old TIA core. 2016-12-10 20:40:49 -03:30
Stephen Anthony 510c103030 More of the TIA stuff in the debugger is now enabled. 2016-12-10 16:37:47 -03:30
Stephen Anthony ac7670225b Updated OSX project files for removal of old TIA core.
Re-added comments to TIA class header.
2016-12-10 14:43:46 -03:30
Stephen Anthony 4d0147f3d1 Made new TIA core the default (code now compiles). 2016-12-10 13:38:28 -03:30
Stephen Anthony 4b5a02903e Delete old TIA core (files are only moved for now). 2016-12-10 12:45:00 -03:30
Stephen Anthony f7e712386b Fixed bug with SaveKey and AtariVox not properly closing their
memory files before starting another instance of the same ROM.
2016-12-09 19:04:14 -03:30