Commit Graph

1388 Commits

Author SHA1 Message Date
harry f85f93c5bd JS joypad API improvements. 2024-02-14 06:28:26 -05:00
harry 446763b232 Added JS joypad object functionality. 2024-02-11 14:56:58 -05:00
harry 6248b0ee64 Added ability to pass command line arguments to JS scripts. 2024-02-11 10:43:40 -05:00
harry 20a9c151be JS logging improvements. 2024-02-11 10:25:47 -05:00
harry 2229d32720 Added a QJSEngine wrapper class to maintain link to script instance and dialog window with new script objects. 2024-02-10 23:00:07 -05:00
negativeExponent 8d0fe851bf
QT: Fix volume adjustment for APU
Volume adjustments for the apu channel has a range of 0-256. With a value of 256, this acts as a bypass (toggle) and skips the computation entirely when set. This fixes issues when the original signal is too low already that passing it through volume controls will attunuate the signal instead and silence it.

The main volume does not behave the same way and 256 is not a toggle, so left it as-is.

@thor2016 feel free to make it better if necessary, maybe a toggle instead of a 256 max value or something.
2024-02-09 10:19:47 +08:00
harry 8ebb560d1c Added emulator save state JS interface. 2024-02-06 22:44:08 -05:00
harry 2f2482e950 Minor null check fix. 2024-02-05 18:34:03 -05:00
harry 401110bae8 Added ppu interface functions to JS engine. 2024-02-05 18:29:25 -05:00
harry a5071f10f0 Implemented ROM JS interface object. 2024-02-05 06:43:27 -05:00
harry 61da515f11 Finished remaining JS interface functions for JS emu object. 2024-02-05 05:56:40 -05:00
harry 1fc813803e Added JS script monitoring thread to prevent bad scripts from hanging the gui. 2024-02-04 22:09:59 -05:00
harry 4fa0d0651a Added vsync timer logic to Qt OpenGL video driver. 2024-01-31 07:08:08 -05:00
harry 01358407fd For Qt GUI, changed onFrameFinished callback to only update video buffer. Don't do any input processing as this will mess up when running turbo mode. Added a draw timer to SDL video renderer to better align is scheduling with the next vsync. 2024-01-31 06:49:54 -05:00
harry d363d04dbb For Qt GUI, add video buffer mutex to ensure clean transfer between emulation and GUI threads. Use common FCEU::mutex wrapper for cleaner code. 2024-01-31 05:28:41 -05:00
harry 19abb0b249 Fix for build break, QJSEngine::setObjectOwnership does not exist in Qt5. Only in version 6. 2024-01-30 06:50:40 -05:00
harry 6b96016047 JS scripting in work. 2024-01-29 23:17:15 -05:00
harry 813d4c0c4b Added nullptr check in the event QStyle factory fails. 2024-01-29 20:19:36 -05:00
harry a85f348e50 For Qt GUI, edit frame throttling logic when using turbo mode or really fast emulation speed to not be so wasteful when emulation is paused. Don't make sense to waste CPU resources spinning on nothing. Fixes #681. 2024-01-28 08:15:00 -05:00
harry c50c1d570c Change linear filter checkbox text to not include OpenGL. This function not specific to OpenGL and works for all supported video drivers. 2024-01-27 19:35:01 -05:00
harry b03c9c9c8b Removed const qualifiers to fix Qt build. Different versions of Qt QJSValue don't allow the call method to called from a const object. 2024-01-27 01:04:48 -05:00
harry a02ae8d3e0 Added memory hooks to JS engine. 2024-01-26 22:57:54 -05:00
negative 82a99060e5
Use macro and minor offset adjustment 2024-01-25 18:10:48 +08:00
negative 8e935a05a6
Clip Left/Right Sides option now taken into account when using NTSC scaler 2024-01-24 14:52:45 +08:00
harry 2fce5ffe74 Added memory access functions for JS script interface. 2024-01-19 16:54:56 -05:00
harry 7a0be296fa Added logic to realtime update js global variable viewer. 2024-01-17 07:14:10 -05:00
harry 1dde9e7e75 Minor fixes for JS global variable viewer. 2024-01-16 22:04:00 -05:00
harry dc2d3c26aa Added global JS property tree to allow exploring of engine data. 2024-01-16 21:48:13 -05:00
harry 9a9f9541d6 Build fix for systems without Qt QML installed. 2024-01-15 20:09:25 -05:00
harry 198cdafbf8 Qt JS script engine interface in work. 2024-01-15 14:17:13 -05:00
harry e51a748a05 Qt JS engine in work. 2024-01-15 05:34:13 -05:00
harry ecda95ed70 Qt JS engine in work. 2024-01-15 04:33:27 -05:00
harry 3436e221de For Qt GUI, added initial framework for use of the Qt built-in ECMAScript (javascript based) engine. This scripting capability will allow users to load their own custom UI windows (created using Qt Creator tool) in the GUI. This is intended to serve as a the Qt GUI's functional replacement for building GUI elements using IUP in LUA scripts. This is a work in progress. 2024-01-14 08:58:10 -05:00
harry b53d087fca Changed Qt Win64 1px fullscreen window border to be a configuration option. Doesn't seem to be necessary for all users and maybe not at all anymore. We will see if the QOpenGLWidget issue resurfaces with this setting off. Fixes #514 2023-12-12 21:27:55 -05:00
harry 72b949efcd For Qt GUI, added hot keys for certain emulation speed presets. Presets are: 1/4x, 1/2x, Normal 1x, 2x, 4x, 8x, and 16x. These hot keys can be mapped to gamepads using advanced key bindings. 2023-11-30 21:09:52 -05:00
harry 8600679636 Comment out warning message about debug file not being able to be opened for reading. It is normal for the file to not exist so it seems silly to warn about not being able to open it. 2023-11-24 09:02:50 -05:00
harry 99bb679ac5 Integrated suggested changes for issue #649 2023-06-18 18:11:03 -04:00
harry 43cd7ef60a Updated Qt driver FCEUD_GetTime and FCEUD_GetTimeFreq functions to allow for a higher timing resolution. 2023-05-21 18:41:24 -04:00
harry 1a3170fd68 Changed Qt GUI frame throttling to use new time stamp record for computing timing. This fixes an issue where frame timing starts to lose precision when application time gets to float large values by performing calcultions using integer math 2023-05-21 16:44:20 -04:00
harry e597f6a4a3 Moved time stamp functions to its own file. Use new common time stamp functions in Qt GUI timing. 2023-05-19 22:31:01 -04:00
harry a20f6f559b Compiler warning fix for potential uninitialized var. 2023-05-15 21:29:42 -04:00
harry be38e34a06 For Qt GUI, added code to save/restore window geometry for ROM selection from archive dialog. 2023-05-15 21:11:19 -04:00
harry 584593816f Remove debug symbol save call from load symbols function so that live file edits are not overwriten. Added a save debug symbols debugger menu action so that this can be explicitly performed. Fixes issue #642. 2023-05-15 20:42:17 -04:00
harry 7573f1b7dc Added profiler per thread logging. 2023-05-13 20:26:56 -04:00
harry 58b87387eb Cleanup of Qt GUI video driver viewport loading/unloading. Use QObject::deleteLater for a cleaner shutdown of a viewport. 2023-05-11 08:05:14 -04:00
harry 52c53dfe5b Removed commented out code Qt GUI video interface code. 2023-05-10 21:30:27 -04:00
harry b125d48db5 For Qt GUI add code that forces video alpha bits to 255 for all pixels. Some video drivers aren't ignoring the alpha bits as they should so make sure they as always set to be safe. 2023-05-10 20:58:19 -04:00
harry 3208c01b38 Hooked up bi-linear filter for new QPainter video driver. 2023-05-10 00:25:07 -04:00
harry 13b52f5c8e A few corrections to the QPainter Video driver. 2023-05-09 23:01:53 -04:00
harry 3d6cf7a730 Added a third video driver option for Qt GUI that uses a QPainter object to render QImages to the viewport. Consolidated video driver interface into a base class so generic object pointer can be used throughout the code to control the viewport. 2023-05-09 22:57:05 -04:00