MHForever

MHForever is a native PC port of Monster Hunter Freedom Unite for Windows and Linux that allows for higher resolutions and custom controllers.

README

MHForever

CI Release License: GPL-3.0-or-later Website

Monster Hunter Freedom Unite on PC: an unofficial native port through static recompilation.

MHForever turns the PSP version of Monster Hunter Freedom Unite (Monster Hunter Portable 2nd G in Japan, MHFU) into a native PC program: no emulator, any controller, and a launcher that sets everything up from your own disc image.

Right now only Monster Hunter Freedom Unite (European, North American and Japanese releases) is supported, and it is complete. More games are planned: MHForever is the first step of a wider Monster Hunter recompilation project, and each game is a module of its own.

Not affiliated with, endorsed by or sponsored by Capcom or Sony. Requires your own legitimate copy of the game. No game assets are included or downloaded: no disc image, textures, models, audio, text or saves. "Monster Hunter" is a trademark of its owner and is used here only to describe which games the project works with.

Website

https://mango77x.github.io/MHForever-site/

The project website explains what MHForever is, shows which games are supported, and always links to the latest release. It is built from its own repository, MHForever-site. The downloads, the code and the issues live here.

Community

Questions, bug reports, suggestions and release news: https://discord.gg/6xrxY2buDf. Bring your own copy of the game; there is no piracy talk there. Bugs can also be reported as issues.

Supported games

GameOriginal platformReleaseStatus
Monster Hunter Freedom UnitePSPEurope (ULES01213, v1.01)Playable
Monster Hunter Freedom UnitePSPNorth America (ULUS10391, v1.01)Playable
Monster Hunter Portable 2nd GPSPJapan (ULJM05500, v1.01)Playable
Other Monster Hunter gamesPSP, later PS2Planned, see the roadmap

The first four rows work today (online play is experimental). The others are plans, not promises: they are listed so you know where the project is going.

Where the project is today

Playable gameMonster Hunter Freedom Unite (PSP), European (ULES01213, v1.01) and North American (ULUS10391, v1.01) releases. It is the only game for now. Each release has its own video, audio and control settings in the launcher.
Frame rate30 fps as on the original console, or 60 to 180 fps (any multiple of 30) with frame interpolation, chosen in the game's settings in the launcher (Home → Game settings). Experimental: heavy scenes may not hold the top rates.
Online playExperimental (0.6). Quests together on the PSP ad hoc servers PPSSPP uses, with other copies of MHForever and with PPSSPP players; pick the server in the launcher under Settings → Online. Private rooms with a code and friends (added by code, who is online, invites) shipped in 0.8.0.
PlatformsWindows (64-bit) and Linux (64-bit). Players have reported it working on the Steam Deck (SteamOS); the maintainers have no Deck to test on, so Deck notes are in the documentation.
ControllersGamepads work out of the box. Tested with a PS5 DualSense; other pads recognized by SDL should work too. Keyboard and controller buttons are changed in Game settings (Home) or from the in-game menu.
SavesKept in Documents\MHForever\saves on Windows and ~/.local/share/MHForever/saves on Linux, one folder per game; settings in %APPDATA%\MHForever or $XDG_DATA_HOME/MHForever. Updating never loses them. Saves use the PSP format: import them from a PSP or PPSSPP in Game settings (your own version of the game: a European save only works with the European release, and a North American one with the North American release), or copy MHForever's into PPSSPP.
ResolutionUp to several times the original 480x272, with an optional smoother texture filter.
HD texturesTexture packs made for PPSSPP (a folder with a textures.ini, PNG or KTX2 images), such as KHD, for the European, North American and Japanese releases: choose one per copy of the game in Game settings → Texture pack. None is included: download a pack yourself.
Other games and regionsThe Japanese release (Portable 2nd G, ULJM05500) is playable too, with its Japanese text. Other games of the series are planned.
Latest releaseLatest release Release date See the Releases page.

It is early software: according to the maintainer's testing, single player can be played from start to finish, but expect rough edges and bugs. Reports are welcome.

How it works for a player

  1. Download MHForever from the Releases page and unzip it anywhere. On Linux the launcher needs WebKitGTK 4.1 and GTK 3 (see BUILDING.md).
  2. Open MHForever.exe on Windows or MHForever on Linux, and add your own .iso of Freedom Unite (a plain, uncompressed image of your UMD).
  3. The launcher checks your copy and prepares everything it needs from it on your PC. You can also let it keep a copy of your image in its own folder.
  4. Press Play.

The game's assets (graphics, audio, text, data) are never included in MHForever or sent anywhere: they are read from the image you provide. Your saves live in Documents\MHForever\saves on Windows and ~/.local/share/MHForever/saves on Linux (one folder per game), outside the program folder, so updating never loses them. Any controller recognized by SDL should work (tested with a PS5 DualSense); there are keyboard defaults too.

Keyboard: arrows = D-pad, WASD = analog stick, K/L/J/I = cross/circle/square/triangle, Q/E = L/R, Enter = Start, Backspace = Select. Change them, and the controller's buttons, in Game settings → Controls or from the in-game menu (Esc).

What this is

MHForever is not an emulator. The game's program is statically recompiled into native PC code, and the console's system services are re-implemented. The result is a normal desktop program (Windows or Linux) that runs the game directly, with a modern launcher around it. That is what makes things like higher resolutions, any controller and, later, online play practical.

Developed with AI assistance.

For developers and contributors

Build instructions are in BUILDING.md. Pull requests and bug reports are welcome; every change is reviewed and merged by the maintainer. See CONTRIBUTING.md.

OverviewArchitecture
PSP platformRecompiler
Runtime / HLEFreedom Unite module
Launcher, controllers, Steam DeckMultiplayer
Roadmap

Special thanks

  • theguyser, author of pokke (a port of the Japanese release of the same game): the PSP save-data cryptography that lets MHForever read and write saves in the PSP and PPSSPP format comes from his project, shared with his permission, along with his time and advice.
  • sodomon2, for the Linux packaging, the desktop integration and the launcher fixes that came with them (pull request #7).
  • ibonplix, for the first texture pack support (pull request #39): the PPSSPP quick hash, the KTX2 decoding and the launcher setting that the HD textures are built on.
  • Mobilozor, for proving HD texture packs on MHForever first (on SteamOS), and for the audit and test logs shared with the project.
  • TeamGDB's Yakumo (MIT), whose frame interpolation MHForever's is ported from, and whose texture packs showed how to load them without holding the game up.
  • PSPRecomp, the static recompiler framework this project is built on.
  • PPSSPP, for the executable decryption, the texture pack format, as the reference for how the PSP behaves, and for the ad hoc online play its players keep alive: MHForever plays on the same servers, and the launcher's list of servers comes from the one PPSSPP publishes.
  • FFmpeg, whose libavcodec decodes the movie pictures and sound and the game's music.
  • Kethen, for aemu_postoffice, the client and the protocol that PSP ad hoc servers speak, which MHForever's online play uses (GPL-3.0, included unmodified, with ENet, MIT).
  • The volunteers who run the PSP ad hoc servers for the PPSSPP community, and in particular those MHForever lists: Socom (socom.cc), Madness Gaming Network (psp.mgn.pub), Games Nexus (adhoc.gamesnexus.ovh), Psi-Hate (psi-hate.com) and Neko PSP (cat.wjg.jp).
  • tclamb/mhp2g-decomp, the matching decompilation of Monster Hunter Portable 2nd G, whose documented formats and names helped a great deal.
  • Everyone who tested the releases and reported problems on GitHub, Reddit and Discord.

The full list of third-party code and its licenses is in THIRD_PARTY.md.

License

GPL-3.0-or-later (see LICENSE). Third-party components keep their own licenses (see THIRD_PARTY.md).