Commit Graph

512 Commits

Author SHA1 Message Date
f0b81a9050 resurrect some of the OSD, properly dispatch it to all windows 2024-05-24 19:29:58 +02:00
a7bce8e233 some more small fry 2024-05-24 19:19:23 +02:00
b5cc5a2cf7 port some small fry to the new config system. 2024-05-24 11:41:51 +02:00
f9449999ec add required shit for loading per-window config (I think) 2024-05-23 23:31:15 +02:00
d50f01b774 port input subsystem 2024-05-23 18:50:29 +02:00
daf981e7c2 port audio settings to new config system 2024-05-23 02:23:24 +02:00
d634c450bb MERGEZORZ II 2024-05-20 01:07:35 +02:00
d75c46c9f3 Merge remote-tracking branch 'origin/master' into doublemelon
# Conflicts:
#	src/frontend/qt_sdl/Config.cpp
#	src/frontend/qt_sdl/EmuThread.cpp
#	src/frontend/qt_sdl/EmuThread.h
#	src/frontend/qt_sdl/Screen.cpp
#	src/frontend/qt_sdl/main.cpp
2024-05-20 00:50:25 +02:00
8bd50bb8b3 MERGEZORZ 2024-05-20 00:46:59 +02:00
c3226f435c make it actually work, somewhat
still a lot more crap to fix
2024-05-20 00:19:22 +02:00
e50463e983 finally, it builds
(don't get your hopes up. it crashes)
2024-05-20 00:04:05 +02:00
3d47fa08b8 migrate AudioInOut inside EmuInstance 2024-05-19 23:58:14 +02:00
21de51bb3f zarg 2024-05-19 21:34:20 +02:00
cde47f56c5 it keeps going 2024-05-19 01:42:44 +02:00
30444036a6 botch one more thing 2024-05-18 11:58:17 +02:00
2fc1ae780b hey look, more shit 2024-05-18 11:45:31 +02:00
10380320c5 more work
aaaaaaaa
2024-05-16 21:20:10 +02:00
a72b79a55a that needs to be public actually 2024-05-15 19:43:34 +02:00
cfc49eb286 Revert slirp dynamic/static check, and make it not use dllimport/export
when building statically
2024-05-15 19:37:14 +02:00
d21bc64cb3 MinGW build portability fixes
AKA you can build melonDS for Windows on Fedora now
2024-05-15 18:57:49 +02:00
a2406e3c0e Vendored libslirp (#2045)
Add vendored libslirp into the repo with a shim to remove its dependency on glib.
2024-05-15 18:00:55 +02:00
d10b5f8b8a more work
feuhqdskfqejlmdsjjjvwdccccccccccccccccccccccccccccccccccc
2024-05-15 01:00:41 +02:00
5ab8161a21 Prevent turning on compute renderer on macOS 2024-05-14 11:39:06 +02:00
347f4a79fd Fix division by zero 2024-05-13 17:23:05 +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
7e705b6b41 almost looks like something? 2024-05-12 01:24:03 +02:00
3f6af2ce3b backport Nadia's zstd fix 2024-05-12 00:00:51 +02:00
199c2df8bb some more work, nearly done porting ROMManager shit over 2024-05-11 23:59:08 +02:00
c85a2103bb Allow adding a suffix to the displayed melonDS version 2024-05-11 22:40:45 +02:00
b96f1bd734 add more shit to EmuInstance 2024-05-11 10:18:05 +02:00
faa6cfec48 WIP. lay base for EmuInstance. 2024-05-10 12:48:32 +02:00
35cea5e1d7 Fix zstd ROM loading issues
* fix use-after-free of inContent
* don't try to free the DStream twice
2024-05-04 18:16:24 +02:00
f93937e88b as a test, convert EmuSettingsDialog to the new config shito 2024-04-18 16:52:18 +02:00
92d1614b45 add array stuff 2024-04-17 23:02:08 +02:00
9283d1ae36 lay some groundwork for the new config system 2024-04-17 18:09:32 +02:00
5a852cb00d ROMManager: optimise ROMIcon function
Precompute all 16 5-bit RGB palette colours into 8-bit RGBA to avoid
repeated and superfluous calculation within the nested loop at the
point of index lookup.

A speedup was observed, from ~7ms, to a consistent 1ms
(i.e. now practically instantaneous) through timing with
std::chrono::high_resolution_clock.

Also improve comprehensibility, by using meaningful names, where
appropriate, for loop counter variables.
2024-04-16 23:39:22 +01:00
b0c32d77bd some work on converting melonDS.ini to toml 2024-04-15 00:26:09 +02:00
c6427d2501 switch to toml11 2024-04-14 20:25:11 +02:00
8feeee6103 Input: only check joystick input if a joystick actually exists 2024-04-12 20:02:16 +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
0b87dd5fa6 fix touchscreen bug on Wayland 2024-04-09 12:54:31 +02:00
968bd26d85 fix generation of instance-unique MAC address when using an external firmware 2024-04-09 11:38:38 +02:00
adb5760604 push temp. shito 2024-04-05 23:00:19 +02:00
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
ea1755bed0 call Start again NDS object after Reset
fixes issue where game doesn't properly start after changing settings
2024-03-12 09:23:20 +01:00
5fdd285c9a fix aarch64 build 2024-03-12 08:41:42 +01:00
18d1df606f fix #1959
Use QT again for opening file so that we don't depend on locale
2024-03-12 08:35:56 +01:00
faf3c0f2e0 Add Gaussian (SNES) audio interpolation
Probably not a good choice for most DS games unless you really want a
very soft sound, but it could be fun if you wanted to run lolSnes in
melonDS :p
2024-03-08 16:36:00 +01:00
e227902cec Util_Audio: use basic linear interpolation
Should remove the artifacts caused by the previous nearest
resampling. May be worth replacing with something better in the
future, but this is an improvement for now.
2024-03-03 16:58:59 +01:00
67ca4997e2 Release all keyboard keys on focus loss (fixes #1987) 2024-02-25 14:25:50 +01:00