Commit Graph

44 Commits

Author SHA1 Message Date
d79d45a117 properly sync up menus between windows of a same instance 2024-10-27 16:21:09 +01:00
a61754bb58 fix possible crash when closing window while video settings dialog is open 2024-10-27 13:53:12 +01:00
6d345cc1ea correctly propagate video settings changes to all windows 2024-10-27 13:43:26 +01:00
e576538268 synchronize pause/unpause across all instances 2024-10-27 11:21:30 +01:00
e6f0d77aa0 fix freeze when starting new emu instance while using OpenGL 2024-10-27 10:17:59 +01:00
24ca1a5fdb lay base for keeping config in sync across multiple instances 2024-10-27 10:02:57 +01:00
2bf0eb7ead Handle failure of OpenGL context creation (#2172) 2024-10-27 09:20:51 +01:00
2d561a60c8 fix Qt5 compatibility (sdffdf) 2024-10-27 09:16:46 +01:00
4ae4397547 properly update display type across all windows
(remind me to also propagate changes across instances)
2024-10-27 02:42:27 +02:00
b2ae4c7dc5 lay base for a window with no menubar 2024-10-27 02:07:33 +02:00
881a740cab start actually implementing multi-window feature, still rough around the edges
fix crash when closing main window if sub windows are involved

fix OpenGL context handling, still need to fix when changing display type
2024-10-27 01:14:29 +02:00
1d284f6f1e as promised, reroute dropEvent() through EmuThread 2024-10-25 16:16:23 +02:00
fc3c7440d1 fix that crash 2024-10-25 12:33:04 +02:00
979f1ed615 same shit with Import Savefile 2024-10-25 10:52:47 +02:00
8b6628b070 Work around Qt windows11 theme menu bar padding 2024-10-25 01:15:59 +02:00
287f6642fc Add an About dialog with build info (#2138)
add About dialog
2024-10-24 22:05:30 +02:00
75e6856af4 route savestate stuff through EmuThread 2024-10-24 19:27:45 +02:00
3fc065d72d fix ROM preloading to also go through EmuThread 2024-10-24 17:48:34 +02:00
1787235e09 fix more shit
now it doesn't shit itself on startup if the BIOS paths are wrong
2024-10-24 17:20:14 +02:00
13b4cea171 move screen layout/etc options to new View menu 2024-10-24 16:08:04 +02:00
1666049531 fix shit 2024-10-24 14:00:11 +02:00
6d3ea6a485 fix bug with the GBA addon menu (and make it a proper list so we don't have to hardcode the length all over) 2024-10-24 13:49:43 +02:00
079341f102 take this a bit further 2024-10-24 11:44:21 +02:00
82f38f0b7a start moving ROM/firmware loading to the emuthread to avoid cursed bugs 2024-10-24 00:27:05 +02:00
b993ec10cd remove "Test" menu item 2024-10-23 11:57:37 +02:00
30441fed24 do not restore fullscreen state from saved geometry 2024-10-06 19:00:54 +02:00
e9446fa9dc implement 3 configurable and toggleable framerate targets (#2159)
This pr allows for configuring the framerate target and adds support for two other framerate targets, a "fastforward" and "slowmo" target which can be enabled via either a toggle or holding a button.
this allows for supporting a more accurate framerate target and allows for users to slow down the speed of gameplay if they so desire
2024-09-29 09:30:13 +02:00
2eb6d44c2c prevent use after free through focusOutEvent when window is closed 2024-09-24 20:08:07 +02:00
8d31875902 Backport LAN (#2131)
backport the old LAN feature to the modern melonDS codebase.
2024-08-10 23:20:50 +02:00
8423dae6ff Add "Open melonDS directory" menu option 2024-08-07 15:53:58 +02:00
327ce45124 Refactor network implementations to be more reusable and less buggy (#2107)
encapsulate network interfaces
2024-08-01 22:02:45 +02:00
9b828c2cde Implement Rumble Pak support. (#2101) 2024-07-21 17:01:30 +02:00
8fc403cdad update copyright headers 2024-06-15 17:01:19 +02:00
25a7b1ca1d merge doublemelon (#2067)
non-exhaustive (but exhausting) list of changes:

* base laid for multiple window support, but will likely require more work to work correctly
* encapsulation of frontend state for proper multi-instance support
* (JIT still needs a fix for the NDS::Current workaround but we can get there later)
* new, more flexible configuration system
2024-06-15 13:52:47 +02:00
043244a56d Compute shader renderer (#2041)
* nothing works yet

* don't double buffer 3D framebuffers for the GL Renderer
looks like leftovers from when 3D+2D composition was done in the frontend

* oops

* it works!

* implement display capture for compute renderer
it's actually just all stolen from the regular OpenGL renderer

* fix bad indirect call

* handle cleanup properly

* add hires rendering to the compute shader renderer

* fix UB
also misc changes to use more unsigned multiplication
also fix framebuffer resize

* correct edge filling behaviour when AA is disabled

* fix full color textures

* fix edge marking (polygon id is 6-bit not 5)
also make the code a bit nicer

* take all edge cases into account for XMin/XMax calculation

* use hires coordinate again

* stop using fixed size buffers based on scale factor in shaders
this makes shader compile times tolerable on Wintel
- beginning of the shader cache
- increase size of tile idx in workdesc to 20 bits

* apparently & is not defined on bvec4
why does this even compile on Intel and Nvidia?

* put the texture cache into it's own file

* add compute shader renderer properly to the GUI
also add option to toggle using high resolution vertex coordinates

* unbind sampler object in compute shader renderer

* fix GetRangedBitMask for 64 bit aligned 64 bits
pretty embarassing

* convert NonStupidBitfield.h back to LF only new lines

* actually adapt to latest changes

* fix stupid merge

* actually make compute shader renderer work with newest changes

* show progress on shader compilation

* remove merge leftover
2024-05-13 17:17:39 +02:00
c85a2103bb Allow adding a suffix to the displayed melonDS version 2024-05-11 22:40:45 +02:00
111dc7a563 wifi improvements:
* implement channels
* rework power-down support, fixing bugs
* fix bug when W_BeaconInterval is zero
* fix potential missing IRQs when writing to W_IE
2024-04-12 17:28:51 +02:00
67ca4997e2 Release all keyboard keys on focus loss (fixes #1987) 2024-02-25 14:25:50 +01:00
5ffa642980 Check for write permissions for some key files (#1972)
* check if an nds save file can be opened for writing

also add the ability to open a file in append mode

* fix multi-instance saves

also move the check for file writability into a separate function (probably uneeded?)

* implement check for gba roms

* move rom load error messages into the functions

also finish gba slot (oops)

* improve error string

* check write perms before saving path settings

* fix memory leak

* check for writability of firmware/nand/sds

* add secondary checks for nand/firmware

* add check for config file being writable

* Return the file write error as a QString to avoid the invalid char*
causing a garbled error message.

Qt wants it as QString either way.
2024-02-07 23:04:36 +01:00
345b7439e4 integrate OSD into ScreenPanel and make it nicer 2023-12-28 14:40:37 +01:00
f905b6fb93 separate EmuThread to its own file 2023-12-26 19:24:14 +01:00
7f437d48db start cleaning up: move OpenGL stuff out of EmuThread 2023-12-26 19:04:01 +01:00
80c6dd524b add convenience method to Window class for OSD messages 2023-12-25 16:34:29 +01:00
6a1232b9a9 move MainWindow and Screen stuff to separate files; WIP 2023-12-24 15:11:30 +01:00