Commit Graph

3451 Commits

Author SHA1 Message Date
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 12526783f8 Updated changelog for latest bugfix. 2017-03-06 19:12:10 -03:30
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 ff3f4f1a39 Updated changelog. 2017-03-01 10:27:38 -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 bf014c8e70 Updated changelog, since it's getting to the point where I'm forgetting
what has been changed.  Left a TODO for the TIA stuff, since that will
be an entire changelog in itself :)
2017-02-24 20:39:34 -03:30
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 e133a4a521 Updated documentation for recent trakball naming changes. 2017-02-11 22:04:40 -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