Kate v0.23.6 (June 2023)#

The v0.23.6 is June’s experimental release of Kate with a focus on making it usable for common open source engines for small indie games.

More flexible resolution#

Kate uses a 800x480 resolution in hand-held mode, but that doesn’t mean games have to use this resolution. Bitsy games use a square aspect ratio, and many Ren’Py games use 16:9, or even 4:3, but they all scale accordingly to fit within the 800x480 window.

So this release improves the support for different resolutions, making sure things like captures and the media gallery store and display media in the correct aspect ratio.

Case modes#

By default Kate runs in handheld mode, with virtual buttons meant for touch-based devices and a 800x480 resolution. This release adds a new TV mode and a Full-screen mode, which support a resolution of 1200x720. The new modes are meant for running Kate in a laptop or with an external display or TV, and taking advantage of the additional screen space, similar to how other handhelds can increase their resolution when docked.

Pointer input support#

This release has added an API for basic pointer support, so games that use a mouse or a single touch point should be supported in Kate. There’s still work in the roadmap to support multi-touch games and games that use a stylus (e.g.: where stylus pressure and tilt angle can affect the behaviour of the game).

Functional Ren’Py support#

With this release Kate is functionally compatible with most games exported in Ren’Py 7.5 and Ren’Py 8.1. There are a couple of things that we don’t yet handle, like Ren’Py’s new text input support in 8.1, but that will be landing soon as well.

Storage visualisation#

There’s a new settings screen for visualising and managing different parts of the storage. This includes:

  • Archiving cartridges (deleting the cartridge files, but keeping save data and screenshots/video captures);

  • Deleting all save data; and

  • Deleting all cartridge-related data (except for screenshots/captures).

This should make Kate a bit more usable around managing what’s stored locally and allowing people to remove data they no longer need to keep around.

Dropping support for Safari#

Since Safari is far behind in implementing some of the APIs that Kate needs to work, and implements some of them with inconsistent behaviour compared to other browsers, this release drops support for Safari for the time being.

This will be revisited once a stable release is out. But there’s only so much Kate can paper over without Apple implementing the missing features in Safari.

New documentation#

This release features properly organised documentation instead of an assorted collection of text files in a directory. The previous documentation was heavily edited and expanded upon, but the documentation is nowhere near complete still—nor is Kate.

We’re aiming for proper documentation by the time the stable release drops, which includes all the missing formal documentation on the core security and privacy properties for Kate.

Fixed bugs#

  • The local storage proxy now accounts for engines that may expect it to behave like a regular JavaScript object;

  • The network proxy now properly handles cases where more arbitrary URLs are given to be loaded, as long as we can still resolve it to a valid cartridge file path.

  • Paths are now normalised before Kate attempts to read them from the cartridge. This should result in less surprises for games ported through Bridges.

  • Resources are now properly cached when installing Kate as a web app, meaning you should be able to run the web version of Kate offline if you install it on an iPhone, Android, or Windows 10+.

  • Errors resulting from storage quota being exceeded are now handled more gracefully. There’s some reserved system space to avoid being locked into unrecoverable storage states.

  • The network bridge now handles blob: urls, so Ren’Py 7.5 pre-splashes work correctly.

  • Fixed an issue with the indexedDB bridge that caused Ren’Py 8 games to not load when reconciling save data.

  • Fixed the display of play time and last played date so it doesn’t just say “played a month ago” when you’ve played it yesterday.

  • Cartridge titles are now more readable against the start screen background. Cartridges are also properly centred.

  • Video and audio are now handled in the initial preparation of the cartridge HTML, so games using some of the Bitsy hacks work properly with audio.

  • There’s proper feedback about cartridge installation now when using the Install cartridge... button.

Minor improvements#

  • Screenshots and video captures are now sorted from most recent to least recent (they were not sorted previously).

  • Removed size limitations for legal notices and web-archive HTMLs, which some Bitsy games go way over as they have too much data embedded in the page.

  • Play time is now recorded at minute-granularity. This doesn’t change much, but there was no need to record it in milliseconds, so this moves things more in line with Kate’s general approach to privacy—not recording what we don’t absolutely need.