Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Super Mario 64 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 4: Line 4:
|description=Super Mario 64 3DS Port.
|description=Super Mario 64 3DS Port.
|author=sm64-port
|author=sm64-port
|lastupdated=2020/08/04
|lastupdated=2021/08/21
|type=Platform
|type=Platform
|version=2020
|version=2021
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/3dshomebrew/SuperMario643DS.rar
|download=[https://dlhb.gamebrew.org/3dshomebrews/sm643ds.7z source only]
|website=https://github.com/sm64-port/sm64_3ds
|website=https://github.com/sm64-port/sm64_3ds
|source=https://github.com/sm64-port/sm64_3ds
|source=https://github.com/sm64-port/sm64_3ds
}}
}}
<youtube>GiaddEwzxgM</youtube>
Super Mario 64 3DS is a port of the Super Mario 64 decompilation project that was completed in mid-2009. It is a full decompilation of Super Mario 64 (J), (U), and (E), ported to the 3DS.


== Super Mario 64 3DS Port ==
Note that the repository does not include all assets necessary for compiling the port. A prior copy of the game is required to extract the required assets.


This repo contains a full decompilation of Super Mario 64 (J), (U), and (E), ported to the 3DS. This repo does not include all assets necessary for compiling the port. A prior copy of the game is required to extract the required assets.
See also [https://github.com/mkst/sm64-port/tree/3ds-port mkst's Super Mario 64 3DS fork], which contains experimental features such as stereo 3D support, mini-menu to enable/disable AA (Anti-aliasing) and switch between 400/800px settings.


== Installation ==
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/sm643ds3.png
https://dlhb.gamebrew.org/3dshomebrews/sm643ds4.png


=== Docker ===
https://dlhb.gamebrew.org/3dshomebrews/sm643ds5.png
https://dlhb.gamebrew.org/3dshomebrews/sm643d36.png


==== 1. Copy baserom(s) for asset extraction ====
==Media==
'''Super Mario 64 3DS | Nintendo 3DS | Gameplay''' ([https://www.youtube.com/watch?v=yCnauBKGgTU Stranno]) <br>
<youtube>yCnauBKGgTU</youtube>


For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at <code>./baserom.&lt;version&gt;.z64</code> for asset extraction.
==External links==
* GitHub - https://github.com/sm64-port/sm64_3ds
* GBAtemp - https://gbatemp.net/threads/super-mario-64-port.564431/post-9149383
* GBAtemp - https://gbatemp.net/threads/super-mario-64-port.564431/post-9229963


==== 2. Create docker image ====
[[Category:3DS homebrew games]]
 
[[Category:Homebrew platform games on 3DS]]
<syntaxhighlight lang="bash">sudo docker build . -t sm64</syntaxhighlight>
==== 3. Build ====
 
To build we simply have to mount our local filesystem into the docker container and build.
 
<syntaxhighlight lang="bash"># for example if you have baserom.us.z64 in the project root
sudo docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=${VERSION:-us} -j4
# if your host system is linux you need to tell docker what user should own the output files
sudo docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64 make VERSION=${VERSION:-us} -j4</syntaxhighlight>
Resulting artifacts can be found in the <code>build</code> directory.
 
=== Linux ===
 
==== 0. Cloning repo ====
 
Run <code>git clone https://github.com/sm64-port/sm64_3ds.git</code>.
 
==== 1. Copy baserom(s) for asset extraction ====
 
For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at <code>./baserom.&lt;version&gt;.z64</code> for asset extraction.
 
==== 2. Install build dependencies ====
 
The build system has the following package requirements:
 
<pre>python3 &gt;= 3.6
libaudiofile
devkitPro
├──devkitARM
├──devkitarm-crtls
├──devkitarm-rules
├──3dstools
├──citro3d
├──libctru
└──picasso</pre>
'''Debian / Ubuntu'''
 
<pre>sudo apt install build-essential pkg-config git python3 zlib1g-dev libaudiofile-dev</pre>
'''Arch Linux'''
 
<pre>sudo pacman -S base-devel python audiofile</pre>
Now follow https://devkitpro.org/wiki/devkitPro_pacman to install devkitPro. Run <code>sudo (dkp-)pacman -S 3ds-dev</code> after completing the <code>Updating Databases</code> section. Set the environment variables:
 
<pre>export DEVKITARM=/opt/devkitpro/devkitARM
export DEVKITPRO=/opt/devkitpro
export DEVKITPPC=/opt/devkitpro/devkitPPC
PATH=$PATH:/opt/devkitpro/tools/bin/</pre>
==== 3. Build ROM ====
 
Run <code>make</code> to build the ROM (defaults to <code>VERSION=us</code>). Make sure your path to the repo is not too long or else this process will error, as the emulated IDO compiler cannot handle paths longer than 255 characters. Examples:
 
<pre>make -j4 # build (U) version with 4 jobs
make VERSION=jp -j4 # build (J) version instead with 4 jobs</pre>
=== Windows ===
 
For Windows, install WSL and a distro of your choice following [https://docs.microsoft.com/en-us/windows/wsl/install-win10 Windows Subsystem for Linux Installation Guide for Windows 10] We recommend either Debian or Ubuntu 18.04 Linux distributions under WSL.
 
== Project Structure ==
 
<pre>sm64
├── actors: object behaviors, geo layout, and display lists
├── asm: handwritten assembly code, rom header
│ └── non_matchings: asm for non-matching sections
├── assets: animation and demo data
│ ├── anims: animation data
│ └── demos: demo data
├── bin: asm files for ordering display lists and textures
├── build: output directory
├── data: behavior scripts, misc. data
├── doxygen: documentation infrastructure
├── enhancements: example source modifications
├── include: header files
├── levels: level scripts, geo layout, and display lists
├── lib: SDK library code
├── sound: sequences, sound samples, and sound banks
├── src: C source code for game
│ ├── audio: audio code
│ ├── buffers: stacks, heaps, and task buffers
│ ├── engine: script processing engines and utils
│ ├── game: behaviors and rest of game source
│ ├── goddard: Mario intro screen
│ └── menu: title screen and file, act, and debug level selection menus
├── text: dialog, level names, act names
├── textures: skybox and generic texture data
└── tools: build tools</pre>
== Contributing ==
 
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Run clang-format on your code to ensure it meets the project's coding standards.

Revision as of 14:28, 21 December 2021

Super Mario 64
File:SuperMario643DS.jpg
General
Authorsm64-port
TypePlatform
Version2021
LicenseMixed
Last Updated2021/08/21
Links
[source only Download]
Website
Source

Super Mario 64 3DS is a port of the Super Mario 64 decompilation project that was completed in mid-2009. It is a full decompilation of Super Mario 64 (J), (U), and (E), ported to the 3DS.

Note that the repository does not include all assets necessary for compiling the port. A prior copy of the game is required to extract the required assets.

See also mkst's Super Mario 64 3DS fork, which contains experimental features such as stereo 3D support, mini-menu to enable/disable AA (Anti-aliasing) and switch between 400/800px settings.

Screenshots

sm643ds3.png sm643ds4.png

sm643ds5.png sm643d36.png

Media

Super Mario 64 3DS | Nintendo 3DS | Gameplay (Stranno)

External links

Advertising: