Commit Graph

2312 Commits

Author SHA1 Message Date
Nadia Holmquist Pedersen e7eeefe48e huh 2024-02-01 21:49:48 +01:00
Nadia Holmquist Pedersen f609236d5c bash? 2024-02-01 21:45:08 +01:00
Nadia Holmquist Pedersen 299898d7e7 consolidate ubuntu jobs 2024-02-01 21:41:09 +01:00
Nadia Holmquist Pedersen fac941d9b8 yeah using a separate job for that was a little silly, wasn't it? 2024-02-01 21:15:37 +01:00
Nadia Holmquist Pedersen 21dd0796b7 does it need to be under usr/? 2024-02-01 20:57:20 +01:00
Nadia Holmquist Pedersen 48f865e11c a 2024-02-01 20:51:28 +01:00
Nadia Holmquist Pedersen 17e054c279 fix artifact path 2024-02-01 19:54:11 +01:00
Nadia Holmquist Pedersen 50afeb6996 add more random numbers 2024-02-01 19:49:48 +01:00
Nadia Holmquist Pedersen 906dcabc80 fix dependencies 2024-02-01 19:44:17 +01:00
Nadia Holmquist Pedersen e4701768d5 fix install prefix 2024-02-01 19:33:04 +01:00
Nadia Holmquist Pedersen 9976ed78b3 let's try reusing the build for the AppImage
removes the need to build everything twice
2024-02-01 19:23:51 +01:00
Nadia Holmquist Pedersen ed27ab96af Looks like Qt 6 on Windows isn't happening for now...
The qt6-static package in MSYS2 is apparently kinda broken, as evidenced by all the build failures here and also having tried it locally.
2024-02-01 18:52:33 +01:00
Nadia Holmquist Pedersen c8c0d0a9ea b 2024-02-01 16:33:15 +01:00
Nadia Holmquist Pedersen 22082c9c5b a 2024-02-01 16:31:38 +01:00
Nadia Holmquist Pedersen 5561efb1fb a 2024-02-01 16:28:33 +01:00
Nadia Holmquist Pedersen 274d53f620 I can not express in words how filled with rage this GitHub Actions shit makes me 2024-02-01 16:18:01 +01:00
Nadia Holmquist Pedersen 9a95d29618 qt6-default doesn't exist I guess 2024-02-01 16:11:36 +01:00
Nadia Holmquist Pedersen e1e6581d72 a 2024-02-01 15:49:30 +01:00
Nadia Holmquist Pedersen e80c67ee5b blarg3 2024-02-01 15:25:54 +01:00
Nadia Holmquist Pedersen 1d45ab64c8 blarg 2024-02-01 14:54:10 +01:00
Nadia Holmquist Pedersen 64478d5afb blarg 2024-01-28 17:27:33 +01:00
Nadia Holmquist Pedersen 8355d869be of course the package names are different lol 2024-01-28 17:20:07 +01:00
Nadia Holmquist Pedersen 829f5795ec Try to use Qt 6 for CI builds 2024-01-28 17:15:18 +01:00
Arisotura 7897bd387b also add writes while we're at it, we know Gericom's gonna abuse them someday :P 2024-01-17 18:54:48 +01:00
Arisotura f4c8202b1a add missing 8/16-bit reads to ROMCnt and ROM SPICnt 2024-01-17 18:50:08 +01:00
Jesse Talavera 740305cc25
Don't reset the VRAM cache if saving a state (#1944)
- This fixes a flickering bug in melonDS DS
2024-01-08 15:20:48 +01:00
Jesse Talavera 8143f54956
Protect savestates while the threaded software renderer is running (#1864)
* 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 2f49a551c1.

* 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 1977566a6d.

* 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
2024-01-07 23:39:43 +01:00
Eric Warmenhoven f68f55d002
Reset the JIT when loading savestate (#1937)
The effect of this change is simply to call JitEnableWrite(), which is
necessary on apple silicon
2024-01-03 14:42:08 +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
Nadia Holmquist Pedersen 8bfc6df8de TitleManagerDialog: Fix wrong color format 2023-12-31 13:52:58 +01:00
Nadia Holmquist Pedersen 63141c086a guard the default vcpkg directory against multiple CMake instances using it 2023-12-28 19:51:46 +01:00
Nadia Holmquist Pedersen 1cd8c16bbb Disable default-features for host qtbase to speed up cross build times 2023-12-28 15:54:29 +01:00
Nadia Holmquist Pedersen da26453911
CI stuff (#1935)
Add new macOS CI using vcpkg
2023-12-28 15:03:44 +01:00
Jesse Talavera a4b2b0c40d
Resolve or silence some warnings (#1905)
* 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++
2023-12-28 14:54:31 +01:00
Arisotura 6d0de509c4 Merge branch 'master' of github.com:melonDS-emu/melonDS 2023-12-28 14:40:41 +01:00
Arisotura 345b7439e4 integrate OSD into ScreenPanel and make it nicer 2023-12-28 14:40:37 +01:00
Nadia Holmquist Pedersen 5439742578 Add basic CMake presets file
I'll probably use this for CI, but regardless it's nice to have to make
it easier for users to build melonDS.
2023-12-28 09:25:05 +01:00
Arisotura fa835ecf68 blarg 2023-12-27 21:29:25 +01:00
Arisotura 5a08118c87 sfjsh 2023-12-27 21:28:03 +01:00
Jesse Talavera cbd65a131e
Add `alignas` specifiers to some arrays based on how they're accessed (#1933)
* 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
2023-12-26 22:09:39 +01:00
Arisotura ab8938a695 fix OSD scaling on hiDPI screens 2023-12-26 19:32:38 +01:00
Arisotura f905b6fb93 separate EmuThread to its own file 2023-12-26 19:24:14 +01:00
Arisotura fd1e4379b9 Merge branch 'master' of github.com:melonDS-emu/melonDS 2023-12-26 19:04:31 +01:00
Arisotura 7f437d48db start cleaning up: move OpenGL stuff out of EmuThread 2023-12-26 19:04:01 +01:00
Jesse Talavera d55a384c88
Apply some quick hotfixes (#1931) 2023-12-26 16:34:04 +01:00
Nadia Holmquist Pedersen 740489f7a4 Don't call Reset on nullptr 2023-12-26 08:49:02 +01:00
Nadia Holmquist Pedersen ac3153d86b "Incorrectly" link libslirp to stop its broken build system fucking up
our linker flags
2023-12-26 08:14:30 +01:00
Nadia Holmquist Pedersen 65780e6ba2 Update vcpkg 2023-12-26 08:14:20 +01:00
Nadia Holmquist Pedersen 27ac8dbc14
Integrate support for building with dependencies from vcpkg (#1880)
* Integrate support for building with dependencies from vcpkg

Configure the build using -DUSE_VCPKG=ON to use vcpkg. By default
recommended triplets targeting the OS versions official builds support
are used. You can opt out of this with -DUSE_RECOMMENDED_TRIPLETS=OFF.

* Add the vcpkg manifest

* Fetch vcpkg with FetchContent if we don't have it

* macOS cross compiling fixes

- can't use the x86_64 one as host triplet on arm64 because building Qt
  fails for whatever reason. Because of course it does :D
- vcpkg doesn't always like periods in triplet names so removed those

* x86_64 macOS should also use its recommended target when building arm64 builds
2023-12-26 06:51:49 +01:00
Nadia Holmquist Pedersen 4d3af0d915 Make that FindWayland warning shut up
Hopefully "stable" distros use a not-ancient-enough CMake version that
this should be okay.
2023-12-26 05:12:26 +01:00