Skip to content

Releases: bmdhacks/malisx2

malisx2 0.2.3

Choose a tag to compare

@bmdhacks bmdhacks released this 22 Oct 23:08

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 malisx2 of bmdhacks/armsx2-turnip, commit db9bce6c3d36570ef996a898f53cbcde08db39e8
  • malisx2-0.2.3-b85d5f7f36.zip sha256 133c35a49c4197e9177969e69e4dba41ea2433598810277b4f37597c8751a78f
  • libvulkan_malisx2.so sha256 57ac2457c9e22279ffdcd1d056e2de3a5463e5194161539d6318289dcbf3ff56

malisx2 0.2.2

Choose a tag to compare

@bmdhacks bmdhacks released this 22 Oct 03:21

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 malisx2 of bmdhacks/armsx2-turnip, commit db9bce6c3d36570ef996a898f53cbcde08db39e8
  • malisx2-0.2.2-18ad24d9a2.zip sha256 f860040265427e55abe4515eed75c302870708b4cbb613fedb7133997e2b3b6d
  • libvulkan_malisx2.so sha256 6eb7afd301037fc884abc972ea2c893a235e2f62e6b5d9c1e04e48aa967e4c3f

malisx2 0.2.1

Choose a tag to compare

@bmdhacks bmdhacks released this 21 Oct 03:41

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 malisx2 of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2
  • malisx2-0.2.1-7b57547cd1.zip sha256 80166d8dc2f1051158966cafdf7d47e0866e13976fcc609e12c2e897695b3ae0
  • libvulkan_malisx2.so sha256 8a59410ab65424e1797c88e63e31c9a7a156dd25ebb5a5aec8f56d7ea5574b96

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

malisx2 0.1.5 Pre-release
Pre-release

Choose a tag to compare

@bmdhacks bmdhacks released this 14 Oct 19:28

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_flags setting (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.txt before starting the app again (it is overwritten on each start).

Build

  • malisx2 0.1.5, commit 090e0c4
  • Mesa: branch malisx2 of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2
  • malisx2-0.1.5-090e0c43a1.zip sha256 a3061b5135ef7bbecbdfc25b0db0b8370da8259d53f9daf3b4df3c79437d5cd1
  • libvulkan_malisx2.so sha256 eb02e521ad580cc9860870c304b0f95220a320eaaea0228e994b4727d7374657

malisx2 0.1.4

malisx2 0.1.4 Pre-release
Pre-release

Choose a tag to compare

@bmdhacks bmdhacks released this 07 Oct 22:54

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_flags setting (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.txt before starting the app again (it is overwritten on each start).

Build

  • malisx2 0.1.4, commit fdbf88e
  • Mesa: branch malisx2 of bmdhacks/armsx2-turnip, commit 730a6284cb7a88f6c19a07f1caea35c7a2ae64f2
  • malisx2-0.1.4-fdbf88e508.zip sha256 35cec77da26ba9bc23531f423f34ba741f0fe82e212feb72ce0967023d6ee3d9
  • libvulkan_malisx2.so sha256 b27bfa701a9e727aa4bd52ecc858320ae930a22c2343635d58925f5f632dd7de