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.
Sylvain Poirier Updated +Created
Ciro Santilli feels a bit like this guy:
singlesunion.org/ so cute, he's looking for true love!!! This is something Ciro often thinks about: why it is so difficult to find love without looking people in the eye. The same applies to jobs to some extent. He has an Incel wiki page: incels.wiki/w/Sylvain_Poirier :-)
Figure 1.
Sylvain's photo from his homepage.
Source. He's not ugly at all! Just a regular good looking French dude.
Video 1.
Why learn Physics by yourself by Sylvain Poirier (2013)
Source.
Telecommunication Updated +Created
Communicating at a distance, from Greek "tele" for distance!
A very cool thing about telecommunication is, besides how incredibly fast it advanced (in this sense it is no cooler than integrated circuit development), how much physics and information theory is involved in it. Applications of telecommunication implementation spill over to other fields, e.g. some proposed quantum computing approaches are remarkably related to telecommunication technology, e.g. microwaves and silicon photonics.
This understanding made Ciro Santilli wish he had opted for telecommunication engineering when he was back in school in Brazil. For some incomprehensible reason, telecommunications was the least competitive specialization in the electric engineering department at the time, behind even power electronics. This goes to show both how completely unrelated to reality university is, and how completely outdated Brazil is/was. Sad stuff.
Terminal emulator Updated +Created
Once upon a time young Ciro Santilli spent lots of time evaluating the features of different terimnals. The many windows of Terminator. The pop-uppiness of Guake/Yakuake.
But then one day he met tmux, and he was enlightened
Terminal choice doesn't matter. Just use tmux.
Test driven development Updated +Created
This is a good approach. The downside is that while you are developing the implementation and testing interactively you might notice that the requirements are wrong, and then the tests have to change.
One intermediate approach Ciro Santilli likes is to do the implementation and be happy with interactive usage, then create the test, make it pass, then remove the code that would make it pass, and see it fail. This does have a risk that you will forget to test something, but Ciro finds it is a worth it generally. Unless it really is one of those features that you are unable to develop without an automated test, generally more "logical/mathematical" stuff. This is a sort of laziness Driven Development.
Text-based game Updated +Created
Although Ciro Santilli is a big fan of plaintext files and of Vim, not so for games. Games must be easy to understand since they are just a toy.
Tilesets to the rescue!
The 2024 Nobel Prize in Physics was not in Physics Updated +Created
The artist and the politician Updated +Created
Once upon a time in the 2010's, Ciro Santilli went to an artsy theatre venue in the suburbia of Paris, dragged by his wife then girlfriend of course.
In the venue, there was a politician, who was doing his best to show how much they supported the arts, and there were of course the artists, involved in the play.
The politician would see a political power score on top of every person's head, and would spend an amount of time talking to each person exactly proportional to that score. This meant basically one sentence to us. The words themselves didn't really matter of course, only the time spent, they just have to produce nice sounds.
One of the artists however, and he seemed quite important in the production, for some reason spent a huge amount of time speaking to us. The score the artist saw on our heads was of love, or how interested we were in the art.
The beauty of mathematics Updated +Created
Ciro Santilli intends to move his beauty list here little by little: github.com/cirosantilli/mathematics/blob/master/beauty.md
The most beautiful things in mathematics are results that are:
Good lists of such problems Lists of mathematical problems.
Whenever Ciro Santilli learns a bit of mathematics, he always wonders to himself:
Am I achieving insight, or am I just memorizing definitions?
Unfortunately, due to how man books are written, it is not really possible to reach insight without first doing a bit of memorization. The better the book, the more insight is spread out, and less you have to learn before reaching each insight.
The best Caetano Veloso songs Updated +Created
The best Gilberto Gil songs Updated +Created
Runner ups:
The best personal webpages of all time Updated +Created
These are basically technically minded people that Ciro Santilli feels have similar interests/psychology to him, and who write too much for their own good:
Maybe one day these will also be legendary, who knows:
Another category Ciro admires are the "computational physics visualization" people, these people will go to Heaven:
Related:
Institution led:
Other mentions:
  • arngren.net/ lots of images of toys and gear with descriptions in Norwegian
The best popular Brazilian music (MPB) of all time Updated +Created
The bullying of young Ciro Santilli Updated +Created
When Ciro Santilli was very young, about 6, he was a fatty, and other evil boys picked on him.
Ciro was even more stupid than as of 2020, and continued to try and hang out with those evil kids to show them he was cool too or that he was strong, and so continued to get hurt.
Advice to his children: stay away from evil people.
The bullied sometimes feels an almost masochistic desire to overcome the bullies' contempt, and to try and either become friends with the bullies, or to overpower them.
You must never give into those thoughts.
If you come across evil people, smile a fake smile to them, and walk away, but never give your back to them, and always be ready to fight.
If they laugh at you, know that you are shit like everyone else, pretend to laugh with them, take their post and repost it on your public profile, and silently stay away from those idiots.
Never show any weakness.
If a fight is likely, always be ready, always have your friends nearby, be as well armed as the enemy, and never be outnumbered.
On the Internet, never care about e-bully posts, either block them immediately, and anyone that likes their posts, or follow Ciro's reply policy.
Call parents or other authorities as soon as there is risk of physical harm. Better a living free pussy than dead or in youth detention for murder. Similar advice applies if you are going to jail I guess.
The Sikh knife, the Kirpan, which Sikhs must carry at all times as a religious obligation, also comes to mind. The Sikh must have been bullied out of the their minds at some point in history, Ciro understands.
Non-violence only works when you have bodies to spare from your followers.
Perhaps it was good to learn those lessons early, before the stakes were too high. Adults fake it much better, and therefore it is harder to learn those lessons from them, but they are still just as evil on the inside.
These experiences might have contributed to Ciro Santilli's self perceived compassionate personality.