Code Adventures: fancypants, a Command-Line Text Conversion Utility

๐•‹๐•™๐•š๐•ค ๐•จ๐•–๐•š๐•ฃ๐•• ๐•ฅ๐•–๐•ฉ๐•ฅ ๐•จ๐•’๐•ค ๐•”๐• ๐•Ÿ๐•ค๐•ฅ๐•ฃ๐•ฆ๐•”๐•ฅ๐•–๐•• ๐•จ๐•š๐•ฅ๐•™ ๐•ฅ๐•™๐•– ๐•ฆ๐•ฅ๐•š๐•๐•š๐•ฅ๐•ช ๐•ž๐•–๐•Ÿ๐•ฅ๐•š๐• ๐•Ÿ๐•–๐•• ๐•š๐•Ÿ ๐•ฅ๐•™๐•– ๐•ฅ๐•š๐•ฅ๐•๐•–. ๐“ข๐“ธ ๐”€๐“ช๐“ผ ๐“ฝ๐“ฑ๐“ฒ๐“ผ ๐“ฝ๐“ฎ๐”๐“ฝ ๐“ฑ๐“ฎ๐“ป๐“ฎ. ๐—”๐—ป๐—ฑ ๐—ฎ๐—น๐˜€๐—ผ ๐˜๐—ต๐—ถ๐˜€. ๐•ฌ๐–‰๐–‰๐–Ž๐–™๐–Ž๐–”๐–“๐–†๐–‘๐–ž, ๐–™๐–๐–Ž๐–˜.

Can you read those? There’s a good chance you can! If you can’t (like if they all show up as hollow boxes) it’s because the font you’re reading this post in doesn’t support those kinds of characters, which are from the math symbols section of the Unicode character set.

It’s a command-line version of a web Unicode text converter, of the sort found at the other end of this link. It’s written in Python, and the source is at the end of this post. I saved it to a file named “fancypants” and put it in my home directory’s bin directory (which you’ll probably have to make first), where many Linux distributions are configured to look for things to execute if you type their names at the command prompt. (Yes, all of this assumes you’re running Linux. It’s not just for supergeeks anymore! If you’re running Windows you’ll have some adjustments to make, including figuring out how to add the script’s home to your path. It should work on Macs, although I don’t know if it’ll look in your home’s bin either.)

Oh, you will have to run a chmod +x fancypants on it. And the script as written assumes Python is at /usr/bin/python, where most distros will put it.

The script expects to be executed in the form:

fancypants [style] [text to convert]

The text should probably be in quotes if there’s any spaces in it, as should the style just in case. So to produce the first text mentioned at the start of the post, I entered:

fancypants "=" "This weird text was constructed with the utility mentioned in the title."

Usable style specifiers are “=” for double-stroke, “/” for script, “!” for a boldface kind of thing, “f” for the medieval script-looking fractur, and a few others that you can pretty easily see in the source code below. In fact each specifier has some synonyms if the single-character versions are too obscure for you to remember. And hey, if you don’t like the names I gave them you can use your own! The moment you paste it into a text file, this all becomes yours to do with as you please. Think of it as the blog version of a type-in program from an 80s computer magazine.

As a bonus, the names “r”, “rot” or “rot13” will perform a ROT13 code on the letters, useful for encoding spoiler text that readers can decode at ROT13.com. There are utilities that you can use to send the generated text directly to the clipboard, for pasting wherever you want, but since those differ if you’re using X.org or Wayland for your display manager (or, sure, Windows or Mac) I’ll leave those for you to figure out.

And if you can’t read the characters above, then I’m sorry that you’re missing out on the fun. It’s all pretty whimsical really, it’s not some huge thing that you’re missing. Come back tomorrow, I’m sure we’ll have a post about Mario or somesuch.

#!/usr/bin/python
import sys

base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()-_=+[]{};':\",./<>?~"
equals = "๐”ธ๐”นโ„‚๐”ป๐”ผ๐”ฝ๐”พโ„๐•€๐•๐•‚๐•ƒ๐•„โ„•๐•†โ„™โ„šโ„๐•Š๐•‹๐•Œ๐•๐•Ž๐•๐•โ„ค๐•’๐•“๐•”๐••๐•–๐•—๐•˜๐•™๐•š๐•›๐•œ๐•๐•ž๐•Ÿ๐• ๐•ก๐•ข๐•ฃ๐•ค๐•ฅ๐•ฆ๐•ง๐•จ๐•ฉ๐•ช๐•ซ๐Ÿ™๐Ÿš๐Ÿ›๐Ÿœ๐Ÿ๐Ÿž๐ŸŸ๐Ÿ ๐Ÿก๐Ÿ˜!@#$%^&*()-_=+[]{};':\",./<>?~"
script = "๐“๐“‘๐“’๐““๐“”๐“•๐“–๐“—๐“˜๐“™๐“š๐“›๐“œ๐“๐“ž๐“Ÿ๐“ ๐“ก๐“ข๐“ฃ๐“ค๐“ฅ๐“ฆ๐“ง๐“จ๐“ฉ๐“ช๐“ซ๐“ฌ๐“ญ๐“ฎ๐“ฏ๐“ฐ๐“ฑ๐“ฒ๐“ณ๐“ด๐“ต๐“ถ๐“ท๐“ธ๐“น๐“บ๐“ป๐“ผ๐“ฝ๐“พ๐“ฟ๐”€๐”๐”‚๐”ƒ1234567890!@#$%^&*()-_=+[]{};':\",./<>?~"
bold = "๐€๐๐‚๐ƒ๐„๐…๐†๐‡๐ˆ๐‰๐Š๐‹๐Œ๐๐Ž๐๐๐‘๐’๐“๐”๐•๐–๐—๐˜๐™๐š๐›๐œ๐๐ž๐Ÿ๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐Ÿ๐Ÿ๐Ÿ‘๐Ÿ’๐Ÿ“๐Ÿ”๐Ÿ•๐Ÿ–๐Ÿ—๐ŸŽ!@#$%^&*()-_=+[]{};':\",./<>?~"
bolditalic = "๐‘จ๐‘ฉ๐‘ช๐‘ซ๐‘ฌ๐‘ญ๐‘ฎ๐‘ฏ๐‘ฐ๐‘ฑ๐‘ฒ๐‘ณ๐‘ด๐‘ต๐‘ถ๐‘ท๐‘ธ๐‘น๐‘บ๐‘ป๐‘ผ๐‘ฝ๐‘พ๐‘ฟ๐’€๐’๐’‚๐’ƒ๐’„๐’…๐’†๐’‡๐’ˆ๐’‰๐’Š๐’‹๐’Œ๐’๐’Ž๐’๐’๐’‘๐’’๐’“๐’”๐’•๐’–๐’—๐’˜๐’™๐’š๐’›1234567890!@#$%^&*()-_=+[]{};':\",./<>?~"
monospace = "๐™ฐ๐™ฑ๐™ฒ๐™ณ๐™ด๐™ต๐™ถ๐™ท๐™ธ๐™น๐™บ๐™ป๐™ผ๐™ฝ๐™พ๐™ฟ๐š€๐š๐š‚๐šƒ๐š„๐š…๐š†๐š‡๐šˆ๐š‰๐šŠ๐š‹๐šŒ๐š๐šŽ๐š๐š๐š‘๐š’๐š“๐š”๐š•๐š–๐š—๐š˜๐š™๐šš๐š›๐šœ๐š๐šž๐šŸ๐š ๐šก๐šข๐šฃ๐Ÿท๐Ÿธ๐Ÿน๐Ÿบ๐Ÿป๐Ÿผ๐Ÿฝ๐Ÿพ๐Ÿฟ๐Ÿถ!@#$%^&*()-_=+[]{};':\",./<>?~"
block = "๐—”๐—•๐—–๐——๐—˜๐—™๐—š๐—›๐—œ๐—๐—ž๐—Ÿ๐— ๐—ก๐—ข๐—ฃ๐—ค๐—ฅ๐—ฆ๐—ง๐—จ๐—ฉ๐—ช๐—ซ๐—ฌ๐—ญ๐—ฎ๐—ฏ๐—ฐ๐—ฑ๐—ฒ๐—ณ๐—ด๐—ต๐—ถ๐—ท๐—ธ๐—น๐—บ๐—ป๐—ผ๐—ฝ๐—พ๐—ฟ๐˜€๐˜๐˜‚๐˜ƒ๐˜„๐˜…๐˜†๐˜‡๐Ÿญ๐Ÿฎ๐Ÿฏ๐Ÿฐ๐Ÿฑ๐Ÿฒ๐Ÿณ๐Ÿด๐Ÿต๐Ÿฌ!@#$%^&*()-_=+[]{};':\",./<>?~"
fraktur = "๐•ฌ๐•ญ๐•ฎ๐•ฏ๐•ฐ๐•ฑ๐•ฒ๐•ณ๐•ด๐•ต๐•ถ๐•ท๐•ธ๐•น๐•บ๐•ป๐•ผ๐•ฝ๐•พ๐•ฟ๐–€๐–๐–‚๐–ƒ๐–„๐–…๐–†๐–‡๐–ˆ๐–‰๐–Š๐–‹๐–Œ๐–๐–Ž๐–๐–๐–‘๐–’๐–“๐–”๐–•๐––๐–—๐–˜๐–™๐–š๐–›๐–œ๐–๐–ž๐–Ÿ1234567890!@#$%^&*()-_=+[]{};':\",./<>?~"
rot = "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm1234567890!@#$%^&*()-_=+[]{};':\",./<>?~"
tilde = len(equals)-1

def convert(convertchar, intext):
outlist = []
match convertchar:
case "=" | "equal" | "equals":
clist = equals
case "/" | "slant" | "script":
clist = script
case "!" | "bold":
clist = bold
case "!/" | "bolditalic" | "boldital":
clist = bolditalic
case "m" | "mono" | "monospace":
clist = monospace
case "b" | "block" | "mathbold":
clist = block
case "f" | "fraktur":
clist = fraktur
case "r" | "rot" | "rot13":
clist = rot
case _:
raise ValueError("Unknown charset " + convertchar)
return intext
for char in intext:
try:
index = base.index(char)
except:
outlist.append(char)
continue
outchr = clist[index]
if outchr != "~":
outlist.append(outchr)
else:
outlist.append(base[index])
return "".join(outlist)

if __name__ == "__main__":
convertchar = sys.argv[1]
intext = sys.argv[2]
print(convert(convertchar, intext))

Hunter R. Explains Animal Crossing Town Generation

Just a quickie today. I mean the post, not the linked video, which is 18 minutes long. Hunter R’s done lots of videos about various aspects of Animal Crossing, and this one’s no different. In the most recent game, New Horizons, most of your village (or “island” in that game) can be edited, but for the whole rest of the series you’re mostly stuck with the land as it’s generated, and with this video, we know how it’s generated, at least for the first game.

DiggDead

We’re a gaming site sure, but I think our broader focus is on using computers for entertainment purposes, and it’s not as if sites like Digg and its aggregation successor Reddit don’t gameify their workings to a significant extent, what with the reputation and the karma and the scoring and whatnot.

Digg has been restarted before, in fact several times! Some history is called for here.

A Timeline of Digg’s Several Graves

2004 Digg is launched, let’s call this Digg 1
2005 Reddit is launched; at first it’s much the underdog
2006
2007
2008
2009
2010 “Digg v4” happens, a badly handled redesign (I call it Digg 2), a mass exodus to Reddit begins
2011
2012 Digg’s traffic has fallen by 90%; Digg redesigns again (Digg 3), changing over to entirely editorially-curated content; Digg’s IP is sold in two chunks
2013
2014
2015
2016
2017
2018 Digg’s remaining assets are sold to a company called “BuySellAds,” which should give you some indication of where their priorities lay; later it’s sold to the even more hilariously evilly-named “Money Group”; Digg 4
2019 Lemmy, a Fediverse alternative to sites like Reddit and Digg, is launched
2020
2021
2022
2023
2024
2025 June: Digg relaunched in private beta, Digg 5 why not
2026 January: Digg goes public; March: then is taken offline yet again a couple of months later

Yes, Digg is a year older than Reddit, and yes, at first it was the obvious frontrunner. Nowadays Reddit could definitely stand to have some more challengers, but it looks like it’s not going to come from Digg, at least not in the near future.

I got in near the end of Digg’s private beta. I think I was one of its more prolific commenters, and I had considered starting a SetSideB community there. Ha ha, I’m glad I didn’t now! There were people on Digg making concerted efforts trying to push it rightward, trying to spread the meme that Reddit, the very site that once hosted TheDonald, was somehow far left-leaning. I’d tell you more about their odious arguments, but I blocked them as soon as I noticed them. Digg had good block button, at least.

There had been problems with AI bots trying to push content, yes, but Digg also used made a lot of use of AI itself. Moderation was handled partly by algorithm, and many pages would have Digg-generated AI summaries, marked “tl;dr.” I came to resent them.

A BusinessWeek cover, archived by Wikipedia, from Digg’s heyday

Original co-founder Kevin Rose, in many ways the face of Digg, is back on board. He seems to come back every time they’re having problems, but never seems to stay for long. Digg’s apology message, which is now their entire website, came suddenly. We users were given absolutely no advance warning, the site, and all of our posts and comments and votes, were just gone entirely. Here one moment, gone the next. Good job there Rose.

I don’t think it’s right to say, as the front page now does, that “[t]he internet is now populated, in meaningful part, by sophisticated AI agents and automated accounts.” That is true if you view it in terms of posters. But the web is mostly comprised of readers. One of Digg’s early ideas, lifted somewhat from Slashdot, was that users with good posts get more influence. That also became Digg’s downfall, as power users with high influence banded together to upvote each other’s posts, making themselves more and more powerful within that framework.

I wonder if AI agents could be used by nefarious actors to automate gaming such a system? I don’t know. At a certain point, the problems with a system start to look, not like fixable problems, but like inherent flaws. But anyway, my fondness is still for entirely human-curated sites, like my favorite hangout spot Metafilter. It certainly has problems, but it doesn’t have a runaway bot problem, or at least none that I’ve noticed so far.

Please support the human-made web. The whole online world depends on it. Thank you.

MARCHintosh 2026

I feel like I’m a bit late on this one, but there’s still two weeks of March left. Some crazy wonderful people every year devote the month of March to classic Macintosh stuff, both hardware and software, and primarily things before the release of OS/X in 2001. The original MacOS traces its lineage all the way back to 1984’s original Macintoshes, and existed as Apple’s primary OS for 17 years. Now it’s been 24 years since the switchover, but a lot of people still like the system that served as Apple’s mainline OS for so long.

MARCHintosh has a website that organizes it, and even offers a style guide. It was created as a fruit-flavored adjunct of similar month-long pun-inspired retrocomputing celebrations DOScember (website currently down for a redesitn) and SepTANDY (doesn’t seem to have a home site at all). Should there be more? VICtober? JUNIX (thanx Ben Zuddist)? I vote yes, regardless of how terrible the pun is! Let’s fill the year with crackling, smoking old tech!

There is lots to find exploring the hashtag #marchintosh, this is just a few items. Level 2 Jeff emulated the original Macintosh on a microcontroller (15 minutes):

Michael MJD emulated Windows on a PowerPC Mac (32 minutes, but running, it should be said, OS/X, not classic MacOS):

Retro Repair Roundup did an hour-long video where they talked about old Macs:

It’s from back in 2019, but Ron’s Computer Videos showed off a Mystery Science Theater 3000 Hypercard stack! (1 hour 16 minutes) They have a whole MARCHintosh playlist too.

More MARCHintosh projects can be found through the #marchintosh tag on Bluesky and Mastodon.

MacOS Timeline

1976 Founding of Apple Computer (now Apple Inc.), release of Apple I
1977 Release of Apple II
.
. 6 years
.
1984 System 1, release of the original Macintosh
1985
1986 Systems 24 (sometime between 1985 and here)
1987 System 5
1988 System 6
1989
1990
1991 System 7, a.k.a. MacOS 7.6
1992
1993
1994 Switchover to PowerPC hardware
1995
1996
1997 MacOS 8
1998 Initial release of iMac, the beginning of the revival of Apple’s fortunes
1998 MacOS 9
1999
2000
2001 Mac OS/X 10.0 Cheetah (“OS 10,” now called MacOS), initial release of iPod
.
. 24 years
.
2026 Today

Code Adventures: Simulating One Handed Solitaire

My style in titling these things is to just present the subject on whatever it is I’m linking to in the title, so you might expect that this is about someone else doing that and me reporting on it. But no! This time it’s something I did myself!

First, you have to know of a card game called One Handed Solitaire, as reported by Metafilter member ChurchHatesTucker here. CHT’s been on a tear in presenting various card games lately, here’s the other recent posts they’ve made on solitaire card games, with a dungeon crawl flavor: Clear the Dungeon, Tomb of the Four Kings, Scoundrel.

One Handed Solitaire is very simple, and an example of a “zero player game.” There are no decisions to make; winning or losing is completely down to the initial state of the deck. Here are the rules in text:

You start with a shuffled deck of cards. Draw four to form your hand. Your hand is considered to be in sequence, you must keep them in the order drawn. Now:

  • If the first and fourth cards are the same suit, discard the second and third cards from your hand out of play. This of course moves the fourth card to be the second card.
  • If the first and fourth cards are the same rank, discard the first four cards from your hand.
  • If neither of these things are true, draw another card from the deck to the front of your hand. This makes a new first card, and changes which the fourth card is.
  • When the deck runs out and you can no longer remove cards, the game is over. If you clear your hand and there’s still cards in the deck you’re not done, draw four more.

Your score (lower is better) is how many cards are in your hand when you run out of deck and can no longer discard cards. The average score is about 13.32 cards left. If you get a score of zero, that is you discard all of the cards from your hand and the deck is empty, you win.

Here are the rules demonstrated by Gather Together Games in a Youtube video (1ยพ minutes):

ChurchHatesTucker ran a simulation of 200,000 runs and found the win rate of the game is close to 0.7%. I ran my own simulation, in a Python script, and found that out as well. I’ll put my code at the end of this post. No AI was used in its writing, and permission is not given to use it to train AIs. In fact, that’s true of all the text in this blog.

My first attempt found a win rate of 0.94%, but that turns out to be because I left out the aces from the deck! I tried a run with only 20 cards in the deck the 2-6 of each suit, and the win rate became about 7.5%.

If you want to try yourself, here’s the Python code I used. If you have Python installed, just paste it into a text file, give it the extension .py, and run it. It assumes you’re running it in a Linux or other Unix-like system; if you’re on Windows, you might have to change the “shebang” line at the front to point to where your Python is.

#!/usr/bin/python
import random

def draw(deck):
if len(deck) > 0:
return deck.pop(0)
else:
return None

def gameend(deck, hand, verbose):
score = len(hand)
if verbose >= 1:
print("Deck exhaused. Final score:",score)
if score == 0:
print("Win!")
if verbose >= 2:
print("Deck state:",deck)
print("Hand state:",hand)
return score

def play(verbose = 0):
deck = ["2H","3H","4H","5H","6H","7H","8H","9H","TH","JH","QH","KH","AH",
"2D","3D","4D","5D","6D","7D","8D","9D","TD","JD","QD","KD","AD",
"2C","3C","4C","5C","6C","7C","8C","9C","TC","JC","QC","KC","AC",
"2S","3S","4S","5S","6S","7S","8S","9S","TS","JS","QS","KS","AS"]
hand = []
random.shuffle(deck)
for a in range(4):
hand.append(draw(deck))
if verbose >= 3:
print("Game starting--")
while True:
if len(hand) < 4:
drawcard = draw(deck)
if drawcard == None:
return gameend(deck, hand, verbose)
if verbose >= 2:
print("Drew a",drawcard)
hand.insert(0, drawcard)
continue
cardtop = hand[0]
cardfourth = hand[3]
if verbose >= 3:
print("********: Deck length:",len(deck), "Hand length:",len(hand))
if verbose >= 2:
print("CARDS:", cardtop, cardfourth)
# case 1: if the 1st and 4th cards match suit, discard the second and third cards
if cardtop[1] == cardfourth[1]:
d1 = hand.pop(1)
d2 = hand.pop(1)
if verbose >= 2:
print("Discarded",d1,"and",d2)
continue
# case 2: if the 1st and 4th cards match rank, discard the top four
if cardtop[0] == cardfourth[0]:
d1 = hand.pop(0)
d2 = hand.pop(0)
d3 = hand.pop(0)
d4 = hand.pop(0)
if verbose >= 2:
print("Discarded:",d1,d2,d3,d4)
continue
# case 3: if neither is true, draw a card
drawcard = draw(deck)
if drawcard == None:
return gameend(deck, hand, verbose)
else:
if verbose >= 2:
print("Drew a card")
hand.insert(0, drawcard)
# end of loop

if __name__ == "__main__":
numgames = 10000000
wins = 0
scores = []
scoresum = 0
for count in range(numgames):
score = play(verbose = 0)
scores.append(score)
scoresum += score
if score == 0:
wins += 1
#print("A win on game #",count+1)
if count % 500000 == 0:
print("Played",count,"games...")
print("Finished playing",numgames,"games")
print("Wins:",wins)
print("Win rate:",wins/numgames)
print("Total score:",scoresum)
print("Average score:",scoresum/numgames)
print("Run compete.")

Fedi Games

A brief post on a brief find. I was wondering if anyone thought of using the Fediverse, that nebulous internet thing that includes Mastodon, Lemmy, Peertube, Loops, Pixelfed, Hubzilla, Miskey, Fundwhale and more, and used it as an interface to game software. The main thing I’ve found so far is this site, games.rerere.org.

A very simple interface, but maybe this is only the beginning?

On this site you can start games of Tic-Tac-Toe, Rock Paper Scissors and something called Bunkers, which on quick inspection appears to be an implementation of Scorched Earth. You start a game by sending out a Mastodon message to the game’s address. I haven’t tried any of them yet, so there’s a chance that these will just catch fire and burn down your house if you try them. That’s a thing that can happen, right?

Time Extension Rates All the Shining Games

The Shining series, published by Sega but developed by lots of different people, is all over the map regarding gameplay styles. I’d say that more people have heard of the second game, the great Shining Force (it’s sort of like lighter Fire Emblem with town scenes and no permadeath) than the first one, Shining in the Darkness (a first-person dungeon step-oriented crawl with premade characters). All the games are set in a fantasy world (but not all necessarily the same fantasy world) and have a cartoony art style that helps keep things lively, but beyond the dungeon crawls and tactical battles there have been Diablo-style combat, action RPGs, Zelda-style exploration with bump combat, more general strategy and even a fighting game.

Ashley Day at Time Extension rated all 23 of them, and their opinions seem pretty decent to me. So you know, #1 was Shining Force III (the infamous one released on three sold-separate Saturn disks, of which only one made it to the US), #2 was Shining Force II, and #3 was the confusingly-titled “Shining the Holy Ark” also in Saturn. #5 is Shining Force I, and #4 is its GBA remake. Many of the lower-placed games on the list are various later installments, which is fair. The Shining games seem like they’ve fallen off lately, but it’s not like you can’t go back and play the originals… through some, um, means or other….

(Axe smashes through door.) Heeeeres… Ashley Day! Does Stephen King know of these games?

Multiink Monday 3/26/2026

My first Multilink Monday of the year, my concession that I have way too many tabs in my “Set Side B” group and I have to do something to clean them out. Hopefully at least one of these things will hit the right atoms in your brain to induce pleasure, or “trigger dopamine,” in the words and thoughts of a legion of hack game designers. Aid I don’t mean the good kind of Hack either. Let us begin!

  • Your AI Slop Bores Me is a terrific little game where you can enter a prompt for a bit of text or a drawing, and then it’s randomly assigned to someone else viewing the other tab to fulfill the prompt. Answering a question (in whatever way) awards you “tokens” that you can spend to enter more prompts.
  • Hackaday has an article about one bright hacker’s work to restore the Wii’s pizza channel (which was never released in the US) so it can order from Dominos.
  • Finally this is a bit of a selflink but hey, we’re not on Metafilter here are we? An online friend named GothPanda has created a modest little Yahoo-like web directory called Neato!, and I’ve been contributing links to it. We’re up to 63! I’m signed on as a “guide,” so if you contribute links to it with the Add link, I’ll have a look at them and consider adding them! But be warned, this is not a site to stick your SEO links! Nyaah!

PannenKoek Demonstrates EVERY Chain Chomp Glitch in Mario 64

I had a different post planned for today, but decided to put it off for tomorrow to polish it a little. So until then, PannenKoek, the Mario 64 obsessive who’s the reason we all know about the A Button Challenge, has a recemt 32-minute video all about the Chain Chomp in Bob-Omb Battlefield, an iconic part of the level and the star of a lot of glitches and other oddities.

Things like:

  • Unlike most spherical enemies in the game, Chain Chomp is fully polygonal, and the highlight off of its shiny surface changes direction depending on the direction its facing, not the direction of the camera.
  • If Mario gets hit, if he’s quick he can stand inside its hitbox and, so long as he reminds inside it, his invulnerability time will never end, and he can remain there safely indefinitely.
  • If you stand beside the Chomp in just the right place, it can be arranged so that it’ll never be able to hit Mario, but will make tight circles around him until he moves.
  • The cutscene that happens when Mario stomps the post Chompy is chained to has a number of oddities behind it. It tries to adopt for the Chomp’s current position, but things can happen like it falling off the ledge before leaping for the gate, or getting stuck in a state where the cutscene can never complete, softlocking the game.

That’s just the beginning! For more Chomp Cheats, please view its vicious video!

Web Documentary on Ridge Racer Games

It’s an hour and 54 minutes long, but Greg Sewart’s doc on the Ridge Racer series is a through backgrounder on every game with that name, and all the others too like Rave Racer and Rage Racer. From 1993 to 2016, it’s a family reunion of the whole dual-R clan, from arcades to Sony consoles to the odd Nintendo machine to smartphones. You really don’t get much more niche than that.

Super Mario Movie Text Generators

It’s been going around Bluesky, but not everyone follows the kinds of people I follow (because not everyone spends 23 hours a day online). So have a look at this Super Mario Galaxy title font image generator.

It fits! There’s no way Bowser and all those Koopas aren’t mutants in one way other! Although that makes Bowser a bit young to be as father… even younger if one accounts for the fact that Bowser Jr. seems to be like seven… but then who knows what the Koopa life cycle is like.

The example here is a brief commemoration of one of the most successful posts we’ve ever had here at SSB, to a Teenage Mutant Ninja Turtles logo generator.

The page with the Galaxy generator also has one for that other Super Mario Bros. movie.The CG one, not the 90s one, or the anime one.

Why did they feel the need to make Mario Kart canonical?

Classic MacPaint Art

From July of last year, the blog called decryption posted a bunch of wondrous examples of 1-bit MacPaint art from the early days of the platform. MacPaint had a distinctive aesthetic: tiny dots, each either white or black, favored the use of dithering to create makeshift grayscale. (Note: one image is NSFW.) Here’s a few selections, but there’s lots more where these came from!

If this kind of thing is up your monochromatic alley, decryption’s on Mastodon and Bluesky!