Games young Ciro Santilli played Updated +Created
Mostly video games of course.
First when he was really young, about 5, Ciro played a lot of NES, but he doesn't remember things from that era very well. Contra, Ninja Turtles, Battle Tanks, Duck Hunt, and some modern "real world jet" top to bottom rail shooter (TODO identify) are definitely some of the games he clearly remembers playing, see also: Figure "Five year old Ciro Santilli playing NES on a joystick". Nintendo hard was truly a thing back then.
As an honorable mention, Ciro remembers his teenage/young adult neighbours in Jundiaí playing some DOS games on their computer, notably there was a 3D racing one. This must have been around 1995/1997, so using some of the very earliest GPUs. Those games felt so incredibly advanced, including the required setup to play them, which required some command-line commands. It felt like some kind of black magic! But Ciro didn't really play them however.
Ciro then skipped the SNES and handhelds, which he played only through friends because he was cheap (but also because Brazil is a poor country remember, and imports are pretty expensive). He clearly remembers playing Super Mario World for the SNES and Pokemon on friends' Gameboys of course.
Ciro then went straight to 5th generation with the Nintendo 64 in 1994 which his parents bought for him during a trip to the United States. Once again, because he was cheap, the only game he bought was Super Mario 64, which likely came with the console? He played that game to death.
Then came Ocarina of Time, which blew everyone's minds, and Ciro would go to Blockbuster to rent it for the weekend, and again play to death with his friends. You had to arrive early at Blockbuster to rent it, otherwise other people would rent all copies!!!
The only time Ciro got robbed as of 2020 was when an older teenager stopped his bicycle in front of Ciro and took his rented Golden Eye 64 copy away from his hand, and run off. Poor drug addict.
Ciro always felt that the PS1 had a much uglier aesthetics than the N64, and didn't like the console. Playing a bit of Final Fantasy VI on his memory did stick deeply to his mind however. Ciro later played all good PS1 RPGs on emulation during University of São Paulo during amazing solitary nights.
And on the PC, Ciro was particularly touched by Age of Empires II and Diablo II.
As a young teenager Ciro would also play Counter-Strike with his friends at LAN houses. Playing that game would make Ciro extremely anxious, his hands got all cold, and it was a lot of fun.
After this Ciro grew up and notice that the only fun game is that of becoming become rich and famous in the real world.
This explains however Ciro's tool-assisted speedrun interests.
Outside of video games, Ciro got midly addicted to Magic: The Gathering in his early teens.
Music of Super Mario 64 Updated +Created
It is interesting how the Etyptian level, Shifting Sand Land, clearly has Indian classical music, with sitar, tanpura and tabla:Apparenty we don't know what Egyptian music would have sounded like exactly.
Video 1.
The Music of Super Mario 64 by James Covenant (2017)
Source.
Silicon Graphics Updated +Created
This company is a bit like Sun Microsystems, you can hear a note of awe in the voice of those who knew it at its peak. This was a bit before Ciro Santilli's awakening.
Those people created OpenGL for God's sake! Venerable.
Both of them and Sun kind of died in the same way, unable to move from the workstation to the personal computer fast enough, and just got killed by the scale of competitors who did, notably Nvidia for graphics cards.
Some/all Nintendo 64 games were developed on it, e.g. it is well known that this was the case for Super Mario 64.
Also they were a big UNIX vendor, which is another kudos to the company.
Video 1.
Silicon Graphics Promo (1987)
Source. Highlights that this was one of the first widely available options for professional engineers/designers to do real-time 3D rendering for their designs. Presumably before it, you had to do use scripting to CPU render and do any changes incrementally by modifying the script.
Super Mario 64 reverse engineering project Updated +Created
OMG, both of those just fucking work on Ubuntu 20.04 with README instructions, it is unbelievable, those people don't have lives. And it builds the ROM byte by byte equal from source!
There are a few different versions:
Tested with the USA ROM at sha1sum 9bef1128717f958171a4afac3ed78ee2bb4e86ce (you need a ROM to extract assets, which the project automates), which is also documented in the project itself: github.com/sm64-port/sm64-port/blob/6b47859f757a40096fedd6237f2bc3573d0bc2a4/sm64.us.sha1. Disclaimer: Ciro Santilli owns a copy of Super Mario 64.
The only dependency missing from Ubuntu packages is the IRIX QEMU user mode which they need for their tooling. The project also has a QEMU fork for that, and provide a working deb.
From this project it was also noticed that certain ROM releases were not compiled with optimizations enabled, presumably because as a release title the compiler had optimization bugs! www.resetera.com/threads/so-apparently-the-ntsc-build-of-mario-64-didnt-use-any-compiler-optimizations.166277/ But now they do have a working compiler, and by turning that switch FPS increases in certain levels!!!
It is good to know that this game will "never die".
Some quick stupid patches:
  • jump really high:
    diff --git a/src/game/mario.c b/src/game/mario.c
    index 5b103fa..83c9f40 100644
    --- a/src/game/mario.c
    +++ b/src/game/mario.c
    @@ -826,7 +826,7 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio
             case ACT_JUMP:
             case ACT_HOLD_JUMP:
                 m->marioObj->header.gfx.unk38.animID = -1;
    -            set_mario_y_vel_based_on_fspeed(m, 42.0f, 0.25f);
    +            set_mario_y_vel_based_on_fspeed(m, 200.0f, 0.25f);
                 m->forwardVel *= 0.8f;
                 break;
Interesting entry points:
  • src/game/game_init.c
TODO: enable the level select debug feature! tcrf.net/Super_Mario_64_(Nintendo_64)/Debug_Content#Classic_Debug_Display They actually shipped quite a few debug features into the retail game, and they have been reversed too. I tried this but it didn't work (or I don't know how to enable the level select menu):
diff --git a/src/game/main.c b/src/game/main.c
index 9e53e50..b7443a8 100644
--- a/src/game/main.c
+++ b/src/game/main.c
@@ -65,7 +65,7 @@ s8 sAudioEnabled = 1;
 u32 sNumVblanks = 0;
 s8 gResetTimer = 0;
 s8 D_8032C648 = 0;
-s8 gDebugLevelSelect = 0;
+s8 gDebugLevelSelect = 1;
 s8 D_8032C650 = 0;

 s8 gShowProfiler = FALSE;
The enhancements/ folder contains a few sample patches.
Figure 1.
Screenshot of mupen64Plus running on Ubuntu 20.04 emulating Super Mario 64 with the title screen hacked by Ciro Santilli based on the Super Mario 64 reverse engineering project
. The title was on a string, so the hack was trivial! The patch used was:
diff --git a/include/text_strings.h.in b/include/text_strings.h.in
index 749179b..626f87e 100644
--- a/include/text_strings.h.in
+++ b/include/text_strings.h.in
@@ -131,7 +131,7 @@
  */
 // Main Screens
 #define TEXT_MARIO _("MARIO") // View Score Menu
-#define TEXT_SELECT_FILE _("SELECT FILE")
+#define TEXT_SELECT_FILE _("HACKED BY CIRO")
 #define TEXT_CHECK_FILE _("CHECK FILE")
 #define TEXT_COPY_FILE _("COPY FILE")
 #define TEXT_ERASE_FILE _("ERASE FILE")
Some tutorials of hacking it:
Video 1.
FIXING the ENTIRE SM64 Source Code by Kaze Emanuar (2022)
Source. Now that we have the source, modders like this are going nuts.
Tool-assisted speedrun Updated +Created
To some extent, the ultimate achievement of a TAS is to achieve arbitrary code execution (ACE) on a game, although this has been becoming rarer and rarer in newer consoles. The Nintendo 64 is the current interesting ACE discovery frontier as of 2020.
Post ACE, you then get into more subtle categories which tend to be more geometric clipping through wall glitches, but those can still be fun.
The most beautiful TAS content ever made are:
Video 1.
Super Mario 64 '120 Stars' in 1:20:41.52 Console Verified by Soul Umbreon (2012)
Source.