It’s been a difficult time here for the moment, so I’m doing low-effort posts at the moment. I have ideas for several more long-form posts, but if the posts be long, so is the time to write them properly. So, in the meantime, here’s yet another Youtube video on a random piece of video game hyper-esoterica.
It’s a good one this time though! A 25-minute video on using all kinds of glitches and tricks to avoid beating bosses in a game where every level ends with a boss!
Super Mario 2, USA version, isn’t a game that I don’t think of when it comes to glitches, and I’d wager it doesn’t for many of you either, so it’s a bit reassuring to know that it’s got as many weird ways to bend the game’s rules as do games like Super Mario Bros. and Ocarina of Time. The video’s from Retro Game Mechanics Explained, which, along with Displaced Gamers, are among my favorite channels for digging deeply into the actually assembly code of games, and figuring out exactly why they do, or don’t do, what they could/should. Along the way you’ll get a basic understanding of how SMB2USA handles connections between areas.
If you’re as obsessed with understanding how these games were put together as I am, it’ll be like sugar candy to you! If you aren’t, well, maybe you’ll find it interesting anyway.
The (very most barest) basics are explained in this five-minute video from Game Facts Special:
The (impossibly detailed) specifics are on Sonic Retro. Warning: you have no idea.
Can I summarize them briefly? Not really, but here’s the basics. The tiles link to a list of heights for that tile. If Sonic is traveling vertically up a wall, then the heights count as widths. If upside-down, then the inverse of the tile’s heights are used.
Every frame, Sonic emits four or five “sensors,” basically raycasts, around his feet and head. Those indicate where he’s standing and where the ceiling is. If he’s traveling vertically the rays are rotated 90 degrees in the proper direction, and for an upside-down Sonic they’re rotated 180 degrees. Additionally, each tile has a record of what its angle is, and that’s used for things like how it affects speed and what angle Sonic should jump at.
When going around a loop, Sonic’s sensors remain as normal until up past 45 degrees up the first ramp. Then his sensors rotate, and he’s now going up. 135 degrees around the loop, it rotates again, and again at 225 degrees, and one more time at 315 degrees. The same height values get used for each slope, just used for different purposes. It’s surprising it works as well as it does, really.
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.