Commit Graph

224 Commits

Author SHA1 Message Date
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
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 94de76b78e implement emulation fullscreen overscan 2019-05-14 22:44:48 +02:00
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
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
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 8e22dc52b4 Log via Logger singleton, fixes races between logging and OSystem teardown. 2019-05-01 23:14:16 +02:00
thrust26 c3483d1553 larger fonts in all dialogs when using minimal UI 2019-04-23 20:08:03 +02:00
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 5dde762b85 Changed 'tia.fsfill' option to 'tia.fs_stretch'. 2019-04-14 14:57:28 -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 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
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 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
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 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
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
thrust26 f86ba39c88 initial update for #368 2018-12-27 11:47:41 +01:00
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
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 7e4dc350f0 More fixes for suggestions from cppcheck. 2018-08-28 16:19:50 -02:30
thrust26 21b8fa133f dirty fix for #355 2018-08-22 11:10:45 +02:00
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 4bc3373b37 made UI theme change immediate 2018-08-12 23:01:43 +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 a24e042d1e changed "FPS" back into "fps" 2018-07-31 17:07:51 +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
Stephen Anthony e691853f0e First pass at fixing superfluous re-draws in the UI.
- This addresses issue 158, and reduces CPU usage to near 0% when no changes are happening
- This returns the code to the same performance levels as version 3.x.
2018-07-25 08:48:21 -02:30
Christian Speckner c270a45409 Merge branch 'feature/precise-audio' 2018-07-01 23:48:26 +02:00
Christian Speckner 8781889a7f Documentation, cleaup, fix race in frame stats. 2018-06-09 00:31:20 +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 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 a14cf8d077 Refactoring: start debugger from dispatch loop. 2018-05-24 00:13:43 +02:00
Christian Speckner ed6eae6a67 Rerender only if there is actual change. 2018-05-17 22:56:07 +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 c905b01fca Merge branch 'master' into feature/precise-audio 2018-04-25 22:49:00 +02:00