#quadplay

Peter M.J. GrossBitterlyIndifferent
2026-02-07

But… Skunks?!

It’s a rhythm game for the fantasy console, and it's about taking back what’s yours.

bitterlyindifferent.itch.io/bu

Peter M.J. GrossBitterlyIndifferent
2025-11-11

But… Skunks?!

It might be the best rhythm game/invasive wildlife sim you see in this year.

bitterlyindifferent.itch.io/bu

@zanagb Hi! This comes up a lot. #quadplay exports to standalone web HTML. You can use Electron or similar (yuck, I know) to turn that into a standalone binary. I'm working on a lightweight exporter that leverages an operating system's existing browser instead of compiling all of Chromium into every game.

I have a proof of concept working, but have not prioritized this. Many of the handhelds I work with are powerful enough to just run a browser outright, so I put effort into other features.

New #quadplay open source fantasy console release. Lots of bug fixes and some new helper functions for consise coding.

github.com/morgan3d/quadplay/

Friends gave me some good suggestions for #quadplay save game import/export, so I'm working on that as a trial this week in the background.

It is amazing how modern operating systems and browsers can make difficult features trivial...and trivial features really difficult!

Opening a web cam (in a platform independent way!) and scanning a QR code is easier than simple file transfers for a phone. Opening a webcam on Windows from C++ in 2010 was basically impossible, but fopen() worked :)

Massive release today of the new version of the #quadplay retro fantasy video game console. Available now at:

morgan3d.github.io/quadplay/

The main focus of these changes was mobile: new aspect ratios, new battery saving optimizations, new exported game UI options.

#quadplay now hashes the entire virtual GPU command stream, and when it detects a duplicate frame does not render it.

Since many games have 15 fps animations or static screens, this can reduce load significantly. In a strategy game I was profiling it reduces the work per frame from 1.1ms to 0.2ms!

I did this as a mobile power/heat optimization--it doesn't help framerate/performance, since it targets games that aren't pushing perf.

I've been noodling on a word game for the past week and am close to shipping. This will be in the next #quadplay release as open source.

"ching-9" pixel art font with extended European character set, in the style of architect Frank Ching's iconic handwriting.

Licensed as CC BY 4.0 as with all of my fonts, and available for free in the #quadplay repo as part of the fantasy console.

#screenshotsaturday

A pixel art font sheet in the stylized handwriting that architects use. Each character is 9 pixels high.

Got through a bunch of support for #quadplay word games this weekend. Built-in dictionaries, loading directly from zipfiles, lots and lots of fighting with browser caches.

I'm still refining the primary English dictionary by hand. The open source word lists I'm working with are too comprehensive and include a lot of archaic words that make word games feel too random.

Added asset preview in the #quadplay fantasy console import dialog so that you can see all of those juicy creative commons pixels before you commit to them.

To better support the feel of a native mobile game, #quadplay now allows the developer to unlock arbitrary resolutions and continuously resize the framebuffer to match the OS window on desktop, or a mobile screen orientation.

This breaks some of the guarantees and advantages of the fantasy console fixed virtual hardware specs. So, it is handled through a library that can be optionally included and not the core API.

Good progress for this weekend's hacking, ending with a new #quadplay release just before midnight at github.com/morgan3d/quadplay

Tons of polish in this release for exported games made with this free HTML fantasy console.

Bonus: new support for making word games, including compressed bundled word lists for English.

Hand held game console playing a puzzle game in quadplayRedesigned the deployed HTML game toolbar to be more minimal and easier for users to understand
Made intro animations (pause message and quadplay boot animation) skippable with any user input
Increased loading speed by async loading more of the implementation
Increased exported game loading speed by factoring more IDE code out of the emulator
Merged inactive pause and background pause and the sleep versions into a single setting
Fixed quadplay sleep problems during intro sequence for deployed games
Fixed dice_set_initial_positions() in dice_lib.pyxl failing with NaN results for narrow dice trays
Changed highscores to high_scores in the game.json specification
to be consistent with other quadplay naming conventions
Added show_start_animation option for exported games (defaults to true)
Added mobile_touch_gamepad option for exported games (defaults to true)
Removed support for legacy game.json files that use * to denote the start mode
Added support for .csv.zip and .txt.zip compressed text files
Added set_table option for CSV constants and assets for creating
a set data structure of unique keys from a CSV file
Rewrote asset loader for speed and code maintainability
Added jszip library dependency
IDE button colors now match the emulator theme
Added english_all_table.data.json dictionary
Added english_all_array.data.json word list
Added english_sensitive_table.data.json dictionary
Improved ivanhoe-12 font readability
Added ivanhoe-bold-12 font

ivanhoe-12 #pixelart font for #screenshotsaturday from #quadplay.

All of my fonts are creative commons licensed and available in the github.com/morgan3d/quadplay distribution

Font sheet using a stylized, old British looking pixel font

Weekend coding progress:

- Load large text files directly from compressed archives using extensions .csv.zip and .txt.zip
- Flatten a table asset or constant to an array at load time
- Convert an array to a mathematical set by deduplicating and then creating a table with the array values as keys and true as the values

I have some built-in assets that will take advantage of this functionality soon.

EXPECT WORD GAME HIJINKS

#quadplay

I finished off my weekend changes to #quadplay and pushed to the public repo.

Lots of little things to improve the UI experience for players in the exported games, and finally chased down some bugs that once in a blue moon would give bad perf.

github.com/morgan3d/quadplay

Desktop browsers, itch.io, github hosted games, even SteamDeck are very good now. I'd like to improve the iOS experience more, but Apple hates full-screen HTML games on iPhone so much that it is not very rewarding to work with.

A steamdeck running an open source video game on a backdrop of gray hexagons

Bogart font from #quadplay for #screenshotsaturday. All of my fonts are open content licensed as CC BY 4.0, and include many accented and other characters for a wide range of European languages.

Most are named after famous actors they remind me of :)

#pixelart

Font spritesheet with letters evoking 1930s noir style

Weekend hacking fest complete.

I've fixed all but one of the known, reproducible issues in #quadplay, redesigned the exporter, and upgraded all of my games on itch.io.

This was through at times extremely frustrating hands-free voice programming, but I've gotten a lot better at it so the pace is accelerating.

I ordered the new Stream Deck as well! I'm increasingly relying on macros to speed up these interactions and this should facilitate executing them.

I re-wrote a lot of the #quadplay UI code for exported games.

Below are the new look when on itch.io, the old look, and #pico8's new look.

It now auto-sizes better, gives easier access to configuring controls, is less visually obtrusive, is visually consistent, and has simplified options.

I really, really hate descending into the bowels of CSS selectors.

New #quadplay fantasy console release!

The highlights of this release are the new game state machine visualizer in the IDE and the game exporter for shipping standalone games.

Open source at github.com/morgan3d/quadplay

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst