Changelog
| Feature / Fix |
Issue |
| Fix: Make emulator mapping more robust and consistent across plaform and single game override |
N/A |
| Fix: Sluggish Nonna's Kitchen performance with large libraries |
N/A |
| Fix: More work on list padding calculations at various font sizes |
N/A |
| Kudos: Add localization contributors to credits screen + reorganize credits screen |
N/A |
v1.9.0 - The Localization Release
Cannoli speaks more than English now! If you want to get involved with the localization effort, please visit
the Cannoli Project on Crowdfin.
Also included is a hodge podge of simple QoL features and cleanup.
| Feature / Fix |
Issue |
| Feat: Localization - Cannoli's interface is translatable, with a Language picker in the new Settings > General category |
#208 |
Feat: New PC platform that launches your GameNative or GameHub Lite library from shortcut files in Roms/PC |
#100 |
| Feat: Box art for Tools and Ports, with Delete Box Art in the context menu and art that follows a rename |
N/A |
| Feat: GameCube and Wii emulators launch intent cleanup Emulator Mapping |
#170 |
| Feat: Eden Nightly added, and the standalone emulator lists trimmed down to maintained apps |
#206 |
| Feat: RomM Download Queue entry in the quick menu while downloads are pending |
N/A |
| Feat: RomM cache sync status shown in the status bar |
N/A |
| Feat: Favorites row can be hidden from Settings > Library, same as Recently Played |
N/A |
| Fix: Multi-file RomM downloads arriving as empty 0 KB files, now fetched file by file |
#215 |
| Fix: Multi-part RomM games (Switch and friends) failing to install |
#213 |
| Fix: Azahar failing to launch 3DS games; the ROM is handed over as a content URI now |
#171 |
| Fix: Dolphin MMJR2 dropping to its own menu instead of booting the game |
#204 |
| Fix: Games launching in the first installed emulator instead of the one you picked |
N/A |
| Fix: Arcade CHD subfolders showing up as separate games |
#129 |
| Fix: Box art vanishing after a rename until something else forced a rebuild |
N/A |
| Fix: "Core not installed: unknown" on app-only platforms, which now names the missing app and offers Change Emulator |
N/A |
| Fix: A failed launch from a per-game override rewriting the global mapping and failing again next time |
N/A |
| Fix: Tool and Port box art missing on the home screen in Five Game Handheld mode |
N/A |
| Feature / Fix |
Issue |
| Feat: Browse and download games from your RomM server, with streamed downloads and on-device tracking |
N/A |
| Feat: RomM cover art with selectable art types, plus Download Missing Art for games already on device |
N/A |
| Feat: Browse RomM Collections (user, virtual, and smart) with per-collection toggles |
N/A |
| Feat: Download firmware and BIOS files per system from RomM |
#169 |
| Feat: Download game manuals from RomM straight into the guides folder |
N/A |
| Feat: RomM Save Sync (automatic SRAM sync, conflict resolution, and backup/restore) |
N/A |
| Feat: Pair with a RomM server by scanning a QR code or entering a pair code |
N/A |
| Feat: Browse RomM offline from a cached metadata mirror that syncs when connected |
N/A |
| Feat: Game cheats: drop in .cht files and toggle them from a new Cheats screen (RetroArch-compatible) |
N/A |
| Feat: Guides viewer to read PDF guides and manuals from the game context menu and in-game |
N/A |
| Feat: Offline RetroAchievements: preload sets while online, then earn and view them offline |
N/A |
| Feat: Nonna's Kitchen rebuilt on a new file server with a game-centric web UI for ROMs, saves, states, guides, and box art |
N/A |
| Feat: Install APKs and browse device storage volumes from Nonna's Kitchen |
#122 |
| Feat: Nonna's Kitchen now lets you manage cheats and shaders |
N/A |
| Feat: Core Mapping redesigned as a source-first Emulator Mapping screen (Source, Emulator, BIOS, per-game overrides) |
N/A |
| Feat: Screen Geometry display calibration to fit the whole app into a custom rectangle (e.g. CRT-via-converter setups) |
N/A |
| Feat: On-screen keyboard help overlay, opened by pressing MENU for a controls cheat sheet |
N/A |
| Feat: 4-Way D-Pad mode to suppress diagonals for 4-way games, behind Experimental Features |
N/A |
| Feat: Left stick as D-Pad toggle, with Button Mappings and Shortcuts grouped under a new Settings > Input screen |
N/A |
| Feat: Hold the resume button to open the save-state picker |
#98 |
| Feat: Diacritic-insensitive global search so accented titles match plain letters |
N/A |
| Fix: Guard newer-API calls that crashed on Android 9 |
N/A |
| Fix: Smoother frame pacing so the game no longer runs fast on high-refresh panels |
N/A |
| Fix: List spacing is a little tighter and there are a few more smaller font size choices |
N/A |
| Feature / Fix |
Issue |
| Feat: Onboarding Continue button, and reinstalls pre-select your existing storage with its Cannoli folder shown |
N/A |
| Fix: Setup screen appears immediately after granting storage permission instead of a brief black screen |
N/A |
| Feature / Fix |
Issue |
| Fix: Core runner crash on NGP/PCE from incorrect libretro env command numbers |
N/A |
| Feat: Storage logging option to record at boot |
#181 |
| Feature / Fix |
Issue |
| Fix: Renaming a game no longer copies the entire ROM file |
#180 |
| Fix: Suppress "Game list updated" OSD after launcher-driven renames/delete |
N/A |
| Feature / Fix |
Issue |
| Fix: RetroArch DIY Mode behavior |
N/A |
Feat: Add support for Vita3K .psvita files |
#165 |
| Feature / Fix |
Issue |
| Feat: Rename app shortcuts in Tools/Ports |
#177 |
| Fix: Game saves / save states to be keyed on display name rather than archived filename |
N/A |
| Feature / Fix |
Issue |
| Feat: Rename platforms to their short code in the launcher |
#179 |
| Fix: USB DAC crash by pinning Oboe output to 48kHz |
#178 |
| Fix: Storage wizard appearing before SD mount completes |
#174 |
| Feature / Fix |
Issue |
| Fix: Battery indicator hidden on Android TV builds (e.g. GammaOS) |
N/A |
| Feature / Fix |
Issue |
| Fix: Slow PICO-8 cart list when scanning hundreds of carts |
N/A |
| Feature / Fix |
Issue |
Feat: PICO-8 fallback to built-in art (.p8.png only) |
#173 |
Just a quickie to hold you over while I cook more stuff up.
| Feature / Fix |
Issue |
| Feat: PICO-8 support, standalone and requires PICO-8 License |
#135 |
| Feat: Press and hold shortcut to save and exit |
#168 |
| Fix: Core runner crash on PCE when pressing the menu button |
#172 |
The "Fix All The Tech Debt" release!
A good chunk of this release is internal rework, including a brand-new input system and a
SQLite-backed library.
| Feature / Fix |
Issue |
| Feat: Rebuilt input system |
N/A |
| Feat: Edit Buttons screen for per-platform / per-game remaps |
N/A |
| Feat: Per-controller settings (confirm button, exclude from gameplay) and rename from the Controllers screen |
N/A |
| Feat: Smoother video and audio with display refresh-rate matching and tighter frame pacing |
N/A |
| Feat: SQLite-backed library with natural sorting |
N/A |
| Feat: Library scan progress shown on startup |
N/A |
| Feat: Per-subsystem logging toggles (ROM Scan, Input, Game Session) |
N/A |
| Feat: Reassign which controller is which player from the In-Game Menu |
#155 |
| Feat: Background and Status Bar colors in Appearance > Colors |
#153 |
| Feat: Icon-only battery option for the status bar |
#154 |
| Feat: Show filename and platform tags when duplicate game names exist |
#77 |
Feat: Auto-organize loose multi-disc sets into per-game subfolders with generated .m3u |
#117 |
| Feat: Redesigned onboarding with a dedicated permissions step |
N/A |
| Feat: inotify-driven library auto-rescan when ROMs change on disk |
N/A |
| Feat: RA Locked filter on the achievement list and refreshed RA OSD timeouts |
N/A |
| Feat: Honor the configured external ROMs folder in Nonna's Kitchen |
#115 |
| Fix: PS2 launch failed for NetherSX2 and ArmSX2 |
#158 |
| Fix: Stadia controller L2/R2 triggers detected as constant -1 |
#151 |
| Fix: Disc swap for multi-disc PBP PlayStation games via the In-Game Menu |
#78 |
| Fix: Show the save-state prompt when exiting IGM settings |
#16 |
| Fix: Mupen64Plus FZ splash screen handling |
#149 |
Quick fix for shader regression when removing slang support.
| Feature / Fix |
Issue |
| Fix: Shortcuts regression with triggers |
#150 |
| Fix: Missed a few old logos |
N/A |
Forgot to update the credits for bundled shaders and the new logo!
| Feature / Fix |
Issue |
| Feat: Auto save state when quitting a game |
#132 |
| Feat: Virtual Android TV Settings entry in Manage Tools |
#147 |
| Fix: DraStic fails to open ROMs |
#146 |
| Fix: Select button cannot be mapped from Settings > Input |
#101 |
| Executive Decision: Remove slang shader support |
N/A |
| Feature / Fix |
Issue |
| Feat: Built-in directory browser for TV devices |
#108, #137 |
| Feat: Integer Overscale scaling |
#140 |
| Feat: Portrait Margin for clamp controllers |
#134 |
| Feat: Auto TV Mode on supported TV boxes |
#80 |
| Feat: Libretro v1 core options |
#141 |
| Feat: Kitchen code bypass toggle |
#95 |
| Feat: Cycle network interfaces in Nonna's Kitchen |
#91 |
| Feat: Missing-BIOS warning before launch |
#130 |
| Feat: Auto RetroAchievements token refresh |
#113 |
| Feat: Debug logging toggle |
#112 |
| Feat: Input tester diagnostic screen |
Was lazy! |
| Fix: Custom fonts and confirm button glyph |
#120, #128 |
| Fix: Resume button missing in 5GH and Recently Played |
#99, #119 |
| Fix: Box art clipping under status bar in 5GH |
#102 |
| Fix: Stale Recently Played after ROM rename |
#136 |
| Fix: Guide paths with filename tags |
#116 |
| Fix: Shader params persisting across saves |
#111 |
| Fix: CRT glitches when cycling shaders |
#139 |
| Fix: Volume/media keys in IGM |
#126 |
| Fix: L2/R2 trigger detection |
#89 |
| Fix: Player 2 menu triggering Home |
#21 |
| Fix: External emulator package names |
#85, #94 |
| Fix: Arcade audio speed in FBNeo/MAME |
#125 |
| Fix: Nonna's Kitchen large upload freezes |
#93 |
| Fix: "Press any button" prompt |
#90 |
| Fix: XBOX controller layout |
#92 |
| Fix: 5GH setup jank |
#84 |
| Feature / Fix |
Issue |
| Feat: File permissions prompt when not granted |
#82 |
| Feat: Debug logging in the built-in core runner |
#88 |
| Fix: Audio latency in built-in core runner (replaced with native Oboe audio) |
#81 |
| Fix: Fast forward not working in built-in core runner |
#79 |
Fix: Unsupported Game Version treated as an achievement |
#87 |
Fix: SNES controller type defaults to None |
#86 |
| Fix: Five Game Handheld box art not showing |
#83 |
| Fix: Updated arcade map.txt |
#76 |
| Feature / Fix |
Issue |
Fix: Ignore systeminfo.txt from games list |
#73 |
| Fix: PS2 app ID incorrect |
#71 |
| Fix: Random offline achievement synced message |
#68 |
| Fix: Tools show up in recently played |
#67 |
| Feature / Fix |
Issue |
| Feat: Add Aspect Screen Scaling Option |
#18 |
| Feat: Add RetroArch DIY Mode (no config injection, makes Cannoli work like other launchers) |
#51 |
| Fix: Address poor performance for large / highly nested collections |
#58 |
| Feature / Fix |
Issue |
| Fix: Missing Confirm Quit when Quit option is enabled |
#52 |
| Fix: Genesis Plus GX crashing |
#49 |
| Fix: DualShock mode not enabling on PSX |
#48 |
| Feature / Fix |
Issue |
| Fix: IGM does not respect font size |
#47 |
| Fix: Make battery icon more consistent |
#46 |
| Fix: Larger font sizes cause last visible item in list to pop |
#45 |
| Feature / Fix |
Issue |
| Multi-tasking while in game |
#26 |
| Quitting app while in-game saves auto slot and auto-resumes on next launch |
#26 |
| Framerate fix attempt for 120 Hz devices |
#17 |
| Fix caching regression affecting art display and resume |
#22, #24 |
| Dot-prefixed files/folders are now hidden |
#23 |
| Resume works with any save slot, not just auto |
#28 |
| Bundled OG MinUI font (not default) |
#15 |
Load custom fonts from Cannoli Root/Config/Fonts |
#15 |
| User-defined main menu title |
#29 |
| Roms folder can be split from Cannoli Root in Advanced |
#12 |
| Hack for vertical FBN games to display top-up |
#19, #32 |
| Toggle to flip Play and Resume buttons |
#35 |
| Unmap buttons for shortcuts |
#31 |