gonetz / GLideN64

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

Super Mario Star Road: Black Screen Issue (Frame Buffer Emulation) #1745

Closed SuperToad64 closed 6 years ago

SuperToad64 commented 6 years ago

Every time I try to run Super Mario Star Road I get a completely black screen. Once I disable Frame Buffer Emulation I get this:

https://cloud.githubusercontent.com/assets/4800879/7552485/2268820e-f6b7-11e4-848d-4359335a1a94.jpg

https://cloud.githubusercontent.com/assets/4800879/7552476/c4b3c2ae-f6b6-11e4-80d3-66de5ede6219.jpg

This happens with almost all of the Super Mario 64 Rom hacks. It seems it has been an issue since 2015. With new Super Mario 64 hacks on the rise, this should be fixed. The reason I am using GlideN64 is because it is the only plugin that I know of that lets you make a custom windowed size. I am trying to use the entirety of my screen in windowed mode while playing Super Mario star Road.

I have tried all of the settings inside Project64's graphics settings within GlideN64, nothing makes the black textures go away. But disabling Frame Buffer Emulation gets rid of the black screen. It is unplayable with the black textures though. It works in Glide64 because they use software frame buffer emulation. If you added a software frame buffer emulation setting it would probably fix all rom hacks. Any help would be appreciated.

I am running Project64 version 2.3.2.202 and I have the latest public Release of GlideN64 which is 3.0. I have already tried the recent WIP version of GlideN64 and it still doesn't work.

Similar to issue #525, but it was closed with no fix.

loganmc10 commented 6 years ago

With new Super Mario 64 hacks on the rise, this should be fixed.

The bug is with the ROM hack, not the GFX plugin. These ROM hacks don't work on a real N64, they won't work with accurate GFX plugins like Angrylion or GLideN64.

I doubt this will be fixed, you can try to ask the ROM author to fix the ROM. There are some ROM hacks that are well written and work on real N64's (the recent "Goldfinger N64" comes to mind), and they also work with GLideN64

SuperToad64 commented 6 years ago

Is there a way to add software emulated frame buffer like Glide64 does? Because Glide64 fixes this issue with software emulated frame buffer. They use the hardware one by default and this creates the black textures. If not do you know of any other inaccurate project64 plugin that allows you to make custom windowed resolutions. I was told that Glide64 has a list of windowed resolutions that you can edit, but I could not find it.

The reason I am asking is because I am trying to host a LAN server with SM64O on duplicate monitors. I don't want to have half of the screen not being used. Since Glide64 has shitty windowed resolution selections. I can't have all of them Full-screened since I am running all four emulators on one computer. They don't even have the standard 1920 X 1080 in the windowed list. To my knowledge GlideN64 is the only plugin that lets you set a custom windowed resolution.

SuperToad64 commented 6 years ago

I was thinking that some Custom Settings could fix this problem. Because it is centered around the Frame Buffer. But I could not find a list of settings for the tag frameBufferEmulation. Does anyone have a list of all the different Custom Setting commands that you can enter into the GLideN64.custom.ini? Because it would be helpful for testing purposes.

Found some commands here: https://github.com/gonetz/GLideN64/issues/297

But no full list exists it seems.

gonetz commented 6 years ago

I doubt this will be fixed

Yes, it will not.

SuperToad64 commented 6 years ago

BUUUT . . . I got a fix from Discord64!!! It turns out the problem was a bad 0xFC setcombine. So the ROM file was at fault.

It looks like Last Impact will have some issues as well:

Quoted by Trenavix

yeah last impact is pretty trashed on everything that's not jabo's because kaze hardly tested anything
if you do the setcombine trick on it it's playable but has some bugs here and there

So with the same vaules you can fix Last Impact the same way.

Thanks to Trenavix, here is the solution, its called the setcombine trick. You must use a Hex editor and replace all the values of this: This pic is from the Hex editor Cygnus: fix super mario star road

If you have HxD Hex Editor then click the search tab and then replace. Make sure to click the hex-values tab in the datatype tab. Then type these values into the text boxes:

fix 2

fix 3

Make sure you have the hex-values option checked. You must replace all instances of FC 12 7F FF FF FF F8 38 with FC 12 18 24 FF 33 FF FF. Then save the rom, it's that easy! So issue #1745 is closed, Thanks again Trenavix!

SuperToad64 commented 6 years ago

Yet again Trenavix saves the day! When I set the resolution to anything over 1600 x 1200 in windowed and fullscreen it does this:

aspect ratio 1

aspect ratio 2

So since Frame Buffer Emulation is disabled I cannot set the aspect ratio. So Trenavix presents us with a .bps patch that will fix all of that. It even fixes the black screen that is present when Frame Buffer Emulation is switched on with GlideN64! So now Super Mario Star Road has no problems whatsoever.

This new edition is called Super Mario Star Road Enhanced Edition. It even adds 3D spinning models of all the coins, they look like they are from Super Mario Sunshine. Here is what it adds:

Readme By SuperToad64:

Super Mario Star Road Enhanced Edition Patch By Trenavix - Discord64 Developer

To be used on a 8mb sm64 rom, Usually the general rom used is Super Mario 64 (U) [!].z64. You can get it from here: https://sites.google.com/site/supermario64download/Home/download-super-mario-64

patch with Flips.exe (Floating IPS Patcher) Download it here: https://www.smwcentral.net/?p=section&a=details&id=11474

Use the Super_Mario_Star_Road_Enhanced.bps (Version 1.1) First, if you have any problems use Star_Road_Console_Test.bps (Version 1.0), which doesn't include the texture fixes for the coins.

Changelog:

Star_Road_Console_Test.bps (Version 1.0): I got rid of the metal wing textures (I don't think you can even see those in star road ever) and used their data for polygon data

Super_Mario_Star_Road_Enhanced.bps (Version 1.1): Fixed some ambient/diffuse colours on the red and blue coins so they no longer look greyscale and all coins have shading. Also fixed rom name.

So there you have it, it fixes all of the issues I have had thus far and adds some sweet looking new 3D coins, how can I say no? Totally Awesome! You can download it from the attachment below, enjoy!!

Super Mario Star Road Enhanced Edition.zip

Screenshots:

super mario star road enhanced

super mario star road enhanced 2

loganmc10 commented 6 years ago

Again, you shouldn't post links to illegal downloads (including the ROM hack) on a GitHub page

alexchandel commented 6 years ago

@SuperToad64 Last Impact has the same issue. You know of a patch for that?

SuperToad64 commented 6 years ago

@alexchandel Yes, this same fix should work for Last Impact as well. Just follow the instructions above and it should work. Enjoy!

alexchandel commented 5 years ago

@SuperToad64 It partially worked. The visual issues are mostly gone now. However, the music and sound effects are still very distorted (they sound like running & jumping sounds of different pitches), and the game hangs as soon as I enter the first level from the overworld. I tried the find and replace on Last Impact v1.1. Do you have any suggestions?

gh3tt0smurf commented 5 years ago

I tried changing the hex values and it says that those values you posted do not exist. I tried doing it with both hex editor programs.

pleasejustgo commented 4 years ago

@SuperToad64 I know it's been a while but I just found this recently trying to get star road working with mupen64plus. The latest version of Last Impact, 1.2, does not have the codes mentioned above and it crashes with mupen64plus. Any idea how to fix it? Certain multi-core emulator front ends use mupen for it's accuracy with no other option so it's good to get this working. Thanks.

poudink commented 2 years ago

To anyone who ended up here: this is how you get SM64 hacks working. First, follow this: https://www.smwcentral.net/?p=viewthread&t=78265&page=5&pid=1478773#p1478773 This will fix most of the issues with the hacks in GlideN64. After going through the MarioMender64 procedure, you won't even need to disable framebuffer emulation anymore. Then, disable MSAA in the GlideN64 settings. It seems to cause some HUD artifacts. Also stay away from xBRZ scaling, it makes some of the text weird. HQ4X seems to do a better job. Then with a hex editor, replace all instances of 0xBA00140200000000B900031DC8113078B600000000010000 with 0xBA00140200000000B900031D00443078B600000000010000. This will fix billboards in foggy areas. The MarioMender64 script is supposed to take care of that already, but it didn't seem to work for me. Finally, you may need to do the fix already mentioned in posts above: replacing all instances of 0xFC127FFFFFFFF838 with 0xFC121824FF33FFFF. For me, this was only needed to fix some of Kaze's custom objects. This is kind of a tedious process to do for every older hack. Would be very nice to have a tool to automate the process. I may get around to it some day. Still though, it works. After doing this, the only remaining issues I could find were a slightly glitchy texture on Kaze's flip-swap platforms and also his ? switches turning invisible when switched on.