{"action":"created","issue":{"url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/49","repository_url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx","labels_url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/49/labels{/name}","comments_url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/49/comments","events_url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/49/events","html_url":"https://github.com/libretro/mupen64plus-libretro-nx/issues/49","id":438585512,"node_id":"MDU6SXNzdWU0Mzg1ODU1MTI=","number":49,"title":"[WIN64] Zelda OoT random freezing and rainbow pause screen. ","user":{"login":"Dylan10126","id":42394536,"node_id":"MDQ6VXNlcjQyMzk0NTM2","avatar_url":"https://avatars1.githubusercontent.com/u/42394536?v=4","gravatar_id":"","url":"https://api.github.com/users/Dylan10126","html_url":"https://github.com/Dylan10126","followers_url":"https://api.github.com/users/Dylan10126/followers","following_url":"https://api.github.com/users/Dylan10126/following{/other_user}","gists_url":"https://api.github.com/users/Dylan10126/gists{/gist_id}","starred_url":"https://api.github.com/users/Dylan10126/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dylan10126/subscriptions","organizations_url":"https://api.github.com/users/Dylan10126/orgs","repos_url":"https://api.github.com/users/Dylan10126/repos","events_url":"https://api.github.com/users/Dylan10126/events{/privacy}","received_events_url":"https://api.github.com/users/Dylan10126/received_events","type":"User","site_admin":false},"labels":[{"id":1284935072,"node_id":"MDU6TGFiZWwxMjg0OTM1MDcy","url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/labels/investigating","name":"investigating","color":"fcd6bf","default":false,"description":""},{"id":1247595314,"node_id":"MDU6TGFiZWwxMjQ3NTk1MzE0","url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/labels/more%20infos%20needed","name":"more infos needed","color":"53ef68","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":88,"created_at":"2019-04-30T02:59:10Z","updated_at":"2020-01-06T17:48:09Z","closed_at":null,"author_association":"NONE","body":"Platform - Windows 10\r\nVersion - 1.7.6\r\nRom - Zelda Ocarina of Time (all versions)\r\nCPU - i5-4670k\r\nGPU - GTX 980\r\n\r\nHaving an issue where the background of the pause menu will get all rainbow colored (see example below). The only solution I was able to find was the old PJ64 gameshark code which doesnt work. \r\n\r\nThat issue I can live with, however i'm mainly looking for information regarding random freezing I get where the rom will freeze, but the audio will still be playing, and the retroarch menu works fine. Save/load state brings me to a white screen with the same audio playing. These freezes can occur anytime between a few minutes of play, up to about an hour of play. The only lead I found to this issue was a year old post on the mupen64plus-libretro github saying that its related to Delay SI, which wasnt/isnt an option on the libretro cores. \r\n"},"comment":{"url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/comments/571238085","html_url":"https://github.com/libretro/mupen64plus-libretro-nx/issues/49#issuecomment-571238085","issue_url":"https://api.github.com/repos/libretro/mupen64plus-libretro-nx/issues/49","id":571238085,"node_id":"MDEyOklzc3VlQ29tbWVudDU3MTIzODA4NQ==","user":{"login":"fpi1337","id":59543834,"node_id":"MDQ6VXNlcjU5NTQzODM0","avatar_url":"https://avatars3.githubusercontent.com/u/59543834?v=4","gravatar_id":"","url":"https://api.github.com/users/fpi1337","html_url":"https://github.com/fpi1337","followers_url":"https://api.github.com/users/fpi1337/followers","following_url":"https://api.github.com/users/fpi1337/following{/other_user}","gists_url":"https://api.github.com/users/fpi1337/gists{/gist_id}","starred_url":"https://api.github.com/users/fpi1337/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fpi1337/subscriptions","organizations_url":"https://api.github.com/users/fpi1337/orgs","repos_url":"https://api.github.com/users/fpi1337/repos","events_url":"https://api.github.com/users/fpi1337/events{/privacy}","received_events_url":"https://api.github.com/users/fpi1337/received_events","type":"User","site_admin":false},"created_at":"2020-01-06T17:48:08Z","updated_at":"2020-01-06T17:48:08Z","author_association":"NONE","body":"Okay, I'm done testing. I've made 8 cycles where I tested the scenario with the new compiled core (I compiled it myself and didn't use your compile). For everyone who's reading in this thread, I will now write in german to describe the instructions and results better. This instructions are pointed towards @m4xw , hoping he will have success finding the cause of the issue.\r\n\r\nAaaalso, vorweg schonmal die config meines Cores:\r\n\r\n_mupen64plus-169screensize = \"960x540\"\r\nmupen64plus-43screensize = \"960x720\"\r\nmupen64plus-alt-map = \"False\"\r\nmupen64plus-aspect = \"4:3\"\r\nmupen64plus-astick-deadzone = \"15\"\r\nmupen64plus-astick-sensitivity = \"100\"\r\nmupen64plus-BackgroundMode = \"OnePiece\"\r\nmupen64plus-BilinearMode = \"standard\"\r\nmupen64plus-CorrectTexrectCoords = \"Off\"\r\nmupen64plus-CountPerOp = \"0\"\r\nmupen64plus-cpucore = \"dynamic_recompiler\"\r\nmupen64plus-d-cbutton = \"C3\"\r\nmupen64plus-EnableCopyColorToRDRAM = \"Async\"\r\nmupen64plus-EnableCopyDepthToRDRAM = \"Software\"\r\nmupen64plus-EnableEnhancedHighResStorage = \"False\"\r\nmupen64plus-EnableEnhancedTextureStorage = \"False\"\r\nmupen64plus-EnableFBEmulation = \"True\"\r\nmupen64plus-EnableFragmentDepthWrite = \"True\"\r\nmupen64plus-EnableHWLighting = \"False\"\r\nmupen64plus-EnableLegacyBlending = \"False\"\r\nmupen64plus-EnableLODEmulation = \"False\"\r\nmupen64plus-EnableN64DepthCompare = \"True\"\r\nmupen64plus-EnableNativeResTexrects = \"Disabled\"\r\nmupen64plus-EnableOverscan = \"Enabled\"\r\nmupen64plus-EnableShadersStorage = \"True\"\r\nmupen64plus-EnableTextureCache = \"True\"\r\nmupen64plus-ForceDisableExtraMem = \"False\"\r\nmupen64plus-FrameDuping = \"False\"\r\nmupen64plus-Framerate = \"Original\"\r\nmupen64plus-FXAA = \"0\"\r\nmupen64plus-l-cbutton = \"C2\"\r\nmupen64plus-MaxTxCacheSize = \"8000\"\r\nmupen64plus-MultiSampling = \"0\"\r\nmupen64plus-NoiseEmulation = \"False\"\r\nmupen64plus-OverscanBottom = \"0\"\r\nmupen64plus-OverscanLeft = \"0\"\r\nmupen64plus-OverscanRight = \"0\"\r\nmupen64plus-OverscanTop = \"0\"\r\nmupen64plus-pak1 = \"memory\"\r\nmupen64plus-pak2 = \"none\"\r\nmupen64plus-pak3 = \"none\"\r\nmupen64plus-pak4 = \"none\"\r\nmupen64plus-r-cbutton = \"C1\"\r\nmupen64plus-rspmode = \"HLE\"\r\nmupen64plus-txCacheCompression = \"True\"\r\nmupen64plus-txEnhancementMode = \"None\"\r\nmupen64plus-txFilterIgnoreBG = \"True\"\r\nmupen64plus-txFilterMode = \"None\"\r\nmupen64plus-txHiresEnable = \"False\"\r\nmupen64plus-txHiresFullAlphaChannel = \"False\"\r\nmupen64plus-u-cbutton = \"C4\"\r\nmupen64plus-virefresh = \"Auto\"_\r\n\r\n**Name der Rom: Legend of Zelda, The - Majora's Mask (Europe) (En,Fr,De,Es).n64**\r\n**MD5-Checksumme der ROM: 53990a4ae36382ae17d15e26edf89c92**\r\n**Spielstände (regulär und Emulator Savestate)**: \r\n\r\n[Legend of Zelda, The - Majora's Mask (Europe) (En,Fr,De,Es).srm.tar.gz](https://github.com/libretro/mupen64plus-libretro-nx/files/4027162/Legend.of.Zelda.The.-.Majora.s.Mask.Europe.En.Fr.De.Es.srm.tar.gz)\r\n[Legend of Zelda, The - Majora's Mask (Europe) (En,Fr,De,Es).state.tar.gz](https://github.com/libretro/mupen64plus-libretro-nx/files/4027163/Legend.of.Zelda.The.-.Majora.s.Mask.Europe.En.Fr.De.Es.state.tar.gz)\r\n\r\nMit diesen Settings habe ich also 8x die Szene durchgespielt und kam zu dem Ergebnis, dass die Spielstelle an sich **keinen Crash** mehr produziert. Hier sei allerdings ein großes ABER genannt:\r\n\r\n- Nach jedem Schließen des Spiels ist ulkigerweise KEIN Core mehr geladen. Dies war mit dem bisherigen Core nicht der Fall, denn der wurde mir immer als geladen angezeigt.\r\n- Es gab 2 bestimmte Crashes, die mich dazu zwangen, den PC neuzustarten, sprich es war zwar möglich auf meine Linuxumgebung zuzugreifen, nicht aber auf mein Retroarch, da dieser hing. Der Crash tauchte beim 1., als auch beim 7. Durchgang auf, nachdem ich das Retroarch-Menü geöffnet hätte, während ich InGame war und innerhalb des Menüs dann auf \"Schließen\" geklickt habe - sprich die Emulation beenden wollte. Wie gesagt, in 2 von 8 Fällen freezete es (oder besser gesagt, es freezte) beim Versuch das Spiel zu schließen. Ist natürlich nicht schön, aber immerhin noch besser als wenn dies während des Spielens geschieht. Einen ähnlichen Crash im Retroarchmenü während das Spiel mit dem neu kompilierten Core lief ließ sich durch einen von vielen Screenshotaufnahmen provozieren.\r\n- Außerdem scheint es bei diesem kompilerten Core das Problem zu geben, dass die Savestates (wichtig: States, die ich durch das Emulatormenü angelegt habe) nicht richtig geladen werden. Die Darstellung des Spiels ist dann bei mir komplett fehlerhaft. Dies kannst Du mithilfe des angehängten Savestates selbst mal ausprobieren. Damit Du aber zu Testzwecken mein Szenario durchspielen kannst, habe ich Dir auch den \"normalen\" Spielstand (.srm.Datei) angehängt. Den kannst Du dann regulär im Spiel laden. Das Laden des Spielstandes über den Emulator (.state-Datei) sieht bei mir so aus:\r\n\r\n![Bildschirmfoto-6](https://user-images.githubusercontent.com/59543834/71836185-d93aa580-30b3-11ea-8f0c-2934dfc33714.png)\r\n\r\nKommen wir nun zu der Anleitung, wie Du die Freezes mit dem offiziellen, bestehenden Core unter Umständen auch bei Dir provozieren kannst. Dies geht übrigens auch bei alten Mupen64Plus-Versionen (2.5), da es im Zusammenspiel Zelda <-> Mupen64 wohl schon immer den ein oder anderen Freeze gab. Also, gehe folgende Schritte durch, um den Freeze zu provozieren (mit den bestehenden, offiziellen Cores!):\r\n\r\n1. Starte das Spiel und lade regulär über das Spielmenü den Spielstand (da der Emulator-Savestate ja wie bereits geschildert Probleme in sich birgt). Du wirst Dich direkt am ersten Tag wiederfinden. Dies ist der Punkt im Spiel, an dem ich mir die Okarina vom Horror Kid frisch wiedergeholt habe und quasi bereit bin, meine alte Gestalt wiederzubekommen. Wie Du sicher weißt, muss man dazu einfach nur in den Clocktower rein und mit dem Maskenhändler reden.\r\n2. Sprich mit dem Maskenhändler und starte die kritische Cutszene. Er wird Dir zunächst das Lied der Befreiung beibringen. Dies lernst Du auch wie gehabt, um die Cutszene fortschreiten zu lassen. Nachdem der Typ dann feststellt, dass Du Majoras Maske nicht besitzt, kommt der Teil der Cutszene, in der er von der Maske und ihrer Herkunft erzählt. Majoras Maske rotiert also langsam in den Bildschirm. **Hier KANN es bereits zu einem Freeze kommen.** \r\n3. Sofern nicht schon die ersten Freezes ausgelöst wurden, geht die Cutszene  nun weiter. Im Übrigen können die Freezes im ganzen Verlauf der Szene auftreten. Ich denke die meisten Freezes hatte ich wohl an dem Punkt der Cutszene, in der sich der Maskenhändler darüber freut, dass Du ihm helfen willst. An diesem Punkt wechselt er auch öfter seine Körperhaltung/Gesten. Während dieses Wechsels der Körpergesten trat bei mir bereits häufig ein Freeze auf.\r\n4. Ist die Cutszene erfolgreich ohne Freeze abgelaufen, kann ich nun theoretisch wieder Termina betreten. An diesem Punkt beende ich aber die Emulation über Retroarch und laden dann das Spiel erneut. Sei Dir bitte darüber im Klaren, dass es schonmal 5 - 10 Durchläufe brauchen kann, bis es zu diesem Freeze kommt. Daher ist da manchmal etwas Geduld angesagt, aber ich denke das muss man Dir als Programmierer während des Debuggings nicht sagen. ;) \r\n\r\nDer Vollständigkeit halber würde ich Dir noch meinen kompilierten Code anhängen, da der ja wie oben beschrieben zu den Freezes im Emulatormenü führt (auch wenn ich denke, dass es nicht am Kompilat liegt, sondern eher daran dass das Ding ja noch nicht als stable releaset wurde).\r\n\r\n[mupen64plus_next_libretro.so.tar.gz](https://github.com/libretro/mupen64plus-libretro-nx/files/4027185/mupen64plus_next_libretro.so.tar.gz)\r\n\r\nDa es ja mit dem neuen Core (zumindest bislang) zu keinem Crash während der Cutscene kam, würde mich Deine Vermutung interessieren, woran das denn nun gelegen haben könnte. Natürlich alles vor dem Hintergrund, dass der \"cached_interpreter\" mit dem offiziellen Core funktioniert, der dynarec allerdings nicht (zumindest bei mir). Irgendwelche Ideen?\r\n\r\nIch hoffe, dass Dir die Informationen und Dateien weiterhelfen! :)\r\n\r\n\r\n\r\n\r\n"}}
{"actor":{"display_login":"fpi1337"}}