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.
This is the one that hit Ciro Santilli the hardest, coming in at the point in which he started to discern between games and the real world a little better. His parents bought it for him during a trip to Disney World in Florida in 1996 (?), since electronics were much cheaper in the USA.
So as Ciro became older, and turned into a software engineer, he started to become more and more morbidly curious about "N64 internals": tool-assisted speedrun, how the devkit looks like, how games were developed for it, hardware leaks, etc.
Luckily Ciro's mind is not interested enough by that useless shit for Ciro to seriously study it himself. But that's what YouTube is for, right? Why do useless stuff when other more useless people can do it for you?
The console has only 4 MB of RAM memory. It is quite incredible what can be done with 8 MB, from the point of view of a 2020 worls where 16 GB laptops are the norm.
Lists:
- trilarion.github.io/opensourcegames/
- www.slant.co/topics/1933/~best-open-source-games
- libregamewiki.org/Main_Page
- www.reddit.com/r/opensourcegames/comments/197luuk/what_is_the_best_open_source_game_in_your_opinion/
- www.pcgamer.com/yall-know-about-these-huge-lists-of-free-open-source-game-clones-right/ is a list of lists
Why would anyone ever waste time playing a closed source game, when this will inevitably lead to endless hours of decompilation down the line when you want to:
- fully understand how the game works, notably to help with TASsing
- improve the game's flaws as devs drop support (or lose source code and have to late reverse-engineer their own fucking game?) :-)
Those who devote their time to the useless development of open source video games, before we even have decent open source development tooling, will, without a doubt, have their place in Heaven.
- tower defense
- www.edopedia.com/demo/pixeldefense possible source github.com/jesseakt/PixelDefense 2020-03 desperately lacks a fast forward button and enemy health bars
- platformer
- 2D platformer
- teeworlds: does not run on Ubuntu 21.10,
X Error of failed request: BadValue
- teeworlds: does not run on Ubuntu 21.10,
- 3D platformer
- 2D platformer
- OpenClonk: Terraria-like 2D mining crafting game. Pretty well done. Not sure if you can have a super huge open world. The fact that the music stops completely so often is a bit saddening.
- Pingus: Lemmings clone. Very good!
- github.com/The-Powder-Toy/The-Powder-Toy: en.wikipedia.org/wiki/Falling-sand_game in C++. No Ubuntu 19.10 package it seems, but was easy to compile from source.
- roguelike
- Worms clone
- Hedgewars
- pokemon clone:
- Tuxemon. Worked on Ubuntu 21.10. 20ea4181e1c0db04934ee69951ea1836a3b1f642
- ARPG
- Diablo II clones:v1.12 download Worked well on Ubuntu 21.10.
- github.com/flareteam/flare-game game engine
- flarerpg.org/mods/flare-empyrean/ game made with the engine
- The Mana World: www.themanaworld.org/ Started somewhat as a loose The Secret of Mana clone, but they've added online play capabilities, effectively making it a MMORPG.Their user acquisition as of 2021 is really bad. Download is a wiki page, there are two client versions, etc. The .deb did not work out o box on Ubuntu 21.10 due to unmet dependencies:fails with:
sudo apt install ./manaplus_amd64.deb
so it won't be able to play without trying to compile and possibly minor ports since the deb does not packs dependencies. Some requests for a release with all dependencies prepacked:Their home page says it all:manaplus : Depends: libpng12-0 (>= 1.2.13-4) but it is not installable Depends: libsdl-gfx1.2-4 (>= 2.0.22) but it is not installable Depends: manaplus-data (= 1.6.4.23-2) but 1.9.3.23-6 is to be installed
Sad.Server status: Online: 9 players
- Diablo II clones:
- Factorio clones:
- github.com/tobspr/shapez.io Also browser based.
YouTube review channels:
A non-tool-assisted speedrun.
Ciro Santilli views humans as biological robots, and therefore RTA videos can be thought of as probabilistic TAS with human achievable reflex constraints.
This aspect is especially highlighted in "speed run record evolution videos", which can be quite fun, e.g. www.youtube.com/watch?v=pmS9e7kzgS4 Ocarina of Time - World Record History and Progression (Any% Speedrun, 1990s-2017) by retro (2017)
From a similar point of view, Ciro also sometimes watches/learns a bit about competitive PvP games from a "could a computer play this better than a human" point of view.
Ciro also likes to watch commented manual speedruns of games as a way of experiencing the game at a high level without spending too much time on it, often from Games Done Quick. Their format is good because it generally showcases one player focusing more on the gameplay, and three couch commentators to give context, that's a good setup.
It is a
Ah, Ciro Santilli loved this one... games young Ciro Santilli played.
And as a result, adult Ciro really enjoys tool-assisted speedruns of the game.
No-A press 120 stars tool-assisted speedrun attempts by Pannenkoek:
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:
- github.com/n64decomp/sm64 for emulator (i.e. or real hardware), tested at 9214dddabcce4723d9b6cda2ebccbac209f6447d
- github.com/sm64-port/sm64-port Ubuntu native, tested at 6b47859f757a40096fedd6237f2bc3573d0bc2a4Full screen with F10.
- github.com/sm64pc/sm64ex: fork of sm64-port, untested by Ciro Santilli, but more new amazing usability features, notably:
--skip-intro
: skips the annoying pipe intro and the need to wait for Lakitu to bring Peaches message!- in-game menu:
- cheats:
- hide HUD!
- no level selection yet, but a matter of time?
Also reported to work on ARM: www.reddit.com/r/linux/comments/ityg6w/pinephone_playing_super_mario_64_30fps/They also ported to browser with Emscripten: github.com/sm64pc/sm64ex/wiki/Compiling-for-the-web
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.Some tutorials of hacking it:
- www.youtube.com/watch?v=Jkb7Naczoww SM64 Decomp Tutorial 1: Setting Up and First Code Changes by Bitlytic (2021)
- www.youtube.com/watch?v=IuIpqX4neWg Rovert Decomp Tech Demo by Rovert (2019) Metal cap makes Mario huge.
- www.youtube.com/watch?v=5aG1Iyjo20w Is it Possible to Beat Super Mario 64 as Tiny Mario? (Mini Mario Challenge) coverts the obvious make Mario huge/tiny hack. Huge mario verion: www.youtube.com/watch?v=pR_gol6zlIo. There was a pre-decompilation ROM hack doing that trivial change already: Tiny Huge Mario 64. Sample tool-assisted speedrun: www.youtube.com/watch?v=C7BjzZ_Nkk0
Ciro once commented that the best game is an infinitely hard one, where you can progress infinitely. To which his great friend J. replied:Or more broadly, one may argue that the perfect video game is life itself, or difficult life goals like making money, becoming famous or changing the world.
Fine, so the perfect game for you is mathematics. Stage one: prove the Riemann hypothesis!
Thinking about it, "infinitely hard" is perhaps not a very precise term, as it could be interpreted as impossible. And if you have mathematical proof that something is impossible, it would be "pointless" to try, trying would be equivalent to pure meditation.
Maybe a better way to put it would be in terms of a difficulty curve. Real life also involves a lot of waiting, either for some experiment to finish running, of for you mental energy to restore a bit.
But so be it, you get the idea.
But this is basically what Ciro feels on every video game. It happens too often on PVE games that things are is either:
- too slow and easy (Ciro would rather skip those with saves made by other)
- or too fast hard, Ciro would rather tool-assisted speedrun those parts
Not to mention the incredible breach of suspension of disbelief of most PvE games where enemies are unbelievably stupid. E.g., why doesn't Bowser just build one fucking wall 15 tiles high to prevent Mario from coming through to his castle? And then put a gate and a hundred guards in front of it? TODO there was a YouTube video of this, I think it was Toad pointing it out to Mario that it is quite weird that Bowser is so stupid, it almost feels like he wants to be beaten.
Ciro Santilli used to play video games when he was young. But after he reached 18 he got bored of them.
The problem is that no matter how you look at, the how to become famous in the real world game is just always more interesting and fulfilling.
Therefore adult Ciro enjoys only the following types of video game content in video form, so that other people waste their lives playing the games while you only see the highlights:
- speedrunning, including:
- tool-assisted speedrun, Ciro's favorite by far
- real-time attack speedrun
- meta breaking glitches, including in speedrunning and on PvP-games.
- Magic: The Gathering
- Video game reviews
The aspect Ciro enjoys about non-PvP games is atmosphere. Not as conveyed by useless story telling, but as conveyed by music and graphics, and the context deep idea. Legend of Zelda and Metroid come to mind.
And too many games commit the sins of dependency of dexterity, no save states, how do I skip this boring part, or jump straight to the beautiful one?
Another important point is; the perfect video game is an infinitely hard one.
It also doesn't help if you are already typing on a computer all day long on your job. Hands get tired. Eyes have an infinite capacity to consume useless YouTube videos however. Medically proved.
As a result, Ciro just watches videos about video games. Notably games he played when he was a teenager and already understand the rules for.
And things got even worse as after Ciro Santilli's Open Source Enlightenment, and he started to feel bad about playing any game that is not open source.