Reverted change to esp-idf 5.0

There are some weird issues in the launcher when built with 5.0.

- PNG decoding occasionally fails with incorrect checksum
- Occasional wifi crashes

Both issues would indicate memory weirdness to me and needs more investigating. Might be related to the SPIRAM cache workaround.

For now revert to 4.3 and might switch to 4.4 until 5.x is sorted out.
This commit is contained in:
Alex Duchesne 2024-08-29 19:10:34 -04:00
parent 192163966e
commit 99f8caf740
15 changed files with 70 additions and 64 deletions

View File

@ -1,9 +1,9 @@
# Building Retro-Go
## Prerequisites
You will need a working installation of [esp-idf](https://docs.espressif.com/projects/esp-idf/en/v5.0.7/esp32/get-started/index.html). Versions 5.0 to 5.3 are supported.
You will need a working installation of [esp-idf](https://docs.espressif.com/projects/esp-idf/en/v5.0.7/esp32/get-started/index.html). Versions 4.3 to 5.2 are supported.
_Note: As of retro-go 1.43, I use 5.0. I used 4.3 for versions 1.35 to 1.42. Version 4.1 was used for 1.20 to 1.34 versions._
_Note: As of retro-go 1.35, I use 4.3. Version 4.1 was used for 1.20 to 1.34 versions._
### ESP-IDF Patches
Patching esp-idf may be required for full functionality. Patches are located in `tools/patches` and can be applied to your global esp-idf installation, they will not break your other projects/devices.

View File

@ -1,4 +1,4 @@
FROM espressif/idf:release-v5.0
FROM espressif/idf:release-v4.3
WORKDIR /app
@ -8,8 +8,8 @@ ADD . /app
# Apply patches
RUN cd /opt/esp/idf && \
patch --ignore-whitespace -p1 -i "/app/tools/patches/panic-hook (esp-idf 5).diff" && \
patch --ignore-whitespace -p1 -i "/app/tools/patches/sdcard-fix (esp-idf 5).diff"
patch --ignore-whitespace -p1 -i "/app/tools/patches/panic-hook (esp-idf 4).diff" && \
patch --ignore-whitespace -p1 -i "/app/tools/patches/sdcard-fix (esp-idf 4).diff"
# Build
SHELL ["/bin/bash", "-c"]

View File

@ -1,6 +1,10 @@
set(COMPONENT_SRCDIRS ". drivers/audio fonts libs/netplay libs/lodepng")
set(COMPONENT_ADD_INCLUDEDIRS ". libs/netplay libs/lodepng")
set(COMPONENT_REQUIRES "spi_flash fatfs app_update json nvs_flash esp_adc esp_timer esp_psram esp_wifi esp_http_client")
if (IDF_VERSION_MAJOR EQUAL 5)
set(COMPONENT_REQUIRES "spi_flash fatfs app_update json nvs_flash esp_adc esp_timer esp_psram esp_wifi esp_http_client")
else() # esp-idf 4.1 - 4.4
set(COMPONENT_REQUIRES "spi_flash fatfs app_update esp_adc_cal json nvs_flash esp_wifi esp_http_client")
endif()
register_component()

View File

@ -67,7 +67,9 @@ static bool driver_init(int device, int sample_rate)
if (ret == ESP_OK)
{
ret = i2s_set_pin(I2S_NUM_0, &(i2s_pin_config_t) {
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
.mck_io_num = GPIO_NUM_NC,
#endif
.bck_io_num = RG_GPIO_SND_I2S_BCK,
.ws_io_num = RG_GPIO_SND_I2S_WS,
.data_out_num = RG_GPIO_SND_I2S_DATA,

View File

@ -497,7 +497,7 @@ bool rg_storage_write_file(const char *path, const void *data_ptr, size_t data_l
* to do some testing to determine if the increased executable size is acceptable...
*/
#if RG_ZIP_SUPPORT
#include <miniz.h>
#include <rom/miniz.h>
#endif
#define ZIP_MAGIC 0x04034b50

View File

@ -16,8 +16,8 @@ extern "C" {
#include <esp_idf_version.h>
#include <esp_heap_caps.h>
#include <esp_attr.h>
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
#error "Retro-Go requires ESP-IDF version 5.0.0 or newer!"
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(4, 3, 0)
#error "Retro-Go requires ESP-IDF version 4.3.0 or newer!"
#endif
#else
#define IRAM_ATTR

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,24 +53,24 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP32_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n

View File

@ -53,10 +53,10 @@ CONFIG_ESP32_REV_MIN_1=y
CONFIG_ESP32_REV_MIN_2=n
CONFIG_ESP32_REV_MIN_3=n
CONFIG_ESP32_REV_MIN=1
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=n
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
@ -64,13 +64,13 @@ CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_TASK_WDT=n
CONFIG_NEWLIB_NANO_FORMAT=y
#
# SPI RAM config
#
CONFIG_SPIRAM=y
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_SPIRAM_USE_MEMMAP=n