Commit Graph

2250 Commits

Author SHA1 Message Date
thrust26 fee5f57179 disabled some developer options for 'Player settings'
updated doc and changes
2019-01-12 12:00:35 +01:00
thrust26 f80f291cec minor optimizations and formatting 2019-01-10 21:08:12 +01:00
thrust26 e2dabba309 updated serializers
added some game names to new TIA settings
2019-01-06 18:04:19 +01:00
thrust26 da269fefed added TIA tab to developer options with 5 options for oddball TIAs
started disabling some options for player settings
2019-01-06 13:48:53 +01:00
thrust26 b5de674c58 added missing prefixes 2019-01-05 23:01:21 +01:00
thrust26 5e89b4d02b started to eliminate magic numbers in new TIA code 2019-01-05 15:34:19 +01:00
thrust26 5fd3c017f6 added missing serializing 2019-01-05 00:07:45 +01:00
thrust26 f4de083a2b Extra playfield delay added as Developer option. 2019-01-04 14:18:35 +01:00
thrust26 3f9e82ab79 some minor typo fixes/alignments 2019-01-03 22:46:35 +01:00
thrust26 9e81ad4c13 enabled TimeMachine by default and increased defaults 2019-01-02 10:53:46 +01:00
Stephen Anthony ebfff85cb6 Fixed nasty C-style string conversion to upper/lower-case. 2019-01-01 15:22:30 -03:30
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
thrust26 1f64eecf4e fixed #401
added 7800 related messages for color/pause switches
2019-01-01 13:49:09 +01:00
thrust26 dc978b041a removed PADDLES_IDIR option (superfluous)
fixed properties for 'Dancing Plate (Unknown) (PAL)'
2018-12-31 12:23:23 +01:00
Stephen Anthony 04030757f0 Updated properties to RomHunter v15. 2018-12-28 17:55:15 -03:30
thrust26 b5f5ddefad (mostly) implemented #326
TODO: use empty buttons
2018-12-28 17:42:19 +01:00
thrust26 84300914cc fixed #397
Added SET_LAST_POKE for STA/STX/STY using absolute addressing (frequently used wasting 1 cycle) and PHA.
2018-12-28 12:36:00 +01:00
thrust26 f86ba39c88 initial update for #368 2018-12-27 11:47:41 +01:00
Stephen Anthony e4a1ba50e6 Final updates for 6.0 release (we hope). 2018-12-22 11:46:54 -03:30
Stephen Anthony b40a614cee Rework `Cartridge::initializeStartBank()` to require a specific starting bank.
Randomization and reading from properties still work too.
Fixes issues in several ROMs that essentially were getting bank randomization even though it was disabled.
2018-12-20 18:37:27 -03:30
Stephen Anthony 497bfc92db Added ROM properties for a few ROMs included with the R77. 2018-12-19 17:02:30 -03:30
Stephen Anthony 9c1b9ae00e Fix bug when taking snapshots in 1x mode; once started, it never stopped. 2018-12-19 14:26:15 -03:30
Stephen Anthony 933c4d7d3c Mac-related files/folders are now using 'macOS' naming scheme. 2018-12-19 11:46:09 -03:30
Stephen Anthony 6a17467e99 Slight space savings for load/save state. 2018-12-19 10:46:16 -03:30
Stephen Anthony f33ac273dd Remove debugging code. 2018-12-18 22:00:01 -03:30
Stephen Anthony 69fb08e30c Remove '_rwport' from the debugger.
The new way of detecting RWP is superior, and we don't have time to rework _rwport to use it.
This may come back in the future (if required), but I honestly don't see a need for it.
2018-12-18 20:56:19 -03:30
Stephen Anthony d7e9cfc4d0 Fix some warnings from cppcheck.
I'll admit that some of these suggestions are of dubious importance, but at least we shut up the tester :)
2018-12-18 20:06:55 -03:30
Stephen Anthony 471cf1ad4d Updated RWP stuff for 'E7' scheme. 2018-12-18 14:32:49 -03:30
Stephen Anthony a26288c788 Updated RWP stuff for DASH scheme.
Again, this is a relatively untested BS scheme, with only one test ROM available.
2018-12-18 14:04:25 -03:30
Stephen Anthony 70fcd0f3b5 Updated RWP stuff for '3E+' scheme.
This is currently mostly untested, since this scheme isn't widespread and has only a few test ROMS.
2018-12-18 10:59:29 -03:30
Stephen Anthony 56669c5449 Convert Cart classes to receive 'md5' parameter.
That's an *awful* lot of work to simply pass info to each class :)
2018-12-18 10:24:40 -03:30
Stephen Anthony dea62573f8 More carts converted to new RWP code. 2018-12-17 21:25:08 -03:30
Stephen Anthony 9aaf8b22b5 Fix wrong address in poke methods in 'SC' schemes. 2018-12-17 20:41:39 -03:30
Stephen Anthony 4ff613b4e9 Converted all the class 'SC' carts to new RWP scheme. 2018-12-17 20:15:11 -03:30
Stephen Anthony ebe18877f9 Fairly large refactoring of RWP functionality.
- abstracted RWP code into Cart base class (only F8SC converted for now)
- RWP now works by analysing RAM accesses before and after each instruction, catching all occurrences

Fixes for compiling without debugger support.
2018-12-17 19:51:28 -03:30
Christian Speckner 9b22c6afa7 Rewrite StaggeredLogger with a timer. 2018-12-15 23:59:21 +01:00
Christian Speckner 5b0b8cd5cb Summarize audio buffer errors and log them to the main log. 2018-12-15 00:04:38 +01:00
Stephen Anthony d941ebca09 Added new approach for values used when reading from the write port.
Previously these values were from whatever was on the databus, but new testing
indicates that they are semi-random (ie, random, but with some pattern).

The new code bases the values in part on the md5sum of the ROM (for randomization),
but also pre-generates a set number of values (for a pattern).

Currently only F8SC scheme is implemented.  The remainder will be done once
we test this one.
2018-12-08 18:05:05 -03:30
Stephen Anthony 5f91532d95 Fix minor clang warning in last commit. 2018-12-08 11:43:35 -03:30
thrust26 1dfc221a1a fixed RWP by using the last access type 2018-12-08 15:51:16 +01:00
Stephen Anthony 7b4c3dc6b8 In the case of 'read from write port', make sure RAM is modified before exception is thrown. 2018-12-07 21:45:28 -03:30
Stephen Anthony abfc01b483 Rework trapping on 'read from write port' functionality.
The new code introduces a generic 'EmulationWarning' exception that can
be thrown for any reason.  The RWP functionality has been ported to use
this, with the main benefit that if we ever have to add new exceptional
cases, we no longer need to modify M6502 class; it will pick up on the
new exceptions and pass them to the EmulationWorker as necessary.

Functionally, the RWP stuff works the same as before, just with a
different implementation behind the scenes.
2018-12-07 21:19:44 -03:30
Stephen Anthony 6a9ae2e3a1 Added exception class for general warnings, separate from the one for fatal errors. 2018-12-07 20:56:48 -03:30
thrust26 ecb6c7a508 Implemented solution for #396 2018-12-07 20:47:06 +01:00
Stephen Anthony a7f8d67211 Some refactoring of snapshot code for future reference. 2018-12-07 15:22:39 -03:30
thrust26 979977befa fully implemented #395 2018-12-06 18:51:46 +01:00
thrust26 3733adb39c better snapshots, part 2 (buggy!) 2018-12-06 16:38:41 +01:00
thrust26 251449cacf Merge branch 'release/6.0' of https://github.com/stella-emu/stella into release/6.0 2018-12-06 14:25:41 +01:00
thrust26 bef5caafa5 1st part of implementing blended screenshots (see #395) 2018-12-06 14:24:07 +01:00
Stephen Anthony 26faaa8cce Minor updates for suggestions from clang. 2018-12-04 20:40:50 -03:30
Christian Speckner b58d843732 Clear fatal error flag on enetering the CPU main loop; code beautification. 2018-12-05 00:00:01 +01:00
Christian Speckner f08ba16acb Handle fatal errors on main thread. 2018-12-04 21:45:14 +01:00
Stephen Anthony b06893d384 Potential fix for issue #392 (input locked after exiting the debugger). 2018-12-04 13:19:57 -03:30
thrust26 2e4340911b fixed #394
extended trace step count to 10000 (preliminary fix for #393)
2018-12-02 11:20:10 +01:00
Stephen Anthony e36692bee3 Minor refactoring in CartDetector class. 2018-11-20 15:39:30 -03:30
Stephen Anthony f3a185f04a Fixes for minor warnings from cppcheck. 2018-11-19 11:08:44 -03:30
Stephen Anthony a8a0c57deb Updated ROM properties database for missing paddle controllers. 2018-11-19 10:38:34 -03:30
Stephen Anthony ae2bb58f0b Added ROM properties for various trakball hacks, thanks to alex_79. 2018-11-16 11:14:10 -03:30
Stephen Anthony e3873cce73 Moved final remaining bits of SDL-specific code out of src/emucore. 2018-11-13 20:43:12 -03:30
Stephen Anthony bf8b0b3a88 Updated ROM properties database for several ROMs
- Major update is adding 'Chetiry' 60K ROMs info.
2018-10-21 10:11:57 -02:30
Stephen Anthony cbd30fad02 Fix final clang warnings in Thumbulator.
It ended up being much easier than I realized.
2018-09-22 22:58:57 -02:30
Stephen Anthony f8f3805dae Fix minor warning from cppcheck. 2018-09-20 22:00:32 -02:30
Stephen Anthony 1bb19a05ba Restore const for Event class by using 'mutable' mutex. 2018-09-20 21:51:10 -02:30
thrust26 c038df6343 fixed #383
if globally enabled, disable game specific stereo and phosphor elements
changed global phosphor value label (Default -> Blend)
2018-09-20 10:20:12 +02:00
Christian Speckner 6d0614ef35 Guard Event.hxx against races. 2018-09-19 23:36:26 +02:00
thrust26 a6a762bbb4 reworked Stereo for all ROMs setting in AudioDialog 2018-09-19 22:24:25 +02:00
Christian Speckner 27956cff15 Fix switching between auto and manual ystart in GUI. 2018-09-17 22:19:33 +02:00
Stephen Anthony ea31d4b464 Fix crash in BUS/CDF/CM schemes.
- bank initialization must happen in Cart::reset(), not the individual c'tors.
2018-09-17 09:38:23 -02:30
Stephen Anthony 56d9bdc163 Add autodetection for 32KB variant of CTY ROM. 2018-09-16 23:13:37 -02:30
Stephen Anthony 7982f7cb9b Various updates to the 'CTY' scheme, all by SpiceWare:
- music support
- autodetection support
- creation of 60K ROMs

For the latter, I still need to see how we will distribute those ROMs, and get them added to the database.
2018-09-16 22:49:33 -02:30
Stephen Anthony 8f03a48f11 Partially restore a reverted commit.
- Since changing ystart/height no longer needs to call `TIA::frameReset()`, the method is no longer valid
- Remove the method, and all documentation that says it is necessary to call it
2018-09-16 21:44:17 -02:30
Christian Speckner 888556b124 Another pass at resolving ystart issues. Reverts 02b0c13a and b9bbbe1 . 2018-09-17 00:23:06 +02:00
Stephen Anthony 31f6dba87d 'Cartridge.StartBank' ROM property is now used by the core. 2018-09-14 20:57:36 -02:30
Stephen Anthony b9bbbe1381 Fix blank screen after exiting from GameInfoDialog. 2018-09-13 21:38:21 -02:30
Stephen Anthony d18f11afa2 Remove Serializable::name() method, and all reference to it in state files.
- this both speeds up load/save of state files, and makes them smaller
- affects both on-disk files, and Time Machine functionality
2018-09-13 20:50:23 -02:30
Christian Speckner 524943354e Remove unnecessary frame resets. 2018-09-14 00:34:21 +02:00
Christian Speckner 2f9fc4f525 Bug fixing, harcode min ystart to 0. 2018-09-13 23:23:49 +02:00
Stephen Anthony 5bc84bca52 Add 'Cartridge.StartBank' ROM property, to specify the startup bank for a ROM to use.
For now, this only modifies the properties database.  Still TODO is have the app use the information.
2018-09-11 10:23:39 -02:30
Christian Speckner e129391dbd Fixes, properly handle TV format any ystart changes from GUI. 2018-09-09 23:30:20 +02:00
Christian Speckner ab0e4d6bba Properly handle TV and ystart autodetection during runtime. 2018-09-06 23:47:17 +02:00
Stephen Anthony ce9b832f68 Improvements to logging for sound settings.
- Now shows all settings from AudioSettings (preset, resampler, etc)
- Only logs sound info when the settings have actually changed (similar to Framebuffer info)
2018-09-05 14:05:56 -02:30
Stephen Anthony b4dc729559 Added 'Arkyology' prototype ROM to properties database. 2018-09-05 12:48:11 -02:30
Christian Speckner 28f8dcc312 Get rid of strlen_s and strnlen_s, don't drive audio if sound is disabled. 2018-09-01 23:12:52 +02:00
Stephen Anthony fe0d29a795 Fix ZIP handling wrt what is a valid filename (take new extensions into account). 2018-08-31 23:29:19 -02:30
Stephen Anthony dce16d6f7c Make all Bankswitch types detectable with specific ROM filename extensions.
Use a map instead of linear search in Bankswitch class.
2018-08-31 22:04:31 -02:30
Stephen Anthony 09b3d980f3 Fixed 'stuck' notes when changing video modes.
This is most apparent in OSX, where toggling windowed/fullscreen mode can sometimes take up to one second,
and any sounds playing from the ROM become stuck until the operation completes.
Also present on other systems to some extent.
Sound is now muted until the operation is complete.
2018-08-31 20:52:56 -02:30
Stephen Anthony 404ab8ffcc Minor optimization in settings file parsing; don't copy a few strings. 2018-08-31 16:32:12 -02:30
Stephen Anthony 6b76031234 Fix error in parsing settings file for 'empty' values. 2018-08-31 16:15:38 -02:30
Stephen Anthony 65d23b4a6e Removed 'launcherexts' and associated LauncherFilterDialog.
Introduced 'launcherroms' argument, which specifies to show only ROMs or all files in the launcher.
This functionality is tied to a RMB context menu in the launcher; eventually we may add a checkbox to the UI for it.
2018-08-31 13:51:42 -02:30
Stephen Anthony f098636965 Fairly large restructuring of the 'BSType' code
- class has been renamed to 'Bankswitch'
- it is now a proper (static) class with namespacing

'Bankswitch' now contains all logic for determing what a proper ROM filename is.
So some functions have moved from LauncherFilterDialog to here (that class will be removed soon).

In the process, implemented issue 261 (file extension determines BS type to use).
2018-08-31 09:18:35 -02:30
thrust26 3b00fe45cd Revert "aspect ration now affects height instead of width"
This reverts commit 0b61a71e58.
2018-08-29 16:39:18 +02:00
thrust26 0b61a71e58 aspect ration now affects height instead of width
fixes #368
2018-08-29 16:01:01 +02:00
thrust26 e9a6deee70 reversed aspect ratio settings for NTSC50, PAL60 and SECAM60 2018-08-29 15:28:24 +02:00
Stephen Anthony fb07d250d9 Simplify AudioSettings class a little.
- Use only one c'tor, which fixes some warnings from Coverity
- Fix large compile times when AudioSettings class is changed
2018-08-29 09:10:55 -02:30
Stephen Anthony 6093bf8375 Fix signed/unsigned conversion warning in VS. 2018-08-28 22:32:56 -02:30
Stephen Anthony 46b07d14b5 Fixes for warnings from Coverity. 2018-08-28 22:13:02 -02:30
Stephen Anthony 0f8dc1f2bb Yet more fixes for warnings from cppcheck. 2018-08-28 17:00:00 -02:30
Stephen Anthony 7e4dc350f0 More fixes for suggestions from cppcheck. 2018-08-28 16:19:50 -02:30
Stephen Anthony 558b071fbb Some more fixes for warnings from cppcheck. 2018-08-28 14:21:01 -02:30
Stephen Anthony e5fb010631 Allow sound sample rate/fragment size to change dynamically.
- Move sound debugging output to logging facilities
- This should fix issue #348, but more testing is required

Bumped version # for beta release.
2018-08-28 11:01:52 -02:30
Stephen Anthony 13b9bbe5a4 More M6502 micro-optimizations. 2018-08-27 13:47:22 -02:30
Stephen Anthony c901f282bb A few micro-optimizations in the 6502 emulation (found by cppcheck). 2018-08-27 12:17:22 -02:30
Stephen Anthony 8c7488914d Fix some warnings generated by cppcheck (a C++ linter). 2018-08-27 11:09:03 -02:30
Christian Speckner eacfb41584 Remove debug code. 2018-08-26 11:14:18 +02:00
Stephen Anthony 2db48ae38b Fixes #332. 2018-08-24 10:12:34 -02:30
Stephen Anthony 2e2984864d Add timer/callback functionality to OSystem.
Previously this was done by SDL_AddTimer, but the new approach is much better:
- it is proper C++ (using std::thread and lambdas)
- It is not tied to the SDL toolkit, which is C-based
Also, re-added logic to reset events ~0.5 seconds after starting ROM emulation; this resets 'hold' events
2018-08-23 11:48:24 -02:30
Stephen Anthony 12b18e5b71 Fix issue #363; too eager pruning in previous commit. 2018-08-22 10:17:53 -02:30
thrust26 21b8fa133f dirty fix for #355 2018-08-22 11:10:45 +02:00
thrust26 858d6991ca fixes reversed dev.settings 2018-08-22 09:19:07 +02:00
thrust26 5f07ad3cdf more doc updates 2018-08-20 14:01:06 +02:00
thrust26 15e6e50293 fixed #356 2018-08-20 12:35:34 +02:00
thrust26 fb6c827470 added global stereo option to AudioDialog (TODO: use it)
removed '(*)' from AudioDialog (TODO: make everything immediate)
updated -help (this seems broken!)
2018-08-20 11:55:13 +02:00
Stephen Anthony 915e62f466 Fixed a few more warnings, and marked some code for later research. 2018-08-19 22:40:57 -02:30
Stephen Anthony 51b27340fd Fix warnings detected by clang. 2018-08-19 16:27:59 -02:30
Stephen Anthony e3bf1ffbd5 More updates to Visual Studio compiler settings:
- Increase warning level to 4, and fix a few new warnings
- Globally, all files are now explictly compiled in C++ mode
- For png and zlib code (that we didn't write), drop back to level 2
warnings and explicitly compile in C mode
2018-08-19 15:01:03 -02:30
Stephen Anthony 56437c38e6 Increased warning level in Visual Studio compiles.
Also fixed some new warnings that VS now finds.
2018-08-19 12:34:40 -02:30
Stephen Anthony 7ae6d84739 Completely remove ability to use a per-ROM properties file.
This 'feature' now seems unnecessary, and it complicates the code by having it.
2018-08-17 13:56:08 -02:30
Stephen Anthony 31acc92bbe Fix crashes when changing toggling fullscreen/windowed mode.
- Only allow such changes when in emulation mode, or a few other common ones (launcher, debugger)
  The idea is here that some dialogs have to be resized/repositioned when such a mode change occurs, and the UI core doesn't currently support that.
- Only render surfaces when they are visible (sounds logical enough, but the code didn't check for it).
2018-08-15 13:33:08 -02:30
thrust26 9ec6b0816d fixed #351 2018-08-15 15:28:09 +02:00
thrust26 4bc3373b37 made UI theme change immediate 2018-08-12 23:01:43 +02:00
thrust26 1fe5cd2b3f removed non implemented method 2018-08-12 22:48:35 +02:00
Christian Speckner 95867f91cd Switch to SDL_OpenAudioDevice & friends, fix silence with very tight buffer
settings.
2018-08-10 00:46:39 +02:00
thrust26 efb998129b fixes #342 2018-08-09 15:39:54 +02:00
Stephen Anthony ae96406fd4 Fix #345; color-loss not correctly initialized. 2018-08-09 10:54:26 -02:30
thrust26 1571860dc0 fix #341 2018-08-09 14:55:46 +02:00
Stephen Anthony 8298ad4d26 Fixed inconsistency in passing color data to parameters.
- Now uses 'ColorId' as the datatype; this is currently mapped to uInt32, but can change in the future if required
- Eliminates needless and annoying casts in various places; all colors are now 'ColorId' type
2018-08-08 13:09:10 -02:30
thrust26 f7d09c772d Fixes #339 2018-08-08 09:28:03 +02:00
thrust26 f3927b94c4 Merge branch 'release/6.0' of https://github.com/stella-emu/stella into release/6.0 2018-08-07 09:37:42 +02:00
thrust26 89b0759da5 fix #338 2018-08-07 09:37:25 +02:00
Christian Speckner 337c13882e Remove redundant code. 2018-08-06 23:45:28 +02:00
Christian Speckner 163b5ca999 Fix a regression in collision handling -> fixes Sky Skipper. 2018-08-06 23:25:33 +02:00
Stephen Anthony 78cb878c29 Fixed minor warning in Xcode.
Strange that VS only picked up the other instance of this issue, and neither gcc nor clang found either one.
2018-08-06 18:12:09 -02:30
Stephen Anthony b68f72dd50 Fix minor warning in Visual Studio. 2018-08-06 18:02:12 -02:30
Stephen Anthony 2406b8ad0f Use our own RNG instead of C-style rand() (fixes issue #336). 2018-08-06 14:28:48 -02:30
Stephen Anthony d71b33918a Slight rework of random number generator.
- break dependence on OSystem; source for seed could actually be anything (doesn't have to come from OSystem)
2018-08-06 14:18:58 -02:30
Christian Speckner 86a242a8cf Fix spurious failures of debugger breakpoints. 2018-08-06 17:53:44 +02:00
Stephen Anthony 68eec27c5c Make FilesystemNode class non-virtual.
- this class is never inherited, so it's pointless for it to have virtual methods
2018-08-06 11:14:57 -02:30
Christian Speckner af5eea286c Fix debugger start parameters:
* Pass parameters from DispatchResult to debugger
    * Fix default trap type (= read)
    * Remove fallout from branch merge
2018-08-06 09:31:13 +02:00
Stephen Anthony f2f952f09b Reworking of the FSNode classes, using smart pointers.
- For now, I simply use shared_ptr; long term, I will look into unique_ptr for more efficiency.
2018-08-05 22:32:11 -02:30
Christian Speckner e07617b618 Merge branch 'release/5.1' into release/6.0 2018-08-05 17:54:22 +02:00
Christian Speckner 4dde01f2f1 Typo; fixes #331 . 2018-08-04 23:38:28 +02:00
thrust26 56979052f9 made GameInfoDialog.Console settings immediate 2018-08-04 12:39:55 +02:00
thrust26 d9a1d2b7e5 trying to fix #328 2018-08-02 22:44:27 +02:00
thrust26 a24e042d1e changed "FPS" back into "fps" 2018-07-31 17:07:51 +02:00
Stephen Anthony 78d7e9c29a Fix minor warnings in Xcode. 2018-07-30 22:07:30 -02:30
Christian Speckner 6da398deaa Display Hz in console time. 2018-07-31 00:07:07 +02:00
Christian Speckner 81f216872d Update XCode project, fps -> FPS 2018-07-30 23:50:52 +02:00
Christian Speckner 9aeb40fc32 Display speed in OSD without decimals. 2018-07-30 23:40:48 +02:00
Christian Speckner 3a5572d3b9 Add measured FPS to OSD, squash a bunch of minor bugs. 2018-07-30 23:19:47 +02:00
Christian Speckner 89a6cb11d1 Remove busy waiting. 2018-07-26 20:55:47 +02:00
Stephen Anthony e691853f0e First pass at fixing superfluous re-draws in the UI.
- This addresses issue 158, and reduces CPU usage to near 0% when no changes are happening
- This returns the code to the same performance levels as version 3.x.
2018-07-25 08:48:21 -02:30
Stephen Anthony 949964bdf6 Oops, forgot something in the last commit; do not include header files twice. 2018-07-13 12:35:40 -02:30
Stephen Anthony c2bfeb5799 Fix compile failure when debugger support is disabled. 2018-07-13 12:31:37 -02:30
Stephen Anthony 1a97c5bc93 Minor updates to Xcode project.
Changed uInt32 to uInt64 in several places, standardizing on uInt64 for cycle-related variables.
2018-07-01 23:23:11 -02:30
Stephen Anthony 4329eb5c37 Add missing file in VS project, and fix minor compile warnings. 2018-07-01 21:43:22 -02:30
Stephen Anthony d8b4228ead Fixes for minor compile warnings in clang 6 and gcc 8.
Sorry that this is all I've been able to contribute for the past few weeks :(
2018-07-01 21:15:15 -02:30
Christian Speckner 258fc9c106 Add missing files, fix XCode build. 2018-07-02 01:06:46 +02:00
Christian Speckner f728a32731 More timing improvements. 2018-07-02 00:58:32 +02:00
Christian Speckner 621e0d9d79 Compile fix, more accurate timing. 2018-07-02 00:23:07 +02:00
Christian Speckner c270a45409 Merge branch 'feature/precise-audio' 2018-07-01 23:48:26 +02:00
Christian Speckner 2b23c81126 Support variable emulation speed. 2018-06-27 23:12:50 +02:00
Christian Speckner 5656051aae Tie in UI. 2018-06-25 00:30:52 +02:00
Christian Speckner 47bbdb679e Remove unnecessary code, don't spam if audio is disabled. 2018-06-24 22:48:28 +02:00
Christian Speckner 176507cb46 Fix memory corruption on console reset. 2018-06-23 01:18:35 +02:00
Christian Speckner ef5261689a Major audio settings overhaul. 2018-06-23 00:58:28 +02:00
Christian Speckner d127865dee Remove a leftover from refactoring. 2018-06-19 21:37:18 +02:00
Stephen Anthony 963905759e Controller/Genesis/Booster cleanup.
- Made BoosterGrip set defaults for analog pins, just like Genesis
- Removed superfluous call to update an unchangeable pin in Genesis
- Renamed Controller resistance constants to indicate that they are actually constants
2018-06-12 19:07:31 -02:30
thrust26 60519dbc6a minor fix for Booster.cxx
code cleanup in Genesis.cxx
2018-06-12 20:38:48 +02:00
thrust26 a9cd833975 fixes #317 2018-06-12 20:11:29 +02:00
thrust26 337375a2b2 Merge branch 'master' of https://github.com/stella-emu/stella 2018-06-10 15:10:17 +02:00
thrust26 93e42bc15f redefined Stella's PAL color palette 2018-06-10 15:10:04 +02:00
Christian Speckner 0fbd875783 Documentation. 2018-06-09 23:16:59 +02:00
Christian Speckner 8781889a7f Documentation, cleaup, fix race in frame stats. 2018-06-09 00:31:20 +02:00
Stephen Anthony 6cb9efac28 Updated OSX project file for EmulationWorker class.
Fixed minor compile warning, and made a method const.
2018-06-07 19:56:36 -02:30
Christian Speckner 8edc597189 Hook and fix up EmulationWorker -> threading works, pick'n'pile is happy. 2018-06-07 23:38:14 +02:00
Christian Speckner ea94f5e795 Scheduling fixes. 2018-06-07 21:02:08 +02:00
Christian Speckner d8732c9378 Uups, fix evident error. 2018-06-07 20:59:15 +02:00
Christian Speckner 773a0cf906 Cleanup. 2018-06-07 20:55:33 +02:00
Christian Speckner afb1e1d1e1 Emulation worker. Currently untested and disconnected. 2018-06-07 20:54:30 +02:00
Stephen Anthony e0cf1d1dd5 Fix crash in OpenBSD framebuffer/texture cleanup.
- It seems that textures must be destroyed *before* the renderer is destroyed
- This isn't mentioned anywhere in the SDL docs, and it works everywhere else, but in any event it is now fixed
2018-06-07 12:46:26 -02:30
Stephen Anthony cf34707e27 Use smart pointer to store static scanline data in FBSurface.
- in working on the OpenBSD crashing issue, I noticed that we can use a unique_ptr here
2018-06-06 17:57:15 -02:30
thrust26 a3955553b8 added missing auto detection for manual selected display format "Auto-detect" (50Hz ROM after 60Hz formats) 2018-06-03 11:39:42 +02:00
thrust26 f37651a46d fixed missing ConsoleInfo.DisplayFormat update 2018-06-02 17:18:10 +02:00
Stephen Anthony 1eee879e29 Make sure onscreen messages are shown, even when a console doesn't exist. 2018-05-27 16:41:42 -02:30
Stephen Anthony cc4bd29a03 Fix minor warning (nullptr is the proper C++ constant). 2018-05-27 16:17:12 -02:30
thrust26 f726ad0206 fix #314 2018-05-27 14:31:02 +02:00
Christian Speckner a5ce457b72 Implement triple buffering in TIA. 2018-05-27 00:26:36 +02:00
Christian Speckner 77f149eab9 Fix stepping after breakpoint. 2018-05-24 00:19:49 +02:00
Christian Speckner a14cf8d077 Refactoring: start debugger from dispatch loop. 2018-05-24 00:13:43 +02:00
Christian Speckner ae0faaabfc Fix cycle counting in CPU. 2018-05-22 00:18:07 +02:00
Stephen Anthony ec1e65d683 Make Champ Games that use SaveKey use it by default. 2018-05-20 14:33:55 -02:30
Stephen Anthony 02dbbca861 Fixed bug with autodetecting SaveKey controller.
- The cycles were being reset to the current system cycles, when in the old
code they were not being updated at all (other than being normalized when the
old system cycles could be running backwards).
- This change restores behaviour to that in 5.0.2.
2018-05-20 14:33:44 -02:30
Stephen Anthony b8978aa76e Variables declared as uInt64 should be serialized as such. 2018-05-18 22:55:57 -02:30
Christian Speckner ed6eae6a67 Rerender only if there is actual change. 2018-05-17 22:56:07 +02:00
Christian Speckner 639b6af1e9 Fix missing audio reset. 2018-05-16 13:09:50 +02:00
thrust26 adbde4e4db preliminary audio dialog changes 2018-05-15 20:51:29 +02:00
Stephen Anthony dc77f5d5f1 Variables declared as uInt64 should be serialized as such. 2018-05-12 17:04:33 -02:30
Christian Speckner f01553bdc7 More audio queue tuning -> less lag. 2018-05-12 16:21:58 +02:00
Stephen Anthony 741515a520 Fix minor compile warnings generated by clang:
- mostly change pointer -> 0 to use 'nullptr'
 - some commenting and formatting fixes
2018-05-11 21:01:40 -02:30
Christian Speckner 0c67bff939 Tuning, TODO 2018-05-12 00:18:09 +02:00
Christian Speckner 2da0ffa2f5 Rework available sampling rates (44100, 44800, 96000), add resampling.quality parameter. 2018-05-12 00:15:29 +02:00
Christian Speckner 3bac41dd46 Factor out resampling. 2018-05-09 00:38:01 +02:00
thrust26 1c10e590af fixed missing prefix for "thumb.trapfatal" 2018-05-08 21:29:29 +02:00
Christian Speckner 6cc8a22978 More timing tuning, coding style. 2018-05-06 23:45:21 +02:00
Christian Speckner a58db7e62d Make sure that all audio samples are generated during each timeslice. 2018-05-05 01:08:09 +02:00
Christian Speckner d2c930886b Sanitize and match emulation timing
-> no more perceivable audio latency
-> fewer underruns
2018-05-05 00:47:48 +02:00
Christian Speckner 9079d77de0 Cosmetic changes, add audio todo. 2018-05-02 21:30:38 +02:00
Christian Speckner c905b01fca Merge branch 'master' into feature/precise-audio 2018-04-25 22:49:00 +02:00
Stephen Anthony a978bb527e Fix compile error when debugger support is disabled. 2018-03-31 20:33:25 -02:30
Christian Speckner b5afa69764 Make coverty happy. 2018-03-30 22:04:42 +02:00
Stephen Anthony 382a39a6c7 More fixes for issues reported by Coverity. 2018-03-30 10:51:56 -02:30
Stephen Anthony 698beaec8b Fixes for various issues reported by Coverity. 2018-03-24 16:58:08 -02:30
Stephen Anthony 0908a92da1 Continuing with the large refactoring of EventHandler:
- all keyboard-related stuff moved into PhysicalKeyboardHandler class
- all snapshot-related stuff moved directly into PNGLibrary class
- EventHandler class is now ~1300 LOC, which while still large, is much better than 2500 LOC
2018-03-24 12:36:00 -02:30
Stephen Anthony 0cde1ec4b9 Minor refactoring with Controller::isAnalog() usage. 2018-03-18 16:13:28 -02:30
Stephen Anthony 9a4b14392b Minor refactoring of Controller class:
- a controller can now answer whether it is intrinsically an analog controller
2018-03-17 20:03:05 -02:30
Stephen Anthony 7eab28b2ef Use smart pointer for joystick in PhysicalJoystickHandler. 2018-03-17 19:44:47 -02:30
Stephen Anthony 76b6026d30 First pass at reworking EventHandler, splitting it up into more manageable pieces.
For now, joystick-related stuff is moved into its own classes.
No improvements are made yet; just refactoring and moving code around.
This reduces EventHandler from ~2500 lines to ~2000 lines.
2018-03-17 18:00:44 -02:30
Christian Speckner d8178f546b Make sure that the hardware state is up to date before entering the debugger. 2018-03-13 23:38:31 +01:00
Christian Speckner 593ec2fdc9 Make sure that the hardware state is up to date before entering the debugger. 2018-03-13 22:13:35 +01:00
Christian Speckner fbbfa222a0 Fix a detail in audio block simulation -> doctor sounds correct 2018-02-13 23:08:20 +01:00
Christian Speckner 5c1bd83904 Merge branch 'master' into feature/precise-audio 2018-02-12 23:32:03 +01:00
Christian Speckner 01c78842d6 Serialization fix. 2018-02-12 23:21:02 +01:00
thrust26 2a3bb4329e load and update existing game specific properties file 2018-02-12 16:47:03 +01:00
Christian Speckner d65ac4875f Minor missile starfield fix. 2018-02-09 00:59:17 +01:00
Christian Speckner b8af22cd67 Fix playfield signal during hblank. 2018-02-08 20:53:42 +01:00
Christian Speckner b30fa0df98 And another collision fix. 2018-02-07 23:13:16 +01:00
Christian Speckner 6b6fb9140f More HMOVE collision fixes. 2018-02-07 23:00:58 +01:00
Christian Speckner 07f1051be0 Tentative fixes for collisions during HBLANK. 2018-02-06 23:32:02 +01:00
Stephen Anthony 2874a7c504 Fixed some compiler warnings from clang.
Refactored Stack::replace() to use Stack::applyAll() lambda instead.
2018-02-06 15:11:16 -03:30
thrust26 564e014620 removed FLAT_UI code from TimeLineWidget
added toggle mode button to TimeMachineDialog
2018-02-06 12:46:27 +01:00
thrust26 1fa00f2372 initial wind when entering TM dialog causes message now
(TODO: try to propagate key into dialog instead)
2018-02-05 19:57:41 +01:00
thrust26 1569ee1c6b minor code cleanup 2018-02-05 13:45:34 +01:00
thrust26 33756b2481 fixed a little merge error 2018-02-05 13:39:13 +01:00
Christian Speckner 7d7ebb8d03 Merge branch 'master' into feature/precise-audio 2018-02-04 23:50:16 +01:00
Christian Speckner f7c445fb7c Merge branch 'release/5.1' 2018-02-04 23:48:45 +01:00
Christian Speckner ba549e1d8a Improve PF collision handling during hblank. 2018-02-04 23:18:30 +01:00
thrust26 3ab2ddb870 fixed EventHandler logic 2018-02-04 21:00:10 +01:00
Stephen Anthony 9e53641add Time machine rewinds are now triggered at the same time as entering the dialog. 2018-02-04 11:14:59 -03:30
Stephen Anthony 26096fcc47 Fixed some warnings, and updates for 5.1 release. 2018-02-03 19:29:27 -03:30
Stephen Anthony 6c5bddcdf8 Time Machine dialog now resizes correctly:
- in 2x mode, it takes up the maximum amount of space
- in larger modes, it takes up the same relative amount of space: ~80% width
2018-02-03 17:27:52 -03:30
Christian Speckner 803b85343a Tuning. 2018-02-03 01:23:19 +01:00
Christian Speckner cb89d09c7f Refactoring: remove framerate from OSystem and Console. 2018-02-03 01:01:02 +01:00
thrust26 f4db8e4816 fixed zoom settings via hotkey (made persistent again) 2018-02-02 22:51:22 +01:00
thrust26 97a0638845 Added (fixed) tickmark intervals to SliderWidget 2018-02-01 18:21:57 +01:00
Christian Speckner 396dd637af Rework dispatch loop. 2018-01-31 20:44:39 +01:00
Christian Speckner 7f83e776b2 Keep book of the number of cycles spent during emulation. 2018-01-31 19:29:37 +01:00
thrust26 f56286fac9 reordered frame stats to make more sense 2018-01-31 08:52:52 +01:00
thrust26 7970955353 aligned transparency with TimeMachineDialog
move slightly away from corner
2018-01-31 08:37:31 +01:00
thrust26 eb96e1ca49 reduced TimeMachineDialog transparency
frame stats now always displays the real frameRate
2018-01-30 09:06:03 +01:00
Christian Speckner d70b0d8c40 Audio state serialization. 2018-01-29 22:44:06 +01:00
Christian Speckner 89f3f4c9b8 Merge branch 'master' into feature/precise-audio 2018-01-29 21:18:36 +01:00
Christian Speckner 87c59db4e0 Merge branch 'release/5.1' 2018-01-29 21:17:00 +01:00
Christian Speckner 13eefbb542 Make compiler happy. 2018-01-29 00:09:21 +01:00
Stephen Anthony de7fd7401b Synchronized shortcuts in TimeMachine to match those from EventHandler. 2018-01-28 12:21:22 -03:30
thrust26 966ba155ed more response to SliderWidget added
units to SliderWidget added
enhanced various dialogs with slider units
2018-01-28 14:37:31 +01:00
thrust26 05d17496ab minor wording fix 2018-01-28 11:35:14 +01:00
thrust26 d7cc2036df some refinements for additional save states creation 2018-01-28 11:21:52 +01:00
thrust26 d2177ea610 added extra save state when starting time machine navigation
(some TODOs left, see EventHandler and TimeMachineDialog)
2018-01-28 10:15:39 +01:00
Christian Speckner 6b984a8563 Avoid race condition in pause, switch to shared_ptr for simpler semantics. 2018-01-28 00:27:25 +01:00
thrust26 8c0b212207 Overlapped dialogs are (partially) toned down 2018-01-26 12:55:05 +01:00
thrust26 f58e914729 focus highlighting added to more widgets
added some missing tab keys to debugger
fixed frame colors for CheckboxWidget and RadioButtonWidget
brightened inverted highlight color for "Light"
2018-01-26 11:33:46 +01:00
Christian Speckner 4528b9067a Assorted fixes -> works (module timing glitches). 2018-01-25 22:48:00 +01:00
Christian Speckner 8198f6ccaf Crackling and screeching.... but it is correlated with the TIA :) 2018-01-25 20:48:34 +01:00
thrust26 4c39fa3c68 some more focus highlighting added
made most sliders wider by default
2018-01-25 17:00:41 +01:00
thrust26 920b051f02 redesigned SliderWidget
better visual reaction of EditTextWidget and PopUpWidget
improved BrowserDialog
small refinement for ButtonWidget
2018-01-25 15:10:37 +01:00
Christian Speckner 4ec553785f Implement and connect audio emulation. 2018-01-24 22:20:44 +01:00
thrust26 d179b8ebe8 Updated ScrollBarWidget
Refined LauncherDialog
Added missing Ellipsis to StellaFont.hxx
2018-01-24 20:53:00 +01:00
thrust26 5bd33885e3 title bar added to all dialogs 2018-01-24 14:37:07 +01:00
thrust26 41827e03de removed some superfluous includes 2018-01-23 19:53:36 +01:00
thrust26 5757eccfcf enabled FLAT_UI code, removed old code 2018-01-23 18:03:00 +01:00
Christian Speckner f1b5421c17 Introduce and wire audio emulation core. 2018-01-23 13:41:14 +01:00
thrust26 a8b3c0d74d reordered frame stats top line (makes more sense this way) 2018-01-21 11:05:00 +01:00
thrust26 a5e7911930 disabled test for "auto" frame rate 2018-01-21 10:19:28 +01:00
Christian Speckner 6fe5f3b197 Merge branch 'release/5.1' 2018-01-21 09:38:42 +01:00
Stephen Anthony 1055a4bd06 Minor cleanup of warnings in FrameBuffer class. 2018-01-20 20:51:46 -03:30
thrust26 2d03a2d059 aligned implementation parameter of handleEvent with definition parameter 2018-01-20 20:49:57 -03:30
thrust26 b67b795642 larger font for frame stats 2018-01-20 20:49:48 -03:30
thrust26 27291dd5d2 small fix for benchmark commit 2018-01-20 20:49:14 -03:30
thrust26 436c380a7e benchmark: frame stats now display real frame rate when 'Auto' is not selected 2018-01-20 20:49:05 -03:30
thrust26 2e51511c80 message for SaveKey/AtariVox EEPROM access added 2018-01-20 20:41:29 -03:30
thrust26 7b8dff8e46 when strings are shortened, ellipsis is added at the END now 2018-01-20 20:12:47 -03:30
thrust26 6f7ff023a6 generic shadowed char/string drawing added
TimeMachineDialog fully transparent now (experimental)
info stats indicates scanline/frame rate changes in red
2018-01-20 20:12:35 -03:30
thrust26 72ff2a40fa developer/player settings added to frame stats overlay 2018-01-20 20:11:54 -03:30
thrust26 a1b54680bd frame stats overlay made transparent 2018-01-20 20:10:39 -03:30
Stephen Anthony 9e403826d2 Fixed compilation when '--disable-debugger' is used. 2018-01-20 18:34:19 -03:30
thrust26 40615be9be Revert "fix repeated ESC from debugger", there is a more fundamental problem
This reverts commit 1b5ac9d3b5.
2018-01-20 21:48:24 +01:00
thrust26 b3e582209f fix the fix 2018-01-20 21:27:05 +01:00
thrust26 1b5ac9d3b5 fix repeated ESC from debugger 2018-01-20 21:22:01 +01:00
thrust26 7d9b7388c9 ESC key exits Debugger too
many keys are enabled now during PAUSE mode too
2018-01-20 18:40:25 +01:00
Stephen Anthony d7bcde29dc A different implementation of testing whether debugger can be exited.
- basically check whether the current dialog is the 'base' one (ie, the debugger window)
 - this solution is more robust, in that we don't have to modify every dialog that can appear in the debugger
2018-01-20 11:45:07 -03:30
thrust26 9263e7c62f refactored ESC key handling
prevent exiting debugger from within Options Dialog (hack)
2018-01-20 10:53:54 +01:00
Stephen Anthony df119ba505 Minor cleanup of warnings in FrameBuffer class. 2018-01-19 18:32:11 -03:30
thrust26 78b807efba ESC allows exiting Pause mode, TimeMachine mode and Command Menu. 2018-01-19 12:44:07 +01:00
thrust26 4c9cfad70b aligned implementation parameter of handleEvent with definition parameter 2018-01-19 10:45:29 +01:00
thrust26 af19f9f2b8 enter debugger from time machine mode option added 2018-01-19 10:35:52 +01:00
thrust26 98fcb51819 larger font for frame stats 2018-01-18 23:06:51 +01:00
thrust26 a6bea6438f fix #279 2018-01-17 19:29:36 +01:00
thrust26 a6ea393905 small fix for benchmark commit 2018-01-17 19:12:39 +01:00
thrust26 b111a8c127 benchmark: frame stats now display real frame rate when 'Auto' is not selected 2018-01-17 19:03:25 +01:00
thrust26 0906997d82 message for SaveKey/AtariVox EEPROM access added 2018-01-17 10:27:18 +01:00
thrust26 43be89f124 when strings are shortened, ellipsis is added at the END now 2018-01-16 18:16:56 +01:00
thrust26 802606ce29 Merge branch 'master' of https://github.com/stella-emu/stella 2018-01-16 11:14:47 +01:00
thrust26 a577b0f9c2 generic shadowed char/string drawing added
TimeMachineDialog fully transparent now (experimental)
info stats indicates scanline/frame rate changes in red
2018-01-16 11:14:26 +01:00
Christian Speckner 317f7391c2 Merge branch 'master' into feature/precise-audio 2018-01-15 23:53:35 +01:00
Christian Speckner 6cd7eb3821 Merge branch 'release/5.1' 2018-01-15 23:50:18 +01:00
thrust26 b22c292f3c developer/player settings added to frame stats overlay 2018-01-15 20:25:28 +01:00
thrust26 8583883795 Merge branch 'master' of https://github.com/stella-emu/stella 2018-01-15 14:44:56 +01:00
thrust26 cef50e4368 frame stats overlay made transparent 2018-01-15 14:44:09 +01:00
thrust26 f241dfd7b7 fixed compressStates(), now, with compression enabled, the first element is always kept and the horizon matches
missing "framerate" added, now changes are persisted.
2018-01-10 11:48:06 +01:00
Stephen Anthony 29499775dc Fixed compilation when '--disable-debugger' is used. 2018-01-09 23:16:50 -03:30
Christian Speckner 77158fd845 Always make sure that hardware state is consistent with a full step before dispatching the debugger.
* Allows to revert much of the complexity of my previous fix.
2018-01-07 00:31:24 +01:00
Christian Speckner c0edcaf0c9 Sanitize halt and hardware state handling after CPU dispatch. 2018-01-06 23:33:52 +01:00
Stephen Anthony f9d243e503 Fixed incorrect size in memset; this time I'll sizeof. 2018-01-05 22:03:42 -03:30
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
Stephen Anthony a15d5d8b06 Properly integrate MouseButton enum into the GUI core:
- The previous code used enumerations for DialogContainer, and constants for everything in src/gui
 - It took me over 3 hours to determine that a '1' in the first didn't mean the same as a '1' in the second
 - If ever there was a reason for strongly named constants (enum class), this was it.
2017-12-29 16:56:09 -03:30
Stephen Anthony 542fed69ed Collapsed MouseButton enum into just buttons, removing state (pressed or released).
- By itself, this first patch doesn't seem to accomplish much, but it leads into patch 2
 - Patch 2 will extend usage of MouseButton enum all throughout the GUI core
2017-12-29 16:05:07 -03:30
Stephen Anthony e6dcce60de Convert raw enum to 'enum class'. 2017-12-22 23:57:40 -03:30
Stephen Anthony 93dcc9807d Integrate 'TIATypes' into 'TIAConstants'; they serve the same purpose. 2017-12-22 23:47:07 -03:30
Stephen Anthony ad69e8900d Time Machine dialog can now be toggled by pressing 'T'.
- Note that the dialog is currently empty
 - See src/gui/CommandDialog for example of how to fill this dialog box
2017-12-22 12:28:06 -03:30
Stephen Anthony cbb494d7ad HiDPI fixes for framebuffer messages. 2017-12-21 23:04:17 -03:30
Stephen Anthony 44c5882920 Use 'enum class' instead of raw enum. 2017-12-21 19:53:54 -03:30
Stephen Anthony 4250f5d102 Refactor EventHandler kbdXXX functions into StellaKeys:
- These functions did not really have anything to do with EventHandler
 - StellaKeys is the proper place, since they're testing against a StellaMod
 - This removes the need to include 'EventHandler.hxx' in many header files, again reducing dependencies
2017-12-21 19:44:18 -03:30
Stephen Anthony 6181c3fbe0 Updated VS project files for recent class renames.
- Also fixed several classes in the wrong place compared to their
on-disk location.
2017-12-20 22:27:13 -03:30
Stephen Anthony 7890a94144 Several large infrastructure changes for upcoming Time Machine stuff:
- renamed Rewinder and associated dialog to TimeMachine and friends
 - changed EventHandler state enum to stronger 'enum class' type (and associated changes to the codebase)
 - moved EventHandlerState into separate class, allowing a few files to not need to include EventHandler.hxx (reduce compile dependency)
 - plumbed EventHandlerState::TIMEMACHINE into the codebase; still TODO is activate it and add a usable dialog)
2017-12-20 21:56:22 -03:30
Stephen Anthony 6313c98fdc Almost all ROM properties are now updated to RomHunter v14.
- I will take a quick look over them again, to make sure I didn't miss any new ROMs.
2017-12-20 18:41:24 -03:30
Stephen Anthony c6acb622cc Updated ROM properties up to 'T'. 2017-12-20 16:43:04 -03:30
Stephen Anthony 81179ab34f Revert handling of broken F8 ROMs; we can turn off randomization to make them work. 2017-12-20 14:47:17 -03:30
Stephen Anthony 63b3b2ab1e Updated ROM properties to 'R'.
Fixed F8 scheme to not randomize 'special' ROMs (those hardcoded with a certain startup bank).
Bumped state file version number.
2017-12-20 14:23:34 -03:30
thrust26 0826ce6bd6 Made collisions editable 2017-12-20 18:18:07 +01:00
Stephen Anthony 57036823ea ROM properties updated up to 'M'. 2017-12-20 11:05:20 -03:30
Stephen Anthony ad78fbaa07 Updated ROM properties up to 'E'. 2017-12-19 22:22:11 -03:30
thrust26 e9ef45ab0a minor consistency fix and doc updates 2017-12-19 18:10:01 +01:00
thrust26 7259af1583 "Light" color fix 2017-12-19 16:56:01 +01:00
thrust26 d7a34ec7dd 'tab' key skips disabled widgets
'ghost' read traps are displayed by 'RTrapG'
2017-12-19 09:01:26 +01:00
thrust26 b280a3ed27 Merge branch 'master' of https://github.com/stella-emu/stella 2017-12-18 21:56:26 +01:00
thrust26 fabf812543 developer dialog Horizon enable fix
FLAT_UI fixes for disabled elements
2017-12-18 21:56:07 +01:00
Stephen Anthony 042d4bc812 Updated ROM properties for ROMs starting with 'B' and 'C'. 2017-12-18 16:10:15 -03:30
Stephen Anthony dd5a46880e Some updates to dialog positioning in preparation for HiDPI.
- note that these are fixes that are needed with or without HiDPI; testing HiDPI just exposed them as bugs
 - also fixed some minor warnings and formatting
2017-12-18 15:15:57 -03:30
thrust26 481c85c0c3 added option for 'ghost' read traps
update documentation accordingly
removed reload requirements for Time Machine
2017-12-18 19:16:41 +01:00
thrust26 e5216d4f90 added index to conditional trapif/breakif/savestateif display 2017-12-18 13:28:23 +01:00
thrust26 50c8c5c266 fixed name resolution for trapread 2017-12-18 13:09:03 +01:00
Stephen Anthony 200b5cfe87 Updates to ROM properties from RomHunter:
- for now, only newly added ROMs and those starting with 'A' are included
2017-12-18 00:36:25 -03:30
thrust26 b76566e864 line drawing method added to FBSurface
inactive cells are displayed as crossed out in FLAT_UI
2017-12-17 16:43:05 +01:00
thrust26 7f08d9b74c some more UI polishing 2017-12-17 13:28:23 +01:00
thrust26 eeb1491efd polishing FLAT_UI 2017-12-17 12:16:37 +01:00
thrust26 b05d686891 'Light' palette polishing 2017-12-17 10:09:59 +01:00
thrust26 1f2062feeb Merge branch 'master' of https://github.com/stella-emu/stella 2017-12-17 00:48:46 +01:00
thrust26 19730fa183 third 'uipalette' scheme 'Light' added
modernized UI via 'FLAT_UI' preprocessor define added
2017-12-17 00:48:30 +01:00
Christian Speckner e5d7c23412 Update TIA and RIOT state in lockstep with the CPU if any debugger expressions are registered. 2017-12-16 21:29:28 +01:00
thrust26 0e5a444699 Merge branch 'master' of https://github.com/stella-emu/stella 2017-12-16 09:46:50 +01:00
thrust26 31b459ac84 fixed #269 2017-12-16 09:46:25 +01:00
Christian Speckner 8e7d0aa7b3 Fix frame manager serialization. Closes #267. 2017-12-15 23:53:11 +01:00
thrust26 0d609f6845 renamed '_cycles' into '_icycles' (fits better) 2017-12-15 19:12:46 +01:00
thrust26 9f7270a70d '_cycles' pseudo register added (returns cycles of last instruction) 2017-12-15 18:13:29 +01:00
thrust26 7d40d5b1f8 "Time Machine" name change 2017-12-15 18:10:40 +01:00
Stephen Anthony bf6d28e181 Added basic infrastructure for what will become the rewind dialog. 2017-12-15 13:19:29 -03:30
Stephen Anthony 434d2dfc83 Converted some raw enum to 'enum class' in FrameBufferConstants. 2017-12-14 21:29:45 -03:30
Stephen Anthony 31da99f48b Convert some raw enum to C++11 'enum class' in EventHandlerConstants. 2017-12-14 21:04:19 -03:30
thrust26 ba9d809109 state compression improved
RewindManager class refactored for multiple rewinds/unwinds
additional keys for faster rewinding added
docs updated
2017-12-14 14:25:02 +01:00
thrust26 e2301dfd5e fine tuning on interval factor and state compression
rewind now displayed immediately (instead of "Paused")
two initial rewinds in continuous rewind mode fixed
Horizon widget disabled when Uncompressed size == Buffer size
fixed minimum Interval
2017-12-13 19:15:09 +01:00
thrust26 20eb97ce14 savestate position in list display in message added
compressStates loop fixed and slightly optimized
fixed minimal size value in Settings
2017-12-13 12:31:18 +01:00
thrust26 e465112c02 rewind/unwind basically working
changed values, UI and settings for rewind interval and horizon
2017-12-12 17:07:05 +01:00
Christian Speckner 6500ab0613 Compile thumbulator unconditionally. 2017-12-10 00:22:18 +01:00
thrust26 a1d0319042 corrected defaults for aspect ratio to 0.91 (NTSC)/1.09 (PAL)
see https://en.wikipedia.org/wiki/Pixel_aspect_ratio
2017-12-08 11:33:55 +01:00
Stephen Anthony a79ccf400f Minor updates to rewind:
- comments are now more in line with what actually happens when adding a state
- changed Serializer::reset() to Serializer::rewind(), to more accurately indicate what it does
2017-12-06 11:44:40 -03:30
thrust26 90be9bb607 fixed DTHUMB_SUPPORT error 2017-12-06 13:03:27 +01:00
thrust26 ec5a3cdec5 thumb.trapfatal added to developer settings dialog
restructured developer settings dialog
duplicated debug colors are changed automatically
updated doc and screenshots accordingly
2017-12-06 12:15:16 +01:00
thrust26 87d5886067 fixed #264 2017-12-06 11:01:33 +01:00
Christian Speckner 833c4de688 Silence compiler warning. 2017-12-05 21:20:27 +01:00
Christian Speckner 2b5416eade Don't trap write accesses to datastream pointers & friends in CDF / BUS. 2017-12-05 20:29:22 +01:00
Stephen Anthony 1f43539f10 Changed Switches::update() to not evaluate settings on every call.
Basically, removed determination of whether we're in 2600 or 7800 mode
from the hot path, and moved it to a method that is called only when
it changes (currently that method doesn't seem to be called at all, since
it seems like 'console' setting cannot be changed dynamically).
2017-12-04 14:12:06 -03:30
Christian Speckner ed25664c46 Add two "grace lines" of black when autodetecting ystart. 2017-12-04 00:25:54 +01:00
Christian Speckner 5736f93fcd Add two "grace lines" of black when autodetecting ystart. 2017-12-04 00:25:03 +01:00
Christian Speckner e88751638b Gut current audio code. 2017-12-01 23:17:16 +01:00
Stephen Anthony a4f33127ba Added ROM properties for 'Super Cobra Arcade'. 2017-12-01 15:42:33 -03:30
thrust26 bd52880a46 minimal Cart class refactoring 2017-12-01 12:03:19 +01:00
thrust26 d333553ec2 startup bank for E0 bankswitch type randomized 2017-12-01 10:08:10 +01:00
thrust26 7fc1c54d4c more E7 refactoring/cleanup 2017-11-30 17:26:58 +01:00
Stephen Anthony 178c5b4eaf Changed 'const' to 'constexpr' in several places.
Note that constexpr should be preferred, since it _guarantees_ compile-time
usage, whereas 'const' alone doesn't necessarily do that.  So constexpr
is guaranteed to be more efficient.
2017-11-30 10:36:31 -03:30
thrust26 1d5333969b startup bank for 3F getting randomized 2017-11-30 11:36:21 +01:00
thrust26 3fddc7fcc3 minor merge update 2017-11-30 09:12:35 +01:00
Stephen Anthony f7f9a8a3df Re-generate DefProps.hxx from stella.pro changes. 2017-11-29 21:07:39 -03:30
Christian Speckner 53a2d59e02 Add a bunch of missing overrides. 2017-11-30 01:22:41 +01:00
Christian Speckner 2b285060fe Remove dead code. 2017-11-30 01:14:22 +01:00
thrust26 2a4db8e11e startup bank randomization info added to widgets 2017-11-29 20:48:19 +01:00
thrust26 30cb1fe14d RewindManager fix for ROM startup rewind
-bankrandom support for E7(8K) added
2017-11-28 23:20:06 +01:00
thrust26 a239d94df9 E78K signature fix 2017-11-28 22:25:09 +01:00
thrust26 b3e92842e5 some more refactoring 2017-11-28 22:00:42 +01:00
thrust26 8d42af251e some magic numbers replaced
(and fixed a bug regarding offset into myCodeAccessBase)
2017-11-28 16:38:01 +01:00
thrust26 b0a373285b fixed irritating variable name 2017-11-28 14:19:04 +01:00
thrust26 5760167f31 E78K added to doc
missing files added
2017-11-27 22:51:41 +01:00
thrust26 053b79fc3e E7 bankswitching classes refactored
E78K bankswitching added
2017-11-27 22:49:53 +01:00
thrust26 4085469dbc VERY minor copy&paste error fix 2017-11-27 11:51:25 +01:00
Christian Speckner 35ae38572c Clear FB before running autodetection. 2017-11-26 23:24:05 +01:00
Christian Speckner 1c10f55bb0 Mute audio while autodetection runs. 2017-11-26 23:10:43 +01:00
thrust26 cc55724d49 Revert "changed saved game properties (Control + s) path to defaultSaveDir()"
This reverts commit ae0a3c1ba5.

According to documentation, the contents should overwrite stella.pro.
2017-11-25 12:36:11 +01:00
thrust26 df0a3720db fix to developer settings dialog parameters 2017-11-25 12:33:38 +01:00
thrust26 ae0a3c1ba5 changed saved game properties (Control + s) path to defaultSaveDir()
Question: Should those files overwrite Stella.pro automatically?
2017-11-25 11:18:05 +01:00
thrust26 7c46f031f3 further Developer settings dialog improvements 2017-11-25 11:12:17 +01:00
thrust26 08f29ca808 two sets for developer related options defined
reverted some changes previous changes ("colorloss", "stats" and "grabmouse" are persisted again)
2017-11-24 20:38:21 +01:00
thrust26 5d0bc45a09 refactored RadioButtonWidget into own class 2017-11-24 12:33:22 +01:00
thrust26 44d6cf15a0 RadioButtonWidget added
disabled CheckboxWidget still shows status
2017-11-24 11:23:45 +01:00
thrust26 63f8605977 made "tia.zoom" hotkeys toggle settings temporary only 2017-11-23 23:40:37 +01:00
thrust26 d6680a681f made "color loss", "stats" and "grab mouse" hotkey toggles temporary only
added messages for "grab mouse" toggle
updates doc for "grab mouse" toggle
2017-11-23 22:13:37 +01:00
thrust26 e18474a5e9 frame stats added to Developer Setting ("dev.stats" now) 2017-11-23 11:35:28 +01:00
thrust26 72710aa323 manual color-loss toggling fixed 2017-11-23 10:46:22 +01:00
thrust26 cddf4f2f2a 3rd attempt to get Challenge HES right. :) 2017-11-23 08:32:28 +01:00
thrust26 ac96f18508 updated note for Challenge (NES) 2017-11-23 08:23:32 +01:00
thrust26 66a2372512 removed special startup bank for "Challenge (HES) (PAL).bin" (2 in 1 ROM) 2017-11-22 22:26:22 +01:00
thrust26 984ae0156e preparation for RewindManager parameters 2017-11-22 20:07:55 +01:00
thrust26 956f284a51 Debugger UI tab refactored (font size selection and debugger size)
debugger disassembly reformatted
2017-11-21 16:30:33 +01:00
thrust26 7a65a4445b replaced "..." with ellipsis char 2017-11-21 11:01:32 +01:00
Stephen Anthony be6250b29b More header fixes (this time in 'src/gui'). 2017-11-20 15:58:32 -03:30
Stephen Anthony 5b6fabcf3c Header file fixes for remaining files in 'emucore'. 2017-11-20 15:27:05 -03:30
thrust26 01d3a29f66 conditional savestates in debugger added 2017-11-19 18:52:27 +01:00
Stephen Anthony b098f29e9d Re-create DefProps.hxx from stella.pro.
Hmm, it seems I can do this from the Git bash terminal in Windows; cool.
2017-11-19 11:20:55 -03:30
thrust26 9f9b1df2c7 properties for 'Bumper Bash' updated 2017-11-19 15:04:14 +01:00
thrust26 73a8938abf fixes for developer settings 2017-11-18 18:22:10 +01:00
thrust26 ceb58b8b71 PAL color loss and tv.jitter option removed from Video Settings, only one option (dev.) left 2017-11-18 16:36:15 +01:00
thrust26 cdd4b4bf39 UA added to randomized startup bank types 2017-11-18 14:53:27 +01:00
thrust26 a14fa6a3ea - missing checks for developer settings added
- "dev.console" selection move to developer settings
- random startup bank implemented for some (tested!) bank switchings
- Options dialog button added in debugger
2017-11-18 13:14:27 +01:00
Stephen Anthony 522018d636 More header file reorg/optimization. 2017-11-17 13:30:17 -03:30
thrust26 2dde406bb9 some minor cleanup and preparation for more options 2017-11-17 17:26:42 +01:00
thrust26 41810298a7 Merge branch 'master' of https://github.com/stella-emu/stella 2017-11-17 14:02:27 +01:00
thrust26 b5c9842716 DeveloperDialog added
- developer only options now have "dev." prefix
- options relevant for players and developers are duplicated ("dev." prefix)
2017-11-17 14:02:10 +01:00
Stephen Anthony c2946e58d6 Header fixes take 4; 'debugger/gui' classes.
Note that this one adds a new file, and I haven't yet updated the
Windows and OSX builds (so they won't compile for now).
2017-11-17 09:03:03 -03:30
Stephen Anthony 39f839021e Header fixes take 3: cheat, common, debugger directories done. 2017-11-16 14:29:34 -03:30
Stephen Anthony a7f1764411 Second pass at optimizing header files, to eliminate cascaded compiles. 2017-11-16 13:31:20 -03:30
thrust26 d24f962909 'Desert Falcon (PAL)' ROM properties updated, display format is PAL 2017-11-13 21:01:58 +01:00
Stephen Anthony c18469c2a3 Fix minor compile warnings.
Sync BSTypes in Stella and harmonycart, fixing a bug in the process
(entering non-uppercase extensions for '-bs' would result in an error).
2017-11-10 21:37:11 -03:30
Stephen Anthony a802e934c9 Fixed 'Gamma Attack' ROM properties; the right joystick is the default. 2017-11-10 08:36:59 -03:30
thrust26 d81b1d1e4e debug color for playfield slightly varied for PF0/1/2 (implements #248) 2017-11-09 15:55:56 +01:00
Stephen Anthony e64e0ea844 Fix compile errors when certain options are disabled by 'configure'. 2017-10-19 22:14:17 -02:30
thrust26 eceb647953 Atari 7800 support (initial RAM and Pause key) added
currently only available in debugger UI and via command line
TODO: make available in future developer dialog
2017-10-18 22:03:52 +02:00
Christian Speckner 23cac0538c Documentation. 2017-10-17 23:35:49 +02:00
Christian Speckner b5feb9fc40 Remove dead constants, change vsync margin during ystart to match frame. 2017-10-17 22:31:55 +02:00
Christian Speckner 86e789a6cf Minor refactoring, be more tolerant w.r.t. vsync timings -> fixes Acid Drop. 2017-10-17 22:24:40 +02:00
Christian Speckner 20c21177ea No jitter simulation during the initial garbage frames. 2017-10-17 22:06:11 +02:00
Stephen Anthony ad2d53758f Fixed final warning in jitter code. 2017-10-17 09:57:19 -02:30
Christian Speckner 424808b948 Revised my decision ;) 2017-10-17 00:26:12 +02:00
Christian Speckner 1338b8d0d0 Fix spurious jitter in ROMs with continously changing frame height (ghost!). 2017-10-17 00:25:24 +02:00
Christian Speckner 4a73aab1e4 Fix segfault during ystart autodetection. 2017-10-16 23:53:41 +02:00
Christian Speckner 18895e3683 Remove FIXME --- the comparision is legitimate. 2017-10-16 23:37:22 +02:00
Christian Speckner f02a7020b0 Fix typo. 2017-10-16 23:36:52 +02:00
Christian Speckner 5384ca95d2 Oops. 2017-10-15 22:23:17 +02:00
Christian Speckner 2c96258890 Merge branch 'refactoring/frame_manager' 2017-10-15 21:12:14 +02:00
Christian Speckner 14dde10b34 Silence clang warnings. 2017-10-15 21:03:33 +02:00
Stephen Anthony abc7ffdf03 Fixed missing break. 2017-10-15 16:06:06 -02:30
Christian Speckner be877f8503 Merge branch 'master' into refactoring/frame_manager 2017-10-15 20:28:27 +02:00
Christian Speckner f67a977c97 CS. 2017-10-15 20:27:16 +02:00
Christian Speckner dc770b2e83 Remove dead code. 2017-10-15 11:55:01 +02:00
Christian Speckner 640da16a2a Reenable jitter. 2017-10-15 00:11:19 +02:00
thrust26 ff57f271ea keys for rewind/unwind from within emulator added (start pause mode and work in pause mode too)
entering debugger from pause mode allowed (TODO: allow more functions)
"Pause" displays always immediately
2017-10-14 12:22:21 +02:00
thrust26 44f7029573 formatting for hit traps and changed source addresses changed 2017-10-13 12:18:41 +02:00
thrust26 576773f837 Merge branch 'master' of https://github.com/stella-emu/stella 2017-10-13 11:18:07 +02:00
thrust26 c6a5b96796 fixes #244 (wrong source address display for cleared peeks) 2017-10-13 11:17:53 +02:00
Stephen Anthony 1707a8f167 Fixed a few more warnings generated by Clang 6. 2017-10-12 23:19:33 -02:30
Stephen Kitt 4885fec94a Spelling fixes
* commmands -> commands
* comparitive -> comparative

These were found by Debian’s Lintian tool.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2017-10-12 16:53:58 -02:30
nanochess 3a853b8944 Corrected wrong message "shotshot" to "snapshot" 2017-10-11 22:33:38 -02:30
Stephen Anthony 10bdcd58d2 Third pass at fixing warnings:
- added very stringent checks when compiling under clang; for now, there will still be warnings,
  since I haven't addressed the specific code yet (probably issues in OSX too)
- no issues when compiling with gcc; still need to check VS.
2017-10-11 21:49:31 -02:30
Christian Speckner 0e5525223b Remove dead code from FrameManager (temporarily disables jitter). 2017-10-12 00:26:08 +02:00
Christian Speckner d0da98aef9 Remove the (now obsolete) logic for clearing the first pixels of line zero. 2017-10-12 00:10:36 +02:00
Christian Speckner 23c2901d14 Hook up new ystart autodetection. 2017-10-12 00:02:31 +02:00
Stephen Anthony be48e643e6 Second pass at cleanups from increased warning level. 2017-10-11 18:18:07 -02:30
Stephen Anthony 35624553b6 First pass at code cleanup from enabling higher levels of warnings in clang/gcc. 2017-10-11 12:23:54 -02:30
Christian Speckner dc5c68bb80 Factor out ystart detection. 2017-10-11 16:04:47 +02:00
Christian Speckner 12afce8c0d Documentation, minor simplificationsDocumentation, minor simplifications. 2017-10-10 10:20:53 +02:00
Stephen Anthony aa755c7270 Fixed minor compile warnings with gcc/clang. 2017-10-09 19:14:49 -02:30
thrust26 3fddc03ff6 trapifs implemented (and fixed mirrors)
wrong port display for swapped ports fixed
error due wrong argument number now with example display
label display in status line added
2017-10-09 23:15:40 +02:00
Christian Speckner 4f31166e11 Cleanup. 2017-10-08 21:46:25 +02:00
Christian Speckner 398fac5c9f Replace frame layout detection with dedicated detector. 2017-10-08 21:32:57 +02:00
thrust26 90705babd7 debugger start displays labels where possible
prevent repeated trap interrupts
some old code cleanup
2017-10-08 12:25:23 +02:00
thrust26 d15690f5f1 added mirrors 2017-10-08 10:43:26 +02:00
Christian Speckner bff13fb008 Comment. 2017-10-07 19:50:29 +02:00
Christian Speckner 47f528c4d3 Inject FrameManager instance into TIA. 2017-10-07 19:48:06 +02:00
Christian Speckner a452d83b39 Coding style. 2017-10-07 18:48:02 +02:00
Christian Speckner 6aecade2c3 Dcumentation. 2017-10-07 18:26:53 +02:00
thrust26 c6593e6c58 this should be working 2017-10-07 18:25:56 +02:00
thrust26 f862e1c97d progress... 2017-10-07 14:17:34 +02:00
Christian Speckner a400238c19 Refactor FrameManager to extend AbstractFrameManager. 2017-10-07 01:41:47 +02:00
thrust26 61bf556e5b it compiles again 2017-10-06 23:06:59 +02:00
Stephen Anthony f38b40415f Minor refactoring of AVox/SaveKey classes (use delegating c'tor). 2017-10-05 20:57:02 -02:30
Stephen Anthony 9fc8b9fcc0 Fixed crash when specifying an invalid controller type on the commandline. 2017-10-04 18:35:55 -02:30
Stephen Anthony 90a6c35061 Removed ability to manually select CompuMate controllers (fixes #229). 2017-10-04 17:43:21 -02:30
Stephen Anthony d99d3a16f5 Fix crash when using CompuMate scheme but not using CM controllers.
The code now never looks at the controller type for CM ROMs, but just creates the required controllers.
This means that we no longer actually need a special CompuMate controller type anywhere in the code, since selecting it has become redundant.
2017-10-03 20:17:23 -02:30
Christian Speckner d52562975d AbstractFrameManager adjustments. 2017-10-03 23:08:14 +02:00
thrust26 cd189050ec Fixed wrong display of swapped controllers in debugger 2017-10-03 18:42:46 +02:00
thrust26 8348525f14 before cleanup 2017-10-03 16:33:33 +02:00
Stephen Anthony bec1784d18 Added infrastructure to call methods on AVox/SaveKey controllers from InputDialog.
Thomas, you will need to edit InputDialog::eraseEEPROM and finish the logic there.
2017-10-02 19:57:21 -02:30
thrust26 43e9693959 added 'echo' command to debugger prompt 2017-10-02 14:23:08 +02:00
Christian Speckner d220888474 Abstract common frame manager interface. 2017-10-02 00:52:56 +02:00
Stephen Anthony 924e92214f Fixes for several minor issues in the last few commits:
- move files from src/windows to proper location
- formatting fixes to match style in other files

This fixes all compile issues in Linux; still TODO is fix Windows and OSX.
2017-10-01 16:23:53 -02:30
thrust26 00cb377c0a finalized trackball widgets 2017-10-01 13:06:34 +02:00
thrust26 4fe9317ad2 Refactored FlashWidget, SaveKeyWidget and AtariVoxWidget 2017-10-01 12:00:07 +02:00
thrust26 f77cd9ab06 Updated VS project file, reworked SaveKey/AtariVox widget, started with implementing trackball widgets for debugger (AmigaMouse working) 2017-10-01 09:52:39 +02:00
thrust26 ecd8d0ff22 Fixed and refactored controller selection 2017-09-30 12:03:45 +02:00
thrust26 a92ceed195 SaveKey/AtariVox detects EEPROM areas accessed by ROM and allows erasing only these in the debugger. 2017-09-29 20:12:41 +02:00
Christian Speckner 7965b84553 Merge branch 'master' into refactoring/frame_manager 2017-09-27 23:27:44 +02:00
Christian Speckner b3228aaad7 Work around g++ bug on OSX. 2017-09-25 22:06:21 +02:00
Stephen Anthony e7b732b115 Allow access to current frame count from TIA; minor formatting cleanup. 2017-09-23 10:20:36 -02:30
thrust26 ba764fdc06 added _cyclesLo and _cyclesHi to debugger prompt 2017-09-19 20:49:48 +02:00
Stephen Anthony aed2945a56 First pass at continuous state saving in emulation mode, accessible by the debugger:
- Toggle this with Alt-r.  When enabled, state is saved each frame to memory (up to 100 slots)
- Upon entering the debugger, rewind is immediately available, allowing to rewind (for example) back past a breakpoint
- Testing is definitely required.
2017-09-18 20:29:52 -02:30
Stephen Anthony 628f981121 Various cleanups to documentation and snapshots:
- Changelog updated for recent fixed from Thomas J.
- Minor formatting fixes in TIASurface class
- Updated documentation for 'ss1x' mode; snapshots now have only scaling disabled, not effects removed
- Updated snapshots for change in ss1x, and also ran them all through pngcrush, to optimize size
2017-09-18 19:50:37 -02:30
thrust26 5fe51112dd fixed #214, now "usemouse.always" is checked too 2017-09-18 20:48:49 +02:00
thrust26 ed47816303 fixed issue #201 with new reRender method
in phosphor modes buffers are simply copied form phosphor buffer, else the screen is rendered again
2017-09-18 15:49:30 +02:00
thrust26 11367e6a17 1x snapshots now support all 4 phosphor/Blargg combinations 2017-09-18 09:27:51 +02:00
thrust26 8aad8afda7 fixed 1x snapshot problem when phosphor was disabled 2017-09-17 23:58:52 +02:00
thrust26 b3eaaac5ed enable phosphor and TV effects for 1x snapshots 2017-09-17 23:38:59 +02:00
Stephen Anthony f442fae890 Fixed graphical corrution when saving snapshots in 1x mode
- Phosphor is now also disabled in this mode
2017-09-17 16:46:56 -02:30
thrust26 5b0965ad6c Fixed the fix. 2017-09-17 17:28:03 +02:00
thrust26 f0ced8ae4c Fixed 1x snapshot bug with phosphor #222 2017-09-17 17:20:48 +02:00
Christian Speckner c682dd1c27 Microoptimization: avoid function dispatch overhead. 2017-09-17 14:12:37 +02:00
thrust26 7d72265088 added TIA access tracking
improved ZP-RAM/Stack tracking
2017-09-17 10:35:45 +02:00
Christian Speckner 8485b0820f Collisions are disabled during vblank. 2017-09-17 01:35:01 +02:00
thrust26 cfa40722b9 updated poke(), now CPU emulation provides the flags
improved ZP/stack access tracking and output
added ZP code tracking
2017-09-16 22:37:19 +02:00
thrust26 3bf809a137 refined access tracking for ZP, Stack and IO addresses
improved RIOT RAM output in Distella
2017-09-16 17:38:37 +02:00
Stephen Anthony 03c1ab17fd Added access tracking to M6532 for ZP and IO addresses. 2017-09-16 10:37:42 -02:30
thrust26 7f65fad7cf preliminary implementation for ZP-RAM access tracking
extra access type flag for poke()
2017-09-16 13:48:04 +02:00
thrust26 10e6d483b1 added access tracking via poke()
code cleanup in DiStella and CartDebug
2017-09-16 08:54:32 +02:00
Stephen Anthony 7b63dc6f22 Cleanups to System class (call methods, remove debugging code). 2017-09-15 23:42:20 -02:30
Stephen Anthony 1d99a1e5fa Refactored various page accessing functionality:
- Removed System::PAGE_SHIFT from all classes (except where it's needed inside System); it is an implementation detail of that class that shouldn't be used outside the class, and was making the various calls to setPageAccess very messy
- Changed uInt32 to uInt16, and loop variable to 'addr' for all calls to setPageAccess; this is for consistency, and allows the reader to see how all the code is similar in different classes
- Updated comments in various places (mostly TIA and RIOT) to more clearly show how page accessing works.
2017-09-15 23:28:20 -02:30
Stephen Anthony ca69e2ed73 Refactor code and comments for TIA and RIOT 'page access' stuff. 2017-09-15 21:22:10 -02:30
thrust26 5f68b0565d 2nd part of Distella updates 2017-09-15 14:56:54 +02:00
Christian Speckner c26372da4c Dot. 2017-09-13 20:37:54 +02:00
thrust26 95b04b2baa 1st part of Distella improvements 2017-09-13 16:04:54 +02:00
Stephen Anthony 648ed74527 Oops, missed one variable in the 64-bit clock conversion. 2017-09-12 11:04:59 -02:30
Stephen Anthony 483013baa7 Make PaddleReader constants private, to guard against same variable names used elsewhere. 2017-09-09 17:28:21 -02:30
Sergio Prado 391601d238 Fix error when building with uClibc-ng for ARM
The uClibc-ng C library defines a type called R0 when compiling for ARM,
that conflits with a global variable called R0 from PaddleReader.cxx.

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

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

Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
2017-09-09 17:25:29 -02:30
Stephen Anthony b7bf3b79b2 First pass at a consistent default for load/saving files that don't have a
pre-defined location (ROM files and disassemblies, etc).
- Repurposed the snapshot load/save folders by changing OSystem::defaultSnapLoadDir to OSystem::defaultLoadDir, and similar for the save dir
- In Windows, this directory will now be 'Documents\Stella', while in Linux/OSX it will be $HOME
- Testing still required for Windows and OSX; only Linux is confirmed to work for now
2017-09-09 15:06:21 -02:30
Stephen Anthony 9190943534 Added debugging output for FSNode. 2017-09-09 14:02:36 -02:30
Stephen Anthony 823c693a9e Final updates for recent 64-bit cycles refactoring. 2017-09-08 18:52:03 -02:30
Stephen Anthony c4d04ffe26 CartCDF and friends refactoring (have similar functionality):
- rework music fetcher code; there can never be a negative cycle count
- use get/put double Serializer methods for doubles.
2017-09-08 18:36:06 -02:30
Stephen Anthony ebb8725126 Refactor System::myCycles to be 64-bit instead of 32-bit.
- The cycles counter is now essentially monotonically increasing (ie, we never need to worry about it going backwards and giving a negative difference, simplifying a lot of code
- There are now reset() methods in all places that keep track of system cycles, but they are used for a full reset only; not called each frame like before (which had to be done to prevent overflow).
2017-09-08 11:29:30 -02:30
Stephen Anthony eafe102daa Refactor StateManager and RewindManager for eventual use outside debugger. 2017-09-03 23:02:15 -02:30
Christian Speckner 5ca9b7912b Fix a very minor timing glitch in paddle emulation. 2017-09-02 00:53:08 +02:00
Christian Speckner 2757c906cb More TIA documentation. 2017-09-02 00:46:54 +02:00
Stephen Anthony c2302c2e71 Cart::getImage refactoring: use uInt32, since sizes are never negative. 2017-09-01 10:23:17 -02:30
Stephen Anthony 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
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 6e55d98ad7 Fixed inconsistent Alt-p phosphor behaviour (fixes #196). 2017-08-19 19:48:41 -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 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
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 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 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 04ce40b27c Make sure trakball is read over entire vertical range. 2017-07-30 13:14:16 -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 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 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 c364526ff6 Made 'tv.jitter' effect enabled by default. 2017-07-14 09:27:04 -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 fadf9d5535 Updated ROM properties to RomHunter version 13. 2017-07-09 15:48:10 -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 09af9d09a5 Finally fixed issue #75 (phosphor mode now works with Blargg). 2017-07-05 12:48:39 -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 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 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