gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
774 stars 180 forks source link

Texture Smoothing is crashing the emulator (M64P) #1782

Closed Papermanzero closed 6 years ago

Papermanzero commented 6 years ago

If texture smoothing is activated the emulator is going to crash. In Mupen64Plus you have to enter "txFilterMode = 2" in the config to reproduce the issue. After the configuration, start a game and the emulator will crash.

loganmc10 commented 6 years ago

I can't reproduce this, is there a certain game that this is happening with? I tested Linux and Windows

Papermanzero commented 6 years ago

Not at all. Some games are crashing immidiatelly (e.g. Super Mario 64 - PAL, Mario Kart 64 - PAL). Others are crashing later after some screens (e.g. Mario Party 3 - PAL). Hmm strange, i am using your recent build/bundle.

Here is the config

# Settings version. Don't touch it.
configVersion = 20
# Crop resulted image (0=disable, 1=auto crop, 2=user defined crop)
CropMode = 1
# Crop width pixels from left and right of resulted image (in native resolution)
CropWidth = 0
# Crop height pixels from top and bottom of resulted image (in native resolution)
CropHeight = 0
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 4
# Screen aspect ratio (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust)
AspectRatio = 1
# Swap frame buffers (0=On VI update call, 1=On VI origin change, 2=On buffer update)
BufferSwapMode = 0
# Frame buffer size is the factor of N64 native resolution.
UseNativeResolutionFactor = 0
# Bilinear filtering mode (0=N64 3point, 1=standard)
bilinearMode = True
# Max level of Anisotropic Filtering, 0 for off
MaxAnisotropy = True
# Enable color noise emulation.
EnableNoise = False
# Enable LOD emulation.
EnableLOD = True
# Enable hardware per-pixel lighting.
EnableHWLighting = False
# Use persistent storage for compiled shaders.
EnableShadersStorage = False
# 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.
EnableNativeResTexrects = False
# Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. Can cause glitches.
EnableLegacyBlending = False
# Enable writing of fragment depth. Some mobile GPUs do not support it, thus it made optional. Leave enabled.
EnableFragmentDepthWrite = True
# Use GLideN64 per-game settings.
EnableCustomSettings = True
# Enable frame and|or depth buffer emulation.
EnableFBEmulation = True
# Copy auxiliary buffers to RDRAM
EnableCopyAuxiliaryToRDRAM = False
# Enable N64 depth compare instead of OpenGL standard one. Experimental.
EnableN64DepthCompare = False
# Disable buffers read/write with FBInfo. Use for games, which do not work with FBInfo.
DisableFBInfo = True
# Read color buffer by 4kb chunks (strict follow to FBRead specification)
FBInfoReadColorChunk = False
# Read depth buffer by 4kb chunks (strict follow to 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
# 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 = 2
# 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 filtered textures cache in megabytes.
txCacheSize = 100
# Use high-resolution texture packs if available.
txHiresEnable = False
# Allow to use alpha channel of high-res texture fully.
txHiresFullAlphaChannel = True
# Use alternative method of paletted textures CRC calculation.
txHresAltCRC = False
# Enable dump of loaded N64 textures.
txDump = False
# Zip textures cache.
txCacheCompression = True
# Force use 16bit texture formats for HD textures.
txForce16bpp = False
# Save texture cache to hard disk.
txSaveCache = False
# Path to folder with hi-res texture packs.
txPath = "...AppData/Roaming/Mupen64Plus/hires_texture"
# Path to folder where plugin saves texture cache files.
txCachePath = "...AppData/Roaming/Mupen64Plus/cache"
# Path to folder where plugin saves dumped textures.
txDumpPath = ".../AppData/Roaming/Mupen64Plus/texture_dump"
# File name of True Type Font for text messages.
fontName = "arial.ttf"
# Font size.
fontSize = 18
# Font color in RGB format.
fontColor = "B5E61D"
# Force gamma correction.
ForceGammaCorrection = False
# Gamma correction level.
GammaCorrectionLevel = 2
# 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
# Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)
CountersPos = 8
loganmc10 commented 6 years ago

I'm still unable to reproduce it (I tested Mario Kart 64 PAL and tried to copy your settings). You have a number of non-default settings. I would backup your mupen64plus.cfg file, and just uses the defaults + txFilterMode=2 to see if it still crashes, if it doesn't you'll need to track down what combination of settings is causing the problem for you.

Papermanzero commented 6 years ago

Default and smoothing also crashes the emulator. But I will try the newest builds.

gonetz commented 6 years ago

I can't reproduce it too. I tested 32bit and 64bit builds for windows.

Papermanzero commented 6 years ago

Tested with newest build and it is gone. o_0 Happy that the issue is gone, but the root cause is unknown.