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
Wunkolo
6ee3f73335
Bisect TextureFmt
and ColorFmt
...
Makes framebuffer-formats unrepresentable from texture formats while
allowing them to alias each other. Add utility functions as well that
just re-use the `TextureFmt` ones.
2023-06-18 08:22:14 -07:00
wheremyfoodat
e5b09fefc8
Merge pull request #40 from wheremyfoodat/bottom-screen
...
Stub screens in a bit less of a sad way
2023-06-18 17:35:37 +03:00
Wunkolo
134e16d8ea
Replace Texture::Formats
with PICA::ColorFmt
...
This enum was a duplicate of the PICA one. Now the PICA one is more
complete. Migrate `textureFormatToString` to be next to the enums
definition.
2023-06-18 00:10:04 -07:00
Wunkolo
5f07f77c94
Move hasStencil
to regs.hpp
2023-06-17 23:27:19 -07:00
Wunkolo
838d3f27f9
Migrate PICA-types into PICA
namespace
...
Rather than prefixing these types with `PICA`, a namespace is used instead.
2023-06-17 18:23:47 -07:00
fleroviux
1416456035
[GPU] DOT3_RGB(A) modes should remap the operands from [0, 1] to [-1, +1] range
2023-06-18 01:32:32 +02:00
Wunkolo
78a3f9fa23
Add PICA texel-format and topology types
...
Slowly stepping the codebase towards having renderer-agnostic types and keeping the translation of PICA-types to OpenGL/VK/DX/Software/etc to the renderer-backend.
2023-06-17 12:26:41 -07:00
wheremyfoodat
d0ae5f0546
Merge pull request #37 from marysaka/feat/proper-hle-result
...
hle: Add proper type for result code
2023-06-17 18:39:36 +03:00
fleroviux
78827886fe
Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-17 12:39:48 +02:00
fleroviux
3aeef23b2e
Merge branch 'bottom-screen' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-17 12:38:33 +02:00
wheremyfoodat
0bd77856e5
Merge pull request #42 from marysaka/misc/glad
...
misc: Switch from gl3w to glad
2023-06-17 12:53:33 +03:00
Mary
f3010f0909
misc: Switch from gl3w to glad
...
Also add more checks on window and context creation.
2023-06-17 11:26:18 +02:00
wheremyfoodat
6c29e3e0be
Merge pull request #41 from marysaka/fix/linux-cstdint-helper
...
fix: fix build on Linux with gcc
2023-06-17 11:45:59 +03:00