Max Payne Mobile Switch

From GameBrew
Max Payne Mobile
Maxpaynenx.png
General
Authorfgsfdsfgs
TypeAction
Versionr1
LicenseMIT License
Last Updated2021/02/24
Links
Download
Website
Source

This is a wrapper/port of the Android version of Max Payne Mobile. It loads the original game binary, patches it and runs it. It's basically as if we emulate a minimalist Android environment in which we natively run the original Android binary as is.

This is a port of the PS Vita version adapted to work on the Switch with AArch64 .so files.

Note: This is probably not entirely stable and is more of a proof of concept of an AArch64 .so loader, since you can just play the original Android version using Switchroot.

Features

  • 720p or 1080p screen resolution.
  • Re-enabled character shadows and debris effects.
  • Rebindable gamepad controls.
  • Option to turn off the god damn bloom effect.

Installation

This requires access to the following syscalls:

  • svcMapProcessCodeMemory (0x77)
  • svcUnmapProcessCodeMemory (0x78)
  • svcSetProcessMemoryPermission (0x73)

It is unclear what that entails for the end user except the fact that you have to be running a CFW.

What you are going to need:

  • .apk file for version 1.7 (latest version at the time of writing) that includes arm64-v8a libraries.
  • .obb file for version 1.6 or 1.7 (usually located at /sdcard/android/obb/com.rockstar.maxpayne/main.3.com.rockstar.maxpayne.obb).

Both files can be obtained from your phone if you have a copy of the game installed. Both files can be opened or extracted with anything that can extract .zip files.

How to install:

  • Create a folder called maxpayne in the switch folder on your SD card.
  • Extract the contents of the assets folder from your .apk to /switch/maxpayne/.
  • Extract lib/arm64-v8a/libMaxPayne.so from your .apk to /switch/maxpayne/.
  • Extract the contents of the .obb file into /switch/maxpayne/. You can skip all the .msf files except for MaxPayneSoundsv2.msf and any extra languages that you want.
  • Extract the contents of the .zip file from the latest release into /switch/maxpayne/. Replace everything.

User guide

Notes

This will not work in applet/album mode: even though MEMORY_MB can very well be lowered to 232MB in config.h, there's still 0MB left after the newlib heap is allocated. This can probably be fixed later. For now use a game override or NSP hbmenu.

The port has an extra config file, located at /switch/maxpayne/config.txt. It is created when you first run the game and allows you to tweak some internal settings. For more detailed descriptions of said settings check the wiki article.

The game will show an error message if it detects that anything is wrong. Please read those and check the relevant parts of your setup.

If the error says "Could not find symbol ...", that likely means you have the wrong .apk or .so file. You need version 1.7, others will not work. Make sure also that you've extracted libMaxPayne.so from the arm64-v8a subfolder.

Screenshots

maxpaynenx3.png

maxpaynenx2.png

maxpaynenx.png

Compatibility

Tested by the author on Switch running Atmosphere 0.18.1 with Mesosphere on FW 10.1.0.

Known issues

  • The game takes a while to start and load levels.
  • Key binding menu does not display button names correctly.
  • Intro movies don't play, since the player is not implemented.

Changelog

r1

  • Initial release.

Credits

  • TheOfficialFloW for the method and work on the PS Vita port.
  • Rinnegatamante, Bythos, frangarcj, CBPS for help with the PS Vita port.
  • Freakler for providing the icon.
  • Switchbrew for libnx.

External links

Advertising: