Wednesday, November 26, 2008

Cool Electronics things....

So first a couple of links:-


http://www.belogic.com/uzebox/index.htm
http://www.ladyada.net/make/fuzebox/


Now whats this got to do with anything? Well have a look at these videos




Very cool indeed, more so because its not a particually expensive chip. So I was wondering what more you could do with it, and I've been having a look at some videos, and the specs. Now I've always used PIC Microchips, but I've noticed an increasing number of projects using these ATmega things and after looking at the datasheets, I can see why. The assembler is actually pretty nice! It looks normal! PIC stuff is okay, but I'm not a fan where as the ATmega has 32 registers, hardware multiplys, and most instructions take a single cycle! Now that IS interesting! Now have a look at this video....





This guy does various demos with it, and he gets some pretty cool results for such a small little device. So, I've ordered myself a little kit to playwith, and I might try hooking it up to a VGA monitor (I'm still struggling with PAL colour output, this phase shift stuff is a tad confusing). The other thing this little chip can do that PIC's simply can't, is address external RAM without having to do all the work yourself! Thats awesome! It means you could have megs of addressable SRAM (in the same way a Plus/4 could) without any speed loss, where as a PIC would really struggle as you have to set address lines, read and write data lines et..

What I would really like to try is making a GPU for a plus4. If I use dual port RAM, I could get the plus4 to write into the ATmegas ram, then get it to use it as a frame buffer and render things. This means you could switch the plus4's screen off (saving lots of CPU time), and then output the signal from the cartridge's ATmega chip. You could then add sprites, sound and all the rest without too much effort. if you really wanted to, you could have multiple chips each doing a different job - one for 10 channel SID emulation (or something), another for pure sample playback, and perhaps one to deal with chatacter maps, and another could add sprites etc... kinda like an arcade machine does.

Course...that won't happen. but i'd love to try and hook one up to a Plus4 and see what it would be like. Having already done a RAM expansion without opening up the plus4, I don't see why something like this couldn't be done - it'd be neat!

4 comments:

Vladimir Janković said...

Take a look at this:

http://en.wikipedia.org/wiki/HYDRA_Game_Development_Kit

based on:

http://www.parallax.com/tabid/407/Default.aspx

Great stuff.... little more complicated but possibilities are great....
I am currently waitng for development kits to arrive... :)

Mike said...

I have one of these, but have never found the time to play with it! I also have the XGameStation from http://www.xgamestation.com/
(who also does a parallax based game console)

Its a little strange to code for, but very cool. I'm not keen on the ASm for the hydra, where as the ATmega has a really nice looking asm format.

Vladimir Janković said...

Yeah.... atmel is more like 8bit stuff...

We need this propeller parallel procesing and raw power... (I think it gives most bang for buck ... 80 mips for few $...)

Propeller has built in composite video signal generator... I want to combine it with c64 video output to make new graphic modes..
Something like your suggestion for new graphic card for plus4 but it would work like overlayed pic on original c64 output so you could combine two of them.... Maybe more sprites, maybe more colors... there are lot of possibilities... :)

Mike said...

Yeah, I really should look it out and play with it more, but what I really like about the ATmega is that it has a built in address bus allowing external RAM to be attached with ease. These other devices mean you have to read/write ports to access RAM, and thats a pain.

But theres no doubt that the parallax chip is pretty cool. One of the things I wanted to try with it was to have each cog do a specific job like character map or sprites, and forward the result to the next one. You could then decide to have more playfields or sprites depending on the task at hand - or more audio channels for that matter I guess....