DS-Homebrew / nds-bootstrap

Boot an nds file
https://wiki.ds-homebrew.com/nds-bootstrap/
GNU General Public License v3.0
1.18k stars 75 forks source link

Pokemon Gen 4 ROMs freeze #737

Closed ghost closed 3 years ago

ghost commented 5 years ago

Your console

Tell us which console you are using:

CFW and configuration

Tell us which CFW do you have:

DSi:

3DS/2DS:

nds-bootstrap version

Tell us which versions you are using:

Your device

Tell us which card you are using:

If this issue only affects a certain game, which game is it?

Pokemon Platinum, Diamond and Pearl. Haven't played any Black/White 1 or 2 or HeartGold and SoulSilver roms, so I don't know if the problem is specific to these games in particular.

Expected behaviour

Game should play as normal without freezes, especially the underground area.

Actual behaviour

Game freezes randomly after a certain period of time, and has only happened to me while in the overworld, not while in battle or while viewing the inventory (though maybe that's just being lucky). The underground area in particular is a good way to test it, as it freezes consistently there.

Steps to reproduce

  1. Boot up any rom (patched/regular/different region/etc.) of any of the main Gen 4 games (Platinum, Diamond, Pearl)
  2. Play a decent amount of time as you would normally do.
  3. Freeze will happen eventually, however going into the underground area accessed with the explorer kit is a surefire way to get freezes.

Other notes

Tried using different SD cards, different DSi's (one European and one from USA, thought it probably doesn't matter), thinking it might be just an issue with my devices or some other random corruption. Doesn't really seem to make a difference, but decided to specify this just in case.

ExostFPS commented 3 years ago

Still having this issue, 21MARCH2021. I am using the recent ST. Patrick's Day update and a randomized and AP patched SoulSilver ROM. Game freezes most commonly upon entering/leaving a building. Music will continue but screen stays black and button combination for soft reset no longer works.

Saiitama commented 3 years ago

Still having this bug, is it currently being fixed?

RocketRobz commented 3 years ago

Latest version should cut down the chances of the freeze happening. Otherwise, no.

ExostFPS commented 3 years ago

I worked out a fix. Reinstalled a new rom, used a different patching software before and after randomizing the game just to be safe! Thanks for the follow-up, I haven’t had a chance to post it in the GitHub.

On Tue, Mar 30, 2021 at 17:21 Andrew @.***> wrote:

Still having this bug, is it currently being fixed?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DS-Homebrew/nds-bootstrap/issues/737#issuecomment-810617430, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATKLHOH7MEX674LIWNS3AVDTGJFINANCNFSM4IPJHLOA .

diagnoser00 commented 3 years ago

+1 Still experiencing issue with freeze. Happens in trading room (every time) and very rarely in other areas. I must’ve tried everything in my (limited) ability attempting a workaround with AP, settings and randomiser changes, no joy unfortunately, not complaining at all though, having to play the 1 game on cart is not an issue at all, twilight menu is awesome- thank you SO much rocket robz! :)

Saiitama commented 3 years ago

it also freezes when i use the cart (pokemon platinum), and not the ROM, am i the only one?

diagnoser00 commented 3 years ago

it also freezes when i use the cart (pokemon platinum), and not the ROM, am i the only one?

Sorry I should have mentioned, i use an r4 through twilight menu and Heartgold works fine on that. 60+ hrs of gameplay with no freezes.

WiiWalker commented 3 years ago

Something I found weird is that the freezing is happening a lot on my german version of HG/SS while the US version seemed to be running fine. Tested randomized and non randomized copies.

Saiitama commented 3 years ago

Sorry I should have mentioned, i use an r4 through twilight menu and Heartgold works fine on that. 60+ hrs of gameplay with no freezes. @diagnoser00 so you bought an r4, used the same rom, but didn't get the freeze?

diagnoser00 commented 3 years ago

Correct :-)

Saiitama commented 3 years ago

i can also confirm, i bought an R4 and played many hours without getting any freeze (used the same rom that was on the sd in the DSI)

David-GINI commented 3 years ago

I've been having random freezes every 30 minutes or so on my DSi (12h in, Platinum ROM). Is this currently being fixed? I've been losing so much progress that I kinda don't wanna play anymore. Kind regards,

Saiitama commented 3 years ago

I've been having random freezes every 30 minutes or so on my DSi (12h in, Platinum ROM). Is this currently being fixed? I've been losing so much progress that I kinda don't wanna play anymore. Kind regards,

getting this myself :(

the only fix workinf for me is using an r4, same rom and everthing (i even moved and used the save file) and it doesn't freeze

RenaKunisaki commented 3 years ago

First, some context: I've been trying to randomize the Gen 4 and Gen 5 pokemon games so I could play them on my N3DS XL with Twilight Menu. I dumped the ones I was going to play since I already owned the physical copies (Platinum, Heart Gold, Black and Black 2) and applied the randomized "patch" through the Universal Randomizer program.

Exact same situation here. For me the game freezes every time I try to check my Pokemon's stats, as well as randomly when leaving a building.

Even having the original cartridge inserted doesn't help. However I found the "Dicasita" AP patch online, and that appears to have fixed it.

MDashK commented 3 years ago

Entitled much? lol Are you by chance using Twilight with the DSi mode option on?

SNBeast commented 3 years ago

Are you by chance using Twilight with the DSi mode option on?

Irrelevant. DSi mode is only applied with ROMs that were made for it.

MDashK commented 3 years ago

The issue stopped for me when I changed the option and started using TwiLight in normal DS mode, instead of DSi mode. I also use the audio in default khz and CPU speed in NTR instead of TWL. Some games like Sonic Classics don't even start on DSi Mode. It must be in DS Mode.

RenaKunisaki commented 3 years ago

In my case, DS/DSi mode made no difference (in fact I can't use DSi mode due to missing ROM files).

The problem is that the loader doesn't recognize the randomized ROMs and so doesn't apply the AP patch. You just have to apply it manually.

ZeikkuSSJ7 commented 3 years ago

The issue with this is solved by playing on a 3DS. I think that's why they are not really interested in fixing it right now. Even so, setting the console to ds mode does not change the outcome. For example, I played the entierety of Pokemon black and platinum in my 3ds with no issues, but when I started HeartGold on my DSi this issues started to appear, whether on DS or DSi mode (which did not work at the time, now it does with the latest version). There was an approach to solving this mentioned by @RocketRobz (and discovered by Kaisaan) which said:

Each 32 steps the game writes its instructions in the RAM

My guess here is that the 3DS virtual DS mode has some kind of exception handler that makes this "check" not occur, which in the DSi is not present (maybe to circumvent some kind of compatibility problem with other games?) and stops it from freezing

RenaKunisaki commented 3 years ago

The issue with this is solved by playing on a 3DS.

I'm playing on o3DS and still had the issue.

MDashK commented 3 years ago

80 CAD for a DSi XL?!?? Good lord. You can get a o3DS from japan for like 20~30 USD.

RenaKunisaki commented 3 years ago

o3DS is "old 3DS" as opposed to the confusingly-named New 3DS.

Like I said, you just need to find the Dicasita patch and apply that to your ROM (doesn't matter if it's been randomized already), then it should work fine.

RocketRobz commented 3 years ago

Are you going to fix this @RocketRobz? This issue is making the entire point of twilight useless for me. I want to play pokemon roms either modded or vanilla, and I cant even trust that it wont just freeze up. oh I forgot to save for an hour? there goes all my progress, which I'm obviously not gonna waste another hour playing if its just gonna happen again. Like c'mon, please rob you're a code god, you can fix this ;_;

Sorry, I've tried fixing it before, but the issue persists. Unless the main dev (@ahezard) returns to work on this, you're going to have to:

  1. Wait for a fix. (Which is unlikely to happen, since fixing it is out of my scope, and if it does get fixed, it'd be pure luck. :P )
  2. Buy a 3DS/2DS console.
  3. Play the original cartridge.
RocketRobz commented 3 years ago

Some games like Sonic Classics don't even start on DSi Mode. It must be in DS Mode.

You need to update both TWLMenu++ and nds-bootstrap for DSi-Enhanced games to work in DSi mode.

Saiitama commented 3 years ago

btw original cartridge doesn't fix it, only r4 does

Peter0x44 commented 3 years ago

original cartridge doesn't fix it

Uh, I'd hope the "official" method to play the game at least works...

MDashK commented 3 years ago

Are you going to fix this @RocketRobz? This issue is making the entire point of twilight useless for me. I want to play pokemon roms either modded or vanilla, and I cant even trust that it wont just freeze up. oh I forgot to save for an hour? there goes all my progress, which I'm obviously not gonna waste another hour playing if its just gonna happen again. Like c'mon, please rob you're a code god, you can fix this ;_;

Sorry, I've tried fixing it before, but the issue persists. Unless the main dev (@ahezard) returns to work on this, you're going to have to:

1. Wait for a fix. (Which is unlikely to happen, since fixing it is out of my scope, and if it does get fixed, it'd be pure luck. :P )

2. Buy a 3DS/2DS console.

3. Play the original cartridge.

Hasn't committed in over a year, yup, that'll never happen. Fucking hell, what a waste of money. 👍

» waste of money »» software is free, didn't pay for it dude... a DSi is a DSi. worst case scenario just sell the DSi and get a o3DS from Japan. I literally got 3 of them recently on the cheap from ebay...

RenaKunisaki commented 3 years ago

original cartridge doesn't fix it

Uh, I'd hope the "official" method to play the game at least works...

Yes, of course the original cart works normally, but having it present doesn't satisfy the AP when playing a hacked version.

Saiitama commented 3 years ago

original cartridge doesn't fix it

Uh, I'd hope the "official" method to play the game at least works...

Yes, of course the original cart works normally, but having it present doesn't satisfy the AP when playing a hacked version.

again, they don't i have og platinum, it has the same problem. only fix is playing with an R4

RocketRobz commented 3 years ago

Hasn't committed in over a year, yup, that'll never happen.

Just because a developer hasn't worked on something for a while, doesn't mean they won't return to work on it again. I've spoken to ahezard months ago, and he's stated before that he'll return to work on nds-bootstrap again, but for now, he has stuff going on IRL (in real life).

Fucking hell, what a waste of money. 👍

It's not a waste, if you're either willing to wait for a fix, or just sell your DSi and buy an O3DS (as already stated by @MDashK). If the wait is too long though, then implement the fix yourself. That's what I've done with DSi mode support, since I've been waiting for it to be implemented for nearly a year.

MDashK commented 3 years ago

If you think the DSi you have in your hands is a waste of money... Then you clearly do not know the potential of what's in your hands.

MetaEX commented 3 years ago

o3DS is "old 3DS" as opposed to the confusingly-named New 3DS.

Like I said, you just need to find the Dicasita patch and apply that to your ROM (doesn't matter if it's been randomized already), then it should work fine.

Just searching for this patch didn't bring up any results for me, so I'm not sure how one is supposed to come across it like you did. Been watching this issue for a while and made an account just to hopefully get some more info on this possible solution.

Edit: Nevermind, found it with some digging. The patching tool you're looking for is "Dicastia" not Dicasita"

Edit 2: Checking out Dicastia and it may be a solution for HGSS but since DPP don't have AP measures this won't work for them since there's no patches. So hopefully Bootstrap will someday be updated with a fix, or we'll have a happy accident that fixes it with TWL++.

Dark98 commented 3 years ago

Has anyone tried this while the no$ fix cheat is enabled?

Edit: just looked through the cheats for D/P & P and I think this only applies to HG/SS (haven't tested much but HG didn't seem to freeze after i enabled it) Depending what the cheat/patch actually does then it could apply to D/P/P though

Edit2: This cheat is there for White & White 2 aswell, so if this does actually fix it I think it might apply to D/P/P too

rlaphoenix commented 3 years ago

PSA: Maybe less off-topic discussion please. This isn't my issue, but for the good of the community, please.

rlaphoenix commented 3 years ago

PSA: Maybe less off-topic discussion please. This isn't my issue, but for the good of the community, please.

These discussions are relevant to the issue like????

yet theres people talking about price and type of 3ds and ds and shit.

RocketRobz commented 3 years ago

@Dark98 Good news!

Per the above issue link, enabling the NO$GBA fix seems to fix the issue!

MetaEX commented 3 years ago

That's great news! Is there any way to apply the same fix to DPP or add the cheat to the menu to try applying it and seeing if it works for those too?

Epicpkmn11 commented 3 years ago

The code for HGSS looks very simple:

020DE16C E1A00000

I don't know how to read these cheat codes though so not sure what that's actually doing. The same code looks to be used for all version of Heart Gold and Soul Silver in the latest version of DSJ's cheat databases.

Dark98 commented 3 years ago

The code for HGSS looks very simple:

020DE16C E1A00000

I don't know how to read these cheat codes though so not sure what that's actually doing. The same code looks to be used for all version of Heart Gold and Soul Silver in the latest version of DSJ's cheat databases.

I'm not able to look through the codes at the moment but could you check if the codes for B/W & B2/W2 are the same as the HG/SS ones?

MetaEX commented 3 years ago

The code for HGSS looks very simple:

020DE16C E1A00000

I don't know how to read these cheat codes though so not sure what that's actually doing. The same code looks to be used for all version of Heart Gold and Soul Silver in the latest version of DSJ's cheat databases.

I'm not able to look through the codes at the moment but could you check if the codes for B/W & B2/W2 are the same as the HG/SS ones?

I had some time so I looked through the database just now, they aren't the same.

The HG/SS one (just to have it in the same post as the others):

[Fix for No$GBA] 020DE16C E1A00000

This is the code for all versions of B/W and B/W 2:

[Fix for No$GBA] 52004EA0 E8BD01F0 02004EA0 EAFFF25C E2001800 0000005C E92D4008 E3A00000 E3A0150E E2811A06 E5810B44 EA5FE9F2 E59F4034 E59F5034 E5845000 E59F4020 E5945000 E59F601C E1550006 03A05001 05C4500A 03A05000 E1445DB4 E8BD01F0 EA000D95 021809E0 28AAFF1F 037FBFE0 EAA01606 00000000 D0000000 00000000

Also wanted to note while digging through the DSJ database that the code used for the HG/SS No$ Fix is also used in a code called "Overlay Check Patch." I don't know much about this stuff so I don't know if there's relevance in that info but I assume making a note of it doesn't hurt. This is the Overlay Check Patch cheat for reference, it's not used in any version of D/P/P from what I saw:

[Overlay Check Patch] 5201A570 E002D1F8 0201A570 E00246C0 520DDDC8 1AFFFFF5 020DDDC8 E1A00000 520DE16C 1AFFFFFC 020DE16C E1A00000 521E5B74 D10A2800 021E5B74 E00A2800 52260C20 4F35B5F8 02260C20 477020AA D2000000 00000000

Edit: This Overlay Check Patch is also used in every version of HG/SS.

Hope this can be of any help!

loopedice commented 3 years ago

@MetaEX Do you have the code for Platinum? Is it the same as HG/SS?

MetaEX commented 3 years ago

@MetaEX Do you have the code for Platinum? Is it the same as HG/SS?

No I don't, please read the rest of the thread or at least the recent replies before commenting. The code doesn't exist for DPP, and currently we don't know if just implementing the HGSS one for those games would do anything.

RocketRobz commented 3 years ago

The reason why the cheat code for DPP doesn't exist, is because the same code (which seems to be related to the AUXSPICNT register) causing the crash in HGSS, doesn't exist in DPP.

MetaEX commented 3 years ago

Does that mean the crashes in DPP are completely unrelated to the ones that were happening in HG/SS then? Or is it just a different line of code related to the same seeming register issue?

RocketRobz commented 3 years ago

Apparently, they're unrelated. From what I checked, the register isn't in the arm9 binary of Platinum.

skxpe commented 3 years ago

Hello all. I've been following this thread for a while. Just made an account to tell you that having activated the NO$GBA-fix in HeartGold I still experience freezes, although way less frequently. Two of them to be precise, the first happening while climbing up the ladder from the engine room on the ship to Kanto and the second in the tall grass on route 13. Just as a heads up to anyone playing, still save your game a lot. (:

This was on a DSi booting TM++ via Unlaunch.

sapfel93 commented 3 years ago

Just encounter the sprite corruption / freeze glitch in SoulSilver in the Safari Zone. First one in around 87 hours of play time. Was played on New 3DS.

David-GINI commented 3 years ago

Alright it's been a month and I'm at my fifth badge in Pokemon platinum (TWMenu on DSi). The game freezes more and more often, I'd say every 15 minutes or so. Any progress on fixing this ?

kaiomatico commented 3 years ago

@Dadlab have you tried it with TwilightMenu v20.4.1 which includes nds-bootstrap v0.42.0 with clean settings? Because the release announcement of nds-bootstrap says:

Bug fix & Regression

The top & bottom main screen options no longer work properly, with the game once again changing where the main screen is set.
This is done to hopefully fix unexpected issues (such as corrupt graphics and/or random freezes) when running DSi-Enhanced games in DSi mode.

So maybe it is fixed now?

David-GINI commented 3 years ago

I'll check it out and tell yall if it worked. Thanks a lot!