citra
citra copied to clipboard
Super Mario 3D Land: White Screen after pressing A on title screen with save that has Shining Stars saved in Special World
From my tests, I've concluded this only occurs with a save that has Shining Stars and saved in the Special World. I used the same save but saved in the Regular World in my 3DS, dumped it and it loaded up just fine in Citra. Tested with a variety of settings and the issue still persists.
The save file is the first save slot: Special World (white screen) SM3DL - Special World.zip Regular World (no white screen) SM3DL - Regular World.zip
LOG Commit: ac4ea522 OS: Windows 10 Pro 64-bit CPU: Intel Core i5 4670K @ 3.40GHz GPU: NVIDIA GeForce GTX 970 (MSI) GPU driver: 376.33 RAM: 8.00GB Single-Channel DDR3 @ 933MHz
I can't get any of the saves you provided here to work, white screen on both. I have four stars on my file, but not glittering/shining stars since I have to complete the game with Luigi too. I think it's strange that something like having glittering/shining stars can cause this.
You can try disabling CPU JIT. I have posted this issue several months ago.
@1425720626 This still occurs with CPU JIT disabled as of 23bb870.
White screen again in the latest version. I also saved the log file.
[ 6.904337] Frontend <Info> citra_qt\main.cpp:BootGame:382: Citra starting...
[ 7.390594] Service.APT <Warning> core\hle\service\apt\apt.cpp:Init:1004: Unable to load shared font
[ 7.390933] Render.OpenGL <Info> video_core\renderer_opengl\renderer_opengl.cpp:Init:488: GL_VERSION: 3.3.0 NVIDIA 384.76
[ 7.390949] Render.OpenGL <Info> video_core\renderer_opengl\renderer_opengl.cpp:Init:489: GL_VENDOR: NVIDIA Corporation
[ 7.390961] Render.OpenGL <Info> video_core\renderer_opengl\renderer_opengl.cpp:Init:490: GL_RENDERER: GeForce GTX 970/PCIe/SSE2
[ 7.392493] Loader <Info> core\loader\ncch.cpp:Load:349: Program ID: 0004000000054000
[ 7.396027] Loader <Info> core\hle\kernel\process.cpp:ParseKernelCaps:108: ExHeader kernel version: 2.30
[ 7.396271] Service.CFG <Info> core\hle\service\cfg\cfg.cpp:SetPreferredRegionCode:613: Preferred region code set to 0
[ 7.480313] Service.SRV <Warning> core\hle\service\sm\srv.cpp:RegisterClient:47: (STUBBED) called
[ 7.480659] Service.SRV <Warning> core\hle\service\sm\srv.cpp:EnableNotification:69: (STUBBED) called
[ 7.482840] Service.APT <Warning> core\hle\service\apt\apt.cpp:GetLockHandle:261: (STUBBED) called handle=0x00038009 applet_attributes=0x00000000
[ 7.487077] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:OverrideDefaultDaemons:203: (STUBBED) default_daemon_bit_mask=0x0000000F
[ 7.487203] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:SuspendDaemons:89: (STUBBED) daemon_bit_mask=0x00000009
[ 7.487388] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:SuspendScheduler:112: (STUBBED) called
[ 7.993117] Service.APT <Warning> core\hle\service\apt\apt.cpp:NotifyToWait:238: (STUBBED) app_id=768
[ 7.995630] Service.APT <Warning> core\hle\service\apt\apt.cpp:AppletUtility:565: (STUBBED) called command=0x00000007, input_size=0x00000004, output_size=0x00000001, input_addr=0x0FFFFF58, output_addr=0x0FFFFF28
[ 7.995994] Service.APT <Warning> core\hle\service\apt\apt.cpp:AppletUtility:565: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFF2C, output_addr=0x0FFFFF28
[ 7.996252] Service.APT <Warning> core\hle\service\apt\apt.cpp:AppletUtility:565: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFF9C, output_addr=0x0FFFFF98
[ 8.010238] Service.GSP <Warning> core\hle\service\gsp_gpu.cpp:AcquireRight:702: called
[ 8.010934] Service.GSP <Warning> core\hle\service\gsp_gpu.cpp:RegisterInterruptRelayQueue:397: called, flags=0x00000001
[ 8.081546] Service.DSP <Info> core\hle\service\dsp_dsp.cpp:LoadComponent:148: Firmware hash: 0xfebbb7d459664e14
[ 8.081570] Service.DSP <Info> core\hle\service\dsp_dsp.cpp:LoadComponent:152: Structures hash: 0x3f02d76b56ccedc5
[ 8.081582] Service.DSP <Warning> core\hle\service\dsp_dsp.cpp:LoadComponent:156: (STUBBED) called size=0xBE44, prog_mask=0x000000FF, data_mask=0x000E00FF, buffer=0x003E31B0
[ 8.082180] Service.DSP <Info> core\hle\service\dsp_dsp.cpp:RegisterInterruptEvents:247: Registered type=2, pipe=2, event_handle=0x000F002C
[ 8.082417] Service.DSP <Warning> core\hle\service\dsp_dsp.cpp:GetSemaphoreEventHandle:173: (STUBBED) called
[ 8.082638] Service.DSP <Warning> core\hle\service\dsp_dsp.cpp:SetSemaphoreMask:468: (STUBBED) called mask=0x00002000
[ 8.083011] Audio.DSP <Info> audio_core\hle\pipe.cpp:PipeWrite:134: Application has requested initialization of DSP hardware
[ 8.083173] Service.DSP <Warning> core\hle\service\dsp_dsp.cpp:SetSemaphore:270: (STUBBED) called
[ 8.084843] Service.DSP <Warning> core\hle\service\dsp_dsp.cpp:SetSemaphore:270: (STUBBED) called
[ 8.618495] Service <Error> core\hle\service\service.cpp:HandleSyncRequest:95: unknown / unimplemented function 'SetInternalPriorities': port=gsp::Gpu, cmd_buff[1]=0x19, cmd_buff[2]=0x1A
[ 8.622707] Kernel.SVC <Warning> core\hle\svc.cpp:CreateMemoryBlock:1033: called addr=0x0041F000
[ 8.622911] Service.MIC <Warning> core\hle\service\mic_u.cpp:MapSharedMem:62: called, size=0x1000, mem_handle=0x00120032
[ 8.623351] Service.MIC <Warning> core\hle\service\mic_u.cpp:GetGain:194: (STUBBED) called
[ 8.623523] Service.MIC <Warning> core\hle\service\mic_u.cpp:SetGain:179: (STUBBED) called, mic_gain=55
[ 8.623676] Service.MIC <Warning> core\hle\service\mic_u.cpp:SetPower:209: (STUBBED) called, mic_power=1
[ 8.623827] Service.MIC <Warning> core\hle\service\mic_u.cpp:SetClamp:259: (STUBBED) called, clamp=1
[ 8.623918] Service.MIC <Warning> core\hle\service\mic_u.cpp:GetGain:194: (STUBBED) called
[ 8.624562] Service.MIC <Warning> core\hle\service\mic_u.cpp:StartSampling:105: (STUBBED) called, encoding=3, sample_rate=3, audio_buffer_offset=0, audio_buffer_size=4092, audio_buffer_loop=1
[ 9.748953] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:ResumeScheduler:120: (STUBBED) called
[ 11.637529] Service.FS <Error> core\file_sys\savedata_archive.cpp:OpenDirectory:317: Unexpected file in path C:\Users\Administrator\Documents\Citra/user/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/title/00040000/00054000/data/00000001/GameData.bin
[ 11.637561] Service.FS <Error> core\hle\service\fs\fs_user.cpp:OpenDirectory:426: failed to get a handle for directory type=4 size=28 data=[Wchar: /GameData.bin]
[ 11.649469] Service.APT <Warning> core\hle\service\apt\apt.cpp:AppletUtility:565: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFD8C, output_addr=0x0FFFFD88
[ 11.671486] Service.FS <Error> core\file_sys\archive_extsavedata.cpp:OpenFile:107: C:\Users\Administrator\Documents\Citra/user/nand/data/00000000000000000000000000000000/extdata/00000000/F000000B/user/ublg.lst not found
[ 11.671507] Service.FS <Error> core\hle\service\fs\fs_user.cpp:OpenFile:93: failed to get a handle for file [Wchar: /ublg.lst]
[ 11.710042] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:SuspendDaemons:89: (STUBBED) daemon_bit_mask=0x0000000E
[ 11.710618] Service <Error> core\hle\service\service.cpp:HandleSyncRequest:95: unknown / unimplemented function 'OpenRawFile': port=cecd:u, cmd_buff[1]=0x54000, cmd_buff[2]=0x2, cmd_buff[3]=0x2, cmd_buff[4]=0x20, cmd_buff[5]=0xFFFFD8C
[ 11.711149] Service <Error> core\hle\service\service.cpp:HandleSyncRequest:95: unknown / unimplemented function 'ReadRawFile': port=cecd:u, cmd_buff[1]=0x60, cmd_buff[2]=0x60C, cmd_buff[3]=0xFFFFD24
[ 11.712168] Service.NDM <Warning> core\hle\service\ndm\ndm.cpp:ResumeDaemons:104: (STUBBED) daemon_bit_mask=0x0000000F
[ 11.855102] HW.GPU <Critical> video_core\renderer_opengl\gl_shader_gen.cpp:SampleTexture:169: Unhandled texture type 5
[ 15.979325] Render.OpenGL <Warning> video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:472: API OTHER 65536: Framebuffer unsupported. Framebuffer object 3 is unsupported because the depth and stencil attachments are mismatched.
[ 19.777199] WebService <Error> web_service\web_backend.cpp:PostJson:42: Environment variables CITRA_WEB_SERVICES_USERNAME and CITRA_WEB_SERVICES_TOKEN must be set to POST JSON
I discovered a workaround for this:
Go to the save data location using Citra Rename GameData.bin to GameData.old Start the game and create a new file Once it says "The file has been created." and while the game is still running, delete the new GameData.bin file and rename GameData.old back to GameData.bin Go to the Emulation menu and click Restart The list of save files should display and load properly
I'm having a similar problem with the latest nightly and canary builds, and neither disabling JIT CPU nor the above fix works to get around the issue.
The problem may have expanded to any save file which has stars or is saved in the special worlds. As I had only just beaten world 8 for the first time. The game saved and returned to the title, then I tried to load, but the screen went blank white and stayed there before the file select screen. The game had played perfectly up to that point.
The versions of Citra I tried on: Nightly 1329 | HEAD-2f0ea48 (2019-08-13) Canary 1441 | HEAD-2a39f44 (2019-08-13)
Game: Super Mario 3D Land (USA) (Rev1) The version is from a cartridge, not the eStore version and was decrypted using Batch CIA 3DS Decryptor: https://gbatemp.net/threads/batch-cia-3ds-decryptor-a-simple-batch-file-to-decrypt-cia-3ds.512385/
Attached is a zip containing a save from before the issue (before finishing 8-castle) and one from after the problem manifests (after finishing 8-castle the first time). Also included are log files from a run where the white screen issue manifested.
Is there any possibility to circumvent this white screen in the very latest canary builds?
What is causing this to happen? I really hope I can continue my play through some day.
@RokkumanX The problem is caused by the flashing stars on your profile that show up once you complete the main part of the game. If you haven't died more than 5 times in a single level, then the stars on the profile will shine, causing the crash. In order to proceed to the next part of the game, you'll have to die more than 5 times on a level so the stars won't shine and the game won't crash.
@GottaHelp
Thanks for telling me, so much for a perfect save file I guess. Just to be clear, by dying 5 times means using the white/gold Tanooki suit also right?
@RokkumanX Correct.
I got to try this out, is the solution really that simple? Glittering stars or not I just want to complete the bloody game ha ha ha.
OK.......I'm doing this for science.
Amazing, all it took was to die 5 times before completing the base game and I could finally start to complete the rest of the game.
Glittering profile stars ain't worth shit considering that you miss out over half the game.
@RokkumanX Those were my exact thoughts too haha. I just wanted to be able to complete the game. Such a strange issue that I hope gets fixed eventually. Glad I was able to help you out.
Please try again with PR #5120 to see if this fixes the issue. To test you can download the latest Canary.
Still not fixed with #5120.
It's still not working, are they ever going to fix it?
Did you guys use a fresh/healthy save file before testing this? A corrupted/tainted save file will stay that way even with PR #5120 merged. It will not magically fix the problem if you are just reusing back the same save file with white screen issue.
To properly test this you need to have a save file that works fine before any white screen occur, play until the moment that you are 100% sure will cause white screen in previous Citra version. Save that then try to load back the save file. Most importantly all this steps must be done on the latest Citra Nightly from the start.
Even better will be just dump the save file from 3DS and load on latest Nightly. This method is more reliable way to confirm whether this issue is fix or not.
#5120 didn't fix this, I deleted the title ID folder, and used a cheat from https://gbatemp.net/threads/release-super-mario-3d-land-cheat-codes.554275/
I can confirm the issue is still not fixed. I used a save from before the issue manifests (same one I linked back in August 2019), completed Bowser's Castle then went to load again. The same white screen appeared and stayed there forever.
This is on current nightly 1515 | HEAD-98fe5f8 (2020-04-28)
And here's the log file from this run. Looks like we're still seeing the same video issues. citra_log.txt
Fixed or not I got a 100% completed game thanks to @GottaHelp , sure the stars ain't glittering but I can live with that.
The only fix at the moment is to die 5 times in the game and that's it, I saved my 5 deaths to the end of the game before completing the last stage and beating Bowser to see the end.
i am not gonna spend time to do all the achievement just to play the extreme Special 8 Crown....would there be a perfect save now? I somehow have Taiwan version...Would a USA/EUR gamedata.bin work?
@RokkumanX The problem is caused by the flashing stars on your profile that show up once you complete the main part of the game. If you haven't died more than 5 times in a single level, then the stars on the profile will shine, causing the crash. In order to proceed to the next part of the game, you'll have to die more than 5 times on a level so the stars won't shine and the game won't crash.
Hi there @GottaHelp, do you have a 100% save so that I could experience Special 8-Crown? Many thanks.
@RokkumanX The problem is caused by the flashing stars on your profile that show up once you complete the main part of the game. If you haven't died more than 5 times in a single level, then the stars on the profile will shine, causing the crash. In order to proceed to the next part of the game, you'll have to die more than 5 times on a level so the stars won't shine and the game won't crash.
Hi there @GottaHelp, do you have a 100% save so that I could experience Special 8-Crown? Many thanks.
I do not at the moment @supermansaga. Sorry.
This problem still occurs in Citra Nightly 1629, unfortunately :(
The problem still occurs in Citra Canary 1952.
I was able to devise a sort of workaround. It's not a great workaround, because it involves deliberately invalidating your own perfect save, but it does allow you to continue playing and you can eventually restore your save to perfect status (although doing this will again, make the game not work).
NOTE: Don't have Citra open while doing this.
- Find your GameData.bin (save file) for Super Mario 3D Land. For me, it's in "C:\Users\Admin\AppData\Roaming\Citra\sdmc\Nintendo 3DS\00000000000000000000000000000000\00000000000000000000000000000000\title\00040000\00054000\data\00000001" (NTSC version of the game).
- Create a backup of GameData.bin (same folder is fine).
- Use a hex editor (such as HxD) to open up the original GameData.bin.
- If your save game with the shiny status is in slot 1, go to offset (CTRL+G opens the "go to" function in most hex editors) 0x2B8F; if it's in slot 2, 0x3513 instead; if it's in slot 3, 0x3E95 instead.
- The value should be 04 here if you've just beaten the base game and have the two sparkly stars. If you're using a save game from a real 3DS (or someone else's 100% save), then the value may be different, since this offset corresponds to the amount of sparkly stars you have. A value of 3F is a perfect full-game all-sparkly save.
- However, to REMOVE the sparkly status, you should instead set this value to 40.
- Save the file and close the hex editor.
- Download this SM3DL save game editor (from Mirror 2, Mediafire.com): https://gbatemp.net/threads/how-to-get-5-sparkly-stars-savefile-back-on-super-mario-3d-land.542645/
- Run the save game editor and open up your modified GameData.bin via the "open GameData" button.
- You don't need to make any changes, you just need to then hit "save GameData" after having opened it up. Presumably, this fixes a corruption/cheating-monitoring checksum or some such.
Your save should now work. If at some point in the future you want to restore all your sparkly stars (perhaps if Citra has fixed this issue), then you would simply do this all over again but instead change your value to 04 (2 sparkly stars) or 3F (all sparkly stars).
As opposed to what @Dragios said, your save is not permanently corrupted even if you're using an old save. My save was from two years ago, and I was able to fix it by just changing that one flag and re-saving it.
@BartyMae I can confirm that this fix works! Thanks so much!
@Ugoku You're welcome. I had a broken save sitting around for two years and I didn't want to erase it and start all over just to create an imperfect save, so I had to figure out how to fix the save in a way that was reversible. Finally took a look into it again recently and figured it out with the help of other people's related research.
@BartyMae I don't think I'm editing the right value, I have my sparkly save in slot 2 and the value at 0x00003513 was 03. Editing it to 40 and then reverifying it with the save editor just caused the emulator to see the entire .bin as corrupt and erase it (fortunately I had a backup). Could someone take a look at my .bin and see if I'm selecting the right value? I'm not too familiar with hex editors so sorry if I'm not selecting the right one. Again, my sparkly save is in slot 2. https://drive.google.com/file/d/1NZdrUB10mq8qxVsVIFJfUi_gcMOnrecI/view?usp=sharing
Still happens as of Citra Nightly 1737