MH4U Citra Emulation Station
Welcome to a semi-comprehensive, unofficial guide to setting up and configuring unofficial
builds of Citra to play Monster Hunter 4: Ultimate! For starters, have a look at the basic System
Reqs/Recommendations.
System Requirements
To run Citra effectively, regardless of build version, your basic requirements will be a
64-bit OS and any GPU that supports OpenGL 3.3 or better. Beyond that, your goal is to
have a processor with the highest per-core stable clock speed as possible.
Citra is only able to address / operate on one CPU core essentially, so having a very fast
multicore processor with low clock speed will underperform compared to a slower
multicore processor with higher core clock rates.
The offhand rule of thumb is to be running Windows 7 x64 or better (or Linux if you’re a
fancy lad, but you probably don’t need this guide if you’re running your own kernels,
etc.), a GTX 970 or better, and an i5 6000 or better.
AMD Ryzen Chipset can have issues with Citra, but if your clock speed is sound, you
should be fine.
ATI Radeon GPUs are another story: ATI doesn’t have good OpenGL drivers at all, and
as of a while back, Citra offloads some of the work to the GPU to process, what this
results in is a variety of somewhat unfortunate issues or limitations. MH4U can be
playable with a config like this, but it will underperform compared to a similar Nvidia
setup. A somewhat common issue with ATI cards seems to be a hard lock of 30fps
despite having good hardware.
ATI recommends enabling Vertical Sync and turning Triple Buffering on to help with
OpenGL issues, though the results are limited at best. Always be sure to have the most
current ATI driver you can and cross your fingers for full feature OpenGL drivers one day.
Also note: Citra is very CPU heavy on *one core* and most applications multithread over
multiple cores, as a result, unless you have very powerful hardware, you’ll likely want to
*ONLY RUN CITRA* with no other applications open for best performance.
Next, take a look at these links from the Citra Official team on how to rip your copy of the game,
as well as move your save data and DLC.
For Cartridge
https://github.com/citra-emu/citra/wiki/Dumping-Game-Cartridges
For Digital Install
https://github.com/citra-emu/citra/wiki/Dumping-Installed-Titles
To Retrieve Save and DLC / Event Quests
https://github.com/citra-emu/citra/wiki/Dumping-Save-Data-from-a-3DS-Console
To perform any of these steps, you’ll need a 3DS with Custom Firmware (LumaOS,
Godmode, various arm9loadhax related things) and a save manager like Checkpoint.
Please see 3ds.guide for full instructions and information regarding CFW.
Citra Builds To Know And Sing
Once your PC and 3DS are good to go, you’re ready to find an unofficial Citra build. Rasp and
Valentin (vvanelslande) builds are the go-to and all screenshots will reflect those two
branches. Both of these unofficials are currently deprecated and not ongoing projects, but are
the best currently known builds for MH4U.
Most Recent Valentin:
https://mega.nz/file/XyQiDApJ#0ug18ZuUEigDtJF21zIWhIpB4ThtZ66RMG_heDIAS4A
Top of page is most recent release, you’ll want to grab the windows .7z file, which is
typically the 3rd link in the list
Older stable Valentin (2.1) for users who may be experiencing issues with 13.x build
above:
https://mega.nz/file/zu4hGAxB#V1G22n-P5OTCcM2aUtze6iCj-1e5icJw-xSWu35FI4Y
Most Recent Rasp
https://mega.nz/#!t0s2FYiC!MTMRbMVaqfvfXxtBnpRECzbIQzRYhOkstakvt_2s8SU
Next, unzip whichever build you chose and start things up with the citra-qt or citra-valentin-qt
application/exe. Point Citra at whatever folder you’ve saved your .cxi file (from the cartridge
dump steps above) in and we can move on to configuration.
Configuration
Before diving in to Graphics, take a moment to configure whatever controller you’re planning to
use - the screenshots here reflect a DS4 with ds4windows, but you should see similar input
maps with whatever controller you choose. To configure controls, go to Emulation -> Configure
or Emulation -> Configuration -> Open Configuration Window (in Rasp and Valentin
respectively) and select Controls from the sidebar.
Control Configuration
Note, while configuring the ZL and ZR buttons, be sure the mapping reads Axis + 2 or 5
rather than - 2 or 5; some users report that fully depressing the L2/R2 triggers on your
controller before clicking to map will help ensure this. Personally, I’ve had better luck
tapping it after lightly, but controllers are strange and mysterious
For Analogs, instead of mapping directly, click the Set Analog Stick button, which will
bring up this screen
Do as it says for each Analog and you’re good to go.
Now for the fun part. Graphics Configuration is going to likely be the thing you spend the most
time tweaking and adjusting to dial in performance to your liking. For this section, I’ll be referring
to screenshots and settings in the most recent Valentin build, most settings will be similarly
positioned in Rasp builds.
The first thing to do is to start the game and play through until you get to Val Habar, as the
starting village is a great place to test performance. Due to the depth, number of characters
present, and/or forced camera movement, Val Habar and Dundorma are more demanding that
almost any hunt in the game, so getting good performance here is an indicator that you’ll be
good to go otherwise.
If you’re unable to progress to Val Habar, feel free to try config settings and hacks, but in general,
testing in town will be more productive.
Achieving 100%/100% Game Speed
The most important thing in emulating MH4U is getting the game to run at 100% speed
consistently. To start, open Configuration and locate Limit Speed Percent in the General config
menu. Uncheck this and run the game. If you’re already running at greater than 100% out of
100% speed (in the lower right, parended next to FPS), you may not need to add custom
ticks (FMV Hack settings) to force your hardware to keep resources open and available, despite
only one core being active. If so, cool, you’re good to go - check the Limit Speed Percent box
again and have fun playing.
If your speed dips below 100%/100%, it’s time to start using Custom Ticks to pick up the pace!
Uncheck Limit Speed Percent again, and just below, check Custom CPU Ticks and enter a
value. The exact tick rate that will work for you will vary, but keep increasing by intervals of 200
~ 500 or so until you reach an ingame reading of greater than 100%/100% In this menu, you
can also force simulated Over- or Under-clocking of your the 3DS CPU to adjust performance -
the level to which this is useful will vary greatly depending on your specific CPU, though I’ve
rarely seen positive results from *severe* over or underclock and 10 ~ 25% will probably be
more useful.
I try to hit something near 125%~135%/100% while standing near the smith in Val Habar to leave
some extra overhead for adjusting resolution and other graphics improvements which will in most
cases, lower your performance from this baseline, though in Valentin’s many of these options are
already enabled by default other than screen resolution, so your testing may vary.
Note: Tick Rate and ultimate FPS performance have an inverse relationship - if after setting
resolution and graphic settings the way you like you’re seeing low FPS, try to lower your ticks
incrementally until your locked speed percent stops being 100%
Once you’re happy with the speed you’ve achieved, we can start messing with resolution and so
on. First replace the check in Limit Speed Percent, and then navigate to Emulation ->
Configuration -> Open Configuration Window once again and Graphics on the sidebar
should bring you here
Currently, you’ll be set to Native resolution in the Internal Resolution dropdown; select
whatever resolution you’d like to try to work with (though resolutions greater than 4x may have
very little impact visually based on the limitations of the art assets in the game).
You can use Enable Linear Filtering to smooth various edges and generally improve visual
performance. I disable it because my laptop is middle of the road, but the results are nice if you
can spare the resources.
Stereoscopy is largely unnecessary, but does exist if you want to play around with 3D for some
reason (note, it will simply split the screen into two identical ones, since your PC is not a
stereoscopic 3D screen having thing, probably). There is one niche case to use it to resolve a
possible issue, but see the FAQ below for details on that.
Use Custom Textures and Dump Textures are options added in more recent Citra Official stuff
and incorporated into the Unofficial builds. I have very limited experience with this aspect of
Citra emulation, but fortunately the Citra/4U community is developing some HD Texture stuff for
MH4U and have graciously allowed it to be linked later in the guide.
From here, we’ll move on to the Advanced tab to check out some other functions and options.
The first option in Advanced, Enable Hardware Renderer is mandatory.
Underneath Hardware Render, you’ll see several other options:
Sharper Distant Objects is a QOL feature that can improve the appearance of, you
guessed it, distant textures / background textures. User preference, resources
permitting.
Ignore Format Reinterpretation is a hack that allows Monster Roars to play at full
speed. Without this option, roars (and the radial visual effect from roars) can cause
severe slowdowns.
Enable Hardware Shader is a mandatory setting to play at full speed and is part of the
Hardware Render set, etc.
Accurate Multiplication is a quality gain but can be very taxing. If you’ve already hit
your resolution goals, have linear filters on, and have speed to spare, give it a shot.
Enable Shader JIT needs to be on, so leave it on, or else (things will not work as well,
probably, perhaps).
Reduce Stuttering is a relatively new feature that helps to reduce micro-stutters and other
load-in hitches and issues by caching things to disk instead of holding them in memory, etc. A
performance gain, generally.
At this point, you should be good to go, or very nearly - enjoy your hunts and fingers crossed for
amazing Desire Sensor Avoiding Luck. But, if things are being a little janky or just not
cooperating with you…
Cheats And Workarounds
Strange things happen with emulation on a pretty regular basis, and Citra is no exception. In this
section, we’ll discuss some ways to limit that strangeness or improve your experience if
configuration has left you at a loss for playability.
First off, here is as good a place as any to familiarize yourself with the config-qt or
config-valentin-qt file located in your AppData directory (C: \ Users \ [yourname?] \ AppData
\ Roaming \ Citra \ Config) If you are going to manually edit this config text for any reason, for
your own sanity’s sake, please use Notepad++ or a similar text editor instead of the default
Notepad or Wordpad. If you are going to edit this file, save a backup. If you’re using more than
one build of Citra, back up your configs and cut-paste them back and forth to avoid overwriting
settings on one or both when making changes. Valentin and any other build are a special case,
because of the name structure and pointing for that build - both can be used/played without
necessitating a lot of file moving. As of the most recent Valentin build, finding and dinking
around with your config has become much simpler:
The circled buttons let you nuke your config or find the file location with relative ease, hooray!
Locking/Lowering Screen Refresh
Making changes to your Refresh rate will impact your potential FPS (though Citra cannot really
exceed 60fps, so for our purposes, we’ll only be discussing lowering it). By default, Screen
Refresh is set to 60, which is all well and good - but what if you’re sitting at 95% / 100% speed
at best and just can’t seem to get to 100% without losing quality or resolution? What if your
speed is at 100%, but your FPS fluctuates too much and is making you dizzy or nauseous?
Well, friends, try lowering the Screen Refresh to 55, 50, 45, or even 30 to lock your max FPS (in
Graphics -> Advanced) to that rate and also reduce strain on the resources you’re trying to use
for improved quality! Huzzah!
Cheat Embeds / Render Cheats for Citra (thanks to mikewii7 at GBA Temp!)
MH4U 30FPS Lock MH4U Render Settings MH3U 30FPS
61057194 00000000 610572CC 00000000 60CA87D8 00000000
B1057194 00000000 B10572CC 00000000 B0CA87D8 00000000
00000030 41F00000 00006BA8 010F036E 00000030 41F00000
D2000000 00000000 D2000000 00000000 D2000000 00000000
Render Code function changes for third line, second octet
011F036E = FSAA_2D::OFF
011F436E = FSAA_2D::OFF|NoAADisplay1::ON
010F036E = FSAA_2D::OFF|mDitherDisplay0::OFF
^^ (this is a big one for folks who notice the dither and are maddened by it, and the default in the above)
010F436E = FSAA_2D::OFF|mDitherDisplay0::OFF|NoAADisplay1::ON}
Cheats to do some things! Particularly, to remove Dithering, adjust Antialias forced settings in
MH4U, and so on. These codes can be embedded by going to Emulation -> Cheats and
entering the codes as listed. You can also add cheats via the config text file.
Forced Nvidia Options That May Do Things?
I use a few options in my Nvidia Control Panel to force some settings for citra-qt, and seem to
have some nominal improvement as a result, but I haven’t any idea if these actually do *much* -
however, if you’re looking for things to try, have at it!
Some FAQ Type Things
“The opening cinematic runs like terrible butt, if butt were 1 : 1 converted to a traditional arts
medium. Can I ‘Cutt Off The Butts?’™ ”
The reason this is chugging is because Custom Ticks are enabled at all. Movies don’t like
being told to run at something other than their very specific, accurately shaded and
paced 30fps rates. So, turn off FMV Hack / Ticks and it should be fine. Turn back on to
play and use any time a game cinematic plays.
Note, as of Rasp’s builds and ongoing, a CTRL+T hokey will toggle ticks on and off, which helps a
lot for the full video cutscenes that crop up in early game!
“The image seems fuzzy, sort of like 3ds 3D is turned on. What's the deal?”
The AA settings MH4U has on by default aren’t turned off, most likely. This is something that
most unofficial builds have had fixed for a while, but if it isn’t, you can refer to the Cheat Embeds
above to turn off FSAA to hopefully fix things. In previous builds you could also start the game
with 3D enabled at 1%, and turn off 3D after loading into Val Habar to achieve similar results,
but that’s a deprecated troubleshooting step at this point (try it if nothing else works, that sort of
thing).
MH4U HD Texture Project
Per 4UHD Doc - Credits:
Upscaling project: GrandTickler
Linking areas to MHXX textures: Tywald
Linking monsters to MHXX textures: AkitoraRyuu
Providing save files for the boat battle and early harth, and being Doraemon:
Anthena
Special thanks for helping with ui files and learning how to upscale: tbsp, abdul
rahman, vividabest, Luan, Maru, Ando and the mh4u citra discord)
https://docs.google.com/document/d/15clCG3YitYU07rAgiWljV0zl7G_lFG0yFO4a31AgP-c/edit
This link includes the HD Texture pack, instructions for install, and language support for HD UI in
other regions, etc.
Basic Multiplayer
(because I don’t actually play MP enough to be more helpful than this)
Select Multiplayer -> Browse Lobbies on the main Citra Client to see what’s up, find a server
that looks like what you want and jump in. Then, in game use the Online Multiplayer Options to
find Local players (the server hubs treat things as tiny adhocs) to get in to groups and do stuff.
If you have a Citra account, you can verify it in the Web tab in Configuration -> General. There
are more advanced options possible, either direct connections (though the host will likely have
to forward Port 24872 [or whatever port the host has indicated is triggering traffic] if you’re not
trying to connect with someone in the same home network you’re in) or using private lobbies to
connect on builds that cannot see public online, but I’ve not done a lot of testing on that yet and
can’t speak to how effective it is or how to configure it properly at the moment.
We’ll get that sorted at some point - at this point, I know of at least one MH Runner who has a
basic server established, but if you’re not already aware of who that is and so on, defer to
regular public lobbies. Somewhat recently, HunsterVerse has also started Citra MP for
MH4U, but you’ll need to join their discord and be a cool kid to get that sorted out if it’s of
interest to you.
**NOTE** You can only play with other Citra users, not Nintendo’s Online Service users.
Deprecated/Old Unofficial Builds
Filxter Feb 2019
https://mega.nz/#!lwtDgSzL!PjhqvpTZpRe76ey1jKePkHlwl9vzu_jrADkeFzk3DSs (updated
02/26)
Skylake: https://drive.google.com/open?id=1Xje5o2B152FR-HAqtg8QjMHTfr57EGDJ (updated
04/26)
Ryzen: https://drive.google.com/open?id=1aIs_o7_rBwe0YrkGY5JaW3WZZ1e2G3fc (updated
04/26)
Sandy Bridge: https://drive.google.com/open?id=1vlqYi_fRHCn8hstMrSPb2-8gdTr-hPLg
(updated 04/26)
Rasp May 2019:
https://mega.nz/#!w8113IbQ!1SdHzb-ET_GNEV-KghLGhTt_k9tcLiqWx1e8ribPTp8
Rasp August 2019:
https://mega.nz/#!1s9HlICS!qFYggv9IcigpMGqKUuCkz9_zM7Fd6m7JVab5IZ0JXkI
Credits, Thanks
Many thanks to Filxter,~*mysterious chinese file server*~, Rasp over at HunsterVerse and
Valentin for their awesome work on previous and ongoing unofficial builds!
Additional thanks to mikewii7 at the GBATemp forums for all the Cheat options and to tywald
for their work on the HD Texture Project!
And, of course, thanks to the Citra folks for their ongoing work and improvements!
Additional Notes on MH3U in Citra from, and thanks to, user Kori for various tips and
information!
“FMVHack on filxbuild's build also lets MH3U run fullspeed aswell. The 8000 I had for MH4U didn't help 3U
much but if I cranked it up to like 24000 it lets MH3U run fullspeed with no issues.”
I suspect that this works at higher tick settings to maintain 3U speed and playability because it is capped at
30fps (and, as such, the fps decrease from FMV hack wouldn’t be as severe or drastic. Thanks for the
information, Kori!
(also BleepBlarf wrote this, but y’all can do what you want with it sharing wise - feel free to ask
questions when and if I’m on stream at https://twitch.tv/bleepblarf, too)