pebri86 / esplay-retro-emulation Goto Github PK
View Code? Open in Web Editor NEWRetro Emulation Collection for ESPlay Hardware, an ESP32 based game console
Home Page: https://www.makerfabs.com/esplay-micro.html
License: MIT License
Retro Emulation Collection for ESPlay Hardware, an ESP32 based game console
Home Page: https://www.makerfabs.com/esplay-micro.html
License: MIT License
I've noticed when playing GBC games (Pokemon Gold/Silver) that when using bilinear interpolation upscaling, game is running slower and audio is choppier comparing to "native" resolution or upscaling with "nearest neighbour".
I suppose it's because bilinear interpolation is more complicated algorithm to calculate, so CPU is probably not powerful enough to handle it. However, is there any way how this can be optimised? Using "nearest" upscaling looks pretty bad and "native" resolution is just small to play comfortably. Or maybe using different display with 4x resolution of GBC like (320x288) would be possible? Then upscaling would be simple to do without compromising graphic quality.
Hi, pebri.Do you still update this project?
i tried to load it on a odroid but it shows as invalid firm
I have a new ESPlay micro received this week (red case and button caps). I am trying to update the firmware with the Retro ESP32.fw file. I have copied the file into the firmware folder by windows 10. I place the sd card into the ESPlay Micro and boot to the bootloader screen. I see 3 choices in the bootloader screen
esplay-retro-emu
mp3-player_dac
Retro ESP32
If I select the Retro ESP32 i am greeted by screen that says
01 Retro ESP32
HEADER MATCH ERROR
{START}
{B} Cancel
If I choose start it will attempt to write by continuously report write error and at the conclusion I will be returned to the bootloader menu with the same choices. I can return the device to the original state by selecting the first choice
esplay--retro-emu
And then i am back to square 1.
I have tried the newest Retro ESP32.fw file as well as older versions of the file but all give the same HEADER MISMATCH error.
Hi pebri,
When I use it, I find that some NES games can't run, and they crash and restart repeatedly. After querying the data and checking the code, the mapper of the simulator is incomplete. Is there any way to improve it?
Or add a mapper to the emulator.
Thank You.
./mkrelease.sh: line 27: /home/Peruri/esp/esplay-base-firmware/tools/mkfw/mkfw.exe: No such file or directory
/home/Peruri/esp/esplay-base-firmware/tools/mkfw/mkfw.exe Retro-Emulation assets/tile.raw 0 16 1310720 launcher esplay-launcher/build/RetroLauncher.bin 0 17 524288 esplay-nofrendo esplay-nofrendo/build/esplay-nofrendo.bin 0 18 458752 esplay-gnuboy esplay-gnuboy/build/esplay-gnuboy.bin 0 19 1179648 esplay-smsplusgx esplay-smsplusgx/build/esplay-smsplusgx.bin
where is this file?
edit:
edit mkrelease.sh with correct location for your mkfw.
Find mkfw tool in the base firmware in my repository.
https://github.com/pebri86/esplay-base-firmware/tree/master/tools
I see it here, sorry, I didn't read the documentation thoroughly
ISSUE DESCRIPTION
Some games always on loading state
How to reproduce
Play some some, and found out some rom are in loading state forever.
It always in bootloader interface even i just turn switch on with no press other buttons
/home/davy/Downloads/esplay-retro-emulation-1.5.1-esplay-micro/esplay-launcher/main/main.c:15:22:
fatal error: settings.h: No such file or directory
compilation terminated.
I have esp-idf 3.3 and edited mkrelease.sh to use the proper path for mkfw but my attempts to compile keep being met with this error and I can't seem to find settings.h anywhere in the include path. I've tried releases 1.5.1 and 1.5 with the same error so far.
Am I missing something?
Thanks for the awesome project!
Hi, I recently made this fun project, but I'm running into a problem. The base firmware works fine, but when I select esplay-retro-emu. ESPlay will be black screen, reboot. I wonder if this is caused by the difference in Flash space.
Below is my configuration:
ESP32-WOROVER-E 8MB PSRAM + 8MB Flash
serial message:
...
OK: [3] Length=0x119860
write_partition_table: startTableEntry=4, startFlashAddress=0x050000
Booting application.
ets Jul 29 2019 12:21:46
rst:0xc (SW_CPU_RESET),boot:0x1b (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
...
Hi, pebri.
When I save the NES game ,The game will restart and fail to save. but other simulators can be saved successfully.
I used ESP32-WROVER-IB .
I don't know why.
Hi i have an issue where when i turn off the esplay and back on again it shows empty flashing battery, i have to press menu button then it starts, and has full battery, also when sound is 100% it mutes also screen brightness goes dim at 100 i have to set to 95 this is when using latest esplay. Fw
esp-idf 3.3
/Users/admin/esp/esplay-retro-emulation/retro-esp32/main/main.c:1241:15: error: implicit declaration of function 'set_rom_name_settings' [-Werror=implicit-function-declaration]
set_rom_name_settings(file_to_load);
/home/gm/esplay-retro-emulation/esplay-launcher/components/acodecs/src/xmplite/loaders/xm_load.c: In function 'xm_load': /home/gm/esplay-retro-emulation/esplay-launcher/components/acodecs/src/xmplite/loaders/xm_load.c:645:38: error: 'snprintf' output truncated before the last format character [-Werror=format-truncation=] snprintf(tracker_name, 20, "%-20.20s", xfh.tracker); ^ /home/gm/esplay-retro-emulation/esplay-launcher/components/acodecs/src/xmplite/loaders/xm_load.c:645:2: note: 'snprintf' output 21 bytes into a destination of size 20 snprintf(tracker_name, 20, "%-20.20s", xfh.tracker); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[1]: *** [/home/gm/esp/esp-idf/make/component_wrapper.mk:298: src/xmplite/loaders/xm_load.o] Error 1 make: *** [/home/gm/esp/esp-idf/make/project.mk:649: component-acodecs-build] Error 2 make: *** Waiting for unfinished jobs....
When I manually compile esplay launcher, the above error will appear. Other things are compiled normally.
I use idf4.4.1. I don't know why this error occurs
I can't compile others, for example, gnuboy lacks display h. Nofrendo is missing settings h
/home/username/esp32/esplay-retro-emulation-master/esplay-nofrendo/main/main.c:21:22: fatal error: settings.h: No such file or directory
#include "settings.h"
^
compilation terminated.
all the emulator builds fail due to this
/home/username/esp32/esplay-retro-emulation-master/esplay-launcher/main/include/event.h:4:21: fatal error: gamepad.h: No such file or directory
#include <gamepad.h>
gamepad.h also missing
edit: I was able to find what might be the correct headers in esplay-sdk but I can't figure out how to modify the mkrelease.sh to incorporate them
I'm sorry to raise the problem again. I successfully compiled the firmware, but bootloader will display 'data long error' when it is flashed in. How can I solve it? Thank you very much!
I DIY an Esplay Micro compatible device using ESP32 WROVER, flashed esplay base firmware to it, and then successfully flashed "esplay-retro-emu.fw" from SD Card. However once it rebooted into Esplay Retro main interface, it could not find the *.nes games under the \roms\nes folder, always showed "0 games available", do you know what's the issue? Based on my understanding, the base firmware could read and flashed "esplay-retro-emu.fw" file from SD Card, it means the SD Card had been detected successfully. I have made sure the folders on SD Card were unzip from your "skeleton.zip" file.
I'm enjoying my ESPlay but have noticed that any Coleco Rom I try to load up crashes the system. Basically it throws a loading loop. The only way for me to get out of the loop is to reset the board with the Menu button on startup. All the ROMS I've tried work with my OpenEmu (Mac) and are in .col format.
NES, Gameboy, Gameboy Color, and Game Gear all run great. SMS is a little slow, especially with Sonic the Hedgehog. I finally picked up a speaker and finished printing a case for it.
Now if I could get Coleco running, everything would be peachy. Any thoughts?
This is a great project. but I am a new esp32 learner.Can you guide me how to configure the project?
I have git checkout esp-idf branch to release/v3.3, and install ffmpeg. when I run ./mkrelease.sh, I have to restart config the project. The following is print out:
GENCONFIG
*
Use time/date stamp for app (APP_COMPILE_TIME_DATE) [Y/n/?] y
Exclude PROJECT_VER from firmware image (APP_EXCLUDE_PROJECT_VER_VAR) [N/y/?] n
Exclude PROJECT_NAME from firmware image (APP_EXCLUDE_PROJECT_NAME_VAR) [N/y/?] n
The length of APP ELF SHA is stored in RAM(chars) (APP_RETRIEVE_LEN_ELF_SHA) [16] (NEW)
*
ESP BLE Mesh Support (BLE_MESH) [N/y/?] (NEW)n
Initialize SPI RAM when booting the ESP32 (SPIRAM_BOOT_INIT) [Y/n/?] y
Ignore PSRAM when not found (SPIRAM_IGNORE_NOTFOUND) [Y/n/?] y
SPI RAM access method
- Integrate RAM into ESP32 memory map (SPIRAM_USE_MEMMAP)
- Auto-detect (SPIRAM_TYPE_AUTO)
- 80MHz clock speed (SPIRAM_SPEED_80M)
choice[1-2?]: 2
Run memory test on SPI RAM initialization (SPIRAM_MEMTEST) [Y/n/?] y
Enable workaround for bug in SPI RAM cache for Rev1 ESP32s (SPIRAM_CACHE_WORKAROUND) [Y/n/?] y
Enable bank switching for >4MiB external RAM (SPIRAM_BANKSWITCH_ENABLE) [Y/n/?] y
Amount of 32K pages to reserve for bank switching (SPIRAM_BANKSWITCH_RESERVE) [8] 8
Allow .bss segment placed in external memory (SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY) [N/y/?] n
SPI host to use for 32MBit PSRAM
- VSPI host (SPI3) (SPIRAM_OCCUPY_VSPI_HOST)
Max number of WiFi static RX buffers (ESP32_WIFI_STATIC_RX_BUFFER_NUM) [10] 10
Max number of WiFi dynamic RX buffers (ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM) [32] 32
Type of WiFi TX buffers
- Static (ESP32_WIFI_STATIC_TX_BUFFER)
- Core 0 (ESP32_WIFI_TASK_PINNED_TO_CORE_0)
Enable copy between Layer2 and Layer3 packets (L2_TO_L3_COPY) [N/y/?] n
Support receiving and sending ethernet packets with VLAN header (ETHARP_SUPPORT_VLAN) [N/y/?] (NEW)n
Enable LWIP IRAM optimization (LWIP_IRAM_OPTIMIZATION) [N/y/?] n
Max number of open sockets (LWIP_MAX_SOCKETS) [4] 4
Randomize the local port for the first (LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS) [Y/n/?] (NEW) y
Support LWIP socket select() only (USE_ONLY_LWIP_SELECT) [N/y/?] n
Enable SO_REUSEADDR option (LWIP_SO_REUSE) [N/y/?] n
Enable SO_RCVBUF option (LWIP_SO_RCVBUF) [N/y/?] n
Enable fragment outgoing IP packets (LWIP_IP_FRAG) [N/y/?] n
Enable reassembly incoming fragmented IP packets (LWIP_IP_REASSEMBLY) [N/y/?] n
Enable LWIP statistics (LWIP_STATS) [N/y/?] n
Enable LWIP ARP trust (LWIP_ETHARP_TRUST_IP_MAC) [N/y/?] n
Send gratuitous ARP periodically (ESP_GRATUITOUS_ARP) [Y/n/?] y
GARP timer interval(seconds) (GARP_TMR_INTERVAL) [60] 60
TCPIP task receive mail box size (TCPIP_RECVMBOX_SIZE) [32] 32
DHCP: Perform ARP check on any offered address (LWIP_DHCP_DOES_ARP_CHECK) [Y/n/?] y
DHCP: Restore last IP obtained from DHCP server (LWIP_DHCP_RESTORE_LAST_IP) [N/y/?] n
Enable IPV6 stateless address autoconfiguration (LWIP_IPV6_AUTOCONFIG) [N/y/?] (NEW) n
TCP/IP Task Stack Size (TCPIP_TASK_STACK_SIZE) [2560] 2560
TCP/IP task affinity
- No affinity (TCPIP_TASK_AFFINITY_NO_AFFINITY)
Finally,not build anything, just jump to Restart config...
Hello,
I see that you have 2 modes to load the ROM... one directly from an sdcard file to PSRAM, and the other is directly flashing a partition. (gnuboy)
I don't know if you a using PSRAM elsewhere, but for the case where you load from a partition, do you now that you can avoid to copy to PSRAM and directly mmap the partition? look at esp_partition_mmap() function. Of course, the address will be read-only.
cheers
ISSUE DESCRIPTION
Cannot back to home when accessing Empty ROM Folder
How to Reproduce
Empty one of rom emulator folder and access them, then back button (B) not functioning.
/Users/admin/esplay-retro-emulation/retro-esp32/main/includes/core.h:44:22: fatal error: settings.h: No such file or directory
#include "settings.h"
^
compilation terminated.
make[1]: *** [main.o] Error 1
make: *** [component-main-build] Error 2
hi pebri,
id like to ask if it is possible somehow to upload eugenes retro esp32 v.2.5 firmware to original micro hardware?
thanks :)
I know that there was a module name fabgl can realize the goal.
I found the other device was out via vga.
I want to play Atari games on the ESPlay. How can I swap out one of the other emulators for Stella?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.