aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Check for write permissions for some key files (#1972)Jaklyy2024-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Allow the user to choose the UI themeNadia Holmquist Pedersen2024-02-07
| | | | Mainly useful for those who want dark mode on Windows.
* Fix DSiWare detection (#1969)Jesse Talavera2024-02-01
| | | | - According to GBATek, all DSiWare games have a high title ID of 0x00030004 - Some homebrew apps set the Unitcode bits to DSi mode to enable support of DSi features
* Add MaxFPS settingNadia Holmquist Pedersen2024-01-26
|
* Add support for using a portable directory without special build flags. (#1956)Steveice102024-01-24
|
* also add writes while we're at it, we know Gericom's gonna abuse them someday :PArisotura2024-01-17
|
* add missing 8/16-bit reads to ROMCnt and ROM SPICntArisotura2024-01-17
|
* Don't reset the VRAM cache if saving a state (#1944)Jesse Talavera2024-01-08
| | | - This fixes a flickering bug in melonDS DS
* Protect savestates while the threaded software renderer is running (#1864)Jesse Talavera2024-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * First crack at ensuring the render thread doesn't touch GPU state while it's being serialized * Get rid of the semaphore wait * Add some extra fields into GPU3D's serialization * Oops, TempVertexBuffer is already serialized * Move vertex serialization into its own method * Lock the GPU3D state when rendering on the render thread or serializing it * Revert "Lock the GPU3D state when rendering on the render thread or serializing it" This reverts commit 2f49a551c13934b9dc815bbda67a45098f0482a7. * Add comments that describe the synchronization within GPU3D_Soft - I need to understand it before I can solve my actual problem - Now I do * Revert "Revert "Lock the GPU3D state when rendering on the render thread or serializing it"" This reverts commit 1977566a6d8671d72bd94ba4ebf832c3bf08933a. * Let's try locking the GPU3D state throughout NDS::RunFrame - Just to see what happens * Slim down the lock's scope * Narrow the lock's scope some more * Remove the lock entirely * Try protecting the GPU3D state with just a mutex - I'll clean this up once I know it works * Remove a duplicate method definition * Add a missing `noexcept` specifier * Remove an unused function * Cut some non-hardware state from `GPU3D`'s savestate * Assume that the next frame after loading a savestate won't be identical * Actually, it _is_ worth it * Don't serialize the clip matrix - It's recalculated anyway * Serialize `RenderPolygonRAM` as an array of indexes * Clean up some comments - I liked the dialogue style, but oh well * Try restarting the render thread instead of using the lock - Let's see what happens * Put the lock back * Fix some polygon and vertex indexes being saved incorrectly - Taking the difference between two pointers results in the number of elements, not the number of bytes * Remove `SoftRenderer::StateBusy` since it turns out we don't need it - The real synchronization was the friends we made along the way
* Reset the JIT when loading savestate (#1937)Eric Warmenhoven2024-01-03
| | | | The effect of this change is simply to call JitEnableWrite(), which is necessary on apple silicon
* Slight fixups with `FATStorage` (#1934)Jesse Talavera2024-01-03
| | | | | | | | | | | | | | | | | | * 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
* TitleManagerDialog: Fix wrong color formatNadia Holmquist Pedersen2023-12-31
|
* Resolve or silence some warnings (#1905)Jesse Talavera2023-12-28
| | | | | | | | | * Resolve some warnings - Their frequent appearance in the build logs is driving me nuts * Silence warnings about `offsetof` * Don't apply `-Wno-invalid-offset` to C, only to C++
* integrate OSD into ScreenPanel and make it nicerArisotura2023-12-28
|
* sfjshArisotura2023-12-27
|
* Add `alignas` specifiers to some arrays based on how they're accessed (#1933)Jesse Talavera2023-12-26
| | | | | | | * Align some two-element `u32` arrays as `u64`s - To pacify "unaligned read/write" warnings from UBSan * Align some more arrays based on how they're accessed
* fix OSD scaling on hiDPI screensArisotura2023-12-26
|
* separate EmuThread to its own fileArisotura2023-12-26
|
* Merge branch 'master' of github.com:melonDS-emu/melonDSArisotura2023-12-26
|\
| * Apply some quick hotfixes (#1931)Jesse Talavera2023-12-26
| |
| * Don't call Reset on nullptrNadia Holmquist Pedersen2023-12-26
| |
| * "Incorrectly" link libslirp to stop its broken build system fucking upNadia Holmquist Pedersen2023-12-26
| | | | | | | | our linker flags
| * Screen.cpp: include missing headersNadia Holmquist Pedersen2023-12-26
| |
* | start cleaning up: move OpenGL stuff out of EmuThreadArisotura2023-12-26
|/
* oopsArisotura2023-12-25
|
* add convenience method to Window class for OSD messagesArisotura2023-12-25
|
* move MainWindow and Screen stuff to separate files; WIPArisotura2023-12-24
|
* Support GBA .sav file with appended .rtc (#1927)Samuel Magnan2023-12-24
| | | | | * Support GBA .sav file with appended .rtc * Change comment
* fix possible crashArisotura2023-12-23
|
* do not access NDS object emulation is pausedRSDuck2023-12-22
|
* Don't try to call transferLayout on non-GL ScreenPanelNadia Holmquist Pedersen2023-12-22
|
* Attempt to get rid of leftover QSharedMemory instance after crashNadia Holmquist Pedersen2023-12-22
|
* Reset DS object directly after creationRSDuck2023-12-21
|
* call Reset on 3D renderer objectRSDuck2023-12-21
|
* Check Q_OS_UNIX define insteadNadia Holmquist Pedersen2023-12-20
|
* Fix generic icon when using WaylandDaniel Simon2023-12-20
|
* Wrap the `EnableJIT` initialization in an `#ifdef` (#1922)Jesse Talavera2023-12-20
|
* Set `NDS::EnableJIT` in the constructor (#1921)Jesse Talavera2023-12-19
|
* Fix an incorrect use of `std::move` (#1919)Jesse Talavera2023-12-16
| | | | - When I adapted `GBACart::ParseROM` to use `unique_ptr` instead of a plain pointer, I forgot to remove the code that copied the SRAM data - That code was made unnecessary because of the move
* Add a call to `std::move` that I missed (#1917)Jesse Talavera2023-12-15
|
* Simplify the SRAM's representation in `NDSCartArgs` (#1914)Jesse Talavera2023-12-15
| | | | | | | | | * Simplify the SRAM's representation in `NDSCartArgs` - I overthought this one. - I could've just checked `args && args->SRAM`, but then some other poor bastard might make this mistake. - Don't mix `pair`, `optional`, and `unique_ptr` all at once, kids. * Fix a `nullptr` read
* Fix detection of native NDS ARM BIOS images (#1910)Jesse Talavera2023-12-15
| | | | | | | | | | * Fix detection of native NDS ARM BIOS images - Instead of checking for built-in BIOS images, now the altered methods check for native ones - The CRC32 must match exactly; patched BIOS images will result in `false` * Encapsulate `NDS::ARM9BIOS` and `ARM7BIOS` - Also compute the checksum only when setting the BIOS
* Make the initial 3D renderer configurable via `NDSArgs` (#1913)Jesse Talavera2023-12-15
| | | | | | | * Allow 3D renderers to be created without passing `GPU` to the constructor * Make the initial 3D renderer configurable via `NDSArgs` * Fix a compiler error
* Support emulating R4 Revolution/M3DS Simply cartridges. (#1854)Adrian Siekierka2023-12-15
| | | | | | | | | | | | | | | | | | | * Support emulating R4 Revolution/M3DS Simply cartridges. * NDSCartR4: Write state information to savestate file. * NDSCart: Use strncmp instead of strcmp for R4 detection. * NDSCartR4: stylistic improvements * NDSCartR4: rudimentary Ace3DS support * NDSCartR4: fix boot when firmware enabled * NDSCartR4: Fix for namespace changes --------- Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
* Sprinkle `const` around where appropriate (#1909)Jesse Talavera2023-12-12
| | | | | | | | | * Sprinkle `const` around where appropriate - This will make it easier to use `NDS` objects in `const` contexts (e.g. `const` parameters or methods) * Remove the `const` qualifier on `DSi_DSP::DSPRead16` - MMIO reads can be non-pure, so this may not be `const` in the future
* fix default emu settings tab (#1912)Jaklyy2023-12-12
|
* Fix some conflicts with windows.h in some configurationsNadia Holmquist Pedersen2023-12-11
| | | | Fixes build in the MSYS2 Clang/ClangARM64 environments.
* hopefully reset all GPU3D attributes properlyRSDuck2023-12-08
|
* Fix GBA<->DS comm not working when using FreeBIOSNadia Holmquist Pedersen2023-12-08
| | | | Thanks CasualPokePlayer for pointing this out
* Don't try to poke at the header on deinit if MPQueue is nullptrNadia Holmquist Pedersen2023-12-08
|