Files
wiicompiled/runtime/include/hle/controller_status_contract.h
T
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

44 lines
1.1 KiB
C++

#pragma once
#include "isa/big_endian.h"
#include <array>
#include <cstddef>
#include <cstdint>
namespace PadStatusContract {
inline constexpr std::size_t kGuestStatusSize = 0x0C;
using GuestStatus = std::array<uint8_t, kGuestStatusSize>;
struct Fields {
uint16_t buttons = 0;
int8_t stickX = 0;
int8_t stickY = 0;
int8_t substickX = 0;
int8_t substickY = 0;
uint8_t triggerLeft = 0;
uint8_t triggerRight = 0;
uint8_t analogA = 0;
uint8_t analogB = 0;
int8_t error = 0;
};
inline GuestStatus Encode(const Fields& fields)
{
GuestStatus status{};
BigEndian::Write16(status.data(), fields.buttons);
status[0x02] = static_cast<uint8_t>(fields.stickX);
status[0x03] = static_cast<uint8_t>(fields.stickY);
status[0x04] = static_cast<uint8_t>(fields.substickX);
status[0x05] = static_cast<uint8_t>(fields.substickY);
status[0x06] = fields.triggerLeft;
status[0x07] = fields.triggerRight;
status[0x08] = fields.analogA;
status[0x09] = fields.analogB;
status[0x0A] = static_cast<uint8_t>(fields.error);
return status;
}
} // namespace PadStatusContract