Commit graph

76 commits

Author SHA1 Message Date
wheremyfoodat
082b6216b3
Update home menu branch (#759)
* Fix typo (#680)

Co-authored-by: Noumi <139501014+noumidev@users.noreply.github.com>

* More PTM stuff

Co-Authored-By: Noumi <139501014+noumidev@users.noreply.github.com>

* Make system language configurable

* Fix building crypto++ for x64 target on Apple silicon MacOS

* Attempt to switch to M1 runners again

* Prevent selecting Vulkan renderer in Qt frontend and present a message

* Libretro: Add system language option

* Only enable audio by default on libretro for now

* CMake: Bump version

* Store configuration file in AppData root if not in working directory (#693)

* Store configuration file in AppData root if not in working directory

This fixes MacOS app bundles, as the emulator cannot write the config
file into the app bundle.

* Remove duplicate fs calls

* I'm an idiot sandwich

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* GL: Add usingGLES to driverInfo struct (#694)

* Wayland fixes part 1

* Support GLES on desktop

* Qt: Fix Wayland support

Qt will only create a Wayland surface when show() is called on the main
window and on the ScreenWidget. Thus, call the function before creating
the GL context.

Doesn't cause regressions on XWayland, untested in other platforms.

Fixes #586

* No need to call screen->show() twice

* Fix disabling Wayland & building on some distros (#700)

* GLES: Properly stub out logic ops

* Fix git versioning

* Android_Build: Implement ccache (#703)

* Android_Build: Implement ccache

* Update Android_Build.yml

* Update Android_Build.yml

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* Removed dead Citra link in readme (#706)

* CRO: Lighter icache flushes

* Implement Luma icache SVCs

* Add missing SVC logs

* GPU: Add sw texture copies

* Use vk::detail::DynamicLoader instead of vk::DynamicLoader (#710)

* Use vk::detail::DynamicLoader instead of vk::DynamicLoader

* Update renderer_vk.cpp

* Vk: Fix typo

* Vk: Lock CI runners to SDK version 1.3.301 temporarily

* Vk: Fixing CI pt 2

* Vulkan: Fixing CI pt 3

* Vk: Fix typo

* Temporarily give 80MB to all processes (#715)

* Try to cross-compile Libretro core for arm64 (#717)

* Try to cross-compile Libretro core for arm64

* Bonk

* Update Hydra_Build.yml

* [WIP] Libretro: Add audio support (#714)

* Libretro: Add audio support

* Adding audio interface part 1

* Audio device pt 2

* More audio device

* More audio device

* Morea uudi odevice

* More audio device

* More audio device

* More audio device

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* Libretro audio device: Fix frame count

* Mark audio devices as final

* Add toggle for libretro audio device (#719)

* Very important work (#720)

* Very important work

* Most important fix

* Add more HLE service calls for eshop (#721)

* CI: Fix Vulkan SDK action (#723)

* GPU registers: Fix writes to some registers ignoring the mask (#725)

Co-authored-by: henry <23128103+atem2069@users.noreply.github.com>

* OLED theme

* OLED theme config fix (#736)

Co-authored-by: smiRaphi <neogt404@gmail.com>

* Adding Swedish translation

* Fix Metal renderer compilation on iOS

* [Core] Improve iOS compilation workflow

* [Qt] Hook Swedish to UI

* AppDataDocumentProvider: Typo (#740)

* More iOS work

* More iOS progress

* More iOS work

* AppDataDocumentProvider: Add missing ``COLUMN_FLAGS`` in the default document projectation (#741)

Fixes unable to copy files from device to app's internal storage problem

* More iOS work

* ios: Simplify MTKView interface (still doesn't work though)

* ios: Pass CAMetalLayer instead of void* to Obj-C++ bridging header

* Fix bridging cast

* FINALLY IOS GRAPHICS

* ios: Remove printf spam

* Metal: Reimplement some texture formats on iOS

* metal: implement texture decoder

* metal: check for format support

* metal: implement texture swizzling

* metal: remove unused texture functions

* Shadergen types: Add Metal & MSL

* Format

* Undo submodule changes

* Readme: Add Chonkystation 3

* Metal: Use std::unique_ptr for texture decode

* AppDataDocumentProvider: Allow to remove documents (#744)

* AppDataDocumentProvider: Allow to remove documents

* Typo

* Metal renderer fixes for iOS

* iOS driver: Add doc comments

* iOS: Add frontend & frontend build files (#746)

* iOS: Add SwiftUI part to repo

* Add iOS build script

* Update SDL2 submodule

* Fix iOS build script

* CI: Update xcode tools for iOS

* Update iOS_Build.yml

* Update iOS build

* Lower XCode version

* A

* Update project.pbxproj

* Update iOS_Build.yml

* Update iOS_Build.yml

* Update build.sh

* iOS: Fail on build error

* iOS: Add file picker (#747)

* iOS: Add file picker

* Fix lock placement

* Qt: Add runpog icon (#752)

* Update discord-rpc submodule (#753)

* Remove cryptoppwin submodule (#754)

* Add optional texture hashing

* Fix build on new Vk SDK (#757)

Co-authored-by: Nadia Holmquist Pedersen <893884+nadiaholmquist@users.noreply.github.com>

* CI: Use new Vulkan SDK

---------

Co-authored-by: Noumi <139501014+noumidev@users.noreply.github.com>
Co-authored-by: Thomas <thomas@thomasw.dev>
Co-authored-by: Thomas <twvd@users.noreply.github.com>
Co-authored-by: Daniel López Guimaraes <danielectra@outlook.com>
Co-authored-by: Jonian Guveli <jonian@hardpixel.eu>
Co-authored-by: Ishan09811 <156402647+Ishan09811@users.noreply.github.com>
Co-authored-by: Auxy6858 <71662994+Auxy6858@users.noreply.github.com>
Co-authored-by: Paris Oplopoios <parisoplop@gmail.com>
Co-authored-by: henry <23128103+atem2069@users.noreply.github.com>
Co-authored-by: smiRaphi <neogt404@gmail.com>
Co-authored-by: smiRaphi <87574679+smiRaphi@users.noreply.github.com>
Co-authored-by: Daniel Nylander <po@danielnylander.se>
Co-authored-by: Samuliak <samuliak77@gmail.com>
Co-authored-by: Albert <45282415+ggrtk@users.noreply.github.com>
Co-authored-by: Nadia Holmquist Pedersen <893884+nadiaholmquist@users.noreply.github.com>
2025-06-23 04:59:22 +03:00
Thomas
60b0e3db85 Bump LuaJIT 2024-12-08 10:45:18 +01:00
wheremyfoodat
8940d78ea4
Vendor Oaknut (#667) 2024-12-06 18:25:16 +02:00
wheremyfoodat
20a6e0bf0d
Allow compilation with clang-cl (#638) 2024-11-20 00:57:52 +02:00
wheremyfoodat
49a94a13c5
Moar shader decompiler (#559)
* Renderer: Add prepareForDraw callback

* Add fmt submodule and port shader decompiler instructions to it

* Add shader acceleration setting

* Hook up vertex shaders to shader cache

* Shader decompiler: Fix redundant compilations

* Shader Decompiler: Fix vertex attribute upload

* Shader compiler: Simplify generated code for reading and faster compilation

* Further simplify shader decompiler output

* Shader decompiler: More smallen-ing

* Shader decompiler: Get PICA uniforms uploaded to the GPU

* Shader decompiler: Readd clipping

* Shader decompiler: Actually `break` on control flow instructions

* Shader decompiler: More control flow handling

* Shader decompiler: Fix desitnation mask

* Shader Decomp: Remove pair member capture in lambda (unsupported on NDK)

* Disgusting changes to handle the fact that hw shader shaders are 2x as big

* Shader decompiler: Implement proper output semantic mapping

* Moar instructions

* Shader decompiler: Add FLR/SLT/SLTI/SGE/SGEI

* Shader decompiler: Add register indexing

* Shader decompiler: Optimize mova with both x and y masked

* Shader decompiler: Add DPH/DPHI

* Fix shader caching being broken

* PICA decompiler: Cache VS uniforms

* Simply vertex cache code

* Simplify vertex cache code

* Shader decompiler: Add loops

* Shader decompiler: Implement safe multiplication

* Shader decompiler: Implement LG2/EX2

* Shader decompiler: More control flow

* Shader decompiler: Fix JMPU condition

* Shader decompiler: Convert main function to void

* PICA: Start implementing GPU vertex fetch

* More hw VAO work

* More hw VAO work

* More GPU vertex fetch code

* Add GL Stream Buffer from Duckstation

* GL: Actually upload data to stream buffers

* GPU: Cleanup immediate mode handling

* Get first renders working with accelerated draws

* Shader decompiler: Fix control flow analysis bugs

* HW shaders: Accelerate indexed draws

* Shader decompiler: Add support for compilation errors

* GLSL decompiler: Fall back for LITP

* Add Renderdoc scope classes

* Fix control flow analysis bug

* HW shaders: Fix attribute fetch

* Rewriting hw vertex fetch

* Stream buffer: Fix copy-paste mistake

* HW shaders: Fix indexed rendering

* HW shaders: Add padding attributes

* HW shaders: Avoid redundant glVertexAttrib4f calls

* HW shaders: Fix loops

* HW shaders: Make generated shaders slightly smaller

* Fix libretro build

* HW shaders: Fix android

* Remove redundant ubershader checks

* Set accelerate shader default to true

* Shader decompiler: Don't declare VS input attributes as an array

* Change ubuntu-latest to Ubuntu 24.04 because Microsoft screwed up their CI again

* fix merge conflict bug
2024-10-19 16:53:51 +03:00
wheremyfoodat
4b21d601e2 Vendor fdk-aac 2024-09-05 01:10:32 +03:00
wheremyfoodat
9055076d0d Add fdk-aac & AAC request structure 2024-09-04 22:31:19 +03:00
wheremyfoodat
2754df9b94
Add renderdoc API support (#585)
* Add renderdoc API support

* FIx renderdoc include directory

* Fix RenderDoc linking

* Fix Renderdoc linking (again)

* Maybe fix renderdoc
2024-08-23 05:30:25 +03:00
Paris Oplopoios
860eacc7e6
Add createFromBinary function (#573)
* Add createFromBinary function

* Indentation

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
2024-08-08 17:29:44 +03:00
wheremyfoodat
0f80d0af7a Rename Handle to HorizonHandle, add metal-cpp submodule, format 2024-07-23 15:22:15 +03:00
wheremyfoodat
5c1e2912a3 Shadergen: Minimize shader compilation time by caching the default VS 2024-07-19 14:35:01 +03:00
wheremyfoodat
11c9279329 Properly flush shader cache 2024-07-15 14:30:21 +03:00
Jonian Guveli
d47e964c80 Libretro: Initial implementation 2024-07-04 00:50:13 +03:00
wheremyfoodat
85a17c3fcd
Add UBO support to opengl.hpp 2024-05-13 01:10:44 +03:00
wheremyfoodat
66bcf384f3 Qt: Add file patcher 2024-05-07 23:08:24 +03:00
wheremyfoodat
eab1a12b07 Integrate Capstone disassembler 2024-04-29 00:28:46 +03:00
Wunk
18df066463
Add shader unit-testing (#457)
* Initialize catch-2 based unit tests

* Add nihstro submodule

Enabled only during testing to help with assembling shaders in-code.

* Implement `ADD` instruction unit-test

* Add arithmetic/logical instruction unit tests

* Add embedded catch2 submodule

Will use the host catch2 if available.
2024-03-12 00:53:49 +02:00
Wunk
929019e76b
Refactor build targets into AlberCore (#455)
* Ignore `.cache` folder

* Add `AlberCore` build-target

Separate the AlberCore from its frontends. Allowing two front-ends to interface
with the same core implementation.  This also allows for the core to interface
better with unit-testing.

* Modularize SDL/Qt frontend

Separates all QT/SDL build files and options into the frontend-build-target

* Fix optional OpenGL enablement

Software renderer requires OpenGL, so AlberCore requries OpenGL.

The QT frontend currently requires OpenGL due to `ScreenWidget`

* Fix Android build

* Fix LTO linking

* Fix windows build

`LoadLibrary` is a preprocessor that will use either `LoadLibraryW` or
`LoadLibraryA` depending on if `UNICODE` is defined or not.
In this case we are using an ASCII string literal and and can explicitly
specify the usage of `LoadLibraryA` with an ASCII literal.

* Bonk

* Bonk

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
2024-03-11 19:51:17 +02:00
wheremyfoodat
e71a8bec9c
Update discord-rpc again (#449) 2024-03-07 22:21:31 +02:00
wheremyfoodat
844d954a26 Update discord RPC module to fix AUR build 2024-03-07 20:46:11 +02:00
wheremyfoodat
25d8e5807f
Fix dynarmic submodule (#446)
* Remove dynarmic submodule

* Add dynarmic mirror

* Update oaknut

* Update shader JIT to work with latest oaknut

* Maybe fix oaknut finally

* hlep

* More arm64 shader derps

* Fixing more shader JIT brokenness

* aaaaaaaaaaaa

* Update shader_rec_emitter_arm64.hpp

* Update shader_rec_emitter_arm64.cpp
2024-03-07 19:47:21 +02:00
wheremyfoodat
24705fe67e
Fix boost submodule (#429) 2024-03-05 00:28:58 +02:00
wheremyfoodat
d459cb1d6c
Get audio output working with LLE DSP (#419)
* Implement audio output

* Semi-proper audio output

* Add audio enable and vsync settings

* Add audio enable and vsync settings

* Optimize audio output a bit

* Make max ring buffer timeout smaller

* Make max ring buffer timeout smaller

* Revert to spinlocking for audio sync

* Sleep emulator thread if too many samples queued

* Fix Teakra submodule breaking

* Don't start audio device too soon

* Fix IWYU errors

* Fix compilation errors on GCC/Clang

* Ignore std::hardware_destructive_interference_size on Android NDK

* Fix more IWYU errors
2024-02-24 03:26:23 +02:00
wheremyfoodat
0a51a80d91 Add DSP emulation interface
Co-Authored-By: PSISP <12768103+psi-rockin@users.noreply.github.com>
2024-02-17 00:39:55 +02:00
wheremyfoodat
8cee60ebf5 Merge branch 'master' into delete-emu 2024-02-01 19:16:04 +02:00
wheremyfoodat
c0621d0760 WIP arm64 shader recompiler 2024-01-03 00:39:36 +02:00
wheremyfoodat
fa0ee8a080 Update zep 2023-12-16 17:43:45 +02:00
wheremyfoodat
c30fbd3801 Fix syntax highlighting 2023-12-16 16:54:31 +02:00
wheremyfoodat
c57f2db6c0 [Qt] Add text editor 2023-12-16 15:51:45 +02:00
wheremyfoodat
7b9012671a Add libuv 2023-10-30 19:01:26 +02:00
offtkp
9e30e6a14c destroyContext function stub 2023-10-25 13:43:42 +03:00
offtkp
e35251ac74 Minor hydra gl interface fixup 2023-10-25 13:43:42 +03:00
offtkp
dbacce0c56 Add hydra touch support 2023-10-23 14:02:07 +03:00
wheremyfoodat
3ea29de2ee Update hydra_core 2023-10-21 21:58:54 +03:00
offtkp
4172194479 Implement getFps hc function 2023-10-21 11:55:26 +03:00
offtkp
23636b22fa Hydra core 2023-10-20 19:31:55 +03:00
offtkp
ab83fc1e71 Replace android_ndk_import_module_cpufeatures macro with its declaration 2023-10-18 00:34:35 +03:00
Paris
f0c6930b8d
Update CMakeLists.txt 2023-10-17 01:26:41 +03:00
wheremyfoodat
f9dc9ac94d Add mio submodule 2023-10-06 09:33:15 +03:00
wheremyfoodat
f6634786c1 AAAAAAAAAAAAAAAAAAAAA 2023-09-30 02:52:23 +03:00
wheremyfoodat
2a0c0afff5 Update context_egl.h 2023-09-30 02:33:04 +03:00
wheremyfoodat
53858d7bd7 Update glad_glx.h 2023-09-30 01:58:37 +03:00
wheremyfoodat
6125b7ebf7 Force CI to run :( 2023-09-30 01:50:24 +03:00
wheremyfoodat
0bfa295053 Fix include again 2023-09-30 01:46:12 +03:00
wheremyfoodat
046b334cb5 Fix include 2023-09-30 01:37:27 +03:00
wheremyfoodat
5d9ded47da Fix typo 2023-09-30 01:35:26 +03:00
wheremyfoodat
b908f3efc1 Embed LuaJIT part 1 2023-09-17 16:15:54 +03:00
wheremyfoodat
679eb0f7bc Add Yuzu NFC types header, clean up headers 2023-09-09 15:06:04 +03:00
wheremyfoodat
57cb52d029 Update dynarmic 2023-09-02 20:05:23 +03:00
wheremyfoodat
2e5dc5da07 Set MacOS deployment target & vendor discord-rpc 2023-08-20 00:27:43 +03:00