Skip to content

Port of Octo (a CHIP-8 emulator) to ESP32-2432S024C with capacitive touch.

License

Notifications You must be signed in to change notification settings

codekulturbonn/espocto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP-Octo

Port of the wonderful Octo (just the emulator, not the complete IDE) by John Earnest to ESP32-2432S024C with capacitive touch.

The UI is self-contained. The 320x240 pixel display shows the classic CHIP-8 hex display, extended by four buttons to browse games from the CHIP-8 archive ("<", ">", "G") or switch to the built-in monitor and disassembler ("M").

The goal is to create a cheap, self-contained gadget that allows to examine and write fun games completely without a connected computer.

Play games (simulator)

WDL game (device)

Learn to code (simulator)

There are versions for small ESP32-based boards as well as a simulator for desktop PCs (currently tested on Linux; should work on macOS).

Checkout

Use "git clone --recursive" to get the required submodules.

Touch

The touch interface is a CST820, connected with I2C. This is not supported by LovyanGFX. The board file specifies a CST816S, connected with SPI. I couldn't get this to work. Instead, I use files CST820.{cpp,hpp} from https://github.com/NoosaHydro/2.4inch_ESP32-2432S024.git

Games

There are ~100 games from the CHIP-8 archive in "vendor/chip8Archive/roms". Put them in an SDcard in directory "/chip8". Also, put file "chip8.txt" in the root directory of this SDcard. This file is created from "chip8Archive/programs.json" with a small Python script.

The Board

The ESP32-2432S024C is one of the Sunton branded yellow ESP32 boards with a display. It is an even smaller and cheaper sibbling to the _Cheap Yellow Display. I have attached a rechargable battery (3,7V 3000mAh LiPo Akku - affiliate link) and a small speaker (Adafruit Mini-Lautsprecher, oval, 8 Ohm, 1 Watt (3923) - affiliate link) to their respective JST 1.25 connectors.

Here are some pictures:

Front, left

Back

Back, left

Back, right

Obviously, the assembly needs to get a 3d-printed case.

Accessories

The Nunchuk controller for the Wii connects via I2C. This makes it easy, with a small adapter, to support these as game controller.

Adapter by thingm - Clone - affiliate link

Wii Nunchuk - Clone - affiliate link

Wii Controller

2024-02-18:

Sadly, I could not get neither of my Nunchuks to work with the example code.

Also sad: Including ESP Async WebServer leads to "DRAM segment data does not fit. Region `dram0_0_seg' overflowed by 11768 bytes". It seams it won't be possible to have a webserver in addition to the emulator.

It helps to dynamically allocate the emulator.

About

Port of Octo (a CHIP-8 emulator) to ESP32-2432S024C with capacitive touch.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published