Welcome

Conclusion

It looks like the way I used an AVR to take over the Z80s bus is fairly succesful, and could be used to Internet-enable more old-school devices. For this machine, the persistent highscores are also a nice improvement.

If I were to do this again, I'd probably redesign the circuit a bit: the latches meant to give the Z80 access to the address bus are connected to the data bus too. That adds a bit of load; every device controlling the bus needs to output a bit more current because of it. They can be replaced with shift registers, which have the extra advantage that they wouldn't need as much wiring to control them.

As usual: the sources for the firmware is downloadable and licensed under the GPLv3, the same license the Ethersex framework uses. I've included the git metadata so you should be able to pull in upstream changes to the Ethersex framework with a simple 'git pull'.

« Prev 5 

14 comments

Warren O wrote at 7 Aug 2013, 21.56:

Awesome mod! Way beyond the typical high score saving kit... Is/was the twitter feed visible somewhere?

Rena wrote at 4 Aug 2013, 5.02:

This is really cool. It's not the approach I'd have taken but it's a really elegant hack, able to poke memory and display messages on-screen all without touching the game code at all and with only having to replace one component on the PCB. I'm really curious, though, how you're able to take over the bus without throwing off the game's timing. Does the Z80 completely stop when you're using the bus, or is it running a wait loop? 8-bit games tended to rely on precise timing for video effects and it surprises me that you can just go in and interrupt things without causing problems.

James R. Twine wrote at 4 Oct 2012, 15.04:

As an old school gamer, collector, and repairer of old arcade game hardware, I can honestly say, that is very cool! Lots of potential to make this work for other hardware. Well done!

Scott wrote at 10 Sep 2011, 23.10:

You have no idea how many people would pay for solid version of this for their old arcade games. Going rate on some already being made is $50 and only works on specific games. If you can make one that can go into several games you rule... I for one want this for my Z80 based Sega/Gremlin Carnival. :0)

Dylan Smith wrote at 1 Jun 2011, 12.35:

As a hacker of old hardware, I find this all very interesting. Did you know of the Wiznet W5100 IC? It's a chip with the ethernet MAC/PHY plus an embedded TCP/IP stack. I've used this with Z80 based hardware to make ethernet interfaces since it relieves me of the task of having to find and/or implement a TCP/IP stack in software (plus the CPU time it would take up on an 8 bit system). The other nice thing about the W5100 is you can make it memory mapped, and it's got pretty decent throughput. Wiznet also do a W5300 which has a 16 bit bus.

l3wood wrote at 1 Jun 2011, 6.34:

what you did was awesome, thank you for doing it and posting it! Just curious why you wouldn't use additional pins on the AVR instead of latches? Is it to use the extended memory addressing in The AVR? Otherwise it seems you could greatly simplify the circuit by using two additional ports on the micro, and a few more lines of code. I'll admit I didn't look to see if a higher pin count device would be required, or if extended memory interface (think the datasheet connects it this way) was being used in code (startphone browsing). Many thanks!

ajacks504 wrote at 1 Jun 2011, 4.00:

never mind, i got off my arse and took a look at io.c/h. its clear you unscrambled the databus in software for wiring convenience. i would have gladly spent 30 minutes soldering versus the 1 hour it would have taken me to come up with those shifting / OR'ing if statements, LOL. i guess some people are just software minded...

ajacks504 wrote at 1 Jun 2011, 3.36:

great work, very interesting. i just have 1 question, why is the databus mapping between the AVR and Z80 so bizarre? D0 to D5 ... D7 to D4, etc... was it just easier to solder pin to pin, then just unjumble them in software, or was there some bigger reason?

Daniele C. wrote at 31 May 2011, 20.43:

@Johannes: that's easy, you scan memory for your highscore number or for changed values...never hacked in ZSNES? :)

Dennis Ferron wrote at 29 May 2011, 5.03:

I find it interesting that we independently came up with almost the same design for connecting a microcontroller to an old 8-bit bus. I used two octal latches and all driven off the data bus in the same way for my Prop6502 laptop: http://www.parallax.com/tabid/708/Default.aspx

plaes wrote at 28 May 2011, 21.30:

Mame has also hiscore.dat project which probably makes finding hiscores a bit easier... http://highscore.mameworld.info/

Sebastius wrote at 27 May 2011, 21.31:

Before i even read the article i noticed the board and thought 'that's familiar, it looks just like my 1943 board!' (i really love that game). Great build!

Sprite_tm wrote at 27 May 2011, 18.50:

Johannes: Basically toying around with the game in the Mame debugger until I manage to finld the addresses, nothing too difficult

Johannes wrote at 27 May 2011, 18.15:

Wow brilliant hack as usual! :) Im just wondering how you know the correct memory locations for - say the high score?

Leave a comment:

Your name:

What does this picture say?
Sorry, this is a captcha

Your comment:


© 2006-2016 Sprite_tm - Contact