60 lines
1.4 KiB
C
Raw Normal View History

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-02-24 14:24:59 +00:00
#include "menu/settings.h"
2023-02-28 23:19:16 +00:00
#include "menu/menu_main.h"
2023-02-14 22:26:40 +01:00
static void init (void) {
assertf(usb_initialize() != CART_NONE, "No flashcart was detected");
2023-03-31 23:57:21 +01:00
//debug_init_usblog();
2023-02-14 22:26:40 +01:00
assertf(debug_init_sdfs("sd:/", -1), "Couldn't initialize SD card");
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");
controller_init();
display_close();
display_init(RESOLUTION_640x240, DEPTH_16_BPP, 3, GAMMA_NONE, ANTIALIAS_RESAMPLE);
graphics_set_color(0xFFFFFFFF, 0x00000000);
graphics_set_default_font();
2023-02-14 22:26:40 +01:00
}
static void deinit (void) {
display_close();
2023-02-14 22:26:40 +01:00
flashcart_deinit();
rdpq_close();
2023-02-14 22:26:40 +01:00
rspq_close();
audio_close();
display_close();
disable_interrupts();
}
int main (void) {
init();
2023-02-24 14:24:59 +00:00
settings_t settings;
settings_load_default_state(&settings);
//settings_load_from_file(&settings); // FIXME: this needs a rethink.
2023-02-24 14:24:59 +00:00
2023-02-28 23:19:16 +00:00
// if (boot_is_warm()) {
// menu_restore(&settings);
// }
2023-02-14 22:26:40 +01:00
2023-02-28 23:19:16 +00:00
menu_main_init(&settings);
2023-02-14 22:26:40 +01:00
deinit();
2023-02-24 14:24:59 +00:00
boot(&settings.boot_params);
2023-02-14 22:26:40 +01:00
return 1;
}