Skip to content

Instantly share code, notes, and snippets.

@peteristhegreat
Last active February 8, 2025 05:47
Show Gist options
  • Save peteristhegreat/d6169990fbc1c62ddf1670d7731f8c09 to your computer and use it in GitHub Desktop.
Save peteristhegreat/d6169990fbc1c62ddf1670d7731f8c09 to your computer and use it in GitHub Desktop.
mupen64plus.cfg optimizations 2025 Rpi 3b+ retropie raspberry pi emulation station attractmode retroarch

Introduction

I've had some RPi 3b+ kicking around for a long time now.

And the n64 emulation is pretty meh most of the time.

I fixed it today!

Speed up your N64 Emulation on Arm

Here's my process with some links:

  1. Active cooling + overclocking.
    https://miguelangelantolin.com/raspberry-pi-3b-overclock/
    Summary - Add these lines to the bottom of your /boot/config.txt
    gpu_freq=500
    sdram_freq=550
    arm_freq=1550
    over_voltage=8
    force_turbo=1
    
  2. Install a heat sink on the main SOC.
  3. Install a fan above the heat sink. I got a quiet one, and installed it straight into the GPIO pins that gave it v+ and gnd
  4. Check your temps while playing
    watch -n 1 vcgencmd measure_temp
    
    If it goes over 60 C, you may have issues. Typical temps should be 40 or less.
  5. Use the standard mupen64plus engine, not lr-mupen64plus.
    The places I read online said it was more performant, and the default for retropie.
    This also messes up the default retroarch keyboard shortcuts and settings. It isn't Retroarch based! So you have to edit the cfg file manually. No gui for you. Also note that the default video engine is: mupen64plus-video-rice.so found under [UI-Console].
  6. Find and backup the cfg file to .cfg.orig
    cd /opt/retropie/configs/n64
    cp mupen64plus.cfg mupen64plus.cfg.orig
    
  7. Change the Audio sync to false in that cfg file
    AUDIO_SYNC = False
    
  8. Plugin a keyboard to your retropie.
    Adjust the speed of emulation using F10/F11 (Speed-/Speed+)
    https://mupen64plus.org/wiki/index.php/KeyboardSetup#1._Default_Key_Commands_In_Emulator_Core
Key Description
Escape Quit the emulator
0-9 Select virtual 'slot' for save/load state (F5 and F7) commands
F5 Save emulator state
F7 Load emulator state
F9 Reset emulator
F10 Slow down emulator by 5%
F11 Speed up emulator by 5%
F12 Take screenshot
Alt-Enter Toggle between windowed and fullscreen
p or P Pause on/off
m or M Mute/unmute sound
g or G Press "Game Shark" button (only if cheats are enabled)
/ or ? Single frame advance while paused
F Fast Forward (playback at 250% normal speed while F key is pressed)
[ Decrease volume
] Increase volume
  1. There are some specialized tweaks for specific roms. These are maintained in the nearby INI file. If you run

    md5sum my_rom_name.z64
    

    It will show you your rom's md5 hash. Then you can look up which one is getting used by the INI for fast patching the mupen64plus config.

  2. Your n64 emulation will generate the cfg file on first load. Here's a link to a possible version...
    https://github.com/ricrpi/mupen64plus-rpi/blob/master/mupen64plus.cfg
    I put a copy of my running cfg on this page.

  3. Now add the Speed up and Speed down buttons to your joypad!

# Joystick event string for slowing down the emulator
Joy Mapping Speed Down = "J0B10/H0V4"
# Joystick event string for speeding up the emulator
Joy Mapping Speed Up = "J0B10/H0V1"

This is dpad up and down while holding the xbox button.

# Mupen64Plus Configuration File
# This file is automatically read and written by the Mupen64Plus Core library
[64DD]
# Filename of the 64DD IPL ROM
IPL-ROM = ""
# Filename of the disk to load into Disk Drive
Disk = ""
[Audio-SDL]
# Mupen64Plus SDL Audio Plugin config parameter version number
Version = 1
# Audio resampling algorithm. src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, speex-fixed-{10-0}, trivial
RESAMPLE = "src-sinc-fastest"
txHiresEnable = True
# Frequency which is used if rom doesn't want to change it
DEFAULT_FREQUENCY = 33600
# Swaps left and right channels
SWAP_CHANNELS = False
# Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory.
PRIMARY_BUFFER_SIZE = 16384
# Fullness level target for Primary audio buffer, in equivalent output samples. This value must be larger than the SECONDARY_BUFFER_SIZE. Decreasing this value will reduce audio latency but requires a faster PC to avoid choppiness. Increasing this will increase audio latency but reduce the chance of drop-outs.
PRIMARY_BUFFER_TARGET = 2048
# Size of secondary buffer in output samples. This is SDL's hardware buffer. The SDL documentation states that this should be a power of two between 512 and 8192.
SECONDARY_BUFFER_SIZE = 1024
# Volume control type: 1 = SDL (only affects Mupen64Plus output) 2 = OSS mixer (adjusts master PC volume)
VOLUME_CONTROL_TYPE = 1
# Percentage change each time the volume is increased or decreased
VOLUME_ADJUST = 5
# Default volume when a game is started. Only used if VOLUME_CONTROL_TYPE is 1
VOLUME_DEFAULT = 80
# Synchronize Video/Audio
AUDIO_SYNC = False
[Core]
# Mupen64Plus Core config parameter set version number. Please don't change this version number.
Version = 1.010000
# Draw on-screen display if True, otherwise don't draw OSD
OnScreenDisplay = False
# Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more
R4300Emulator = 2
# Disable compiled jump commands in dynamic recompiler (should be set to False)
NoCompiledJump = False
# Disable 4MB expansion RAM pack. May be necessary for some games
DisableExtraMem = False
# Force number of cycles per emulated instruction
CountPerOp = 0
# Reduce number of cycles per update by power of two when set greater than 0 (overclock)
CountPerOpDenomPot = 0
# Increment the save state slot after each save operation
AutoStateSlotIncrement = False
# Save state slot (0-9) to use when saving/loading the emulator state
CurrentStateSlot = 0
# Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support
EnableDebugger = False
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserDataPath}/screenshot will be used
ScreenshotPath = ""
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserDataPath}/save will be used
SaveStatePath = ""
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserDataPath}/save will be used
SaveSRAMPath = ""
# Path to a directory to search when looking for shared data files
SharedDataPath = "/opt/retropie/configs/n64"
# Randomize PI/SI Interrupt Timing
RandomizeInterrupt = True
# Duration of SI DMA (-1: use per game settings)
SiDmaDuration = -1
# Gameboy Camera Video Capture backend
GbCameraVideoCaptureBackend1 = ""
# Disk Save Format (0: Full Disk Copy (*.ndr/*.d6r), 1: RAM Area Only (*.ram))
SaveDiskFormat = 1
[CoreEvents]
# Mupen64Plus CoreEvents config parameter set version number. Please don't change this version number.
Version = 1
# Joystick event string for stopping the emulator
Joy Mapping Stop = "J0B10/B9"
# Joystick event string for loading the emulator state
Joy Mapping Load State = "J0B10/B4"
# Joystick event string for saving the emulator state
Joy Mapping Save State = "J0B10/B5"
# SDL keysym for save slot 0
Kbd Mapping Slot 0 = 48
# SDL keysym for save slot 1
Kbd Mapping Slot 1 = 49
# SDL keysym for save slot 2
Kbd Mapping Slot 2 = 50
# SDL keysym for save slot 3
Kbd Mapping Slot 3 = 51
# SDL keysym for save slot 4
Kbd Mapping Slot 4 = 52
# SDL keysym for save slot 5
Kbd Mapping Slot 5 = 53
# SDL keysym for save slot 6
Kbd Mapping Slot 6 = 54
# SDL keysym for save slot 7
Kbd Mapping Slot 7 = 55
# SDL keysym for save slot 8
Kbd Mapping Slot 8 = 56
# SDL keysym for save slot 9
Kbd Mapping Slot 9 = 57
# SDL keysym for stopping the emulator
Kbd Mapping Stop = 27
# SDL keysym for switching between fullscreen/windowed modes
Kbd Mapping Fullscreen = 0
# SDL keysym for saving the emulator state
Kbd Mapping Save State = 286
# SDL keysym for loading the emulator state
Kbd Mapping Load State = 288
# SDL keysym for advancing the save state slot
Kbd Mapping Increment Slot = 0
# SDL keysym for resetting the emulator
Kbd Mapping Reset = 290
# SDL keysym for slowing down the emulator
Kbd Mapping Speed Down = 291
# SDL keysym for speeding up the emulator
Kbd Mapping Speed Up = 292
# SDL keysym for taking a screenshot
Kbd Mapping Screenshot = 293
# SDL keysym for pausing the emulator
Kbd Mapping Pause = 112
# SDL keysym for muting/unmuting the sound
Kbd Mapping Mute = 109
# SDL keysym for increasing the volume
Kbd Mapping Increase Volume = 93
# SDL keysym for decreasing the volume
Kbd Mapping Decrease Volume = 91
# SDL keysym for temporarily going really fast
Kbd Mapping Fast Forward = 102
# SDL keysym for advancing by one frame when paused
Kbd Mapping Frame Advance = 47
# SDL keysym for pressing the game shark button
Kbd Mapping Gameshark = 103
# Joystick event string for switching between fullscreen/windowed modes
Joy Mapping Fullscreen = ""
# Joystick event string for advancing the save state slot
Joy Mapping Increment Slot = ""
# Joystick event string for resetting the emulator
Joy Mapping Reset = ""
# Joystick event string for slowing down the emulator
Joy Mapping Speed Down = "J0B10/H0V4"
# Joystick event string for speeding up the emulator
Joy Mapping Speed Up = "J0B10/H0V1"
# Joystick event string for taking a screenshot
Joy Mapping Screenshot = ""
# Joystick event string for pausing the emulator
Joy Mapping Pause = ""
# Joystick event string for muting/unmuting the sound
Joy Mapping Mute = ""
# Joystick event string for increasing the volume
Joy Mapping Increase Volume = ""
# Joystick event string for decreasing the volume
Joy Mapping Decrease Volume = ""
# Joystick event string for fast-forward
Joy Mapping Fast Forward = ""
# Joystick event string for advancing by one frame when paused
Joy Mapping Frame Advance = ""
# Joystick event string for pressing the game shark button
Joy Mapping Gameshark = ""
[Input-SDL-Control1]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = 0
# SDL joystick name (or Keyboard)
name = "Microsoft X-Box 360 pad"
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = "2"
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "hat(0 Right)"
DPad L = "hat(0 Left)"
DPad D = "hat(0 Down)"
DPad U = "hat(0 Up)"
Start = "button(9)"
Z Trig = "button(6)"
B Button = "button(3)"
A Button = "button(1)"
C Button R = "axis(2+)"
C Button L = "axis(2-)"
C Button D = "button(0) axis(3+)"
C Button U = "button(2) axis(3-)"
R Trig = "button(5)"
L Trig = "button(4)"
Mempak switch = "button(11)"
Rumblepak switch = "button(12)"
# Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"
[Input-SDL-Control2]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""
[Input-SDL-Control3]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""
[Input-SDL-Control4]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""
[Rsp-HLE]
# Mupen64Plus RSP HLE Plugin config parameter version number
Version = 1.000000
# Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string.
RspFallback = ""
# Send display lists to the graphics plugin
DisplayListToGraphicsPlugin = True
# Send audio lists to the audio plugin
AudioListToAudioPlugin = False
[Transferpak]
# Filename of the GB ROM to load into transferpak 1
GB-rom-1 = ""
# Filename of the GB RAM to load into transferpak 1
GB-ram-1 = ""
# Filename of the GB ROM to load into transferpak 2
GB-rom-2 = ""
# Filename of the GB RAM to load into transferpak 2
GB-ram-2 = ""
# Filename of the GB ROM to load into transferpak 3
GB-rom-3 = ""
# Filename of the GB RAM to load into transferpak 3
GB-ram-3 = ""
# Filename of the GB ROM to load into transferpak 4
GB-rom-4 = ""
# Filename of the GB RAM to load into transferpak 4
GB-ram-4 = ""
[UI-Console]
# Mupen64Plus UI-Console config parameter set version number. Please don't change this version number.
Version = 1.000000
# Directory in which to search for plugins
PluginDir = "./"
# Filename of video plugin
VideoPlugin = "mupen64plus-video-rice.so"
# Filename of audio plugin
AudioPlugin = "mupen64plus-audio-sdl.so"
# Filename of input plugin
InputPlugin = "mupen64plus-input-sdl.so"
# Filename of RSP plugin
RspPlugin = "mupen64plus-rsp-hle.so"
[Video-General]
# Use fullscreen mode if true or windowed mode if false.
Fullscreen = False
# Width of output window or fullscreen width.
ScreenWidth = 320
# Height of output window or fullscreen height.
ScreenHeight = 240
# If true, activate the SDL_GL_SWAP_CONTROL attribute.
VerticalSync = False
# If true, use correct aspect ratio, if false, stretch to fullscreen
AspectRatio = True
[Video-GLideN64]
# Settings version. Don't touch it.
configVersion = 29
# Bilinear filtering mode. (0=N64 3point, 1=standard)
bilinearMode = 1
# Enable frame and/or depth buffer emulation.
EnableFBEmulation = True
# Frame buffer size is the factor of N64 native resolution.
UseNativeResolutionFactor = 1
# Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. Can cause glitches.
EnableLegacyBlending = False
# Enable threaded video backend.
ThreadedVideo = True
# Swap frame buffers. (0=On VI update call, 1=On VI origin change, 2=On buffer update)
BufferSwapMode = 2
# Enable hybrid integer scaling filter. Can be slow with low-end GPUs.
EnableHybridFilter = False
# Use fast but less accurate shaders. Can help with low-end GPUs.
EnableInaccurateTextureCoordinates = True
# Set MultiSampling (MSAA) value. (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Toggle Fast Approximate Anti-Aliasing (FXAA).
FXAA = False
# Screen aspect ratio. (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust)
AspectRatio = 1
# Remove halos around filtered textures.
enableHalosRemoval = False
# Max level of Anisotropic Filtering, 0 for off.
anisotropy = 0
# Enable dithering pattern on output image.
EnableDitheringPattern = False
# Enable hi-res noise dithering.
EnableHiresNoiseDithering = False
# Dither with color quantization.
DitheringQuantization = True
# Dithering mode for image in RDRAM. (0=disable, 1=bayer, 2=magic square, 3=blue noise)
RDRAMImageDitheringMode = 3
# Enable LOD emulation.
EnableLOD = True
# Enable hardware per-pixel lighting.
EnableHWLighting = False
# Enable pixel coverage calculation. Used for better blending emulation and wire-frame mode. Needs fast GPU.
EnableCoverage = False
# Enable software vertices clipping. Brings various benefits.
EnableClipping = True
# Use persistent storage for compiled shaders.
EnableShadersStorage = True
# Enable writing of fragment depth. Some mobile GPUs do not support it, thus made optional. Leave enabled.
EnableFragmentDepthWrite = True
# Use GLideN64 per-game settings.
EnableCustomSettings = True
# Make texrect coordinates continuous to avoid black lines between them. (0=Off, 1=Auto, 2=Force)
CorrectTexrectCoords = 0
# Render 2D texrects in native resolution to fix misalignment between parts of 2D image. (0=Off, 1=Optimized, 2=Unoptimized)
EnableNativeResTexrects = 0
# Render backgrounds mode. (HLE only). (0=One piece (fast), 1=Stripped (precise))
BackgroundsMode = 1
# Bound texture rectangle texture coordinates to the values they take in native resolutions. It prevents garbage due to fetching out of texture bounds, but can result in hard edges. (0=Off, 1=On)
EnableTexCoordBounds = 0
# Copy auxiliary buffers to RDRAM.
EnableCopyAuxiliaryToRDRAM = False
# Enable N64 depth compare instead of OpenGL standard one. Experimental. (0=Off, 1=Fast, 2=Compatible)
EnableN64DepthCompare = 0
# Force depth buffer clear. Hack. Needed for Eikou no Saint Andrews.
ForceDepthBufferClear = False
# Disable buffers read/write with FBInfo. Use for games which do not work with FBInfo.
DisableFBInfo = True
# Read color buffer by 4kb chunks (strictly follow FBRead specification).
FBInfoReadColorChunk = False
# Read depth buffer by 4kb chunks (strictly follow FBRead specification).
FBInfoReadDepthChunk = True
# Enable color buffer copy to RDRAM. (0=do not copy, 1=copy in sync mode, 2=Double Buffer, 3=Triple Buffer)
EnableCopyColorToRDRAM = 2
# Enable depth buffer copy to RDRAM. (0=do not copy, 1=copy from video memory, 2=use software render)
EnableCopyDepthToRDRAM = 2
# Enable color buffer copy from RDRAM.
EnableCopyColorFromRDRAM = False
# Enable resulted image crop by Overscan.
EnableOverscan = False
# PAL mode. Left bound of Overscan.
OverscanPalLeft = 0
# PAL mode. Right bound of Overscan.
OverscanPalRight = 0
# PAL mode. Top bound of Overscan.
OverscanPalTop = 0
# PAL mode. Bottom bound of Overscan.
OverscanPalBottom = 0
# NTSC mode. Left bound of Overscan.
OverscanNtscLeft = 0
# NTSC mode. Right bound of Overscan.
OverscanNtscRight = 0
# NTSC mode. Top bound of Overscan.
OverscanNtscTop = 0
# NTSC mode. Bottom bound of Overscan.
OverscanNtscBottom = 0
# Texture filter. (0=none, 1=Smooth filtering 1, 2=Smooth filtering 2, 3=Smooth filtering 3, 4=Smooth filtering 4, 5=Sharp filtering 1, 6=Sharp filtering 2)
txFilterMode = 0
# Texture enhancement. (0=none, 1=store as is, 2=X2, 3=X2SAI, 4=HQ2X, 5=HQ2XS, 6=LQ2X, 7=LQ2XS, 8=HQ4X, 9=2xBRZ, 10=3xBRZ, 11=4xBRZ, 12=5xBRZ, 13=6xBRZ)
txEnhancementMode = 0
# Deposterize texture before enhancement.
txDeposterize = False
# Don't filter background textures.
txFilterIgnoreBG = False
# Size of memory cache for enhanced textures in megabytes.
txCacheSize = 100
# Use high resolution texture packs if available.
txHiresEnable = True
# Allow to fully use the alpha channel for high resolution textures.
txHiresFullAlphaChannel = True
# Use alternative method for paletted textures CRC calculation.
txHresAltCRC = False
# Zip texture cache.
txCacheCompression = True
# Force the use of 16-bit texture formats for HD textures.
txForce16bpp = False
# Save texture cache to hard disk.
txSaveCache = True
# Use file storage instead of memory cache for enhanced textures.
txEnhancedTextureFileStorage = False
# Use file storage instead of memory cache for HD textures.
txHiresTextureFileStorage = False
# Use no file storage or cache for HD textures.
txNoTextureFileStorage = False
# Limit hi-res textures size in VRAM (in MB, 0 = no limit)
txHiresVramLimit = 0
# Path to folder with hi-res texture packs.
txPath = "/home/pi/.local/share/mupen64plus//hires_texture"
# Path to folder where plugin saves texture cache files.
txCachePath = "/home/pi/.cache/mupen64plus//cache"
# Path to folder where plugin saves dumped textures.
txDumpPath = "/home/pi/.cache/mupen64plus//texture_dump"
# File name of True Type Font for text messages.
fontName = "FreeSans.ttf"
# Font size.
fontSize = 18
# Font color in RGB format.
fontColor = "B5E61D"
# Force gamma correction.
ForceGammaCorrection = False
# Gamma correction level.
GammaCorrectionLevel = 2.000000
# Show FPS counter.
ShowFPS = False
# Show VI/s counter.
ShowVIS = False
# Show percent counter.
ShowPercent = False
# Show internal resolution.
ShowInternalResolution = False
# Show rendering resolution.
ShowRenderingResolution = False
# Show statistics for drawn elements.
ShowStatistics = False
# Counters position. (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)
CountersPos = 8
# Hotkey: toggle textures dump
hkTexDump = ""
# Hotkey: reload HD textures
hkHdTexReload = ""
# Hotkey: toggle HD textures
hkHdTexToggle = ""
# Hotkey: toggle texcoords bounds
hkTexCoordBounds = ""
# Hotkey: toggle 2D texrects in native resolution
hkNativeResTexrects = ""
# Hotkey: toggle VSync
hkVsync = ""
# Hotkey: toggle frame buffer emulation
hkFBEmulation = ""
# Hotkey: toggle N64 depth compare
hkN64DepthCompare = ""
# Hotkey: toggle OSD VI/S
hkOsdVis = ""
# Hotkey: toggle OSD FPS
hkOsdFps = ""
# Hotkey: toggle OSD percent
hkOsdPercent = ""
# Hotkey: toggle OSD internal resolution
hkOsdInternalResolution = ""
# Hotkey: toggle OSD rendering resolution
hkOsdRenderingResolution = ""
# Hotkey: toggle force gamma correction
hkForceGammaCorrection = ""
# Hotkey: toggle inaccurate texture coordinates
hkInaccurateTexCords = ""
[Video-Rice]
# Enable hi-resolution texture file loading
LoadHiResTextures = True
# Frame Buffer Emulation (0=ROM default, 1=disable)
FrameBufferSetting = 0
# Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc)
FrameBufferWriteBackControl = 1
# Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload)
RenderToTexture = 0
# Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn)
ScreenUpdateSetting = 7
# Force to use normal alpha blender
NormalAlphaBlender = False
# Use a faster algorithm to speed up texture loading and CRC computation
FastTextureLoading = False
# Use different texture coordinate clamping code
AccurateTextureMapping = True
# Force emulated frame buffers to be in N64 native resolution
InN64Resolution = False
# Try to reduce Video RAM usage (should never be used)
SaveVRAM = False
# Enable this option to have better render-to-texture quality
DoubleSizeForSmallTxtrBuf = False
# Force to use normal color combiner
DefaultCombinerDisable = False
# Enable game-specific settings from INI file
EnableHacks = True
# If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode
WinFrameMode = False
# N64 Texture Memory Full Emulation (may fix some games, may break others)
FullTMEMEmulation = False
# Enable vertex clipper for fog operations
OpenGLVertexClipper = False
# Enable/Disable SSE optimizations for capable CPUs
EnableSSE = True
# Use GPU vertex shader
EnableVertexShader = False
# If this option is enabled, the plugin will skip every other frame
SkipFrame = False
# If enabled, texture enhancement will be done only for TxtRect ucode
TexRectOnly = False
# If enabled, texture enhancement will be done only for textures width+height<=128
SmallTextureOnly = False
# Select hi-resolution textures based only on the CRC and ignore format+size information (Glide64 compatibility)
LoadHiResCRCOnly = True
# Enable texture dumping
DumpTexturesToFiles = False
# Display On-screen FPS
ShowFPS = False
# Widescreen hack
WideScreenHack = False
# Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear
Mipmapping = 2
# Enable, Disable or Force fog generation (0=Disable, 1=Enable n64 choose, 2=Force Fog)
FogMethod = 1
# Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering)
ForceTextureFilter = 2
# Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored)
TextureEnhancement = 6
# Secondary texture enhancement filter (0 = none, 1-4 = filtered)
TextureEnhancementControl = 0
# Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits)
TextureQuality = 0
# Z-buffer depth (only 16 or 32)
OpenGLDepthBufferSetting = 16
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Color bit depth for rendering window (0=32 bits, 1=16 bits)
ColorQuality = 0
# OpenGL level to support (0=auto, 1=OGL_1.1, 2=OGL_1.2, 3=OGL_1.3, 4=OGL_1.4, 5=OGL_1.4_V2, 6=OGL_TNT2, 7=NVIDIA_OGL, 8=OGL_FRAGMENT_PROGRAM)
OpenGLRenderSetting = 0
# Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering
AnisotropicFiltering = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment