Commit graph

427 commits

Author SHA1 Message Date
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
Nadia Holmquist Pedersen
71dddc0020 Add basic controller input using the SDL2 GameController API 2023-06-27 22:40:38 +02: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
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
dbe293bb52
Merge pull request #43 from Wunkolo/pica-types
Add PICA texel-format and topology types
2023-06-20 13:26:58 +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
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
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
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
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
1aab10bec7
Merge pull request #35 from Wunkolo/span-cpu-state
Use `std::span` for CPU register-state
2023-06-17 01:39:33 +03:00
wheremyfoodat
936302da2a Raise clang-format column size, make std::span support in opengl.hpp version-dependent 2023-06-16 22:06:59 +03:00
Mary
122b1b2727 hle: Add proper type for result code
This should clean up all HLE errorcode in the codebase.

I didn't removed Rust::Result as this should be a cleanup for another
iteration.
2023-06-16 20:09:37 +02:00
Wunkolo
553d23974a Use std::span to pass vertex data
Starts utilizing
[std::span](https://en.cppreference.com/w/cpp/container/span) to
indicate a non-owning view of a contiguous array of elements rather than
`T* data, usize count`.
2023-06-16 07:28:35 -07:00
Wunkolo
fde93381a5 Use std::span for CPU register-state
Following the trend of #33: `std::span` provides some useful utility
functions like `size_bytes()` and `as_bytes()` and serves as a better
non-owning "chunk of data"-type over just passing around an
`std::array&`.
2023-06-16 07:24:37 -07:00
wheremyfoodat
2520b2cb46 [GPU] Disable blend when rendering output texture 2023-06-13 20:38:17 +03:00
wheremyfoodat
4f619086e9 [HID] Add touchscreen 2023-06-13 15:44:55 +03:00
wheremyfoodat
5200c10b27 [Emulator] Handle left click 2023-06-13 15:41:02 +03:00
wheremyfoodat
0c213900bc
[FS] Actually add FlushFile 2023-06-11 23:24:12 +03:00
wheremyfoodat
378258ed0b [DSP] Fix up warnings/logs 2023-06-11 14:20:13 +03:00
wheremyfoodat
ccd7ef3a23 [DSP] Add other pipes for Picross 3D 2023-06-11 14:11:50 +03:00
wheremyfoodat
cf35491fb1 [APT] Stub APT::PreloadLibraryApplet 2023-06-11 13:28:21 +03:00
wheremyfoodat
cba1ce8fb8 Implement 8-bit VRAM writes 2023-06-11 13:14:35 +03:00
wheremyfoodat
5fa4e9e178
[SaveData] Handle size == 0 in CreateFile 2023-06-11 12:31:42 +03:00
Wunkolo
8a852d2cab Implement SaveDataArchive::createFile
Based on `ExtSaveDataArchive::createFile`. Gets some games farther that
try to create save-data upon boot.
2023-06-11 01:05:48 -07:00
wheremyfoodat
fd600a59c1
Merge pull request #18 from Wunkolo/bext
Add `Helpers:{getBits,getBit}`
2023-06-10 12:54:31 +03:00
Wunkolo
2c94d0d683 Add Helpers:{getBits,getBit}
`constexpr` functions for extractint bitfields that lends itself a bit
better to emitting instructions like `bextr` on x86 or `ubfx` on arm64.
And may subjectively make things a bit more readable.
"Extract `5` bits" rather than `& 0x1F`.
2023-06-10 00:48:06 -07:00
Wunkolo
2edc9d5fb7 Remove #pragma once from source file 2023-06-09 20:31:25 -07:00
wheremyfoodat
dea8b9ec2e [HID] Redo service 2023-06-06 00:57:48 +03:00
wheremyfoodat
629e00251c [HID] Remap keys 2023-06-05 22:43:59 +03:00
wheremyfoodat
0c0e7a4cb9 Clean up srv interface for HID 2023-06-05 15:28:44 +03:00
liuk7071
608bf88c5f Basic input 2023-06-05 13:25:06 +02:00
wheremyfoodat
7cc7dc09f4 [FS] Implement File::Flush and fix file function headers 2023-06-03 22:25:30 +03:00
wheremyfoodat
e9a8c2cb2e ExtSaveData pls 2023-06-03 22:04:26 +03:00
wheremyfoodat
7034aa27d7 Add DLP::SRVR service 2023-05-27 00:32:43 +03:00
wheremyfoodat
4767a2053b [FS] Better GetFormatInfo 2023-05-20 15:39:31 +03:00
wheremyfoodat
01d16fdfd1 [FS] Better DeleteFile, fclose when file session is closed 2023-05-20 02:32:36 +03:00
wheremyfoodat
9ec2964695 [FS] Add FormatThisUserSaveData 2023-05-20 01:24:30 +03:00
wheremyfoodat
a530350eda [FS] Media type = 2 is cart, not 1... 2023-05-20 01:04:51 +03:00
wheremyfoodat
c7f676efd2 [DSP] Add missing break 2023-05-18 03:44:29 +03:00
wheremyfoodat
5a1cc39cb6 [DSP] Reset audio pipe properly 2023-05-18 03:36:19 +03:00