dgrubb Posted November 25, 2017 Report Posted November 25, 2017 (edited) Hello, Atari IO! I'm a long-time fan of retro computing, but pretty new to Atari. I don't have very much in the way of personal experiences with Atari or arcades, as many here do, in fact I suck at playing video games, but came to it through another route. I'm an embedded software developer so I enjoy learning about different platforms, CPU architectures and clever electronics. I got started on a project to emulate a 2600 in a micro-controller (currently lacking a TIA, but the 6507 mostly works ) and came to really appreciate the elegance of it considering the cost restrictions in place, along with the creativity of the developers tasked with creating engaging games. I'm also very interested in the Jaguar. Despite its Hindenburg-esque history it remains a fascinating console: custom ASICs, weird co-processor architecture, love it. I hope to learn a lot more about it (I decided to sign up after coming across the thread with the JagDuo PCB and listening to a few of Shinto's game-by-game podcasts) and maybe even enough to be able to try my hand at a bit of homebrew hardware and software. Cheers, Dave. Edited November 26, 2017 by dgrubb Justin, RickR, Shinto and 2 others 5 Quote
Justin Posted November 26, 2017 Report Posted November 26, 2017 Welcome to Atari I/O Dave! We're happy to have you here! Shinto's podcasts are wonderful, we need to send him a big thank you for leading you here! Hope you enjoy your time in the forums dgrubb 1 Quote
nosweargamer Posted November 26, 2017 Report Posted November 26, 2017 Greetings! I assume you have, but if you started in the middle, be sure to check out Shinto's first ep. It has a ton of tech stuff in it. Justin and dgrubb 2 Quote The No Swear Gamer on YouTube: https://www.youtube.com/channel/UChtJuo040EOCTVziObIgVcg Host of The Atari 7800 Game by Game Podcast on iTunes, Stitcher and YouTube
Clint Thompson Posted November 26, 2017 Report Posted November 26, 2017 Cool, hopefully you try your hand at some Jaguar programming even if it's using the Rb+, that thing is actually quite powerful for what it is. dgrubb and Justin 2 Quote 7800 - 130XE - XEGS - Lynx - Jaguar - ISO: Atari Falcon030 | STBook |STe
dgrubb Posted November 26, 2017 Author Report Posted November 26, 2017 Thanks for the warm welcome, guys! Cool, hopefully you try your hand at some Jaguar programming even if it's using the Rb+, that thing is actually quite powerful for what it is. Yes, I'd like to go beyond Rb+ but that's probably a good place to start. Justin 1 Quote
RickR Posted November 26, 2017 Report Posted November 26, 2017 Welcome! We'd love to know more about your 2600 emulation project. Was that for a commercial product? Pretty cool stuff. dgrubb and Justin 2 Quote
dgrubb Posted November 26, 2017 Author Report Posted November 26, 2017 (edited) Welcome! We'd love to know more about your 2600 emulation project. Was that for a commercial product? Pretty cool stuff. Sure! It was a kind of research project, really. The schematics for the 2600 are very simple looking (three ICs!) so I figured it would be possible for somebody to understand it top-to-bottom. If you can write a good emulator of a system then you can reasonably claim to have a good knowledge of it. I'm also interested in uCs and the idea of fitting an entire console into the computational power of a single IC or two tickled me a bit. Having said that, embedded stuff is usually more I/O bound so raw processing power is less of an issue than some other architecture characteristics (see below). There are a few related and experimental projects on my GitHub: HiFive-2600: https://github.com/dgrubb/HiFive1-2600 My first attempt. This is based around a new RISC-V uC which is very performant and can be clocked at a massive 300MHz+ so I thought it would be a great platform. Unfortunately, it only has 16kb of scratch memory, supplemented by an external SPI flash chip. The SPI flash is memory mapped, but the access time is comparatively slow and causes a cache flush. The result is that a lot of the massive processing power is wasted unless you can fit the whole program in 16kb, which isn't going to be the case here. Still, on this version you can load a cartridge and step through each processor tick, while printing the 6507 state on a console. STM32-RIOT-6502: https://github.com/dgrubb/STM32-RIOT-6502 Similar to the above on a slower uC, but one with enough RAM to fit the whole program and run at full-speed. I can just about get the 6507/memory/cartridge state emulation to execute within a 1.19MHz period, enough to run those parts at the the same speed as a real 2600. The TIA is out of the question though, as it uses an NTSC colour clock of 3.58MHz. As with the other project you can step through the emulation state, or run it at full-speed. The TIA has a very simple state machine, but the timing requirements are quite strict. To finish this project off and get some actual video out going I'm planning on implementing the TIA in a separate uC. That's a work-in-progress for the time being. I was pretty chuffed just to get the 6507 emulation (mostly ) working, probably quite a few bugs and mistakes which will need correcting which I'll find as I flesh out the unit tests. It got the point where I was seeing 6502 op-codes in the license plates of other cars during my commute! Edited November 26, 2017 by dgrubb RickR and Justin 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.