gonetz / GLideN64

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

Paper Mario - Text from Stars is invisible #1540

Closed Papermanzero closed 6 years ago

Papermanzero commented 7 years ago

Play the first minutes of Paper Mario until you reach the point in which the stars talk to Mario (first 5 Minutes). The text cannot be read because it is invisible.

AmbientMalice commented 7 years ago

What version of the plugin are you using, and have you tried the latest version?

https://github.com/gonetz/GLideN64/issues/1364#issuecomment-318912721

Papermanzero commented 7 years ago

Sure, I am always trying the latest version :)

loganmc10 commented 7 years ago

What device are you trying this on? I believe it needs noise emulation, do you know if you have that enabled?

gonetz commented 7 years ago

Intel graphics, no?

Papermanzero commented 7 years ago

Nvidia GTX 760 OC Disabled Noise emulation. But with enabled noise emulation the text is appearing. Thanks.

gonetz commented 7 years ago

That is strange. When noise emulation disabled, noise function always returns 1. Thus, with noise disabled you should miss noise effect on text, not the text itself: gliden64_paper_mario_000

loganmc10 commented 7 years ago

You can also try disabling shader storage or deleting the shader cache. Sometimes changes are made to the shader code without the version number being incremented

Papermanzero commented 7 years ago

I made two screenshots one with noise emulation and the other one without. Moreover, I already tried to delete the cache. But it did not solve the issue. http://i.imgur.com/l0LS7pM.png http://i.imgur.com/xeTLY0N.png

Here the mupen64plus settings:

# Settings version. Don't touch it.
configVersion = 17
# Crop resulted image (0=disable, 1=auto crop, 2=user defined crop)
CropMode = 0
# 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
# Size of texture cache in megabytes. Good value is VRAM*3/4
CacheSize = 500
# Enable color noise emulation.
EnableNoise = False
# Enable LOD emulation.
EnableLOD = True
# Enable hardware per-pixel lighting.
EnableHWLighting = True
# Use persistent storage for compiled shaders.
EnableShadersStorage = True
# Make texrect coordinates continuous to avoid black lines between them. (0=Off, 1=Auto, 2=Force)
CorrectTexrectCoords = 1
# Render 2D texrects in native resolution to fix misalignment between parts of 2D image.
EnableNativeResTexrects = True
# 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=copy in async mode)
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 = True
# Don't filter background textures.
txFilterIgnoreBG = True
# 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 = False
# Use alternative method of paletted textures CRC calculation.
txHresAltCRC = False
# Enable dump of loaded N64 textures.
txDump = False
# Zip textures cache.
txCacheCompression = False
# 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 = ".../Mupen64Plus/hires_texture"
# File name of True Type Font for text messages.
fontName = "arial.ttf"
# Font size.
fontSize = 18
# Font color in RGB format.
fontColor = "B5E61D"
# Enable bloom filter
EnableBloom = False
# Brightness threshold level for bloom. Values [2, 6]
bloomThresholdLevel = 4
# Bloom blend mode (0=Strong, 1=Mild, 2=Light)
bloomBlendMode = 0
# Blur radius. Values [2, 10]
blurAmount = 10
# Blur strength. Values [10, 100]
blurStrength = 20
# 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
# Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)
CountersPos = 8
gonetz commented 7 years ago

@Papermanzero It looks like a driver's issue. Text should work with or without noise emulation. At least it works on GPUs I can test. You may check for shaders compilation errors in gliden64.log. It is located in the same folder, where mupe64plus saves its other data: AppData\Roaming\Mupen64Plus\gliden64.log If the log has nothing like this, I can't help.

Papermanzero commented 6 years ago

You are right it is fixed. Tried last build and issue is gone. Therefore the main menu is broken. However this is a different issue.

gonetz commented 6 years ago

Therefore the main menu is broken.

I made a mistake in shaders generation. Fix : 7642758873

gonetz commented 6 years ago

I managed to reproduce the original issue. Text is dithered with noise value. Noise is value in range [0.0, 1.0]. When alpha of pixel is less than noise value, pixel discarded. All pixels of text have alpha 0.85. When noise emulation disabled, noise function returns 1.0 Since 1.0 > 0.85 all text pixels discarded by alpha compare. Now shader noise returns 0.5 when noise emulation disabled and the issue is fixed.