2016-03-17 00:08:13 +01:00
|
|
|
#include "types.h"
|
|
|
|
|
#include "buttons.h"
|
2016-03-08 15:13:55 +01:00
|
|
|
#include "fatfs/ff.h"
|
|
|
|
|
|
|
|
|
|
#define PAYLOAD_ADDRESS 0x23F00000
|
2016-04-16 20:27:52 +02:00
|
|
|
#define PAYLOADS_FOLDER "/aurei/payloads/"
|
|
|
|
|
#define PAYLOAD_PATH(a) PAYLOADS_FOLDER a ".bin"
|
2016-04-16 18:21:42 +02:00
|
|
|
|
2016-04-02 17:58:06 +02:00
|
|
|
static u32 loadPayload(const char *path)
|
|
|
|
|
{
|
2016-03-08 15:13:55 +01:00
|
|
|
FIL payload;
|
|
|
|
|
unsigned int br;
|
2016-04-02 17:58:06 +02:00
|
|
|
|
2016-03-17 00:08:13 +01:00
|
|
|
if(f_open(&payload, path, FA_READ) == FR_OK)
|
2016-03-08 15:13:55 +01:00
|
|
|
{
|
2016-03-24 16:02:00 +01:00
|
|
|
f_read(&payload, (void *)PAYLOAD_ADDRESS, f_size(&payload), &br);
|
2016-03-17 00:08:13 +01:00
|
|
|
f_close(&payload);
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
2016-04-02 17:58:06 +02:00
|
|
|
void main(void)
|
|
|
|
|
{
|
2016-03-17 00:08:13 +01:00
|
|
|
FATFS fs;
|
2016-04-03 17:56:09 +02:00
|
|
|
|
2016-03-17 00:08:13 +01:00
|
|
|
f_mount(&fs, "0:", 1);
|
|
|
|
|
|
|
|
|
|
//Get pressed buttons
|
2016-04-02 22:02:08 +02:00
|
|
|
u32 pressed = HID_PAD;
|
2016-03-17 00:08:13 +01:00
|
|
|
|
2016-04-16 18:21:42 +02:00
|
|
|
if(((pressed & BUTTON_RIGHT) && loadPayload(PAYLOAD_PATH("right"))) ||
|
|
|
|
|
((pressed & BUTTON_LEFT) && loadPayload(PAYLOAD_PATH("left"))) ||
|
|
|
|
|
((pressed & BUTTON_UP) && loadPayload(PAYLOAD_PATH("up"))) ||
|
|
|
|
|
((pressed & BUTTON_DOWN) && loadPayload(PAYLOAD_PATH("down"))) ||
|
|
|
|
|
((pressed & BUTTON_X) && loadPayload(PAYLOAD_PATH("x"))) ||
|
|
|
|
|
((pressed & BUTTON_Y) && loadPayload(PAYLOAD_PATH("y"))) ||
|
|
|
|
|
((pressed & BUTTON_SELECT) && loadPayload(PAYLOAD_PATH("select"))) ||
|
|
|
|
|
((pressed & BUTTON_R1) && loadPayload(PAYLOAD_PATH("r"))) ||
|
|
|
|
|
loadPayload(PAYLOAD_PATH("default")))
|
2016-03-08 15:13:55 +01:00
|
|
|
((void (*)())PAYLOAD_ADDRESS)();
|
2016-04-16 18:21:42 +02:00
|
|
|
}
|