Max Payne Mobile Nintendo Switch port
This is a wrapper/port of the Android version of Max Payne Mobile. It loads the original game binary, patches it and runs it. This is probably not entirely stable yet, so expect issues.
This is a port of the PS Vita version adapted to work on the Switch with AArch64 .so
files.
How to install
This requires access to the following system calls:
svcMapProcessCodeMemory
(0x77)svcUnmapProcessCodeMemory
(0x78)svcSetProcessMemoryPermission
(0x73)
I actually have no idea what that entails except the fact that you have to be running a CFW. Good luck.
You're going to need:
.apk
file for version 1.7 (latest version at the time of writing) that includesarm64-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.
To install:
- Create a folder called
maxpayne
in theswitch
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 forMaxPayneSoundsv2.msf
and any extra languages that you want. - Extract the contents of the
.zip
file from the latest release into/switch/maxpayne/
. Replace everything.
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.
If the game crashes on startup, please post an issue with your last crash report attached.
How to build
You're going to need devkitA64 and the following libraries:
switch-mesa
switch-libdrm_nouveau
switch-sdl2
devkitpro-pkgbuild-helpers
- openal-soft
After you've obtained all the dependencies and ensured devkitA64 is properly installed and the DEVKITPRO
environment variable is set, build this repository using the commands:
git clone https://github.com/fgsfdsfgs/max_nx.git && cd max_nx
source $DEVKITPRO/switchvars.sh
make
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.