NP-hard by Ciro Santilli 37 Updated 2025-07-16
A problem such that all NP problems can be reduced in polynomial time to it.
archive.ph/Dd3aC web.archive.org/web/20230709141533/https://desuarchive.org/g/thread/94445084/#94448535 desuarchive.org/g/thread/94445084/#94448535
Title reply because they can't Ctrl+F: How Ciro Santilli manages to write so much
Most of the thread went into pro/anti gay trashtalk due to Ciro using Gay Putin at the time on his Stack Overflow profile as a useless way to protest the Russian invasion of Ukraine.
Some comments:
How does this guy manage to be so active on Stack Overflow? I feel like this disgusting avatar is on at least a quarter of all the active posts.
The answers are always pretty good though.
I came across this schizo's github once, but I had forgotten his name
Obviously severe autism. Also racism homophobia Looks like everything is ok if it's Russia/Chinese...
Reply: it is publicly known that Putin is homophobic as fuck and hates that picture. Therefore we use it. If Putin were heterophobic, we'd post him as hetero.
The only new information:
Reminds me of Xah Lee.
Ciro Santilli very aggressively aggressively people in social media.
There are basically 3 categories:
  • are you Ciro's parents or children or brothers: OK, keep following, unless you are truly truly very noise.
  • does Ciro really really like or respect you? OK, he can take some useless (i.e. non-technical/scientific) posts
  • otherwise: one bad post and unfollow
Invalid Bitcoin script by Ciro Santilli 37 Updated 2025-07-16
They appear to be included, with rationale that you can already include syntactically valid crap in an unprovable way: github.com/bitcoin/bitcoin/issues/320 Better then have syntactically invalid crap that is provable.
The outputs of this transaction seem to be the first syntactically incorrect scripts of the blockchain: blockchain.info/tx/ebc9fa1196a59e192352d76c0f6e73167046b9d37b8302b6bb6968dfd279b767?format=json, found by parsing everything locally. The transaction was made in 2013 for 0.1 BTC, which then became unspendable.
The first invalid script is just e.g. "script":"01", which says will push one byte into the stack, but then ends prematurely.
ASCII art of a Force of Will, a famous and powerful Magic: The Gathering card first printed in 1996.
This is Ciro Santilli's personal favorite ASCII art he has found in the blockchain so far. Also Ciro could not find any other previous source of this, so there is some chance it is original. One can dream.
The choice of card is probably linked to the function of the card in the game of Magic: The Gathering. This card essentially prevents the opponent from casting a spell they are about to cast. The presumed intended meaning of this art is further accentuated by the old card type term "interrupt" (late renamed to "instant"), which suggests that "this ASCII art is an interruption to the normal monetary transactions of the blockchain".
One of also reminded of the prayer wars interruption attempts. We could not however identify anything specific that this ASCII art might have tried to interrupt besides the normal flow of monetary transactions.
If one goes full art critic mode, it is also tempting to draw a parallel between the card's "You may pay 1 life" alternative casting cost (as opposed to 5 mana, 3 and two blue, which is a very large cost for most games) as being a reference to the money spent by the uploader of the art to upload it.
TODO understand exactly how it was encoded and why it is so weird. The UUUU has a slightly weird encoding which we fixed by hand here TODO understand.
 -------------------------------------
|  Force of Will               3 U U  |
|  ---------------------------------  |
| |                  ////////////   | |
| |                ////() ()\////\  | |
| |               ///_\ (--) \///\  | |
| |        )      ////  \_____///\\ | |
| |       ) \      /   /   /    /   | |
| |    ) /   \     |   |  /   _/    | |
| |   ) \  (  (   /   / /   / \     | |
| |  / ) ( )  / (    )/(    )  \    | |
| |  \(_)/(_)/  /UUUU \  \\\/   |   | |
| .---------------------------------. |
| Interrupt                           |
| ,---------------------------------, |
| | You may pay 1 life and remove a | |
| | blue card in your hand from the | |
| | game instead of paying Force of | |
| | Will's casting cost.  Effects   | |
| | that prevent or redirect damage | |
| | cannot be used to counter this  | |
| | loss of life.                   | |
| | Counter target spell.           | |
| `---------------------------------` |
|                                     l
| Illus.  Terese Nelsen               |
 -------------------------------------
Figure 1.
Force of Will Magic: The Gathering card (Alliances)
Source. A high resolution scan of the original card depicted in the ASCII art for comparison.
The following two ASCII transactions:
tx 0f05c47a8caafadecc10d70ba3bf010eaf6bb416b5e1ad7b01cf3445f5fb7a1c
I am. Therefore, I have come to be.

-- Hyena


tx e6d48f6912929a58a2ee30c13768058777d8547215c27109b5cb0724e7abaaba
Erich,
Bro, this looks excellent!!
-Duriel
suggest this ASCII art might have been uploaded by Figure "Erich Erstu", AKA Hyena, creator of cryptograffiti.info, a service which would have allowed uploading ASCII content to the blockchain.
The only other mention of "Duriel" in the blockchain is tx 140562ceb42fc8943fa52ccc0ddbb11ca2d88dae9b5240d7a4b46864538c515a which has some freedom of speech comments and gives the email:
Duriel@paystamper.com = 1HcuhfTAiQCt6KdMG2rZLXsTcKYj9nLDhS
paystamper.com was some other blockchain service from circa 2015:
All found so far are also reproduced at: asciiart.website/index.php?art=people/naked%20ladies therefore not blockchain original.
Some of the very first ASCII art present in the blockchain besides BitLen is porn. Surprising?
GNU Taler by Ciro Santilli 37 Updated 2025-07-16
Centralized system that still attempts some level of privacy.
In it, a central bank issue tokens that are stored offline in your cell phone, a bit like cash bank notes.
When you take those tokens, a corresponding amount gets removed from your bank account, a bit like cash bank notes.
When a transaction is made, tokens are put into a spent token list via central API, and cannot be double spent thereafter. The corresponding ammount is then added to the bank account of the receiver. This also means that offline transactions are not possible.
When emitting, the bank signs the token with their private key. When spending, the bank checks that signature.
How do we prevent the bank from logging which token goes to which user besides trusting that they are running the software we whink they are running? Notably, couldn't timing be used to identify that?
It is hard to pinpoint why, but the following useful software just feel bad for some reason:
Host: Ben Krasnow.
Uber practical, well described setups deep science stuff, he is awesome and has been at Google since 2014: www.linkedin.com/in/ben-krasnow-6796a94/
Charlie Wilson's War by Ciro Santilli 37 Updated 2025-07-16
Video 1.
The Nerdy Kid in the White Shirt scene from Charlie Wilson's War
. Source.
Video 2.
The old man lost his horse scene from Charlie Wilson's War
. Source.
Super Mario 64 by Ciro Santilli 37 Updated 2025-07-16
And as a result, adult Ciro really enjoys tool-assisted speedruns of the game.
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.

Pinned article: Introduction to the OurBigBook Project

Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
We have two killer features:
  1. topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculus
    Articles of different users are sorted by upvote within each article page. This feature is a bit like:
    • a Wikipedia where each user can have their own version of each article
    • a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
    This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.
    Figure 1.
    Screenshot of the "Derivative" topic page
    . View it live at: ourbigbook.com/go/topic/derivative
  2. local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:
    This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
    Figure 5. . You can also edit articles on the Web editor without installing anything locally.
    Video 3.
    Edit locally and publish demo
    . Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.
  3. https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
  4. Infinitely deep tables of contents:
    Figure 6.
    Dynamic article tree with infinitely deep table of contents
    .
    Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact