Commit Graph

2312 Commits

Author SHA1 Message Date
e7eeefe48e huh 2024-02-01 21:49:48 +01:00
f609236d5c bash? 2024-02-01 21:45:08 +01:00
299898d7e7 consolidate ubuntu jobs 2024-02-01 21:41:09 +01:00
fac941d9b8 yeah using a separate job for that was a little silly, wasn't it? 2024-02-01 21:15:37 +01:00
21dd0796b7 does it need to be under usr/? 2024-02-01 20:57:20 +01:00
48f865e11c a 2024-02-01 20:51:28 +01:00
17e054c279 fix artifact path 2024-02-01 19:54:11 +01:00
50afeb6996 add more random numbers 2024-02-01 19:49:48 +01:00
906dcabc80 fix dependencies 2024-02-01 19:44:17 +01:00
e4701768d5 fix install prefix 2024-02-01 19:33:04 +01:00
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
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
c8c0d0a9ea b 2024-02-01 16:33:15 +01:00
22082c9c5b a 2024-02-01 16:31:38 +01:00
5561efb1fb a 2024-02-01 16:28:33 +01:00
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
9a95d29618 qt6-default doesn't exist I guess 2024-02-01 16:11:36 +01:00
e1e6581d72 a 2024-02-01 15:49:30 +01:00
e80c67ee5b blarg3 2024-02-01 15:25:54 +01:00
1d45ab64c8 blarg 2024-02-01 14:54:10 +01:00
64478d5afb blarg 2024-01-28 17:27:33 +01:00
8355d869be of course the package names are different lol 2024-01-28 17:20:07 +01:00
829f5795ec Try to use Qt 6 for CI builds 2024-01-28 17:15:18 +01:00
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
f4c8202b1a add missing 8/16-bit reads to ROMCnt and ROM SPICnt 2024-01-17 18:50:08 +01:00
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
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
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
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
8bfc6df8de TitleManagerDialog: Fix wrong color format 2023-12-31 13:52:58 +01:00
63141c086a guard the default vcpkg directory against multiple CMake instances using it 2023-12-28 19:51:46 +01:00
1cd8c16bbb Disable default-features for host qtbase to speed up cross build times 2023-12-28 15:54:29 +01:00
da26453911 CI stuff (#1935)
Add new macOS CI using vcpkg
2023-12-28 15:03:44 +01:00
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
6d0de509c4 Merge branch 'master' of github.com:melonDS-emu/melonDS 2023-12-28 14:40:41 +01:00
345b7439e4 integrate OSD into ScreenPanel and make it nicer 2023-12-28 14:40:37 +01:00
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
fa835ecf68 blarg 2023-12-27 21:29:25 +01:00
5a08118c87 sfjsh 2023-12-27 21:28:03 +01:00
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
ab8938a695 fix OSD scaling on hiDPI screens 2023-12-26 19:32:38 +01:00
f905b6fb93 separate EmuThread to its own file 2023-12-26 19:24:14 +01:00
fd1e4379b9 Merge branch 'master' of github.com:melonDS-emu/melonDS 2023-12-26 19:04:31 +01:00
7f437d48db start cleaning up: move OpenGL stuff out of EmuThread 2023-12-26 19:04:01 +01:00
d55a384c88 Apply some quick hotfixes (#1931) 2023-12-26 16:34:04 +01:00
740489f7a4 Don't call Reset on nullptr 2023-12-26 08:49:02 +01:00
ac3153d86b "Incorrectly" link libslirp to stop its broken build system fucking up
our linker flags
2023-12-26 08:14:30 +01:00
65780e6ba2 Update vcpkg 2023-12-26 08:14:20 +01:00
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
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