Commit Graph

321 Commits

Author SHA1 Message Date
Matthew Budd 823e7948c0 Debug window breakpoint highlighting when hit in work. 2020-09-09 23:13:53 -04:00
Matthew Budd 1403ab607d More widget logic added to Qt debug window. 2020-09-09 21:58:09 -04:00
Matthew Budd 473ef5b7dc Added a little more logic to Qt debug window. 2020-09-09 20:22:31 -04:00
Matthew Budd dd7aa8fc2c Added initial framework for adding, editing, and removing breakpoints. 2020-09-08 22:18:49 -04:00
Matthew Budd 4e3e4d2e54 Added logic to update PPU labels on debug window. 2020-09-04 06:48:29 -04:00
Matthew Budd abf863a6a2 Debugger window functionality in work. 2020-09-04 06:37:22 -04:00
Matthew Budd e688ebe23b ASM view port in work. 2020-09-03 22:39:01 -04:00
Matthew Budd fc201b5ff7 Created custom widget for ASM viewport. 2020-09-03 22:21:53 -04:00
Matthew Budd 254a1a1d37 ASM display window changed to use QPlainTextEdit instead of QTextEdit. 2020-09-02 22:16:41 -04:00
Matthew Budd ccbcab5e77 Initial port of ASM window code. 2020-09-02 21:31:54 -04:00
Matthew Budd 7001b55569 Added initial framework for console breakpoint debugger window. 2020-09-01 22:04:59 -04:00
Matthew Budd 0349bb3a86 Added hex editor fore and back ground color options to config file. Options are now also saved when using the editor color picker. 2020-08-30 10:35:00 -04:00
Matthew Budd e711b21ee4 Added hex editor remove all bookmarks question acknowledgement box. 2020-08-28 20:23:20 -04:00
Matthew Budd ca59812e97 Added hex editor bookmark auto load/save functionality. 2020-08-27 22:43:13 -04:00
Matthew Budd 1032e6f443 Bookmark menu action memory management fix. QMenu will only delete QActions if it has ownership of the widget. 2020-08-26 22:53:39 -04:00
Matthew Budd 114e22c48f Added hex editor bookmark functionality. Still TODO save bookmarks to file based on ROM name. 2020-08-26 22:44:11 -04:00
Matthew Budd 51019a6e06 Cleanup up old commented out code in QT GUI main window. 2020-08-25 21:24:34 -04:00
Matthew Budd c23fa5dc60 Memory management fix for QT dialog windows. Ensure that window is marked for deletion when it is closed. 2020-08-25 20:59:36 -04:00
Matthew Budd a624278fca Added native menu option to hex editor. 2020-08-25 18:41:58 -04:00
Matthew Budd 67f6be539a Added TODO comments to hex editor context menu. These menu options can not be finished until other debug features such as the debugger and code/data trace/log functionality has been created. 2020-08-24 20:50:06 -04:00
Matthew Budd 1f09ecca2c Added hex editor window close menu option. 2020-08-24 20:27:12 -04:00
Matthew Budd 14f0da12c7 Added save ROM as hex editor functionality 2020-08-24 20:06:36 -04:00
Matthew Budd 08feb4710b Added utility function to strip out a base file name from a full path. 2020-08-24 19:52:28 -04:00
Matthew Budd e8f1ffdf8d Added hex editor horizontal scroll logic. 2020-08-23 22:24:54 -04:00
Matthew Budd a93af6f821 Cleanup of hex editor code, consolidated as much as possible into QHexEdit custom widget. 2020-08-23 10:00:54 -04:00
Matthew Budd 832a6b0a64 Setting up framework for hex editor bookmarks 2020-08-22 22:01:53 -04:00
Matthew Budd ff3125cbf8 Bug fix for updating vertical bar when using page up/down functions. 2020-08-22 21:42:51 -04:00
Matthew Budd 4b92abdb47 Added framework for hex editor context menu. 2020-08-22 21:38:09 -04:00
Matthew Budd 66810fdb9d Changed cursor movement logic to move to nearest hex address. 2020-08-22 20:48:31 -04:00
Matthew Budd b01b1c7a4c Cursor selection update to Hex editor 2020-08-22 20:42:33 -04:00
Matthew Budd f3af7cc6c8 Added hex editor fore ground and back ground color options. 2020-08-22 20:20:18 -04:00
Matthew Budd 6a425f61d1 Added activity color options to hex editor menu. 2020-08-22 19:54:11 -04:00
Matthew Budd 6aacaa5595 Added activity color highlight logic. 2020-08-22 19:15:56 -04:00
Matthew Budd c99c729b23 Added hex editor view mode menu logic. 2020-08-22 14:16:13 -04:00
Matthew Budd ecf558c1a3 Moved pixel space to cursor position conversion into its own function. 2020-08-22 13:57:36 -04:00
Matthew Budd 1eaa3f46f9 Added logic to position cursor via left mouse clicks on hex editor. 2020-08-21 21:05:52 -04:00
mjbudd77 b37e1e03f0 Cppcheck warning fixes for Qt GUI. 2020-08-21 11:55:19 -04:00
mjbudd77 b614edee75 Added memory write logic to hex editor. 2020-08-21 11:50:36 -04:00
Matthew Budd 75b076f256 Added a couple more key bindings to hex editor cursor control. 2020-08-20 22:44:14 -04:00
Matthew Budd f6afca360f Added hex editor X,Y cursor movement via arrow keys. 2020-08-20 22:34:45 -04:00
Matthew Budd 5f57455de7 Cursor positioning logic in work. 2020-08-20 22:28:02 -04:00
Matthew Budd 65f6b06033 Added ascii output to hex editor. 2020-08-20 21:47:21 -04:00
Matthew Budd b23349e870 Added vertical slider logic. 2020-08-20 21:21:48 -04:00
Matthew Budd b6b2038c96 Added initial framework for hex editor menu. 2020-08-20 20:41:38 -04:00
Matthew Budd 12f27d2158 Moved hex text editor into its own widget QHexEdit 2020-08-20 20:22:24 -04:00
Matthew Budd 9b90d2d684 Updated Hex editor fore/back ground color schemes to use dark background and light foreground text. 2020-08-19 23:05:01 -04:00
Matthew Budd 09ec672597 Changed approach to Qt hex editor to use raw painting of text. 2020-08-19 22:27:42 -04:00
Matthew Budd 466e513778 QHexEdit did not meet performance goals. Removing to try other options. 2020-08-18 22:19:53 -04:00
Matthew Budd d4d59b0c01 Trying out different QHexEdit function as QTextEdit was too inefficient. 2020-08-17 22:35:27 -04:00
Matthew Budd 4e7e82dbcd Qt Hex Editor in work. 2020-08-16 21:24:27 -04:00
Matthew Budd 490289a6f7 Qt Hex editor in work. 2020-08-16 10:38:42 -04:00
Matthew Budd 11ccdf77b4 Added initial framework for hex editor. 2020-08-15 21:41:06 -04:00
Matthew Budd b749c0982e Changed cheat window text entry field sizing to be proportional to average font char width. 2020-08-15 21:20:58 -04:00
Matthew Budd 9dee79bd8b Added game pad default mapping file generation logic for new controllers to Qt GUI. 2020-08-15 13:27:07 -04:00
Matthew Budd 3618f30f0d Minor code cleanup in SDL game pad config. Small logic change to joystick init. 2020-08-13 21:08:02 -04:00
Matthew Budd 1c6851c3f0 Bug fix for SDL joystick not working using SDL video driver. By default SDL joystick inputs are ignored if the SDL window does not have focus. Set SDL HINT to allow for background joystick inputs to accepted (i.e. joystick inputs come through even though window not in focus). 2020-08-10 21:04:42 -04:00
Matthew Budd 1d417a49ae Back ported SDL2 game controller improvements to GTK from QT GUI. 2020-08-09 22:19:38 -04:00
Matthew Budd a2fbb33d68 Added video driver select option for GTK/SDL GUI. Currently there are 3 possible video drivers: OpenGL GLX, SDL2, and Cairo. 2020-08-07 21:22:07 -04:00
Matthew Budd 1b0888e146 Added git url/revision info to the GTK/SDL GUI about window. Added git url/revision information to command line help print out for both GTK and QT versions. 2020-08-07 16:59:27 -04:00
Matthew Budd b7067cc1da Removed debug print statement. 2020-08-03 21:12:54 -04:00
Matthew Budd bbd0fe4470 Added cheat save file logic to cheat window export button. 2020-08-03 21:04:58 -04:00
Matthew Budd 4a494f8dc1 Added code to center text inside numerical entry fields on the cheat window. 2020-08-03 20:30:45 -04:00
mjbudd77 0fdf8cec14 Changed character used for width to be an X instead of 0 2020-08-03 20:20:48 -04:00
Matthew Budd b0529d564a Added pause while cheat window is active checkbox logic. 2020-08-02 21:19:32 -04:00
Matthew Budd 7c84e7b383 Added global cheat enable and auto load/save checkboxes 2020-08-02 20:58:59 -04:00
Matthew Budd e99cc1d64d Added logic to lock emulation when modifying cheats. 2020-08-02 20:31:21 -04:00
Matthew Budd 7d6f1fdacc Added logic to lock emulation when adding or deleting cheats. 2020-08-02 20:29:24 -04:00
Matthew Budd 53c96c9fbd Added button sensitivity logic for cheat search window. 2020-08-02 20:23:12 -04:00
Matthew Budd 2905c105bf Added cheat add/delete button logic. 2020-08-02 20:04:59 -04:00
Matthew Budd 34279fd5ac Added logic for modify active cheat parameter update button. 2020-08-01 21:33:43 -04:00
Matthew Budd 2d57b88e64 Added code to populate active cheat list. 2020-07-31 22:03:14 -04:00
Matthew Budd 3e1cfb3a94 More cheat search updates. 2020-07-31 20:18:39 -04:00
Matthew Budd b6871bc36d Added callbacks for cheat search buttons. 2020-07-31 20:14:17 -04:00
Matthew Budd cf54c8d225 Cheat window widget layout in work. 2020-07-30 23:06:02 -04:00
Matthew Budd bec89112e2 More updates to cheat window. 2020-07-28 22:54:52 -04:00
Matthew Budd 5088991a8d Added more widgets to the cheat window. 2020-07-28 21:37:28 -04:00
Matthew Budd c76d70582a Adding GUI framework for cheat window. 2020-07-27 22:26:41 -04:00
Matthew Budd 3c2a93d7c4 Added a protection in the audio output loop to break out of the loop if the audio sink is not draining. This will prevent lockups in the event that the audio output device has failed. 2020-07-27 21:20:25 -04:00
Matthew Budd 3528adea30 Changed error message window to use QMessageBox instead of QErrorMessage to have more control over display image. 2020-07-26 22:04:31 -04:00
Matthew Budd e918f8562a Added an error message window to the GUI. Added About Qt window to GUI. 2020-07-26 21:31:32 -04:00
Matthew Budd 0112782eab Added logic to change color of changed button mapping to red until they are save to a profile. Also, added a warning message to inform user of unsaved mappings. 2020-07-26 14:07:28 -04:00
Matthew Budd b48b81c938 Commented out command line INOP inputCfg functionality. With new GUI gamepad config, this should not be required anymore. 2020-07-24 23:04:56 -04:00
Matthew Budd 976266547c Bug fix for shutdown of joystick system. 2020-07-24 22:41:19 -04:00
Matthew Budd 4175ca6052 Added logic to skip unassigned buttons in the config. 2020-07-24 22:26:09 -04:00
Matthew Budd 3db85cd1d2 Game pad code cleanup. 2020-07-24 22:12:45 -04:00
Matthew Budd da04bbdfc5 Added logic to init game pad mappings at startup 2020-07-24 21:47:57 -04:00
Matthew Budd 67e87787e3 Added logic to load default keyboard mapping. 2020-07-24 18:44:18 -04:00
mjbudd77 8afeb43759 Added code to allow for deletion of game pad profiles. 2020-07-24 17:14:03 -04:00
mjbudd77 b71630379a Added game pad button mapping profile logic. 2020-07-24 16:56:48 -04:00
mjbudd77 675b73cbed Added mapping profile widgets. Still TODO, write code behind them. 2020-07-24 11:05:20 -04:00
mjbudd77 b815fbfe47 Added logic to show state of mapped buttons on game pad config page. 2020-07-24 09:50:03 -04:00
Matthew Budd e50d6e22ed Added logic to load default game pad button bindings from SDL database. 2020-07-24 00:11:11 -04:00
Matthew Budd e018b4b945 Removed unused button config arrays in preparation for implementing SDL2 game controller setup. 2020-07-23 18:43:45 -04:00
Matthew Budd 10b84fa47c Added SDL game controller logic to sdl-joystick. Preparing to re-vamp the input module. 2020-07-22 22:17:53 -04:00
Matthew Budd 02c3012215 Added a checkbox option to the gui config page to allow for the gui to use the native OS menu bar for mac os and certain linux distros. 2020-07-21 20:06:25 -04:00
Matthew Budd 3fc99f7d30 Added logic to allow the use to optionally select either the Qt/OpenGL or SDL as the video driver. 2020-07-20 22:45:33 -04:00
Matthew Budd f59bf15d30 Created a console utilities file to hold misc functions used by the Qt/SDL port. 2020-07-20 21:06:49 -04:00
Matthew Budd 4e9601a241 Added logic for the lua output display console. 2020-07-19 21:33:20 -04:00
Matthew Budd 122473b575 Added Lua control window. 2020-07-19 21:15:56 -04:00
Matthew Budd 188320147a Bug fix for file name patterns used with QFileDialog 2020-07-19 20:04:42 -04:00
Matthew Budd 397e17ba99 Added a GUI config window to for misc GUI options. Added an option to use the native OS file browser when looking for files. 2020-07-19 18:43:42 -04:00
Matthew Budd c0febe1d3e Added a hook in the core palette emulation to allow for the gui to determine if a custom user palette is available and in use. 2020-07-18 21:58:38 -04:00
Matthew Budd 002481c6b9 Added a few more options to the palette config window. 2020-07-18 15:19:01 -04:00
Matthew Budd 2d4451a43c Added logic in the emulator thread to check if requests to acquire the mutex have been made by the gui. If requests are found, the emulator thread will sleep so that the gui thread can gain access and service the requests. 2020-07-17 22:14:20 -04:00
Matthew Budd 6fb247d785 Changed QMutex to be recursive to prevent dead-locks in gui and emulator. A few bug fixes for the palette config window. 2020-07-17 21:50:23 -04:00
Matthew Budd be7dcda45e Added palette config window and logic. 2020-07-16 21:18:57 -04:00
Matthew Budd 44750bf88f Added a higher resolution icon to project. 2020-07-12 12:53:41 -04:00
Matthew Budd 35b0227809 Added logic to initialize the video PAL combo box with proper config value at window creation. 2020-07-11 22:37:29 -04:00
Matthew Budd c93d0b3113 Added command line help output. 2020-07-11 22:09:51 -04:00
Matthew Budd 76d8b829bd Bug fix for file browser initial directory calculation. 2020-07-11 21:29:23 -04:00
Matthew Budd d43383d8bf Fixed directory pathing for file browser. 2020-07-11 21:14:37 -04:00
Matthew Budd b3c51ef4b1 Added movie menu logic to gui. 2020-07-11 20:48:48 -04:00
Matthew Budd 96df0c25e1 Added logic to auto embed the git URL and revision into the executable so that it can be displayed on the About dialog window. 2020-07-11 19:52:14 -04:00
Matthew Budd 889250b720 Updated About Window. 2020-07-11 17:26:08 -04:00
Matthew Budd f436408b06 Updated about window to use embedded png. 2020-07-11 17:06:22 -04:00
Matthew Budd 2c370389fd Added window icon resource. 2020-07-11 16:55:45 -04:00
Matthew Budd 32116210b8 About FCEUX window in work. 2020-07-11 16:11:48 -04:00
Matthew Budd 210e04fe92 Added FDS menu functionality. 2020-07-11 14:42:02 -04:00
Matthew Budd 6fcfb2af7a Added insert coin menu functionality. 2020-07-11 14:21:20 -04:00
Matthew Budd b4280ee33d Added menu logic to load Game Genie ROM file 2020-07-11 14:03:40 -04:00
Matthew Budd c41cd863c6 Added game genie enable menu logic. 2020-07-11 12:59:14 -04:00
Matthew Budd 74afb50949 Added basic functions of emulation menu 2020-07-11 11:58:11 -04:00
Matthew Budd b830e0aae5 Added screen shot menu function. 2020-07-11 10:29:03 -04:00
mjbudd77 cb453fa194 Moved linux pipeline to cmake instead of qmake. 2020-07-10 13:51:32 -04:00
mjbudd77 1206fcebbd Successful build of QT gui using cmake instead of qmake. 2020-07-10 10:59:07 -04:00
Matthew Budd 26e320b163 Bug fix for small memory leak on window init. 2020-07-09 21:38:31 -04:00
Matthew Budd 67b7c34576 Added change state select menu radio button logic. 2020-07-09 21:33:53 -04:00
Matthew Budd 0d8c442b35 Added a few state load menu items. 2020-07-09 21:00:04 -04:00
Matthew Budd 5958dc18fb Added fullscreen menu function. 2020-07-07 21:45:24 -04:00
Matthew Budd d87b5c7ab7 Added logic for auto-resume play menu item. 2020-07-07 21:26:15 -04:00
Matthew Budd 46271dfa61 Added video region combo box logic. 2020-07-07 21:06:24 -04:00
Matthew Budd ea1782bfe5 Added checkbox logic for video config window. 2020-07-07 20:53:31 -04:00
Matthew Budd 313bba68f9 Added missing tr function calls around string literals. 2020-07-07 18:49:58 -04:00
Matthew Budd ce0a8fdf63 Added framework for video config window. Still TODO writing logic. 2020-07-07 08:59:47 -04:00
Matthew Budd b2c094a6bf Added QT Hotkey configuration window. 2020-07-06 21:44:23 -04:00
Matthew Budd 1a99903933 Changed name of main window periodic update function so that is not the same name as QWidget base update function. 2020-07-05 22:10:28 -04:00
Matthew Budd f9b5796ef0 Created a local buffer for the openGL video image to better sync the image with the drawing frame in the gui thread. 2020-07-05 21:40:19 -04:00
Matthew Budd 4dca42bfca Moved the physical input update to the main thread since the MAC OS X SDL2 requires it to be so. 2020-07-05 21:16:31 -04:00
Matthew Budd 70a00fab13 Added mutex sync when changing sound properties of the emulator. 2020-07-05 16:54:33 -04:00
Matthew Budd ac43cc3e62 Renamed gameViewer to ConsoleViewer. 2020-07-05 16:44:36 -04:00
Matthew Budd 824bdda083 Renamed a few of the files and class objects to be more appropriate to what the actually are. 2020-07-05 16:37:26 -04:00
Matthew Budd f2e7b66c61 changed QThread setup to be a separate object from the console window. 2020-07-05 16:27:13 -04:00
Matthew Budd acc02ee98e Moved FCEU emulation to its own thread for better timing control. 2020-07-05 16:11:53 -04:00
Matthew Budd c496c0f281 Added logic to increase/decrease emulation speed via hotkeys using QTimer system. Bug fix for = key Qt to SDL mapping. 2020-07-03 21:52:27 -04:00
mjbudd77 72141845f0 Changed gl_shm name to nes_shm. Added audio circular buffer to shared memory. 2020-07-03 15:58:53 -04:00
Matthew Budd 7eca2978ed Minor removal of underscored F on File menu. 2020-07-02 21:08:46 -04:00
Matthew Budd 91e5427258 Successful test of full sound config window functionality. 2020-07-02 21:05:08 -04:00
Matthew Budd 021452b7f0 Sound configure window in work. 2020-07-02 20:49:52 -04:00
Matthew Budd afc3a61014 Started putting together window framework for sound configuration. 2020-07-01 22:03:59 -04:00
mjbudd77 104f7c465e Updated init call for game viewer SDL to match GL. 2020-06-30 20:04:17 -04:00
mjbudd77 2762d53791 Cleaned up game viewer GL. 2020-06-30 19:53:29 -04:00
mjbudd77 e2b853661d More testing with SDL game viewer driver, keeps drawing over the menu
bar on the mac os. Thinking native GL inside QT is the way to go.
2020-06-30 09:22:59 -04:00
mjbudd77 41b54b9813 Solved MAC OpenGL scaling issue. Turns out it was related to the retina
screen having a 2x device to framebuffer scaling.
2020-06-29 23:24:41 -04:00
Matthew Budd c6b46bfcc1 Added software pixel remapper function to openGL renderer. 2020-06-29 22:24:34 -04:00
Matthew Budd 26fe3c7da5 Added logic to keep proper aspect ratio on SDL driven screen. 2020-06-29 21:13:05 -04:00
Matthew Budd 53dcb48a90 Successful test of SDL video driver inside QT window. 2020-06-29 10:11:02 -04:00
Matthew Budd 95d055da2c Renamed openGL based game viewer so to distinguish it from others that will be tested. 2020-06-29 08:15:26 -04:00
Matthew Budd 970afc2bea Added logic to use GL_TEXTURE_RECTANGLE instead of GL_TEXTURE_2D 2020-06-28 10:11:03 -04:00
Matthew Budd 59462545ca Gui controller calibration fixes and enhancements. 2020-06-27 21:08:02 -04:00
Matthew Budd 7ba7ef4b82 Include path fixes for qmake incorrectly marking sdl folder for heading includes. 2020-06-27 20:07:24 -04:00
Matthew Budd 1980dd8c5b Game Pad calibration page still in work. 2020-06-26 21:56:26 -04:00
Matthew Budd cb664b44a0 commented out debug print statement. 2020-06-26 20:32:44 -04:00
Matthew Budd 950004503b Hooked up checkboxes on gamepad config page. 2020-06-26 20:27:20 -04:00
mjbudd77 002e9e0f34 Added logic to configure gamepad buttons. Still needs more testing. 2020-06-26 16:35:41 -04:00
Matthew Budd ee02883ac7 QT gamepad window in work. 2020-06-26 12:46:48 -04:00
Matthew Budd f1153bfc6b Successful test of loading ROM via QFileDialog, changed logic to not use native gnome file dialog as it is very lagged. 2020-06-26 09:29:47 -04:00
Matthew Budd d6ff002af0 Added keyboard QT to SDL2 key conversion functionality. 2020-06-24 21:57:43 -04:00
Matthew Budd f53bbc8cde Added logic to close game and shutdown FCEU system on window close. 2020-06-23 23:04:10 -04:00
Matthew Budd 095415790c Cleaned up unnecessary test code. 2020-06-23 22:55:48 -04:00
Matthew Budd 0352483a19 Successful display of video in QT gui. 2020-06-23 22:51:10 -04:00
Matthew Budd be4c650238 Starting new QT gui. 2020-06-23 20:40:43 -04:00