Coder Social home page Coder Social logo

ROM Won't Load about espeon HOT 12 OPEN

ryuzaki-mrl avatar ryuzaki-mrl commented on May 27, 2024
ROM Won't Load

from espeon.

Comments (12)

Ryuzaki-MrL avatar Ryuzaki-MrL commented on May 27, 2024

Does the "Flashing ROM..." progress bar show up when loading from SD card? If not, then you need to flash the boot_app0, bootloader, and partitions_espeon files.

from espeon.

32teeth avatar 32teeth commented on May 27, 2024

thanks @Ryuzaki-MrL

I have tried

  1. compiling and flashing from arduino source
  2. flashing directly using esptools

both methods produce same results

I never see the message for "Flashing ROM..."

from espeon.

Ryuzaki-MrL avatar Ryuzaki-MrL commented on May 27, 2024

The command should look like this:

esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART --baud 2000000 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x1000 bootloader_0x1000.bin 0xe000 boot_app0_0xe000.bin 0x8000 partitions_espeon_0x8000.bin 0x10000 espeon.ino.m5stack_core_esp32_0x10000.bin

If it still doesn't work, try using M5Burner. You can import the Espeon.zip file into it and have it flash everything.
Right now I don't have my M5Stack at hand.

from espeon.

32teeth avatar 32teeth commented on May 27, 2024

I'm quite familiar with ESP-IDF, the example i posted was adding a rom directly into flash at address 0x110000 as per the provisioned partition csv, as you see in the first pics i have it up and running

the problem may be with the missing bios files

from espeon.

Ryuzaki-MrL avatar Ryuzaki-MrL commented on May 27, 2024

The BIOS is entirely optional, the emulator sets the memory accordingly if it's not present.
The "rom_init failed" only triggers when the "esp_partition" API can't find the ROM partition, that is, when the file "partitions_espeon_0x8000.bin" is not flashed onto address 0x8000. That's why the "Flashing ROM..." screen doesn't show up.
Manually flashing a ROM at 0x110000 will do nothing if the API doesn't know what that address is supposed to be.

from espeon.

32teeth avatar 32teeth commented on May 27, 2024

The command should look like this:

esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART --baud 2000000 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x1000 bootloader_0x1000.bin 0xe000 boot_app0_0xe000.bin 0x8000 partitions_espeon_0x8000.bin 0x10000 espeon.ino.m5stack_core_esp32_0x10000.bin

If it still doesn't work, try using M5Burner. You can import the Espeon.zip file into it and have it flash everything.
Right now I don't have my M5Stack at hand.

espeon.ino.m5stack_core_esp32_0x10000.bin is not in your repo?

from espeon.

Ryuzaki-MrL avatar Ryuzaki-MrL commented on May 27, 2024

I do not commit the executable, but I assume you have compiled it yourself.
I also provide a compiled binary at the releases page, of the last version I was able to test.

from espeon.

haverdude avatar haverdude commented on May 27, 2024

Using the command you supplied above, I can get the precompiled binaries to run, and I can load a ROM and it works (except I have no joypad input because I don't have one of those).

I added support for an IR controller I had laying around and want to try that.

I can compile and program the source from the Arduino IDE, but the code faints when I try to load the same ROM I can play with the pre-compiled binaries.

To create a binary of my own, so I could upload my code in place of the pre-compiled binary, I followed the directions here: https://randomnerdtutorials.com/bin-binary-files-sketch-arduino-ide/ which did, in fact, create a binary from my build.

In the esptool.py command, I substituted this binary, replacing the espeon.ino.m5stack_core_esp32_0x10000.bin precompiled binary. Everything seems to program correctly, I can see the menu, but choosing the same that ROM that ran with the pre-compiled binary does not work, it just drops me back to the menu. I can see it write something to the screen, but it gets overwritten immediately.

Is there anything special in the board setup or anything else you have to do to get this to work? BTW, one of the links in your README.md file - the one that talks about setting up the environment - is dead. Apparently Espressif moved the document you were referring to.

from espeon.

haverdude avatar haverdude commented on May 27, 2024

Update - I don't know what I changed, but this is what happens when I load my code instead of the precompiled binaries,
After uploading, I get the menu, as normal...
image
Choosing the GB file, I get this....
image

from espeon.

Ryuzaki-MrL avatar Ryuzaki-MrL commented on May 27, 2024

That's odd. It's showing a blank gameboy screen, so that means the emulator is running (no error screen was triggered).
There's two possibilities:

  1. The modified code might have broken something on the emulator side.
  2. The ROM is not being properly copied to the correct partition for whatever reason.

Also, I found the docs again: https://docs.m5stack.com/#/en/arduino/arduino_development
Thanks for pointing out, I'll update the README.

from espeon.

haverdude avatar haverdude commented on May 27, 2024

from espeon.

linkov avatar linkov commented on May 27, 2024

Anyone facing this issue, you need to run
esptool.py --chip esp32 --port /dev/cu.usbserial-01B9087E erase_flash

from espeon.

Related Issues (15)

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.