45 lines
1.3 KiB
C
Raw Normal View History

#pragma once
#include "common.h"
2017-03-01 17:03:27 +01:00
// see: http://3dbrew.org/wiki/CONFIG9_Registers
// see: http://3dbrew.org/wiki/EMMC_Registers
#define HID_STATE (~(*(volatile u32*)0x10146000) & BUTTON_ANY)
2017-01-16 01:56:04 +01:00
#define CART_STATE (~(*(volatile u8*)0x10000010) & 0x1)
2017-03-01 17:03:27 +01:00
#define SD_STATE ((*(volatile u16*)0x1000601C) & (0x1<<5))
#define BUTTON_A (1 << 0)
#define BUTTON_B (1 << 1)
#define BUTTON_SELECT (1 << 2)
#define BUTTON_START (1 << 3)
#define BUTTON_RIGHT (1 << 4)
#define BUTTON_LEFT (1 << 5)
#define BUTTON_UP (1 << 6)
#define BUTTON_DOWN (1 << 7)
#define BUTTON_R1 (1 << 8)
#define BUTTON_L1 (1 << 9)
#define BUTTON_X (1 << 10)
#define BUTTON_Y (1 << 11)
#define BUTTON_ANY 0x00000FFF
2016-05-30 01:54:09 +02:00
#define BUTTON_ARROW (BUTTON_RIGHT|BUTTON_LEFT|BUTTON_UP|BUTTON_DOWN)
2017-03-01 17:03:27 +01:00
// special buttons / cart / sd
#define BUTTON_POWER (1 << 12)
#define BUTTON_HOME (1 << 13)
2017-01-16 01:56:04 +01:00
#define CART_INSERT (1 << 14)
#define CART_EJECT (1 << 15)
2017-03-01 17:03:27 +01:00
#define SD_INSERT (1 << 16)
#define SD_EJECT (1 << 17)
#define TIMEOUT_HID (1 << 31)
2018-04-25 15:25:07 +02:00
// strings for button conversion
#define BUTTON_STRINGS "A", "B", "SELECT", "START", "RIGHT", "LEFT", "UP", "DOWN", "R", "L", "X", "Y"
u32 InputWait(u32 timeout_sec);
bool CheckButton(u32 button);
2018-04-25 15:25:07 +02:00
void ButtonToString(u32 button, char* str);
u32 StringToButton(char* str);