/* Arduino Nofrendo * Please check hw_config.h and display.cpp for configuration details */ #include #include #include #include #include #include #include "hw_config.h" extern "C" { #include } int16_t bg_color; extern Arduino_TFT *gfx; void setup() { Serial.begin(115200); // turn off WiFi esp_wifi_deinit(); // disable Core 0 WDT TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCPU(0); esp_task_wdt_delete(idle_0); // init display gfx->begin(); bg_color = gfx->color565(24, 28, 24); // DARK DARK GREY gfx->fillScreen(bg_color); #ifdef TFT_BL // turn display backlight on ledcAttachPin(TFT_BL, 1); // assign TFT_BL pin to channel 1 ledcSetup(1, 12000, 8); // 12 kHz PWM, 8-bit resolution ledcWrite(1, TFT_BRIGHTNESS); // brightness 0 - 255 #endif // filesystem defined in hw_config.h FILESYSTEM_BEGIN // find first rom file (*.nes) File root = filesystem.open("/"); char *argv[1]; if (!root) { Serial.println("Filesystem mount failed! Please check hw_config.h settings."); gfx->println("Filesystem mount failed! Please check hw_config.h settings."); } else { bool foundRom = false; File file = root.openNextFile(); while (file) { if (file.isDirectory()) { // skip } else { char *filename = (char *)file.name(); int8_t len = strlen(filename); if (strstr(strlwr(filename + (len - 4)), ".nes")) { foundRom = true; char fullFilename[256]; sprintf(fullFilename, "%s%s", FSROOT, filename); Serial.println(fullFilename); argv[0] = fullFilename; break; } } file = root.openNextFile(); } if (!foundRom) { Serial.println("Failed to find rom file, please copy rom file to data folder and upload with \"ESP32 Sketch Data Upload\""); argv[0] = "/"; } Serial.println("NoFrendo start!\n"); nofrendo_main(1, argv); Serial.println("NoFrendo end!\n"); } } void loop() { }