Super Mario 64 3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox 3DS homebrew | title = Super Mario 64 | image = https://dlhb.gamebrew.org/3dshomebrew/SuperMario643DS.jpg|250px | type = Platform | version = | licence = Mixed | aut...")
 
m (Text replacement - "Category:3DS homebrew games" to "")
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = Super Mario 64
|title=Super Mario 64
| image = https://dlhb.gamebrew.org/3dshomebrew/SuperMario643DS.jpg|250px
|image=Sm643ds2.png
| type = Platform
|description=Super Mario 64 3DS Port.
| version =
|author=sm64-port
| licence = Mixed
|lastupdated=2021/08/21
| author = sm64-port
|type=Platform
| website = https://github.com/sm64-port/sm64_3ds
|version=2021
| download = https://dlhb.gamebrew.org/3dshomebrew/SuperMario643DS.rar
|license=Mixed
| source = 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
|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. 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.


= Super Mario 64 3DS Port =
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.


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.
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/sm643ds3.png
https://dlhb.gamebrew.org/3dshomebrews/sm643ds4.png


== Installation ==
https://dlhb.gamebrew.org/3dshomebrews/sm643ds5.png
https://dlhb.gamebrew.org/3dshomebrews/sm643ds6.png


=== Docker ===
==External links==
 
* GitHub (sm64-port) - https://github.com/sm64-port/sm64_3ds
==== 1. Copy baserom(s) for asset extraction ====
* GitHub (mkst) - https://github.com/mkst/sm64-port/tree/3ds-port
 
* GBAtemp - https://gbatemp.net/threads/super-mario-64-port.564431/post-9149383
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.
* GBAtemp - https://gbatemp.net/threads/super-mario-64-port.564431/post-9229963
 
* Github (Patches) - https://github.com/aspieweeb759/3ds-SM64-romhack-port-patches
==== 2. Create docker image ====
 
<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.

Latest revision as of 06:32, 6 May 2024

Super Mario 64
Sm643ds2.png
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.pngsm643ds4.png

sm643ds5.pngsm643ds6.png

External links

Advertising: