Commit Graph

28 Commits

Author SHA1 Message Date
Arisotura e3e561da3f lock framebuffer stuff to prevent conflicts when reiniting the core or changing the renderer 2024-10-31 22:51:18 +01:00
Arisotura 9c8f229fed misc shit 2024-10-31 22:37:46 +01:00
Arisotura f3bd58f75e do touchscreen input more properly 2024-10-31 22:10:25 +01:00
Arisotura 1b8daa0465 fix up cheat toggle 2024-10-31 20:33:57 +01:00
Jakly 4ba8f330c4
fix framerate target not adjusting with vcount writes (#2181) 2024-10-30 19:40:33 +01:00
Arisotura 94955aee81 fix another OpenGL bug (when closing secondary window) 2024-10-27 14:51:11 +01:00
Arisotura e576538268 synchronize pause/unpause across all instances 2024-10-27 11:21:30 +01:00
Arisotura 4ae4397547 properly update display type across all windows
(remind me to also propagate changes across instances)
2024-10-27 02:42:27 +02:00
Arisotura b2ae4c7dc5 lay base for a window with no menubar 2024-10-27 02:07:33 +02:00
Arisotura 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
Arisotura 979f1ed615 same shit with Import Savefile 2024-10-25 10:52:47 +02:00
Arisotura 75e6856af4 route savestate stuff through EmuThread 2024-10-24 19:27:45 +02:00
Arisotura 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
Arisotura 1666049531 fix shit 2024-10-24 14:00:11 +02:00
Arisotura 079341f102 take this a bit further 2024-10-24 11:44:21 +02:00
Arisotura 82f38f0b7a start moving ROM/firmware loading to the emuthread to avoid cursed bugs 2024-10-24 00:27:05 +02:00
Arisotura 1428bfb2cf fix one of the cursed bugs 2024-10-23 20:33:31 +02:00
Jakly 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
Arisotura 8d31875902
Backport LAN (#2131)
backport the old LAN feature to the modern melonDS codebase.
2024-08-10 23:20:50 +02:00
Arisotura 8fc403cdad update copyright headers 2024-06-15 17:01:19 +02:00
Arisotura 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
RSDuck 347f4a79fd Fix division by zero 2024-05-13 17:23:05 +02:00
RSDuck 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
Jesse Talavera 31a7f53282
Fix a crash when using DSi mode in debug builds on macOS (#1976)
Store the BIOS images in `NDSArgs`/`DSiArgs` through pointers, not directly

- This will make it easier to keep such objects on the stack
2024-03-13 14:55:20 +01:00
Nadia Holmquist Pedersen 7dd4152d67 Add MaxFPS setting 2024-01-26 13:06:32 +01:00
Jesse Talavera d1cbc41115
Slight fixups with `FATStorage` (#1934)
* Reload the SD card for `CartSD` and all subclasses

* Make `ROMManager::LoadDLDISDCard` delegate to `GetDLDISDCardArgs`

* Add a method overload for `CartSD::SetSDCard`

* Initialize new SD card images with the correct size

* Sync the old card to the host (if applicable) when move-assigning a new one

* Only sync the old card to the host if it's not read-only

* Remove static state in `FATStorage`

- Replace `FF_ReadStorage` and `FF_WriteStorage` with lambda functions
- Keep open and use the single `File` handle throughout the `FATStorage`'s life
2024-01-03 13:32:17 +01:00
Arisotura 345b7439e4 integrate OSD into ScreenPanel and make it nicer 2023-12-28 14:40:37 +01:00
Arisotura f905b6fb93 separate EmuThread to its own file 2023-12-26 19:24:14 +01:00