Comments (5)
It can be built for esp32-s3 (we have a target called ESPLAY-S3 and it used to build and work fine to my knowledge) but I think the current tree doesn't build with esp-idf 5.0+ so that might be a problem.
The changes needed are probably fairly minor, though.
from retro-go.
I have been thus far unable to build the esplay-s3 target on ubuntu 23.10, from the main branch or the 1.38.1 tag.
I will keep playing with it, but I'm pretty new to C and ESP32 programming so I'm not really sure I'm understanding what's wrong
My command line is ./rg_tool.py --target esplay-s3 build-img
so I'm not sure why it's complaining about odroid-go
/home/qkj/esp32doom/retro-go/components/retro-go/rg_storage.c: In function 'rg_storage_init':
/home/qkj/esp32doom/retro-go/components/retro-go/targets/odroid-go/config.h:79:37: error: 'GPIO_NUM_22' undeclared (first use in this function); did you mean 'GPIO_NUM_42'?
#define RG_GPIO_SDSPI_CS GPIO_NUM_22
^~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_storage.c:84:27: note: in expansion of macro 'RG_GPIO_SDSPI_CS'
slot_config.gpio_cs = RG_GPIO_SDSPI_CS;
^~~~~~~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/targets/odroid-go/config.h:79:37: note: each undeclared identifier is reported only once for each function it appears in
#define RG_GPIO_SDSPI_CS GPIO_NUM_22
^~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_storage.c:84:27: note: in expansion of macro 'RG_GPIO_SDSPI_CS'
slot_config.gpio_cs = RG_GPIO_SDSPI_CS;
^~~~~~~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/targets/odroid-go/config.h:77:37: error: 'GPIO_NUM_23' undeclared (first use in this function); did you mean 'GPIO_NUM_43'?
#define RG_GPIO_SDSPI_MOSI GPIO_NUM_23
^~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_storage.c:86:24: note: in expansion of macro 'RG_GPIO_SDSPI_MOSI'
.mosi_io_num = RG_GPIO_SDSPI_MOSI,
^~~~~~~~~~~~~~~~~~
In file included from /home/qkj/esp32doom/retro-go/components/retro-go/config.h:17,
from /home/qkj/esp32doom/retro-go/components/retro-go/rg_system.h:12,
from /home/qkj/esp32doom/retro-go/components/retro-go/rg_display.c:1:
/home/qkj/esp32doom/retro-go/components/retro-go/rg_display.c: In function 'spi_init':
/home/qkj/esp32doom/retro-go/components/retro-go/targets/odroid-go/config.h:68:37: error: 'GPIO_NUM_23' undeclared (first use in this function); did you mean 'GPIO_NUM_43'?
#define RG_GPIO_LCD_MOSI GPIO_NUM_23
^~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_display.c:142:24: note: in expansion of macro 'RG_GPIO_LCD_MOSI'
.mosi_io_num = RG_GPIO_LCD_MOSI,
^~~~~~~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/targets/odroid-go/config.h:68:37: note: each undeclared identifier is reported only once for each function it appears in
#define RG_GPIO_LCD_MOSI GPIO_NUM_23
^~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_display.c:142:24: note: in expansion of macro 'RG_GPIO_LCD_MOSI'
.mosi_io_num = RG_GPIO_LCD_MOSI,
^~~~~~~~~~~~~~~~
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c: In function 'rg_audio_init':
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:97:53: error: 'I2S_MODE_DAC_BUILT_IN' undeclared (first use in this function); did you mean 'I2S_MODE_MASTER'?
.mode = I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN,
^~~~~~~~~~~~~~~~~~~~~
I2S_MODE_MASTER
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:97:53: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [esp-idf/retro-go/CMakeFiles/__idf_retro-go.dir/build.make:188: esp-idf/retro-go/CMakeFiles/__idf_retro-go.dir/rg_storage.c.obj] Error 1
make[3]: *** Waiting for unfinished jobs....
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:107:19: error: implicit declaration of function 'i2s_set_dac_mode'; did you mean 'i2s_set_clk'? [-Werror=implicit-function-declaration]
ret = i2s_set_dac_mode(RG_AUDIO_USE_INT_DAC);
^~~~~~~~~~~~~~~~
i2s_set_clk
make[3]: *** [esp-idf/retro-go/CMakeFiles/__idf_retro-go.dir/build.make:90: esp-idf/retro-go/CMakeFiles/__idf_retro-go.dir/rg_display.c.obj] Error 1
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c: In function 'rg_audio_deinit':
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:193:36: error: 'I2S_DAC_CHANNEL_RIGHT_EN' undeclared (first use in this function); did you mean 'I2S_CHANNEL_FMT_RIGHT_LEFT'?
if (RG_AUDIO_USE_INT_DAC & I2S_DAC_CHANNEL_RIGHT_EN)
^~~~~~~~~~~~~~~~~~~~~~~~
I2S_CHANNEL_FMT_RIGHT_LEFT
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:194:13: error: implicit declaration of function 'dac_output_disable'; did you mean 'esp_intr_disable'? [-Werror=implicit-function-declaration]
dac_output_disable(DAC_CHANNEL_1);
^~~~~~~~~~~~~~~~~~
esp_intr_disable
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:194:32: error: 'DAC_CHANNEL_1' undeclared (first use in this function); did you mean 'I2S_CHANNEL_MONO'?
dac_output_disable(DAC_CHANNEL_1);
^~~~~~~~~~~~~
I2S_CHANNEL_MONO
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:195:36: error: 'I2S_DAC_CHANNEL_LEFT_EN' undeclared (first use in this function); did you mean 'I2S_CHANNEL_STEREO'?
if (RG_AUDIO_USE_INT_DAC & I2S_DAC_CHANNEL_LEFT_EN)
^~~~~~~~~~~~~~~~~~~~~~~
I2S_CHANNEL_STEREO
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:196:32: error: 'DAC_CHANNEL_2' undeclared (first use in this function); did you mean 'I2S_CHANNEL_MONO'?
dac_output_disable(DAC_CHANNEL_2);
^~~~~~~~~~~~~
I2S_CHANNEL_MONO
/home/qkj/esp32doom/retro-go/components/retro-go/rg_audio.c:197:9: error: implicit declaration of function 'dac_i2s_disable'; did you mean 'esp_intr_disable'? [-Werror=implicit-function-declaration]
dac_i2s_disable();
^~~~~~~~~~~~~~~
esp_intr_disable
from retro-go.
I tried using a docker container, installing esp-idf v4.3 per the esp-idf docs, then building retro-go per these docs.
I get similar but different errors, this time about undeclared functions called RTC_SLEEP_PD_*
from retro-go.
There was indeed an issue with esplay-s3 not being respected, it's now fixed in the current dev branch.
But to get a successful S3 build you will need esp-idf 5.0 (I think 4.4 maybe had early S3 support too?).
Following those steps in esp-idf 5.0 I get a successful build:
- Pull my recent changes and switch to the dev branch
- In
components/retro-go/CMakeLists.txt
near the top you need to comment the first COMPONENT_REQUIRES line and uncomment the second one. - Build with
rg_tool.py --target=esplay-s3 --no-networking launcher
- You'll get several warnings but they can be ignored.
from retro-go.
We'll track this issue at #98
from retro-go.
Related Issues (20)
- SNES - APU causes softlock after defeating Dark World boss in Zelda Link to the Past HOT 6
- Add additional scrolling modes to the launcher (stick, center, page, etc) HOT 9
- .img Building Showing this error HOT 1
- Mortal Kombat 3 Europe Game Boy rom crashes on level loading HOT 6
- Can't figure out the OGO header pinout for external DAC HOT 2
- Crash after updating to Retro-Go 1.38 or 1.37.47 HOT 4
- Unused var HOT 1
- Error with esp_http_client_read on esp-idf 4.4 HOT 3
- [Feature] - ST7701S SPI LCD Driver HOT 3
- Files with too long a name do not show in launcher and/or are corrupted in the web UI. HOT 2
- Building for a custom board HOT 1
- Numerical Battery Readout in Debug HOT 4
- Question about reading sd card HOT 14
- MRGC and Gamebox battery voltage HOT 3
- PocketSprite support
- Game Boy Advance Emulator HOT 4
- PSRAM Required? or is there a way to build an image for running on a ESP32-wroom-32? HOT 5
- Problem to run / build on esp32s3 HOT 13
- On develop branch reset init lcd screen missing HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from retro-go.