Hydr8gon / sm64

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

Sound completely stops working when 4 stars are collected (UTL-001 hardware), performance issues #8

Open alectrona6400 opened 3 years ago

alectrona6400 commented 3 years ago

Collected these stars: -Big Bob-omb on the Summit -Secret slide <21 second star -Secret slide normal star -Plunder in the Sunken Ship And the game audio stops working. Using an actual Nintendo DSi (XL UTL-001, unsure of the revision if there is any) Game loaded onto a 16GB SD card, started with unlaunch

As for performance issues, the game would lag at areas in more intensive areas. (high poly counts?) Replacing -g with -O2 doesn't seem to make a noticeable difference either. However, at some point I changed the screen resolution to 256x192 in config.h and that... didn't seem to work out too well. The game was aligned to the bottom left corner of the screen and the rest of it was just black. Perhaps there's another area to change, but i don't know. Plus, you would need to change the alignment of all the objects (HUD, letters/numbers, text, etc; 3d models look fine) printed on screen to fit the resolution.

Thanks in advance for reading through this. -k24a1

Hydr8gon commented 3 years ago

Audio definitely still has some issues. I'm not entirely sure why it dies; I've had it happen a couple times entirely randomly, but I've also had hours-long play sessions with it still working fine. The only place it seems to consistently die is after the final bowser fight. Regarding performance, the game is already compiled with -O2 for DS (and increasing this further doesn't yield noticeable improvements). Changing the screen resolution will have no effect on this either, becuase rendering has been entirely reimplemented on the DS hardware and therefore draws at the DS resolution regardless.

alectrona6400 commented 3 years ago

Thanks for responding. I tried to change the resolution (made my own fork of the port) and it seems to have some issues. No noticeable performance changes but I thought it would probably be something to try out. Seems to have some graphical glitches though. I may be wrong on this, but the port seems to be running at 320x240 scaled down to 256x192.

Hydr8gon commented 3 years ago

Some of the rendering code relies on the assumption that incoming data is based on the 320x240 resolution (viewport and RECT commands, IIRC). Maybe not the best design decision on my part, but I figured there's no reason to change it because it might cause issues with other parts of the game. The DS itself is incapable of rendering at anything other than 256x192; its 3D hardware is very basic, and most things like this aren't manipulatable.