Homebrew Super Mario 64 Port

  • Thread starter Thread starter MarioKartFan
  • Start date Start date
  • Views Views 127,371
  • Replies Replies 331
I really enjoyed your port. It was very user friendly as it required that the user supply the ROM only and did not require any compilation. Would you be able to do the same thing using Gericom’s code?
I am looking to contact Gericom at the moment, perhaps I will be able to answer your question by then.
There's nothing stopping you from trying :yay3ds: Would be cool to see someone make an optimized version for o3ds and what cuts would be necessary.
My project should perform well on O3DS with audio disabled. You can disable audio by setting the last four bytes of config.bin to 03 00 00 00.
 
  • Like
Reactions: Zense
im having a tough time getting this compiled, is it possible to either update the git readme or make a video with the compilation steps?
 
i seem to be stuck at this point, also i had to copy libaudiofile from the pcport git as it was missing from this port
upload_2020-7-30_20-23-35.png
 
I implemented support for the high resolution 800px wide mode now. As a result everything looks a bit sharper. When compiling make sure you have the latest version of libctru.
Thank you! Here are some screenshots. IDK which resize method uses the 3DS to supersample the horizontal resolution so I left them as is.

h7xYPrs.png


2X7CKyn.png


Yp8J2NG.png


JvfRx21.png


ru7kz9s.png


y8ZnJ7F.png


ShBdP7J.png


kaPSdjd.png
 
Last edited by Deleted member 323844,
Thank you! Here are some screenshots. IDK which resize method uses the 3DS to supersample to horizontal resolution so I left them as is.

h7xYPrs.png


2X7CKyn.png


Yp8J2NG.png


JvfRx21.png


ru7kz9s.png


y8ZnJ7F.png


ShBdP7J.png


kaPSdjd.png
With the 800px wide mode no horizontal resampling is used, since the screen actually has 800 pixels. Combined with anti-aliasing it does a reduction from 480 vertical pixels to 240 though. In the non-800 pixel mode it reduces a 800x480 picture to 400x240.

i seem to be stuck at this point, also i had to copy libaudiofile from the pcport git as it was missing from this port View attachment 219442
It doesn't seem to give an error, so it's probably still busy?
 
With the 800px wide mode no horizontal resampling is used, since the screen actually has 800 pixels. Combined with anti-aliasing it does a reduction from 480 vertical pixels to 240 though. In the non-800 pixel mode it reduces a 800x480 picture to 400x240.


It doesn't seem to give an error, so it's probably still busy?
seems to be sitting on the screen for a very long time. but it seems to get to the next file after a while
 
With the 800px wide mode no horizontal resampling is used, since the screen actually has 800 pixels. Combined with anti-aliasing it does a reduction from 480 vertical pixels to 240 though. In the non-800 pixel mode it reduces a 800x480 picture to 400x240.


It doesn't seem to give an error, so it's probably still busy?
ok now ive got this error:
upload_2020-7-30_21-14-58.png
 
With the 800px wide mode no horizontal resampling is used, since the screen actually has 800 pixels. Combined with anti-aliasing it does a reduction from 480 vertical pixels to 240 though. In the non-800 pixel mode it reduces a 800x480 picture to 400x240.


It doesn't seem to give an error, so it's probably still busy?
The screen indeed has 800 pixels horizontally, you may be mistaken about the 480p bit. There aren't 480 physical pixels. The GPU also doesn't output 480p at all.

The 3DS uses non-square pixels horizontally, half the size of a normal pixel. It takes this 800x240p output from the GPU, and displays it on the screen as-is. It's smashed into a 15:9 image since the horizontal pixels are physically half the size of the pixels on the device you're reading this one, which is why it looks stretched on here. It's also why 800px modes look stretched when exported to a file, while it looks normal on the 3DS itself.

sFWm.png
 
The screen indeed has 800 pixels horizontally, you may be mistaken about the 480p bit. There aren't 480 physical pixels. The GPU also doesn't output 480p at all.

The 3DS uses non-square pixels horizontally, half the size of a normal pixel. It takes this 800x240p output from the GPU, and displays it on the screen as-is. It's smashed into a 15:9 image since the horizontal pixels are physically half the size of the pixels on the device you're reading this one, which is why it looks stretched on here. It's also why 800px modes look stretched when exported to a file, while it looks normal on the 3DS itself.

sFWm.png
What I meant is that for anti-aliasing you can render at a higher resolution and use a special configuration to automatically reduce 2x1 or 2x2 when copying to the display framebuffer. So in 800px mode it goes from 800x480 to 800x240, and in normal mode from 800x480 to 400x240.
 
  • Like
Reactions: RocketRobz
What I meant is that for anti-aliasing you can render at a higher resolution and use a special configuration to automatically reduce 2x1 or 2x2 when copying to the display framebuffer. So in 800px mode it goes from 800x480 to 800x240, and in normal mode from 800x480 to 400x240.
Ah, I see, thanks for the clarification.
 
Any instructions for building as a .cia? My current approach of naming it "boot.3dsx" and loading from the Homebrew Launcher .cia wrapper just to get SM64 on my homescreen is... less than ideal
 
A cia of this would be wonderful. If someone could PM me a link I’d be soooooo grateful!!
 
With the 800px wide mode no horizontal resampling is used, since the screen actually has 800 pixels. Combined with anti-aliasing it does a reduction from 480 vertical pixels to 240 though. In the non-800 pixel mode it reduces a 800x480 picture to 400x240.


It doesn't seem to give an error, so it's probably still busy?
ok this is the last error i am getting
upload_2020-7-31_0-25-27.png
 
@Gericom I just tested this out with your 800px commit included. My goodness what a revelation. This is simply incredible, incredible work. It’s flawless on my N3DS. What an incredible gift to us all. Thank you.

This 800px mode should be standard for all homebrew. The image has never looked so sharp on my N3DS.
 

Site & Scene News

Popular threads in this forum