This seems like it’s going a bit too far to me. That’s the very phrase, “going too far,” that video creator 100th Coin uses, when he finishes Super Mario Bros. by swapping cartridges in mid-play.
And it’s not even really swapping cartridges. This is a TAS, a tool-assisted speedrun, so instead of physically removing a cartridge and putting in another one within a single machine cycle, it just switches rom images into an emulated machine’s address space.
It’s pretty ludicrous, but at least the video maker is upfront about this. Correction: they’re up front about it within their 40-minute video, but not in the title. The title is pretty click-baity, but I guess creators get views however they can in the Youtube hellscape of 2025, if content makers can survive.
Final Fantasy games tend to have weird and crazy bugs, and VII was certainly no different. A bug beloved of speedrunners is called “Cloudsurfing,” where taking advantage of the way the game detects walkable overworld triangles and the way they’re cached to use Chocobos to walk over oceans and through mountains. Properly utilized, it can be used to skip a large portion of Disc 1.
Prior Final Fantasy games used a simple tilemap to represent terrain. Final Fantasy VII’s overworld switched over to a world made up of triangles, each of which with a terrain code that indicated which entities can traverse it.
The triangles, additionally, are divided into square chunks. No triangle extends outside its chunk. Additionally, in each chunk, the triangle vertices aren’t represented literally for each triangle. Instead, the triangle coordinates are indexes into a list of coordinates, all to save a bit more memory.
Now, while each chunk is much smaller than the entire overworld, each can have over 100 triangles, so the code does some additional optimization. It keeps track of the last six triangles Cloud has touched, and checks them first when moving. If a triangle in this list is touched, then the search is stopped without checking the 100+ other triangles in the chunk.
Now, chunks are loaded into memory dynamically as Cloud explores, both for interaction and for rendering. The game loads the 25 chunks immediately around him off the disk, and some more in the direction the camera is facing. These chunks are constantly going stale (going out of range) and being refreshed as Cloud moves and the camera changes direction. Chunks are stored in a linked list, so are usually located by pointers, which means the chunks don’t need to be actually moved in memory, but instead references to them are copied and moved around. Some older chunks stick around in memory, then, while new ones are loaded, and the new chunks get moved to the top of the list.
Now this is the hardest part for me to explain, as I don’t have the firmest grasp on it….
When Cloud boards most vehicles, his entity is despawned and the vehicle is created with an empty list of cached triangles. But when he gets on a Chocobo, his entity is not despawned. While the Chocobo has its own cached list of triangles, since Cloud is still being rendered on screen, his entity is preserved, and with it pointers to the last triangles he interacted with. These are kept, unused, while the Chocobo handles all of the collision and terrain checking.
When Cloud gets off Choccy, he still has a list of the last triangles he interacted with… but they refer to the data from the chunk he was last in. Now the game is smart enough that, if this is different from his original chunk, to refresh things, but if it’s the same chunk I think this doesn’t happen. But this doesn’t mean everything will work without problems. The chunks will probably be loaded in a different order, and that means the cached triangles will refer to different data.
And since the vertices themselves aren’t stored in the triangle list, but indexes* to another list of data, it’s possible for some of this data to come from outside of the expected area, and for there to be duplicated coordinates among them.
Due to the way FFVII figures out which triangle Cloud is in, if two of the points in a triangle are on the same location, the game becomes much less discerning about whether Cloud is inside it or not. And if all three of the triangle’s vertices are in the same spot, forming what’s called a point triangle, just a single dot, then the game can’t declare Cloud is outside of it at all! So long as that triangle gets checked first, then the game will think Cloud is inside that triangle, so long as he’s in the same chunk. This could potentially turn the whole thing walkable.
Did I get it sufficiently right? Watch the video, and decide for yourself!
* The English graduate in me demands I point out that I know I’m being inconsistent with the plurals of vertex and index. Properly, like how I’m not writing vertexes, I should be writing indices, not indexes. I think that index is used more in contemporary English, so I made an editorial decision to pluralize it in a more familiar way. There, explanation: given.
“Dr4gonBlitz” on Youtube found and played though a Nokia port of Castlevania: Dawn of Sorrow. It makes for a very interesting watch for people familiar with the original. (38m)
The player’s style is hyperbolic, in the common Youtuber style, but he knows the original. Dawn of Sorrow was made as a Nintendo DS game first and foremost, using many of its hardware features including its two screens and touchscreen, and I’m surprised any port was made, let alone one for pre-Apple smartphones
I always find it interesting to see how games get redesigned for lesser hardware, like the Tiger Game.Com port of Symphony of the Night. In Dawn of Sorrows’ case, most of the game’s souls, items and weapons were removed, the map was mostly kept the same but had some changes, several bosses didn’t make it, and “Aricado,” Alucard in disguise, isn’t even in the game. On the other hand, they added in a new item called a “Lost Soul” that serves as an auto-activating, one-time extra life.
The video is worth a look for IGA-style Castlevania fans!
The scenario: you’ve made a homebrew NES, Game Boy or Game Boy Color game, maybe by using a paid tool like NESMaker, or a free tool like GBStudio. Or maybe you used an assembler. Or maybe you hand-forged it yourself out of elemental bits with the chip documentation laid out on a table beside you? (Don’t laugh, I used to write 6502 code like that back in the day, when I didn’t have an assembler! The Commodore 64 Programmer’s Reference Guide was a godsend.)
The problem: you’ve made something you think is pretty darn great. Maybe you’d like to distribute it for people to use easily without having to set up an emulator, like it were some kind of native application? Maybe you’d even want to sell what you’ve made, and participate in the equatable exchange of goods and services you’ve heard people talk about in huddled whispers, but never thought you might engage with yourself?
The indicated programmacalities* take a supplied rom image (even if said image never came from actual ROM chips) and erect a software box around it. Then you can distribute that package to other people, and they can double-click it to run it, just like it were a standard desktop executable, and it’s even rumored to be Steam Deck compatible.
A pre-built version is supplied for Windows. For Linux you’ll probably have to compile some code, if just because there’s so many distributions. For Mac, you’ll have to compile it yourself as well, but the process is rumored to be pretty simple.
* Feel free to use this word in your own conversations! People will love it!
The demoscene is a rich source of awesome, and at times ridiculous, imagery and sounds. Once in a while we sift through it to find things to entertain you with.
If you don’t know anything about the computer, it might not seem too interesting. A block-graphics wizard lifts his hat and out comes nine large digits in different colors that then float around the screen.
The more you know about the Commodore 64, though, the more interesting it is. The machine’s graphics chip, the VIC II, is can only display eight hardware sprites at once. Then the sprites cluster together on the same scanline, meaning ordinary multiplexing can’t be happening. Then they drift up into the upper boarder. It demonstrates complete mastery of the hardware, doing a lot of things that simply shouldn’t be possible.
It’s a good exploration of a number of weird C64 graphics tricks: sprite multiplexing of course, opening up the side and top boarders, and making productive use of mysterious graphics that appear off the top of the screen if the boarder is gone. While little code is shown, it’s definitely on the more technical end of things we present here. I’d give it a four out of five on Drebnar’s Geekiness Scale. But if you like learning about obscure tech details of a forty-year-old computer? And who doesn’t? There it is!
What do you know, I’ve made it almost a whole week without making a Youtube video the primary subject of a post! Josh Bycer’s post notwithstanding: not only did I not make the post, but the focus is a video he made himself!
The font for Atari Football. The popular “Press Start” font available in multiple places on the internet, and used in many classic arcade games from many companies, is derived from this one from Atari Inc.
Without further ado, today’s post is about a font collection made by thealmightyguru, and presented on a webpage here. Despite what the main page implies, the individual game pages do not seem to have their fonts for individual download. You’ll probably have to download the while collection, available here, for that. You won’t have to worry about long downloads though, for the whole archive is only 1.4 megabytes!
Here are some examples:
The Intellivision system font is very distinctive. It was used in many Intellivision games, because it was stored on a ROM chip in the console.This font comes from arcade Golden Axe. It’s reminiscent of several Sega arcade games from that time.This one’s from Exidy’s arcade game Circus. Before Atari’s font was copied by everyone, many arcade games used utilitarian fonts like this one.
One of the facts represented is that, while D&D has always borrowed heavily from myth and literature for its beasties, Hasbro considers certain specific monsters to be their property, because they were created out of whole cloth, or at least heavily-obfuscated cloth. Obfuscated enough cloth. They link to a post on the blog Prismatic Wasteland that lists them all out with commentary: Beholder, Gauth, Carrion Crawler, Tanar’ri, Baatezu, Displacer Beast, Githyanki, Githzerai, Mindflayer and its alternate name Illithid, Umber Hulk and Yuan-Ti. These are considered “product identity” monsters, and other products should not use them under penalty of lawsuit. “Tanar’ri” and “Baatezu” are hilarious as identity-monsters, because they were only named that so TSR could excise the words “devil” and “demon” from their game in deference to the 80s Satanic Panic.
I urge you to follow that link too, as it’s an informative read itself. I personally can add that a definition for a Beholder has been in the source code for Nethack since 3.2 (nethackwiki), but is set to never be generated in the game, possibly waiting for an age where its actualization would be less legally fraught. (I’ve included the game info for Beholder at the end of this post.)
So let’s RTS (“ReTurn from Subroutine“) and get back to today’s subject, the Thrilling Tales post. A lot of the monsters mentions got revisions in later Final Fantasy games, and even in remakes of FF1. Even in the NES version if Final Fantasy, the Beholder became the Evil Eye, which is a legally-distinct giant oculus-monster.
FF1J’s Beholder, compared to the Evil Eye from one of the English ports. While it should be recognized that the Evil Eye here has much greater color depth, since it came from a remake, I think the design is generally better. The Beholder’s wide toothy smile isn’t as becoming for an alien eye-creature. (Images are from [ugh] the Fandom Final Fantasy wiki.)
Rather than interrogate their whole post, I think you should just go read it yourself. Go, go! I’ll be here when you get back, just, tomorrow.
Lots of arcade machines have boring manuals, full of schematics, operator settings and assembly instructions, and nothing else. The manual for Bally/Midway’s Wizard of Wor machine has some other information, including a fairly complete play description including inner details of how the monsters are generated and how levels get harder, and a listing of all the phrases the game’s voice synth uses during play.
“When you have reached dungeons eight and above, you have become a Worlord. Now you have the honor of testing your skill in the Worlord dungeons. These dungeons are much tougher, there are fewer walls and more open spaces. If even one shot misses, and travels the long distance down to the opposite wall, a monster wiii very likely come up and gobble you down. Finding and establishing yourself in solid strategic positions is very difficult. It is easy to have several worriors chomped up in a row. Sometimes the monsters will line up along one edge of the maze — a lovely parade. However, if just one monster starts approaching from the top, watch out!” (page 11)
“The Wizard of Wor loves to hear the patter of little feet running through his dungeons. So he created some lovely beasties, known as Worlings. Burwor is beautiful, bouncing blue. Six of them exist on each dungeon level. They always remain visible. This is because the Wizards favorite color is blue. As each Burwor is shot, a Garwor may come to take his place. Garwor is kind of overfed, and waddles a bit, but he has yellow scales that are just delicate. As Garwors are shot, Thorwors are teleported in to take their place. Thorwor is sleek and dangerous red.” (page 11)
“The Wizard of Wor: Even at a young age, the Wizard showed promise in the mystic arts. But it took many dangerous encounters and many years of research and study to sharpen his skills to his current high level. Over the centuries, the Wizard has retained his chaotic sense of humor, much to the chagrin of worriors entering his dungeons (see the list of phrases).” (page 12)
And some of the phrases spoken by the Wizard during the game, spoken by the synth:
“Hey! Insert Coin!”
“Another coin for my treasure chest.”
“Ah good! My pets were getting hungry. Ha ha ha ha!”
“You’re off to see the Wizard, the magical Wizard of Wor.”
“Remember, I’m the wizard, not you.”
“If you can’t beat the rest, then you’ll never get the best! Ha ha ha ha!” (The Wizard laughs a lot.)
“If you destroy my babies, l’ll pop you in the oven! На һа һа һа!”
“Wasn’t that lightning bolt delicious? Ha ha ha ha!”
Perhaps it’s a bit self-indulgent, but I’ve found a playthrough by someone other than me of the arcade version of Rampart, and decided to spotlight it. It’s a game that seems fondly remembered by some, and doesn’t seem to have sold badly. It has a baker’s dozen ports for a wide array of consoles. But no one, besides me, seems to talk about it any more, and until this video I was the only person of whom I have knowledge of completing the arcade version.
Even the MAME people needed my help to correct a game-breaking bug in the Rampart driver, because no one on the project could play Rampart well enough to get to that level. I don’t say this out of pride, but rather of sorrow. Other than its creators, I am probably the person in the world who knows the most about it. For more info, I point you to our Rampart tag.
On the video, there are caveats. The first one is I didn’t exactly it, but instead, Youtube’s vaunted algorithm has filed to hide it from me, because it’s six years old yet my searches haven’t turned it up to me until now. Sometimes I wish Google would stop showing me things it thinks I’d like and instead for a change found something I’ve explicitly asked it for.
Second, it’s by a Japanese speaker, of the Japanese version of Rampart. That was a two-player maximum version with joysticks, and from watching it, I can tell you it’s much easier than US Rampart. The player gets more time to rebuild, levels are easier to pass, grunts are less aggressive, and the game doesn’t pour on the Flagships, the red ships, with anywhere near as much energy in the last two levels. They manage to finish the game in one credit, something I’ve never done on the US version, but I strongly suspect I could do it too on that version, and fairly easily.
Still, it’s someone other than me who has a complete game on Youtube, in however many credits. It’s played on arcade hardware too, which I haven’t been able to do since Rampart was at our local arcade, back when that place existed, around 1991 or 1992. Here is that play (57 minutes):
I really don’t want to detract from their game, bit I’m a bit disappointed. I’ve played Rampart, mostly in MAME but sometimes on the Gamecube version of Midway Arcade Treasures, and on one particular DragonCon I played the PS3 version (there’s something of a story there). Every time, I’ve had to fight against bad luck and the most diabolical impulses of designers john Salwitz and Dave Ralston. Sometimes I win and sometimes I lose, but, ever, only I care.
The search for other people who have finished the US version of arcade Rampart continues.
Late addition: I have more discoveries to offer on this matter, but I have to figure some things out first. To be continued….
On Romhack Thursdays, we bring you interesting finds from the world of game modifications.
There’s a whole community out there that exists to update old console sports games with current rosters and stats. This isn’t the first time we’ve linked to one of these hacks, but it’s been a while, so why not? This one’s a recently-released hack updating NES Tecmo Super Bowl for the 2024 NFL season.
This faked cover art is from sblueman.com.
The site sblueman.com is the canonical host of many of these hacks, going back to 2017. There’s also hacks that simulate NCAA seasons, for those who prefer a more collegiate experience. The hacks can also be gotten from tecmobowl.org. You can also find there TSBTool, a rom editor that’s used to construct the hacks. More information on that process is at sblueman.com’s site at this page.
These fan-made edits don’t just change the numbers and names, but modify and attempt to improve the gameplay in many ways. Knowing that not everyone might agree with all of their choices, there’s four versions of the hack: a “base” version with the updated rosters and the most agreed-on changes, a “vanilla” version with more changes and is intended for casual players, a “hardtype” hack that increases the difficulty, and an slightly changed edition of hardtype where, during road games, the player actually plays as Player 2, against a Player 1 computer opponent. This is done to put them on the right side of the field, but as a side effect you have to play on the second controller (virtual or otherwise).
The Tecmo Bowl games are revered among retro game fans for their exciting action and design, but due to EA’s stranglehold on official licenses for most of the big league sports, official rereleases and remakes from Koei Tecmo are unlikely any time soon. These fan-made editions are twice-damned: by Tecmo’s ancient copyright, and EA’s slightly younger licensing deal. It’s money left on the table, and if you need any proof of capitalism’s manifest faults, there you go. Instead, according to tecmobowl.org, Tecmo had plans once to make a Pokemon Go clone called Tecmo Bo Go. That effort seems to have almost entirely vanished, except for that post and a couple of others, so it seems to have spun down the great internet commode.
Boudewijn Wayers was the creator of the very first Nethack Home Page. I have no idea where he is now, but he’s listed among the alumni of the Nethack Dev Team.
He wrote a spoiler for Nethack called To Die: 50 Ways to Leave Your Game, which was a cataloging of ways to die in that game. This used to be available in several locations on the World Wide Web, but now I can only find it in one place. To help preserve it for later generations, I paste it below in full.
I feel that first I should say a word about how Nethack pages have become scarce lately. The old Steelypips spoiler site is still active, but many of the other sites it links to have perished. (Some of them have academic URLs, and have probably fallen victim to the declining web investment of universities. To think in my lifetime I’ve seen the rise and subsequent abandonment of the internet as a tool of knowledge. I blame social media!)
I should see about preserving old spoiler documents on the living internet, but until I get something put together, here is Boudewijn Wayers’ list of ways to die in Nethack.
50 ways to leave your game ============================ by Boudewijn Wayers (kroisos@win.tue.nl).
There has been talk on the net lately about various ways to get killed. Well, apart from being killed by a monster hitting you, there are lots of other ways… Some of these other things you can be killed by are mentioned here (I don’t claim to have noticed them all, but I think I did):
a blast of acid a blast of disintegration a blast of fire a blast of frost a blast of lightning a blast of missiles a blast of poison gas a blast of sleep gas a bolt of cold a bolt of fire a bolt of lightning a burst of flame a carnivorous bag a closing drawbridge a cockatrice corpse a collapsing drawbridge a cone of cold a contact-poisoned spellbook a contaminated potion a cursed throne a death ray a falling drawbridge a falling object a falling rock a finger of death a fireball a genocide spell a land mine a magic missile a magical explosion a mildly contaminated potion a potion of holy water a potion of unholy water a psychic blast a residual undead turning effect a scroll of fire a scroll of genocide a sleep ray a system shock a thrown potion a touch of death a tower of flame a wand acid an alchemic blast an electric chair an electric shock an exploding chest an exploding crystal ball an exploding drawbridge an exploding item being destroyed an exploding ring an exploding rune an exploding wand an explosion an iron ball collision an object thrown at you an unrefrigerated sip of juice an unsuccessful polymorph brainlessnes bumping into a boulder bumping into a door colliding with the ceiling contaminated water drowning eating a cadaver eating a cockatrice corpse eating a cockatrice egg eating a poisonous corpse eating a poisonous weapon eating a rotten lump of royal jelly eating an acidic corpse eating the Medusa’s corpse eating too rich a meal exhaustion falling downstairs jumping out of a bear trap kicking a ladder kicking a rock kicking a sink kicking a throne kicking a wall kicking an altar kicking something weird kicking the drawbridge kicking the stairs leg damage from being pulled out of a bear trap looking at the Medusa molten lava overexertion sipping boiling water sitting in lava sitting on an iron spike strangulation swallowing a cockatrice whole the wrath of touching a cockatrice corpse trying to tin a cockatrice without gloves
Other ways to die:
caught himself in his own tower of flame committed suicide crunched in the head by an iron ball dragged downstairs by an iron ball fell from a drawbridge fell into a chasm fell into a pit fell into a pit of iron spikes fell onto a sink killed himself with his pick-axe quit while already on Charon’s boat shot himself with a death ray squished under a boulder starvation teleported out of the dungeon and fell to his death unwisely ate the body of Death/Hunger/Pestilence using a magical horn on himself went to heaven prematurely zapped himself with a spell zapped himself with a wand
That’s all of it. Thanks for reading it, and thanks Boudewijn, wherever you are.
I remember the days when everyone marveled at how many ways to die there were in Nethack. Remember Nethack? Good old Nethack.
Multiple long ages of the internet ago, famed nethacker Boudewijn Wayers wrote a spoiler called To Die: 50 Ways to Leave Your Game. It was published on his long-gone Nethack Home Page, but copies of it remain scattered around the internet, although currently I can only find one copy on Google, from a page on tecfa.unige.ch. I’m quite sad that this venerable piece of hack lore is in danger of extinction, at least to people who don’t know the magic codes to enter on the Wayback Machine.
To Die is a wonderful bit of roguelike lore, so great that I’m posting it in full here soon to help preserve it. But today’s focus is on a more recent variation of it: a Youtube video from TheZZAZZGlitch listing every way to die in Pokemon Mystery Dungeon Blue and Red Rescue Team. (21 minutes)
In the spirit of the communal spoiler files of old, I enter the list of death causes here, in easy-to-search-for text. For the details, I refer you to the video. Note that every source of damage in the game that has the potential to reduce the player’s HP to zero has a corresponding entry in this list, so it serves as a map to every cause of harm in the game’s Pokeverse.
WAYS TO KICK THE POKEBUCKET (33 possible causes)
was defeated by (attacker)’s (move) (this is the most common cause of adventure ending) missed a Jump Kick and wiped out. missed a Hi Jump Kick and wiped out. fainted from the foe’s Destiny Bond. (an instadeath) fainted, covered in sludge. fainted from a move’s recoil damage. fainted from damage it took bouncing. was defeated by a foe’s pent-up energy. fainted from stepping on spikes. fainted from a bad burn. fainted, unable to bear constriction. fainted after the poison spread. fainted while still being wrapped. was felled by a curse. was drained to nothing by Leech Seed. fainted from hearing Perish Song. (another instadeath) fainted while in a nightmare. was felled by a thrown rock. fainted from hunger. disappeared in an explosion. tripped a Chestnut Trap and fainted. fell into a Pitfall Trap and fainted. was defeated by a Blast Seed’s damage. was transformed into an item. (instadeath) fainted from being knocked flying. was felled by a Pokemon sent flying. gave up the exploration. (quitting the game, not explicitly a death, but serves the same purpose) was blown out by an unseen force. (spent too long on a single floor and was expelled by the Winds of Kron) returned with the fallen partner. (your sidekick fainted, so you left too, automatically) fainted due to the weather. failed to protect the client Pokemon. (FISSION MAILED) fainted from a Wonder Orb. fainted from an item.
Unattainable but still used in the code, waiting for a moment that can never come (7 causes):
was transformed into a friend. (what?) left without being befriended. (hwat?) was defeated by debug damage. (nooo not debug damage) was felled by a thrown item. was deleted for the sake of an event. (oh okay then) went away. (so long) was possessed. (spooky)
Three messages exist in the code but with no way to activate them, even theoretically:
fainted from a debug attack. was defeated by a powerful move. fainted due to a trap’s damage.