fgsfdsfgs / sm64-port

PS2, PS3, OG Xbox and DOS ports of sm64-port.
https://discord.gg/7bcNTPK
249 stars 39 forks source link

[xbox] Cropped 3D/World in 720p #42

Open herrnst opened 3 years ago

herrnst commented 3 years ago

Everything "3D-drawn" (ie. the world, save slot selection, title) is cropped to approx. 480p resolution, see this photo for a better explanation of the issue:

sm64-clipped

This is on a hardmodded 1.6 [edit: with 64MB RAM] running Kernel 5838 set to NTSC and with 480p+720p enabled in the MS Dashboard. Other software supporting 720p works just fine on this system. Running sm64 in 480p by disabling 720p in MS Dash works fine.

SM64 is built like this:

> git clone -b xbox https://github.com/fgsfdsfgs/sm64-port.git

> cd sm64-port

  # fetch nxdk and xgu
> git submodule update --init --recursive --progress

  # 60fps patch
> git apply --verbose enhancements/60fps.patch

> cp /path/to/baserom.us.z64 .

  # make sure baserom checksum is correct
> sha1sum baserom.us.z64 
9bef1128717f958171a4afac3ed78ee2bb4e86ce  baserom.us.z64

> make TARGET_XBOX=1 -j$(nproc)
[...]
[ CXBE     ] /path/to/sm64-port/build/us_xbox/out/default.xbe
[ XISO     ] sm64.iso

  # ftp build/us_xbox/out/default.xbe to xbox

It doesn't matter if the 60fps patch is applied or not, the issue is also present without the patch.

The system used to build the binary is an uptodate x86_64 Arch Linux (Manjaro flavour) with Clang 11.0.1.

Do you have any idea what's wrong? If there's anything to test, try, or patches to try out please just let me know!

fgsfdsfgs commented 3 years ago

That's weird. No one's reported this problem before and people have tested 720p. It looks like maybe your dash enables scissor clip and sets it to (0, 0, 640, 480). The game doesn't change the scissor region because I don't know how to do that. Then again, 2D wouldn't be drawn either if that were the case. For now you can force 640x480 by either disabling 720p or changing this line to status = 0;.

herrnst commented 3 years ago

While I don't have any knowledge of how all this works (and even less how things work on Xbox ;) ), it might indeed be a dashboard issue. I did a quick test, and while with the "normal" dashboard (which is EvolutionX, version not at hand ATM, runs in 480p) the issue arises, it doesn't when I start sm64 from XBMC4Xbox (stock build without any modifications, set to run in 720p). Would be very glad if I could help sorting this out to generally improve the port, even by only testing or trying out patches (though for me personally this isn't a huge issue since I know it works when running it differently).

codemasterv commented 3 years ago

Having the same issue Screenshot 2021-09-21 03-09-22 .

using XBOX HD Plus hdmi kit