C64 Emulator For The Arduino Due

c64

Almost a year ago, [miker00lz] started a thread on the Arduino forums telling everyone about a 6502 emulator and BASIC interpreter he wrote for an Arduino Uno. The chip inside the Uno isn’t a powerhouse by any means, and with only 2KB of RAM it’s far less capable than just about any computer from the 70s. Arduino works on a lot of different chips, though, and after a few months, [Jan] turned an Arduino Due into a Commodore 64 emulator.

[Jan]‘s code isn’t limited to the DUE, and can be used with any chip with enough memory. If you’re feeling fancy, you can connect a TFT display for all the vintage goodness of PETSCII graphics, all while running a faster BASIC than the very stripped down EHBASIC.

Because the emulator is using software to talk to the outside world, it should be possible to use this project to interface with the cooler chips found in Commodore machines – SIDs for one, but also the cartridge port for some vintage Ethernet goodness. It’s not even limited to Commodore machines, either: the POKEY chips found in Atari 8-bit micros are seriously underutilized in the chiptune and demoscene, and having modern hardware to play with these chips couldn’t hurt in the slightest.

[Read more...]

Hackaday Links: April 20, 2014

hackaday-links-chain

[Josh] hit the same issue we’ve faced before: cable modems don’t match a form factor and usually don’t make themselves easy to mount on something. We could complain about routers as well, but at least most of those have keyhole slots so you can hang them on some screws. Inspiration struck and he fabricated his own rack-mount adapter for it. Velcro holds it in place, with a cutout bezel to see the status lights and an added fan to keep things cool.

Here’s a pair of strange but possibly interesting ones that were sent in separately. The first is an analysis of how much energy short-run CNC prototyping consumes versus traditional manufacturing. The other is an article that [Liz] wrote about getting started with CNC mill bits. She says she compiled all that she learned as she was getting started in the field and wants to save others the effort.

This one goes back several years, but who doesn’t love to hear about a voice-controlled wheelchair?

So you can solder QFN parts but you can’t hammer a nail straight into a piece of wood? The answer, friend, is a laser guided hammer. Someone hire this [Andybot] person, because the solution to the problem shows the ability to out-think an interesting dilemma: how do you put a laser in a hammer head and still use it to hit things?

We’ve seen a lot of these long-range WiFi hacks over the years. This one is worth looking at because of the work done to create an outdoor mount that will stand the test of time.

And finally, we’re still really fond of this 2-bit paper processor that helps you wrap your brain around what’s going on with those silicon wafers that rule our everyday lives. [glomCo] liked it as well, and actually coded an emulator so that you can play with it without printing anything out on paper. We think it takes away some of the fun, but what an excellent programming exercise!

An Emulated Commodore 64 Operating System for the Raspberry Pi

Commodore-PI

 

It’s no secret that Commodore users love their old machines with the Commodore C64 being chief among them with 27 Million units sold worldwide. Speaking as a former Commodore Business Machines (CBM) engineer the real surprise for us is the ongoing interest and devotion to an era typified by lumbering 8 bit machines and a color palette consisting of 16 colors. Come to think about it, that’s the description of Minecraft!

Jump forward to today and it’s a generation later. We find that the number of working units is diminishing as age and the laws of entropy and physics take their toll.

Enter the Commodore Pi, an emulated Commodore 64 operating system for the Raspberry Pi. The goals of the project include an HDMI and composite compatible video output, SID based sound, Sprites and other notable Commodore features. They also plan to have hooks for more modern technology to include Ethernet, GPIO and expansion RAM.

A video demo of the emulator can be found below. If you’re just warming up to the Commodore world, you’ll definitely want to know the real story behind the C128.

[Read more...]

Fail of the Week: CPLDs That Release Blue Smoke

fotw-floppy-emulator-burned-cpld

The card you see above is a floppy drive emulator for Macintosh. [Steve Chamberlain] has been hand assembling these and selling them in small runs, but is troubled by about a 4% burn-out rate for the CPLD which has the red ‘X’ on it. He settled into figure out what exactly is leading to this and it’s a real head-scratcher.

He does a very good job of trouble-shooting, starting with a list of all the possible things he thinks could be causing this: defective part, bad PCB, bad uC firmware, damage during assembly, solder short, tolerance issues, over-voltage on the DB connector, or bad VHDL design. He methodically eliminates these, first by swapping out the part and observing the exact same failure (pretty much eliminates assembly, solder short, etc.), then by measuring and scoping around the card.

The fascinating read doesn’t stop with the article. Make sure you work your way through the comments thread. [Steve] thinks he’s eliminated the idea of bad microcontroller code causing damage. He considers putting in-line resistors on the DB connector but we wonder if clamping diodes wouldn’t be a better choice (at least for testing purposes)? This begs the question, why is he observing a higher voltage on those I/O lines during power-up? As always, we want to hear your constructive comments below.


2013-09-05-Hackaday-Fail-tips-tileFail of the Week is a Hackaday column which runs every Wednesday. Help keep the fun rolling by writing about your past failures and sending us a link to the story – or sending in links to fail write ups you find in your Internet travels.

Twitch Plays Pokémon: Better than Prime Time TV

Twitch_plays_pokemon_animated

What do you get when you put together a classic Game Boy game, some glue code, a streaming video website and 1 internet? Twitch Plays Pokémon (TPP), a social experiment where thousands of people “cooperatively” play a game of Pokémon Red/Blue. TPP was created by an anonymous Australian programmer who enjoyed the SaltyBet interactive channel on twitch.tv. Rather than use SaltyBet’s method of having users interact via an external website, [TPP's creator] decided to use twitch’s own IRC based chat servers. Starting with VisualBoyAdvance, a popular C/C++ based Game Boy emulator, [TPP's creator] began building the system. [TPP's creator] went with python to create the web-to-emulator interface. A JavaScript app displays the live moves on the right side of the screen.

Gameplay is simple – users type their command (Up, Down, A, B) into their IRC or web client. In the original configuration, commands were processed in the order they arrived at the game. The system worked until the whole thing went viral. With thousands of people entering commands at any given time, poor “RED” would often be found spinning in place, or doing other odd things. The effect is so compelling that even [Randal Munroe] has written an XKCD entry about it. To help the players get through some of the tricky parts of the game, [TPP's creator] added a game mode selection. Users can play in “Democracy” where the system takes votes for several seconds, then issues the highest voted command. The original anything goes game mode was renamed “Anarchy”. Switching from one mode to the other is determined by the users themselves in real-time.

[Devon], one of our readers, has been busy as well. He’s written up a tutorial on turning a Raspberry Pi into a dedicated TPP viewer. We’d love to see a TPP battlestation - a Game Boy modified to display TPP, as well as send commands to the IRC servers when buttons are pressed. Who will be the first reader to knock that hack out?

The BitBox Console Gets Upgraded

BitBox Rev2

The Bitbox, an open source game console, has received a number of updates in the past couple of months. Last time we covered this DIY console, [Makapuf] had just managed to get the first revision to run a simple game. The second revision will increase the colors to 32k, add another channel of sound for stereo, switch controllers from PS2 to USB, and add support for Olimex’s UEXT expansion devices.

While the hardware upgrades are impressive, there’s been a lot of work on the Bitbox software as well. A new game demo called Fire was created as a set of tutorials to help people start developing for the console. There’s also a BitBoy, a GameBoy emulator for the Bitbox. BitBoy is a ported version of gnuboy for the ARM Cortex-M4 processor that powers the Bitbox. It successfully emulates a number of commercial GameBoy ROMs.

We’re looking forward to seeing what’s next for the Bitbox. After the break, check out a video of BitBoy running on the Bitbox.

[Read more...]

A Deep Dive Into NES Tetris

Tetris AI

Back in 1989, Nintendo released Tetris for the NES. This detailed article first explains the mechanics of how Tetris works, then builds an AI to play the game.

To understand the mechanics of the game, the ROM source was explored. Since the NES was based of the MOS 6502 microprocessor, this involves looking at the 6502 assembly. The article details how the blocks (called Tetriminos) are created and how they move across the screen. The linear feedback shift register used for random number generation is examined. Even details of the legal screen and demo mode are explained.

After the tour through how Tetris works, an algorithm for the AI is presented. This AI is implemented in Lua inside of the FCEUX NES/Famicom emulator. It works by evaluating all of the possible places to put each new Tetrimino, and choosing the best based on a number of criteria. The weighting for each criterion was determined by using a particle swarm optimization.

The source for both the Lua version and a Java version of the code is available with the article. Everything you need to run the AI is available for free, except the Tetris ROM. If you’re interested in how 8 bit games were built, this dissection is a great read.

[via Reddit]