Commit Graph

1178 Commits

Author SHA1 Message Date
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 44ead7b926 Updated std::map to use emplace instead of insert (optimization). 2017-06-09 14:50:11 -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 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 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 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 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
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 a87334a268 Great colon purge Part2: RIOT tab and controllers. 2017-05-06 14:06:19 -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 1d30f1ddc0 Rearranged debug colours and collision widgets in TIA tab. 2017-05-03 20:01:08 -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 a0e1ec322a Update statefile # for recent statefile format changes. 2017-04-25 20:20:54 -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
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
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 07f605d8be Minor documentation/commenting update for Paddle class. 2017-04-08 00:29:35 -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 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
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
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 3a8967f349 Fixed minor warnings in Xcode build. 2017-03-27 16:54:19 -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 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 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 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 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 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 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
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 ac226eb6eb Updated ROM properties for Coke Zero demos. 2017-01-15 15:05:16 -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 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
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
Christian Speckner f66a61f3b7 Tweak immediate ball rendering after RESBL -> fixes Keystone Kappers 2016-12-19 01:05:42 +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
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 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 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
Christian Speckner b3c0993dcc Delay REFP[01] by one clock. 2016-12-09 12:50:26 +01:00
Christian Speckner f360e7fba2 Fix iniital player width --- fixes Yar's revenge. 2016-12-09 08:27:31 +01:00
Christian Speckner 400b333386 Effective discription of starfield width modulation for missiles and ball. 2016-12-09 00:47:52 +01:00
Christian Speckner a9d1ed3741 Fix undeflow in RESMP. 2016-12-08 22:20:51 +01:00
Christian Speckner 38d8d893aa Fix RESMP for 16 and 32 pixel players. 2016-12-08 21:17:56 +01:00
Christian Speckner afae00a654 Fix analog I/O:
* Premature optimization killed the cat --- approximated exponentioal does
      not converge fast enough, replace with real thing
    * Make sure that the readout circuit is updated before read
2016-12-08 00:37:12 +01:00
Stephen Anthony 072015c82a Removed toggling of displaying HMOVE blanks. With the old core, what
it drew in that area was sometimes garbage, and with the new core it
draws nothing at all (which is the correct behaviour).  Hence the
feature is obsolete.
2016-12-06 16:36:04 -03:30
Stephen Anthony 12bdff67b6 Missing newline at end of file (compilers complain about this). 2016-12-05 19:35:02 -03:30
Stephen Anthony 6d33db8646 Writes to TIA GFX registers are now seen in the ROM disassembly. 2016-12-05 16:55:31 -03:30
Christian Speckner 61155ace46 First stab at getting retriggering delays correct. 2016-12-05 20:32:47 +01:00
Stephen Anthony 1f54f3e263 Updated Visual Studio project file for new 6502ts TIA core classes. 2016-12-04 18:45:33 -03:30
Stephen Anthony b9630f5e2a Re-enable compilation with DEBUGGER_SUPPORT. The TIA stuff in the
debugger is currently broken, but at least the code compiles (needed
for the Windows and OSX test releases, as they aren't set up to be
compiled without the debugger.
2016-12-04 16:05:21 -03:30
Stephen Anthony 0de35eab7e For some reason, the top comment header is missing in some files. 2016-12-04 14:50:36 -03:30
Stephen Anthony c526d260a0 Re-enable fixed debug colors. 2016-12-04 14:48:17 -03:30
Stephen Anthony 9ca6f89778 When the new TIA core is enabled in a build, set it to the default when no
defaults have been specified.  The reason being, testers will be running old
and new versions of Stella, and with the previous settings, they would have
to continually reset 'tia.core' every time they run a new build.  Besides,
the point is for the new core to be the default, so we may as well enforce that
in the code.
2016-12-02 10:43:46 -03:30
Stephen Anthony 7bfaf10e80 Turning off HMOVE display doesn't work in the new TIA core, and really was
only a hack in the old core.  We will eventually remove this.
2016-12-02 10:22:59 -03:30
Stephen Anthony 3bb21cdbf3 Restored TIA::height functionality, otherwise the window won't be properly sized. 2016-12-02 10:16:49 -03:30
Stephen Anthony b34514e7f4 Implemented TIA::scanlines(), which now shows the proper scanline count in
the info window in the upper-left of the screen.  Still TODO is tie it to the
framerate, so that when the scanline count changes, it also auto-calculates
the framerate.

Some formatting cleanups in various classes.
2016-12-02 10:07:25 -03:30
Christian Speckner a8a4545222 Typo, more concise variable names. 2016-12-02 09:30:40 +01:00
Christian Speckner a717890c29 Microoptimization: pre-invert collision bitmasks. 2016-12-02 09:05:35 +01:00
Christian Speckner a1eb8fd9ab Add toggle logic to all sprites. 2016-12-02 08:58:19 +01:00
Christian Speckner 920787aa9f Sprite toggeling for missiles. 2016-12-02 01:11:54 +01:00
Christian Speckner 042dc72e66 Paddles / analog input. 2016-11-28 12:54:46 +01:00
Christian Speckner 3e4b975489 Add missing file. 2016-11-26 21:08:23 +01:00
Christian Speckner d66a58557b Always trigger draw during resbl, even during hblank. 2016-11-26 21:05:03 +01:00
Christian Speckner 34810ab25e Fix uninitialized value. 2016-11-26 15:36:43 +01:00
Christian Speckner 92ec526d68 Simplify priority logic in score mode. 2016-11-26 13:37:19 +01:00
Stephen Anthony 1924013daf Fixed write to CTRLPF with score mode enabled and playfield priority disabled;
the priority as well as the colours change from left/right screen.

Made getPixel method from each of the TIA objects inline, since they're called
so often.
2016-11-25 22:02:00 -03:30
Christian Speckner 7fad9b7cfa Fix fractiona counter initial value. 2016-11-26 00:18:18 +01:00
Christian Speckner 2bd5074828 Add latched input. 2016-11-26 00:08:32 +01:00
Christian Speckner e786b3307e Add resmp. 2016-11-25 23:23:04 +01:00
Stephen Anthony 6818da1566 Added savestate 'plumbing', for when the new TIA classes are finalized.
Bumped lowest version of state file format to 4.8, to make sure old
state files will not be loaded.
2016-11-25 14:58:07 -03:30
Christian Speckner eebf8c046f Collisions, basic input (no lateched input, no paddles). 2016-11-25 01:31:57 +01:00
Christian Speckner d2c9813da1 Fix timing to properly account for "fractional" system clocks -> bang! runs glitch free. 2016-11-23 23:59:32 +01:00
Christian Speckner cac9bf76c7 Delay queue fixes --- should be academic. 2016-11-23 23:55:10 +01:00
Christian Speckner d02c985a91 Add ball. 2016-11-22 23:22:16 +01:00
Christian Speckner 95c1d2b08c CS. 2016-11-22 21:56:50 +01:00
Christian Speckner 3a4827e0b8 Add a missing line cache invalidation -> fixes bang! plasma field. 2016-11-22 21:56:12 +01:00
Stephen Anthony ec2ee2c570 Added some 'Stella-isms' to the new TIA core code, like brace placement,
comment lines above each method, deleting new/d'tors whenever possible, etc.

Rename Missile.cpp to Missile.cxx.
2016-11-22 15:44:20 -03:30
Christian Speckner 14b701ef72 Fix accidential fallthrough in switch -> fixes funky space invaders. 2016-11-20 23:39:47 +01:00
Christian Speckner d9f91caab3 Don't reset autodetected TV mode on reset -> fixes TV mode autodetection. 2016-11-20 22:22:07 +01:00
Christian Speckner ac4520917e Add players. 2016-11-20 22:07:10 +01:00
Christian Speckner 87b24a5bba Coding style, hmmClocks can be 8bit. 2016-11-18 00:08:12 +01:00
Christian Speckner 594c460bc7 CS. 2016-11-17 23:25:13 +01:00
Christian Speckner 666028b66d TODO. 2016-11-17 23:24:38 +01:00
Christian Speckner baecc4e3a1 Fix timing glitch, port missiles. 2016-11-17 23:24:12 +01:00
Christian Speckner c8dc5e2db9 Fix delay queue, add delay to pfx writes. 2016-11-16 23:19:54 +01:00
Christian Speckner cdafe8d0a4 Playfield. 2016-11-16 01:18:44 +01:00
Christian Speckner 2d76b7fb98 Hook up audio. 2016-11-15 21:24:20 +01:00
Christian Speckner 6d76d65d82 Add wsync, vsync and vblank, fix bugs and connect the dots -> main loop + tv mode detection work. 2016-11-15 21:16:36 +01:00
Christian Speckner 70dc29f077 Port main loop. 2016-11-15 19:26:23 +01:00