Commit graph

798 commits

Author SHA1 Message Date
wheremyfoodat
e86aec0c33 More clang-format 2023-06-28 01:53:26 +03:00
wheremyfoodat
eff25180d5 [Controller] Set gameControllerID if a gamepad is connected mid-gameplay 2023-06-28 01:51:21 +03:00
wheremyfoodat
29806ff8e5 clang-format 2023-06-28 01:48:34 +03:00
wheremyfoodat
71582eff6d [Controller] Slightly better analog handling 2023-06-28 01:40:23 +03:00
wheremyfoodat
bc4e71bf40 [Controller] Fix breaks, constexpr 2023-06-28 00:58:40 +03:00
wheremyfoodat
acd21c6908 Merge remote-tracking branch 'upstream/master' into feature/basic-controller-input 2023-06-28 00:20:54 +03:00
wheremyfoodat
6f2c72070d
Merge pull request #45 from marysaka/feat/encrypted_games
feat: Add support for encrypted NCSD
2023-06-28 00:15:14 +03:00
wheremyfoodat
41f29893c2 Fix merge 2023-06-28 00:10:44 +03:00
Nadia Holmquist Pedersen
71dddc0020 Add basic controller input using the SDL2 GameController API 2023-06-27 22:40:38 +02:00
wheremyfoodat
02d07f29d7 Merge remote-tracking branch 'origin/GamingProcessingUnit' into dynapica 2023-06-27 18:53:59 +03:00
wheremyfoodat
747a9345e3 Some more thinning 2023-06-27 18:08:57 +03:00
wheremyfoodat
432b4b847b Making helpers.hpp thinner 2023-06-27 01:49:12 +03:00
wheremyfoodat
3cf8427670 [Crypto] Slightly more robust error handling 2023-06-27 01:12:17 +03:00
Mary
0494ca0064 Address comments 2023-06-22 17:41:09 +02:00
Mary
ef5329a0d4 fix: do not allocate exheader on the stack as it has a variable length
Fix build on Windows hopefully.
2023-06-22 17:41:09 +02:00
Mary
6bdc754e86 fix: Use CHAR_BIT instead of UINT8_WIDTH
Fix building on Windows
2023-06-22 17:41:09 +02:00
Mary
86dd7f54f5 feat: Add support for encrypted NCSD
Missing version 1 support and seeded crypto but that would be enough for now.
2023-06-22 17:41:08 +02:00
Mary
2e5bc0cb14 feat: crypto: Add basic AES keyslot manager
We loads keys from AppData/Alber/sysdata/aes_keys.txt.

NOTE: We do differ from other emulators by not hardcoding the generator key, it's the user responsibility to provide it in aes_keys.txt.
2023-06-22 17:37:21 +02:00
wheremyfoodat
bf85b405af
Merge pull request #48 from Wunkolo/gl-object-label
Add OpenGL object-naming and scoping
2023-06-21 13:48:49 +03:00
wheremyfoodat
91c9e6a31a
Merge pull request #32 from fleroviux/pica-tev-emulation
Implement texture combiner emulation
2023-06-21 01:15:59 +03:00
wheremyfoodat
b3332aba70
Merge pull request #49 from Wunkolo/texture-env-reg
Add TexEnv PICA register offsets
2023-06-21 00:58:47 +03:00
Wunkolo
9746dd5eb2 Add TexEnv PICA register offsets 2023-06-20 14:55:12 -07:00
fleroviux
7ebbfbf1ef [GPU] Remove magic constants in TEV and texture binding code as much as possible 2023-06-20 23:43:43 +02:00
fleroviux
7128ae5565 [GPU] Fix incorrect &-operator with unsigned and signed operand in the GLSL code 2023-06-20 23:00:54 +02:00
fleroviux
6b610a82d6 [GPU] Move texture binding into its own method 2023-06-20 22:58:52 +02:00
fleroviux
4cb7e3625b Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-20 22:47:47 +02:00
fleroviux
f8a8abd2c6 Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-20 22:34:39 +02:00
fleroviux
901e3308a0 [GPU] Rename abgr8888_to_vec4() to abgr8888ToVec4() 2023-06-20 22:33:12 +02:00
fleroviux
2f19310c42 [GPU] Upgrade TEV functions and variables to Pesca style 2023-06-20 22:28:58 +02:00
fleroviux
7ad8a5041e [GPO] Use a_ and v_ prefixes for vertex shader inputs and outputs 2023-06-20 22:21:59 +02:00
fleroviux
2fc22bed24 [GPU] Decode GPUREG_TEXENVi_COLOR in the vertex shader as well 2023-06-20 22:18:23 +02:00
fleroviux
ef7d01d1b1 [GPU] Decode GPUREG_TEXENV_BUFFER_COLOR in the vertex shader 2023-06-20 22:09:14 +02:00
fleroviux
b7616cc9ec [GPU] Cleanup the TEV GLSL code a bit" 2023-06-20 21:44:55 +02:00
fleroviux
9b5a24329f [GPU] Simplify TEV source fetching by using an array to store the current source values 2023-06-20 21:31:52 +02:00
fleroviux
9386ce319b [GPU] Make the fragment shader GLSL a bit more readable. 2023-06-20 21:06:34 +02:00
fleroviux
13a53a9e9d [GPU] Disable the alpha combiner when the color combiner is in "Dot3 RGBA" configuration 2023-06-20 20:46:01 +02:00
fleroviux
a30f9ccd33 [GPU] Treat color and alpha sources as two separate RGBA values
Previously we fetched the RGB channels of the color source and the alpha channel of the alpha source
and combined these into a single RGBA source value that the source operands are applied to.
This is incorrect. The correct behavior is to fetch the full RGBA color for both the color and alpha
sources and to apply the color operand to the color source and the alpha operand to the alpha source,
i.e. using the *alpha* source R-channel when the alpha operand is "One minus source red".
Only after that we combine both sources into a single RGBA color.
2023-06-20 20:20:33 +02:00
Wunkolo
62fdb29646 Add GPU_DEBUG_INFO CMake-Option
Adds a project-wide setting for allowing renderer code to add additional
diagnostic data.  Currently used to allow `opengl.hpp` to conditionally
implement debug-labeling and scopes.
2023-06-20 11:04:52 -07:00
Wunkolo
dbf0597bd8 Add DebugScope utility-class for RAII-based OpenGL debug-scopes
Simply define this object in a C++ scope like:
```cpp
OpenGL::DebugScope glScope("Renderer::display");
```
and it will associate all functions within the current scope within a
named group. Supports `printf` formatting.
2023-06-20 10:10:11 -07:00
wheremyfoodat
dbe293bb52
Merge pull request #43 from Wunkolo/pica-types
Add PICA texel-format and topology types
2023-06-20 13:26:58 +03:00
Wunkolo
1251cecc88 Add setObjectLabel for naming OpenGL functions
Add `OPENGL_PRINTF_FORMAT` and `OPENGL_PRINTF_FORMAT_ATTR` macros for providing
printf diagnostic information across platforms.
2023-06-19 23:48:16 -07:00
Wunkolo
1b9f270b19 Migrate IOFile implementation to io_file.cpp
Makes the implementation of `IOFile` private, allowing inclusions and
defines such as `#define fseeko` and `#include <io.h>` to not poison
client-code or the global namespace.
2023-06-19 19:37:36 -07:00
fleroviux
9b1ed2084f [GPU] Implement initial support for multi-texturing 2023-06-20 00:01:12 +02:00
fleroviux
170fe9a4b2 Merge branch 'GamingProcessingUnit' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-19 19:54:03 +02:00
wheremyfoodat
c042dbc293
Merge pull request #44 from skylersaleh/macos_fixes
Work around compilation errors on macOS
2023-06-19 00:06:10 +03:00
wheremyfoodat
6b5ec74aa4 [OutputVertex] Avoid unnamed struct 2023-06-18 23:59:41 +03:00
wheremyfoodat
88e3eb1558
Add std::bit_cast fallback for Helpers::bit_cast and run clang-format 2023-06-18 23:33:10 +03:00
fleroviux
927bf9fe32 Merge branch 'GamingProcessingUnit' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-18 22:27:24 +02:00
wheremyfoodat
952e2d6d22 More accurate VAO implementation 2023-06-18 23:20:28 +03:00
Sky
e9b3b7c2a2 Add workaround helper for bit_cast and missing #include <bit>
Allows compilation on native macOS build system.
2023-06-18 12:33:34 -07:00