{"games":[{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"},{"action":"Add score / beep","input":"A"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Asteroids","version":"1.0.0"},"id":"it.uniparthenope.asteroids","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"RISC-V assembly and C versions of an Asteroids-inspired PRG32 demo: moves a small ship around a 320x200 viewport while a blocky asteroid drifts across the screen.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.asteroids","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"An Asteroids-inspired PRG32 demo.","tags":["arcade","asteroids","space","retro","riscv","gaming"],"title":"Asteroids","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"An Asteroids-inspired PRG32 demo.","tags":["arcade","asteroids","space","retro","riscv","gaming"],"title":"Asteroids","updated_at":"2026-09-12T01:11:50Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.asteroids/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"1467f496fe535a42352fb80ad796c31a02d68a034daf7caaf86869ddefb28fff","size":4903,"updated_at":"2026-09-12T01:11:50Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.asteroids/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"81dbc16b0c255d8dfa29288194a17ebdd9bacfe1ebbd58225a50d7e580c54741","size":4901,"updated_at":"2026-09-12T01:11:50Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Toggle play","input":"A"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Audio Pan Test","version":"1.0.0"},"id":"it.uniparthenope.audiotest","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A simple PRG32 cartridge to test audio panning. You can see the visual representation of sound waves moving left to right.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.audiotest","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"Audio test for panning capabilities","tags":["audio","test","demo"],"title":"Audio Pan Test","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Audio test for panning capabilities","tags":["audio","test","demo"],"title":"Audio Pan Test","updated_at":"2026-09-12T01:11:43Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.audiotest/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"5bd645f13d60de8ba2bea3d99e39b0bcf1a173170a21c129c70d219c95a43584","size":5300,"updated_at":"2026-09-12T01:11:43Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.audiotest/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"38083f58baaab2e0ccfa1cece890f3fe1108e78e483254af56b783dbac08f127","size":5298,"updated_at":"2026-09-12T01:11:43Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Restart","input":"A"},{"action":"Release","input":"B"},{"action":"Adjust Width","input":"Left/Right"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Bach / BWV 846","version":"1.0.0"},"id":"it.uniparthenope.bachdemo","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A PRG32 audio demo playing Bach / BWV 846 as an 8-voice SID-like prelude. Supports both stereo and mono fold-down.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.bachdemo","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"8-voice SID-like prelude","tags":["audio","music","demo","bach"],"title":"Bach / BWV 846","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"8-voice SID-like prelude","tags":["audio","music","demo","bach"],"title":"Bach / BWV 846","updated_at":"2026-09-12T01:11:39Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.bachdemo/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"3a5673441de975cc04e4684bc8d10f49a6a9d45a7306b25069d50313e7fc0a04","size":17584,"updated_at":"2026-09-12T01:11:39Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.bachdemo/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"3620b2652d679d9325b3bfb3c37e8ddfccf329951e7bab50cfbe2789a6aefef0","size":17582,"updated_at":"2026-09-12T01:11:39Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Play / Deal / Hit","input":"A"},{"action":"Rules / Stand","input":"B"},{"action":"Double","input":"Up"},{"action":"Split","input":"Down"},{"action":"Surrender","input":"Left"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Blackjack Casino Edition","version":"1.0.0"},"id":"it.uniparthenope.blackjack","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A fully featured PRG32 blackjack casino game featuring Solo, Hot-Seat (2-4P), and Network Table modes.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.blackjack","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"Casino edition of Blackjack","tags":["card","casino","blackjack","game"],"title":"Blackjack Casino Edition","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Casino edition of Blackjack","tags":["card","casino","blackjack","game"],"title":"Blackjack Casino Edition","updated_at":"2026-09-12T01:11:37Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.blackjack/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"fe86014b7e408e1e7e52064cbb491e300a732d1121fce98f900ee3d66a9265b1","size":15387,"updated_at":"2026-09-12T01:11:37Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.blackjack/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"32cc586b98ba84473a09069ffb5aa5cd70f76bc086165e6a5003162527b21377","size":15385,"updated_at":"2026-09-12T01:11:37Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move paddle","input":"D-Pad Left/Right"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Breakout","version":"1.0.0"},"id":"it.uniparthenope.breakout","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A demo game containing RISC-V assembly and C versions. Uses the 320x200 graphics API tuned for ILI9341.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.breakout","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A Breakout demo game.","tags":["arcade","breakout","retro","riscv","gaming"],"title":"Breakout","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A Breakout demo game.","tags":["arcade","breakout","retro","riscv","gaming"],"title":"Breakout","updated_at":"2026-09-12T01:11:48Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.breakout/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"c5a1ef241ae4f567cf7234b7e06c72c2d57bb743ee454f6401b2e79639e857b5","size":4893,"updated_at":"2026-09-12T01:11:48Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.breakout/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"665f39bd4f6bd237e58b28c206e9323e53f3c3ce4f1399f4021185460dc6598c","size":4891,"updated_at":"2026-09-12T01:11:48Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"Left/Right"},{"action":"Rotate","input":"A"},{"action":"Hold","input":"B"},{"action":"Start / Pause","input":"Select"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Debris","version":"1.0.0"},"id":"it.uniparthenope.debris","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A Tetris-like multi level block game with a unique art style.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.debris","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A multi level block game","tags":["puzzle","arcade","blocks","game"],"title":"Debris","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A multi level block game","tags":["puzzle","arcade","blocks","game"],"title":"Debris","updated_at":"2026-09-12T01:11:34Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.debris/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"f1b667a84576bd4b9daba0381ffbb31026edeb047a98f4294aea93dd6276319c","size":9867,"updated_at":"2026-09-12T01:11:34Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.debris/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"9e9efa39b4a9ecbf32c795f228856bb818ef753ffb56d0f574f0766221e73067","size":9865,"updated_at":"2026-09-12T01:11:34Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Next Page","input":"Select / B"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Device Demo","version":"1.0.0"},"id":"it.uniparthenope.devicedemo","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"An interactive showcase implementing 13 distinct pages of games and technical implementations. It cycles through architectural checklists, dual-playfield scrolling, fixed-point raycasting, a curved pseudo-3D road renderer, and various classic arcade inspirations (Pong, Breakout, Space Invaders, Pac-Man, Tetris, Asteroids, and Wing Commander) to stress test and validate every feature of the PRG32 platform API.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.devicedemo","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A comprehensive feature testing suite for the PRG32 cartridge.","tags":["demo","benchmark","raycaster","retro","riscv","arcade","hardware-test"],"title":"Device Demo","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A comprehensive feature testing suite for the PRG32 cartridge.","tags":["demo","benchmark","raycaster","retro","riscv","arcade","hardware-test"],"title":"Device Demo","updated_at":"2026-09-12T01:11:45Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.devicedemo/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"8898641847084d84704b9f88114cd588c7aae41639744355b78dd89feebe4a2d","size":11200,"updated_at":"2026-09-12T01:11:45Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.devicedemo/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"5d94f0985d241cd0981e4447d178f4f7a0933cdc9e497ee49ecda152af9d58d8","size":11198,"updated_at":"2026-09-12T01:11:45Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[],"colophon":null,"id":"org.riscv-prg32.dukesofduchesca-napoli97","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[],"description":"","homepage":"","id":"org.riscv-prg32.dukesofduchesca-napoli97","license":"","repository":"","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32I","platform":"PRG32","target":"esp32c3"},"summary":"Top-down car-chase homage to The Dukes of Hazzard, set in Napoli in 1997.","tags":[],"title":"DukesOfDuchesca-napoli97","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Top-down car-chase homage to The Dukes of Hazzard, set in Napoli in 1997.","tags":[],"title":"DukesOfDuchesca-napoli97","updated_at":"2026-09-22T08:29:25Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.riscv-prg32.dukesofduchesca-napoli97/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4171047e36113735b5c97b9a7dd84a23e3d9764e6611ce206e4d63f3e098e5d0","size":19344,"updated_at":"2026-09-22T08:29:25Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.riscv-prg32.dukesofduchesca-napoli97/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"de79356b6e28eeef3601e653de8065ef2fdc92e40f108303529358d5effc6d5b","size":19342,"updated_at":"2026-09-22T08:29:25Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[{"name":"Raffaele Montella","role":"Concept and direction"},{"name":"OpenAI Codex","role":"Implementation and original pixel graphics"},{"name":"OpenAI Image Generation","role":"Bay panorama concept generation"}],"controls":[{"action":"Helm to port or starboard","input":"Left/Right"},{"action":"Ease or trim the sheets","input":"Up/Down"},{"action":"Hoist or drop the spinnaker; confirm in menus","input":"A"},{"action":"Hoist or drop the gennaker","input":"B"},{"action":"Take a penalty turn","input":"A+B"}],"developer":{"name":"Raffaele Montella"},"legal":"Fictional fan work. Il Moro di Venezia V is used only as a historical visual reference; no real sponsor marks or exact livery are reproduced. No affiliation with America's Cup Event Authority or any real syndicate. America's Cup is referenced descriptively.","license":"MIT","subtitle":"","technology":["PRG32 portable cartridge within the 64 KiB execution-RAM profile","PRG32 four-player multiplayer snapshots","fixed-point perspective renderer with a stern chase camera and camera-space clipping","procedural 12-Metre hulls, trimmed sails, spinnaker and gennaker","ORC 12mR polars with sail-plan, trim and momentum models","deterministic oscillating wind shifts shared by every console","tactical AI: timed starts, VMG, shift and layline tacking, give-way manoeuvres","automatic top view in close quarters and a race-field map","row-compressed 8-bit indexed Bay landscapes","basic World Sailing rules and penalty turns","three race paths and an 8-voice stereo score"],"title":"FairWind-napoli97","version":"4.0.0"},"id":"org.riscv-prg32.fairwind-napoli97","latest_version":"4.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"},"screenshot":{"block":"SCRN","mime":"image/png","optional":true}},"authors":[{"name":"Raffaele Montella"}],"cartridge_profile":"portable-64k","colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"content_rating":"Everyone","controls":"D-pad helm and sheets; A spinnaker, B gennaker, A+B penalty turn","description":"A fictional Naples 1997 12-Metre campaign sailed from a stern chase view with perspective, a Bay of Naples horizon and a shore you cannot sail onto. Trim the sheets, set spinnaker or gennaker, play oscillating SW wind shifts and race tactical AI rivals or up to three friends under basic racing rules, with an automatic top view at marks and in close quarters.","developer":{"name":"Raffaele Montella"},"features":["portable","multiplayer","audio-plus","stern-chase-view","perspective-3d","procedural-yachts","close-quarters-top-view","race-field-minimap","shore-boundaries","late-90s-bay-panoramas","il-moro-inspired-yachts","prevailing-sw-breeze","wind-shifts","orc-polar-model","sail-trim","spinnaker","gennaker","momentum-physics","tactical-ai","simulated-time","race-start-signals","selectable-courses","next-mark-highlight","committee-boat-finish","basic-rrs-rules","penalty-turns"],"fiction_notice":"All teams, sponsors, and the Naples 1997 event depicted here are fictional. Il Moro di Venezia V is used only as a historical visual reference; no real sponsor marks are reproduced.","genre":["sports","strategy","management","simulation"],"homepage":"","id":"org.riscv-prg32.fairwind-napoli97","language":"en","license":"MIT","multiplayer":true,"name":"FairWind-napoli97","players":{"max":4,"min":1},"repository":"","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32IMAC","platform":"PRG32","target":"esp32c3"},"summary":"Manage and helm a fictional 1997 12-Metre syndicate in the Bay of Naples.","tags":["game","sports","strategy","management","simulation","multiplayer"],"title":"FairWind-napoli97","version":"4.0.0","year":2026},"publisher":"admin","selected_version":"4.0.0","summary":"Manage and helm a fictional 1997 12-Metre syndicate in the Bay of Naples.","tags":["game","sports","strategy","management","simulation","multiplayer"],"title":"FairWind-napoli97","updated_at":"2026-09-24T20:36:40Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.riscv-prg32.fairwind-napoli97/4.0.0/esp32c6.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"53719339ccdaa5775cbf3544fc77e4cf46739d61902023630376dc9a537bb2d5","size":54238,"updated_at":"2026-09-24T20:36:40Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.riscv-prg32.fairwind-napoli97/4.0.0/qemu.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"ed870dc3f1bc1f65bf788d8e5cdbd29889b8257ffa8a8207d01e5fd00e1b1c03","size":54236,"updated_at":"2026-09-24T20:36:40Z"}},"versions":["4.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Frogger","version":"1.0.0"},"id":"it.uniparthenope.frogger","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Help the frog cross the road and the river without getting hit by cars or drowning.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.frogger","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A classic Frogger clone","tags":["arcade","classic","retro","frogger","game"],"title":"Frogger","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A classic Frogger clone","tags":["arcade","classic","retro","frogger","game"],"title":"Frogger","updated_at":"2026-09-12T01:11:32Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.frogger/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"5eb73b4d385d243cfa28ed03e7468cc49cd70ed650f0e9121318085d0eab6a81","size":7103,"updated_at":"2026-09-12T01:11:32Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.frogger/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"93c04e0443876bcac5814bc355a2bef25dad4ce5252aabc91f66a0128582bdbe","size":7101,"updated_at":"2026-09-12T01:11:32Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"simone.boscaglia@gmail.com","name":"Simone Boscaglia"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[],"developer":{"name":"Simone Boscaglia"},"subtitle":"","title":"Input Tester","version":"1.0.0"},"id":"org.uniparthenope.prg32.inputtester","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"simone.boscaglia@gmail.com","name":"Simone Boscaglia"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"RISC-V assembly and C versions of an Asteroids-inspired PRG32 demo: moves a small ship around a 320x200 viewport while a blocky asteroid drifts across the screen.","homepage":"https://github.com/riscv-prg32/PRG32","id":"org.uniparthenope.prg32.inputtester","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"Cartridge for testing input and audio functionalities.","tags":["utility","test","input","riscv","prg32"],"title":"Input Tester","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Cartridge for testing input and audio functionalities.","tags":["utility","test","input","riscv","prg32"],"title":"Input Tester","updated_at":"2026-09-12T01:11:24Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.uniparthenope.prg32.inputtester/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"8327ffe0dd03d8274a3ed389246f64a528c82f6b37da71a30053ed2bed8b4f0b","size":8117,"updated_at":"2026-09-12T01:11:24Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.uniparthenope.prg32.inputtester/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"c5eb92677b8a00e5912fc8eec43e084147240c48cbc7465cc11a15b8b98e0d2a","size":8115,"updated_at":"2026-09-12T01:11:24Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"},{"action":"Throw lemon","input":"A"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Moana and the Lemon Apocalypse","version":"1.0.0"},"id":"it.uniparthenope.moana_lemon_c","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Moana gathers lemons before they expire, races chickens, throws basket lemons at the rooster, and escapes through a border door when each screen quota is complete.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.moana_lemon_c","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A tiny arcade chase game","tags":["arcade","chase","action","game"],"title":"Moana and the Lemon Apocalypse","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A tiny arcade chase game","tags":["arcade","chase","action","game"],"title":"Moana and the Lemon Apocalypse","updated_at":"2026-09-12T01:11:27Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.moana_lemon_c/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"9367ebaf65c9c99c700ada4b5e5b66bbaf2a02e72206ebf4a0571bedc90e43b5","size":14206,"updated_at":"2026-09-12T01:11:27Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.moana_lemon_c/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"39d2d510ee9b4231a150eb3c149714ca49413084a5cfb78d40100adc850b2d3e","size":14204,"updated_at":"2026-09-12T01:11:27Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[{"name":"Raffaele Montella","role":"Concept and direction"},{"name":"OpenAI Codex","role":"Implementation and original pixel graphics"},{"name":"OpenAI Image Generation","role":"Bay panorama concept generation"}],"controls":[{"action":"Navigate menus or steer","input":"D-pad"},{"action":"Confirm or toggle spinnaker","input":"A"},{"action":"Serve a penalty turn","input":"Hold B"}],"developer":{"name":"Raffaele Montella"},"legal":"Fictional fan work. Il Moro di Venezia V is used only as a historical visual reference; no real sponsor marks or exact livery are reproduced. No affiliation with America's Cup Event Authority or any real syndicate. America's Cup is referenced descriptively.","license":"MIT","subtitle":"","technology":["PRG32 portable cartridge within the 64 KiB execution-RAM profile","PRG32 four-player multiplayer snapshots","four-bitplane top-down yachts with syndicate palettes","row-compressed 8-bit indexed Bay landscapes","five-length automatic tactical overhead view","basic World Sailing rules and penalty turns","three race paths and an 8-voice stereo score"],"title":"NaCup-napoli97","version":"3.1.0"},"id":"org.riscv-prg32.nacup-napoli97","latest_version":"3.1.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"},"screenshot":{"block":"SCRN","mime":"image/png","optional":true}},"authors":[{"name":"Raffaele Montella"}],"cartridge_profile":"portable-64k","colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"content_rating":"Everyone","controls":"D-pad and A/B","description":"A fictional Naples 1997 12-Metre campaign with authored Bay panorama artwork, Il Moro-inspired yachts, a prevailing SW breeze, basic RRS enforcement, three courses, sponsor management, and one-to-four-player network racing.","developer":{"name":"Raffaele Montella"},"features":["portable","multiplayer","audio-plus","composed-bitplane-yachts","refined-yacht-art","il-moro-inspired-yachts","late-90s-bay-panoramas","near-orthographic-race-view","prevailing-sw-breeze","orc-polar-model","simulated-time","race-start-signals","selectable-courses","next-mark-highlight","committee-boat-finish","basic-rrs-rules","penalty-turns"],"fiction_notice":"All teams, sponsors, and the Naples 1997 event depicted here are fictional. Il Moro di Venezia V is used only as a historical visual reference; no real sponsor marks are reproduced.","genre":["sports","strategy","management","simulation"],"homepage":"","id":"org.riscv-prg32.nacup-napoli97","language":"en","license":"MIT","multiplayer":true,"name":"NaCup-napoli97","players":{"max":4,"min":1},"repository":"","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32IMAC","platform":"PRG32","target":"esp32c3"},"summary":"Manage and race a fictional 1997 sailing syndicate in Naples.","tags":["game","sports","strategy","management","simulation","multiplayer"],"title":"NaCup-napoli97","version":"3.1.0","year":2026},"publisher":"admin","selected_version":"3.1.0","summary":"Manage and race a fictional 1997 sailing syndicate in Naples.","tags":["game","sports","strategy","management","simulation","multiplayer"],"title":"NaCup-napoli97","updated_at":"2026-09-23T00:21:12Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.riscv-prg32.nacup-napoli97/3.1.0/esp32c6.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"e5b7502527fc35acc994ca2bcf89948a469abb1cfbae7d61234cc72dec36cb05","size":64788,"updated_at":"2026-09-23T00:21:12Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.riscv-prg32.nacup-napoli97/3.1.0/qemu.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"970da9cb5f9db8888d18417d3b834b6ecb060c260293e9421591dd6f78ce93fd","size":64786,"updated_at":"2026-09-23T00:21:12Z"}},"versions":["3.1.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[{"name":"Raffaele Montella","role":"Concept and direction"},{"name":"Claude (Anthropic)","role":"Engine, procedural pixel art and music"}],"controls":[{"action":"Accelerate / confirm","input":"A"},{"action":"Brake / back","input":"B"},{"action":"Steer","input":"LEFT / RIGHT"},{"action":"Shift HI / LO gear","input":"UP / DOWN"},{"action":"Pause","input":"START"}],"developer":{"name":"Raffaele Montella"},"legal":"Original work. Period vehicles and places are named descriptively; no trademarks or logos are reproduced and no affiliation is implied.","license":"MIT","subtitle":"","technology":["PRG32 portable cartridge in the 64 KiB profile","integer pseudo-3D segment road with hills, tunnels and viaducts","92 sections reproducing SS18, SS145, Massa Lubrense and SS163","cartridge-programmed 216-colour palette with time-of-day blending","row-group nibble-RLE sprites drawn as indexed spans","four-player multiplayer snapshots with CPU takeover","8-voice SID-like procedural soundtrack"],"title":"OutBun-napoli97","version":"1.1.0"},"id":"org.riscv-prg32.outbun-napoli97","latest_version":"1.1.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"},"screenshot":{"block":"SCRN","mime":"image/png","optional":true}},"authors":[{"name":"Raffaele Montella"}],"cartridge_profile":"portable-64k","colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"content_rating":"Everyone","controls":"D-pad, A accelerate, B brake, UP/DOWN gears, START pause","description":"An OutRun-inspired pseudo-3D arcade racer on the real 1997 coast road from Napoli to Vietri sul Mare: SS18, the SS145 Sorrentina with its tunnels and the Seiano viaduct, the Massa Lubrense road to Nerano and the SS163 Amalfitana with its hairpins and the Furore bridge. Nine timed legs, each with a local ingredient (rosetta, piennolo tomatoes, provolone del Monaco, olive oil, Sorrento lemons, zucchine alla Nerano, fior di latte, Cetara anchovies and tuna) to stack into the ultimate panino. Race three CPU classics (Fiat 126, Citroen Dyane, VW Beetle) or up to three friends over PRG32 multiplayer.","developer":{"name":"Raffaele Montella"},"features":["portable","multiplayer","audio-plus","pseudo-3d-road","real-route-ss145-ss163","tunnels-and-viaducts","time-of-day-palette","indexed-palette-art","row-group-rle-sprites","ingredient-collection","panino-builder","ai-rivals","coast-traffic","route-map"],"fiction_notice":"A fictional race on real roads. Fiat, Citroen, Volkswagen, Piaggio and SITA are named descriptively as period vehicles; no logos or trademarks are reproduced and no affiliation is implied. The real SS145 and SS163 are narrow and busy: drive them gently.","genre":["racing","arcade"],"homepage":"https://github.com/riscv-prg32/Outbun-napoli97","id":"org.riscv-prg32.outbun-napoli97","language":"en","license":"MIT","multiplayer":true,"name":"OutBun-napoli97","players":{"max":4,"min":1},"repository":"https://github.com/riscv-prg32/Outbun-napoli97","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32IMC","platform":"PRG32","target":"esp32c3"},"summary":"1997: race a souped-up white Fiat 500 around the Sorrento and Amalfi coasts for the best rosetta panino in Campania.","tags":["game","racing","arcade","pseudo-3d","multiplayer","naples","retro"],"title":"OutBun-napoli97","version":"1.1.0","year":2026},"publisher":"admin","selected_version":"1.1.0","summary":"1997: race a souped-up white Fiat 500 around the Sorrento and Amalfi coasts for the best rosetta panino in Campania.","tags":["game","racing","arcade","pseudo-3d","multiplayer","naples","retro"],"title":"OutBun-napoli97","updated_at":"2026-09-24T20:36:36Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.riscv-prg32.outbun-napoli97/1.1.0/esp32c6.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"4c08336b4b04482036396b80d5df79b496a958bd4f07c9aeca60274c9f80c144","size":54891,"updated_at":"2026-09-24T20:36:36Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.riscv-prg32.outbun-napoli97/1.1.0/qemu.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"c36326941b5b87c351b0b414a2ac469dca0906b429ea1d68e0a1cade3b6743d3","size":54889,"updated_at":"2026-09-24T20:36:36Z"}},"versions":["1.1.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Pac-Man","version":"1.0.0"},"id":"it.uniparthenope.pacman","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A demo game containing RISC-V assembly and C versions. Uses the 320x200 graphics API tuned for ILI9341.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.pacman","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A Pac-Man demo game.","tags":["arcade","pacman","retro","riscv","gaming"],"title":"Pac-Man","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A Pac-Man demo game.","tags":["arcade","pacman","retro","riscv","gaming"],"title":"Pac-Man","updated_at":"2026-09-12T01:11:19Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.pacman/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"5cbb00acaed7191a0d451a3b917479193d8cad976a6659f2669a858aa040158a","size":4744,"updated_at":"2026-09-12T01:11:19Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.pacman/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"9e22eac98acde8c707ccbf87d2f4488f36853104185a5c50dae1ce232191f571","size":4742,"updated_at":"2026-09-12T01:11:19Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Walk","input":"D-Pad Left/Right"},{"action":"Jump","input":"A / D-Pad Up"},{"action":"Reset","input":"B"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Platformer","version":"1.0.0"},"id":"it.uniparthenope.platformer","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"This platform-game example is inspired by the structure of classic side-scrolling platform games and by the Tilengine platformer sample. PRG32 keeps the idea small enough for classroom tracing.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.platformer","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A side-scrolling platform game demo.","tags":["arcade","platformer","retro","riscv","gaming"],"title":"Platformer","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A side-scrolling platform game demo.","tags":["arcade","platformer","retro","riscv","gaming"],"title":"Platformer","updated_at":"2026-09-12T01:11:13Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.platformer/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"1df22cfcc90566ceba0d06d4a180fa3f3602bd16e53dc18d7a1df95dc6c14ee0","size":6882,"updated_at":"2026-09-12T01:11:13Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.platformer/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"f492aae186742ed80f7239a714057848ff802df60954a2f92fea0e9e552b6a56","size":6880,"updated_at":"2026-09-12T01:11:13Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Change View","input":"D-Pad"},{"action":"Zoom","input":"A"},{"action":"Freeze","input":"B"},{"action":"Toggle HUD","input":"Select"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Poing","version":"1.0.0"},"id":"it.uniparthenope.poing","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A real-time 3D rendering demo for PRG32, featuring a spinning textured ball with shadows and a horizon.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.poing","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"Real-time PRG32 3D rendering demo","tags":["demo","3d","rendering","graphics"],"title":"Poing","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Real-time PRG32 3D rendering demo","tags":["demo","3d","rendering","graphics"],"title":"Poing","updated_at":"2026-09-12T01:11:10Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.poing/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"3d9dae98c7b9801cec682aa65c9a6e96b700db9bd5d9599b5efb07632a086a2a","size":8056,"updated_at":"2026-09-12T01:11:10Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.poing/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"c866f41d4f899d868e561002ed015aa10ae842710ffc1dddb623f9c6534b6e17","size":8054,"updated_at":"2026-09-12T01:11:10Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move paddle","input":"D-Pad Up/Down"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Pong","version":"1.0.0"},"id":"it.uniparthenope.pong","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"This directory contains RISC-V assembly and C versions of the game. Uses the 320x200 graphics API tuned for ILI9341.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.pong","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A Pong demo game.","tags":["arcade","pong","retro","riscv","gaming"],"title":"Pong","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A Pong demo game.","tags":["arcade","pong","retro","riscv","gaming"],"title":"Pong","updated_at":"2026-09-12T01:11:07Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.pong/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"a54f6c51f5f5f4fa3d1bce2c72cce185bc8b80b6c25838667dd03ff347efc65f","size":4836,"updated_at":"2026-09-12T01:11:07Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.pong/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"41fbcf1aaec93d83a501bd2be1448ab491220a8068cb336df226e2003c1e330e","size":4834,"updated_at":"2026-09-12T01:11:07Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Turn","input":"D-Pad Left/Right"},{"action":"Move","input":"D-Pad Up/Down"},{"action":"Strafe","input":"A / B"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Raycaster","version":"1.0.0"},"id":"it.uniparthenope.raycaster","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"This Doom-inspired example demonstrates a simple first-person wall renderer on the PRG32 RISC-V runtime. It is not a Doom port and does not use Doom assets; it teaches the core idea behind early 2.5D shooters.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.raycaster","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A simple first-person wall renderer demo.","tags":["arcade","fps","raycaster","retro","riscv","gaming"],"title":"Raycaster","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A simple first-person wall renderer demo.","tags":["arcade","fps","raycaster","retro","riscv","gaming"],"title":"Raycaster","updated_at":"2026-09-12T01:11:05Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.raycaster/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"98404c7367242df98b61704a765dbbbc2569309074e8801041635e7df3c1b26b","size":6120,"updated_at":"2026-09-12T01:11:05Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.raycaster/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4391cc2008c1bb585286fbe8e5159dfc24d71f17228a8b7db6bdda2e0fbce5e6","size":6118,"updated_at":"2026-09-12T01:11:05Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Change Mode","input":"Left/Right"},{"action":"Run Again","input":"A"},{"action":"Abort","input":"B/Select"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Setup Performance Test","version":"1.0.0"},"id":"it.uniparthenope.performancetest","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Test hardware and software performance across different workloads including viewport clearing, text overlay, sprite storms, and scrolling.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.performancetest","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A PRG32 performance testing tool","tags":["test","performance","tool"],"title":"Setup Performance Test","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A PRG32 performance testing tool","tags":["test","performance","tool"],"title":"Setup Performance Test","updated_at":"2026-09-12T01:11:16Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.performancetest/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4d772619a84948ea1a45a300c70f8a138d8a71f4b1ddb8ad348f594910c2bc7f","size":8760,"updated_at":"2026-09-12T01:11:16Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.performancetest/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"8fe3669c5334d9277d3ff35a1321702bc6084581a213e23eaeda828dd4762ff8","size":8758,"updated_at":"2026-09-12T01:11:16Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"affiliation":"UniParthenope","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","acknowledgements":["Freely inspired by the arcade classic Asteroids. All code, procedural sprites and the original 8-voice score are new work."],"authors":[{"name":"Raffaele Montella - UniParthenope","role":"academic supervisor / project lead"}],"controls":[{"action":"Rotate counter-clockwise / clockwise","input":"LEFT / RIGHT"},{"action":"Forward thrust","input":"UP"},{"action":"Retro thrust","input":"DOWN"},{"action":"Fire laser (hold for auto-fire)","input":"A"},{"action":"Fire homing missile","input":"B"},{"action":"Start / pause","input":"SELECT"}],"copyright":"Copyright 2026 PRG32","developer":{"name":"UniParthenope PRG32","url":"https://github.com/riscv-prg32/SpaceBeltMadness"},"license":"MIT","release_date":"2026-09-22","start_prompt":"Press A or START to launch","subtitle":"A hung-over odyssey in 10 sectors","title":"Space Belt Madness","version":"1.0.0"},"id":"prg32.spacebeltmadness","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"},"screenshot":{"block":"SCRN","mime":"image/png","optional":true}},"authors":[{"affiliation":"UniParthenope","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"created_at":"2026-09-22T00:00:00Z","description":"After a wild night at a dive bar, you wake up at the helm of your starfighter, fleeing from someone or something and hiding in an asteroid field. Rotate, thrust and retro-thrust through ten sectors of tumbling rocks and alien raiders, fire lasers and homing missiles, and defeat a unique boss at the end of every sector. Dual-playfield parallax starfield, 4-bitplane sprites, multi-frame explosions and asteroid fragmentation, and an adaptive 8-voice stereo SID-like score. Scores are saved locally and uploaded to the Cartridge Store when one is configured.","homepage":"https://github.com/riscv-prg32/SpaceBeltMadness","id":"prg32.spacebeltmadness","license":"MIT","repository":"https://github.com/riscv-prg32/SpaceBeltMadness","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32I","platform":"PRG32","target":"esp32c3"},"summary":"A hung-over asteroid-field shooter: 10 sectors, 10 bosses, one unpaid bar tab.","tags":["game","arcade","shooter","asteroids","c","riscv","prg32"],"title":"Space Belt Madness","updated_at":"2026-09-22T00:00:00Z","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A hung-over asteroid-field shooter: 10 sectors, 10 bosses, one unpaid bar tab.","tags":["game","arcade","shooter","asteroids","c","riscv","prg32"],"title":"Space Belt Madness","updated_at":"2026-09-23T00:21:17Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/prg32.spacebeltmadness/1.0.0/esp32c6.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"1dd19b3db81dfef7d26255c9f344a875cd0d384fae1fab9f176fd8b93c14e317","size":58995,"updated_at":"2026-09-23T00:21:17Z"},"qemu":{"architecture":"qemu","filename":"cartridges/prg32.spacebeltmadness/1.0.0/qemu.prg32","has_screenshot":true,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":"image/png","sha256":"8c54fa27f34890b51f67379f3ac86136326e0d57ea84f569068329639ce8ae11","size":58993,"updated_at":"2026-09-23T00:21:17Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad Left/Right"},{"action":"Fire","input":"A"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Space Invaders","version":"1.0.0"},"id":"it.uniparthenope.space_invaders","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"A demo game containing RISC-V assembly and C versions. Uses the 320x200 graphics API tuned for ILI9341.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.space_invaders","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A Space Invaders demo game.","tags":["arcade","space","invaders","retro","riscv","gaming"],"title":"Space Invaders","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A Space Invaders demo game.","tags":["arcade","space","invaders","retro","riscv","gaming"],"title":"Space Invaders","updated_at":"2026-09-12T01:11:02Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.space_invaders/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"f0660ebf6200330dd0c9bf6c2361a059a08138f327e7d8138d1cc042d0ac57eb","size":2317,"updated_at":"2026-09-12T01:11:02Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.space_invaders/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"92d51649275fe28238e60885ca9e00cecf12a782f0eb3386cb8c35cc95920ea8","size":2315,"updated_at":"2026-09-12T01:11:02Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","acknowledgements":["A tribute to the paranormal-comedy arcade tradition popularized by Ghostbusters and 1980s home-computer games","Built for PRG32 development-c6","Set in Naples, Italy, in 1997"],"authors":["PRG32 Tribute Cartridge Contributors"],"content_notice":"TRIBUTE GAME \u2014 unofficial and unaffiliated. Ghostbusters is referenced only to identify the work being paid tribute to. The game uses original branding, artwork, music, SFX, and code designed to evoke the era without reproducing protected franchise assets.","controls":[{"action":"Start / dispatch / proton beam","input":"A"},{"action":"Back / abort job","input":"B"},{"action":"Choose district / steer Fiat 500 / move trap","input":"LEFT/RIGHT"},{"action":"Choose district","input":"UP/DOWN"},{"action":"Show high scores","input":"SELECT"}],"developer":{"name":"PRG32 Tribute Cartridge Contributors"},"license":"MIT","release_date":"2026-09-09","start_prompt":"Press A to start the night shift","subtitle":"Unofficial Ghostbusters-inspired tribute game set in Naples, 1997","title":"Spiriti! Napoli '97","tribute_statement":"Spiriti! Napoli '97 is an unofficial, non-commercial tribute game celebrating the paranormal-comedy arcade tradition associated with Ghostbusters and the 1984 era. It is not affiliated with, endorsed by, or sponsored by the Ghostbusters rights holders. All cartridge code, pixel artwork, title treatment, arrangements, melodies, sound effects, and recordings in this project are original; no Ghostbusters logo, character art, dialogue, soundtrack melody, recording, or game asset is included.","version":"1.2.3"},"id":"org.riscv-prg32.spiriti-napoli97","latest_version":"1.2.3","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"RISC-V assembly and C versions of an Asteroids-inspired PRG32 demo: moves a small ship around a 320x200 viewport while a blocky asteroid drifts across the screen.","homepage":"https://github.com/riscv-prg32/PRG32","id":"org.riscv-prg32.spiriti-napoli97","license":"MIT","repository":"https://github.com/riscv-prg32/spiriti-napoli97","runtime":{"architecture":"qemu","architectures":[{"display":"qemu-rgb","id":"qemu","isa":"RV32I","label":"QEMU virtual screen","platform":"PRG32","target":"esp32c3"}],"display":"qemu-rgb","isa":"RV32I","platform":"PRG32","target":"esp32c3"},"summary":"Paranormal arcade action in late-1990s Naples.","tags":["arcade","asteroids","space","retro","riscv","gaming"],"title":"Spiriti! Napoli '97","version":"1.2.3"},"publisher":"admin","selected_version":"1.2.3","summary":"Paranormal arcade action in late-1990s Naples.","tags":["arcade","asteroids","space","retro","riscv","gaming"],"title":"Spiriti! Napoli '97","updated_at":"2026-09-12T01:24:55Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/org.riscv-prg32.spiriti-napoli97/1.2.3/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"3c9317179433184acb73b1e17b3bf1f194b38a881f0c57c2fc2d2f25df62bfde","size":41774,"updated_at":"2026-09-12T01:24:55Z"},"qemu":{"architecture":"qemu","filename":"cartridges/org.riscv-prg32.spiriti-napoli97/1.2.3/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"0367aacd1aad9995c5c238b55a52294db4375ede4a2c1508f344d63fbd7db012","size":41772,"updated_at":"2026-09-12T01:24:55Z"}},"versions":["1.2.3"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Rotate camera","input":"D-Pad Left/Right"},{"action":"Move forward/backward","input":"D-Pad Up/Down"},{"action":"Run","input":"Hold B + Move"},{"action":"Cycle inventory","input":"Tap B"},{"action":"Dig block","input":"A"},{"action":"Place block","input":"Down + A"},{"action":"Restart cavern","input":"START"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"TerraForge 32 3D","version":"1.0.0"},"id":"it.uniparthenope.terraforge","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Explore a generated block cavern in first person, dig blocks, place collected material, dodge crystalline drones, and recover four relics. The game uses a compact 2.5D ray-caster designed for PRG32-scale hardware.","homepage":"https://github.com/riscv-prg32/Terraforge","id":"it.uniparthenope.terraforge","license":"MIT","repository":"https://github.com/riscv-prg32/Terraforge.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"An original PRG32 cartridge game inspired by broad voxel/sandbox ideas.","tags":["arcade","voxel","sandbox","raycaster","retro","riscv","gaming"],"title":"TerraForge 32 3D","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"An original PRG32 cartridge game inspired by broad voxel/sandbox ideas.","tags":["arcade","voxel","sandbox","raycaster","retro","riscv","gaming"],"title":"TerraForge 32 3D","updated_at":"2026-09-12T01:11:00Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.terraforge/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4f67f8956c409ecbfd438ef6ec03954904883222bf94d27e362db145773830f3","size":9424,"updated_at":"2026-09-12T01:11:00Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.terraforge/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4684db066ffdae92fec5334c296ccb311c26e8bcaa9f8b81f53096e11797d74f","size":9422,"updated_at":"2026-09-12T01:11:00Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"},{"action":"Screw Crusher","input":"A"},{"action":"Double Harken","input":"B"},{"action":"Space Thunder","input":"A+B"},{"action":"Start / Pause","input":"Start"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Vega Assault","version":"1.0.0"},"id":"it.uniparthenope.grendizer_c","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Vega Assault. An unofficial non-commercial fan-game teaching project featuring original code, pixel art and soundtrack data.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.grendizer_c","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"Unofficial non-commercial fan-game teaching project","tags":["shooter","arcade","space","game"],"title":"Vega Assault","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"Unofficial non-commercial fan-game teaching project","tags":["shooter","arcade","space","game"],"title":"Vega Assault","updated_at":"2026-09-12T01:11:29Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.grendizer_c/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"23e277adf5cbd4e070da025acb3cf5b1c550fd1d3f81adb7eed30a9077755123","size":31090,"updated_at":"2026-09-12T01:11:29Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.grendizer_c/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"3c6142598336c3a0686bf9332ae8bebaefb547488425c32e597b956b871bcc50","size":31088,"updated_at":"2026-09-12T01:11:29Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move crosshair","input":"D-Pad"},{"action":"Fire laser","input":"A / B"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"Wing Commander","version":"1.0.0"},"id":"it.uniparthenope.wing_commander","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"This example demonstrates PRG32 dual playfields with a space-cockpit game. The background playfield is a scrolling starfield outside the window; the foreground playfield is a fixed cockpit/dashboard overlay. Sprites and HUD text are drawn on top.","homepage":"https://github.com/riscv-prg32/PRG32","id":"it.uniparthenope.wing_commander","license":"MIT","repository":"https://github.com/riscv-prg32/PRG32.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A dual-playfield space cockpit game demo.","tags":["arcade","space","cockpit","retro","riscv","gaming"],"title":"Wing Commander","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A dual-playfield space cockpit game demo.","tags":["arcade","space","cockpit","retro","riscv","gaming"],"title":"Wing Commander","updated_at":"2026-09-12T01:10:58Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.wing_commander/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"a469f8bf98a1d2bff62e335b1dc10c483ce574faf641db65989e79e25d78bd3e","size":6541,"updated_at":"2026-09-12T01:10:58Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.wing_commander/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"77fe748c13b241b9d9e12b50f0838dff8d1b3c0672a73e52534362729356aed8","size":6539,"updated_at":"2026-09-12T01:10:58Z"}},"versions":["1.0.0"]},{"architectures":["esp32c6","qemu"],"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","authors":[],"controls":[{"action":"Move","input":"D-Pad"}],"developer":{"name":"Raffaele Montella"},"subtitle":"","title":"YouHaveGotPizza","version":"1.0.0"},"id":"it.uniparthenope.youhavegotpizza","latest_version":"1.0.0","metadata":{"abi":"prg32-metadata-1.0","assets":{"icon":{"block":"ICON","mime":"image/png"}},"authors":[{"email":"raffaele.montella@uniparthenope.it","name":"Raffaele Montella"}],"colophon":{"abi":"prg32-colophon-1.0","block":"COLO"},"description":"Avoid obstacles and ensure pizzas are delivered hot and fresh in this RISC-V-powered arcade experience.","homepage":"https://github.com/riscv-prg32/YouHaveGotPizza","id":"it.uniparthenope.youhavegotpizza","license":"MIT","repository":"https://github.com/riscv-prg32/YouHaveGotPizza.git","runtime":{"architecture":"esp32c6","architectures":[{"display":"ili9341","id":"esp32c6","isa":"RV32I","label":"ESP32-C6 hardware","platform":"PRG32","target":"esp32c6"}],"display":"ili9341","isa":"RV32I","platform":"PRG32","target":"esp32c6"},"summary":"A retro-inspired arcade pizza delivery game for PRG32.","tags":["arcade","pizza","retro","riscv","gaming"],"title":"YouHaveGotPizza","version":"1.0.0"},"publisher":"admin","selected_version":"1.0.0","summary":"A retro-inspired arcade pizza delivery game for PRG32.","tags":["arcade","pizza","retro","riscv","gaming"],"title":"YouHaveGotPizza","updated_at":"2026-09-12T01:10:51Z","variants":{"esp32c6":{"architecture":"esp32c6","filename":"cartridges/it.uniparthenope.youhavegotpizza/1.0.0/esp32c6.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"4067b1686232077edd3bc41a912f38725be76133b5b3724398735319e4fe5d07","size":7775,"updated_at":"2026-09-12T01:10:51Z"},"qemu":{"architecture":"qemu","filename":"cartridges/it.uniparthenope.youhavegotpizza/1.0.0/qemu.prg32","has_screenshot":false,"has_signature":false,"icon_mime":"image/png","published_by":"admin","screenshot_mime":null,"sha256":"066c1ce6c2d9abd27c5b05632fe6b2b6ac115b1513e571c1d1f168915bfefc3c","size":7773,"updated_at":"2026-09-12T01:10:51Z"}},"versions":["1.0.0"]}],"ok":true,"pagination":{"has_next":false,"has_prev":false,"next_page":null,"page":1,"pages":1,"per_page":27,"prev_page":null,"total":27}}
