Friday, March 27, 2015

Knuckles' Chaotix (Sega 32X) Review

The Sonic franchise, like Sega itself, has seen better days. The Sega Genesis outings were truly sublime, and I believe that Sonic 3 & Knuckles (the combined Sonic 3 and Sonic & Knuckles) is truly the best platforming game of all time. I don't think it gets the love it deserves due to the way it was released. Sonic 3 & Knuckles was always intended to be one game, but due to the size of the game it was too expansive to put on one cartridge in a cost effective way. It was split into Sonic 3 and Sonic & Knuckles to keep costs down for everyone.

Those games were the last real Sonic games for most people. Sonic 3D Blast came out later, but it was clear that it was never really intended to be a true successor. Sonic Xtreme, the planned Sega Saturn outing, never came to be and we were left without a true Sonic game until Sonic Adventure. There was another game, though... on the immediately deserted Sega 32X. I remember this game coming out, and the Archie Sonic comic series had a special tie-in issue for the game (most of the games had some sort of tie-in issue).

Sonic is NOT in the game, though.

This was a treasured issue of mine, just because that red "Super" Metal Sonic is so fucking badass. The Archie Sonic series was actually pretty well done from what I remember, and the important bit is that Sonic's friends didn't suck in this series. That's another story for another time though.

My parents were (shockingly) aware that I couldn't get Knuckles' Chaotix though, as I didn't have the needed 32X mushroom. Now that I do, this was the game I was looking forward to the most by far. Knuckles' Chaotix has been something of a lost game in the Sonic canon. In all of the many emulated collections (Sonic Mega Collection, Sonic's Classic Genesis Collection, XBLA ports, so on and so forth), Knuckles' Chaotix has never been re-released in any form. There's a few rumors about the game, one of them being that Sega asked that Sonic be removed from the game because they had concerns about the format of the game. It surely seems possible as there is an early prototype of the game that can be found online that runs on Sega Genesis known as Sonic Crackers.

Instead of Sonic and Tails, we get Knuckles and his group of friends, the Chaotix. Mighty the Armadillo (who had actually appeared earlier in SegaSonic the Hedgehog, an arcade game), Charmy Bee, Vector the Crocodile and Espio the Chameleon. Utterly forgettable, and they wouldn't appear again until Sonic Heroes (which was also utterly forgettable). It manages to add to the Sonic-Knuckles rivalry that used to be a thing though, making it seem like Knuckles' has his group just as Sonic has his own.

Knuckles' Chaotix differs from traditional Sonic games in the fact that you use two characters. The characters are bound together by a chain of rings which essentially functions as a rubber band. One of the key gameplay elements is to use the hold button, which makes the non-player character stand in place while the other character runs until the chain is stretched, and then shoots forward.

This is admittedly awkward at first, but it adds a great sense of speed to the game and it becomes second nature once you understand the limitations of the mechanic and when the best times to use it are. The game makes a pretty admirable attempt at the physics of this idea, but sometimes it's just outright glitchy. It's not unusual or uncommon for the characters to just kind of spaz out and sling around all over the place when you're bouncing off a spring or moving between two different heights. This isn't surprising considering the age of the game, but it is disappointing that it happens since this is the key idea of the game. You can also pick the second character up and throw them to higher platforms or to hit switches, though this isn't used much. The rest of the game is essentially identical to other Sonic games in terms of mechanics.

Unfortunately, the level design is a bit scattershot. Most of the team that worked on Sonic CD worked on Knuckles' Chaotix and the level design shows. Where the numbered Sonic entries have multiple clear paths through the levels, Sonic CD and Chaotix just kind of have paths all over the place with no real single route. It is more bearable here than it was in Sonic CD since you won't be traveling back and forth in time, but the confusion takes away from the game. This group of developers did seem to be capable of relatively straightforward level design; the Speed Slider levels are fantastic and wouldn't feel out of place in a main series game. Would you like to replay those levels...?

Good luck. Knuckles' Chaotix decided everything needed to be random. The only real choice you have is which character you're controlling when the game starts. From there? Random. The character following you is picked from a claw machine which scrolls back and forth of its own accord.

There are two useless characters in this situation (the robots), and if you end up with one, you're stuck with them. You re-pick every time you reload the game. In addition to the claw moving back and forth, characters drop off the bottom of the screen and pop back up. Your best strategy here is to just immediately hit A to get the character directly under the claw. If you're playing as Knuckles, it's always Vector. As long as you end up with a character that isn't one of the useless ones, you're good. Levels are also selected in a random order. A cursor moves over all of the levels until you stop it, then it moves a few more times and lands on a level. Chaotix's levels are broken into acts just like other Sonic games, but there are 5 acts for each level. Once you complete an act, you go back out into the hub area and pick another random level. Once you've completed all five acts, that level is taken out of the selections and it can't be picked again.

The really strange part is that you can never freely pick levels. One of Sonic 3's best features was the ability to go back and pick levels freely once you finished the game. You could also collect any missing Chaos Emeralds and replay the last level to get to the better ending. Once you've beaten Knuckles' Chaotix it just replays the final boss fight. You have to start a new game and play levels randomly to revisit anything. It's really weird to play the acts in a random order and you never really get into a groove with any of the levels. Where the acts in previous games introduced a mechanic and then ramped up the difficulty, the acts here are just... randomly strewn about.

Anyways, this game is a 32X exclusive. Does it benefit from it? Not really. The graphics aren't anything that couldn't be done on the Genesis. The color count is obviously much better and there's no dithering in sight. It actually kind of makes me wish that Ristar would've been a 32X game. Both games have very similar styles, and it would be nice to see Ristar without all of the dithering. There are some 3D effects in the game, some levels have platforms that are 3D and can be seen from slightly different perspectives. The bonus stages are also fully 3D and play out like a more advanced version of the bonus stages in Sonic 2. The game also relies heavily on sprite scaling effects, which wasn't possible on the standard Genesis hardware (scaling was also possible on the Sega CD). There are some very nice parallax effects as well but it's nothing that would've been missed had this just been a Genesis game.

As it stands, Knuckles' Chaotix will likely forever remain a curiosity in Sonic, and even Sega, canon. This is not a bad game by any means. It's much more deserving of a spot in compilation releases than Sonic 3D Blast, but it looks like it will never get any kind of rerelease treatment. If you're looking for some classic Sonic, this will scratch the itch. You'll need a 32X or an emulator, though.

The Score: 8/10

Thursday, March 5, 2015

Selfbooting Dreamcast Games, Part 1: The Basics

I was exchanging emails with someone recently and they asked me if I had a video tutorial for ripping games since I was no longer doing it. This was.. bothersome. I know that the internet has more or less become a glorified on-demand service for videos served on YouTube but, good god. If it was so easy, why wouldn't everyone be doing it? There's only been a few really excellent Dreamcast rippers since the Echelon and Kalisto days because it isn't easy. You need to have a keen eye for detail, you need to have time and you need to think. I make no guarantees that I'll even finish this, but it may provide some interesting perspective for some people.

We'll start off by looking at the basics and busting some myths so that we can get to the actual process.

The Dreamcast came out in 1998 in Japan, DVD existed at this time but was still prohibitively expensive. Sega knew that they would need more storage space (and.. copy protection), and DVD was the only real option at the time. In order to avoid skyrocketing the price of their console, they turned to Yamaha for a different solution. Yamaha developed a new disc format called the GD-ROM (Gigabyte Disc Read Only Memory) which stores a gigabyte (shockingly enough). The Dreamcast verifies that the disc is a GD-ROM, and starts the game. Problem solved, no piracy.


Sega had an idea for a new kind of multimedia disc, called MIL-CD. MIL-CDs would only work on Dreamcast, and they would offer additional content on a music CD (or just any other CD, I guess; MIL-CD never really took off obviously) by including video and other extras. So, we have a way to boot a regular CD with Dreamcast data on disc? There's our way in.

Look at any article on the Dreamcast and you'll always see remarks that "THERE WAS NO COPY PROTECTION!" This is incredibly false. It's there, it was just defeated by the pioneers of Dreamcast ripping. The earliest Dreamcast rips required a boot disc to use and would not boot on their own. Eventually the way the boot disc is set up was mimicked and now Dreamcast games start up all on their own.

There's a few issues with Dreamcast rips, which is why people are still doing and re-doing Dreamcast rips. Our first limitation is obviously the size disparity between media. CDs can only hold 700mb while the GD-ROM was over 1gb. This typically isn't too huge of a problem as a lot of games simply didn't cross over the 700mb threshold. There are a lot of PlayStation ports that just weren't that big and a lot of games just didn't need to be. There's usually workable solutions to the size disparity. The other key difference that can cause problems with game performance is the difference in read speed. The Dreamcast reads GD-ROMs at 12x while reading CDs at 6x. This causes some limitations with how fast we can get data off of CDs versus the GD. The speed difference can manifest in longer loading times, stuttering in FMV or audio not loading in time (particularly an issue for fighting games). Internet was slower back when Echelon was at work and as a consequence, games with CDDA audio suffered. A lot of games used CDDA and in order to keep file size down (WAV data doesn't compress much) the CDDA tracks were encoded to MP3s which were then converted back to WAV files and inserted into the disc image. In case you don't know, MP3s get small by basically throwing away huge amounts of the data in the audio and converting it back to a WAV file doesn't restore that data.

Another reason Dreamcast rips are still being done and redone is that the methods of dumping data from the GD-ROM have become more reliable over time. Back in the good old days, discs were dumped using a serial port connection. This could take almost a full day and sometimes data was missing. This resulted in repacks, patches, workarounds, you name it. These days the easiest way to dump games is with an SD card adapter and jj10dm's SD ripper application. This takes around 30 minutes in a worst case scenario.

Ripping methods have improved over time as well. If you've been around Dreamcast stuff for a long time, you've undoubtedly seen some dipshit say "well, the rippers eventually figured out how to interrupt the burning of the disc to make multiple data sessions so that the game boots on Dreamcast." Holy fuck, that is a stupid statement. Preparing a Dreamcast game to selfboot is precise. There is no mystery about anything happening. Dipshit is right though, we do need multiple data sessions.

Another reason that Dreamcast games are being redone is because of the selfboot method. Echelon and all the scene groups used what's known as an audio/data selfboot. The smallest CDDA track possible was burned as the first data session. This took a few mb and the following multisession data track killed a few more mb before we got to the actual game data. Disc space is precious, and this was inefficient. Modern selfbooting uses two data tracks which the file system treats as one uninterrupted ISO, so we get some precious mbs back. This is called data/data. This selfboot style also lets us imitate the Dreamcast's original boot LBA, 45000.

What's an LBA? An LBA is a logical block address. In essence, it tells a computer where data is located by breaking so many bytes into a block. For data, 2048 bytes are in a block and for audio 2352 are in a block. This is important for later.

The Dreamcast boots files by looking for bootsector data at the start of the second session, this is known as an IP.BIN. An IP.BIN is not an actual file that can be located in the disc, as it is placed at the start of the ISO information. Once the IP.BIN is found, the Dreamcast loads up the data and the IP.BIN points the system towards the 1ST_READ.BIN, essentially our main executable. The 1ST_READ.BIN then wants to know what LBA the IP.BIN is at. If it doesn't match, the boot fails and kicks you back to the Dreamcast BIOS screen. If it doesn't fail, sweet success. This is what I meant when I said Dreamcast ripping is precise. So, when we say the boot LBA is 45000 it means that the end of the 1st data session and the multi session data stops at 44999. The IP.BIN is located at 45000. Echelon's old audio/data style selfboot had a boot LBA of 11700, though most people's burners couldn't burn this file in the correct manner. Typically you'll end up with 11702 if you use the old method.

I think that's about enough for today, next time I'll post some tools and dig into even more technical details.