iNDS
iNDS copied to clipboard
iNDS Black Screen on some games
Hi there!
First, and foremost, thank you :) I still prefer using iNDS to nds4ios.
And it's a jailed iPhone 6 ios 9.2.1 with iNDS 1.3.7 build from the xCode project.
Now the issue is on one particular game, and and did not test any other. The game in question is Pokemon Heart Gold. In my mac, it runs without problems, (and it's a dump from my cartdrige, since my DSi got slammed by me xD). I then Patched it, 'cause it wasn't working ok on desmume nor no$gba, had those freeze and black screen. So, the rom now is working on everything, but iNDS. I spent 4 hours playing though nds4ios, and nothing, not a freeze or black screen. 10 minutes on iNDS and BAM! black screen. If i save the game (not that "save State") and relaunch the game it start from that point ok, but 10 minutes or so, and BAM! again.
Is there anyway of fixing it? Neither AP fix Codes (for an already patched rom) work, although other codes work.
Thanks for the good work!
I edited some code that had to do object ordering because it was causing a majority of crashes. It probably caused this. Does the entire screen go black or just the top screen?
Just top screen! Entering zones (or houses or wtv) does not solve when it goes black.
What do you mean you patched the rom? Just curious. I had the black screen problem in soul silver on nds4ios... it's actually the bug got me to start developing iNDS
I figured out the problem but I don't have a solution quite yet.
When the CPU interpreter instruction cache fills up it has to be flushed and reset. This works fine on other games but for some reason it black screens SoulSilver and HeartGold the second time it's reset.
Turning off the cache reset prevents the black screen but will crash the emulator soon after.
I'll update here if I make any more progress
I was kind of wrong. It turns out something in DeSmuME is glitching out after a few minutes of gameplay and makes the emulator unable textures correctly. That's why you see yourself as a black square when you enter buildings sometimes. The game still correctly shows cached textures because they've been loaded correctly already. Once the cache fills and then flushes, the emulator reloads the textures turning everything into a black square and you get the black screen.
Fixing the texture loading bug will fix this problem but I have no clue what's causing it
Did more research and it's something wrong with the emulator itself. Whenever the cpu cache resets, blocks for each instruction address are cleared and must be recompiled when reached. For some reason they are recompiled incorrectly and cause the interpreter in Soul Silver, Heart Gold, and other games to bug out and fail completely. I'm really not sure how to fix this. I thought it could be an easy fix but it looks like it might be something really complicated.
Hello, I am playing the same game, same emulator, same iOS. Is there anyway to make it work?? I so badly would like to complete Soul Silver without reloading every 5 mins.
P.S. I forgot to mention: Thank you very much for this amazing emulator on iOS! It is a million times better than the one u based it off, and seeing as it is the only working one, it is really amazing! Arigato!~
Ok guys i found out the solution...you have to switch Auto-Save State off, and at least the blacking out of the screen wont happen...i just played for a good 2-3 hours so yea
Can confirm, issue appears to be related to the auto-save
Turning off auto save does help but it does NOT fix the problem as I am still getting tons of crashes and visual glitches, causing me to constantly reload the game. I have looked everywhere for a fix so I can just play through Soul Silver again but have found nothing to fix the issue.
I tried turning off auto save and the black screen keeps appearing. 😢
Still having these bugs years later! iPhone 13 pro iOS 15.2.1
Still having these bugs years later! iPhone 13 pro iOS 15.2.1
That’s because this project has been dead for years. If you would have read the readme there is a new fork of Inds. Or you can use Delta emulator.