Kate v0.23.10 (October 2023)#

The v0.23.10 is October’s experimental release of Kate. This release focuses on improving Kate’s stability and moving the codebase towards a proper release, so no flashy new features, but lots of fixes.

New Kate licence#

Important

BREAKING CHANGE: uses of Kate from 0.23.10 are subject to different licence terms. While these should not affect end-users as much, there are new requirements for modifying Kate and sharing these modifications.

Kate’s source code was originally released under the MIT licence terms. That, however, was not a great fit for the project since the MIT licence does not require people to state what changes they made to the source code, or to make those changes available.

Because transparency is a core tenet of Kate’s security—everyone needs to be able to audit the console’s source code and hardware to understand what exact risks they’re taking and what the console is doing behind the scenes—MIT because an unfortunate liability here.

The new version is licensed under the Mozilla Public License’s (MPL) terms, the same that is used on Firefox. This was the best compromise between freedom of extending Kate and building on top of it, and guaranteeing the security and privacy of Kate’s users. The MPL requires all changes to specified code to be made public, but new code can be released under any other licence (including proprietary). Only Kate’s source code is covered by the MPL, which means that the releases generated by kate-dist, which bundle the entire Kate emulator with developers’ cartridges, can be released under proprietary and more restricted licences.

There are no changes to Kate’s direction and availability otherwise. It remains an open-source project and it continues to be committed to supporting developers and users alike free of cost.

PRs: #22

New trusted-mode and resource indicator design#

Important

SENSITIVE SECURITY CHANGE: This version changes how Kate communicates whether the screen you’re looking at is part of its own trusted code or not.

With a new case for Kate there was a need to revisit the trusted-mode and resource indicators panel. This release makes all cases behave similarly to the FullScreen case mode. This means that all security indicators now exist as a small badge on the top-right of the screen.

Having a unified trusted-mode/resource indicator design means less switching contexts when changing case modes, which means less opportunities for cartridges to try stealing information by spoofing system dialogs.

The trusted mode now shows up as a padlock in the resource indicators panel, on top of having the usual pastel pink background.

PRs: #30

Memory-friendly cartridge format#

A new cartridge format! Hopefully the last one this time. This new format adds support for signing cartridges (which is necessary for the upcoming catalog security features), and for memory-friendly decoding.

Today’s Kate cartridge format needs to be fully loaded in memory in order to be decoded. This means that if you have a 1GB cartridge, then all of that 1GB needs to be loaded in memory at once before Kate is able to do anything with the cartridge.

The new format lets Kate load just the necessary bits of the cartridge. So if Kate needs to read the cartridge metadata, it can read only the metadata section (a few KBs), rather than the whole 1GB of data. Same goes for individual files stored in the cartridge—the new format lets Kate load just that individual file.

PRs: #21

New Kate controls#

Kate started with a very small set of buttons, but that ended up being a poor fit for some games and tools, where even choosing very modal UIs ended up being awkward and non-productive.

This release adds two more buttons: Sparkle (Sparkle button) is an arbitrary button that can be used by cartridges, and Berry (Berry button) is a system-specific button that cannot be used by cartridges. The new Berry button frees the old Menu (Menu button) button to be fully controlled by the cartridge, rather than having a dual cartridge/system behaviour depending on how long you press it for.

PRs: #23

Major refactoring#

This release includes a full rewrite of the Kernel module for Kate, moving it away from the quick prototype era and into a stable and reliable piece of code.

This makes it easier to update the Kernel, while also making it harder for bugs to hide in it. The Kernel is an essential piece of the Kate system and bugs in the Kernel can lead to big security and privacy issues, so a proper stable Kernel is a requirement for a stable Kate release.

PRs: #23

Minor bugfixes#

  • Kate handles more types of gamepads now and has better primary gamepad behaviour (PRs: #23).

  • Improved support for virtual keyboards in Kate’s text input dialog (PRs: #31).