Commit Graph

79 Commits

Author SHA1 Message Date
8d31875902 Backport LAN (#2131)
backport the old LAN feature to the modern melonDS codebase.
2024-08-10 23:20:50 +02:00
d62c61ba08 vcpkg 2024.07.12 2024-07-30 00:43:15 +02:00
ececf337f2 Build Windows CI builds with vcpkg and Qt 6 (#2112)
If using Qt 6 becomes a problem in terms of compatibility, toggle it off in the CMakePresets.json.
2024-07-27 17:22:35 +02:00
a2406e3c0e Vendored libslirp (#2045)
Add vendored libslirp into the repo with a shim to remove its dependency on glib.
2024-05-15 18:00:55 +02:00
6e26559cd2 ci: fix macOS build
GitHub Actions' macOS runners have Python from homebrew installed and it's used by default instead of the Python that ships with macOS. Apparently Homebrew decided you shouldn't be able to install stuff with `pip3` anymore so our build broke since `setuptools` is no longer included by default and `glib` from vcpkg needs it to build.

Additionally,, the whole liblzma mess ended up breaking our builds too because libarchive (and its dependency libxml2) depends on it and the download is no longer available. The build option changes here should be reverted once this is sorted out because this is probably partially breaking archive support.

PS: Fuck you Jia Tan.
2024-04-03 14:49:27 +02:00
3415e23105 delete-artifact keeps failing PR CI even when you tell it not to fail on error so I guess we're just not using it. 2024-02-13 20:15:03 +01:00
71e1ba8c40 Linux CI updates (#1965)
* Switch to using Qt 6
* Use Ubuntu 22.04 for newer dependency versions
* Combine AppImage and regular x86_64 builds so it doesn't have to build twice
* Misc cleanup
2024-02-07 22:29:13 +01:00
17a1bfa673 macOS CI updates (#1973)
* Use macOS 14 M1-based runners for macOS CI
* Hopefully make the universal build erroring not fail the build (does sometimes with delete-artifact)
* Update vcpkg version
2024-02-07 22:27:04 +01:00
77274735d6 the readme for delete-artifact doesn't have this anymore so maybe it'll
stop failing if I remove it
2024-01-24 09:52:22 +01:00
da26453911 CI stuff (#1935)
Add new macOS CI using vcpkg
2023-12-28 15:03:44 +01:00
75ae38ec7b codesign the final universal macOS app bundle
otherwise the code signature in it will be invalid, and macOS won't run
it witohout manually removing xattrs
2023-07-24 11:29:43 +02:00
24a4cacaae Add AppImage Builds (#1670)
* Create build-appimage.yml

* Update build-appimage.yml

This Adds the new Dependencies for MelonDS
2023-07-14 22:40:35 +02:00
38b0d21c22 Support loading Zstandard-compressed ROMs (#1667)
This is different from the archive support in that the compressed ROMs
are standalone files, rather than archives, making it possible to use
them exactly as if they were regular ROMs, while saving a bunch of space
on disk. This is supported both for DS and GBA ROMs, though given GBA
ROMs' generally small size it's mostly useful for the former.
2023-04-28 19:19:58 +02:00
b069a2acf1 Clean Windows build instructions
* CMake in MSYS2 now depends on Ninja and uses it by default, use it
  instead of Make as it has much easier to read output when doing
  parallel builds and doesn't need an extra program
* Ninja uses the maximum number of cores by default, so we don't have to
  run nproc --all
* We don't need mesa for its headers anymore
2022-11-09 19:54:35 +01:00
ac3118cbc5 No more context mess (#1531)
* WIP: use Duckstation's context code to directly render into QT Widget from separate thread without two OpenGL contexts

currently only works on Windows

* reenable gay OSD

* add back vsync

* make it atleast a little more thread safe

* linux support

* don't segfault on closing

* reorganise and cleanup build system
it's still not good, but better than before

* macos?

* try to get it working on Ubuntu CI
also update instructions

* let's try this

* ok how about this

* try creating an OGL 4.3 context first
(https://i.kym-cdn.com/photos/images/original/001/264/842/220.png)

* fix Ubuntu

* hm

* try again for Windows

* let's try this

* make the OpenGL renderer work again
that was stupid

* do OGL surface resizing from the mainthread

* Fix small mistake in GL context creation on macOS causing version 3.2 to
be considered invalid

* C stupidness

* cleanup

* don't let the emuthread deinit OGL if there's no OGL

* reset lastScreenWidth/Height when deiniting OpenGL

* disable stencil test while drawing framebuffers

* macOS: Link Cocoa framework explicitly when not building with Qt6

Seems to be needed for the classes used by DuckStation's GL context
code.

* Set ScreenPanelGL's minimum size immediately

Fixes GL context creation for OpenGL display on macOS using the wrong
size as the underlying window was not resized to the correct size by Qt
yet.

* don't emit window updates when OGL display is used

* stuff Arisotura said

Co-authored-by: Nadia Holmquist Pedersen <nadia@nhp.sh>
2022-10-17 22:55:11 +02:00
3f4573574a actual DSi camera support (#1520)
basically feeding something that isn't a fixed stripe pattern, and emulating enough of the camera hardware to make this work
2022-10-02 16:47:57 +02:00
c1c4cbc838 update Patreon URL 2022-09-30 15:53:38 +02:00
926f200329 Find correct pkg-config 2022-08-31 18:26:36 +01:00
08f5a2aa82 Fix CMake prefixes 2022-08-31 18:06:19 +01:00
76c9340920 Create parent directories as well 2022-08-31 17:57:31 +01:00
80f76ef34d Fix dependencies between jobs 2022-08-31 17:56:18 +01:00
cac1ec8fbd Fix macOS runner cleanup 2022-08-31 17:53:09 +01:00
d1dbb1f51e Add self-hosted macOS ARM64 Universal Binary runner
Adds a workflow file for building a universal binary with a self hosted runner.
Also adds a Python script to assist with creating the universal binary
2022-08-31 17:50:03 +01:00
94b33c924e Modernize CMake build system (#1434)
These changes modernize the CMake build system to (hopefully) match newer best practices

* Library linking is simpler and more automatic because of using imported targets
* Multi-configuration builds should be supported (Ninja Multi-Config, Visual Studio, etc. generators)
* Clean up build options using cmake_dependent_option
* Let CMake do its job in more cases, like finding the math/dl libraries and detecting and enabling LTO support
* Remove platform-specific kludges like the Fedora/flatpak LTO workaround and a bunch of Windows stuff
* Simplify Windows static builds
* Consistent formatting
2022-05-21 19:54:55 +02:00
3d24057155 CI: Fix Ubuntu aarch64 build again
* Use a clean Ubuntu Docker container to hopefully have a more stable environment
* Remove old workarounds
2021-12-28 18:26:52 +01:00
08a19d930c CI: macOS 10.14 is no longer supported, use 10.15 2021-12-28 15:20:50 +01:00
35e93d5fec Use Homebrew LLVM for tha CI builds 2021-09-15 22:13:04 +02:00
ebe8d544e1 Move x86-64 macOS CI file
[skip ci]
2021-07-22 14:52:42 +01:00
3074ee06d7 Clean workspace before build 2021-07-22 14:32:06 +01:00
efd7d62cec Use mkdir -p here 2021-07-22 14:20:21 +01:00
3bada15e46 Use arch -arm64 on ARM64 macOS CI 2021-07-22 14:18:52 +01:00
a135557bcb Add ARM64 Mac CI file 2021-07-22 14:10:21 +01:00
1cd477db71 Change workflow upload name to platform on GitHub CI 2021-06-13 13:06:15 +01:00
3bb78e4f1d add paypal and shit 2021-04-26 15:53:02 +02:00
def272fac4 Use Azure Pipelines so we can target macOS 10.14 (#1042) 2021-04-24 13:27:11 +00:00
796ef95862 Improve macOS bundling (#1067)
* Improve macOS bundling
* Bundle libs for macOS CI
* Add MACOS_BUILD_DMG CMake option and make the CI upload the DMG so we don't lose executable permissions.
* Manually copy plugins if macdeployqt doesn't
* Ad-hoc codesign the app
2021-04-21 23:50:32 +02:00
f7347b1f7a tell pkg-config the location of libarchive 2021-03-21 15:12:34 +00:00
ae7761c33e Remove temporary macOS CI workarounds 2021-03-08 12:50:09 +00:00
0ea85fdd2b Use setup-msys2 GitHub Action (#1029)
* Use setup-msys2 GitHub Action

This makes the Windows CI a few minutes faster
2021-03-06 19:37:51 +00:00
b5e601bb88 Try to fix Ubuntu AArch64 CI (#979)
Also remove previous fixes, they were fixed upstream
2021-02-02 13:29:51 +00:00
ab222ab135 Use libepoxy to load in OpenGL functions (#960)
* Use libepoxy to load in OpenGL functions

Prevents having to load them in manually

* Install libepoxy in the CI

* Do not link OpenGL libraries, libepoxy opens them itself

* Add libepoxy to build instructions
2021-01-26 13:19:32 +00:00
8829b0511c Change all mentions of qt5 to qt@5 on macOS (#937)
* Change all mentions of qt5 to qt@5 on macOS

* Use temporary workaround to get macOS brew updating

https://github.com/actions/virtual-environments/issues/2322#issuecomment-749211076

* Don't install CMake, it is already installed in the macOS runner
2021-01-13 14:56:06 +01:00
6b8738bb60 Update workflow files 2020-12-19 17:51:23 +00:00
df190b0400 Merge branch 'master' into feature/zip-support 2020-12-19 17:43:53 +00:00
af62c99124 Ubuntu CI cleanups (#842) 2020-12-09 23:08:48 +01:00
7da4550eea Add support for macOS (#771)
* use shm_open() instead of memfd_create() on macOS

malloc.h isn't a header on macOS

* Change OpenGL headers + create ifdef for DO_PROCLIST

macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors.

* macOS doesn't have ->gregs in uc_mcontext

and it doesn't have REG_RIP either
https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4

* use getpid() to make memory file name unique

* #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h

* Add include and link directories for macOS and link the OpenGL framework

* Add macOS CI

* Use newly added libslirp package from Homebrew

https://github.com/Homebrew/homebrew-core/pull/63412

* Use Apple's Clang instead of GNU GCC on macOS

* Add macOS build instructions to README

* Try to fix macOS undefined symbol

* snprintf doesn't take null terminator into account

* Map new memory on macOS for JIT

* Only use gcc-ar if using GNU Compiler

* re-add fastmem code - whoops!

* Fix style issue - use camelCase not snake_case

* Set Minimum macOS version

* Switch Minimum OS X version to 10.9

* Add macOS libpcap library name

* fix memory leak

* Fix binding keys in macOS

* Allow getting MAC address on macOS

melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address.

* Remove unneeded macOS CI dependencies

* Build melonDS app bundle on macOS

Now it is no longer required to install the libraries on macOS, they come with the app bundle.

* fix macOS CI not being able to find macdeployqt

* copy melonDS.app with recursive because it's a folder

* Disable fastmem checkbox on macOS

* Disable fastmem by default in config

* forgot a semicolon

* Don't bundle libraries, causes issues on macOS <10.15

* Update README + allow finding version in Finder on macOS

* Make sure fastmem checkbox stays uncheckable
2020-11-29 17:11:33 +01:00
fbc7648d1a Fix Ubuntu AArch64 CI - round 3 (#811) 2020-11-11 18:29:25 +01:00
8d70d0926c Merge branch 'master' into feature/zip-support 2020-10-23 00:39:29 +01:00
4b705556bc Fix Ubuntu AArch64 CI - again (#767)
* Fix Ubuntu AArch64 CI - again

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml
2020-09-24 19:17:39 +02:00
2850dfed15 Fix Ubuntu AArch64 CI (#764) 2020-09-19 18:10:03 +02:00