Commit Graph

2126 Commits

Author SHA1 Message Date
Stephen Anthony 33c65103d6 File extensions used by BS autodetect can now use longer that 3-char extensions. 2019-06-11 14:35:01 -02:30
Stephen Anthony 9191f63da2 Fix dirty framebuffer issues in fullscreen TIA mode.
This requires some testing, since it potentially causes slowdowns on older systems.
I cannot find any difference on my test system (and documentation I've read seems to imply
that you should clear the screen before each update, and that it is very fast on most hardware).
2019-06-08 23:01:59 -02:30
Stephen Anthony 4745b6a240 Make sure properties database is correctly read on startup (fixes #475). 2019-06-08 18:17:25 -02:30
Stephen Anthony 4a8f2f80b6 Fix PopupWidget/ContextMenu not positioned correctly in fullscreen mode.
Refactored Rect class.
2019-06-03 19:28:56 -02:30
thrust26 0eb7cd70da add option to automatically save states when exiting emulation 2019-06-03 21:55:40 +02:00
Stephen Anthony 58b8c3458b Fix UI drawing modes when overlaid on TIA image. 2019-06-03 17:09:07 -02:30
Stephen Anthony d7754aee77 Dialogs drawn outside the underlying basedialog area no longer leave parts around.
There is still some work TODO for TIA mode; that is coming next.
2019-06-03 14:32:59 -02:30
Stephen Anthony 6153b8aa6c Fix parsing of stella.pro => DefProps: joystick entries were being removed. 2019-06-02 17:08:30 -02:30
Stephen Anthony 46b79a3a2d Updated properties database. 2019-06-02 16:52:36 -02:30
thrust26 ce5a935d49 remove now superfluous "hardcoded" message in InputDialog 2019-06-02 18:45:53 +02:00
thrust26 b1b1d87cfa enhance Rewind/UnwindPause events 2019-06-02 14:07:42 +02:00
thrust26 34e6709336 Enable switches handling in debugger 2019-06-02 12:32:25 +02:00
thrust26 972a74f76b fix #486 2019-06-02 12:15:13 +02:00
thrust26 cb6b9cff32 add overscan message
fix scanlines message
2019-06-02 09:32:26 +02:00
thrust26 cf39f5afdf add overscan hotkeys
remove ystart hotkeys
update doc
2019-06-02 09:21:20 +02:00
thrust26 795c892549 prevent that repeated keys are going to emulation core 2019-06-01 23:12:50 +02:00
thrust26 dd88e3a7fe change scanlines hotkey delta to 2
fix scanline underflow
2019-06-01 22:38:16 +02:00
thrust26 288eb5b1e5 allow repeat for selected keyboard events 2019-06-01 22:29:18 +02:00
Stephen Anthony 98cb5a4ecd Update recent commit to use C++ functionality (unique_ptr and streams).
- fixes compile error in Linux and some libretro builds
- fixes issue #485
2019-05-31 11:38:19 -02:30
thrust26 67db29e826 implement saving/loading all TM states to/from disk 2019-05-31 14:44:46 +02:00
thrust26 b566c34793 refactor 'ctrlcombo' into 'modcombo', suppresses all modifier key combinations 2019-05-30 12:31:34 +02:00
thrust26 be1a51b5b4 use event version check for joymap too 2019-05-30 11:16:07 +02:00
thrust26 d231da4558 allow all events for combos
check event list version when loading keymaps & combomap
2019-05-30 10:18:35 +02:00
thrust26 996517eefb add new StartPause event (e.g. useful for combos)
fix some code
2019-05-30 08:59:33 +02:00
thrust26 43af1a0005 redefine a few default keys (in TV effects and toggle bits/collisions)
reorder listing of emulation actions according to documentation
update documentation
2019-05-28 23:02:02 +02:00
thrust26 24dcb64c70 try to map correctly for MacOS.
make remaining ALT hotkeys configurable
2019-05-28 21:03:05 +02:00
thrust26 d9ba5bedd7 fix mapping for side independent modifiers (press both + key) 2019-05-28 18:29:18 +02:00
Stephen Anthony c4443715cc Make Events for snapshots always available, even when PNG support is disabled.
- otherwise, builds with and without PNG support will potentially have different mappings
- this makes it very hard to test on devel systems where support is enabled/disabled
- basically, events are hard-coded to certain values, and shouldn't change based on support for any particular subsystem

Fix warnings from clang.
2019-05-28 11:29:56 -02:30
thrust26 8f6dfda42f refactor ESC key handling
make remaining control hotkeys configurable
2019-05-27 23:01:03 +02:00
thrust26 ef8fdc8cd9 fix combined modifier handling (finally :-)
make more hotkeys configurable
2019-05-27 20:01:49 +02:00
thrust26 bb7c3c429c fix fullscreen toggle in menu modes
made 'Quit' event configurable
2019-05-26 22:20:33 +02:00
thrust26 9ea265859a add new mappings automatically
add more events which can be remapped
enable all emulation events for pause mode too
2019-05-26 00:07:53 +02:00
thrust26 5e36cb9fed allow tab keys to be remapped in menu mode too 2019-05-25 19:39:55 +02:00
thrust26 976d9bbe72 move some fixed hotkeys to remap-able keys 2019-05-25 19:14:01 +02:00
thrust26 28b22f57a5 add missing modifier to 'eventForKey'
remove default modifier KBDM_NONE
2019-05-25 17:13:12 +02:00
thrust26 fc79665d3a refactor key mapping using hash map
key mapping now allows key + modifier combinations
2019-05-25 15:12:34 +02:00
thrust26 d3662ee9c8 key for entering Options dialog can now be remapped as documented 2019-05-24 18:31:46 +02:00
thrust26 ae439ba318 add zoom level hotkeys to documented hardcoded actions 2019-05-23 22:17:39 +02:00
thrust26 b68a7ffb9f remove 'Backspace' key from hardcoded actions 2019-05-23 21:32:14 +02:00
thrust26 6a70dc7863 fix #480 2019-05-21 23:15:20 +02:00
thrust26 6654d18721 added a few missing CLI parameter descriptions to CLI help 2019-05-19 20:49:19 +02:00
thrust26 50088b08a5 removed "height" from doc text and Settings 2019-05-19 11:45:18 +02:00
thrust26 d08cd7cbbd minor code fixes 2019-05-19 10:13:55 +02:00
Stephen Anthony 33c4e81bb0 Fix minor compile warnings, including using float instead of double in a few places. 2019-05-18 20:48:13 -02:30
thrust26 95d8bb870d add non-integral TIA zoom steps (partially addresses #263) 2019-05-18 10:30:23 +02:00
thrust26 49585250fd add another cleanup remembering last windowed position code 2019-05-18 09:04:06 +02:00
thrust26 53597938b6 cleanup remembering last windowed position code 2019-05-18 08:43:02 +02:00
Stephen Anthony 22b15d7f37 Fix warnings, and compile failure for libretro. 2019-05-17 21:53:59 -02:30
thrust26 6fc3863ef9 make Stella remember the last window position (now Center option makes a difference!) 2019-05-17 22:19:27 +02:00
thrust26 00355c01a4 remove overscan from windowed modes 2019-05-15 21:08:55 +02:00
thrust26 91e46faddf add overscan option to StellaSettingsDialog
fix dialog position when overscan is enabled
2019-05-15 20:05:17 +02:00
thrust26 c61f3e9a1d Merge branch 'master' of https://github.com/stella-emu/stella 2019-05-15 18:18:11 +02:00
thrust26 c5eadcef26 update properties for Thrust and spelling of my name :) 2019-05-15 18:17:58 +02:00
Stephen Anthony 12a95dc176 Updates to conditional compilation.
- Don't create certain directories when not needed
- Don't include certain items in ContextMenu when not applicable
2019-05-15 13:30:27 -02:30
thrust26 94de76b78e implement emulation fullscreen overscan 2019-05-14 22:44:48 +02:00
Stephen Anthony a894496e77 A little too eager with GUI_SUPPORT. 2019-05-13 20:43:02 -02:30
thrust26 093fd4eb75 add hidpi option checkbox to UIDialog 2019-05-13 19:04:39 +02:00
Stephen Anthony 087dd1dbb9 Fix imageRect not being correctly set for fullscreen UI modes.
- This caused incorrectly positioning for ContextMenu
- With this fix, the positioning code in ContextMenu and related dialogs becomes a lot less complex
2019-05-12 19:12:30 -02:30
thrust26 9aa75502b2 move label names into central header 2019-05-12 22:23:23 +02:00
thrust26 bef2981796 align R77 dialog to button labels 2019-05-12 21:16:28 +02:00
thrust26 93c7a69351 rename "dejitter" parameter names and add them to the CLI help 2019-05-12 19:55:14 +02:00
Stephen Anthony bff503a001 Refactor DialogContainer and child classes.
- instead of using a protected instance variable, each derived class now has its own private variable
- each derived class also takes responsibility for deleting its private variable
- various API cleanups
2019-05-11 22:16:23 -02:30
Stephen Anthony e7759048ca First pass at implementing 'hidpi' mode. For now, it is available with 'hidpi' option only from the commandline.
- This is still a WIP, but is already very usable; I can finally see the UI on my 4k monitor :)
2019-05-11 14:33:07 -02:30
thrust26 eb2ece7bde define dejitter defaults 2019-05-09 20:11:42 +02:00
thrust26 41b990109a split paddle dejitter settings 2019-05-09 19:05:33 +02:00
thrust26 f619fe33d2 adjust dejitter factors 2019-05-08 22:36:11 +02:00
thrust26 d21f5fdb22 add dejitter UI and experimental parameters 2019-05-08 22:02:04 +02:00
orbea 92d95db9d8 libretro: Fix build. 2019-05-08 16:59:46 -02:30
thrust26 8e68a51ed4 add first coarse stab at paddle anti-flicker 2019-05-08 20:12:48 +02:00
thrust26 c83d22604b Save input mappings when leaving dialog 2019-05-07 20:23:28 +02:00
thrust26 977359aec9 add more and fix default buttons for R77
add rewind/unwind events
improve R77HelpDialog
2019-05-05 11:18:49 +02:00
Christian Speckner ca96f20bc2 Make failure to checkpoint WAL non-fatal, make sure that early logs are not swallowed. 2019-05-04 20:38:13 +02:00
Stephen Anthony e933bd9c6b Allow 4:3/16:9 button in MinimalUI mode to work without restarting the ROM. 2019-05-04 15:51:29 -02:30
thrust26 a38f56fe91 define tab cycling events and make tab cycling configurable 2019-05-04 11:37:43 +02:00
Christian Speckner e015025d90 Minor optimization to settings I/O. 2019-05-04 10:42:18 +02:00
Stephen Anthony 0fa83b0fd0 Fix compilation with sqlite (missing include header file). 2019-05-03 20:42:16 -02:30
thrust26 24602b4f53 prevent exiting command dialog with toggle key when using minimal UI 2019-05-03 19:34:39 +02:00
Stephen Anthony 83a3bdd6cd GUI support is now conditional in Stella. This is enabled by default for all ports except libretro.
- When disabled, it also disables the debugger and cheatcode support
- UI-wise, this reverts Stella to 1.x functionality (before any internal UI was added)
- Eliminates 47000 lines of code for those ports (like libretro) that don't need it.
2019-05-02 17:58:39 -02:30
Christian Speckner ff8b9b41d4 Revert "Remove R77 save logic, make most R77 settings temporary ot exclude them from persistence."
This reverts commit 51f38840e0.
2019-05-02 01:10:43 +02:00
Christian Speckner 51f38840e0 Remove R77 save logic, make most R77 settings temporary ot exclude them from persistence. 2019-05-01 23:25:15 +02:00
Christian Speckner 8e22dc52b4 Log via Logger singleton, fixes races between logging and OSystem teardown. 2019-05-01 23:14:16 +02:00
Stephen Anthony 8a0591698a Directories need to be created on initial startup, not when loading config files. 2019-05-01 18:00:14 -02:30
thrust26 d4479f4e43 allow to position dialogs centered and in corners 2019-05-01 17:19:40 +02:00
Christian Speckner 0e6e54f15c Save settings immediatelly on sqlite and macos. 2019-05-01 12:04:09 +02:00
Christian Speckner 017c2a7c16 Final refactoring & cleanup to generalize sqlite handling. 2019-05-01 11:42:22 +02:00
Christian Speckner 4d0da9b8e7 Merge branch 'master' into sqlite 2019-04-29 00:50:30 +02:00
trinemark f69cc5cb6c libretro: make getRAM const
use shadow ram copy for frontend
2019-04-28 18:33:44 -02:30
trinemark 3f9ca310c3 libretro: getRAM conditional compile
temporary workaround
2019-04-28 16:48:50 -02:30
trinemark 2284dc7f55 libretro: add achievements
http://retroachievements.org/gameList.php?c=25
2019-04-28 16:48:50 -02:30
thrust26 75650f1930 add option to switch settings mode in minimal UI 2019-04-27 21:07:18 +02:00
Christian Speckner f9554ee3df Hook up SQLite in build system, scaffold SQLite repository. 2019-04-26 23:08:55 +02:00
Stephen Anthony 35ca8edbaf More fixes for ZIP_SUPPORT
- add extra commenting in FSNodeZIP concerning why another node is needed
- exclude zip files from the ROM launcher when ZIP_SUPPORT is disabled
2019-04-25 22:26:14 -02:30
Christian Speckner 126464f66f Switch MacOS to SettingsRepository, fix clash between bspf.hxx and Cocoa. 2019-04-26 00:23:53 +02:00
Stephen Anthony dd09187fc0 In the TIA class, isolate developer settings and re-apply them on each state load.
Eliminates saving of certain variables into the state file which really don't belong there.
2019-04-24 20:00:05 -02:30
Stephen Anthony ea89ef01b4 Refactor DPC+ code wrt 'jitter'. The code and commenting now properly indicates that it is
a difference in mask values, and not actually jitter (TV 'jitter' effect is actually something else,
and is not causing the screen shaking here).
2019-04-24 17:11:37 -02:30
Stephen Anthony 2cf88abb99 Remove compile error in VS 2019 wrt std::min.
Refactor libretro code to no longer need SDL and ZLIB stub headers.
2019-04-24 16:11:30 -02:30
Stephen Anthony 00e464afc3 Enable conditional compilation for ZIP/zlib support. 2019-04-24 15:36:20 -02:30
thrust26 c3483d1553 larger fonts in all dialogs when using minimal UI 2019-04-23 20:08:03 +02:00
Christian Speckner 6c1efce278 More TIA documentation. 2019-04-22 23:24:41 +02:00
Stephen Anthony 7b2ca28306 Disable 'jitter' effect in older DPC+ driver versions (fixes #429). 2019-04-21 21:56:54 -02:30
Stephen Anthony e865cde07b Re-enabled PNG support for Xcode, and fixed minor warnings. 2019-04-21 21:02:30 -02:30
Stephen Anthony eb13d515fb Enable conditional compilation for PNG support. Some ports (libretro) don't need it at all. 2019-04-21 20:07:56 -02:30
Stephen Anthony 32d90c1935 Removed '-Wno-double-promotion' from the build flags.
This necessitated fixing float -> double promotions in several places in the code.
In most cases, double was never being utilized anyway, so there was a slight performance hit for casting when not required.
2019-04-21 15:10:07 -02:30
Stephen Anthony 36da2bcabc Make sure fullscreen TIA modes actually use real fullscreen dimensions.
Previously, they would sometimes use desktop dimensions, and on current versions of SDL,
this would exclude areas meant for taskbars, etc.  So the resulting image was smaller than it should have been.
2019-04-20 18:23:50 -02:30
Stephen Anthony efb196224a Minor refactoring. 2019-04-20 17:34:10 -02:30
trinemark cae32b0b3f add libretro port 2019-04-20 17:06:25 -02:30
Stephen Anthony bf865e37ab Move ROM properties normal enum to 'enum class'; this actually spread to other issues:
- properties names for 'Cartridge' changed to 'Cart'; this can speed up processing
- fixed several bugs in stella.pro (missing newlines)
- fixed 'create_props'; now it works from either the base directory or the tools directory
Reworked properties database names
2019-04-20 15:42:46 -02:30
thrust26 18babfc7a5 Merge branch 'master' of https://github.com/stella-emu/stella 2019-04-18 22:16:14 +02:00
thrust26 ae0d2c64d8 add Genesis controller detection for Super Cobra Arcade and Scramble 2019-04-18 22:15:58 +02:00
Christian Speckner 9385117723 Move inlined sprite tick logic to improve readability. 2019-04-15 12:06:41 +02:00
Stephen Anthony 5dde762b85 Changed 'tia.fsfill' option to 'tia.fs_stretch'. 2019-04-14 14:57:28 -02:30
Christian Speckner d394dd876d Turn warnings in XCode to 11, pacify warnings. 2019-04-14 18:25:02 +02:00
Stephen Anthony 56ad3a6ea1 Turned off patching support in 3E+ scheme.
This class is still a WIP, and doesn't work for all test ROMs.  So it doesn't make sense to work on this part until we can dedicate more time to it.
2019-04-14 13:16:52 -02:30
thrust26 937ecca8c1 aligned Booster Grip buttons naming 2019-04-14 16:20:09 +02:00
Stephen Anthony d54f106a3a And yet more 'enum' cleanups. 2019-04-13 22:44:23 -02:30
Stephen Anthony 4d99772a10 More 'enum class' conversions. 2019-04-13 22:26:53 -02:30
Stephen Anthony 535fffdc46 More conversions from 'enum' to 'enum class' and 'constexpr'. 2019-04-13 21:35:29 -02:30
Stephen Anthony 53b6a2ef89 Converted some more 'enum' to 'enum class'. 2019-04-13 20:57:46 -02:30
Stephen Anthony c80e2340ea Add mappings for increasing and decreasing current vidmode.
Map the R77 F13 key to the former.
Some refactoring of the mapping code in PKeyboardHandler and EventHandler.
Some refactoring of the VidMode handling in FrameBuffer.
Option 'tia.fsfill' is now used to select 4:3 vs. 16:9 mode in fullscreen.
2019-04-08 18:44:27 -02:30
Stephen Anthony 368159a598 Add default key mappings for R77 at a lower level
- this allows to always reset to known working settings
- we no longer need a specific keymap in SettingsR77, so it is removed

Add action that can switch between fullscreen normal or stretched modes
- this is the 'tia.fsfill' option, that is currently only change-able from the UI
- still need to add infrastructure to actually do this

Fixed minor compile warning.
2019-04-07 14:41:58 -02:30
thrust26 fe398360fb fixed endless loop when saving snapshot in Pause mode 2019-04-06 19:43:15 +02:00
thrust26 372ecf0608 made 'checkBounds()' non-virtual and protected, using uInt32 2019-04-06 15:42:57 +02:00
Christian Speckner 83c8b74800 Fix regression in collision handling. 2019-04-06 12:33:50 +02:00
thrust26 0d1848dcda added surface boundary check 2019-04-06 12:11:03 +02:00
thrust26 b62a33607c Merge branch 'master' of https://github.com/stella-emu/stella 2019-04-06 10:50:32 +02:00
thrust26 8fe00ff523 improved joystick detection (for future games)
restored properties for my old Missile Command trackball hacks
added Genesis controller properties for Scramble and SuperCobra Arcade
2019-04-06 10:50:07 +02:00
Stephen Anthony 8c3741fc97 Updated ROM properties. 2019-04-06 00:20:36 -02:30
Stephen Anthony c96d97c8e8 Set default TIA aspect to 100% for both NTSC and PAL.
This is in the process of being reworked, and may disappear eventually.
2019-04-06 00:05:00 -02:30
Stephen Anthony a44e9bd80e Added 'Amoeba Jump' to the properties database. 2019-04-05 13:32:06 -02:30
thrust26 ea4d010422 updated for Synthcart controller detection 2019-04-05 15:04:31 +02:00
thrust26 f716bc47a7 removed auto detected controllers (per game!) from Stella.pro 2019-04-05 12:50:47 +02:00
thrust26 2ad206eac1 improved joystick and genesis detection 2019-04-05 12:38:17 +02:00
thrust26 14b22d185b updated audio docs 2019-04-05 09:48:03 +02:00
Thomas Jentzsch 3f5440bb24 some minor UI cosmetics 2019-04-04 10:56:39 +02:00
Stephen Anthony be775b53e3 Made TIA window always open at a multiple of the minimum bounds
- this means that 320x240 is now the default 'base' size, and zoom levels are based on that
- the TIA image is rendered into whatever sized window is active, meaning that NTSC and PAL modes now look similar

Removed some 'small screen' dead code in FrameBuffer.
2019-04-03 20:27:30 -02:30
thrust26 285583f959 removed option to disable scanline interpolation 2019-04-03 23:37:28 +02:00
thrust26 db833249df made scanlines available in non-Blargg modes 2019-04-03 18:32:42 +02:00
thrust26 e2f5be4725 Phosphor and scanlines levels: 0 displayed as 'off' 2019-04-02 18:16:04 +02:00
Thomas Jentzsch ff65426954 safety fix for unusual small ROMs. 2019-04-01 16:03:14 +02:00
Christian Speckner b289232002 Fix starfield regression. 2019-03-31 22:09:10 +02:00
Stephen Anthony 2bb633800c First pass at getting keymap working again for R77. 2019-03-31 16:42:48 -02:30
Stephen Anthony 70748f3619 Fix off-centered TIA image on R77. 2019-03-31 16:09:14 -02:30
Stephen Anthony 76131a0e73 Minor changes in M6532 naming to match what used in other classes. 2019-03-29 22:34:27 -02:30
Stephen Anthony e6e337cd02 Fixes for previous commit; remove indirection and inherit directly from ControllerLowLevel. 2019-03-29 21:07:20 -02:30
Stephen Anthony cfe79ec0b1 Major changes to controller infrastructure.
Basically, separate high-level read/write from low-level set/getPin methods.
2019-03-29 20:47:24 -02:30
thrust26 39884db86f refactored/renamed key state parameters (pressed vs. released) 2019-03-29 23:49:29 +01:00
Thomas Jentzsch 6f51b6039d renamed and refined StellaSettingsDialog
added to OptionsDialog for testing
2019-03-29 13:42:47 +01:00
Christian Speckner 2e2b37396d Playfield comments. 2019-03-24 21:15:02 +01:00
Stephen Anthony 0d34de269c Finalized 'basedir' and 'baseinappdir' in Windows.
- This still needs some testing and doc updates, but it seems to be
working great
- Hopefully people will now stop asking for this feature
2019-03-24 16:31:16 -02:30
Christian Speckner d7662427fc Typo. 2019-03-19 21:23:14 +01:00
Christian Speckner 81eeec5fae Adapt access checks to modified BSS section. 2019-03-19 21:08:35 +01:00
thrust26 7973140c5a refactored and split CartCDFWidget.cxx (see CartCDFInfoWidget.cxx) 2019-03-19 20:44:38 +01:00
Christian Speckner 383424983a Update memory layout for CDFJ, adapt debugger widget. 2019-03-18 22:30:46 +01:00
Stephen Anthony 12d8ed570d Fix minor warning in VS. 2019-03-16 16:24:24 -02:30
Stephen Anthony b8393a22a1 Updated Xcode for recent class additions. 2019-03-16 16:08:17 -02:30
Christian Speckner 59a7cbbc5e Support CDFJ / fastjmp2 2019-03-13 22:30:20 +01:00
Stephen Anthony 93a07b4517 Remove setting 'fixed' height from frame-manager completely. 2019-03-10 16:49:11 -02:30
Stephen Anthony d09b6329c9 Consolidate some constants into actual enumerations/namespaces.
- Certain parts of the code referred to int literals, when they should use named constants instead
- Different classes had enumerations for the same quantities; this is now fixed
- Basically, TIAConstants and FrameBufferConstants now contain all constants, and their relationship is clearly indicated (previously it wasn't as clear)
2019-03-10 15:19:30 -02:30
Stephen Anthony 9a8e5a3a33 Fix Thumbulator conditional handling of some opcodes. 2019-03-10 11:59:07 -02:30
Stephen Anthony 0e9915823d Remove redundant check for controller 'Auto' type. 2019-03-09 20:04:51 -03:30
Stephen Anthony e61caf069b Fix warnings under gcc and clang, both in normal compilation and R77 mode. 2019-03-09 19:40:45 -03:30
Stephen Anthony 14567207ff Fix minor warnings that come up in g++ and not clang, and fixes for which cause warnings in the other compiler. 2019-03-09 18:01:38 -03:30
Stephen Anthony a5ca6b8ca5 Start of purging 'Display_Height' from the codebase.
- We've already removed it from the UI, now it's removed from consideration altogether
- For now, NTSC ROMS use 240, PAL 250; this will change when we get aspect ratio working
2019-03-09 16:27:33 -03:30
Stephen Anthony 91c98ceed2 Converted another plain enum to 'enum class'. 2019-03-09 16:02:43 -03:30
Stephen Anthony 51981d633d When compiled for R77, use 'minimal_ui' mode. 2019-03-09 14:35:22 -03:30
thrust26 9b6cae5684 Minor fixes for 3E+ 2019-03-05 20:22:08 +01:00
Stephen Anthony 61828ac695 Don't create an empty 'stella.pro' file when possible.
- Not a big deal, but several people are complaining when 'ghost' files are created
- If file doesn't already exist and there is nothing to add, simply don't create one
- Alternatively, we should delete the file if it's zero-sized, but that requires changes to FSNode.
2019-03-04 20:12:21 -03:30
Stephen Anthony 9f6b91cff6 Completely remove OSystem/FrameBuffer/Settings dependency on AVox/SaveKey.
- Added a new callback that enables sending messages back to the parent (Console)
2019-03-03 22:03:44 -03:30
Stephen Anthony 3b15f8da5d Move SerialPort declaration/instantiation directly into AtariVox.
- This is the only class that uses it, so it makes no sense for OSystem to even care about it
2019-03-03 21:30:53 -03:30
Stephen Anthony 784793cae3 Fix compile warnings from clang8; this class still needs more work though. 2019-03-03 15:18:58 -03:30
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
Christian Speckner d04b5dd64b More inlining for performance. 2019-03-02 00:08:22 +01:00
Christian Speckner 2a9bfd6b23 Optimizations to TIA movement mode. 2019-03-01 23:35:52 +01:00
Christian Speckner 2b19f4ab5e Use ystart / layout autodetection and real FrameManager in profiling run. 2019-02-28 23:56:02 +01:00
Christian Speckner ac398ac31b Profiling. 2019-02-27 23:41:08 +01:00
Christian Speckner 1ba1332501 Fix fallout from rebase. 2019-02-27 22:44:11 +01:00
Christian Speckner 05260ca006 More refactoring: remove dependency of System on OSystem. 2019-02-27 22:40:25 +01:00
Stephen Anthony e7169ac010 Completely removed OSystem dependency for Cart classes. 2019-02-26 21:37:35 -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
Christian Speckner 806045cb1c Open ROMs for profiling, refactoring. 2019-02-26 22:46:54 +01:00
Christian Speckner 58d7846f6b Profiling CLI. Wip. 2019-02-25 23:56:57 +01:00
thrust26 a251ccf3d6 another small unsafe optimization 2019-02-25 19:50:33 +01:00
thrust26 d716f42b5c one small unsafe optimization for register 15 2019-02-25 11:36:42 +01:00
Stephen Anthony 42f9fc88f1 Fixed macOS compilation
- Like Windows, the 'basedir' stuff isn't implemented yet
2019-02-24 20:03:29 -03:30
Stephen Anthony 88afab2d22 More restructuring of the OSystem and derived class interaction
- Each derived class no longer calls methods from the base class
- The base class now directly queries the derived class with a pure virtual method, making sure it is called
- Implemented 'basedir' commandline argument for Linux

Windows and macOS currently won't compile.  I'll work on those next.
2019-02-24 19:14:55 -03:30
thrust26 28d1113523 Thumbulator::fetch16 can fetch only ROM when optimized 2019-02-24 14:39:52 +01:00
thrust26 6f94174989 Merge branch 'master' of https://github.com/stella-emu/stella 2019-02-24 09:24:11 +01:00
thrust26 bb3075947b segfault Stella protection added
some more small optimizations (fetch32 removed)
2019-02-24 09:23:57 +01:00
Stephen Anthony d5180ba649 Improve variable/method naming in Settings class. 2019-02-23 17:07:50 -03:30
Stephen Anthony 032b08cca1 Fixed compilation errors in macOS. I still need to think about the Settings stuff, though. 2019-02-23 16:02:13 -03:30
Stephen Anthony 814977e968 Cleaned up Settings API, and moved to C++ maps instead of vectors. 2019-02-23 15:21:11 -03:30
thrust26 d188b5024f one more missing optimization 2019-02-23 19:02:25 +01:00
thrust26 b32d3eba49 oops 2019-02-23 16:09:39 +01:00
thrust26 486494eb7a defined UNSAFE_OPTIMIZATIONS in Thumbulator 2019-02-23 16:09:00 +01:00
thrust26 bac5a86832 minor Thumbulator optimizations and code cleanup 2019-02-23 12:05:53 +01:00
thrust26 e245655747 Revert "optimized Thumbulator.cxx"
This reverts commit 9a09675e55.
2019-02-22 20:11:19 +01:00
thrust26 38366b65bb optimized complex conditional branches in Thumbulator (affects ~5% instructions) 2019-02-22 14:50:52 +01:00
Stephen Anthony 130fcf1dfc Fairly large refactoring of Settings class
- Completely separate Settings and OSystem; the former no longer uses the latter at all
- Moved separate Settings methods directly into that class, exposing less info outside the class
- Reworked loading/saving config files; this may break macOS port (not tested yet)
- Next thing TODO is convert Settings class to use map instead of vectors
2019-02-21 21:55:08 -03:30
thrust26 9a09675e55 optimized Thumbulator.cxx 2019-02-21 22:56:18 +01:00
Stephen Anthony 904821cff9 Refactoring of settings load/save functionality
- commandline parsing is now done in main function
- loading of settings is handled by OSystem
- settings that are used only in main are not accessible globally
- beginnings of converting Settings class to use map instead of linear arrays
2019-02-20 23:43:29 -03:30
Stephen Anthony 8808f7b5e0 Check in WIP on config paths before I screw something up (already happened multiple times). 2019-02-20 14:06:39 -03:30
Christian Speckner e80e15538b Thumbulator optimizations.
Pre-decode ROM image and turn instruction dispatch into a switch.
2019-02-20 00:32:48 +01:00
Stephen Anthony 9735806b2f Partially revert commit for #368; we need more work before this can be enabled.
Fixes issue with fullscreen TIA image disappearing.
2019-02-18 18:17:08 -03:30
thrust26 2d0221ae1f improvement for hardcoded keys in Inputdialog 2019-02-18 20:20:14 +01:00
Stephen Anthony 8f800d97b9 First pass at cleaning up the various config file location mess
- only 'romdir' is configurable; the rest are now always under the 'basedir'
- next step is to allow 'basedir' to be configurable, and optionally use the APP dir
- ConfigPathDialog dialog is now almost empty (only contains romdir), so perhaps this can move elsewhere
2019-02-16 15:26:24 -03:30
thrust26 3c6b8339e1 a bit controller detection refactoring 2019-02-16 11:46:42 +01:00
thrust26 9fba356d8b RomInfoWidget auto detects controllers and displays results 2019-02-15 22:19:19 +01:00
thrust26 83636b9791 updated Stella.pro for some of my own games 2019-02-15 17:58:47 +01:00
thrust26 2cc035e4eb improved keyboard controller detection
small doc update
2019-02-15 16:29:13 +01:00
Thomas Jentzsch 7215f2bbeb changed volume hotkey handling
changing volume also enables sound
changing phoshor also enables phosphor mode
2019-02-14 11:07:17 +01:00
Thomas Jentzsch fa66711c8a moved SaveKey detection to a safer spot 2019-02-14 08:46:50 +01:00
thrust26 b5fce21b2f implemented mute Hotkey (TODO: default key)
small improvement for Amiga mouse detection
minor Windows project file fix
2019-02-13 20:03:58 +01:00
thrust26 9857fa888b improve trackball controller detection 2019-02-12 22:18:19 +01:00
thrust26 8855804635 improved SaveKey detection 2019-02-12 19:24:36 +01:00
thrust26 3c2549d348 slightly improved Genesis detection
corrected tab widgets in GameInfoDialog
2019-02-11 23:02:08 +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 854a891a36 Minor fixes for compile warnings/errors in Linux. 2019-02-11 11:36:13 -03:30
thrust26 b6b5930a2d Merge branch 'master' of https://github.com/stella-emu/stella 2019-02-11 15:53:07 +01:00
thrust26 c1067fde83 first shot at automatic controller detection 2019-02-11 15:52:51 +01:00
Stephen Anthony 9d31d4a519 Fixed 'F8' autodetection to be a little more robust. 2019-02-10 10:39:54 -03:30
Stephen Anthony a1342afe34 Fixed bug in peek handling for 2K and 4K ROMs.
This fixes cheatcode handling for those schemes.
2019-01-27 13:13:08 -03:30
thrust26 46f7668216 added missing oddball TIA options 2019-01-16 17:58:02 +01:00
thrust26 bd0984fc98 renamed player inverted HMOVE phase clock option, methods and keys
added missile inverted HMOVE phase clock option
2019-01-14 22:52:30 +01:00
thrust26 fad141b5de some code cleanup 2019-01-13 09:58:26 +01:00
thrust26 0449e24146 defined various TIA types in developer options 2019-01-12 15:51:38 +01:00
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