Commit Graph

1502 Commits

Author SHA1 Message Date
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