Homebrew Super Mario 64 Port

3ds_borb

New Member
Newbie
Joined
Jul 29, 2020
Messages
3
Trophies
0
Age
37
XP
65
Country
United Kingdom
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

nitrostemp

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
1,563
Trophies
0
Age
33
XP
1,469
Country
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?
 

nitrostemp

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
1,563
Trophies
0
Age
33
XP
1,469
Country
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
 

Deleted member 323844

Well-Known Member
Member
Joined
Feb 17, 2013
Messages
802
Trophies
1
XP
2,335
Country
Spain
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,

Gericom

Well-Known Member
Member
Joined
Jun 30, 2011
Messages
1,383
Trophies
2
Age
25
XP
4,731
Country
Netherlands
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?
 

nitrostemp

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
1,563
Trophies
0
Age
33
XP
1,469
Country
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
 

nitrostemp

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
1,563
Trophies
0
Age
33
XP
1,469
Country
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
 

Halvorsen

Well-Known Member
Member
Joined
Aug 12, 2015
Messages
2,060
Trophies
0
Website
halcove.com
XP
1,891
Country
United States
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
 

Gericom

Well-Known Member
Member
Joined
Jun 30, 2011
Messages
1,383
Trophies
2
Age
25
XP
4,731
Country
Netherlands
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

Halvorsen

Well-Known Member
Member
Joined
Aug 12, 2015
Messages
2,060
Trophies
0
Website
halcove.com
XP
1,891
Country
United States
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.
 

KaduPSE

Revolution and cake
Member
Joined
Dec 26, 2015
Messages
260
Trophies
0
XP
408
Country
Brazil
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
 

nitrostemp

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
1,563
Trophies
0
Age
33
XP
1,469
Country
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
 

MarioKartFan

Well-Known Member
OP
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
@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

General chit-chat
Help Users
  • No one is chatting at the moment.
    BigOnYa @ BigOnYa: I played the intro to far cry 5, that is like some crazy Jim Jones cult shit. Still its petty...