Commit Graph

2250 Commits

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

According to documentation, the contents should overwrite stella.pro.
2017-11-25 12:36:11 +01:00
thrust26 df0a3720db fix to developer settings dialog parameters 2017-11-25 12:33:38 +01:00
thrust26 ae0a3c1ba5 changed saved game properties (Control + s) path to defaultSaveDir()
Question: Should those files overwrite Stella.pro automatically?
2017-11-25 11:18:05 +01:00
thrust26 7c46f031f3 further Developer settings dialog improvements 2017-11-25 11:12:17 +01:00
thrust26 08f29ca808 two sets for developer related options defined
reverted some changes previous changes ("colorloss", "stats" and "grabmouse" are persisted again)
2017-11-24 20:38:21 +01:00