Skip to content

pinyol 0.5.0 — the console's firmware

Choose a tag to compare

@ipaud ipaud released this 23 Oct 10:32

The console's firmware: pinyol 3aff58e, with twenty-one games in its flash and the Cirera menu, so a console with no microSD has something to play.

New since 0.4.0 (27 commits):

  • mesh(): 3D models drawn in C. mesh_new() keeps a model of quads once; mesh() turns, projects, culls, lights and sorts it every frame (an ordering table of 256 slots, like a PlayStation's) and draws the faces as quads, a few hundred a frame instead of a few dozen, outside the 128 slots quad(), grad() and light() share. 48 models a game. camera.snap in views rounds projected points to whole pixels, the PlayStation's vertex wobble. quad() was checked against a real PlayStation cube (PSn00bSDK, IoU 0.99), and its set-up now works out only the attributes it uses.
  • Four new examples built on it, all measured on the board with the sound off: Selva (a 32-bit runner, about 29 fps), Niebla (a fixed-camera horror street, about 30 fps), Recortes (call-and-response rhythm with paper dolls, 30 fps) and Cajas (a one-on-one fight of boxy fighters, 30 fps). They need this firmware: 0.4.0 has no mesh().
  • Pozo (the vector look) takes the place of Rocas in the flash games.
  • Fixes: menuitem(label) and menuitem() took nothing away once the game had an item; pack_game packs strings.csv.

Easiest: install it from the browser. Open https://pinyol.ipaud.dev/consola/#instalar in Chrome or Edge on a computer, plug the board in over USB and press Instalar en la consola.

With esptool, the whole flash in one image:

esptool.py --chip esp32s3 -b 921600 write_flash 0x0 pinyol-console-0.5.0-full.bin

or the five pieces where idf.py flash puts them:

esptool.py --chip esp32s3 -b 921600 write_flash 0x0 bootloader.bin 0x8000 partition-table.bin \
  0xf000 ota_data_initial.bin 0x20000 pinyol_console.bin 0x420000 game.bin

Built from a clean copy of commit 3aff58e with ESP-IDF 5.4.2. The flash image holds the games bolsillo, cinta, duelo, gotico, huevos, oxigeno, paletes, pozo, tormenta, torneo, veloz, costa_relampago, laberinto, ladrillos, museo_nocturno, plataformas, raton_de_biblioteca, selva, niebla, recortes and cajas, and the menu.

Tested on a Freenove FNK0104N (ESP32-S3R8, 16 MB flash): this release's pinyol_console.bin and ota_data_initial.bin were written to it, keeping the board's own bootloader and flash games; it booted and ran at 59.9 fps with about 75 KB of internal RAM free and no error in its log. The four new examples were played from its microSD. The full image itself was not written to a blank board.