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