“Just Move a Colorful Bus From Here to There.”
It’s April Fool’s Day. You know what that means: It’s time for another one of our annual articles where we write in our standard format about a game that was never meant to be taken seriously! In past years, we’ve covered the likes of inside jokes that went on to be sold as part of retail products, running gags from games magazines brought to life, and cassette programs that were accidentally rendered impossible to play. But this year, we’re doing something a little different: We’re covering a developer’s tech demo that got way out of hand, when the Internet at large got a hold of it. You see, a simple demonstration program the likes of today’s subject would generally be ignored by most folk, outside of maybe a handful of fellow developers. And that was the state of the demo in question for roughly five years following its initial release, where it resided largely unseen — safely tucked away in the obscurity of a homebrew enthusiast forum. But when it ultimately escaped its containment, it broke out in a big way, to the point where it’s actually been printed and sold on proper cartridges (without the original developer’s involvement, as it turns out). How did such a simple little demo posted for a community of roughly a dozen people come to be known by literal millions across the world wide web? Did it accomplish some incredible technical feat that amazed the masses? Maybe its creator is a popular celebrity who folk discovered to have been a one-time game developer? Nah: It’s because it has random numbers implemented in place of properly-composed background music, and the game produces some truly unlistenable tones as a result. Why, if someone was forced to listen to this “soundtrack” for an extended length of time, I bet you they’d wind up going… Bonkers? Kooky? Nutty as a fruitcake? Man, there’s a specific word I’m looking for here, but the cat’s got my tongue at the moment.
Today, we’ll be attempting to document the history of Tom Maneiro’s CrazyBus: A Sega Genesis ROM developed as an experiment in programming — never intended to make its way outside of a small message board, buried in a deep corner of the net. And yet, here we are talking about it today, as it has become the stuff of bona fide legend. Truth be told, there isn’t much to say about the contents of the gameplay itself: You literally just move a bus left and right across the screen, without anything in the way of destinations to visit or passengers to pick up. (You can honk the horn if you so choose.) But the “gameplay” on offer isn’t what makes CrazyBus such an interesting title in the first place. It’s not the soundtrack either, as far as I’m concerned. No, the fascinating aspect here is how it came to be spread so far and wide across the world wide web, so many years after it was initially released. That’s the bit that’s gonna take the real work in writing up; between the history of the community it was borne from, the state of emulation and homebrew development in the early aughts, and the Internet’s sometimes frightening ability to preserve and proliferate some of the most obscure pieces of software. You’d figure that most of the details of this story would be lost to time — deprecated along with the decades-old websites where the game was first conceived. But nope: We can actually track this saga from beginning to end, with the benefit of the Wayback Machine and timestamps on archived forum posts! And in my humble opinion, it is absolutely an endeavor of archeology worth undertaking, and a piece of history worth chronicling… even if it feels a little perverse digging through twenty year-old forum posts in order to piece it all together.
Oh, there is one more bit of bookkeeping to get out of the way: In the spirit of motor transport, I’ll be writing the entirety of this article from the inside of a moving vehicle. (Namely, my own car.) It turns out that I have a number of errands to run, so it’s actually pretty handy that I’m able to multitask like this. Ain’t modern technology grand? Though, I’m realizing just now that I’m not exactly gonna be able to keep typing on my laptop and drive at the same time… Wait, I’ve got it! I’ll just rely on a speech-to-text app on my phone, and dictate the article as I’m driving! Testing, testing? One, two, three, testing? Eyup, looks like I’m coming through loud and clear! Haha, this kicks ass. Man, if this actually works out, maybe I’ll start writing all my articles like this? Time’ll tell, I reckon. For now, it’s time to shout “All aboard!”, as we get to covering Venezuela’s premiere 16-bit bus simulator.
“Can Somebody Suggest Me a Code for Simulate a Bus Horn?”
Playing retro video games on your personal computer is a fairly easy feat to manage these days: You’ve got about a dozen different choices of fully-featured emulators for any given console (as well as Wikis dedicated to telling you which of them are actually worth downloading), “No-Intro” ROM sets that can be safely downloaded from the likes of Archive.org, and the benefit of modern hardware being able to run all of it with minimal system utilization. It’s a far cry from the days of applications being purpose-built just to run a small handful of select games, sketchy “Free ROM Download” sites peddling malware executables, and Pentium IIs struggling to run so much as SNES games at proper speed. But those were the growing pains that we had to endure in the pursuit of software preservation — the accepted state of things as it stood in the mid-90s through to the early 2000s. Progress on this front took dedicated developers operating in deep corners of the world wide web – often completely disconnected from one another – working to figure out what made those vintage games tick, and how to effectively trick them into running on contemporary computers. At the same time, there were also developers who were looking to create their own titles for those same antiquated systems — to craft “homebrew” software, as it would come to be known. They too would take up occupance in similarly obscure pockets of the Internet; designing tools and utilities to streamline the creative process, running their own experiments with hardware tinkering, and ultimately posting their finished games to their personal webpages in the hopes that other folk might play them. For a time though, their efforts went largely unappreciated — downright thankless compared to the praise being heaped on emulator devs. And yet, they continued to persist in their work; not for the accolades, but for “the love of the game” — both proverbial and literal.
And so, our story begins with one Joseph ‘DevSter’ Norman: A Sega enthusiast with an interest in producing homebrew software for the Genesis / Mega Drive, and providing like-minded folk the tools to follow suit themselves. It’s likely that his work began on a website called ‘Smash Development,’ which they ran for a time prior to 2003 — used to host the utilities DevSter had developed, as well as enabling users to post their own projects / ask programming questions on a community forum. Unfortunately, the Smash Development server would seem to suffer some sort of sudden shutdown in around late 2003, which DevSter would describe as the “old pages+data on Smashdev [being] totaled.” (Evidently, they shared hosting with ”an adult server that hosted ‘adult’ related stuff, and eventually folded out.”) Unfortunately, I personally know all too well about the dangers of relying on dodgy web hosting to run a website in the early aughts, and watching your work go up in smoke without warning. (Hell, it’s still an issue this very website has had to deal with as recently as just a few years ago.) Rather than letting this setback stop him though, DevSter simply started a new site in order to continue his work: Dubbed ‘DevSter Specialties,’ the new webpage would launch on September 3rd of 2003 (originally hosted at devster.retrodev.com, later at devster.monkeeh.com). And one of DevSter’s first orders of business was to use this space to host his then-latest project in development: BasiEgaXorz.
BasiEgaXorz serves as a BASIC compiler for writing Sega Genesis ROMs (later adding support for 32X and Sega CD authoring), thereby allowing folk with a knowledge of that programming language to write and run applications on the 16-bit hardware. This would spare prospective programmers from having to learn assembly language, and make for a solid beginner’s tool / entry point into homebrew development. Granted, the limitations of BASIC meant that users probably weren’t going to be able to recreate the likes of Sonic the Hedgehog or anything approaching that level of visual / logical complexity: For starters, programs written in BASIC generally run slower than those written in assembly, owing to how the latter is able to leverage direct calls to the system and facilitate faster operations. For another, writing a program entirely in BASIC means that you’re unable to utilize dynamic variables — to write code with flexible value adjustments, effectively rendering more complex game designs impossible to realize. And if everything I’ve written so far is a bit too difficult to decipher for a casual reader (even I barely know what I’m talking about here), let me try and put it like this: BASIC is – as the name implies – incredibly basic as far as programming languages go, and simply can’t stack up to the sort of code typically employed in developing commercial Genesis cartridges. But that was sort of the appeal of BasiEgaXorz in the first place: It was there to allow folk with a minimal knowledge of programming to quickly write their own programs, and see them magically able to run on an actual Sega system (or emulator, as was more likely the case). And in this regard, BasiEgaXorz dutifully fulfills its purpose.
Of course, DevSter also used his new homepage to document and host all manner of other experiments in hardware hacking and homebrew development: There are dozens of different tutorials and schematics related to the Zilog Z80 and 6502 microprocessors, image galleries where he was able to show off his heavily-modified Genesis and SNES consoles, and collections of games and tech demos programmed by DevSter himself. (Most of these demos are fairly unimpressive – even as far as 2000s-era homebrew is concerned – as they were mostly meant to demonstrate basic functions of BasiEgaXorz, rather than stand as compelling games on their own.) Also, seeing as this is the early aughts; you just know the site has gotta have a quickly-abandoned webcomic that only ever updated a grand total of one time, and an HTML table element displaying the “Cool List of Dreamcast Games DevSter Pwns.” It was practically obligatory to put this sort of stuff up on your circa 2000s webpage, and I miss the hell out of this style of earnestly personal webpage. But we can’t linger too long on the main DevSter Specialties website, as much as I’d love to just sit here and gawk at its garish design choices (that color scheme is truly something to behold): The story at hand is largely localized within ‘The DevSter Forums,’ served off-site via ProBoards (a service enabling free forum hosting). It’s here where the titular DevSter would field questions and feedback on his ongoing projects, as well as provide a hangout spot for similarly-inclined homebrew enthusiasts; primarily those who were using BasiEgaXorz to produce their own programs, and looking to pick up pointers from its developer. It’s on this board where DevSter posted under the username ‘oompa loompa,’ and took a seemingly lax approach to moderation — often allowing conversations to go off-topic, and responding to the rare user complaint with self-deprecating jokes rather than taking it personally. (At least, that’s the read I got from browsing a number of old threads.)
I feel like I should paint a bit of a picture of the early Internet here, for the benefit of folk who weren’t around to see it back in its heyday: Sites like DevSter’s were far from uncommon (in terms of design / structure, if not their central focus), as folk began to realize the potential to document and share their interests with the world wide web — to cast a proverbial net out on the Internet, and hope to reel in like-minded web surfers who might stumble into it. And the best way of ensuring that your site got seen was to have it added to a link list or webring, where your URL would get inserted into a directory of similar pages — where you’d hold out hope that it’d stand out enough to inspire users to click through to it. (DevSter would have his site added to several of these rings, primarily ones centering around homebrew development.) Of course, this was far from a perfect system; as these lists could grow to contain hundreds of entries, and as folk would have to go out of their way to even find the directories in the first place. But in an era before social media or effective search engines, this was still your best course of action for finding fellow enthusiasts for your more unusual interests. As a result of all this, the communities that formed in this era were as tight-knit as could be: Once you found someone who shared in the same niche hobby as you, you stuck together and started pooling your resources. And after you brought enough folk into your circle, you either started your own IRC channel or message board, so that you could all keep in touch with one another. Yeah, things were a bit more “technically challenging” back in the day, and you had to really work at it to make it all happen. But the end result were bonds that were a whole lot tougher to break, and an abundance of communities centered around every conceivable niche you could think of. I reckon there’s a sort of beauty in that — a sense of camaraderie we just don’t have in the social media age.
All in all, it seems like The DevSter Forums made for a pretty cozy little community: The sort of place where everybody knew each other, and all got along well enough sharing in their similar passions. This was probably aided by the fact its central focus fell under such a small niche for the time, and largely kept them under the radar: It’d take more than a full year for the board to even reach a thousand posts, across a population of maybe ten or so active community members. But that small handful of folk seemed absolutely dedicated to keeping The DevSter Forums alive, having found their corner of the web to share with like-minded Sega homebrew enthusiasts. And among these members was one Tom Maneiro, who quickly established himself as one of the most active of the whole lot — accounting for nearly a tenth of the forum’s collected posts (1,150 out of a total ~13,000). He was there on the boards from the very beginning, and would stick with it through thick and thin — popping up in practically every thread, and encouraging other posters as they pursued their own projects. If you’ve ever run your own message board or other form of online community, Tom embodies the sort of user you’d dream of attracting to it: Just a passionate dude who shows up one day, immediately vibes with everyone else, and always has something interesting to contribute to discussions. The guy even made sure to ring in every New Year’s Day with a celebratory thread – always reminding folk to “drive with care” – which is so wholesome I just can’t help but smile.
Naturally, Tom also had his own software projects in development, and a want to share them with his friends in the homebrew community. For starters, he had created his own development utility titled GenRomSuite, which allowed devs to quickly access a range of header verification and filetype conversion tools. Another one of the resources he provided was the “32XCRAShTEST,” made to document emulator compatibility across the range of available Sega 32X ROMs in circulation at the time. At one point, Tom even dabbled in ROM translations; issuing a Spanish-language IPS patch (💾) for A Week of Garfield, just to make sure that his fellow Venezuelans could fully share in suffering that wretched game. Of course, there were also his own games and demos he developed using BasiEgaXorz, as he evidently fell in love with the tool and its ease of use: He’d briefly attempt to keep up another annual tradition of releasing digital Christmas cards in ROM format, modeled after classic demoscene style message scrollers. Another demo purported to simulate a Windows 2000 installation on the Genesis, labeled as ‘Windows 68K Edition.’ (This one reminds me of those old bootleg carts for the NES that pretended to run other versions of Windows on the system.) And of course, there was the game that would ultimately propel Tom into Internet infamy: His demo entitled CrazyBus, which he initially worked on between 2004 and 2005. But before we get to discussing its development, there’s still one more bit of background info we’re gonna need to explain; that being where the ROM file was hosted online, so that folk could actually download and play it for themselves.
Enter ‘Eidolon’s Inn’: A website first established in 1997, dedicated to collecting information on the technical details of Sega’s console hardware, as well as hosting homebrew developments and emulation software. If you first got into console emulation in the early aughts, there’s a good chance you may have actually visited Eidolon’s Inn in order to download Kega Fusion — one of the most fully-featured Genesis emulators of its era; which additionally supported the likes of the SG-1000, Master System, Game Gear, and assorted Genesis add-on peripherals. And after you downloaded Kega Fusion, there’s a chance you might’ve browsed the site in search of ROMs that you could load up in it, which Eidolon’s Inn were happy to host… as long as they were labeled as “(PD)” (Public Domain) releases, produced by homebrew developers. So while you couldn’t download the likes of Phantasy Star IV or Streets of Rage off of the site, you could try out a selection of offerings on the “Freeware ROMs” page (since lost to time, as it isn’t properly archived). This is how many a casual player being first introduced to emulation would come into contact with the world of homebrew, as they tested the waters with readily available / non-copyright infringing ROMs. Of course, most would probably just as quickly write these off as “not being ‘real’ games,” and go out in search of more recognizable commercial titles. But for those who were interested in pursuing Sega homebrew development for themselves, the Freeware ROMs page proved a valuable resource — a potential starting point on their own programming journey. And while just about anyone could submit their files to Eidolon’s Inn in order to have them hosted on the directory, there were a select few in the community who were granted a sort of “preferential treatment.”
A small handful of folk were allowed to maintain their own dedicated pages on Eidolon’s Inn: Namely, fellow Sega enthusiasts who were in the good graces of webmaster Christian ‘Eidolon’ Schiller, and granted access to the server for hosting their personal projects. Among the first to gain this access was ‘Steve Snake’ — the developer behind the aforementioned Kega Fusion, who chose to host his emulator on the Inn’s website. Another person of interest was Sam Pettus, who penned a “SegaBase” series chronicling Sega’s company history in a then-unparalleled level of depth; which he eventually collected into a published book, titled Service Games: The Rise and Fall of SEGA. (Long-time readers might remember that I once rated this book as one of my personal favorites on the subject of video games.) We’ve also gotta mention Tulio Adriano and his efforts to produce a “Tavern RPG”: A fully-featured role-playing game originally intended for the Sega CD – set to star members of the Eidolon’s Inn community as playable characters – which Eidolon would naturally provide hosting for. The project’s scope quickly ballooned way beyond what had been initially envisioned for it, and so it would wind up taking a full six years to develop (during which time Eidolon’s Inn had stopped regularly updating), and ultimately released as a Genesis game titled Pier Solar and the Great Architects. Its launch was actually something of a big deal at the time; noted for its high production values, the novelty of its being developed for an older console, and the fact it was granted a limited run physical release on cartridge form. Tulio and company (operating as the collective ‘WaterMelon’) would later attempt to follow up this successful release with 2020’s Paprium: A side-scrolling beat ’em up for the Genesis, which was plagued by so many issues during its production that I can’t even begin to get into them in this article. (You might try this post from the ‘Paprium Fiasco’ blog, if you’re looking for a detailed rundown.)
The point I’m trying to make here is that Eidolon’s Inn once served a fairly major role in serving the Sega enthusiast community, and that having your own directory hosted on the website was a pretty big deal at the time. (At least within the limited scope of the Sega homebrew scene.) And Tom Maneiro was one of the lucky few to hold that privilege, proudly hosting his “Tom’s Wacky Workbench” page — likely granted to him for his work on GenRomSuite, but which he’d use to issue updates on all his projects in development. This makes Eidolon’s Inn the most likely source for where CrazyBus was first discovered / entered into the circulation of Genesis ROM sets on the Internet, as someone likely scraped the site at some point and picked up the “Version 1.1” release in the process… But that “1.1” implies the existence of a “1.0” release, doesn’t it? Not to mention, the potential for even earlier versions — possible later revisions, even! And you’d be proven correct in presenting that hypothesis: There exist no less than eleven different versions of CrazyBus for the Genesis (numbered “0.1” through “2.0”), as Tom worked to refine his vision for the game and present his progress to the community. And while we’re not gonna get into the differences between every version here (that’s for the actual review portion of the article), what should be noted is that the DevSter Forums didn’t really have all that much to say about Tom’s continued work on the project: Outside of just a couple folk replying to the original “CrazyBus” thread announcing the project [and presenting the “0.3” version for download], none of Tom’s other updates ever actually got much traction on the forums.
I can speculate as to some of the reasons why CrazyBus went largely ignored on the DevSter Forums, in spite of the fact that Tom held such a prominent role in the community: For starters, none of the updates to the project were all that substantive, to where even the final “2.0” release issued years later is only a minor iteration on the first version. This plays into the fact that CrazyBus was never intended to be a particularly impressive demo, as all it was ever really meant to prove was that Tom could move a sprite across the screen using BASIC. (At one point, he had planned to incorporate an “RPG engine” into the game, but these more elaborate features would never materialize.) And then there’s the fact that the Venezuelan bus system isn’t exactly a subject with “broad appeal”: As far as I can tell, Tom was the only regular poster on the boards who called Venezuela home (though there were a handful of Brazilians in the mix), and also probably the only user who seemed as equally enamored with the public transportation system as they were with Sega homebrew. Tom’s fixation with buses seems to be similar to the way some folk take on an obsessive interest in trains, where he could probably list off the specifications of any given passenger vehicle in the country off the top of his head. Now, I’m certainly not here to make fun of Tom’s hyperfocus (I’m the gal who writes forty-thousand word treatises on middling video games, for chrissakes); but I think it’s fair to say that it’s not a passion that too many other folk on the forums shared in, and that CrazyBus’ target demographic was fairly narrow as a whole. Of course, none of that would stop Tom from committing to realizing his vision as best he could, or keep him from refining his ROM until he was apparently satisfied with it.
The process of development for CrazyBus would’ve began on August 14th of 2004 (three days prior to his first thread / release), and actively persist for a period of at least three months; at which point Tom stopped bothering with creating new threads about it on the DevSter Forums, and likely moved on to other projects. He’d still open up BasiEgaXorz to occasionally tweak or add something to the game, but he probably felt as though nobody was particularly interested in hearing about those minor updates. And so, the “final” release (1.1) would’ve quietly launched on October 29th, 2005 — largely unnoticed by most folk, save for those might’ve been checking in on Tom’s Eidolon’s Inn page. (Or possibly keeping a tab on his personal website at the time, if they were so enamored by his work.) That’s where CrazyBus would’ve laid dormant for roughly five years time, until the Internet at large finally discovered the ROM and took to producing content around it. I mean, the title of the demo certainly grabs your attention, doesn’t it? It makes it sound like it might somehow be a Crazy Taxi-style game for the Genesis, and begs the question of just how nuts these buses are gonna be. It was really only a matter of time until folk eventually took notice of this odd ROM appearing in their libraries, before promptly being subjected to the auditory payload it was packing. But of course, there’s more to CrazyBus than just its discordant title screen music — more that Tom had hoped to accomplish with the demo than just blowing out a player’s eardrums. And so, it falls on us to check under the proverbial hood, and to determine for ourselves just how wild this ride truly is. (Speaking of which, this “dictating an article while driving” idea is working out great so far!)
Before I’m accused of wearing rose-tinted glasses here when it comes to looking back on the old Internet: Yes, there were absolutely downsides to the early days of “Web 2.0,” too. For one thing, you occasionally had to put up with incredibly aggravating individuals, who were bulletproof for the fact they were either personal friends with the webmasters or held expertise that no one else had. And then there were communities that knowledge-checked you before you were allowed into the fold — where the elitism was off the charts, and those simply “looking to learn” were shunned. The big issue is that there were sometimes no alternatives to these spaces, and so you had to just grin and bear it as you subjected yourself to some of the most toxic users who’ve ever existed. It was either that, or deny yourself access to what could possibly be the only space on the Internet where other folk shared in your niche hobby. Say what you will about the social media age, but hot damn if it doesn’t feel great to mute a pretentious asshole, and immediately find a dozen other folk way more knowledgeable and personable than said asshole could ever hope to be.
I’m taking a bit of a “creative liberty” here with how I’m presenting this part of the story: In truth, Tom actually hosted the earlier versions of CrazyBus on his own personal server / website, and would link to those files directly in his DevSter Forums posts. But those download links were only intended to service a community of roughly a dozen other members, and it’s likely that Tom’s hosting wouldn’t have held up against a larger number of users attempting to download the files all at once. In this sense, it’s fair to say that most folk who got hold of CrazyBus (prior to the proliferation of ROM fullsets) would have grabbed it from the likes of Eidolon’s Inn, rather than clicking through to Tom’s own site.
“New Day, New Version… Now Featuring Two Buses!”
We’re gonna approach this “review” section a little differently from our usual sort of subject matter, since there are no less than eleven different versions of CrazyBus to cover here. Of course, none of them are actually too wildly different from one another, as we mentioned earlier: The major changes come in the form of new buses and backgrounds being added over time, while minor changes amount to underlying code optimizations that are nearly impossible to discern [without analyzing the BASIC program itself]. Even with those facts in mind, we’re still gonna look briefly at all eleven iterations, and chart the detectable improvements made throughout. In doing so, we hope to illustrate how such a seemingly simple demo can still require a ton of work to assemble — to acknowledge and applaud the effort that Tom Maneiro put into refining his ROM. As far as I can tell, this is something that no one who has previously covered CrazyBus has ever bothered to do before. Hell, most folk who play the game don’t even make it past the title screen into the actual gameplay! But since that screen is one of the first things we invariably see when we launch the game, I suppose it does make for the most natural starting point here.
From its very first version (labeled ‘0.1’), CrazyBus already has its iconic soundtrack in place: A discordant mess of seemingly random notes played across all three of the system’s SN76489 chip’s sound channels. (CrazyBus doesn’t utilize the more complex YM2612 chip available on the Genesis.) For years, it’s been speculated that the music here is generated on-the-fly every time you boot up the game — the product of an algorithm going awry, and producing an endless playlist of unique cacophonies. Others still have posited that it’s the result of an “error in porting the game from a console in a very lazy way, scrambling the code of the music itself.” But both of these theories are demonstrably false: You can record samples of the music across multiple boot-ups [of the same version of the game], compare their waveforms to one another, and find that it’s consistent in its composition every time; thereby ruling out the random generation. (Any minor discrepancies you might find will come down to inconsistencies in emulation timing / computer sound recording.) As for the idea that CrazyBus’ soundtrack is the result of some bad dump / janky port of an existing cartridge (à la Billiard 2008); we’ve already explained at length how this whole program was built from scratch by a homebrew developer, so we can go ahead and toss out that fool notion as well. The actual explanation here is that Tom isn’t actually a composer (who’d’ve thunk it?), and didn’t feel like trying to write his own original music for CrazyBus. But at the same time, he still wanted to experiment with the ability to produce sounds with code — to demonstrate the ability to implement music within a program written in BasiEgaXorz. And so, Tom simply chose to write a random number generator to spit out strings of digits, which the SN76489 chooses to interpret as “notes,” thereby translating them into something vaguely approximating music.
“But wait,” I hear you shouting at your screen! “Didn’t you just say that the game doesn’t use random generation — that the program just produces the same song every time?” Well, as it turns out, I was dealing in a sort of half-truth there: The game does attempt to generate random numbers on start-up in order to produce its music — the key word there being “attempt.” See, there’s a problem with the implementation here, since BASIC relies on some rather archaic means for generating random numbers; which requires it to pull an existing numerical value from a position in code, acting as a sort of “seed” for further digits. (Actually, most computer randomization algorithms you’ll find today still operate on this same principle, referred to as “pseudo-random numbers.”) The issue is that if you start up CrazyBus and let it get to the title screen without giving it any inputs, it’ll just generate the same “random” numbers every time. In this sense, each version of CrazyBus does have something like its own “canonical” title screen track — a consistent string of numbers it’ll generate if left to its own devices, producing a permutation of song unique to each version of the game. To actually get the program to start spitting out divergent notes, you’ll have to mash buttons before / during the song’s playback, in order to feed it data that it can use to generate different numbers. But I suppose that debating whether or not CrazyBus’ music is “truly random” or not is sort of missing the point: That point being that the music wasn’t deliberately written / composed by human beings, and instead relies on a sound chip’s interpretation of arbitrary numbers.
No matter how you slice it, the end result is still a mess of noises with no discernable motivation or structure, which our ears are typically trained to determine as being decidedly unpleasant. But the magic here is in the fact that CrazyBus does rely on some consistent patterns and parameters (as far as tempo and range of pitch are concerned), which can inadvertently result in measures of “music-adjacent” sounds — brief moments where it feels like there’s something trying to express itself through the noise. As such, you might find yourself sitting on the title screen and listening to the cacophony for an extended length of time, picking up on little bits and pieces that almost seem to make a sort of sense? It’s a curious little phenomenon of the human brain, in our tendency to try and find patterns where they don’t actually exist. And therein lies the beauty of CrazyBus: The fact is that Tom Maneiro could’ve just as easily had his program generate shrill sine waves in order to test audio output, or lifted music from some pre-existing commercial game in place of his number generator. Hell, he could’ve decided not to bother with sound at all, and left players to sit in total silence. But because Tom ultimately made the design choice that he did, CrazyBus has since become a thing of gaming legend — gone on to carve out a place for itself in history, owing almost entirely to its confounding soundtrack. It’s unlikely that we’d be here talking about the demo today if not for the fact of its having such strangely compelling music.
There is one more note that bears mentioning on the subject of CrazyBus’ pseudo-random soundtrack: The fact that the code for it is lifted directly from one of DevSter’s own demos. Meet Chicken for the Sega CD (alternatively titled ‘Chicken Go Weeeee!’), released on March 3rd, 2004. As one of DevSter’s bare-bones demos, there isn’t much to it in terms of gameplay: You move a chicken around a screen, climb ladders, and avoid enemies that you have no means of defeating. Collide with one of the baddies, and you’ll get locked in place with the text “YOU DIED!” printed to the corner of the screen, effectively ending the game. There are static HUD elements indicating what level you’re meant to be playing on, a stamina meter, and a number of zero “Shells” at your disposal; which may well have been features DevSter intended to add in future revisions, but ultimately never materialized. Of course, we’re not really here to talk about the lack of gameplay on display: We’re here for the title screen (which is filled out with dummy options for a “2 Players” mode, “Password” entry, and a “Level Editor”), and to listen to its oddly familiar soundtrack. I don’t think DevSter ever made the source code for this demo publicly available; but I can practically guarantee that if you were to open it up in BasiEgaXorz, you’d find that the implementation for the generated music here would be identical to the code that Tom uses in CrazyBus. And to be clear, I’m not accusing Tom of “stealing” this code without DevSter’s knowledge or consent: The whole point of DevSter’s demos were to give fellow homebrew devs ideas for what they could do in their own programs, and teach them how to code in BASIC for themselves. Plus, Tom was only going and posting his game directly to DevSter’s own forum, where he’d have surely been among the first to see it. (Years later, DevSter would even state that “Only me and tomman know exactly how that soundtrack is generated,” indicating his knowledge of the implementation.)
With all that audio talk out of the way, we can get to judging CrazyBus’ title screen from a visual standpoint. And in version 0.1, it’s just about as sparse an affair as can be: White and yellow text against a light blue background, with a crude graphic of a bus housing the game’s color-cycling title. The text on the screen is written in Spanish, with instructions provided as to your available inputs: “Usa < y > para mover bus. Usa A para sonar corneta. Presiona START!” You probably don’t need a Spanish-to-English dictionary to work out what it says here: You can use left and right on the D-Pad to move the bus left and right, hold down the ‘A’ button to honk the horn, and press ‘Start’ to actually start up the game. But before you do, you may want to take note of the “legal” copy at the bottom of the screen; wherein Tom provides his email address (long-since rendered defunct), proudly proclaims the game’s Venezuelan origins, and identifies precisely what model of bus we’re about to drive: A model of ‘Century’ manufactured by Spain’s Irizar Group, which at one point represented the most common line of coach bus seen in Spain — the second-most popular in all of Europe.
They must’ve been fairly ubiquitous in South America as well for Tom to pick it as the “hero” of CrazyBus — the first vehicle he attempted to render in sprite format, and which would go on to appear as the default selection in every version of the game to follow. I’d have to assume that the Century represents Tom’s personal favorite model of bus, or at least one that he has some sort of sentimental attachment to? (Personally, I’m partial to the NOVABUS ‘Low Floor Series.’)Pressing start on the title screen will briefly flash a kernel prompt, where the game can be seen loading in its sprites and initializing its color palette. This is usually done “behind the scenes” in commercial titles (typically behind a bespoke loading screen), rather than presented as printed lines of code for all players to see. But hey, we’re talking about a homebrew program written in BASIC here, so we can’t really be too critical about little things like this. And with that bit of loading out of the way, we are finally presented with CrazyBus’ gameplay screen: Another blue void for a background, with a large red rectangle occupying the center and a horizontal white line on top of it. Inside the rectangle is a numerical tracker indicating your “Posicion X actual” — a measure of the virtual distance your bus will have traveled. Near the top of the screen are two rows of static text printed as follows: “CrazyBus: 27 sprites (bus)+2 (cauchos). X medido desde caucho trasero.” What this indicates is the number of sprites currently being held in the system’s memory (totaling twenty-seven tiles), the fact that your bus has two visible tires (“cauchos”), and that the X position is calculated based on the coordinates of the rear tire. Again, most other games wouldn’t bother to tell you how many sprites are on the screen, or spell out the plainly visible fact that you can only see two tires at a time on your vehicle [owing to the side-view perspective]. As a matter of fact, it’s not as if any of this information would even prove particularly valuable for Tom himself to want to see, since the sprite value remains at twenty-seven the entire time you’re in-game — not updating to reflect what is or isn’t on-screen at any given moment. Perhaps the ability for the program to hold twenty-seven sprites simultaneously in memory was some point of pride for Tom — a technical feat in and of itself?
The funny thing is, you don’t get to even see your bus sprite on-screen at first — not until you drive it there from the out-of-bounds position it spawns in. So, hold either left or right, and watch it roll on in: Either direction will work, though pressing left will immediately set the X position tracker to its maximum theoretical value of 65,535 – the largest number that can be tracked using an 16-bit integer – and start decreasing from there as you continue driving in reverse. (Actually, the game starts tracking from a positional value of 65,385 regardless of which direction you start traveling in, and only rolls back over to 0 if you drive to the right.) And when you finally see your bus, you’ll find that it has a randomly-assigned color scheme — selected from a small handful of potential palette options, based on the timing of when you start the game. I’m not sure how “authentic” some of these paint jobs are (something tells me the number of green and orange buses on the roads are probably kept at a minimum), but their purpose here is clearly just to demonstrate that Tom could swap out the colors using BASIC. Which brings us to the level of detail that went into drawing the bus itself: It’s serviceable enough, I suppose? I mean, you’ll certainly have no trouble discerning that it’s a bus, and that it has compartments for carrying luggage. But don’t expect much in the way of shading or elaborate animations here: It’s all very flat, and completely static aside from two frames of animation on the tires. Later versions of CrazyBus would feature more elaborate (but still static) bus designs, but the Century sprite seen here would remain in place for the next two revisions to follow.
So, how about that gameplay? Well, as mentioned earlier, you can move the bus left and right across the screen. There’s no acceleration or momentum to speak of (let alone gear-shifting), so there’s only one speed you can travel at, and letting go of the D-Pad will result in an immediate stop. The bus also doesn’t turn to face when you’re driving leftward, so you can consider movement in that direction to be driving in reverse. Steering the bus off-screen will see it wrap back around to the other side, so at least you can’t drive it so far out that you can no longer recover it. All the while, you’ll be treated to accompanying sound effects for the bus; representing either the dull hum of the engine in idle, or the roar of it revved up while in motion. Oh, did I mention yet that you can also honk the horn? It makes a really shrill sound that you’re not gonna want to listen to for very long (if at all), so it’s probably best to just leave the A button untouched. At one point, Tom attempted to ask on the DevSter if anyone could “suggest [him] a code for simulate a bus horn”; but the recommended implementation was apparently too difficult for him to manage at that time (it would’ve required actually leveraging the YM2612), and so the sound effect we have here in Version 0.1 is the one we’re stuck with for the foreseeable future. As an added bonus: If you hold down the horn and try to move the bus from an idle position, it won’t budge. Clearly, there’s some sort of issue here in the code with tracking simultaneous inputs, even though you can hold down the horn while the bus is already in motion without issue. This apparent bug won’t be fixed for some time, either.
… Aaand that’s pretty much it as far as gameplay is concerned. If you were expecting to find actual “objectives” and “mechanics” here, you’ve come to the wrong demo. But even bearing the fact in mind that CrazyBus was just intended to test some of the most basic functions of BASIC, it’s somehow still surprising just how little there is to do within it: There’s no real sense of progression or distance traveled owing to a lack of scenery sprites passing by, and not so much as crudely-rendered passengers to pick up and collect fare from. At the very least, you’d expect to be able to open and close the doors on the bus and pretend to be fulfilling some sort of role as a salaried driver here. But unlike other aspects of the program that would be iterated on, these elements remain entirely untouched over the course of the versions to follow. I don’t wanna claim that adding actual gameplay hooks was “too complicated” for Tom to figure out, or that BasiEgaXorz was incapable of facilitating them: I’d be more willing to wager that Tom simply didn’t have such grand ambitions for this demonstration in the first place, and was saving his effort for some other planned game down the line. And yet, he would still keep on updating CrazyBus over the course of a full year — almost as if he somehow knew it would be the game he would best be remembered for. Either that, or Tom felt like he at least needed to get CrazyBus up to “1.0” status after starting from 0.1, or risk having it hang over his head as an “unfinished project.”
In any case, Version 0.2 would be issued within just a day or two of 0.1 having been finalized. And with it comes a small, singular update to the program: On-screen values indicating your current inputs, letting players know which of the three buttons used in the game are currently being held down. A reading of “0” underneath the on-screen icons means no input is currently being received, while a reading of “1” means that it’s currently active. This is a handy feature if only for the fact that it proves my previous theory, that the game is unable to keep track of changes to the state of the directional inputs while the horn / A button is being held down. If I had to guess, Tom implemented these meters in an attempt to troubleshoot the known issue — using the on-screen readings as a sort of debugging tool as he worked on solving the problem? The only other change in this new version comes with the fact that the title screen music is slightly changed, as alterations to the underlying code mean that the random number generator now starts with a different value being set. But that’s probably less of a conscious “update” on Tom’s part, and possibly even something he wouldn’t have even noticed for himself. And with that, we’ve already covered every difference between versions 0.1 and 0.2. It certainly ain’t much, but it at least goes to show that Tom was putting in the work to quickly iterate on this project.
Version 0.3, then, represents another relatively minor update — issued the very next day after Tom had put the stamp on 0.2: The title screen now features a digitized photo of a bus in the background, making it feel a little less empty. The model in question is a Marcopolo ‘Paradiso 1550 LD,’ sporting a white and blue paint job. Marcopolo represents one of South America’s own homegrown vehicle manufacturers, to where their featuring on the title screen here may be a matter of “national pride” on Tom’s part. It also represents a sign of things to come for CrazyBus, as Tom would continue to digitize photographs of buses into the game to act as decorations: As quickly as Tom had cracked the code on importing bitmap graphic files [and reducing their colors to keep in line with the system’s limitations], he would just as quickly begin to implement them into the ROM, and showcase these buses in all their photorealistic glory. And with this addition having been made (as well as some yellow lines added underneath the white rectangle representing the road), Version 0.3 would represent the first public release for CrazyBus, posted to the DevSter Forums on August 17th, 2004. It’s also from this point forward that Tom would begin to maintain a running changelog for the game, contained within a “history.txt” file included with each update’s accompanying source code releases. (Tom would also post the individual changes made to each new version in the contents of his further forum threads.) This’ll help us in keeping track of what and when updates were being added to the game, beyond what’s immediately observable in simply loading up the ROM.
This brings us to Version 0.4 (dated August 19th, 2004), which is a fair bit more substantive than CrazyBus’ previous updates. For starters, the game now features a series of splash screens before the title; including a customized version of the Sega logo / start-up animation, credits attributing development of the game to ‘Tom Scripts Ltda.’ (as well as a faux publisher credit given to ‘DevSter Specialties’), company logos representing the bus manufacturers whose vehicles appear in the game (at this point comprised of IRIZAR Group, Busscar Ônibus, and Marcopolo), and a copyright page which additionally indicates the current program version number and date of release, as well as a disclaimer that “THIS CODE IS NOT LICENSED AND/OR AFFILIATED WITH ANY OF THESE COMPANIES.” On the one hand, all this pomp and circumstance appearing before the most simplistic video game ever devised is kinda funny — like an amateur YouTuber paying someone to design a fancy 4K resolution, 3D-animated intro for their channel, before launching into a 240p recording of poorly-commentated Minecraft gameplay. On the other hand, not many other homebrew developers at the time were bothering with this level of presentation in their demos, and what Tom is doing here is kind of innovative in a sense? It goes to show that just because your game isn’t particularly complex, you don’t have to eschew treating it with some degree of seriousness.
There are another couple of visual changes here, which you’ll find after pressing start to enter into the actual game: The debug line indicating the sprite and tire count is gone, because it was completely useless. The background now features another digitized photo of a bus — a Busscar Ônibus ‘Vissta Buss LO,’ sporting a red paint job that blends right in with the red rectangle on-screen to where you can’t tell the two apart. The white rectangle representing the road is now a proper asphalt gray, where the yellow lines beneath it have been replaced with yellow Xs instead. But I’ve saved the biggest change here for last: The sprite for the controllable IRIZAR Century has been completely revamped, sporting a much higher level of detail! As Tom describes it in the version history, this is the result of swapping it out “from a personal draw, to another downloaded.” While this makes it sound like there was some other Venezuelan bus enthusiast out there producing sprites who Tom started “borrowing” from at this point, that’s not actually the case: What Tom meant to say here is that he found a 2D blueprint for a model of IRIZAR ‘New Century 12.35,’ and digitized it into a bitmap file himself for the purposes of importing it into the game. (You can find the exact source image available for sale at Model-Copy.info.) While one of the results of this process is noticeable artifacting around the edges of the bus graphic in-game, it is most certainly an improvement over Tom’s previous “personal draw,” and would seem to indicate that he was gonna start relying on these reference-quality renders from here on out. However, this wouldn’t quite wind up being the case.
Version 0.5 (August 20th, 2004) marks one of the most major iterations in CrazyBus’ design, in that it’s the first release to allow you to choose which bus you want to drive. Allow me to reintroduce you to the Busscar Vissta Buss: Last seen adorning the background as a digitized photo, now available as its own drivable vehicle. In order to select between your two options, Tom has implemented a rather bare-bones “Selecciona un autobus” screen prior to the gameplay screen, where you press either A or B on the controller to choose your bus. (You still can’t choose what paint job they’ll have when you get in-game, as it’s all up to randomization / frame timing.) You’ll also notice that this screen provides preview images of the buses in question, where it’s clear that the Vissta Buss is another one of Tom’s “personal draws” — comparatively lacking in detail compared to the new and improved Century sprite. But other than aesthetics, don’t expect any differences between the two vehicles: They both drive at the same speed and share the same sound effects, rendering them functionally identical. Perhaps Tom’s vision for an “Venezuelan bus racing/RPG ‘experiment’” (as indicated in the header of the ROM) meant that these buses were originally going to have different stats that played some sort of role in races or whatever else. But alas, it wasn’t meant to be.
With Version 0.5 adding a new dimension to CrazyBus, the 0.6 release (August 22nd, 2004) sought to expand and improve on what’s present. The first thing you might notice is the game’s new logo graphic, featuring the title embedded in a picture of a bus with what are supposed to be “speed lines” coming out from its left side. Unfortunately, Tom’s work in digitizing this image isn’t quite up to par with his work rendering the Century model, as the effect is totally lost in the compression here. (Probably something to do with Tom’s using a brush tool to draw the lines in the original image, with anti-aliased / semi-transparent edges.) Still, it’s an improvement over the previous logo for the fact that it’s larger, and that its red color stands out better from the blue bus occupying the background on the title screen. You shouldn’t overlook these sorts of things when designing branding for your game. Moving along, you’ll find that a new bus has been added to the selection screen: A generic model of school bus (labeled as an ‘Autobus Escobar’), representing a decidedly amateur drawing effort by Tom — the most crude of the lot by far. This sprite is so rough, it honestly rates as distracting. And I know that CrazyBus isn’t meant to be taken seriously, and that Tom at this point probably realized this too, and so it’s totally fine for him to toss this sprite in as a goof. But there’s still just something about this stupid school bus that feels at odds with the rest of the game. It’s like, you’re experiencing what you think might be an earnest piece of outsider art, where you feel like the creator’s vision is as abstract as it is genuine; only to find some obvious wink-nod that the whole thing is a joke, and you feel like you’ve been deceived in some way. (I’m probably reading way too much into this underwhelming piece of sprite art, aren’t I?)
The rest of Version 0.6’s changes also deal in the process of bus selection, beginning with the addition of a new piece of background music: Another “randomly-generated” ditty, with different pitch ranges in place that makes it distinct from anything the title screen could potentially generate. Its output is decidedly more low-key than the bombastic title track, which is probably why it hasn’t caught on in the same way as its counterpart. (A fun fact that isn’t documented is that you can hold down any one of the directional inputs to get the game to “hang” on a single, sustained note.) The other big update here is the addition of a new transition screen between selecting the bus and being able to drive it; where the game cuts to another digitized photo, and provides a three-second countdown before taking you to the gameplay screen. I thought the bus seen on this intermediate screen might be the same model seen on the title screen and in the background of gameplay — the Paradiso 1550 LD? But according to its filename in the provided source code, it’s labeled as “03fotintercent01g,” which would lead me to believe it’s actually just another model of Century — possibly a model of ‘InterCentury’ produced by the Scania company operating out of Sweden [under manufacturing agreement with Irizar]. It’s at this point that I realize that my ability to tell any two buses apart from one another at a glance is still sorely lacking, and that I am spending entirely too much time trying to identify these vehicles from 16-color / 320×224 pixel digitized images.
Version 0.7’s (August 24th, 2004) upgrades occur largely behind the scenes; as Tom claims to have performed a “Major code cleanup,” including an improvement to the tile-loading process which should result in “graphics [loading] faster than ever.” I may be going in pretty deep on CrazyBus here, but I’m not quite deep enough to actually bother counting frames here to compare the millisecond difference in load times between revisions. As far as discernible, measurable differences are concerned: The red rectangle on the gameplay screen is semi-transparent now (owing to a dithering effect), and there’s a tweak to the sound of the bus’ engine while idle. So, nothing particularly substantive, as even Tom would admit in his DevSter Forums update: “Again, i did it, a updated version of CrazyBus. ‘Updated’, and not ‘new’, since this does not add nothing, and this was mainly a bugfix release.” Now, if I were in Tom’s shoes back in the day trying to gain some sort of traction / maintain interest in my ongoing development, I’d have probably skipped posting minor updates like this entirely; saving these notes for the included changelog text file, and reserving new threads for the purpose of more major changes. Either that, or I’d have simply consolidated all my development to a single thread, rather than spreading them out across a series of disconnected topics that were less likely to drive engagement. I have to imagine that other users were probably starting to get sick at this point of seeing these new threads popping up every couple of days, and that Tom’s behavior was only tolerated because he was a pillar of the community. (That, and DevSter barely moderated his own forums at this point.)
Version 0.8 (November 11th, 2004) is significant, then, for the fact that its release marked the last time that Tom would bother to announce a version update to CrazyBus to the DevSter Forums. Beyond that bit of trivia, the changes to the ROM itself appear relatively minor: There’s a second copyright screen added which provides an English translation of the original Spanish-language copy, a new background graphic for the title screen (displaying a full-frame digitized photo of a Marcopolo ‘Paradiso 1800DD’), and minor changes to the in-game Vissta Buss sprite. The only other changes noted in the changelog are “some source cleanup and such things,” and some graphical cleanup around the tires on the bus selection screen, where Tom’s graphic editor of choice (ImaGenesis) had apparently been adding some garbage data to the images. But what I reckon is really the most notable thing about this whole update is the fact that it took over two months to implement, as Tom’s work on CrazyBus is finally appearing to slow down around this point. Whether that’s owed to personal discouragement on account of the lack of user engagement, or due to running out of ideas on what he could potentially add / improve at this point; it seems as though Tom was getting ready to move on from CrazyBus, and start working on some bigger and better projects.
In particular: Tom would spend the rest of 2004 working on a Christmas-themed demo, which would ultimately release belatedly on January 7th, 2005. What’s really curious about this demo is the fact that Tom solicited programming advice for it on the DevSter Forums on how to implement a scrolling line of text, which he’d use to provide shout-outs to a number of online Sega communities and homebrew developers… while completely neglecting to mention DevSter or his associated forum. In fact, Tom goes out of his way to mention a different Sega homebrew / emulation forum, fittingly branded as the ‘Sega Emulation Forums.’ (It appears that Tom would also post updates to this board on the development of CrazyBus, though the Wayback Machine doesn’t provide archives for these threads.) So, what gives? Is it possible that Tom felt slighted by the lack of attention his game was receiving at this point on the DevSter Forums, in spite of his being one of BasiEgaXorz’ biggest champions? We can only sit and speculate as to that. What we can speak to is the fact that CrazyBus’ next update would take nearly a full year to materialize, and skip over “0.9” in order to move directly into Version 1.0; which was released on September 9th, 2005. This is “the big one,” folks, so strap in for some legitimately major changes.
First things first: I’ve yet to note that CrazyBus’ ROM was developed with NTSC console compatibility in mind, rather than PAL configurations. (This is why I haven’t used the regional ‘Mega Drive’ branding interchangeably with the Genesis branding to this point.) This is due to the fact that DevSter hadn’t gotten around to implementing any measure of PAL-compliant compatibility layers in BasiEgaXorz, since most folk using it to program their own BASIC games were probably just gonna run them in emulators anyway, which typically default to an NTSC setting. This isn’t to say that you couldn’t theoretically run CrazyBus on a PAL system, or set your emulator to act in PAL mode: It’d just mean that the music sounds even more chopped and screwed[♫] than usual, and that the game’s framerate is liable to fluctuate from its intended speed. Bearing all this in mind, Version 1.0 of CrazyBus runs a check to see if you’re running the game in PAL mode, and delivers a warning (set against a stark red screen) if that happens to be the case: “CrazyBus is NOT optimized for run on PAL MegaDrive systems. It could run slower or with glitches and/or image could look distorted. A NTSC Genesis or MegaDrive is strongly recommended to run this game.” With all that being said, you can still “Hit START to continue” as per usual, and experience said glitches for yourself should you so please. (In a later release, Tom would actually encourage players to try the game out in PAL mode — dare them to “Run it on a PAL console for extra fun!”)
Next on the list is a new page added to the procession of splash screens, crediting ‘SoloBuses.com’ — an online resource for photographs of Venezuelan buses, which Tom borrowed quite liberally from in filling out the game’s presentation. This feels like a site practically tailor-made for Tom, though it seems to have been unfortunately short-lived and rife with weird drama? (At some point, the site’s owner had to post a message condemning folk for “leaving offensive messages against some business owners, buses or co-workers,” and locked the image galleries behind user registration.) You’ll be able to tell which digitized images come from here owing to watermarks crediting a “Joseba Mendoza,” who was the original photographer / webmaster. Of course, the digitization process to the Genesis format means that these images are all rendered in 16 colors, since Tom didn’t go through the trouble of breaking them down into segmented tiles with their own individual palettes. (I have no idea how “expensive” this would be in terms of taxing the hardware, versus Tom’s chosen implementation.) Still, I suppose they’re [debatably] better than just having solid colors for backgrounds in the instances where they’re made to appear? And they’re not just used for backgrounds, either (though there is a new title screen graphic, for those keeping track): There’s also an all-new selection screen for the buses, featuring photos of your choices rather than just previewing the in-game sprite. The whole thing is actually pretty damn slick; with a tiled background, corresponding company logos in the top-right corner, breakdowns of each bus’ technical specifications (including passenger capacities and which chassis they’re built on top of), brief personalized descriptions written by Tom. It all goes a long way in making it feel like you’re playing a proper racing game, even if these distinctions between your choices are still just superficial: There’s still no tangible gameplay differences between any two vehicles.
Still on the subject of bus selection, we finally have our completed roster of five drivable vehicles; with the addition of the ENCAVA ‘ENT-6000,’ plus the Marcopolo ‘Paradiso GV1150.’ On top of that, there’s a change-up made to the Vissta Buss, which Tom had finally decided the model for which was too “crappy” to keep around: In its place is a new model of Busscar ‘Jum Buss 360,’ which… quite frankly, I couldn’t tell you the difference between the two, even looking at them side-by-side. (To my credit, even Tom admits that “both looks almost the same thing.”) Honestly, I’m surprised to see the Vissta Buss get the axe here ahead of the school bus, which decidedly had the crappier sprite of the two. In any case, the sprites for the two (or technically three) new buses are both fine — on par with Tom’s previous work in personal draws; though the IRIZAR InterCentury 390 still stands as the best-looking bus in the game, by far. Of course, you won’t be able to judge for yourself until you actually get into the game, which first requires waiting on the countdown screen for three seconds’ time. It’s here where Tom sees fit to implement another randomized element, as the game draws from the pool of digitized photos in order to populate the background here. This is all great stuff for tying together the presentation, which I honestly believe is Tom’s biggest strength when it comes to game design: He may not be the best sprite artist, but he clearly knows how to maximize his assets, and make it feel like you’re about to start up a proper simulation game.
Of course, the actual gameplay is still what it has been since Version 1.0. Which is to say, it still ain’t much: The only update to the gameplay screen here is the ability to go back to the main menu by pressing the C button, which you might be surprised to realize hasn’t been a feature up until now! If you wanted to change up your bus in previous versions, you’d have to manually press the ‘Reset’ button on your console – or more likely, press the equivalent function key in your emulator – and sit through all the splash screens again. So, this is really an addition that’s been a long time coming, and which comes greatly appreciated for my purposes. And with that, all the surface-level changes to Version 1.0 have been accounted for: I can’t say that I noticed any “pad issues in the main play field” having been resolved, or effectively test the claim that “Now CB should be 0.5% faster :)” as detailed in the changelog. I’m willing to take Tom’s word for it at this point though, as CrazyBus 1.0 certainly feels like the culmination of over a year’s effort — as good a game as Tom was gonna make, given his narrow scope and the tools at his disposal. But of course, there are still two versions left to cover here, so there are clearly a couple of lingering things about the game that were nagging at its sole developer. With this in mind, Version 1.1 would debut on October 29th, 2005, and serve to fix up some of those last issues Tom had with the game.
Playing it for yourself, you’d be hard-pressed to spot the differences between CrazyBus 1.0 and 1.1. If you’re especially hyper-vigilant, you might be able to spot the addition of a previously-neglected rear-view mirror on the Jum Buss sprite. (I, for one, did not notice this for myself until consulting the changelog.) There are also tweaks made to the playfield drawing (“Now the ‘transparent’ layer appears OK, with no gaps”), fixes remedying “nasty sound bugs on playfield related with horn and bus engine,” and the addition of your bus’ name being displayed on the gameplay screen. The rest of the changes amount to code optimizations and improvements DevSter made to the BasiEgaXorz compiler, resulting in what is apparently a more stable and faster program. In particular, Tom notes that he “Fixed random number generation” by removing “too many RANDOMIZEs that caused repeated numbers instead of ‘pure’ random numbers.” While this might have some impact on the generated music, Tom highlights it for the fact that “This should rotate between the many background images [on the countdown screen] without too many effort.” And with that, Tom’s work on CrazyBus was finally complete: He’d done all he could with his then-current knowledge of programming in BASIC, and the limitations that developing within BasiEgaXorz’ ‘0.26 BETA’ would place on him. The developer could finally rest easy, content in the knowledge that he’d programmed the greatest Venezuelan bus simulator available for Sega’s fifteen year-old hardware.
… But of course, Tom just couldn’t resist revisiting his game after the Internet had gotten a hold of it. And so, “Thanks to the YouTube(tm) community,” Tom would go about “blowing off the dust from the code and the project” in order to deliver CrazyBus ‘Version 2.00r030’ (codenamed “Momohime,” for reasons unknown to me); ending a five-year break from the project, and releasing on March 18th, 2010. This update earns its jump in version number by constituting no less than an “almost total code rewrite,” compiled using BasiEgaXorz 1.37 (“the latest and greatest” version at the time). And the visible changes here begin with the very first thing you see on booting up the ROM, as the Sega logo now drives onto the screen with accompanying bus sound effects, including a new and improved horn sound effect. Next, you’ll find new tiled backgrounds on the revamped copyright screens, which continue to be presented in both English and Spanish. Interestingly, the SoloBuses.com title card has been removed from this version of the game, owing to the fact that the website had long since gone defunct. Consequently, Tom went ahead and removed all those associated photos from the ROM as well, now swapped out for some of his own photographs of various buses. You’ll find these new digitized images used across the game’s title screen, bus selection, countdown screen, and in the background of gameplay; representing a complete and total replacement of those previous assets. (If you wanna see the photos in their full quality, you can open up the source code release in order to see what they looked like prior to the digitization / color reduction process.)
Since we mentioned the title screen, we should probably reflect on it in its finalized form: The background now cycles through the gallery of digitized photos, giving it a dynamic element. (The text at the bottom even updates with each image to reflect what bus you’re currently looking at.) The CrazyBus logo has been cleaned up in order to make the speed lines a bit more legible, though there’s still anti-aliasing artifacts present. But of course, y’all are probably more interested in hearing about the music, and seeing if that’s been changed up at all? Nah: Tom was more than happy to lean into its chaotic arrangement at this point, and to play it up as being “evil.” Curiously, the changelog includes the note that the soundtrack “now (slighty) [sic] customizable,” and that players can “Bring your own entropy by mashing buttons randomly!” But if you’ll recall, this was already a feature present in the game since Version 0.1? I’m guessing that Tom was simply trying to raise awareness of this aspect, and hoping it’d encourage more YouTubers to further propagate CrazyBus. (Can’t blame Tom for hustling here.) Eventually, you’ll press start to move past that title screen, and into the bus selection screen. Aside from the new bus photos and slight re-arrangement of text elements on the screen, the big change-up here is the addition of smooth scrolling as you cycle through the available buses; which is a flourish I didn’t even notice was missing from the previous revision, but certainly helps to make the presentation of the buses all the more slick. (You still can’t manually select the paint job on your bus, though.) There’s even a slightly revised countdown screen on display, which continues to pull from the pool of randomized photos to populate its background, and now features larger ASCII-art numbering on the timer.
Which finally brings us to the finalized version of CrazyBus’ gameplay. And for what feels like the first time in six years, there are actually some substantive changes to discuss here: For one, the “horn-lock” big has finally been remedied, allowing you to drive your bus out of idle while holding down the horn! The fact that the horn sound effect is much improved / less grating now means that you might actually want to take advantage of this feature. Also added is the sound of a reverse alarm for when you drive the bus backwards, which lends the so-called “simulation” a bit more in the way of authenticity. You’ll also note that the playfield has been moved closer to the bottom of the screen; moving the HUD elements toward the top of the screen, excising the input indicators in the process, and even adding some dithered shrubbery to the road. (The color palette of the road and the flowers is also randomly selected when entering the screen.) It’s unfortunate that the foliage doesn’t change as you wrap the bus around the screen, which might have contributed to an illusion of progression / distance being traveled, but I suppose it’s a nice touch either way. The background is now randomly selected from the assortment of digitized photos as well, but this also fails to update / cycle as you wind up driving past it over and over again, and feels like another missed opportunity on Tom’s part. Lastly, the X position tracker now begins at 0 rather than its initial offset of 65,385, which is another small fix that probably should’ve been implemented way earlier in CrazyBus’ version history.
And with that, we’ve really said all there is to say on the subject of CrazyBus’ gameplay: In its final incarnation, there’s still nothing in the way of variable speed, no ability to pick up and drop off passengers, or any semblance of an objective you’re meant to complete. I don’t think it was beyond Tom’s ability to implement these sorts of mechanics by this point in 2010: He’d certainly come a long way as a programmer in the six years since the project began, and he could’ve probably spent another couple of weeks turning CrazyBus into something more closely resembling an actual video game. (The actual turnaround time on Version 2.00 appears to have taken just ten days, from Tom announcing his intentions to “blow off the dust from the ancient sources, and give some BasiEgaXorz 1.xx love” on March 9th, 2010.) But that wasn’t really the driving purpose behind this final release: Tom wasn’t looking to prove to the world that he’d grown as a programmer, or to transform CrazyBus into something it wasn’t originally intended to be. Clearly, he was just looking to troll the YouTubers who’d been creating content around the demo, by issuing a supposed “major update” out of nowhere and seeing who’d take the bait. I kinda can’t help but admire Tom’s dedication to the bit here, and the fact that his belated update actually serves to improve the program — to provide the best possible version of this incredibly simple premise, even knowing full well how unappreciated his efforts would be. He also could’ve just as easily overplayed his hand by rendering the whole game a middle finger to its critics — filled it with unflattering references to his most notable detractors. But I like to think that he didn’t actually take any of their comments too personally, and that he got a kick out of his unexpected time in the spotlight.
It feels particularly pointless to try and posit “what I’d have done differently” when it comes to a title that was never actually intended for commercial release / public consumption, but I still have a couple of ideas I can’t help but feel compelled to jot down here — concepts I’d have in mind if I set out to undertake a similar experiment in programming. I think the first thing I’d wanna do is incorporate proper gear shifting, as well as adding mechanics around acceleration and momentum: I feel like this should be a sort of bare minimum in developing a driving / racing game, even in one as basic as CrazyBus. I also feel like if you’re gonna center a game around passenger buses in particular, you’ve gotta at least incorporate some little stick figure passengers for you to pick up and drop off at bus stops, to where players have to keep an eye on their passenger capacity to make sure they’re not overcrowding the vehicle. If we were considering implementing some actual gameplay hooks, I’d have it so that each time the bus wraps around the screen, it’d load up a new bit of road with different signposts or traffic considerations; such as speed limits, stop signs, railroad crossings, pedestrian crosswalks, and traffic lights. (We could also move away from the screen-by-screen scrolling implementation, and try to implement some sort of smooth scrolling in its stead.) Lastly – if we were wanting to really live up to the word “Crazy” in the title – I’d have it so that player are rewarding for not obeying all those pesky “rules of the road,” and are instead encouraged to blow through red lights and the like in the pursuit of getting passengers to their destinations as quickly as possible. Tie some sort of risk to doing so in the form of colliding with incoming traffic or crossing pedestrians — maybe have a jump button that you have to press in order to avoid those obstacles? Of course, we’re not exactly developing a “simulation” game any more by this point. But in fairness, I’m not really sure if CrazyBus ever really qualified as such in the first place?
The biggest mystery behind CrazyBus isn’t anything to do with its randomly-generated music or Tom’s apparent obsession with buses: In my eyes, it’s a matter of intention, and what Tom actually hoped to achieve with his demo. For as many questions as I’m hoping to answer with this article, this is still the one riddle that I’m left unable to solve. Did he plan at one point to develop a proper simulation of the Venezuelan public transport system, with all the rules and realism that would entail? Were his comments about making it a “bus racing / RPG experiment” genuine, or just him cracking a joke? Or was Version 1.0 truly representative of everything he had initially set out to accomplish, for as low a bar as he had set for himself in doing so? The guessing as to Tom’s original vision for CrazyBus is what I find to be the most compelling thing about the game, as we’re all collectively left to try solving this puzzle with a number of the pieces still missing. But that’s all a big part of CrazyBus’ appeal, isn’t it? It’s the sensation that comes from discovering a game based on its title, loading it up without knowing what you’re getting yourself into, finding yourself flummoxed by what’s on offer, and not being able to find a consistent explanation for it online. In that sense, our demystifying the game here kinda diminishes from that sense of confoundment and wonderment, doesn’t it? But hey: It’s been roughly nineteen years since the demo first released, and thirteen years that folk have had to scratch their heads with regards to it. It’s probably fine by now for us to clear up at least some of the confusion surrounding it. And besides: We’ve still got the most pressing question of them all left unanswered here, so that folk can go ahead and continue to speculate on it for another twenty years or so.
In giving my final thoughts on CrazyBus, I wanna make something very clear here: I don’t think it’s fair to call Tom a “bad programmer” based on a simple demo, or to accuse him of “creating the crappiest driving game ever” when this whole project was never intended to be shared outside a couple of obscure message boards. The developer isn’t at fault for the fact that CrazyBus ultimately made its way into Genesis ROM sets on the Internet, or for the actions of the unknown individuals who started manufacturing cartridges for it without his approval. At the end of the day, Tom didn’t make CrazyBus for any of us: He made it for himself. As such, he was never under any obligation to “make the best game that he could,” or pressured to entertain paying consumers. All that Tom had wanted to do was mess around with a friend’s BASIC compiler, and see if he could produce a simple game around one of his niche interests. Bearing all this in mind, I don’t think it’s fair to rate CrazyBus on any sort of conventional scoring metric. Hell, I hesitate to even label it as a “bad game,” because it really isn’t even a proper video game: It’s just a tech demo that wound up getting way more exposure than it had any real right to. But seeing as it did in fact find its way out to the world wide web, I think it’s totally fine if you wind up having a laugh at the music and questioning the program’s purpose — if you can’t help but react naturally to it, and wonder how it came to be. But as for folk going out of their way to personally insult Tom for the game, or who performatively decry the ROM as some sort of “crime against gaming?” I’d challenge them to pick up a BASIC compiler and see how far they get with it in just a couple days’ time — to see how they’d feel having one of their first-ever programs scrutinized by the Internet at large. Put some respect on Tom Maneiro’s name, and appreciate CrazyBus for the meticulously-crafted curio that it is.
“People on YouTube Either Are Big Psychos, or Fine Art Lovers.”
We’re gonna pick the story back up from roughly around the time of CrazyBus’ 1.1 release (October 29th, 2005). Again, the thing to bear in mind here is that nobody was really paying attention to it at this point in time: Outside of Tom updating his page on Eidolon’s Inn and alerting whoever might’ve been checking in on his personal website, the launch of this intended “final version” wasn’t announced with anything in the way of celebration or fanfare. You’d hope that Tom wasn’t too discouraged or disappointed by the lack of response to this project he spent over a year tinkering with: I have to imagine that he knew going in that the appeal of CrazyBus was gonna be fairly limited, and that he continued to work on it just because he enjoyed the challenge of it. I wanna believe that Tom was probably personally content knowing that he’d finally gotten CrazyBus past the 1.0 stage, and was eager to move on to bigger [and more potentially popular] projects. And of these later endeavors, there’s one in particular that bears mentioning here: 2006’s PLACAMASTER, which Tom chose to develop as a Windows application. PLACAMASTER is an image generator for Venezuelan license plates, because of course that’s something that Tom would also have a niche interest in. It’s a true labor of love, too; with dozens upon dozens of plate types accounting for every conceivable configuration of state and vehicle, the ability to randomly generate the letters and numbers for it, as well as the option to produce your own vanity plates with whatever message you might want on it — DMV approval be damned. It’s exactly the sort of follow-up to CrazyBus that you should expect by now, save for the fact that it’s a Windows executable instead of a Genesis ROM.
… So, of course Tom went ahead and converted PLACAMASTER to the Sega Genesis in 2008, rechristening it as PLACAMASTER 68K in the process. (Naturally, BasiEgaXorz remained Tom’s tool of choice in programming it.) This 16-bit edition allows for the same range of features as in its Windows counterpart, but with a couple of bells and whistles added to the interface experience: The Sega logo screen has been modified to add an animation of “Jenny” from the animated show My Life as a Teenage Robot, which I have to guess is a cartoon / character that Tom was a fan of. (She also appears on the game’s legal disclaimers, as well as during the license plate generation screen.) The Genesis also necessitates the use of directory-style menus that you interface with by typing in corresponding numbers – using up and down on the D-Pad to scroll through digits – as opposed to the drop-down menus seen in the Windows app. (Similarly, typing in characters for vanity plates relies on this same input process.) And of course, this just wouldn’t be a Tom Maneiro ROM without some baffling background music; where both the title screen and menus get their own unique instrument selection, made to interpret and play back seemingly random numbers being spit out by the program. For what it’s worth, all the visual presentation here is pretty slick, considering the program’s simple functionality: Tom must’ve put a ton of work into realizing this goofy little thing, knowing full well all the while that it would largely go unappreciated / unnoticed by the homebrew community, much like CrazyBus before it. Now, I may be fifteen years late to the party; but I’m still here to say that I, for one, applaud your efforts here, Tom: You clearly poured your heart and soul into producing the best Genesis license plate generator on the market, and by god, you succeeded.
Of course, PLACAMASTER (in either of its incarnations) would never achieve the same level of fame as CrazyBus eventually would; despite its having similar music stylings, as well as an equally “weird” / niche premise. I’d have to attribute that to the Spanish-language title (which roughly translates to ‘Plate Master,’ in case you didn’t guess), which wouldn’t stand out to English-language players browsing their ill-gotten ROM collections. Speaking of which, we should probably explain the concept of a “full set” for those not in the know: Put simply, a full set represents an effort to compile every known release for a given system; between commercial titles (sometimes including all their regional variants), unlicensed releases, available prototypes, and even homebrew efforts. A high-quality collection will attempt to categorize / properly label all these different types of releases, so that users are able to easily delete (or skip downloading altogether) what they don’t want to hold onto. You might occasionally see full sets alternatively referred to as “goodsets” among enthusiasts of a certain age, owing to a ROM auditing utility known as ‘GoodTools’; which folk could use in order to confirm the completion of their collections, as well as validate that they have the best possible dump / rip of a given game. (I believe that GoodTools is also to thank for establishing the standardized suffix labeling system for ROMs; such as “[b]” indicating imperfect dumps, region codes such as “U” for USA and “J” for Japan, and “PD” for Public Domain.) And of course, the GoodTools would go on to inspire folk to assemble ROM collections comprising every known game accounted for in these lists, and offer them up for download as consolidated ZIP archives or torrents.
Of course, I’m mentioning all this for a reason: In the quest to curate as comprehensive collections as was possible, there were preservationists who took it upon themselves to scrape emulation-centric websites for all their contents — to download every single file available on their servers, and determine if they were host to any unique ROMs. Naturally, Eidolon’s Inn would’ve been one such website of interest, for their catalogue of homebrew and public domain games. And so, it was likely at some point around the release of the ‘GoodGen 3.00’ tool (in around 2006) where CrazyBus would’ve been added to the list of known ROM files, and its various versions would’ve been added to full set archives. This didn’t mean that anyone would’ve actually paid it too much mind at the time, since it was just one of thousands of ROMs cataloged for the compilation. But it did mean that CrazyBus had been effectively preserved (including its every version up to 1.1), potentially residing on thousands of hard drives totally unbeknownst to their owners. It was only a matter of time until someone noticed CrazyBus for its curious title, played it for themselves, realized what they were sitting on, and decided to share it with the world. It’s probably impossible to determine who the first person to proselytize the good word of Tom Maneiro’s demo was, but we at least have a rough estimate for the point in time when the ball started rolling: In or around early 2009.
By the dawn of the 2010s, a humble video hosting service by the name of YouTube had begun to blow up in popularity. And with this boon to amateur filmmakers and video producers came a wave of “game review channels,” largely following in the footsteps of the Angry Video Game Nerd before them. The race was on for these content creators to be the first to discover and to cover the worst games imaginable, in order to deliver their performative overreactions to them in the hopes of gaining masses of subscribers for their efforts. Again, it’s difficult to discern who the first person to upload a video showcasing CrazyBus to YouTube might’ve been (owing to factors that we’ll get into shortly): It’s possible that the credit might go to a user by the name of ‘HoZKiNZPooP,’ who uploaded a video entitled “Crazy Bus – The Soundtrack” on May 16th, 2009, and gained around 54,000 views for it by April of 2010. From there, other creators picked up on the potential to pick up in popularity by covering CrazyBus for themselves; leading to early efforts by users the likes of ‘CrashManEXE,’ who commentated on the game as the subject of the 10th episode of their “Trashy Games” series (posted August 9th, 2009). Other early birds to cover the game include ‘Fami Cum’ with their upload titled “CrazyBus.bin” (June 26, 2009), ‘Oppaiman100’s “Crazy Bus […] (Pirated Game) Gameplay” (August 19th, 2009), and a ‘Dr. Gnome’ who would go on to gain over 2.5 million views on their upload of the “Crazy Bus Title Screen” (July 6th, 2010). With videos like this starting to gain views in the tens of thousands, the word would eventually get back to the DevSter Forums from whence CrazyBus was birthed, and its original creator would be made to reckon with this sudden explosion in interest in his now five year-old demo.
Much of the discussion on CrazyBus’ newfound popularity would be consolidated to a thread titled “Crazy Bus = Cult Classic,” started on February 27th, 2010 by the member ‘ScroGer.’ It was only several days later when Tom would first take notice of the thread, and acknowledge that he “never imagined that [his] unfinished bus simulator game would be the fever on all Youtube!” After further noting that “Youtube is SCARY! SCARY SHIT!!!!!!!!ONE1!!!,” Tom would further document his reaction to the revelation that “CrazyBus is featured in at least 10 videos… with no less than 100 comments [on] EACH ONE.” It wasn’t too long after this when Tom would begin work on Version 2.00 of CrazyBus, and turn it around in just around a week’s time (as mentioned earlier during the review section), carrying his own hopes that the YouTubers would discover and appreciate it. Of course, there was only one small flaw in Tom’s plan here: Nobody who was covering CrazyBus had cared enough to trace its origins to the DevSter Forums (or even to Eidolon’s Inn), so nobody really noticed when this final revision was first released. And so, Tom and company had to continue to sit and observe as videos continued to be produced around the now-obsolete 1.1 release… and just as quickly, began to mysteriously disappear from the hosting platform.
The more YouTube changes, the more it stays the same: Just as the case remains in 2023, there were copyright trolls back in 2010 scanning the site for videos they could fraudulently take down [or attempt to steal the ad revenues from]. And so emerged one ‘Tripsoft Inc.’ (unrelated to the Vietnamese studio of the same name later established in 2016), who embarked on a DMCA takedown campaign asserting a non-existent copyright over CrazyBus and associated content. The end result was most of the original videos covering CrazyBus being taken down, and channels getting suspended entirely from the platform as a result of YouTube’s “Community Guidelines” strike system. As the affected YouTubers pointed the blame at the game’s developer for these takedowns – unaware that Tripsoft was a third party acting in bad faith – Tom was left commiserating to the DevSter Forums community that there was nothing he could do in this situation: He couldn’t retaliate against these copyright strikes on behalf of the creators, or assert his ownership in any sort of way that would negate the damage Tripsoft was doing at this stage. And so, he was left to shout into the void, in the vain hope that the individual(s) behind Tripsoft were reading: “Yo, ‘tripsoft inc’, i’m the sole owner of the CrazyBus(tm) ‘trademark’. Go copyright your ass and your mother’s ass!” The situation eventually seemed to resolve itself in time (in around 2013 or ‘14), though many videos were lost before it all got sorted out. Hence, the aforementioned difficulty in figuring out what was actually the first video to cover CrazyBus on YouTube, as it was likely one of the ones lost to the coordinated takedown campaign.
Despite several popular videos covering the game disappearing, CrazyBus had already secured its place in history at this point, on the back of its machine-generated soundtrack. Videos initially serving to highlight the title screen track soon gave way to remixes and parodies, as content creators sought to capitalize on its reputation for having “the worst music ever.” Some number of folk even managed to make it past the title screen and into the actual gameplay, which they found ripe for mocking commentary as they did their best to ape the likes of the AVGN. Of course, most of these review-style videos come across as particularly mean-spirited (not to mention lazily-produced), and are largely pretty boring to watch; which is why I’m choosing not to highlight any of those here. Instead, I’d like to draw your attention to Brazil’s inaugural “CrazyBus Championship”: An effort by the community of the website ’Passagem Secreta’ to organize an endurance tournament around the game, as players competed to travel for the furthest distance within it. (In other words, to see who could hold down right on the D-Pad for the longest time.) The event was recorded for posterity, live music was performed by the band ‘Smash Bros,’ and prizes were even awarded to the winning participant [including issues of a gaming magazine, and a copy of Dark Castle for the Genesis]. It looks like a good time was had by all in attendance, and even Tom Maneiro himself was happy to hear the news of this event, if only for the fact that it had finally confirmed to him that “CrazyBus is REAL HARDWARE COMPLIANT(tm).”
Of course, CrazyBus would inspire more than just YouTube videos and in-person tournaments: It’d also go on to inspire a number of remakes and conversions — fan-made efforts to bring the game to a number of other console platforms. And the first among these would seem to be Ken ‘Sega16’ Horowitz’s port of CrazyBus to the Sega CD, released on July 12th, 2011. From what I can gather, the Sega CD version began as a direct port of Tom’s original code, recompiled for a disc format (using no less than BasiEgaXorz). Eventually though, Sega16 started tinkering with some additional features; including acceleration over time for the bus’ movement, re-digitized photos with high-quality compression / dithering patterns, and proper CD audio to replace the randomly-generated SN76489 music. Naturally, this new soundtrack is packed to the brim with copyrighted music; the likes of Darude’s “Sandstorm,” Michael Jackson’s “Billie Jean,” and two Rick Astley songs (including “Never Gonna Give You Up” and “Together Forever”). It also swaps out the title screen music for a track fittingly entitled “Crazy Bus (What’s This Doing Here?!)”, which had been recorded for the Arthur animated television series (collected as part of the 1998 soundtrack album “The First Almost Real Not Live CD”). All these songs are accessible during gameplay by pressing the B button, and scrolling through a numerical track index [comprising fifteen songs], allowing you to confirm your selection before it begins to play. Honestly though, the real appeal of this conversion to me is the fact that it actually adds vehicle acceleration to the gameplay, which I kind of wish Tom had backported into a new version of the original Genesis ROM. (For the record: Tom did acknowledge this Sega CD conversion, and seemed glad to see that “someone is doing something else than making this a endless Internet meme.”)
Speaking of Sega16: A user on his own site’s forums by the name of ‘djshok’ had been running a thread dedicated to “Repro cover art and general appreciation,” wherein he posted “reproduction cart”-ready print covers and labels for various Genesis / Mega Drive titles. Eventually, djshok got around to producing his own box art for CrazyBus (complete with European and Japanese regional variants), which has since come to be used to represent the title across every games database on the web. This innocuous hobby project did have something of an unintended side effect, however: It actually prompted the unscrupulous ‘GameReproductions.com’ (since defunct) to go ahead and manufacture an unauthorized run of CrazyBus reproduction cartridges, based on the ‘2.00r030’ version of the game [while lifting djshok’s artwork for the cover and label for the packaging]. Needless to say, Tom would report that he was “not getting a single penny from [the sales],” as the party responsible for selling the cartridges had skipped the step of even asking for Tom’s permission to manufacture them. That being said, CrazyBus had always been labeled as a “public domain” release, so there wasn’t really anything in the way of copyright to stop folk from producing and selling these sorts of physical copies. (Of course, copyright doesn’t always stop reproduction cart manufacturers from attempting to market bootlegs of proper commercial titles.) It’s at this point that CrazyBus was well and truly out of Tom’s hands: There was nothing that the game’s original creator could do to control what people did with his program, or to stop folk from profiting off of his work that he had personally never earned so much as a solitary cent from.
These reproduction cartridges would wind up having their own unintended side effect too, as it would turn out: CrazyBus’ availability as a piece of physical media would allow no less than the Angry Video Game Nerd himself to cover the game, as part of his “12 Days of Shitsmas” series in 2014. (You can see James in the video opening up a present containing a copy of the reproduction cartridge in its accompanying case, confirming the circulation of CrazyBus as a functional, physical product.) No longer would viewers have to settle for inferior copycats shouting cuss words into their $20 Logitech microphones on the subject matter, as James Rolfe was now here to provide the genuine article: “It’d be more fun to stare at a wall! I have a whole new appreciation for Desert Bus! Big Rigs is more exciting than this shit! This broke the shit scale! This is a whole new higher level: First there’s poop, then there’s shit, then there’s defecation!” Truly insightful stuff. The Nerd further goes on to speculate as to the game’s target demographic: “I guess there might be somebody out there who might enjoy this game? Somebody who happens to be very interested in Venezuelan buses. Yeah, if there is any game for the Venezuelan bus enthusiast, this is it.” Now, being covered as part of one of the AVGN’s annual Christmas specials means that CrazyBus only got four minutes in the spotlight, as opposed to his then-typical 15~20 minute episode format. But these four minutes were enough to ensure that millions of his viewers would now be exposed to the game, and get to listen to samplings of its infamous soundtrack. As for Tom, he considered having his game covered by the AVGN to be akin to unlocking a “Lifetime Achievement.”
With CrazyBus’ place in gaming infamy now firmly established, you might expect a surge of traffic to the likes of the DevSter Forums and Eidolon’s Inn — for folk to stumble upon these sites in search of answers to the mystery of the game. And maybe Tom would ride that wave of popularity in order to promote some of his newer games, or capitalize on his newfound fame in some other way. But of course, none of that really wound up happening: For one thing, the bulk of the audience who watches the AVGN aren’t really the sort to do their own research on the sort of games covered in his episodes. For most viewers, their knowledge of these so-called “shitty games that suck ass” begin and end with them watching that single video on the subject, before going on to parrot James’ opinions as gospel in place of their own experiences. So, none of them seemed all too interested in discovering CrazyBus’ origins, let alone actually bothering to play the game for themselves. And even if there were a couple of folk mildly interested in trying to document the details of CrazyBus’ development, they’d have run into a bit of a snag in their research by this point: Eidolon’s Inn had already shut down on July 5th of 2014, as its webmaster was no longer interested in maintaining the site. As Eidolon would go on to detail in one of the final posts to the homepage: “Most of you will have noticed that the ‘Inn’ has become only a shadow of itself in the past decade. The once-thriving Sega retro tech/emulation community kindled by the Inn in the late 90’ies and early 00’ies has long moved on.” And so, the site would close on the date of its 17th anniversary, as Eidolon – now operating under the alias ‘Goethe’ – went on to establish ‘Carpe Ludum’ in its place: A sporadically-updated [if not outright defunct] successor, claiming to serve as “a community for ‘gourmet’ gamers who only have very limited time to spare on their hobby and would like to focus this time only on the best games ever produced.”
Things didn’t fare much better for the DevSter Forums at this point, either: DevSter himself came back from a two-year posting hiatus just to comment on CrazyBus appearing in the AVGN episode, before promptly disappearing from his own community again; only appearing once more in the following year to reply to a licensing request for BasiEgaXorz, and vanishing for another five years after that, before reappearing to answer someone’s question about whether or not there were still any active moderators on the forum. (There weren’t.) The DevSter Specialties homepage hasn’t updated since 2010 either, though it’s at least still up and running [along with the forums]. The reason for this lack of updates and activity should probably go without saying: Homebrew game developers have about a million other resources available to them on the Internet now for learning how to program games, and tools far more sophisticated than the likes of BasiEgaXorz with which to construct them. Simply put, there’s no real purpose left for DevSter’s websites to serve, unless he were to completely overhaul them in gearing up for some new project in the works. (DevSter was last seen claiming in 2020 that he was “in the middle of writing an MMORPG game,” though seemingly nothing has yet to come of it.) But something tells me that probably isn’t gonna happen any time soon: The impression that I get is that DevSter has long-since moved on from Sega homebrew development, and that the bulk of his community have moved on as well. Any former members who might still be in the business of making games have certainly found other communities to share and discuss their projects with, if not just posting them directly to the likes of itch.io.
I feel compelled to pause for a moment here, and acknowledge that this article has thus far been littered with mentions of websites established in the 1990s and 2000s that no longer exist or update. (Not to mention YouTube uploads that have since been taken down.) But that’s just the way things go on the Internet: As the decades pass, folk either lose interest in maintaining their presence or migrate to more active communities. And while it’s a shame to see so much history lost to time, I think we’d all agree that the modern web is at least a whole lot more accessible. Yeah, it sucks that Eidolon’s Inn is no longer available to serve public domain ROMs; but in its place are a thousand other repositories with way more on offer, with the benefit of modern search algorithms and result filtering to boot. I miss the days of hyper-specific forums like DevSter’s as much as the next oldhead, but there’s no arguing that it’s a whole lot easier these days to find experts on your niche interests posting on the likes of Reddit and Tumblr. Nostalgic as it may be to look back on the good ol’ days of the world wide web and for all the merits of its design, the fact is that it’s way easier now to put yourself out there as a creator and to actually have your stuff seen. Don’t get me wrong: The corporatization of everything absolutely sucks, modern web design templates make every page feel very cookie-cutter, and there’s the uneasy feeling that comes from knowing that some shitty venture capital firm can buy out [and promptly ruin] your favorite sites at any moment. But I like to think that a developer like Tom Maneiro would at least have better luck today with being properly recognized for their work, and being able to assert their ownership over it.
Now, before we get to answering the question of “what’s Tom Maneiro up to,” there’s still one more facet of CrazyBus that I wanna follow up on: There’s a couple more fan games and conversions that I think deserve mention here, since I feel like they help in carrying on the spirit of homebrew development. With this in mind, the first I’ll highlight is ‘FG Software’s conversion of the game to the NES in 2016. Developed as part of an April Fool’s Day prank for ‘NintendoAge.com,’ the ROM is a relatively faithful demake of the 2.00r030 release; containing the same technique of digitizing photographs for use as backgrounds (reducing their color depth and resolution for the 8-bit hardware), the full selection of five buses, and equivalent gameplay. I really dig on the monochrome portraits for the buses on the selection screen, and their gameplay sprites are pretty spiffy too. Of course, the game also has its own rendition of the iconic title screen music (not to mention the bus selection theme); which appears to keep in line with the original track by leveraging just three of the system’s sound channels, and feeding it a string of seemingly arbitrary values in order to generate its composition. Unfortunately, the conversion isn’t able to leverage randomized elements in the ways that the original CrazyBus does: The colors of buses and the playfield are all pre-determined / static, as is the selection of background images that are picked to pair with each screen. But that feels like a pretty minor loss, all told: I’d say that FG Software’s conversion likely comes as close as anyone could hope to get in bringing CrazyBus to the NES largely intact. It might’ve been made as an elaborate prank of a game, but it’s still impressive just how committed to the bit the developers were.
And then there’s 2020’s PicoBus for the PICO-8 platform; which, for those who don’t know, is a toolkit for developing and publishing games with the aim of simplifying their design. It’s a neat little “fantasy video game console” that’s given way to some fascinating games, and been a boon to the indie scene in the past eight years. CrazyBus is a perfect candidate for the PICO-8 treatment, and ‘SuperPositiveP’s take on the game comes across as a real labor of love. With “hardware limitations” in place that arguably put the system a notch below the NES in terms of what can theoretically be presented on it (including a meager 128×128 pixel resolution, and a maximum of 16 colors displayed), you might expect the conversion to have to cut a few more corners than FG Software’s aforementioned effort. But if anything, it actually manages to present more in the way of features over its predecessor; with a more faithful presentation, the reintroduction of randomized paint jobs, a small handful of bonus buses, and even the return of those pretty little dithered flowers seen in the original 2.00r030 release. But my favorite touch are the new descriptions written for each selectable bus, which include some notes on the history of CrazyBus; highlighting the IRIZAR Century as the “first bus added to CrazyBus,” pointing out how the Encava E-NT600 “had 340 horsepower in CB V1.1” before having it reduced to 300 horsepower in 2.00r030, and mourning the fact that the Busscar Vissta Buss “was cut from the original CrazyBus in Version 1.1.” (Actually, it was replaced by the Jum Buss a revision earlier — back in 1.0. But this is a very minor error, all told.) Now that’s an attention to detail that I can get behind, and I have to applaud author SuperPositiveP for taking this goofy project so seriously. I really hope that Tom himself is able to see this conversion some day, as I think he’d appreciate the heart that clearly went into it.
Last on my list here is ‘AtreyuGilbert’s CrazyBus: Tucson to Las Vegas, released as a Windows executable in 2020. If you caught the reference being made in the subtitle, you’ll have already guessed that this game seeks to combine CrazyBus with gaming’s other most infamous bus simulator, ‘Desert Bus’ — an endurance driving minigame featured in the unreleased Sega CD title ‘Penn & Teller’s Smoke and Mirrors.’ And while Desert Bus and/or Smoke and Mirrors is a whole can of worms unto itself (a potential candidate for a future April Fool’s Day article, even), I’ll just say for now that it makes for brilliant bit of subversive game design, and that it really should’ve been allowed to release commercially back in the day. But we’re not here to get in-depth on the subject of Desert Bus right now: The concept of merging gaming’s two most notorious bus-based titles into a singular piece of software is a fairly brilliant one, and the implementation here is… Well, it’s certainly “faithful” to both games; in that it presents the buses from in CrazyBus in all their left/right-limited functionality, while recreating Desert Bus’ grueling objective of enduring a real-time eight hour drive across the desert. That being said, AtreyuGilbert’s title lacks the “challenge” of Desert Bus by not having you stay on top of keeping the bus from steering into ditches, and by changing the scoring method from the singular points awarded each time you complete one leg of the trip. It also has some included “Cheats” enabling you to reduce the amount of time spent driving and increase your speed to ludicrous degrees, which sort of take away from the tedious intentionality of Desert Bus’ original design. But hey, we’re clearly pretty deep in the “joke game” end of the fan game spectrum here, and I reckon that most folk won’t really play CrazyBus: Tucson to Las Vegas for more than just a couple minutes anyhow.
So, now that we’ve seen a few of the “loving tributes” to Tom Maneiro’s masterwork, we can get back to the question of what he’s gotten up to since CrazyBus went viral online. And the answer to that question would appear to be “not much”: Past a certain point, Tom just seemed to vanish off the face of the Earth — never making an attempt to capitalize on his post-AVGN episode fame, or presenting any new projects that’d serve to demonstrate his growth as a programmer. He’d done his damnedest to keep the DevSter Forums alive up until the dawn of 2015, where he posted his final celebratory New Year’s Day post, and promptly disappeared much like DevSter himself. Frankly, it’s a wonder that he stuck around for as long as he did — long after the site’s own administrator had abandoned the community, and with barely anyone left in the way of other members to engage with. Eventually, Tom’s own personal site went offline as well in around 2019 or ’20, without any warning or other indication as to why: He’d maintained it at the URL ‘mi.tsdx.net.ve’ since 2009 (after having left the Monkeeh.com domain which also hosted DevSter Specialties), but its last updates would’ve been in around 2011, as he worked for a time on a Java conversion of a Japanese language-learning tool titled ‘KanaMemo.’ Beyond those spaces, Tom never maintained a presence on any social media platforms (as far as I can gather), or made any other efforts to make himself particularly visible on the Internet. Even when an attempt was made at establishing a DevSter Forums community Discord server in late 2020, it wasn’t enough to rouse Tom from his hermitage. When I asked the only remaining active user in said server if he had any idea as to Tom’s status, he had no leads on offer, and could only speculate that Tom’s hailing from Venezuela “likely had something to do with him disappearing.”
For those unaware, Venezuela has existed in something like a perpetual state of crisis since around 2014, following the transition of power from President Hugo Chávez to Nicolás Maduro upon the former’s death.in dire need of charitable support. With the fact that violence against protestors of the corrupt government has been one of the going concerns in Venezuela, as well as the population being particularly susceptible to the effects of the global pandemic (owing to a lack of readily available medical supplies); there’s the legitimate concern that Tom Maneiro may have been a casualty of this ongoing crisis, or at the very least unable to access the world wide web. Mercifully, I have at least one bit of good news to present here: Tom is still intermittently active on GitHub, where he contributes to a small handful of repositories — his most recent activity [as of the time of this writing] being some posts made in December, 2022. From this, we can at least gather that Tom is in a position where he still has access to the Internet (and to electricity, for that matter), and that he continues to keep up with programming to some extent.
This is a topic far too complex and depressing to address effectively in this article about a novelty Sega Genesis ROM, but you should at least be aware that millions have since fled the country in order to escape extreme poverty and political repression, and that many of those who remain are stillTaking everything we’ve written about so far into consideration: I think it’s fair to assume that Tom got burnt out on the whole CrazyBus phenomenon pretty quickly, and that the AVGN’s episode on the game served as something of a tipping point — a moment where the intensity of the spotlight became too much for Tom to handle, and which prompted him to put some distance between himself and his Genesis demo. And I can hardly blame the guy for it: He had to sit and watch as online content creators and cartridge manufacturers began raking in money off of his hard work — as folk were rewarded for criticizing and perpetuating a game that he never made a dime off of. Hell, his name rarely ever surfaces in coverage of CrazyBus, and so he couldn’t even attempt to exploit the exposure surrounding his game even if he had wanted to. Tom Maneiro got one of the rawest deals an indie developer has ever been seen to receive, and had to endure over a decade of CrazyBus being held up as one of “the worst games of all time” — face constant scrutiny for an innocuous tech demo he posted to a forum in the early 2000s, which he had only ever intended as a brief hobby project! And here we are nearly twenty years out from the fact: Still talking about CrazyBus, digging up all the details of its development, and presenting it on a website called “Bad Game Hall of Fame.” I can’t help but feel like I’m a part of the problem here? Like, even if my intentions here are to genuinely celebrate Tom’s work, and to provide y’all with the status update that he’s still alive; I’m still tying his name to this game in the process here, and ensuring that he’ll just continue to be chained to it like a rock for the rest of his life.
So, why am I going ahead with posting this article, then? Well, for one thing, I already had a large portion of it written before I realized the problem I could be potentially contributing to here. But if a moral justification is more what you’re looking for, I’ll offer this one: If I don’t write and post this article, nobody else will. This is to say that in the twenty years since CrazyBus’ release, no one else has evidently cared enough to offer a thorough document on the subject, or to offer a perspective on the game that addresses the thought process of its creator.parody remixes of the title screen track, and the intermittent attempt at “analyzing” its soundtrack while failing to acknowledge any of the other work that Tom put into the program. And to be clear, that content has absolutely continued to be produced in the years since Tom was first made aware of it — has only accelerated in production and popularity since that fateful AVGN episode. I wanna hold out that hope that by putting this article out there, I might make some sort of difference on the discussion, as negligible as it may well be: That maybe someone will read all this, take something away from it, and endeavor to be a bit more thoughtful in talking about the game for themselves. And on the off-chance that Tom himself might happen to read this article, I have this to say to him: Howdy there, Tom! I hope you’re doing well, and that this wild ride you’ve been stuck on hasn’t jerked you around too roughly. Here’s wishing you the best, and that you continue to drive with care.
And so long as there isn’t a resource available that folk can use to properly educate themselves on the subject, the state of content around the game is just gonna remain the same as it has for the last decade: A procession of performatively angry commentators taking turns making fun of it,Oh, right: I nearly forgot about the framing device for this article! Well, let’s just say that I don’t think I’ll be attempting to dictate an article while driving again. I mean, it was all going smoothly enough at first: I grabbed some lunch, picked up my laundry, dropped off some mail, and even stopped off at a couple of roadside attractions. (Who knew a ball of yarn could be so damn big?) Unfortunately, there was a moment where I passed by this beautiful model of Prevost ‘X3-45’; and I got so excited having spotted one out in the wild, I only went and flipped over my car again. I didn’t wanna stop dictating this article though, since I feel like I’ve been on a real roll with it. So, now that I think I’ve said all there is to say about CrazyBus, now would probably be a good time to stop this recording and dial 911. I mean, all the blood pooling to my head has probably been great for my creative process, but I think I’ve heard that it’s bad for your health in the long run? I also think that most of it has already leaked out of my nose by now, and that’s probably not great for me either… Aaand I’m just now noticing that I’m at 1% battery on my phone, and that I’m probably gonna run out before I can make that phone call. Well, here’s another nice mess I’ve gotten myself into. But I’m sure I’ll figure some way out of this little predicament. Wait, I just remembered the word I was looking for at the beginning of this article! Let me take that sentence again real quick before I forget it: Why, if someone was forced to listen to this “soundtrack” for an extended length of time, I bet you they’d wind up going c
tomman is still active on helmet.kafuka.org/bboard, and also is one of the SeaMonkey browser developers. Thought I’d mention that.
Will there ever be a new article on this website?
Great article! As a Venezuelan I can give some context: people obsessed with buses are something common here. Specially the “Encava” fans, people get TOO attached to their buses and decorate them with lots of stickers and designs and etc. just look at Google images when you search “Encavas” or “Encavas tuning”.
There’s also American Truck Simulator mods where you can drive Venezuelan buses with the typical Venezuelan designs in Venezuelan freeways lol
Anyway, great article!
cass once again with the hits
I hope the flip over your car bit was another joke. It’s hard to tell on this day.