Coder Social home page Coder Social logo

retro-esp32 / retroesp32 Goto Github PK

View Code? Open in Web Editor NEW
596.0 34.0 92.0 365.25 MB

Retro ESP32 is a turbo charged Odroid Go Launcher, Emulator and ROM Manager

License: Creative Commons Attribution Share Alike 4.0 International

C 99.93% Makefile 0.04% Shell 0.03% Perl 0.01%
odroid-go gameboy-pocket gnuboy nesemu smsplusgx retro emulation education arduino espressif esp32 nintendo-game-boy game-boy-pocket hardware turbografx-16 pc-engine launcher emulator firmware

retroesp32's Introduction

Retro ESP32

Retro ESP32 is a turbo charged Odroid Go Launcher, Emulator and ROM Manager

Release Downloads Last Commit

Retro ESP32 In Action Summary
Teaser Retro ESP32

Retro ESP32 is the ultimate feature packed Odroid Go Launcher.

Includes color schemes and theming.
Drawing inspiration from the popular RetroArch emulator front end of choice.
We packed 11 (current count) prebundled emulators including ROM / Game manager.
Additionally each emulator includes an in game menu for further management.

Get Your Copy Today
Retro ESP32 MGB-001 Looking for a Game Boy Pocket drop in solution? Get Yours Today

Exculsively at:
Tindie

Preperation

Update Odroid Go Firmware

This only applies to owners of the Hardkernel Odroid Go NOT the Retro ESP32

If you have purchased a Retro ESP32 from us, you can skip this step.

Get the latest Retro Odroid Go Firmware

Installation

Copy, Mount, Flash

We kept installation of Retro ESP32 super simple.

  1. Downloads the latest release
  2. Unzip the file
  3. Copy RetroESP32.fw to the odroid/firmware folder of your prepared SD card
  4. Mount the SD Card back into your Odroid Go
  5. Restart Holding the B button
  6. Select Retro ESP32 from the firmware list
  7. Sit back and relax while your Odroid Go flashes the new firmware

Supported Emulators

What else do you need to know

  • Nintendo Entertainment System
  • Nintendo Game Boy
  • Nintendo Game Boy Color
  • Sega Master System
  • Sega Game Gear
  • Colecovision
  • Sinclair Zx Spectrum 48k
  • Atari 2600
  • Atari 7800
  • Atari Lynx
  • PC Engine

Features

What makes Retro ESP32 different

  • Configurator
  • Themes (color pack and icons)
  • RetroArch like GUI experience
  • In game HUD menu
  • Recently Played (First in Launchers Community)
  • Favorites List (Another First)
  • 3 Scale levels for 'Core' Emulators (Original, Box, Full Screen)

Usage

What to press and when

Please see the Usage Document

Have your say!

Don't be shy, our team is here

Have a great idea? Want to see a feature? Ran into a problem? Use our Project and Issue sections to have your say.

Authors

  • Eugene Yevhen Andruszczenko - Initial and Ongoing Work - 32teeth
  • Fuji Pebri - Espressif IOT Consultant - pebri86

License

This project is licensed under the Creative Commons Attribution Share Alike 4.0 International - see the LICENSE.md file for details

Acknowledgments


Support

Although we do this for 💕 of 🕹️
We Also Like Coffee!
Please Consider Supporting

Did you know, you can support us in a few way? We offer multiple sponsorship tiers, with different rewards!

Take a look. See what fits.

Support

Thank You

retroesp32's People

Contributors

32teeth avatar damianesteves avatar eugeneandruszczenko avatar jinlucky avatar mogenson avatar pebri86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

retroesp32's Issues

In Game Menu

In Game Menu

Menu (Start+Select) Should Trigger In Game Menu

Describe the solution you'd like

  • Use User Selected Theme Colors
  • Options
    • Save
    • Load
    • Restart
    • Exit to Launcher
    • Cancel
  • Features
    • Pause Emulator and Present Options (Above)

Supported Emulators

  • Nintendo Entertainment System
  • Nintendo Game Boy
  • Nintendo Game Boy Color
  • Sega Master System
  • Sega Game Gear
  • Colecovision
  • Sinclair Zx Spectrum 48k
  • Atari Lynx

Unsupported Emulators

Do we really need save state?

Frame buffer is way to small to draw onto screen

  • [ ] Atari 2600
  • [ ] Atari 7800

Additional context
This will require an additional 'screen' in game

Explorations

  • Stop Video Queue
  • Present Screen
  • Execute Selection
  • Start Video Queue

Feature - Search

Describe the solution you'd like
A search capability

Additional context
I would like to be able to search for games (maybe with on screen keyboard)

START + SELECT Hotkey Saves, but doesn't exit emulator

Is your feature request related to a problem? Please describe.
START + SELECT now saves the ROM in emulator, but hangs on hourglass screen
Required power up/down to get back to launcher

Describe the solution you'd like
START + SELECT should save ROM and exit back to Menu

Describe alternatives you've considered
N/A

Additional context
N/A

Lynx emulator has poor sound compared to the firmware version of it

Describe the bug
The Lynx emulator that is included with Retro ESP32 has sound glitching that isn't present in the standalone firmware version of it.

To Reproduce
Steps to reproduce the behavior:

  1. Open a game with the Lynx emulator (I'm using California Games).
  2. Listen to the music.
  3. Flash the standalone firmware (https://github.com/pelle7/odroid-go-handy/releases).
  4. Load the same game and compare the sound. It's much better in the standalone release. Is this because Retro ESP32 is using an older build of it?

Expected behavior
The sound from the standalone emulator and the one included in Retro ESP32 should match.

Menu crashes trying to list files in Sega Master System and Sega Game Gear

Describe the bug
When shifting right to view the games in the SMS column, it'll crash trying to load the list of games.

To Reproduce
Place some SMS roms into the correct directory (SMS).
With the SDCard back in the device, try to navigate to view the ROMs available for the Sega Master System.
The menu crashes and starts again.

Expected behavior
Should expect a list of ROMs to appear.

Device:
ODROID GO

Is there a better way to debug this issue?

External DAC support on Odroid Go

The Go Play firmware supports external DACs, allowing the addition of headphone jack without hardware hacking. This option is toggled o/off in Go Play by holding the volume button and pressing the right button while on the main menu, and indicated by the icon next to the volume bars.

AFAIK, this is not supported currently by the Retro ESP32 firmware, which is is unfortunate if you want to use the ODroid in any kind of audio setup. (LSDJ, nanoloop, etc.) It would nice to see if this was supported in some way.

Set Volume Level to 3

Describe the solution you'd like
Currently Volume is Set to MAX,
Please set to 75%

Additional context
Add any other context or screenshots about the feature request here.

External DAC

Please add an external DAC, the ESP32's build in DAC is to crappy to get a good sound out of it.
I would love to see it with external DAC, then I could listen to my mp3's <3

Odd UI Settings screen behavior after selecting color Themes, and then pressing left or right keypad.

It looks like Settings screen gets stuck in Color theme setting mode, after you select "THEMES" option and then press left or right to move along the different console emulation options.

Steps to reproduce the behavior:

  1. Start device, RetroESP32 is launched.
  2. "SETTINGS" screen is displayed - Themes, colored icons, volume and brightness options are displayed - Themes is selected by default.
  3. Select "THEMES" by pressing A button -> List of available colors is displayed.
  4. Press keypad right or left - left takes you to PC Engine console, right to NES console.
  5. Go back to Settings screen, by pressing the keypad in the opposite direction you pressed in step 4.
  6. "SETTINGS" screen is displayed - Themes, colored icons, volume and brightness options are displayed - Themes is selected by default.

From this point, depending on the button pressed, different things can happen:

7.A Press keypad down - List of available colors from "THEMES" option is displayed - you can still see the enable colored icons, volume bar and brightness bar options displayed.
7.B Press A Button - The last default color selected in the available colors list will be set as the current Color theme. The list of available colors will be displayed.

Expected behavior / Proposal:
I think that after entering into the "THEMES" option, having the list of available colors displayed, user should not be able to move between emulation consoles.
Any other button other than UP, DOWN or A, should just cancel the operation and return User to Settings Screen.
Or better yet - pressing keypad up or left, will select next color option up in the list, and pressing down or right, will select next color option down in the list - B would return User to the Settings Screen.

Atari Lynx - Disable In Emulator Game List

Describe the solution you'd like
The Launcher already selects and stores the game and path, no need for second game list menu in Handy-Go

  • Disable In Emulator Game List

Release page links broken

Hello the links inside the release text are broken, both for odroid-go and sd-card skeleton

Links from github work fine, but not inside the text

The brightness indicator disappears when you switch menu pages

Describe the bug
When you first turn on the ODROID GO, there is an indicator at the top right that shows the brightness level. However, moving to another menu makes this indicator disappear in every other menu except Settings. It appears there.

To Reproduce
Steps to reproduce the behavior:

  1. Turn on the ODROID GO from off
  2. Notice the brightness indicator in the top right next to the battery and volume indicators.
  3. Switch menu pages with left and right. The brightness indicator goes away.
  4. If you go into the Settings menu the indicator will reappear, but it disappears again when you switch menus.

Expected behavior
The brightness indicator should stay on-screen the same way that the battery and volume indicators do.

UI/launcher crashes if there are a lot of ROMs

I have hundreds of ROM files on my microSD card and when I navigate to GameBoy Color ROMS launcher is restarted and it goes back to the first list of available ROMS. I have a lot of ROMs because I want to have versions from all regions. This is happening if I am going to the SegaMasterSystem folder (navigating to the left).

Steps to reproduce the behavior:

  1. Copy a lot of ROMs in all ROM folders (I have hundreds of them).
  2. Navigate right to see all available ROMs.
  3. In my case, when going to GameBoyColor ROMs, UI/launcher crashes and goes back to main screen. This is happening even I navigate left to SegaMasterSystem ROMs.
    I am using the release tagged with a3c6d90.

Favorites and/or global game search

I have installed a lot of games for different systems. It would be helpful to be able to flag games as favourites to avoid scrolling to the, all the time and sometimes it is also not clear to what system they are belonging. Maybe an extra section called „Favourites“ conatining all the fav games and system info would solve this.

Another feature: Sometimes I know a title but not if it exists on the odroid-go or not and for which system (some titles exists on more than one system). A global search would be helpful here, too. Entering text should be possible with a virtual keyboard.

Games won't show up for zx-spectrum and c64

Games won't show up for zx-spectrum and c64.

To Reproduce
Steps to reproduce the behavior:

  1. Newest firmware cloned down and installed all the dependencies.
  2. Rom folders spectrum and c64 are available. Drivers are included.
  3. Games are included to the folders.
  4. Retro-ESP32 is flashed and started.
  5. No games in zx-spectrum menu folder. C64 even no menu folder.

Expected behavior
Emulators menu folders should be available on demand. Games should be loaded properly into the folders.

exiting to menu from gbc game crash

Any gbc game I load to play when exiting to menu never exits and the loading light stays on, have to power down go and re-flash the fw to get out of the game.

Brightness Control On Screen

Is your feature request related to a problem? Please describe.
Odroid Go Core software only has 4 levels of brightness control.
10,33,66,100

Describe the solution you'd like
With recent Retro ESP32 firmware updates, the volume setting was added to the on screen experience, please add this for brightness as well

Describe alternatives you've considered
N/A

Additional context
Is it possible to add more than 4 levels of brightness?

Spectrum emulator - controls not working

I can bring up the on screen keyboard but I can't move the highlight. I've tried setting the input to the three different options. The game loads fine and runs fine I just can't interact with it.

LM4875 is NO DAC! Use PCM5102a!

With the LM4875 you will only amplify the crappy sound from the build in DAC. Will sound like shit.

Please use a real DAC like the PCM5102a, with this you dont even need a preamp. Its powerful enough.

Newest release games not saving

Describe the bug
When an NES rom is running, and you try to save, or overwrite a save, the save screen comes up, the progress bar moves across, and the system freezes, save never completes, unit becomes unresponsive, when restarted the game continues from the previous save, but not the save that was just attempted.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Any NES rom'
  2. Click on 'Save or Overwrite Save'
  3. See error

Expected behavior
Unit will freeze, save will not complete

Additional context
Fimware fully updated

UI crashes when loading PC Engine ROM

Describe the bug
When launching PCE / TG16 ROM UI goes dark and restarts after a few seconds.

i'm not sure if this is an actual bug, or a documentation issue, but I do not see any documentation for the PCE emulator. Perhaps I'm doing something wrong?

To Reproduce
roms are stored in folder named PCE and display as expected in the UI menu
Browsing PCE/TG16 roms, select game to run, screen dims and UI resets

Expected behavior
Do not get emulator menu (restart, resume, delete, etc) as I do with other emulators before crash

Additional context
ROMs are in .pce format, not compressed.
running v1.6

Odroid Go Firmware - Rotated Launcher

Describe the bug
Launcher is rotated 90° to the left in Odroid Go version. Also games are rotated and their image is scrambled.

To Reproduce
Running firmware version 20181001 and retro-esp32 version v.1.3.
Odroid-Go Rev. 0.1 20180518

Screenshot
2019-10-29 09 22 42

Additional context
Seems similar to #16.

UI/launcher does not show all the ROMs

UI/launcher does not show all the ROMs in any of the emulators (NES and so on) when it does not crash, I have hundreds of them, it shows 70-80 ROMs

Steps to reproduce the behavior:

  1. Copy a lot of ROMs (for instance, in the NES folder). It does not show all ROMs in any of the emulators.
  2. Navigate down to select a ROM like Mortal Kombat.
  3. UI/launcher only shows a few (70-80 ROMs)

I am using the release tagged with a3c6d90.

[ODROID Go] Show current volume in menu and remember last set volume when starting a ROM

Is your feature request related to a problem? Please describe.
Right now it seems to always launch the game with the volume set as minimum, meaning you need to adjust the volume a few times in order to mute it.

Describe the solution you'd like
Show what the current volume is set to on the menu. And also make sure that when a ROM is launched it is set to the currently selected volume level.

Describe alternatives you've considered
Only alternative right now is to manually adjust the volume by pressing the adjust volume button multiple times in order to mute it as soon as the game starts. I assume this isn't an actual problem with the ESP32 board due to having a physical volume rocker? However on an ODROID Go device it's just a button which sets the volume one of 4 levels (including mute).

Schematics

Hi There,

I love this project, I have a few odroid go's, but this is perfect since I can put this into my broken gameboy shell. I had some boards made from your gerbers and busy collecting the parts. I can't seem to find a schematic or the eagle design files anywhere? Maybe I'm looking past them? I found the eagle lbr and the gerber files, but nothing else. Is the schematic and/or eagle files available ?

Thanks,
Tom

SD Card Issue

Describe the bug
SD Crashing in both GoGo and Go-Play with different errors

To Reproduce
Steps to reproduce the behavior:

  1. Run ota script
  2. Select a game
  3. Hold Select+Start to save and restart
  4. On restart behaviour shows sd card image with exclamation
  5. Multiple SD Cards where tried, same error

Expected behavior

  1. Save State
  2. Restart GoGo Launcher into menu

Additional context

After Reset

Click to Expand

I (411) cpu_start: App cpu up.
I (1301) spiram: SPI SRAM memory test OK
I (1301) heap_init: Initializing. RAM available for dynamic allocation:
I (1302) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (1308) heap_init: At 3FFC7E28 len 000181D8 (96 KiB): DRAM
I (1314) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (1320) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1327) heap_init: At 40091800 len 0000E800 (58 KiB): IRAM
I (1333) cpu_start: Pro cpu start user code
I (1338) spiram: Adding pool of 4096K of external SPI memory to heap allocator
I (17) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (18) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations
odroid start.
odroid_input_gamepad_init done.
app_main: Non deep sleep startup
ili9341_init: line_buffer_put(0x3ffd4ed8)
spi_task: Entered.
ili9341_init: line_buffer_put(0x3ffd5b5c)
LCD: calling ili_init.
LCD: calling backlight_init.
LCD Initialized (40000000 Hz).
ADC: Characterized using eFuse Vref
E (468) spi_master: spi_bus_initialize(242): host already in use
I (468) gpio: GPIO[22]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
E (518) sdmmc_sd: sdmmc_init_sd_if_cond: send_if_cond (1) returned 0x108
E (518) spi_master: spi_bus_free(359): not all CSses freed
==========================
GoGo
==========================
odroid_sdcard_open: esp_vfs_fat_sdmmc_mount failed (264)
==========================
I (528) I2S: DMA Malloc info, datalen=blocksize=2048, dma_buf_count=4
I (538) I2S: PLL_D2: Req RATE: 16000, real rate: 1004.000, BITS: 16, CLKM: 83, BCK: 60, MCLK: 83.333, SCLK: 32128.000000, diva: 64, divb: 21
odroid_settings_RomFilePathGet: value='/sd/roms/gbc/Legend of Zelda, The - Link's Awakening DX (U) (V1.2) (C).gbc'
extension=gbc
resume - extension=gbc, slot=2
I (708) esp_image: segment 0: paddr=0x00400020 vaddr=0x3f400020 size=0x6192c (399660) map
I (948) esp_image: segment 1: paddr=0x00461954 vaddr=0x3ffb0000 size=0x03340 ( 13120)
I (958) esp_image: segment 2: paddr=0x00464c9c vaddr=0x3ffb3340 size=0x00000 (     0)
I (958) esp_image: segment 3: paddr=0x00464ca4 vaddr=0x40080000 size=0x00400 (  1024)
0x40080000: _WindowOverflow4 at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Tools/esp-idf/components/freertos/xtensa_vectors.S:1685

I (978) esp_image: segment 4: paddr=0x004650ac vaddr=0x40080400 size=0x0af64 ( 44900)
I (1008) esp_image: segment 5: paddr=0x00470018 vaddr=0x400d0018 size=0x29a40 (170560) map
0x400d0018: _flash_cache_start at ??:?

I (1108) esp_image: segment 6: paddr=0x00499a60 vaddr=0x4008b364 size=0x06c6c ( 27756)
I (1128) esp_image: segment 7: paddr=0x004a06d4 vaddr=0x400c0000 size=0x00064 (   100)
I (1128) esp_image: segment 8: paddr=0x004a0740 vaddr=0x50000000 size=0x00000 (     0)
I (1138) esp_image: segment 9: paddr=0x004a0748 vaddr=0x50000000 size=0x00000 (     0)
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6464
ho 0 tail 12 room 4
load:0x40078000,len:10180
load:0x40080400,len:6692
entry 0x40080764
I (31) boot: ESP-IDF v3.2-dev-1707-g08db568ba-dirty 2nd stage bootloader
I (31) boot: compile time 07:41:56
I (40) boot: Enabling RNG early entropy source...
I (40) boot: SPI Speed      : 40MHz
I (42) boot: SPI Mode       : DIO
I (46) boot: SPI Flash Size : 16MB
I (50) boot: Partition Table:
I (53) boot: ## Label            Usage          Type ST Offset   Length
I (61) boot:  0 nvs              WiFi data        01 02 00009000 00004000
I (68) boot:  1 otadata          OTA data         01 00 0000d000 00002000
I (76) boot:  2 phy_init         RF data          01 01 0000f000 00001000
I (83) boot:  3 factory          factory app      00 00 00010000 000f0000
I (91) boot:  4 storage          Unknown data     01 82 00100000 00100000
I (98) boot:  5 app_0            OTA app          00 10 00200000 00100000
I (105) boot:  6 app_1            OTA app          00 11 00300000 00100000
I (113) boot:  7 app_2            OTA app          00 12 00400000 00100000
I (121) boot:  8 app_3            OTA app          00 13 00500000 00100000
I (128) boot:  9 data_0           unknown          40 00 00600000 00400000
I (136) boot: End of partition table
I (140) esp_image: segment 0: paddr=0x00400020 vaddr=0x3f400020 size=0x6192c (399660) map
I (289) esp_image: segment 1: paddr=0x00461954 vaddr=0x3ffb0000 size=0x03340 ( 13120) load
I (294) esp_image: segment 2: paddr=0x00464c9c vaddr=0x3ffb3340 size=0x00000 (     0) load
I (296) esp_image: segment 3: paddr=0x00464ca4 vaddr=0x40080000 size=0x00400 (  1024) load
0x40080000: _WindowOverflow4 at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Tools/esp-idf/components/freertos/xtensa_vectors.S:1685

I (305) esp_image: segment 4: paddr=0x004650ac vaddr=0x40080400 size=0x0af64 ( 44900) load
I (332) esp_image: segment 5: paddr=0x00470018 vaddr=0x400d0018 size=0x29a40 (170560) map
0x400d0018: _flash_cache_start at ??:?

I (392) esp_image: segment 6: paddr=0x00499a60 vaddr=0x4008b364 size=0x06c6c ( 27756) load
I (404) esp_image: segment 7: paddr=0x004a06d4 vaddr=0x400c0000 size=0x00064 (   100) load
I (404) esp_image: segment 8: paddr=0x004a0740 vaddr=0x50000000 size=0x00000 (     0) load
I (411) esp_image: segment 9: paddr=0x004a0748 vaddr=0x50000000 size=0x00000 (     0) load
I (430) boot: Loaded app from partition at offset 0x400000
I (430) boot: Disabling RNG early entropy source...
I (432) spiram: Found 64MBit SPI RAM device
I (436) spiram: SPI RAM mode: flash 80m sram 80m
I (442) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (449) cpu_start: Pro cpu up.
I (452) cpu_start: Starting app cpu, entry point is 0x4008140c
0x4008140c: esp_timer_start_periodic at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Tools/esp-idf/components/esp32/esp_timer.c:176

I (444) cpu_start: App cpu up.
I (463) heap_init: Initializing. RAM available for dynamic allocation:
I (470) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (476) heap_init: At 3FFC1738 len 0001E8C8 (122 KiB): DRAM
I (482) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (489) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (495) heap_init: At 40091FD0 len 0000E030 (56 KiB): IRAM
I (501) cpu_start: Pro cpu start user code
I (71) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
gnuboy (20190528-c573693f91).
odroid_input_gamepad_init done.
app_main: Non deep sleep startup
ili9341_init: line_buffer_put(0x3ffc6b78)
spi_task: Entered.
ili9341_init: line_buffer_put(0x3ffc77fc)
LCD: calling ili_init.
LCD: calling backlight_init.
LCD Initialized (40000000 Hz).
odroid_settings_RomFilePathGet: value='/sd/roms/gbc/Legend of Zelda, The - Link's Awakening DX (U) (V1.2) (C).gbc'
loader: Reading from sdcard.
E (958) spi_master: spi_bus_initialize(242): host already in use
I (968) gpio: GPIO[22]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
E (978) sdmmc_io: sdmmc_io_reset: unexpected return: 0x109
E (978) spi_master: spi_bus_free(359): not all CSses freed
==========================
Go Play
==========================
odroid_sdcard_open: esp_vfs_fat_sdmmc_mount failed (265)
==========================
abort() was called at PC 0x400f4693 on core 0

Backtrace: 0x4008f9eb:0x3ffc3820 0x4008fcb9:0x3ffc3840 0x400f4693:0x3ffc3860 0x400f48d3:0x3ffc3880 0x400d3600:0x3ffc38a0 0x400d1a78:0x3ffc3900
0x400d3600: write_partition_table at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Odroid/odroid-go-firmware/main/main.c:357
 (inlined by) flash_firmware at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Odroid/odroid-go-firmware/main/main.c:902

0x400d1a78: esp_intr_alloc_intrstatus at /Users/eugene/Desktop/github/GabozeExpress/Public/Software/Tools/esp-idf/components/esp32/intr_alloc.c:548

System Font - Hard to Read

Feature Request
Feedback from a few users has come in that they would like to see an increase in font legibility

Describe the solution you'd like
There are 2 fonts in the Assets section of the Software Branch

5x7 pixel font

5x7

6x7

Test Font Variants
Create sprite map for above fonts and test for legibility

System Options
If possible, create option for font selection

Crash on first try with sub folders

Just downloaded firmware + skeleton sd card and burned the firmware

On first boot I chose my theme color and then went on NES system at the top.
I was told we could use subfolders in this firmware, so I just copied my setup from a retrogaming distrib for the four main system :

retro32

With this subfolders, no games are displayed for one system, just one system has one game displayed. But Each system contains the whole romset in these subfolders ...
like this :

retro32-nes-action

Anyway nes was saying 'no games found' I clicked A anyway, then something like 'Run' appeared, I clicked A again and the emulator seemed to launch, but I ended up with the white screen and red crossed sd card icon, the one saying ' - Files are not properly written to the SD card, or its contents are corrupted.' (https://wiki.odroid.com/odroid_go/emulator/usage_go_play)

And now I can't do anything, Force exit emulator (menu hold when powering on) does nothing, nor menu, nor reset, seems the firmware is totally stuck

so TLDR :

  • subfolders doesn't to be supported at all
  • when the emulator crashes there doesn't seem to be anyway to go back to menu
  • command run in system with no game when clicking on it

Feature Request: Favorites

Describe the solution you'd like
A new tab for Favorites

Additional context
When i select a game, i would like to have the ability to 'Add to / Remove from' Favorites
This should be enabled through the game submenu

Add ability to page scroll ROMs by first letter

Is your feature request related to a problem? Please describe.
Excessively large ROM sets

Describe the solution you'd like
I really like start/select as pagination for the rom selection, but also perhaps add the ability to hold another key while paginating to skip to the first #xx, Axxx, Bxx, Cxx etc listing. such as holding B since B has no function in these screens

Box Art

Can't find a way to display box art for games. Would be nice to have the box art display as Go-Play does, once a game is selected.

Install and build questions

Hello, I appreciate this project that you're putting together. I'd like to use it to start hacking on my Odroid Go. However, I'm having a couple of problems getting setup and replicating the released Retro ESP32.fw.

First, I noticed after the install that I have some tar balls in my Downloads folder, new ~/Arduino and ~/esp directories, and python utilities for building sphinx documentation in ~/.local/bin. If a copy of the ESP-IDF is contained inside this repo in Tools/esp-idf, why are these other directories needed?

Could the installer be a little more polite and either download resources inside this repo or ask me before peppering files around my hard drive? An uninstall script would also be nice, so I know I haven't lost track of anything.

It looks like the install script also tries to download and bootstrap python pip. Could you check to see if pip is installed and prompt to install system-wide packages before executing a downloaded python file with root privileges?

Also, does this project require python 2, python 3, or a mix of both? The config for some components ask for the name of the python 2 executable but I'm not sure what the install script is trying to install. I believe all python installations should have a python2 or python3 symlink to the interpreter so you can be explicit.

Finally, I appreciate your choice of an interactive shell, but is there a reason why the Bash scripts mentioned in the README are Zsh scripts? It's unusual to make Zsh a dependency for a build script when Bash is everywhere.

I'm still tracking down where my build is failing. The clear commands in the scripts hide any printed errors and the build doesn't stop if one component failed. There's a few variables like $NAME that are unquoted and may be expanding into multiple whitespace separated words.

Scree refresh rate

Hi, I was wondering if it would be possible to improve screen refresh rate for all emulators? Maybe by implementing interlacing, like it is done in some other custom firmware for nes games?

ROM listing is limited to 1024 items

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
    Any game system, fr which you have the "complete rom set"

  2. Click on '....'
    arrows or start/select to page flip

  3. Scroll down to '....'
    the "end"

  4. See error
    Game 1024/1024

Expected behavior
A clear and concise description of what you expected to happen.
I expect the full romset to be listed and not truncated at 1024
nshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: ODROID-GO
  • OS: ESP32
  • Browser: RetroESP32
  • Version: v1.1.0

Lynx black screen

Tried Batman Returns and Stun Runner in the Lynx emulator (RetroESP32 1.9) and both start to black screen. Switch off Odroid Go and back on again and the game displays ok, but screen brightness is at minimum. Menu brightness change option is not available.

Some questions.

Apologies if I missed this but I was wondering about a few things:

  • Will it have some form of menu button, or are we going to have a button combination?

  • Will it support a similar sleep mode to the Odroid GO?

  • What's its estimated battery capacity?

gb/gbc emulator volume doesn't toggle steps, only on/off

gb/gbc emulator volume doesn't toggle steps, only on/off. Volume stepping in main menu works, and volume stepping in nes emulator works, but in gb/gbc games only toggles on and off. Tried sml3, tetris, warioland3 on gb/gbc,

Sound Glitch - When Entering In Game HUD

The sound from the game you are playing is stuck in a glitchy pause type state and sounds bad. Sound should probably be completely stopped when entering the menu screen.

2600 issue

Latest version 1.1.1 (gb palette selector)

Loading any 2600 game goes back to menu and never loads the game.

NES Emulation Issues (Classic Dragon Warrior 4 issue)

I don't have much to say in terms of technical reasons why, but on the Odroid Go certain NES games (in this case Dragon Warrior 4) won't even boot. I'm not sure if this is an issue with the emulator core being used, or if a core can be changed to get around this, or if it's just a limitation of the hardware, or some optimization issues, or what have you (Being into emulators for a long time, I just know some games are always a pain to emulate).

But a friend of mine has always wanted to run this on his Odroid Go and I figured I'd ask. Also curious if this will be an issue on the RetroESP32 hardware as well.

Thanks!

Feature - Only Show Emulators With Files

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
As a user, i tend to have empty directories, and would like an interface like Lakka, that only shows emulators for files which i have on the SD Card

Describe alternatives you've considered
N/A

Additional context
N/A

Ability to Navigate Sub Folders in ROM Directories

Ability to Navigate Sub Folders in ROM Directories

User may have sub folders (Sorted Game Types)

Describe the solution you'd like
As a user, i would like to add sub folders to the rom directory of any system
Example:

  • roms/nes/action,
  • roms/nes/rpg,
  • roms/nes/favorites

Additional context
This will require an additional 'screen' while browsing

Remember last used/selected ROM in Launcher

I would love to be able to go to the last ROM I selected in any of the emulator. Whenever I go to the list I get the first ROM in the list.

Whenever I go from one emulator to the other, Launcher should remember the last used or selected ROM in the list.

Right now I have to manually go to the ROM I want to, which most of the times is not the first one. Using the SELECT/START buttons to quickly navigate helps a bit, but I have to go through a lot of files to get to the one I want (like Mortal Kombat).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.