Hydr8gon / sm64

A port of Super Mario 64 for the DSi
Creative Commons Zero v1.0 Universal
130 stars 9 forks source link

Port will not start from TWiLightMenu++ on real DSi Hardware #5

Closed nmchlngy4 closed 3 years ago

nmchlngy4 commented 3 years ago

Hello,

Although I have successfully compiled this port, I was unable to start this port on my actual Nintendo DSi using TWiLightMenu++. It crashes to a black screen.

Here are some of my TWiLightMenu++ Settings for reference:

Run in: DSi Mode ARM9 CPU Speed: 133 MHz (TWL) VRAM Boost: On S1SD: Use nds-bootstrap Yes Sound/Mic Frequency: 32.73 kHz DSiWare Booter: Unlaunch

Hydr8gon commented 3 years ago

It doesn't work well with nds-bootstrap for some reason. Skipping libfat initialization will allow it to boot without freezing (remove -DLIBFAT from the makefile), but you won't be able to save. I recommend loading the game with some other method; since you have Unlaunch installed, I'd say boot it directly with that.

ApacheThunder commented 3 years ago

This isn't an issue isolated to TWiLIghtMenu. It fails to operate from hbmenu too. I'm assuming this should be resolved once/if NitroFS stuff is sorted out and arm9 binary size becomes smaller. You'll need to boot it directly from Unlaunch if you want to use it on hardware. ;)

ApacheThunder commented 3 years ago

By the way, if NitroFS can't be sorted out, perhaps the assets to the game can be stored externally? It would still have to be loaded into ram the same way it is now, but it would make the SRL more compatible. It wouldn't help with DS/DS Lite users though (would still need NitroFS for that). But would make the SRL fit better to the normal specifications and allow it to be installed to System Menu and run from most launchers like hbmenu, nds-bootstrap, etc.

RocketRobz commented 3 years ago

This has been fixed/worked around for a while. TWiLight Menu++ now reboots into Unlaunch to start the SM64 DSi port.

GamingDamned commented 3 years ago

I can confirm still doesn't work with real DSi hardware on TWiLightMenu++

TheMamaMiaGuy commented 3 years ago

This has been fixed/worked around for a while. TWiLight Menu++ now reboots into Unlaunch to start the SM64 DSi port.

Actually, it doesn’t…

RocketRobz commented 3 years ago

Make sure TWLMenu++ is on the latest version (v20.1.0). If it's already on that version, try booting it directly through Unlaunch.

RocketRobz commented 3 years ago

This TWLMenu++ commit successfully fixes the black screen crash, as well as removing the Unlaunch requirement: https://github.com/DS-Homebrew/TWiLightMenu/commit/40f86d31d0ab8a8f706d6d0660c63d852633a856 This is done by relocating the passed arguments to near the end of the RAM.

As a result, the save .bin file is now read from the same location as the sm64.??.nds file.

Originally, it crashed because the arguments are overwritten due to trying to read the save data.

Hydr8gon commented 3 years ago

Awesome! Looks like we can close this issue then :)

TheMamaMiaGuy commented 3 years ago

Make sure TWLMenu++ is on the latest version (v20.1.0). If it's already on that version, try booting it directly through Unlaunch.

I just updated it to the latest version and now its saying “This homebrew cannot be launched on 3DS consoles” which doesn’t make sense…

RocketRobz commented 3 years ago

I just updated it to the latest version and now its saying “This homebrew cannot be launched on 3DS consoles” which doesn’t make sense…

That's because Unlaunch doesn't work on 3DS consoles. The next TWLMenu++ version will remove the Unlaunch requirement, thus making the homebrew work on 3DS consoles as well.

TheMamaMiaGuy commented 3 years ago

That's because Unlaunch doesn't work on 3DS consoles. The next TWLMenu++ version will remove the Unlaunch requirement, thus making the homebrew work on 3DS consoles as well.

oh, ok. Tell me when it’s out because I’m excited to try out Super Mario 64 for DSi…on the 3ds…