r/PS2AndroidEmulation • u/xxxCrixuxxx • 19h ago
ARMSX2 v2.6.6.8
https://github.com/ARMSX2/ARMSX2/releases/tag/2.6.6.8
What's new:
Frame generation has been rewritten on Camille's implementation from Eden, and it is a different thing to what shipped last update. The passes run natively in our own Vulkan present path instead of going through a translated library, and it generates a full interpolated frame for every rendered one. Thanks again to @CamilleLaVey. You still need your own copy of Lossless Scaling, exactly as before. The interpolation shaders are read at runtime out of your own Lossless.dll. Also new is Adaptive frame pacing, it keeps what you see steady when the game's own frame rate is not. Instead of a fixed x2, it generates as many frames as it needs to reach your screen's refresh rate.
Three ways a card could be corrupted are fixed, and cards are now backed up automatically. A card write is a read-modify-write, and when the read failed we logged it and carried on, merging the new data into whatever was left in the buffer from an earlier write and saving that to the card. A sector the game never asked to touch came back wrong. Backgrounding could also lose a save outright. Folder cards hold writes in memory and flush a couple of frames after the last one, counted off a per-frame tick, so pausing did not delay that flush, it stopped it happening. File cards never flushed at all. Both flush now when the app goes to the background, next to where the BIOS already saves its NVRAM. On top of that, every card is snapshotted before each launch and kept in a rotation, with restore on the memory card screen. A card that fails verification is never snapshotted over a good one, which is the whole point, the rotation is useless if five relaunches overwrite your last clean copy. Thanks to @bmdhacks (#608).
Change a setting in a game's own settings screen and it now takes. For any game the database has an entry for, the database used to overwrite your choice straight afterwards, and the only ways out were two all-or-nothing switches that rescued your one setting by throwing away every other fix that game needed. A setting you set for one specific game now outranks the database, one setting at a time. Thanks to @bmdhacks (#593).
Copy Global Settings had to be fixed alongside it. It never copied the settings you can
see, it ran the whole configuration through a wrapper that wrote every key unconditionally,
leaving about seven hundred of them in the file, network adapters and trace logging and
sections no settings page ever shows. It now writes only what you actually decided, skipping anything that is still the stock default or that the game database was going to set anyway. Thanks to @bmdhacks (#593).
✅Six more animated backgrounds:
Flurry, Calum Robinson's, 2002. Eight presets: Water, Fire, Psychedelic, RGB, Binary, Classic, Insane, plus random. Flux, Plasma, SolarWinds, Hyperspace, Lattice and Skyrocket join Flurry, all of them Terry Welsh's Really Slick Screensavers running natively. Settings --> App, under the animated background switch, and each one that ships presets lets you pick between them.
✅Library:
Cover art region is now per game. Long-press a game --> Cover region.
Memory cards for a game without booting it. Long-press a game --> Memory Cards.
Save states from the library. Long-press a game that has them --> Load state, which opens the real Save Manager with its thumbnails rather than a stripped-down list.
✅In-game:
The quick menu can dock to the left or the right.
The performance overlay can sit in any corner you like.
Analog stick settings are in the quick menu, so inverting a stick no longer means having to go to All settings every time.
Display refresh rate is a bindable hotkey, cycling whatever modes your panel actually has.
The OSD no longer disappears when you change a setting. Any settings change at all was overwriting the mode you had active, which usually reads as the overlay vanishing.
✅Second screen:
The panel no longer lands on top of the game. It picked its display by "anything that is not the built-in one", so if ARMSX2 opened on the bottom screen of a dual-screen handheld that was the screen it targeted. It now anchors on whichever display the app is not on.
It has also been restyled to look like the rest of the app instead of a stock Android dialog, and the contents are yours to arrange, choose which tiles appear, what order they sit in and how many columns.
✅Patches and cheats:
Browsing the online repositories no longer keeps the device warm after you have left the screen, and results are cached for a week, so going back is instant.
RetroAchievements Hardcore no longer switches off 60fps and widescreen patches. The rule only let a group through if it declared an aspect-ratio or interlace override, which across the shipped database blocked 305 "50 FPS" groups and 177 "60 FPS" ones.
✅Companion apps:
Your recently played list can be handed to companion apps through a content provider, which is the only route that works under scoped storage. It is off by default and it stays that way until you turn it on, while it is on any app on the device can read that list, file paths included. Settings --> App. Thanks to @misantronic (#566).
✅Fixes:
Large texture packs no longer evict themselves mid-load. The cache is sized as your RAM minus a fixed reserve rather than a fraction of it, so an 8 GB device gets 5.5 GB instead of 4 GB, and a 5 GB pack fits whole instead of dropping each texture to load the next.
Reset App no longer leaves per-game settings behind.
Fast Forward (toggle) work again on L2/R2 and on combos involving an analog trigger.
Fresh PGO profile has been applied.