Commit Graph

67 Commits

Author SHA1 Message Date
Nadia Holmquist Pedersen 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
Nadia Holmquist Pedersen 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
RSDuck 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
Arisotura 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
Arisotura c1c4cbc838
update Patreon URL 2022-09-30 15:53:38 +02:00
Rayyan Ansari 926f200329 Find correct pkg-config 2022-08-31 18:26:36 +01:00
Rayyan Ansari 08f5a2aa82 Fix CMake prefixes 2022-08-31 18:06:19 +01:00
Rayyan Ansari 76c9340920 Create parent directories as well 2022-08-31 17:57:31 +01:00
Rayyan Ansari 80f76ef34d Fix dependencies between jobs 2022-08-31 17:56:18 +01:00
Rayyan Ansari cac1ec8fbd Fix macOS runner cleanup 2022-08-31 17:53:09 +01:00
Rayyan Ansari 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
Nadia Holmquist Pedersen 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
Nadia Holmquist Pedersen 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
Nadia Holmquist Pedersen 08a19d930c CI: macOS 10.14 is no longer supported, use 10.15 2021-12-28 15:20:50 +01:00
Nadia Holmquist Pedersen 35e93d5fec Use Homebrew LLVM for tha CI builds 2021-09-15 22:13:04 +02:00
WaluigiWare64 ebe8d544e1 Move x86-64 macOS CI file
[skip ci]
2021-07-22 14:52:42 +01:00
WaluigiWare64 3074ee06d7 Clean workspace before build 2021-07-22 14:32:06 +01:00
WaluigiWare64 efd7d62cec Use mkdir -p here 2021-07-22 14:20:21 +01:00
WaluigiWare64 3bada15e46 Use arch -arm64 on ARM64 macOS CI 2021-07-22 14:18:52 +01:00
WaluigiWare64 a135557bcb Add ARM64 Mac CI file 2021-07-22 14:10:21 +01:00
WaluigiWare64 1cd477db71 Change workflow upload name to platform on GitHub CI 2021-06-13 13:06:15 +01:00
Arisotura 3bb78e4f1d add paypal and shit 2021-04-26 15:53:02 +02:00
WaluigiWare64 def272fac4
Use Azure Pipelines so we can target macOS 10.14 (#1042) 2021-04-24 13:27:11 +00:00
Nadia Holmquist Pedersen 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
WaluigiWare64 f7347b1f7a
tell pkg-config the location of libarchive 2021-03-21 15:12:34 +00:00
WaluigiWare64 ae7761c33e
Remove temporary macOS CI workarounds 2021-03-08 12:50:09 +00:00
WaluigiWare64 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
WaluigiWare64 b5e601bb88
Try to fix Ubuntu AArch64 CI (#979)
Also remove previous fixes, they were fixed upstream
2021-02-02 13:29:51 +00:00
WaluigiWare64 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
WaluigiWare64 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
WaluigiWare64 6b8738bb60 Update workflow files 2020-12-19 17:51:23 +00:00
WaluigiWare64 df190b0400
Merge branch 'master' into feature/zip-support 2020-12-19 17:43:53 +00:00
Nadia Holmquist Pedersen af62c99124
Ubuntu CI cleanups (#842) 2020-12-09 23:08:48 +01:00
WaluigiWare64 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
WaluigiWare64 fbc7648d1a
Fix Ubuntu AArch64 CI - round 3 (#811) 2020-11-11 18:29:25 +01:00
WaluigiWare64 8d70d0926c
Merge branch 'master' into feature/zip-support 2020-10-23 00:39:29 +01:00
WaluigiWare64 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
WaluigiWare64 2850dfed15
Fix Ubuntu AArch64 CI (#764) 2020-09-19 18:10:03 +02:00
WaluigiWare64 ba0cbc53ca
Update build-ubuntu.yml 2020-08-26 14:21:34 +01:00
WaluigiWare64 6d71f9c832
Merge branch 'master' into feature/zip-support 2020-08-05 15:06:15 +01:00
Raphaël Zumer 68e310e4ef Deploy Qt libraries with dynamic Windows builds
Also stop using msys-dist.sh with the static CI build.
2020-07-31 16:50:19 -04:00
Nadia Holmquist Pedersen 40a9f41be8
Merge branch 'master' into fix/aarch64-ci 2020-07-27 16:06:53 +02:00
Nadia Holmquist Pedersen 5c08207f35 Do full upgrade to avoid issues when installing ARM dependencies 2020-07-27 15:56:43 +02:00
Nadia Holmquist Pedersen c547db21e9 Don't download CMake, the package is new enough 2020-07-26 21:52:35 +02:00
Nadia Holmquist Pedersen c9b9f43fbf Remove unneeded gtk3 package from the Ubuntu build 2020-07-26 21:48:01 +02:00
Nadia Holmquist Pedersen 8a1964a75c Add libslirp to workflows 2020-07-26 21:43:01 +02:00
Nadia Holmquist Pedersen acb1eec35d
Windows CI: Install MSYS2 with chocolatey 2020-07-25 20:26:36 +02:00
WaluigiWare64 fd4775c3ca
Fix Ubuntu ARM64 libzip dependency 2020-07-22 15:37:30 +01:00
U-RAYYAN-PC\Rayyan 523ff9ff1c Add libzip dependency in the workflow files and to CMakeLists.txt 2020-07-22 14:22:23 +01:00
Nadia Holmquist Pedersen d69c5df32e Use GCC 10 2020-06-12 03:21:57 +02:00