Skip to content

Releases: ipaud/pinyol

pinyol 0.4.0 — the console's firmware

Choose a tag to compare

@ipaud ipaud released this 22 Oct 16:11

The console's firmware: pinyol d1f8178, with the same seventeen games in its flash as 0.3.0 and the Cirera menu, so a console with no microSD has something to play.

New since 0.3.0 (71 commits):

  • The radio has room again. In 0.3.0 a game began with 19 KB of internal RAM free and the radio needs 27, so link play could not come on. A game now begins with about 70 KB free.
  • More memory for big games. Lua's small objects come from chunks instead of twelve thousand blocks of the heap; pictures are let go one at a time, and a picture that finds no memory is asked for again instead of staying missing; a canvas finds its block the same way. IL·LUSTRES, with two 600 KB sheets a fight, no longer loses a fighter on the console. tools/pk_split.py cuts a big sheet into pieces that fit.
  • Faster. The code and its constants run from PSRAM, at the cost of 1.7 MB of it, and the data cache is 32 KB: the world takes 10-30 % less, saving to the flash no longer stops the game, and a game runs with about 70 KB of internal RAM free instead of 40.
  • The menu lists up to 128 games, not 64 (a game past the 64th could not be launched), and every Lua game gets its settings, colour filter, favourites, achievements and a crash screen with a QR code.
  • New in the engine: XM and S3M modules, WAV markers, a blue-noise dissolve, an FM wave, voxel landscapes, a palette lit by a lamp, lockstep play and rollback netcode over the radio link, FamiStudio songs, sound buses with ducking and a voice library, actors and solids that move like Celeste's (move), autotile, buttons the player can remap, a pen and several fingers (pen(), touches()), .aseprite and LDtk importers, and a field of view and line of sight on grids.

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.4.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 d1f8178 with ESP-IDF 5.4.2, the way CI builds it; CI checks that the statics leave at least 80 000 bytes of internal RAM (84 870 here). The partition table and the OTA data are byte for byte those of 0.3.0, the flash image holds the same seventeen games and the menu, and the full image is the five pieces at their offsets.

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, and the console booted "firmware d1f8178 in ota_0", listed the games of its microSD and ran the menu at 59.9 fps with the amplifier on and no error in its log. The full image itself was not written to a blank board.

pinyol libretro core

Choose a tag to compare

@github-actions github-actions released this 15 Oct 16:31

The libretro core of 3469d49, for RetroArch and RetroPie on Linux: armhf (32-bit ARM, Raspberry Pi 2 and up), arm64 and x86_64. Each zip holds the core, its .info, LICENSE and THIRD_PARTY_NOTICES.md. How to install it: https://github.com/ipaud/pinyol/blob/main/docs/libretro.md

Cirera for Mac, Windows and Linux

Choose a tag to compare

@github-actions github-actions released this 16 Oct 07:28

Cirera for Mac, Windows and Linux: the console on your computer, with its menu and Pinyol's examples, from 48d005d. Cirera-mac.zip: macOS 11 and up, Apple Silicon and Intel. Cirera-windows.zip: Windows 10 and up, 64-bit. Cirera-linux-x86_64.tar.gz and Cirera-linux-aarch64.tar.gz: Linux with glibc 2.35 and up (Ubuntu 22.04, Debian 12, a Raspberry Pi's 64-bit system...); installing a dropped game needs unzip. Drop any game's .zip on its window to install it. Not signed by Apple or Microsoft yet: how to open it the first time is on https://pinyol.ipaud.dev/consola/#escritorio . Each holds LICENSE and THIRD_PARTY_NOTICES.md.

pinyol 0.3.0 — the console's firmware

Choose a tag to compare

@ipaud ipaud released this 20 Oct 16:48

The console's firmware: pinyol 0a6687c, with seventeen games in its flash (the twelve looks' examples and the five games Codex made from one request each) and the Cirera menu, so a console with no microSD has something to play.

New since 0.2.0 (154 commits):

  • Smoother on the console. The panel's refresh is timed at start-up and set to 60.00 Hz (it ran at 61.14 on the first board, against the game's 60), and the game loop ticks with the panel's scans: the 24 ms jolts every second are gone. Lua runs twice as fast (the sandbox's guard against endless loops is now counted by the VM itself, not by a hook on every instruction), and its garbage is collected in generational mode, so a game that makes tables every frame no longer drops frames on a collection. A save no longer stalls the picture.
  • Every game opens with the careta, POWERED BY PINYOL.
  • New in the engine: a palette replaced line by line (line_pal, line_ramp), line_fx, the wall clock (clock(), set on the console whenever a game is sent over the cable), physics bodies the game drives (flippers, doors), instruments, sends and delay on sounds and the GBA's PSG options on tone, songs as MIDI with ADPCM samples, ADPCM music streams, lights, warp and linetint, perspective quads, cut-out animation (rig), particles and transitions, and saves with a checksum that never replace the last good one with a broken one.
  • Blocks: a platformer made in the editor whose player falls off the map now loses instead of stopping on an error.

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.3.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

Tested on a Freenove FNK0104N (ESP32-S3R8, 16 MB flash): the full image flashed in 104 s at 921600 baud and the console booted "firmware 0a6687c in ota_0", set its panel's rate and ran the Cirera menu at 60 fps with no error in its log; with no microSD, the menu listed the flash games and a game opened with its careta. Games on a microSD (games/<id>/, or any game's zip from the site unzipped there) are listed too.

pinyol 0.2.0 — the console's firmware

Choose a tag to compare

@ipaud ipaud released this 16 Oct 07:13

The console's firmware: pinyol a2b1506, with seventeen games in its flash (the twelve looks' examples and the five games Codex made from one request each) and the Cirera menu, so a console with no microSD has something to play.

New since 0.1.0: the console's menu is a pinyol game, Cirera (the logo's intro, the games' covers); the studio, a step sequencer in the audio with synth tracks and effects; saves that never freeze a game; HD sprites; the bag turns pages and the notebook keeps 64 entries; MENU reaches Lua games as MENU; the audio steals the voice closest to its end; and the console shows its commit.

Easiest: install it from the browser. Open https://ipaud.github.io/pinyol/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.2.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

Tested on a Freenove FNK0104N (ESP32-S3R8, 16 MB flash) with no microSD: the five pieces flashed in 102 s at 921600 baud, the console booted "firmware a2b1506 in ota_0", listed the seventeen flash games and ran the Cirera menu at 60 fps. Games on a microSD (games/<id>/, or any game's zip from the site unzipped there) are listed too.

pinyol 0.1.0 — the console's firmware

Choose a tag to compare

@ipaud ipaud released this 14 Oct 20:46

The console's first public firmware: pinyol 82e1a96, with fifteen games in its flash (the twelve looks' examples and the three games Codex made from one sentence each), so a console with no microSD has something to play.

Easiest: install it from the browser. Open https://ipaud.github.io/pinyol/#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.1.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

Tested on a Freenove FNK0104N (ESP32-S3R8, 16 MB flash): the five pieces flashed in 88 s at 921600 baud, the console booted "firmware 82e1a96 in ota_0" and listed the fifteen flash games next to the microSD's. Games on a microSD (games/<id>/, or any example zip from the site unzipped there) are listed too.