uSVC is a simple, do-it-yourself game console that allows you to create and play retro-style 8-bit games with standard USB controllers and keyboards. It comes as a kit, and all you need to assemble it are basic, through-hole soldering skills. In fact, all you really need is a soldering iron and some solder wire. The microSD card socket is the only surface-mount component on the whole board, and we’ve taken care of that one for you, so you’ll have "basic, through-hole soldering skills" by the time you’re done.
Put another way, uSVC is…
uSVC can display up to 256 on-screen colors at its standard resolution of 320x200 pixels, with a 57 Hz refresh rate, or it can render up to 400 lines with a pixel aspect ratio of 2:1. It has four 8-bit PCM channels mixed to a 10-bit mono channel and samples at 30 KSPS. It also provides for an optional global low-pass filter with a per-frame selectable low-pass frequency.
uSVC handles multiple video modes, including 8x8-pixel tiled modes with 16 or 256 colors and a 2 bits-per-pixel (bpp) bitmapped mode that supports up to 256 on-screen colors by changing the palette every 8 horizontal pixels.
Tiled modes support sprites with the following features:
uSVC is made up of a single uChip and a handful of standard, through-hole components, so it’s perfect for beginning solderers. The only SMD component is the micro SD card reader, which we’ve pre-soldered onto the PCB. The tiny uChip that drives uSVC is, of course, fully assembled; you just have to slot it into its socket when you’re done putting everything else together.
Have you ever wanted to create your own game? It’s easy! We developed a comprehensive set of APIs and an editor so that you can focus on the art and the C code without having to worry about fiddly USB stuff, VGA signal generation, and other complications. And, like uChip, uSVC is fully open source!
And don’t worry, we’ll soon be publishing detailed guides on how to develop for uSVC using Atmel Studio, BOSSAC, and the uChip Game Map Editor!
Yes, it would have been much easier for us to make uSVC require some old-school joysticks and controllers, but that didn’t feel right to us. So we went ahead and implemented a USB stack instead of just supporting serial and parallel I/O. Why?
Long story short, getting the controller or keyboard state is as simple as calling a C function.
You might have noticed that we’re rather excited about how easy it is to design great games for uSVC. But we definitely want you to have something you can play while you’re working on that first project, so we went ahead and published three open source games. In addition to the obligatory Tetris clone—do people really make game consoles without a Tetris variant? That just doesn’t seem right to us—we also produced Fair Play Race and Redballs.
You can learn more about these games and other existing uSVC content below.
Already quite good at soldering? Don’t want to design retro-style games? Not even interested in playing retro-style games? Unmoved by the thought of writing code that would allow you and a friend to connect two uSVCs and go head-to-head? We still think you will find value in the uSVC development platform.
Yes, uSVC is a gaming console, but it also has an expansion port—one that’s optionally configurable as an SPI interface—so it’s highly customizable. Use that port to plug in your favorite NES controller. Or to connect some LED strips, synchronize those strips with the frames you are generating, and light up a wall. Or to add a serial-to-parallel shift register and some relays to create a home automation control panel. Or to build a karaoke machine you can carry around in your pocket. The possibilities are limited only by your imagination. (And your willingness to take a break from Fair Play Race. It’s pretty fun.)
In terms of software-only project possibilities, the USB stack is modular, so you can easily add drivers to support other (low- and full-speed) USB devices. And if that’s not enough, remember that the whole uSVC software stack is open source, so there’s really very little you can’t do.
No doubt, you could pick up a Raspberry Pi, install Linux, and play your favorite old games on MAME. Or you could get yourself a multi-GHz, multi-GB board and program some real smooth "8-bit" games. But how gratifying would that be, really? And what would you learn from the process? Or you could saddle yourself with a half-MIPS 8-bit processor, like those that powered the consoles of the era, and now suddenly you’re coding up tic-tac-toe in assembly, and it’s hard and maybe not really all that much fun.
We believe the Cortex M0+ in uChip hits the right mark to let you program comfortably in C without removing the constraints that make retro-style games so compellingly innovative.
As an added bonus, uSVC is quite small. Even without relying on tiny SMD components, uSVC still fits in the palm of your hand. And the games that it plays are even smaller.
A 1 GB MicroSD card—which will set you back about $7 online, most of which is the shipping charge—has room to store all of the games that a reasonable person is likely to play in their lifetime. (About 3200 of them.) If you’re an unreasonable person, you should of course feel free to upgrade that card, but you’re going to have your work cut out for you.
When the console boots, select which game you want to play, and you're ready to go in just a few seconds!
Here’s a taste of what we’ve made so far. We developed these games to show off the capabilities of uSVC, but we’re betting that you and the rest of the community can do even better!
A top down racing game with full screen scrolling, up-to 256 on-screen colors, transparency, layer prioritization of tiles, animated tiles, two playfields, sprite flipping, and 90°, 180°, and 270° rotation effects. Defeat your opponents (or destroy them…the Fair Play part is meant ironically) to earn the money you will need to upgrade your car.
A Worms clone! Up to four teams of little creatures combat against each other with an assortment of 15 weapons. You can play against the CPU or against other players.
Redballs shows that uSVC can do what an Amiga 500 was able to do with 512 kB of RAM and a custom chipset. It demonstrates the 16-color tiled mode, layer prioritization of sprites, per-tile x-scrolling (for water distortion), palette remapping (for water coloring), and per-line color changes (for background shading). It also showcases uSVC’s ability to displaying a lot of on-screen sprites.
As promised, we improved our original Tetris clone and adapted it for uSVC’s enhanced bitmapped mode.
In addition to the games above, we have published four demos for uSVC.
A demo that shows nearly the full potential of the 16-color mode: big sprites, high-resolution vertical row remapping (for water effects), color changing, palette remapping, both sprite and tile layer prioritization, and per-line x-scrolling to simulate waves.
We have also produced several demos that display a particular number of randomly rotated sprites, in 256-color mode, on a scrolling background with animated tiles. They include demos with:
And if you’re not set up to print your own, we would be more than happy to provide a stylish, 3D-printed case—designed and printed by Stefano Rubini to the precise specifications of uSVC.
We will also send you the following if you don’t already have them:
Last year, we created uChip, an open source Arduino Zero compatible development board in a 16 DIL package. To show off its features and its flexibility, we developed a small VGA board and coded up a rudimentary Tetris game for it. Our goal was to prove that uChip could handle VGA signal generation, USB host duties, game logic, and rendering. And it worked!
Our original Tetris implementation from a year ago... Quite rudimentary, wasn't it?
Later on, we realized that we still had quite a bit of margin to work with and could add many more features to the VGA signal-generation routines. How far could we push the limits of a 48-MHz Cortex M0+, with 256 kB of flash and 32 kB of RAM? Our answer is uSVC, the uChip Simple VGA Console, a fully open source retro-gaming console that you can assemble and program yourself.
While the hardware, firmware, and software are all quite mature, we still have some room, during the campaign itself, to add a handful of features to the game editor, produce some new guides and demos, and perhaps even implement a suggestion or two from our backers. So drop us a line!
To make uSVC successful, we need to join forces! Help us get through this list, and we’ll help you show your game design talents to the rest of the world!
☑ uSVC hardware V2.x
☑ uSVC kernel
☑ Some Example games
☑ uSVC editor (with new features added daily)
☐ Additional demos and tutorials (under development)
☐ Affordability and community (we need your help!)
The open source community has done a great deal for us, both in terms of our private hobbies and with regard to our business. Inspired by that example, we have published several open source projects, including uChip, but we’re always looking for more ways to give back.
Everything we have made for uSVC is open source: the editor, the firmware, the layouts, the schematics, and of course the games and demos. It’s worth mentioning, too, that we developed the project itself using free and open source software (KiCAD), so you can add features without paying for a commercial software license! (Though you can release your games under any license you want.)