Commit Graph

1640 Commits

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