mirror of
https://github.com/patchzyy/wiicompiled
synced 2026-10-25 15:18:26 -04:00
ac99413d45
* move aurora to the aurora-wiicompiled submodule (#315) * Update settings_overlay.cpp (#257) * Simplify controller settings menu (#317) * simplify controller settings menu * platform pairing hint * build for x86-64-v2 on older linux cpus (#319) * Real Wii Remote support over Bluetooth (#323) * pass real wii remotes through emulated bluetooth * build bluetooth tests on macos ci * address review comments * cancel replaced bluetooth reads * Run GX on its own thread (#325) * NTSC-U and NTSC-J support (#326) * add ntsc-u and ntsc-j support Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com> * hash inc files and require project for shards * port remaining stale rr us hooks * drop map report generation * drop one-off region porters --------- Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com> * Keyboard input for friend code entry (#327) * keyboard input for friend code entry * add new guest imports to synthetic test * replace per-address region table with range map (#328) * paste friend codes from clipboard (#329) * Verify dependency archive hashes (#330) * verify dependency archive hashes * verify cached cppwinrt tool * check dependency path types * Check CPU support before building (#331) * check cpu support before building * build for x86-64-v2 on windows and intel macs * bump aurora for fog fsel fix * add vsync option (#333) * Add exe icons (#334) * add exe icons * rebuild icon resource on ico change * drop icon rebuild tracking * Fix bugs found in forks (#336) * port fixes found in forks * fill whole disk id * dump kamek overlay on crash (#335) * bump aurora and version to 0.9.0 --------- Co-authored-by: DarthMDev <mgracer48@yahoo.com> Co-authored-by: rooklz <rookieb@muzo-works.com>
25 lines
739 B
C++
25 lines
739 B
C++
#pragma once
|
|
|
|
// The Wii's extension controller encryption: the game writes a random key to
|
|
// the extension, which then XORs and offsets every byte it reports.
|
|
|
|
#include <array>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <optional>
|
|
|
|
namespace Wiimote::ExtCrypto {
|
|
|
|
struct Tables {
|
|
std::array<uint8_t, 8> ft{};
|
|
std::array<uint8_t, 8> sb{};
|
|
void Encrypt(uint8_t* data, uint32_t address, size_t length) const;
|
|
void Decrypt(uint8_t* data, uint32_t address, size_t length) const;
|
|
};
|
|
|
|
// Tables for the key the game wrote to registers 0x40..0x4F, or nullopt when it
|
|
// does not come from the first-party key schedule.
|
|
std::optional<Tables> FromKey(const std::array<uint8_t, 16>& keyData);
|
|
|
|
} // namespace Wiimote::ExtCrypto
|