Commit Graph

838 Commits

Author SHA1 Message Date
Stephen Anthony 4b2b9aa626 Converted a few plain enum to 'enum class'; eliminated some dead code. 2019-03-24 19:04:07 -02:30
Stephen Anthony 9c905bc53e Fix minor compile warning. 2019-03-23 19:46:08 -02:30
thrust26 9dc53042c5 fixes #422 2019-03-23 20:10:03 +01:00
thrust26 dc4dd6ac94 added new file 2019-03-19 20:47:16 +01:00
thrust26 7973140c5a refactored and split CartCDFWidget.cxx (see CartCDFInfoWidget.cxx) 2019-03-19 20:44:38 +01:00
Christian Speckner a794bb983a Silence compiler. 2019-03-18 22:43:31 +01:00
Christian Speckner 383424983a Update memory layout for CDFJ, adapt debugger widget. 2019-03-18 22:30:46 +01:00
Christian Speckner 59a7cbbc5e Support CDFJ / fastjmp2 2019-03-13 22:30:20 +01:00
thrust26 9b6cae5684 Minor fixes for 3E+ 2019-03-05 20:22:08 +01:00
Stephen Anthony abc3b3a32b Fix warnings generated by clang 8.
- Several more still exist, and are mostly related to C-style code
- It has long been my intent to remove as much C-style code as possible
2019-03-02 12:06:08 -03:30
Stephen Anthony 61cf68cb98 Move `getTicks()` from OSystem to TimerManager.
- This allows OSystem dependency to be removed in a few places (WIP).
- It more properly belongs in TimerManager, which has other functionality related to std::chrono.
- Historically this was a virtual method in OSystem, since different ports implemented it differently.  Now that we use proper C++11 code, it doesn't need to be there anymore.
- Changed from a virtual call to a static call, so it's probably even a little faster.
2019-02-26 19:20:28 -03:30
Christian Speckner 85acaef8cd Refactoring: remove dependency of TIA and M6532 on Console. 2019-02-26 23:43:22 +01:00
thrust26 a4456e6af8 improved controller detection and added Genesis
adapted GameInfoDialog to controller detection
moved detection from OSystem to Console
2019-02-11 22:10:30 +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
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 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
thrust26 1dfc221a1a fixed RWP by using the last access type 2018-12-08 15:51:16 +01:00
thrust26 d3b270dea8 fixed trapping on 'read from write port' functionality for CPU dummy peeks 2018-12-08 09:53:00 +01:00
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
thrust26 ecb6c7a508 Implemented solution for #396 2018-12-07 20:47:06 +01:00
Stephen Anthony 1bb19a05ba Restore const for Event class by using 'mutable' mutex. 2018-09-20 21:51:10 -02:30
Christian Speckner 6d0614ef35 Guard Event.hxx against races. 2018-09-19 23:36:26 +02:00
Stephen Anthony 508102b56e Fix crash when force-exiting a ROM from debugger. 2018-09-17 12:24:38 -02:30
Stephen Anthony 31f6dba87d 'Cartridge.StartBank' ROM property is now used by the core. 2018-09-14 20:57:36 -02:30
thrust26 eee99a43dc Revert "fixed merge error"
This reverts commit 00544ddbe9.
2018-09-02 18:41:52 +02:00
thrust26 00544ddbe9 fixed merge error 2018-09-02 17:53:35 +02:00
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
thrust26 492596011a fixed two warnings 2018-09-01 14:20:30 +02:00
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 8c7488914d Fix some warnings generated by cppcheck (a C++ linter). 2018-08-27 11:09:03 -02:30
Stephen Anthony 7bc320964e Added TimerManager to Xcode project file.
Fixed a few warnings.
2018-08-23 20:37:34 -02:30
thrust26 7a94ad0a8c fixed a warning 2018-08-22 15:29:35 +02:00
Stephen Anthony 59fb2214ed Minor code cleanup and fix a warning. 2018-08-21 20:19:55 -02:30
thrust26 797ced56b0 fixes #359 2018-08-21 21:11:25 +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 24cd6cb219 Use proper C++ code for localtime and related functions. 2018-08-19 19:53:47 -02:30
Stephen Anthony 6cd5c9d327 Fix API for TogglePixelWidget to properly use ColorId datatypes. 2018-08-19 17:03:54 -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
thrust26 867674c8fb updated docs for #346 enhancement 2018-08-12 14:33:25 +02:00
thrust26 b94c042ed2 fixes #346 2018-08-12 14:18:31 +02:00
thrust26 efb998129b fixes #342 2018-08-09 15:39:54 +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 a1bc2460bb some small darkened color touches 2018-08-07 17:30:52 +02:00
Stephen Anthony a424b8b9a7 Fix minor warnings reported by gcc and clang. 2018-08-06 17:29:22 -02:30
thrust26 573d9a1e25 even more background dialog widget color adjustments 2018-08-06 17:14:22 +02:00
Christian Speckner cd06cc6d2c Show the current image data in zoom widget. 2018-08-01 23:12:45 +02:00
Christian Speckner 3a5572d3b9 Add measured FPS to OSD, squash a bunch of minor bugs. 2018-07-30 23:19: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
Christian Speckner f3f966d12c Ignore break conditions while stepping frames. 2018-07-13 00:16:53 +02:00
Christian Speckner c270a45409 Merge branch 'feature/precise-audio' 2018-07-01 23:48:26 +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
Christian Speckner a5ce457b72 Implement triple buffering in TIA. 2018-05-27 00:26:36 +02:00
Stephen Anthony 2fd1cafc2d Fix [[nodiscard]] warning in VS (applies only to C++17 mode). 2018-05-18 22:56:16 -02:30
Stephen Anthony cf8f76a0e1 Fix [[nodiscard]] warning in VS (applies only to C++17 mode). 2018-05-12 22:33:15 -02:30
Christian Speckner d2c930886b Sanitize and match emulation timing
-> no more perceivable audio latency
-> fewer underruns
2018-05-05 00:47:48 +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 162f7b7501 Add missing locks around Debugger::saveOldState() (fixes #298). 2018-02-15 19:25:54 -03:30
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
Christian Speckner 87c59db4e0 Merge branch 'release/5.1' 2018-01-29 21:17:00 +01:00
Stephen Anthony db9cd28346 Added rewind/unwind shortcuts from TimeMachine to debugger.
- disabled the old Ctrl-r/y shortcuts, but the code is still there for experimentation
2018-01-28 13:28:17 -03:30
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
thrust26 67df7caa3b fine tuning for StringListWidget and RomListWidget 2018-01-26 12:01:24 +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
thrust26 4c39fa3c68 some more focus highlighting added
made most sliders wider by default
2018-01-25 17:00:41 +01:00
thrust26 32e9c14b0d removed debug code 2018-01-24 15:20:54 +01:00
thrust26 5bd33885e3 title bar added to all dialogs 2018-01-24 14:37:07 +01:00
thrust26 5757eccfcf enabled FLAT_UI code, removed old code 2018-01-23 18:03:00 +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
thrust26 4e3b26cea9 display of current timer divider to debugger added 2018-01-18 13:03:59 +01:00
thrust26 ce195d71a1 fixed #276
made sure that the rewind buttons always have correct state when entering debugger
2018-01-07 10:56:30 +01:00
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
thrust26 1213c973dc fixed #275 2017-12-30 00:50:25 +01:00
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 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 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 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
thrust26 44bb4db73e improved saveOldState() usage, now changes after a break are displayed too 2017-12-20 23:09:41 +01:00
thrust26 f0d5ffbd0a bank change tracking for more CartDebugWidgets added 2017-12-20 21:54:40 +01:00
thrust26 e3baeb209e added bank change tracking to most CartDebugWidgets 2017-12-20 21:32:07 +01:00
thrust26 0826ce6bd6 Made collisions editable 2017-12-20 18:18:07 +01:00
thrust26 f61e45829c changed tracking for collisions and various TIA status registers added 2017-12-20 16:20:52 +01:00
thrust26 90733875b2 completed change tracking on RIOT tab (except for controllers). 2017-12-20 10:01:44 +01:00
thrust26 d3575f3290 change tracking for TiaInfoWidget added 2017-12-19 19:22:29 +01:00
thrust26 e9ef45ab0a minor consistency fix and doc updates 2017-12-19 18:10:01 +01:00
thrust26 81cdbe832e refactoring the fix 2017-12-19 16:57:47 +01:00
thrust26 7259af1583 "Light" color fix 2017-12-19 16:56:01 +01:00
thrust26 7819d07623 fixed deleting/toggling existing 'breakif' and 'savestateif' 2017-12-18 12:33:17 +01:00
thrust26 df71881392 FLAT_UI label default alignment fix 2017-12-18 09:42:36 +01:00
thrust26 7fcbb8f401 updated doc for 'dump' command 2017-12-17 17:59:25 +01:00
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 0def7adb61 fixed bug when leaving 'Options' in debugger 2017-12-17 13:52:50 +01:00
thrust26 7f08d9b74c some more UI polishing 2017-12-17 13:28:23 +01:00
thrust26 dfca521bf9 two minor bug fixes 2017-12-17 12:24:16 +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 19730fa183 third 'uipalette' scheme 'Light' added
modernized UI via 'FLAT_UI' preprocessor define added
2017-12-17 00:48:30 +01:00
thrust26 b6080e1701 fixed #270 2017-12-16 10:54:45 +01:00
thrust26 31b459ac84 fixed #269 2017-12-16 09:46:25 +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
thrust26 d28fb580b8 bitmapped button added 2017-12-15 15:25:08 +01:00
thrust26 ba3cc0677d Frame count/cycle alignment fixed 2017-12-15 14:16:11 +01:00
Stephen Anthony 434d2dfc83 Converted some raw enum to 'enum class' in FrameBufferConstants. 2017-12-14 21:29:45 -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 5439d185a7 rewind buffer resize added 2017-12-12 21:43:57 +01:00
thrust26 6632b97307 double rewind in debugger fixed
rewind messages improved
2017-12-12 18:47:21 +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
Stephen Anthony e9a5198863 Reverted part of previous commit; rewind states now use 64-bit where appropriate.
Fixed some more minor errors found by clang.
2017-12-08 07:53:09 -03:30
Stephen Anthony 76b3ff02b3 Fixed various warnings in code.
- removed unused variables
- in RewindManager, convert cycles to Int32 rather than Int64; although
they are defined as 64-bit from the TIA, we only care about differences
here, and the difference will never be larger than a 32-bit can hold.
2017-12-07 21:27:31 -03:30
thrust26 87d5886067 fixed #264 2017-12-06 11:01:33 +01:00
thrust26 260a8b7bb0 minimal debugger sizes adjusted again 2017-12-04 15:59:51 +01:00
thrust26 aef15b44b4 minimal debugger and text dialog sizes increased
debugger doc updated and some links added
missing ellipsis added to RAM widget
2017-12-04 14:17:54 +01:00
thrust26 78a3b197f4 loadconfig bug fixed
save commands explained in debugger doc
load/saveconfig allowed for multi-bank ROMs (with warning)
2017-12-03 17:07:47 +01:00
thrust26 039a054ad5 saverom command fixed (broke that myself) 2017-12-03 16:18:23 +01:00
thrust26 7c01418c29 fixed #239 2017-12-03 13:53:14 +01:00
thrust26 88500b46ff reflected last doc changes in debugger help 2017-12-02 11:51:06 +01:00
thrust26 8abc49af1f fixed effective volume for C = 0 2017-12-01 21:15:11 +01:00
thrust26 b6fa51d97b effective volume to audio widget added
fixed parser return value for "$a"
2017-12-01 20:57:14 +01:00
thrust26 9f0c15bc32 audio widget made editable 2017-12-01 18:21:54 +01:00
thrust26 d333553ec2 startup bank for E0 bankswitch type randomized 2017-12-01 10:08:10 +01:00
thrust26 16bc644b00 minor doc fixes 2017-11-30 16:04:43 +01:00
thrust26 a636e6859d documentation and output of 'dump' command improved 2017-11-30 13:50:56 +01:00
thrust26 d639cdb4c9 multi bank ROM disassembly allowed (with a warning) 2017-11-30 11:46:20 +01:00
thrust26 1d5333969b startup bank for 3F getting randomized 2017-11-30 11:36:21 +01:00
Christian Speckner 53a2d59e02 Add a bunch of missing overrides. 2017-11-30 01:22:41 +01:00
thrust26 51cdc21fa3 spelling fix 2017-11-29 21:00:30 +01:00
thrust26 2a4db8e11e startup bank randomization info added to widgets 2017-11-29 20:48:19 +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 c1fc60a4e0 missing files added
first changes to debugger docs
2017-11-26 13:42:56 +01:00
thrust26 8fd33ed103 Merge branch 'master' of https://github.com/stella-emu/stella 2017-11-24 20:38:47 +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
Stephen Anthony 9ada07a733 Minor fixups for last commits. 2017-11-24 13:24:19 -03:30
Markus Uhr bfd12d7ddc Fix tick suffix in snapshot file name. 2017-11-24 13:12:06 -03:30
Markus Uhr ed3b61fdb1 Improve 'dump' command.
Add third parameter to indicate that the dump should be appended to
a file instead of printed on screen. Also, allow to dump CPU state
and input registers.

The third argument is a flags value (0x01: dump memory, 0x02: dump
CPU state, 0x04: dump input registers).
2017-11-24 13:12:06 -03:30
Markus Uhr 0ecb4f5ae7 Add an 'exec'-prefix to snapshot name when saving from a script.
Allow the user to specify an additional 'prefix' string in the exec command
that will be prepended the ticks-part of the snapshot name when saving a
snapshot from script.
2017-11-24 13:12:06 -03:30
Markus Uhr 7010400235 Add new debugger command 'stepwhile'.
This command steps through the code instruction-by-instruction (just like the
'step' command) while the <condition> argument evaluates to true. This is a
(pretty slow) workaround for breakpoints and the 'run' command which seems
broken from debugging scripts.
2017-11-24 13:12:06 -03:30
Markus Uhr e6b5d792b7 Reset command: also reset controller state. 2017-11-24 13:12:06 -03:30
Markus Uhr 2f787fbb91 Exec command: search script first in current directory. 2017-11-24 13:12:06 -03:30