Changed
- Updated Azahar for Cytrus to the latest available version on GitHub
Fixed
- an issue where input via the on-screen buttons and external gamepads would not work in Cytrus
- an issue where audio was handled unnecessarily in Grape causing minor static
Removed
- SDL3 audio output from Cytrus until its fully functional, replaced with CoreAudio as of now
Added
- the ability to export 3DS save states for use with other applications
- support for ColecoVision with an experimental new keypad layout
- support for Nintendo Wi-Fi Connection enabling online multiplayer with custom servers
Changed
- the ABXY buttons on Cytrus to correlate with the ABXY of the 3DS
- Grape emulation screen to use the new Liquid Glass layout
Fixed
- an issue where save states from old versions of Folium would not work in Cytrus on newer versions of the app
- an issue where the thumbstick was above the buttons on Cytrus causing broken input
Miscellaneous
- updated MoltenVK to the latest version available
# Added
- multiplayer chat to Cytrus
- currently only available on iOS and iPadOS 26
- SEGA Genesis and Mega Drive support via the new Plum core
- significantly improved PlayStation 1 support via the new Mandarine core
- additional information to each core which can be viewed via the ⓘ button
- full iOS 16 support back in response to a plethora of user requests
# Changed
- to the latest Azahar core available on GitHub
- all emulation controllers bar Cytrus and Grape to the new redesign
- Library, Onboarding and What's New to use the same controller
# Fixed
- several iPad layout issues when emulating with Cytrus and Grape
- game controller support for all emulation controllers bar Cytrus and Grape
- this will require testing, PS5 game controller does work from my testing
- Plum does not support game controllers yet due to the weird 3/6 button layout
# Removed
- Lychee in favour of the new Mandarine core
- the Lychee folder will automatically be renamed to Mandarine upon initial launch
- Motion & Fitness onboarding step to hopefully fix macOS support
Added
- thumbsticks back to Cytrus on iOS and iPadOS 26 with an all-new Liquid Glass design
- multiplayer back to Cytrus on iOS and iPadOS 26 (chat is currently missing)
Changed
- the layout of several buttons with Cytrus and Grape on iOS and iPadOS 26 improving the overall layout and reducing the number of buttons on-screen
- the layout of Cytrus and Grape on iOS and iPadOS 26 to separate the screens, mimicking real devices
- multiplayer with Cytrus, rewriting the code to improve function handling and interface for user experience
Fixed
- all cameras with Cytrus significantly improving clarity and improving capture performance
- an issue with Cytrus improving the 5:3 and 4:3 aspect ratio screens
- an issue where save states for Cytrus would cause the app to crash when outdated
- an issue with Onboarding and What's New on iPad
Miscellaneous
- rewrote a large portion of Cytrus' bridging code in Swift 6 improving clarity and reducing the amount of code
- updated several dependencies and fixed a bunch of warnings related to C++2b
Added
- a new issue screen that displays per-core issues
- support for SDMC and NAND application for the Cytrus core
Changed
- how games are loaded to remove potential duplicates or invalid game files
Added
- support for installing 3DS game update files
- 4x upscaling to Grape, Guava and Kiwi
Changed
- Grape, Guava and Kiwi so that they all use the improved Metal renderer
- logging to be more clear, shorter due to reduced path names and more
- gamepad handling of connections and disconnections to (hopefully) fix all gamepad types support
- the SNES DSP so that resamples audio based on the generated samples fixing clicking sounds in some games
Fixed
- an issue where 3DS game files would be read multiple times bloating the log file and reducing performance
- an issue with the unsupported .3ds file extension by automatically renaming .3ds game files to .cci
Added
- a new "What's New" screen when launching the app after each new release
- a new Liquid Glass emulation controller for Grape and Kiwi
- multiple load and save state support for Grape
- support for iPhone Air and 17 series to all cores
Changed
- the renderer for Kiwi to now use Metal making use of the GPU
- aes_keys.txt for Cytrus so that it is now optional making all system files for Cytrus optional (only applies when games are decrypted)
Fixed
- a crash that would occur for Cytrus when tapping the bottom screen or an on-screen controller button when the system was not fully booted
Added
- Added a new onboarding process to request certain permissions and describe several changes
- Added the ability to import custom artwork for games with or without embedded artwork
- Added support for direct boot, loading and saving states and in-game saving when using the Grape core
- Added a new Guava core emulating the Nintendo Entertainment System
- Added a new filter menu button to the Library allowing users to hide or show specific cores and jump to a core
- Added a new import menu button to the Library with improvements to game and system file importing
Changed
- Changed the Guava, Lychee and Tomato emulation screens to use Liquid Glass with an improved layout (iOS 26 only)
- Changed how games are loaded upon app launch improving error handling and performance
- Changed game importing allowing users to select the correct core if a game' file extension belongs to multiple cores
- Changed system file importing allowing users to select them directly from the Library after which the app will copy them to the appropriate location
Fixed
- Fixed an issue where Sign in with Apple would display an error due to an invalid authentication key
- Fixed an issue with Lychee emulation where the RGB24 mode would cause flickering or malformed graphics
- Fixed an issue where a device would reboot when emulating using Cytrus caused by MoltenVK
Miscellaneous
- Updated all cores to their latest versions (excluding melonDS)
- Updated all dependencies to their latest versions
- Updated all Swift code to use the latest version of Swift 6
Add issues to GitHub if found so that Folium can be improved even further
https://github.com/folium-app/folium
- (Cytrus) Added Azahar settings to the settings screen
- (Cytrus) Added support for the left and right rear cameras
- (Cytrus) Added a new screen for multiplayer rooms
- (Lychee) Added support for booting exe files
- Changed the layout of the import games and settings menus
- (All) Changed skins so they actually work with Nintendo and PlayStation button names
- (All) Changed how emulation notifications are handled for application state and controller connections
- (Cytrus) Changed the core from Cytrus to CytrusAzahar
- (Cytrus) Changed how the settings screen is handled
- (Cytrus) Changed how multiplayer rooms are handled
- (Grape) Changed how the settings screen is handled
- (All) Fixed an issue where changing orientation would remove the settings button's menu
- (Lychee) Fixed an issue where rendering would be broken when in 24-bit mode
- (Lychee) Fixed a crash related to the RGB24 rendering mode
- Added haptic feedback when loading and saving states when emulating with Cytrus, Grape and NewGrape, feedback is different for a failed or successful load or save
- Added the ability to load and save states to the NewGrape core (melonDS)
- Added audio output support for the NewGrape core (melonDS)
- Added HQx upscaling support for the Grape and NewGrape cores
- Fixed crashing in NewGrape (melonDS) when pressing buttons
- Fixed minor errors related to the C and CXX dialect update below
- Updated all packages and targets to c2x and cxx2b
- Added a small "Swipe for more" footer when more than one cheat or save state
- Added the ability to delete accounts
- Added a new experimental NewGrape core based on melonDS 0.9.5
- Added the ability to use the Nintendo DSi mode to the NewGrape with appropriate files
- Connecting a controller no longer hides the settings button
- Cytrus' default skin on iPad and iPhone mini models now displays the correct blurred thumbsticks
- Fixed a large memory leak related to the camera when emulating with Cytrus
- Fixed a small memory leak related to file handling operations when emulating with Cytrus
- Updated Cytrus to the new SDL3 migration branch
- Updated the VulkanSDK to 1.4.309.0
- Added a new middle-man screen for 3DS games containing information about the game, it's cheats and save states (if any) and play and delete buttons
- Added support for the iPhone 16e and latest iPad models
- Added more information to 3DS games and added save state validation
- Added the ability to delete cheats and save states and toggle cheats in the middle-man screen
- Fixed an issue where load and save state buttons would not have an identifying image on iOS 17 or below due to incorrect SF Symbol names
- Fixed an issue where "force touching" the settings button during emulation would not bring up the menu the first time
- Fixed an issue where cheats for 3DS games would show for games that were not the currently selected one
- Reverted to a clean build of Citra (Cytrus) improving performance with the latest MoltenVK
- Fixed an issue where some games could not be displayed or installed
- Added symbols and text to blurred buttons to help discern function
- Added the ability to import missing files by tapping the respective file
- Added load and save states to the Game Boy Advance, Nintendo 3DS and Nintendo DS cores
- Re-implemented Game Boy Advance via the NanoBoyAdvance core
- Rewrote significant portions of the app to improve functionality and performance
- Switched all emulation screens to the new blurred style
- Updated all dependencies to ensure all the latest improvements are available
- Added PlayStation 1 emulation with the Lychee core (based on a modified PSXE by allkern)
- Added new default emulation controllers with visually appealing blur effects
- Added a new Missing Files option to the settings menu to assist with initial set up
- Added new options to the App Settings screen
- Added a new blurry button type to skins for skin creators
- Added real world pedometer data to the Cytrus core
- Added gyroscopic data to the Cytrus core
- Added widgets for Last Played and Play Time
- Added cached artwork for the Lychee and Mango cores
- Added the ability to delete games for the Lychee and Mango cores
- Changed the Cytrus Web API option from the App Settings screen to the Cytrus Settings screen
- Changed the cards on the Library screen to be the correct aspect ratio for their respective consoles
- Fixed an issue where the Mango core would crash when no audio or video data is available
- Fixed a minor memory leak for game icons using the Grape core
- Removed swipe to tap which caused issues where the button would be stuck down
- Added support for custom layout options for the Cytrus core
- Added the ability to open the Cheats screen when in-game for the Cytrus core
- Added a new log level setting for the Cytrus core to help with debugging
- Added basic support for DSi mode for the Grape core by updating NooDS
- Added landscape support for the Grape and Mango core on all iPhone models (iPad is WIP)
- Changed the number of columns for both Authentication and the Library screens
- Changed how the keyboard works for the Cytrus core enabling support for both iPad and iPhone
- Fixed an issue where all iPad models could not receive touch
- Fixed an issue where the on-screen controller would display again when the device orientation changes while a Bluetooth controller is connected
- Fixed a crash when installing system applications for the Cytrus core caused by applications with invalid artwork
- Fixed an issue where thumbsticks in custom skins would not use their assigned background artwork
- Fixed an issue where Nintendo DS game titles would be duplicated in the Library screen
- Updated the MoltenVK dependency which may fix some graphical issues
- Added support for cheats and multiplayer to the Cytrus core
- Added support for the iPad mini (A17 Pro)
- Changed how the import and settings buttons appear on the Library controller
- Added support for the iPhone 16 series
- Changed and updated core code
- Update MoltenVK to the latest available
- Added currently unimplemented Game Boy, Game Boy Color core, Tomato
- Added support for several more iPad device models
- Changed how library loading ensuring only the roms directory of each core is scanned, fixing potential duplicates and more
- Fixed an issue where the emulation screen would disappear when connecting a physical controller
- Removed automatic archive feature
- Added automatic hiding and showing of the on-screen controller when a physical controller is connected and disconnected
- Added support for the front camera in the Cytrus core
- Added YUV422 support for both the front and rear cameras in the Cytrus core
- Added an archive feature that will back up and reset the documents directory every major release to ensure a smooth transition between releases
- Added the ability to extract a previous archive reverting any changes
- Added support for the system apps in the Cytrus core
- Changed how several features are handled improving support for both iPad and iPhone
- Fixed crashing when using Sign in with Apple or Skip due to a damaged documents directory
- Fixed an issue with the AES keys in the Cytrus core
- Fixed an issue where the X/Y button on physical controllers would get stuck
- Fixed an issue where system apps would be duplicated in the Cytrus core
- Sorted games within the library screen alphabetically
- Added SNES emulation through the Mango core
- Added camera support to the Cytrus core
- Added controller support to all cores
- Added a BETA badge to work-in-progress cores
- Added "Sign in with Apple" for App Store specific features (optional)
- Added the delete functionality to all cores on the library screen
- Changed on-screen controls and skins improving handling and functionality
- Changed the Cytrus core to a low-end device focused fork of Citra, Mandarine
- Changed how the library and search are handled improving performance and usability
- Changed how the core settings are handled improving usability
- Changed how games and skins are loaded upon launch improving performance
- Fixed issues with the library screen removing memory leaks
- Adds back support for portrait when using Cytrus on iPhone
- Adds back thumbsticks to both iPad and iPhone
- Adds support for enabling LLE modules (for Pretendo)
- Reduce memory usage by up to 200 MB
- Changed how games are imported improving speed and fixing an issue where the library would flash constantly
- Fixed an issue where the default skins on iPad would not work when in landscape
- Fixed an issue where skins would not work when the skin didn't have a layout for the current orientation
- Fixed an issue where the audio output volume when using OpenAL would be very low
- Added support for enabling, disabling and removing cheats for Nintendo 3DS emulation
- Added support for booting the Nintendo 3DS Home Menu (when imported)
- Added a confirmation alert when using "Reset Settings" for Nintendo 3DS emulation
- Added skin support for Nintendo DS and Nintendo 3DS emulation
- Added support to the on-screen controller and default skin for PlayStation emulation
- Added support for iPad
- Changed the on-screen controller and default skin to (hopefully) work on all supported iPad and iPhone models
- Changed the user interface for the library
- Fixed an issue where the emulation state would not toggle with the application state
- Fixed an issue where Game Boy Advance games would not boot directly causing graphical issues
- Added all (except 3D related) settings to the Cytrus in-emulation options button
- Added a new, working Stop & Exit setting to the Cytrus in-emulation options button
- Changed Shader JIT to be disabled by default
- Changed the emulation screen (again) when emulating using Cytrus
- Changed the number of columns displayed in the library in preparation iPad support
- Changed how new games are imported to remove the full library reload requirement
- Fixed an issue with Nintendo DS game artwork memory allocation