Repository navigation
Releases: bmdhacks/malisx2
Release list
malisx2 0.2.3
Vulkan driver for the ARMSX2 PlayStation 2 emulator on Android, for devices with an Arm Mali GPU:
- Mali-G615 / G715 — tested on the Anbernic RG 477V.
- Mali-G57, G68, G77, G78, G78AE — tested on the Anbernic RG 476H. The other GPUs in this family are untested.
- Mali-G52 / G52 r1 — experimental: for trying out, not yet for everyday play. Courtesy of @TheGammaSqueeze.
Install: in ARMSX2, Settings → custom GPU driver → install from file, and pick malisx2-0.2.3-b85d5f7f36.zip.
What's new since 0.2.2
- Rockchip RK3576 handhelds now really work, such as the Anbernic RG Vita Pro. 0.2.2's fix for the "failed to create swap chain" error did not work on these devices; this one does, confirmed by user Rammstone. Thank you for the logs!
Nothing else changed from 0.2.2.
Good to know
- ARMSX2 builds its shader cache once after a driver update; the first moments of the first game may be slower than usual.
- Mali-G52 is experimental. Early tests are promising, but if a game misbehaves there, use the system driver.
- Mali-G57 family: if the driver does not start on your device, ARMSX2 uses the system driver; please send a log.
- A few HUD colours can come out slightly brighter than on a real PS2 (for example Gran Turismo 4's speedometer). Other drivers show the same.
- Reporting a problem: take a bug report or a logcat right after it happens, and keep ARMSX2's
logs/emulog.txt(it is overwritten when the app starts again).
Build
For support:
- malisx2
0.2.3, commit b85d5f7 - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit db9bce6c3d36570ef996a898f53cbcde08db39e8 malisx2-0.2.3-b85d5f7f36.zipsha256133c35a49c4197e9177969e69e4dba41ea2433598810277b4f37597c8751a78flibvulkan_malisx2.sosha25657ac2457c9e22279ffdcd1d056e2de3a5463e5194161539d6318289dcbf3ff56
malisx2 0.2.2
Vulkan driver for the ARMSX2 PlayStation 2 emulator on Android, for devices with an Arm Mali GPU:
- Mali-G615 / G715 — tested on the Anbernic RG 477V.
- Mali-G57, G68, G77, G78, G78AE — tested on the Anbernic RG 476H. The other GPUs in this family are untested.
- Mali-G52 / G52 r1 — experimental: for trying out, not yet for everyday play. Courtesy of @TheGammaSqueeze.
Install: in ARMSX2, Settings → custom GPU driver → install from file, and pick malisx2-0.2.2-18ad24d9a2.zip.
What's new since 0.2.1
- Works with more handhelds' Mali driver versions. Devices with a Mali-G57-family GPU whose Android kernel carries an older Mali driver than the ones we tested were turned away before; they are now let in. Only the kernels on our own test devices are tested.
- Fixes the black screen on Rockchip RK3576 handhelds, such as the Anbernic RG Vita Pro, where ARMSX2 stopped with "failed to create swap chain". We do not have one of these devices, so this is untested: please tell us if it works.
- Slightly smaller shaders from a newer version of the shader compiler. Same pictures; on the two GPUs we test, the frames ARMSX2 draws are the same as before.
- A fix for a possible GPU fault when a post-processing filter and normal drawing run at the same time.
- Mali-G52: uses the same colour blending method ARMSX2 already uses on the other two GPUs.
- Linux (not part of this download): the source now works with Arm's window-system layer and has build files for ROCKNIX, thanks to @beebono .
Good to know
- ARMSX2 builds its shader cache once after a driver update; the first moments of the first game may be slower than usual.
- Mali-G52 is experimental. Early tests are promising, but if a game misbehaves there, use the system driver.
- Mali-G57 family: if the driver does not start on your device, ARMSX2 uses the system driver; please send a log.
- A few HUD colours can come out slightly brighter than on a real PS2 (for example Gran Turismo 4's speedometer). Other drivers show the same.
- Reporting a problem: take a bug report or a logcat right after it happens, and keep ARMSX2's
logs/emulog.txt(it is overwritten when the app starts again).
Build
For support:
- malisx2
0.2.2, commit 18ad24d - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit db9bce6c3d36570ef996a898f53cbcde08db39e8 malisx2-0.2.2-18ad24d9a2.zipsha256f860040265427e55abe4515eed75c302870708b4cbb613fedb7133997e2b3b6dlibvulkan_malisx2.sosha2566eb7afd301037fc884abc972ea2c893a235e2f62e6b5d9c1e04e48aa967e4c3f
malisx2 0.2.1
Vulkan driver for the ARMSX2 PlayStation 2 emulator on Android, for devices with an Arm Mali GPU:
- Mali-G615 / G715 — tested on the Anbernic RG 477V.
- Mali-G57, G68, G77, G78, G78AE — tested on the Anbernic RG 476H; needs a reasonably new Mali kernel driver (r40p0 or newer). The other GPUs in this family are untested.
- Mali-G52 / G52 r1 — new in this release, experimental: for trying out, not yet for everyday play. Courtesy of @TheGammaSqueeze
Install: in ARMSX2, Settings → custom GPU driver → install from file, and pick malisx2-0.2.1-7b57547cd1.zip.
- malisx2
0.2.1, commit 7b57547 - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2 malisx2-0.2.1-7b57547cd1.zipsha25680166d8dc2f1051158966cafdf7d47e0866e13976fcc609e12c2e897695b3ae0libvulkan_malisx2.sosha2568a59410ab65424e1797c88e63e31c9a7a156dd25ebb5a5aec8f56d7ea5574b96
What's new since 0.1.5
- Handhelds with a Mali-G52 now work. That is the graphics chip in many RK3566/RK3568 handhelds; 0.1.5 could not drive them at all. It is new and only lightly tested, so treat it as a preview.
- Nothing changes for the G615 and the G57: same pictures, same speed as 0.1.5 on both of our test devices.
Good to know
- ARMSX2 builds its shader cache once after a driver update; the first moments of the first game may be slower than usual.
- Mali-G52 is experimental. We have not run ARMSX2 on it yet, and one G52 board we tried stopped on a very heavy stress scene. If a game misbehaves there, use the system driver.
- Mali-G57 family: needs a Mali kernel driver at r40p0 or newer; on older kernels the driver does not start and ARMSX2 uses the system driver.
- A few HUD colours can come out slightly brighter than on a real PS2 (for example Gran Turismo 4's speedometer). Other drivers show the same.
- Reporting a problem: take a bug report or a logcat right after it happens, and keep ARMSX2's
logs/emulog.txt(it is overwritten when the app starts again).
malisx2 0.1.5
Vulkan driver for the ARMSX2 PlayStation 2 emulator on Android, for Arm Mali GPUs on the kbase kernel driver:
- Mali Valhall arch v11: Mali-G615, G715 (tested on the Anbernic RG 477V, MediaTek MT6897).
- Mali Valhall arch v9: Mali-G57, G68, G77, G78, G78AE (tested on the Mali-G57 MC4 in the Anbernic RG 476H, Unisoc T820). The other v9 GPUs share the G57's architecture but have not been tested on a device yet.
Install: in ARMSX2, Settings → custom GPU driver → install from file, and pick malisx2-0.1.5-090e0c43a1.zip.
What's new since 0.1.4
- Faster texture uploads. Copying texture data from a buffer into an image now moves a 4x4 group of texels per GPU thread instead of one texel, for 1-, 2- and 4-byte texel formats. Games that stream many textures each frame gain the most. Measured with ARMSX2 on Baldur's Gate: Dark Alliance's water area, which uploads about 19 MB of textures a frame:
- Mali-G57 (RG 476H): the GPU's upload work drops from 40.7 to 6.8 ms a frame, and the scene goes from about 16 to about 30 fps at 1x.
- Mali-G615 (RG 477V): median frame time 16.8 → 13.1–13.6 ms.
- Rendered frames are byte-identical to 0.1.4 on both GPUs, and a new on-device upload test passes on both.
- Because the version is part of the driver's identity, ARMSX2 rebuilds its pipeline cache once on first start with 0.1.5.
Since 0.1.3
- Android 15: Android 15's Vulkan loader asks the driver one extra question before it creates the screen's swapchain, and 0.1.3 answered it with an error. The swapchain was then never created: games ran, with sound, on a black screen. 0.1.4 answers it. Android 13, 14 and 16 behave as before.
Since 0.1.2
- Swapchain buffers when a system setting can't be read: if the system does not let the driver read the graphics allocator's
ro.vendor.arm.gralloc.no_afbc_usage_flagssetting (a possibility on custom ROMs), the driver now asks for uncompressed screen buffers in a way any Arm allocator honours, instead of using a value that only fits MediaTek phones. Nothing changes on devices where the setting is readable, or on the G615.
Since 0.1.1
- MediaTek job-manager phones (for example the Helio G99 / MT6789 with a Mali-G57 MC2, such as the Samsung Galaxy A16, confirmed working): MediaTek's kernel driver expects a longer job description than Arm's. 0.1.1 sent the shorter one there and stopped before the first frame. The driver now detects which kind of kernel it is on and uses the right one.
- Diagnostics: if a wait for the GPU or for the display takes more than a second, or an Android sync file cannot be imported, the driver says so in the Android system log (logcat tag
MESA), so a report with a logcat shows where it stopped.
Requirements and known limits
- ARMSX2: use a current nightly; it enables in-tile framebuffer reads and push descriptors with this driver and lists it in the driver manager on Mali v9 and v11. ARMSX2 2.8.2 works too, but a few games (Shadow of the Colossus, Katamari Damacy) are slower than on Arm's driver at 2x upscaling there.
- Kernel, v9 GPUs only: needs a Mali kernel driver at Arm's r40p0 or newer (kernel interface 11.36 or later). On older kernels, common on G77/G78 phones, the driver does not start and ARMSX2 falls back to the system driver.
- Accuracy: with dual-source blending, ARMSX2 blends some draws into PS2 16-bit framebuffers in hardware, which skips the PS2's colour truncation. A few HUD elements (for example Gran Turismo 4's speedometer) come out a few levels brighter, as on other drivers with this feature.
- Reporting a problem: right after it happens, take a bug report (Developer options → Take bug report) or a logcat, and copy ARMSX2's
logs/emulog.txtbefore starting the app again (it is overwritten on each start).
Build
- malisx2
0.1.5, commit 090e0c4 - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2 malisx2-0.1.5-090e0c43a1.zipsha256a3061b5135ef7bbecbdfc25b0db0b8370da8259d53f9daf3b4df3c79437d5cd1libvulkan_malisx2.sosha256eb02e521ad580cc9860870c304b0f95220a320eaaea0228e994b4727d7374657
malisx2 0.1.4
Vulkan driver for the ARMSX2 PlayStation 2 emulator on Android, for Arm Mali GPUs on the kbase kernel driver:
- Mali Valhall arch v11: Mali-G615, G715 (tested on the Anbernic RG 477V, MediaTek MT6897).
- Mali Valhall arch v9: Mali-G57, G68, G77, G78, G78AE (tested on the Mali-G57 MC4 in the Anbernic RG 476H, Unisoc T820). The other v9 GPUs share the G57's architecture but have not been tested on a device yet.
Install: in ARMSX2, Settings → custom GPU driver → install from file, and pick malisx2-0.1.4-fdbf88e508.zip.
What's new since 0.1.3
- Android 15: Android 15's Vulkan loader asks the driver one extra question before it creates the screen's swapchain, and 0.1.3 answered it with an error. The swapchain was then never created: games ran, with sound, on a black screen. 0.1.4 answers it. Android 13, 14 and 16 behave as before.
Since 0.1.2
- Swapchain buffers when a system setting can't be read: if the system does not let the driver read the graphics allocator's
ro.vendor.arm.gralloc.no_afbc_usage_flagssetting (a possibility on custom ROMs), the driver now asks for uncompressed screen buffers in a way any Arm allocator honours, instead of using a value that only fits MediaTek phones. Nothing changes on devices where the setting is readable, or on the G615.
Since 0.1.1
- MediaTek job-manager phones (for example the Helio G99 / MT6789 with a Mali-G57 MC2, such as the Samsung Galaxy A16, confirmed working): MediaTek's kernel driver expects a longer job description than Arm's. 0.1.1 sent the shorter one there and stopped before the first frame. The driver now detects which kind of kernel it is on and uses the right one.
- Diagnostics: if a wait for the GPU or for the display takes more than a second, or an Android sync file cannot be imported, the driver says so in the Android system log (logcat tag
MESA), so a report with a logcat shows where it stopped.
Requirements and known limits
- ARMSX2: use a current nightly; it enables in-tile framebuffer reads and push descriptors with this driver and lists it in the driver manager on Mali v9 and v11. ARMSX2 2.8.2 works too, but a few games (Shadow of the Colossus, Katamari Damacy) are slower than on Arm's driver at 2x upscaling there.
- Kernel, v9 GPUs only: needs a Mali kernel driver at Arm's r40p0 or newer (kernel interface 11.36 or later). On older kernels, common on G77/G78 phones, the driver does not start and ARMSX2 falls back to the system driver.
- Accuracy: with dual-source blending, ARMSX2 blends some draws into PS2 16-bit framebuffers in hardware, which skips the PS2's colour truncation. A few HUD elements (for example Gran Turismo 4's speedometer) come out a few levels brighter, as on other drivers with this feature.
- Reporting a problem: right after it happens, take a bug report (Developer options → Take bug report) or a logcat, and copy ARMSX2's
logs/emulog.txtbefore starting the app again (it is overwritten on each start).
Build
- malisx2
0.1.4, commit fdbf88e - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2 malisx2-0.1.4-fdbf88e508.zipsha25635cec77da26ba9bc23531f423f34ba741f0fe82e212feb72ce0967023d6ee3d9libvulkan_malisx2.sosha256b27bfa701a9e727aa4bd52ecc858320ae930a22c2343635d58925f5f632dd7de