Commit Graph

2180 Commits

Author SHA1 Message Date
Arisotura f8bf3211ed lay base for AAC ucode 2025-07-30 01:01:57 +02:00
Arisotura 6e8d1d748b huh 2025-07-29 01:14:52 +02:00
Arisotura 8da5f2f4a3 add all known CRCs for graphics ucodes 2025-07-29 00:52:57 +02:00
Arisotura 7e1e843ee3 add yuv2rgb 2025-07-29 00:28:37 +02:00
Arisotura a3ad6a66e1 more base work for DSP HLE.
add scaling commands.
2025-07-28 23:38:30 +02:00
Arisotura d099c022bb lay base for DSP core interface (so it can switch between LLE and HLE) 2025-07-21 17:13:25 +02:00
Arisotura e46a54ef8f basic attempt at implementing the scaling command 2025-07-16 14:41:45 +02:00
Arisotura af768fe729 basic ideas for actual HLE functionality. do the init handshake. 2025-07-11 23:12:26 +02:00
Arisotura f6104609f9 lay very basic base for HLE ucode stuff 2025-07-09 21:10:31 +02:00
Arisotura 444b370a36 get the DSP HLE branch started, I guess 2025-07-09 19:44:33 +02:00
Jakly 608a4151b8
fix full bios boot not being set properly on initial DSI class creation (#2366) 2025-07-08 21:39:43 +02:00
Sparronator 3263ab11c2
Make SPU audio single-buffered (audio latency improvement) (#2286)
* SPU audio latency improvements

Basically reverts audio buffer handling to what it was before commit 05b94ef, but with the mutexes kept for thread safety (which the referenced commit was trying to do).

The SPU audio buffer should still be thread-safe in theory... right?

* Audio output improvements

This commit changes the audio output buffer to be configured by a variable, and fixes the case where the sound driver may change the buffer size after calling SDL_OpenAudioDevice (e.g. if the buffer size is set too low for the driver to handle).
2025-07-08 19:52:36 +02:00
Arisotura 72cba5daab camera: misc fix 2025-07-08 16:04:17 +02:00
Arisotura f8b4871900 oops 2025-07-07 16:19:56 +02:00
Arisotura e5741f992a camera: fix some misc issues 2025-07-07 16:15:58 +02:00
Arisotura 7499958ad0 camera: revise interface behavior to be more accurate
* there are two FIFO buffers (finally fixes Let's Golf)
* fix issues with camera start condition/cnt bit15
* add camera interface state to savestate
2025-07-07 14:48:53 +02:00
Arisotura 85d9202633 push this back tho... 2025-07-07 12:21:47 +02:00
Arisotura 1f51f27d44 Revert "camera: model FIFO more accurately (avoids weird bugs when DMA fails)"
This reverts commit 2cb07bf126.
2025-07-07 12:20:11 +02:00
Arisotura 85dcf65231 DSi: add support for SCFG_EXT bit 13 (32-bit VRAM bus) 2025-07-07 02:47:46 +02:00
Arisotura 2cb07bf126 camera: model FIFO more accurately (avoids weird bugs when DMA fails) 2025-07-07 02:30:01 +02:00
Arisotura 16d1464d19 camera: make timings more realistic (fixes rolling in some games) 2025-07-05 00:14:11 +02:00
Arisotura f352cf612a call MakeCurrent() before deiniting GL stuff (to avoid deiniting on the wrong context) 2025-06-28 22:55:48 +02:00
Arisotura 4aaea218c1 add a way to tell windows apart 2025-06-28 13:06:53 +02:00
Arisotura 44b0704063 fix video settings update on second instance secondary windows 2025-06-28 12:48:22 +02:00
Arisotura 2499ec36c2 window: undo last commit (was a trainwreck). explicitly close child windows to avoid GL issues. fix bug with window parenting in second multiplayer instances. 2025-06-28 12:37:53 +02:00
Arisotura baad893bc0 window: move cleanup code to destructor (closeEvent() isn't called for children) 2025-06-28 03:48:42 +02:00
Arisotura ec2f7ee838 fix issues with multi-window and OpenGL on Windows 2025-06-28 03:02:00 +02:00
Arisotura 005ef9c9fc camera: fix resolution selection code (could accidentally select a resolution like 640x360) 2025-06-26 23:04:14 +02:00
Arisotura 7b562f71b3 NDMA: fix IRQ in infinite repeat mode 2025-06-25 21:52:23 +02:00
Arisotura fd279bedc5 huh 2025-06-24 16:51:33 +02:00
Arisotura b2af96474f Merge remote-tracking branch 'origin/master' 2025-06-24 01:03:25 +02:00
Arisotura 8cd2d972ab DSP: fix PDATA reads being one off 2025-06-24 01:03:14 +02:00
Edoardo Lolletti ab249fc913
Don't return 0 when attempting to read from the GPA GPIO addresses with GPIO disabled (#2266) 2025-06-23 08:32:17 +02:00
Arisotura 8e163296d3 camera: trigger DMA when reaching the end of a frame (fixes issues when the frame height isn't a multiple of the DMA interval) 2025-06-22 23:58:30 +02:00
Arisotura 83b8f1ae47 DSP: fix bug in PDATA read DMA (was reading wrong register) 2025-06-22 21:27:27 +02:00
Adrian "asie" Siekierka fd74181f7d
Slot-2 Motion Pak, Guitar Grip emulation (#2183)
* Add DS Motion Pak emulation

* Add retail Motion Pak emulation, Guitar Grip emulation

* Simplify Motion Pak acceleration conversion formula

* Fix Motion Pak emulation axes

* Motion Pak: Emulate console laying on a flat table when motion input is not detected

* Motion Pak: Add comment

* GBACartMotionPak: Update comment
2025-06-22 16:30:01 +02:00
Edoardo Lolletti 2d04222442
Load Tad key into DSi AES engine (#2252) 2025-06-22 16:29:20 +02:00
Arisotura 71edf793fc setupMicInputData() ought to be called at all times tho 2025-06-18 19:32:50 +02:00
Nadia Holmquist Pedersen d7a4b2e8fe Don't try to change the core's audio interp setting when the emu
instance has no core yet.

Fixes #2352
2025-06-18 00:51:47 +02:00
Jakly c65d490351
small fix to translucency flag assignment (#2301)
hardware does not care that the polygon's mode would prevent the texture from rendering translucent pixels
2025-06-15 19:24:42 +02:00
Arisotura 79f12de480 multi-instance: load firmware from correct instance-specific file (load from original file if not found) 2025-06-15 01:42:24 +02:00
Arisotura 0d294e9373 fix mic settings not being changed when closing the audio settings dialog 2025-06-14 23:20:31 +02:00
Arisotura 7117178c2d melonDLDI: add support for unaligned I/O 2025-05-27 00:55:12 +02:00
Arisotura d1eff4acf5 update copyright headers (about time) 2025-05-27 00:31:37 +02:00
Jesse Talavera 528f2495fc
Fix a missing `#include` on Windows builds (#2333)
* Fix a GCC 15 build issue on Windows due to a missing `#include`

- `<vector>` was included implicitly by some other header
- The build broke in GCC 15 on MinGW, most likely due to some internal refactoring

* Indent these `#include`s the same as the others
2025-05-21 22:16:00 +02:00
Jesse Talavera 7baeb26e32
Fix undefined behavior when indexing into `ARCode::Code` (#2331)
- Indexing past the end of a `std::vector`'s length is undefined, even if there's extra capacity
- GCC 15 introduced an assert in `vector::operator[]`, so this line caused an abort if melonDS was built with GCC 15
- It was always undefined, but now the STL checks for it
2025-05-20 01:00:48 +02:00
Alex 0e64a06c84 Use standard sysconf
Fixes compilation of JIT builds on non-glibc OSes. After some testing in a Fedora 41 VM,
__sysconf and sysconf return the same value, and sysconf in glibc appears to just
be an alias to __sysconf to begin with
2025-05-15 14:08:43 +02:00
Alex d6d820c013
Set SDL_HINT_APP_NAME (#2319)
Fixes #2300
2025-05-11 13:10:48 +02:00
Jesse Talavera 0fcf1f6e3a
Add support for using the solar sensor without requiring a Boktai ROM (#2221)
* Add a `GBAHeader` struct

* Add extra `GBAAddon` entries for the Boktai carts

- Each game in the trilogy has a different effect on Lunar Knights (the only commercial DS game to support the solar sensor)

* Copy the logo data from the NDS ROM's header to the Boktai stub's header
2025-03-09 18:20:27 +01:00
Jakly a9cce557d2
fix framelimiter bugs (#2256) 2025-01-14 18:21:03 +01:00
Nadia Holmquist Pedersen 0c5dd28b1c just case the string length to int to make std::min happy in all cases 2024-12-26 09:17:46 +01:00
Nadia Holmquist Pedersen c41951d49c
Fix almost every warning (#2195)
Fix almost every warning as of Clang 19

* <codecvt> is deprecated, we can use QString's UTF-16 conversion
  instead
* remove sem_timedwait implementation as we don't need it anymore
* remove a useless shift that has its result discarded
* change usages of deprecated sprintf to snprintf
2024-12-25 16:54:10 +01:00
izder456 be26878b4c FIX: this should be namespace std:: to preserve compatibilty with non-glibc when building without gdb stub 2024-12-25 16:48:46 +01:00
Jakly 66d1091330
improve audio handling at non-60 fps targets (#2246) 2024-12-25 16:34:30 +01:00
Campbell Suter 72c86ade31
Fix gdbstub not activating until the console is reset (#2245)
The check for initialising the gdbstub depending on whether the JIT was
enabled or not was the wrong way around: previously, it would only
enable the gdbstub if the JIT was enabled.

The stub started working again if you reset the console, as
NDS::SetGdbArgs didn't have any such check and it was called by
EmuInstance::updateConsole.
2024-12-24 00:29:21 +01:00
Jakly 817b409ec8
ah. (#2225) 2024-11-30 02:54:54 +01:00
Rayyan Ansari cba838dd52
TitleManager: fix handling of title string
Truncate the title at the first occurrence of \0, as title strings
should be null-terminated.

Fixes #2219 (Weird characters on DSi Title Manager on melonDS 1.0RC)
2024-11-27 13:15:18 +00:00
Nadia Holmquist Pedersen 1d6c9023ff get rid of the incorrect CLOCK_MONOTONIC redefinition 2024-11-23 12:43:06 +01:00
Nadia Holmquist Pedersen 0db536c063 Set _WIN32_WINNT to Windows 8 when JIT is enabled (fixes #2209) 2024-11-23 12:40:02 +01:00
RSDuck 6a15dbfa12 unmappinged everything 2024-11-22 03:34:18 +01:00
Nadia Holmquist Pedersen e3fa6f4224 Fix version number in the generated Windows resource 2024-11-21 01:10:13 +01:00
Arisotura dc10df0796 FUCK THAT SHIT 2024-11-21 00:27:30 +01:00
RSDuck d0d010b09d don't use std::map and std::function in scheduler 2024-11-20 02:55:40 +01:00
Arisotura f6f993cb41 Merge remote-tracking branch 'origin/master' 2024-11-19 01:07:39 +01:00
Arisotura 86c6740b24 fuck that shit 2024-11-19 01:07:27 +01:00
Nadia Holmquist Pedersen 1b3f4664d8 fix order of ScreenLayoutType 2024-11-19 00:57:58 +01:00
Arisotura 13096f9fdc add warnings to the LAN dialogs 2024-11-19 00:50:42 +01:00
Nadia Holmquist Pedersen c4f7c1bff7 fix compiling without JIT 2024-11-19 00:34:16 +01:00
Arisotura 317b91533b avoid spawning message boxes from the emuthread 2024-11-19 00:33:39 +01:00
Arisotura 259eb4b408 dsfsdhgf 2024-11-19 00:11:46 +01:00
Arisotura d68091ee9c fix another oversight 2024-11-18 23:13:48 +01:00
Arisotura b491e99954 actually save path settings in instance-local config 2024-11-18 23:10:21 +01:00
Arisotura f1c96281a9 update toml11. fixes bug with FPS settings corrupting config file 2024-11-18 22:53:55 +01:00
RSDuck 9ad3d42252 hopefully fix macos 2024-11-18 21:31:56 +01:00
RSDuck f0503a6a28 fix 4kb page check
oops
2024-11-18 21:21:02 +01:00
Kemal Afzal 99ce959913
Multiinstance jit (#2201)
* works on Linux x64
still needs to be fixed for everything else

* use lots of PROT_NONE memory to reliably reserve virtual address space

* multi instance fastmem on Linux

* Windows

* blarg

* disable fastmem if the page size is not 4kb

* fix fast mem dialog option

* make aarch64 work as well

* fastmem 16kb pages support
2024-11-18 20:43:05 +01:00
RSDuck cb7af652f5 aarch64 lto broken GPU2D workaround 2024-11-18 20:08:49 +01:00
RSDuck c01b2bf7a0 prevent out of bounds access for microphone data 2024-11-18 18:58:39 +01:00
Arisotura 0ea0af3abf make it possible to change gdb stub settings without destroying/recreating a NDS 2024-11-17 20:00:52 +01:00
Arisotura 99aa5676db actually remove NDS/GBA ROM args from NDSArgs, since we won't be using them 2024-11-17 19:38:36 +01:00
Arisotura 5e3d2d07c3 fix Key1 code to source the DS-mode key data from the ARM9i BIOS, so it works even if no DS BIOSes are provided
(had to rework the loading code to make it work -- if carts are passed to the DSi constructor, they get initialized before the DSi stuff is initialized, and can't read the DSi BIOSes)
2024-11-17 19:04:13 +01:00
Arisotura f0a023b572 Merge remote-tracking branch 'origin/master' 2024-11-17 18:18:00 +01:00
Arisotura 5f8255bc90 allow DSi mode to run with internal DS BIOS 2024-11-17 18:17:43 +01:00
fincs 584508230f
Assortment of fixes related to libnds v2/calico (#2197)
* Support 8-bit writes to REG_IPCSYNC

* Support CP15 Trace Process ID register

* NWifi: expose correct manfid information in CIS0/CIS1 area

* NWifi: basic support for WMI_SET_PROBED_SSID

# Conflicts:
#	src/DSi_NWifi.cpp

* DSi_NAND: fix incorrect CTR IV calculation code
2024-11-17 15:57:00 +01:00
Arisotura 023dc0c446 avoid reopening the microphone if it was already opened 2024-11-17 15:47:55 +01:00
Arisotura 871a167d8b also fix crashes when inserting/ejecting a NDS cart while nothing is loaded 2024-11-17 15:43:22 +01:00
Arisotura 0a4287c6ad fix crashes when inserting/ejecting GBA carts/addons with nothing loaded 2024-11-17 15:23:25 +01:00
Nadia Holmquist Pedersen 7c1d2a64f4 Set WIN32_LEAN_AND_MEAN, gets rid of the winsock2 warnings and probably
speeds up compilation a tiny bit

oh and NOMINMAX too for good measure while we're at it
2024-11-11 14:18:05 +01:00
Nadia Holmquist Pedersen b2f6fab6f4 cmake: use interface include directories properly
and fix an indent I guess
2024-11-11 12:06:12 +01:00
RSDuck 4528441c74 for OGL renderer W buffer rendering avoid undefined vertex z
see https://github.com/melonDS-emu/melonDS/issues/2017
2024-11-09 14:19:02 +01:00
Rayyan Ansari adf143a38d
Fix link to contributors in About dialog
Add openExternalLinks property to the label to allow the hyperlink to
open in the user's web browser.
2024-11-08 21:32:45 +00:00
RSDuck 8d4f419546 correct assert in gdb stub 2024-11-08 18:57:44 +01:00
Nadia Holmquist Pedersen 5959009ebd
Use Qt 6 by default on all platforms and update build instructions (#2187) 2024-11-05 17:03:07 +01:00
Nadia Holmquist Pedersen a5389286e8 Make macOS OpenGL deprecation warnings shut up 2024-11-02 13:52:56 +01:00
Arisotura 7740634e6a reimplement MP audio mode 2 (active instance only) 2024-11-01 02:19:29 +01:00
Arisotura 58ee191cc8 make mic input less shitty (and less dangerous) 2024-11-01 01:31:45 +01:00
Arisotura 78aae252d5 fix bug where opening a new instance would pause other instances 2024-11-01 00:41:55 +01:00
Arisotura 09e4400f3c fix hang when closing an instance that is engaged into local multiplayer 2024-11-01 00:40:09 +01:00
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