Files
patchzyy ac99413d45 v0.9.0 (v1.0 beta) (#338)
* 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>
2026-10-23 18:00:55 +02:00

41 lines
1.1 KiB
C++

#pragma once
// Follows the game's conversation with a remote's extension (type, calibration,
// encryption key) so its data can be put at rest while the overlay owns input.
#include "wiimote_ext_crypto.h"
#include <array>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <vector>
namespace Wiimote {
class ExtensionState {
public:
void ObserveOutput(const uint8_t* report, size_t size);
void ObserveInput(const uint8_t* report, size_t size);
// Centres the sticks and releases the buttons of the extension data in a
// data report, leaving its motion data alone.
void Neutralize(std::vector<uint8_t>& report) const;
private:
enum class Type : uint8_t { Unknown, Nunchuk, Classic };
void Reset();
uint8_t Calibration(size_t index, uint8_t fallback) const;
Type m_type = Type::Unknown;
uint8_t m_format = 0;
bool m_encrypted = false;
std::array<uint8_t, 16> m_key{};
std::optional<ExtCrypto::Tables> m_tables;
std::array<uint8_t, 16> m_calibration{};
bool m_haveCalibration = false;
uint32_t m_readAddress = 0;
};
} // namespace Wiimote