2023-02-14 22:26:40 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include <libdragon.h>
|
|
|
|
#include <usb.h>
|
|
|
|
|
|
|
|
#include "boot/boot.h"
|
|
|
|
#include "flashcart/flashcart.h"
|
2023-07-02 21:52:58 +02:00
|
|
|
#include "menu/menu.h"
|
2023-02-24 14:24:59 +00:00
|
|
|
#include "menu/settings.h"
|
2023-02-14 22:26:40 +01:00
|
|
|
|
|
|
|
|
2023-07-09 00:01:41 +02:00
|
|
|
static void hw_init (void) {
|
2023-02-14 22:26:40 +01:00
|
|
|
assertf(usb_initialize() != CART_NONE, "No flashcart was detected");
|
2023-07-09 00:01:41 +02:00
|
|
|
|
2023-02-21 22:25:01 +01:00
|
|
|
flashcart_error_t error = flashcart_init();
|
|
|
|
assertf(error != FLASHCART_ERROR_OUTDATED, "Outdated flashcart firmware");
|
|
|
|
assertf(error != FLASHCART_ERROR_UNSUPPORTED, "Unsupported flashcart");
|
|
|
|
assertf(error == FLASHCART_OK, "Unknown error while initializing flashcart");
|
2023-06-06 16:54:47 +01:00
|
|
|
|
2023-07-09 00:01:41 +02:00
|
|
|
assertf(debug_init_sdfs("sd:/", -1), "Couldn't initialize SD card");
|
|
|
|
|
|
|
|
#ifdef DEBUG
|
|
|
|
debug_init_usblog();
|
|
|
|
#endif
|
2023-02-14 22:26:40 +01:00
|
|
|
}
|
|
|
|
|
2023-07-09 00:01:41 +02:00
|
|
|
static void hw_deinit (void) {
|
2023-02-14 22:26:40 +01:00
|
|
|
flashcart_deinit();
|
|
|
|
disable_interrupts();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int main (void) {
|
2023-02-24 14:24:59 +00:00
|
|
|
settings_t settings;
|
|
|
|
|
2023-07-09 00:01:41 +02:00
|
|
|
hw_init();
|
|
|
|
|
|
|
|
settings_load_default_state(&settings);
|
|
|
|
settings_load_from_file(&settings);
|
2023-02-14 22:26:40 +01:00
|
|
|
|
2023-07-02 21:52:58 +02:00
|
|
|
menu_run(&settings);
|
2023-02-14 22:26:40 +01:00
|
|
|
|
2023-07-09 00:01:41 +02:00
|
|
|
hw_deinit();
|
2023-02-14 22:26:40 +01:00
|
|
|
|
2023-02-24 14:24:59 +00:00
|
|
|
boot(&settings.boot_params);
|
2023-02-14 22:26:40 +01:00
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|