linux-3ds / firm_linux_loader

FIRM Linux Loader for the Nintendo 3DS
GNU General Public License v2.0
69 stars 8 forks source link

downclock/upclock don't seem to be working #23

Closed spholz closed 3 years ago

spholz commented 3 years ago

firm_linux_loader hangs on the -- FIRM Linux loader by xerpi -- screen for me. If I remove the calls to upclock() and downclock() in arm11/source/smp.c (lines 54, 96, 98) everything seems to work again. I am using a New Nintendo 3DS XL with fastboot3DS.

nickdesaulniers commented 3 years ago

hmm, I wonder if fastboot3DS is already raising the clocks. If that's the case, we probably could check the socmode and skip trying to do some initialization. Not sure why that would hang though. Perhaps interrupts aren't delivered if were already in the socmode requested.

spholz commented 3 years ago

I noticed that the commit that added this code (3f5c46e55dc6aa711fe07ba165f0f0a25e29193d) is based on open_agb_firm. However, open_agb_firm works fine on my 3DS.

spholz commented 3 years ago

And it looks like the file source/arm11/hardware/pdn.c of the open_agb_firm repo is based on fastboot3DS. (line 2 suggests that)

Wolfvak commented 3 years ago

Yes, the initialization part should be skipped on consoles that have already switched to LGR2 mode, we've hit that issue before. https://github.com/d0k3/GodMode9/blob/41d36c620ff54902e958688fd8ba8b1128da1514/arm11/source/system/sys.c#L56