Pac-Man Fever Comes To The Pano Logic FPGA

If you’ve been reading Hackaday for a while now, you might recall the tale of Pano Logic that we first covered all the way back in 2013. They were a company that put out some very interesting FPGA-based thin clients, but as occasionally happens in situations like this, the market wasn’t ready and the company went belly up. These thin clients, now without official support, invariably got dumped onto the second-hand market. Shame for Pano Logic and their staff, but good news for hackers like [Skip Hansen].

After seeing a few posts about the Pano Logic devices and general FPGA hacking, he decided to grab a few on eBay and dive in. Using open source tools and the wealth of information that’s available [Skip] was able to get a Pac-Man simulator up and running over his holiday break, and he tells us his life may never be the same again. FPGA hacking is a fascinating subject with a lot of activity right now, and since you can get these Pano Logic boxes on eBay for less than $10 USD in some cases, now is as good a time as ever to get your feet wet.

Like many open source projects, [Skip] says his code is built upon the existing work of a number of other programmers, which let him get up and running much faster than if he had to start from scratch. He describes his code as the “glue” that mashes these projects together, but we think he’s being somewhat modest there. It took more than copying and pasting some code into an IDE to get Blinky, Pinky, Inky and Clyde doing their thing on the Pano Logic.

The biggest challenge was the lack of I/O. The Pano Logic thin clients have USB ports, but it seems nobody has quite figured out how to get them working yet. To talk to the outside world, you’ve got to get a little more creative. Eventually [Skip] was able to track down four lines he could effectively use as GPIO: two which are used to drive the LEDs on the device, and two which are used for the VGA port’s Display Data Channel (DDC) pins. Soldering jumpers from the LEDs to the unused pins in the device’s VGA connector meant he was even able to get these four GPIO lines accessible from the outside of the Pano Logic without having to cut any holes in the case.

Anyone with a Pano Logic client that has a VGA port, an Atari 2600 joystick, and who doesn’t mind soldering a couple of wires can now play Pac-Man with the bitstream [Skip] has provided. But where do we go from here? How long until we see DOOM running on it? Perhaps one of you fine readers should pick one up and see what you can do to advance the state of Pano Logic hacking. Just be sure to let us know about it.

We’ve previously covered one of the projects used to get this Pac-Man simulator off the ground, a very cool ray tracing demo for the Pano Logic developed by [Tom Verbeure]. In fact, [Skip] says that project was what got him interested in FPGA hacking in the first place. If you’re thinking of following his lead, you might also want to check out our FPGA Boot Camp.

Delicious Vector Game Console Runs Pac-Man, Tetris, And Mario

The only question we have about [mitxela]’s DIY vector graphics game console is: Why did he wait five years to tell the world about it?

Judging by the projects we’ve seen before, from his tiny LED earrings to cramming a MIDI synthesizer into both a DIN plug and later a USB plug, [mitxela] likes a challenge. And while those projects were underway, the game console you’ll see in the video below was sitting on the shelf, hidden away from the world. That’s a shame, because this is quite a build.

Using a CRT oscilloscope in X-Y mode as a vector display, the console faithfully reproduces some classic games, most of which, curiously enough, were not originally vector games. There are implementations of the Anaconda, RetroRacer, and AstroLander minigames from Timesplitter 2. There are also versions of Pac-Man, Tetris, and even Super Mario Brothers. Most of the games were prototyped in JavaScript before being translated into assembly and placed onto EEPROM external cartridges, to be read by the ATMega128 inside the console. Sound and music are generated using the ATMega’s hardware timers, with a little help from a reverse-biased transistor for white noise and a few op-amps.

From someone who claims to have known little about electronics at the beginning of the project, this is pretty impressive stuff. Our only quibbles are the delay in telling us about it, and the lack of an Asteroids implementation. The former is forgivable, though, because the documentation is so thorough and the project is so cool. The latter? Well, one can hope.

Continue reading “Delicious Vector Game Console Runs Pac-Man, Tetris, And Mario”

Pac Man On The Colour Computer 3

The 1980s were the heyday of the venerable Z80, a processor that found its way into innumerable home computers, industrial systems, and yes — arcade machines. However, not everyone had a Z80 based machine at home, and so sometimes porting is required. [Glen] is tackling this with a port of Pac Man to the Radio Shack Colour Computer 3.

The key to any good arcade port is authenticity – the game should feel as identical to the real thing as possible. The Atari 2600 port got this famously wrong. Porting to the Colour Computer 3 is easier in theory – with more RAM, a Motorola 6809 CPU running at a higher clock rate, and a more powerful graphics subsystem, fewer compromises need to be made to get the game to run at a playable speed.

The way [Glen] tackled the port is quite handy. [Glen] built a utility that would scrape a disassembled version of the original Pac Man Z80 code, look up the equivalent 6809 CPU instruction, and replace it, while placing the original Z80 code to the side as a comment. Having the original code sitting next to the ported instructions makes debugging much easier.

Level 256 as seen in [Glen]’s port.
There was plenty of hand tweaking to be done, and special effort was made to make sure all the data the original code was looking for was accessible at the same addresses as before. There was also a lot of work involved in creating a sprite engine that would reliably display the game video at a playable frame rate.

Overall, the port is highly faithful to the original, with the game code being identical at the CPU level. [Glen] reports that the same patterns used on the arcade machine can be used to complete the mazes on the Colour Computer 3 version, and it faithfully recreates the Level 256 bug as well. It’s an impressive piece of work to create such an authentic port on a home computer from 1986.

For another classic port, but with the temporal vectors flipped, check out Portal 2 on the Apple II.

 

Most Beautiful Mini-Galaga-Pi Ever!

The problem with click-bait titles, besides the fact that they make the reader feel cheated and maybe a little bit dirty for reading the article, is that they leave us with nothing to say when something is truly outstanding. But the video of [Tiburcio de la Carcova] building up a mini-Galaga cabinet (complete with actual tiny CRT screen from an old portable 5″ TV) is actually the best we’ve ever seen.

Plywood is laser-cut. Custom 3D printed parts are manufactured and assembled, including the joysticks and coin door. Aluminum panels are cut on a bandsaw and bent with a hand brake. Parts are super-glued. In short, it’s a complete, sped-up video of the cutting-edge of modern DIY fab. If that’s not enough reason to spend four minutes of your time, we don’t know what is.

[Tiburcio] has also made a mini Space Invaders, and is thinking of completing the top-20 of his youth. Pacman, Asteroids, and Missile Command are next. We can’t wait.

There are (ahem) a couple of Raspberry-Pi-powered video game emulators on Hackaday, so it’s a little awkward to pick one or two to link in. We’ll leave you with this build that also uses a small CRT monitor to good effect albeit in less-fancy clothing.

Continue reading “Most Beautiful Mini-Galaga-Pi Ever!”

1-Pixel Pacman

I usually see retro-gaming projects using tiny screens with a fair number of pixels (64×64) but what I really like is the look of making every pixel count. With this in mind I built 1-Pixel Pac-Man, the classic coin-op experience but with characters that consist of just one pixel. Playing a throw-back like this wouldn’t be the same without some vintage controls so I picked up an Atari joystick, patched it into a microcontroller, and started coding. Check it out:

Smartmatrix Bundle

This piece of hardware made the project build really easy: the Smartmatrix. [Louis Beaudioin] developed the Smartmatrix and it’s been in the Hackaday Store for a while now. The display module itself is a commodity item that is used in LED billboards. There are shrouded headers on the back of the panels, to the left and right sides, which allow them to be daisy chained. The Smartmatrix PCB plugs into one of these shields, provides a soldering footprint for the Teensy 3.1 which drives the display, and gives you the wiring to connect screw terminals from the PCB to the power terminals on the module. Why the need for beefy power jumpers? At full white the thing can draw about 3.5A — don’t worry there’s a power supply included in the bundle.

Also integral to making this look good is the diffuser panel which is frosted acrylic. The Smartmatrix is designed to be housed in a shadowbox frame; it even includes a frame backer board with a cut-out for the Teensy 3.1 so it can be programmed without opening the thing up. I like looking at the guts so I’m leaving my free floating until I come up with an interesting way to mount everything as one unit.

Programming Pac-Man from the Ground Up

matrix-man-code

If you haven’t looked into it before, the ghost AI and gameplay details for Pac-Man are absolutely brilliant. [Toru Iwatani] did a masterful job with the original, and you should take a look at all of the analysis that has been done over the years. The best collection I could find was the Pac-Man Dossier and I based most of my code on the rules described there.

Basically the ghosts have two modes, chase and scatter. The modes set the enemy targets differently; to points at the four corners of the board in scatter, and to points relative to the player in chase. The relative part is key; only the red enemy actually chases you. Another one of them looks at the red enemy’s distance and angle, and targets the reflection of that vector. Really easy, really clever, and results in enemy behavior that’s believable. It isn’t just the enemy movement, little touches like a speed penalty (1/60 of a second) for each dot the player gobbles up means the enemies can catch up if you continuously eat, but you can escape by taking the path already-eaten.

Library, DMA, and Extra Hardware

The hardware and software running the Smartmatrix made the display portions of the project really simple. First off, the Teensy 3.1 is fast, running at 96MHz in this case. Second, it has Direct Memory Access (DMA) which [Louis] used in the Smartmatrix library. This means that driving the display takes almost no CPU time at all, leaving the rest for your own use. This example of a game is under-utilizing this power… it’s totally capable of full-motion video and calculating amazing visualizations on the fly.

The PCB hosting the Teensy 3.1 breaks out several pins to one side. I’m not sure what I’ll add in the future so I actually used the extra surface-mount IO pins on the bottom of the Teensy to connect the Atari joystick (which is simply a set of switches). The are enough pads for two joysticks so I used pin sockets to interface the Teensy to the PCB so that I can get to it again later.

The kit also includes an IR receiver and remote, and also a microSD card to loading animations (there’s an SD socket on the PCB). The bundle in the Hackaday Store is a kit you solder yourself, but [Louis’] company, Pixelmatix, has a Kickstarter running for fully-assembled versions that come with a black remote and sound-visualization hardware.

Future Improvements

The game is fully working, but there are a few key things that I really want to add. The Teensy 3.1 has a single DAC pin available. I’m fairly certain the original coin-op game had mono audio. It should be possible to reproduce the sound quite accurately with this board. That would really make the project pop.

There are also a bunch of touch-ups that need to happen. I’d like to add an animation when the player is eaten by an enemy, and a countdown before the level restarts. The score, shown in binary on the right column, should be scrolled out in decimal when the game ends, and what’s a coin-op recreation without a high-score screen?

Pac-Man Clock Eats Time, Not Pellets

[Bob’s] Pac-Man clock is sure to appeal to the retro geek inside of us all. With a tiny display for the time, it’s clear that this project is more about the art piece than it is about keeping the time. Pac-Man periodically opens and closes his mouth at random intervals. The EL wire adds a nice glowing touch as well.

The project runs off of a Teensy 2.0. It’s a small and inexpensive microcontroller that’s compatible with Arduino. The Teensy uses an external real-time clock module to keep accurate time. It also connects to a seven segment display board via Serial. This kept the wiring simple and made the display easy to mount. The last major component is the servo. It’s just a standard servo, mounted to a customized 3D printed mounting bracket. When the servo rotates in one direction the mouth opens, and visa versa. The frame is also outlined with blue EL wire, giving that classic Pac-Man look a little something extra.

The physical clock itself is made almost entirely from wood. [Bob] is clearly a skilled wood worker as evidenced in the build video below. The Pac-Man and ghosts are all cut on a scroll saw, although [Bob] mentions that he would have 3D printed them if his printer was large enough. Many of the components are hot glued together. The electronics are also hot glued in place. This is often a convenient mounting solution because it’s relatively strong but only semi-permanent.

[Bob] mentions that he can’t have the EL wire and the servo running at the same time. If he tries this, the Teensy ends up “running haywire” after a few minutes. He’s looking for suggestions, so if you have one be sure to leave a comment. Continue reading “Pac-Man Clock Eats Time, Not Pellets”

The Pac-Man Bus Stop For Gamers At Heart

DSCF3537Combined

Waiting for the bus can be drag. You never know exactly when it will come, always looking down the road hoping to spot the vehicle as it turns a corner. When it doesn’t show up right away, the result is usually staring down at a ‘smart’ phone checking it for any incoming messages. Directing the attention up might produce a list of estimated arrival times and maybe even a map showing the routes that are taken throughout the day. But there is only one bus stop in the entire world, that we know of, where people can play Pac-Man while they watch for the bus to arrive.

It was created by the combining efforts of two maker communities in town. Norwegian Creations and Trondheim Makers teamed up to build an interactive gaming display that gave individuals the ability to pass the time by directing the famous video gaming character around a blue maze, eating yellow pellets and avoiding colorful ghosts along the way. This display was also made to raise awareness for the upcoming Trondheim Maker Faire that year. They choose Pac-Man as the foundation and integrated a slightly modified invention kit called Makey Makey with a Raspberry Pi running RetroPie into the actual frame of the bus stop. The people involved must have had some serious business connections in order to get approval for that. They figuratively hacked into the bus stop’s power grid gaining the necessary 230 volts required to energize the custom gaming unit. Once hooked up, anyone standing by could play Pac-Man until the bus came. [Ragnar] at Norwegian Creations told us in an email that future ideas of theirs include syncing up several stops that can communicate with each other, which could lead to some great multiplayer interactions. They also have a fantastic video that they uploaded that shows the building process of their current design. Check that out below, and let us know what other types of games you would like to see at a bus stop near you.

Continue reading “The Pac-Man Bus Stop For Gamers At Heart”