Picopad Is A New Open Source Game Console

Microcontrollers are so powerful these days that you can build color handheld games with them that match or exceed what you’d ever get on the Game Boys and Game Gears of yesteryear. The Picopad aims to offer just this, in an open-source hackable format that’s friendly to experimenters.

As you might have guessed from the name, the Picopad is based on the Raspberry Pi Pico and its RP2040 microcontroller. It features four face buttons and a D-pad, along with a small color LCD with a 320×240 resolution. There is also a microSD slot upon which programs can be stored, and also an expansion port with headers for a variety of IO from the RP2040 itself including both GPIOs, serial, I2C and analog input pins. The housing is constructed out of PCBs, with some cheerful gaming artwork adding a fun aesthetic. Development is via a custom C SDK, with support for Micropython as well.

If you want to build your own and don’t fancy starting from scratch, kits are available online. We’ve seen some other great gaming experiments with the Raspberry Pi Pico before, too, like an open-world 3D game and ZX Spectrum emulators. Video after the break.

Continue reading “Picopad Is A New Open Source Game Console”

FPGA Plays Tic-Tac-Toe

As computers get more and more powerful and artificial intelligence algorithms improve, few games remain where the best humans can reliably beat their electronic counterparts. In chess this barrier was passed in 2005 with the last human win against a computer, and recently humans lost to computers at go. Simpler games like tic-tac-toe have been solved for all possible positions for a while now, so even a simple computer will always win or tie the game. But that doesn’t mean that there’s nothing left to learn about these games as [Hayden] demonstrates with this tic-tac-toe game built entirely on an FPGA.

[Hayden] is making this as part of a college course on digital design, so it really starts at first principles for working with FPGAs. It’s programmed in Verilog on a Basys 3 board, which also hosts the switches used as the game’s input and handles the VGA video output as well. The build uses state machines to keep track of the moves played on each of the squares, and another state machine to keep track of whether or not the current game has been won. If so, it highlights the winning moves in red, and stops taking further inputs until it is reset. Some more logic ties everything together along with a customized VGA driver to produce the entire gaming experience.

A game like tic-tac-toe is a great way to master the fundamentals of a system like this before moving on to more complex programs, especially on an FPGA platform that might handle a lot of the things we take for granted on more traditional computing systems, such as the video output. If you’re interested in taking more of a deep dive into the world of FPGAs, we published a primer about them a few years ago that will get you started.

Continue reading “FPGA Plays Tic-Tac-Toe”

A Chess AI In Only 4K Of Memory

The first computer to ever beat a reigning chess world champion didn’t do so until 1996 when a supercomputer built by IBM beat Garry Kasparov. But anyone who wasn’t a chess Grandmaster could have been getting beaten by chess programs as early as 1979 when Atari released one of the first ever commercially-available chess video games for the Atari 2600. The game was called Video Chess and despite some quirky gameplay it is quite impressive that it was able to run on the limited Atari hardware at all as [Oscar] demonstrates.

The first steps of getting under the hood of this program involved looking into the mapping of the pieces and the board positions in memory. After analyzing some more of the gameplay, [Oscar] discovered that the game does not use trees and nodes to make decisions, likely due to the memory limitations, but rather simulates the entire game and then analyzes it to determine the next step. When the game detects that there are not many pieces left on the board it can actually increase the amount of analysis it does in order to corner the opposing king, and has some unique algorithms in place to handle things like castling, finishing the game, and determining valid movements.

Originally it was thought that this engine couldn’t fit in the 4K of ROM or work within the 128 bytes of system memory, and that it was optimized for the system after first developing a game with some expanded capabilities. The game also has a reputation for making illegal moves in the higher difficulty settings although [Oscar] couldn’t reproduce these bugs. He also didn’t get into any of the tricks the game employed just to display all of the pieces on the screen. The AI in the Atari game was a feat for its time, but in the modern world the Stockfish open-source chess engine allows for a much more expanded gameplay experience.

Modular Keyboard And Custom Game Controller

Most video games, whether on console or PC, have standardized around either a keyboard and mouse or an analog controller of some sort, with very little differences between various offerings from the likes of Sony, Microsoft, Nintendo, or even Valve. This will get most of us through almost all video games, but for those looking to take their gameplay up a notch or who are playing much more complex games, certain specialized controllers are available, but they might not meet everyone’s specific needs. Thanks to this custom, modular keyboard anyone should be able to make exactly the controller they need.

The device features a grid of 15 interfaces where modules like buttons, potentiometers, encoders, and joysticks can be placed. Each module can be customized to a significant extent on their own, and they can be placed anywhere on the grid. The modules themselves can be assigned to trigger keyboard presses or gamepad motions depending on the needs of the user. A Raspberry Pi handles the inputs and translates them to the computer, so in that regard it functions no differently than a standard keyboard or gamepad would. Programming is done by sending commands via a USB serial port, with the ability to save various configurations as well.

The modular controller is open-source in terms of hardware and software, with easy assembly using through-hole components and a customizable 3D printed cover for anyone looking to make their own. The project’s creator [Daniel] had flight simulators in mind when designing the device, which often benefit from having more specialized controllers, but any game with lots of specific inputs from Starcraft to League of Legends could benefit from a custom controller or keyboard like this. Flight simulators are more often the targets of specialized and unique controls, though, like this custom yoke or this physical control panel.

RetroPie, Without The Pi

The smart television is an interesting idea in theory. Rather than having the cable or satellite company control all of the content, a small computer is included in the television itself to host and control various streaming clients and other services. Assuming you have control of the software running on the computer, and assuming it isn’t turned into a glorified targeted advertising machine, this can revolutionize the way televisions are used. It’s even possible to turn a standard television into a smart TV with various Android devices, and it turns out there’s a lot more you can do with these smart TV contraptions as well.

With most of these devices, a Linux environment is included running on top of an ARM platform. If that sounds similar to the Raspberry Pi, it turns out that a lot of these old Android TV sets are quite capable of doing almost everything that a Raspberry Pi can do, with the major exception of GPIO. That’s exactly what [Timax] is doing here, but he notes that one of the major hurdles is the vast variety of hardware configurations found on these devices. Essentially you’d have to order one and hope that you can find all the drivers and software to get into a usable Linux environment. But if you get lucky, these devices can be more powerful than a Pi and also be found for a much lower price.

He’s using one of these to run RetroPie, which actually turned out to be much easier than installing a more general-purpose Linux distribution and then running various emulation software piecemeal. It will take some configuration tinkering get everything working properly but with [Timax] providing this documentation it should be a lot easier to find compatible hardware and choose working software from the get-go. He also made some improvements on his hardware to improve cooling, but for older emulation this might not be strictly necessary. As he notes in his video, it’s a great way of making use of a piece of electronics which might otherwise be simply thrown out.

Continue reading “RetroPie, Without The Pi”

Electronic Connect 4 Console Doesn’t Use LCD

You might think that making your own electronic games would require some kind of LCD, but lately, [Mirko Pavleski] has been making his using inexpensive 8X8 WS2812B LED panels. This lets even a modest microcontroller easily control a 64-pixel “screen.” In this case, [Mirko] uses an Arduino Nano, 3 switches, and a buzzer along with some 3D printed components to make a good-looking game. You can see it in action in the video below.

The WS2812B panels are easy to use since the devices have a simple protocol where you only talk to the first LED. You send pulses to determine each LED’s color. The first LED changes color and then starts repeating what you send to the next LED, which, of course, does the same thing. When you pause a bit, the array decides you are done, and the next train of pulses will start back at the first LED.

It looks like the project is based on a German project from [Bernd Albrecht], but our German isn’t up to snuff, and machine translation always leaves something to be desired. Another developer added a play against the computer mode. This is a simple program and would be easy to port to the microcontroller of your choice. [Mirko]’s execution of it looks like it could be a commercial product. If you made one as a gift, we bet no one would guess you built it yourself.

Of course, you could play a real robot. You could probably repurpose this hardware for many different games, too.

Continue reading “Electronic Connect 4 Console Doesn’t Use LCD”

Math Reveals How Many Shuffles Randomizes A Deck

Math — and some clever simulations — have revealed how many shuffles are required to randomize a deck of 52 cards, but there’s a bit more to it than that. There are different shuffling methods, and dealing methods can matter, too. [Jason Fulman] and [Persi Diaconis] are behind the research that will be detailed in an upcoming book, The Mathematics of Shuffling Cards, but the main points are easy to cover.

A riffle shuffle (pictured above) requires seven shuffles to randomize a 52-card deck. Laying cards face-down on a table and mixing them by pushing them around (a technique researchers dubbed “smooshing”) requires 30 to 60 seconds to randomize the cards. An overhand shuffle — taking sections from a deck and moving them to new positions — is a staggeringly poor method of randomizing, requiring some 10,000-11,000 iterations.

The method of dealing cards can matter as well. Back-and-forth dealing (alternating directions while dealing, such as pattern A, B, C, C, B, A) yields improved randomness compared to the more common cyclic dealing (dealing to positions in a circular repeating pattern A, B, C, A, B, C). It’s interesting to see different dealing methods shown to have an effect on randomness.

This brings up a good point: there is not really any such a thing as “more” random. A deck of cards is either randomized, or it isn’t. If even two cards have remained in the same relative positions (next to one another, for example) after shuffling, then a deck has not yet been randomized. Similarly, if seven proper riffle shuffles are sufficient to randomize a 52-card deck, there is not really any point in doing eight or nine (or more) because there isn’t any such thing as “more” random.

You can watch these different methods demonstrated in the video embedded just under the page break. Now we know there’s no need for a complicated Rube Goldberg-style shuffling solution just to randomize a deck of cards (well, no mathematical reason for one, anyway.)

Continue reading “Math Reveals How Many Shuffles Randomizes A Deck”