New Game, Old Ways: Cramming An NES Game Into 40 KB

Why would anyone bother to create new content for a console system that’s staring down its 40th birthday? Perhaps just for the challenge of fitting a game into 40 kilobytes of storage.

That at least seems to be the motivation behind [Morphcat Games] pending release of Micro Mages, a new game for the Nintendo Entertainment System console that takes its inspiration from Super Mario Bros. The interesting bit here is how they managed to stuff so much content into so little space. The video below goes into great detail on that, and it’s a fascinating lesson in optimization. The game logic itself is coded in assembler, which of course is far more efficient than higher level languages. Even so, that took 32 kB of ROM, leaving a mere 8 kB for background elements and foreground sprites.

Through a combination of limited sprite size, tiling of smaller sprites to make larger characters, and reusing tiles by flipping them horizontally or vertically, an impressively complete palette of animated characters was developed. Background elements were similarly deconstructed and reused, resulting in a palette of tiles used to generate all the maps for the game that takes up just 60 bytes. Turning those into playable levels involves more mirroring and some horizontal shifting of tiles, and it looks like quite an engaging playfield.

Yes, there’s a Kickstarter for the game, but we’re mainly intrigued by what it takes to cram a playable game into so little space. Don’t get us wrong – we love the Retro Pie builds too, but seeing the tricks that early game developers relied upon to make things work really gets the creative juices flowing.

Continue reading “New Game, Old Ways: Cramming An NES Game Into 40 KB”

Star Fox Comes To Arduboy

The original Star Fox for the SNES was a landmark game. With the Super FX chip built into the cartridge, it presented the first 3D accelerated home console experience. The series has spanned several consoles and over two decades. Now, it’s getting an (albeit unofficial) port to the Arduboy, thanks to [Stephane Hockenhull].

Impressively, the game fits in under 28KB, and [Stephane] hasn’t skimped on the development details. The process begun with setting up a basic 3D engine on the Arduboy, followed by some tests of various gameplay ideas. The final implementation bears a strong similarity to the original SNES gameplay. At this point, work moved out of the Arduino IDE into [Stephane]’s custom development environment to speed things along. A PC port was used to save time programming the flash every iteration.

The tricks used to pull this off are many and varied. There are neat hacks used to optimise the storage of the 3D model data, implement lightweight collision detection, and generate random levels. Everything was done in order to make the game fit into the smallest space possible.

Running smooth 3D graphics on a 16MHz 8-bit microcontroller is an impressive feat, and a testament to [Stephane]’s coding abilities. We can’t wait to see more 3D development on the platform. Meanwhile, if the Arduboy doesn’t quite have the look you want, there’s a solution for that too. Video after the break.

Continue reading “Star Fox Comes To Arduboy”

Pokemon Cries And How They Work

If you grew up watching the Pokémon TV series, you’d naturally be familiar with the cries of all your favourite Pocket Monsters. Most of the creatures in the anime tend to say their own name, over and over again. Pour one out for the legions of parents who, upon hearing a distant “PIKA PIKA!”,  still involuntarily twitch to this day.

However, the games differ heavily in this area. Generation I of Pokémon was released on the Game Boy, which simply didn’t have the sound capabilities to deliver full bitstream audio. Instead, sounds were synthesized for the various Pokémon based on various parameters. It’s quite a deep and involved system, but never fear – help is at hand via [Retro Game Mechanics Explained].

The video breaks down, at a bitwise level, how the parameters are stored for each Pokémon’s cry, and how they are synthesized. It’s broken down into easily understandable chunks, explaining first how the Game Boy’s sound hardware works, with two pulse channels and a noise channel, before later expanding upon why some Pokémon have the same or similar cries.

It’s a tour de force in retro game reverse engineering, and expertly presented with high quality graphical guides as to what’s going on at the software level. There’s even an emulator you can use to explore the various cries from the original game, and generate your own, too.

Now that we’re up to speed with Pokémon, how about fixing bugs in a 37 year old game? Video after the break.

Continue reading “Pokemon Cries And How They Work”

Use Your Game Boy As A Wireless Controller

Like many retro favourites, the Game Boy is in no way dead — development continues apace through its many fans.But what about the hardware side? This is a particularly interesting one: [Alex] wondered if a Game Boy could be readily used as a wireless controller. Set out to make it happen, the final product is a game cartridge that makes the classic handheld a wireless controller.

It’s achieved quite elegantly, with a custom cartridge used to turn the Game Boy into a controller while requiring no modification to the handheld. The cartridge contains a flash chip to store the ROM, along with an ATmega48PA microcontroller and an NRF24L01 to do the talking. Upon powerup, the Game Boy runs code from the ROM, and the microcontroller is in charge of reading button states and sending them to the NRF24L01 for transmission. The program stored on the ROM also allows configuration changes to be made from the Game Boy itself, such as choosing the appropriate wireless channel.

The cartridge transmitter can be used with a variety of receivers. [Andy] has developed a USB HID joystick emulator to allow the Game Boy to be used with PCs, as well as a receiver for the GameCube, too. Yes, that’s right — you can now play Super Smash Bros. with a weirder controller than all your friends. A Super Nintendo version is also in the works. Perhaps the coolest feature, however, is that the cart can use its radio link to communicate with another Game Boy running the same cartridge. [Andy] demonstrates this with a basic game of Pong being played between two Game Boy Advances.

Working on retro hardware can be great fun — things are well documented, parts are cheap, and there’ll be plenty of fans cheering you on, too. [Andy] has even made the hardware available for purchase on Tindie and his website if you’re not quite comfortable rolling your own.

The Game Boy platform remains ripe for hacking – you can even take screenshots with a logic analyzer these days. Video after the break.

Continue reading “Use Your Game Boy As A Wireless Controller”

Nintendo Does Sony, Better Than Sony

Fans of game consoles from the golden era of TV game appliances have been in for a treat over the past couple of years as a slew of official reboots of the stars of the past have reached the market. These so-called “classic” consoles closely follow the styling of the originals, but under the hood they pack modern hardware running an emulator to play a selection of games from ROM. Even better, with a bit of hacking they can run more than just the supplied emulator, people have managed to use them to emulate completely different consoles. Even then, it’s unexpected to find that a PlayStation emulator on a Super Nintendo Classic runs PlayStation games better than the same emulator built in to Sony’s own PlayStation Classic console.

The feat from [8 Bit Flashback] is achieved despite both machines having near-identical hardware specifications based upon the Allwinner R16 system-on-chip. The Nintendo provides smoother action and more responsive controls, making for a far superior gaming experience. How is this achieved? The most significant difference is that the SNES Classic had the RetroArch front end installed upon it, which may have lent some optimisations and tweaks to make the system more efficient.

Readers with an eye for unusual consoles may remember another Nintendo/Sony hybrid, the ill-fated early-1990s prototype SNES with a CD-ROM which was the first machine to bear the name “PlayStation” (or “Play Station” as it was sometimes styled, leading Sony marketeers to be hot on writers using a space between the words a few years later).

Continue reading “Nintendo Does Sony, Better Than Sony”

Game Boy Camera – Now In Color

The Game Boy Camera is a legendary piece of 90s gaming hardware, despite not being a game at all. It consisted of a low-resolution greyscale camera, fitted to a Game Boy cartridge, that you could use to photograph your friends, vandalise their pictures, then print them out on a thermal printer. It’s hardware that was fun because of its limitations, not despite them. However, [Matt] wondered if there was a way to use early photographic techniques to get color photos.

The technique is simple – get red, green, and blue filters, and take three photos – one using each filter. Then, combine the photos digitally to create the color image.  This necessitates an amusingly complex process to transfer the photos from Game Boy to PC, of course.

There are some limitations – due to the speed of the Game Boy Camera, it works best with static scenes, as it takes several seconds to shoot. Also, due to the low resolution, it’s best to choose subjects with broad swathes of color. Despite this, [Matt] managed to take some great images with a colorful yet vintage digital charm. There’s other ways to achieve this, of course – like bringing the power of neural networks to bear on your low-res Game Boy images. Video after the break.

Continue reading “Game Boy Camera – Now In Color”

AI Bot Plays Castlevania So You Don’t Have To

We’re not allowed to have TV here in the Hackaday Wonder Bunker, but occasionally we’ll pool together the bandwidth credits they pay us in and gather ’round the old 3.5 inch TFT LCD to watch whatever Netflix assures us is 93% to our liking. That’s how we found out they’ve made a show based on, of all things, one of the Castlevania games for the NES. We wanted to play the game to understand the backstory, but since it hails from the era of gaming where primitive graphics had to be supplemented with soul-crushing difficulty, we didn’t get very far.

But thanks to a very impressive project developed by [Michael Birken] maybe we’ll have it all figured out by the time we’ve saved enough credits to watch Season 2 (no spoilers, please). The software, which he’s quick to point out is not an example of machine learning, is an attempt to condense his personal knowledge of how to play Castlevania into a plugin for the Nintaco NES emulator. The end result is CastlevaniaBot, which is capable of playing through the original Castlevania from start to finish without human intervention. You can even stop and start it at will, so it can play through the parts you don’t want to do yourself.

[Michael] started this project with a simple premise: if he could make a bot successfully navigate the many levels of Dracula’s castle, then getting it to kill a few monsters along the way should be easy enough. Accordingly, he spent a lot of time perfecting the path-finding for CastlevaniaBot, which included manually playing through the entire game in order to get an accurate map of the background images. These images were then analyzed to identify things like walls and stairs, so the bot would know where it could and couldn’t move protagonist Simon Belmont. No matter what the bot is doing during the game it always considers where it is and where it needs to be going, as there’s a time limit for each stage to contend with. Continue reading “AI Bot Plays Castlevania So You Don’t Have To”