Jump to content
ClausB

Future Atari Emulator?

Recommended Posts

Interesting possibilities here:

 

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

 

Very cool idea indeed. I was tricked by the subject line first, as I do not do much with "emulators" (= software running on boring PCs), but this is more a reprogrammable 6502 machine than an emulator, as the 6502 is not emulated and custom hardware can be simulated, Nice find!

 

Carsten

Edited by cas

Share this post


Link to post
Share on other sites

I play around with Parallax SX28 and SX52 microcontrollers, and order stuff from Parallax.com all the time ('cept their basicstamp shite)... I am most interested in this!!! Thank you for sharing that link!!! :D :D :D :D :D

 

I'm gonna build one!!!

Edited by dwhyte

Share this post


Link to post
Share on other sites

I've been working with the Prop for a while now.

 

It's a fun chip, and that project is excellent! The Propeller uses a couple of it's CPU's (the thing has 8, called COGs), to feed the 6502 on a cycle by cycle basis. It runs at an effective speed of 20Mhz per CPU, with all running in parallel on an 80Mhz clock.

 

Graphics wise, two, maybe three of the COG's could do ANTIC + GTIA. Out of the box, with the standard video output circuit, it lacks the grey scale depth the Atari chips have, but has plenty of color. The long sprites are actually an advantage, but might take one whole CPU to process. Graphics from the display list might be just one though. Pokey could be a CPU --maybe. So it's close. There are 8, and it's within striking range at least!

 

I'm currently working on a software 6502, for a shot at an on ship VCS emulation. That's still in the early stages. Gotta get the 6502 up to speed, before thinking about TIA. I think TIA is probably one CPU, RIOT another one, leaving a bunch for the 6502, if needed. Running 4 or 8K ROMS on the chip directly, with no attached hardware goodies is highly likely possible. (we will see)

 

One limitation is each CPU either runs an interpreter whose instruction speed is close to Atari 8 bit assembly language speed. (it's a damn good interpreter), or it runs native assembly language (which is limited to 512 instruction words), or runs a kind of virtual assembly language where a kernel fetches and runs assembly code from main memory. (that's called LMM and it's performance is somewhere between the interpreter and native assembly).

 

I think the software CPU will have to be a two or three COG affair. Not sure just yet.

 

There is great interest in this project within the Parallax user community. Many of those people are into retro computing type stuff. If you end up with a board layout, let me know! I know several people who would buy them. That actual project is wired into a proto-board. The author has released all the docs and code, so it could happen!

 

In my blog, you can find some of the stuff I've been chipping away at. One CPU can do VCS type graphics. Two can do a lot more, and the limitation is sprites. Software sprites and bitmaps, character modes and such are easy to code and run fast. Coding the equivalent of hardware sprites is tougher!

 

Currently, I'm distracted by the software 6502 project. I've most of the core game elements for KABOOM! done, and need to cycle back to that and get a paddle hooked up so I can play it! That's a 2 COG affair so far. Sound will be another one or two, for the whole thing running on chip.

 

Ports of Donkey Kong (and that one is arcade perfect, and lots of fun), DEFENDER, Manic Miner, and others are up and running on the 32K RAM avaliable on chip! Many of these games use dynamic displays, drawn in real-time a lot like the VCS does, to avoid having to buffer all the avaliable RAM for graphics! The games themselves run in the interpreted language, SPIN, with graphics and sound running on COGs in assembly!

 

The current chip, Propeller I, has a wonderful retro feel to it. Graphically, it's got just enough to do very good quality 80's style graphics, with plenty left over for gaming logic, sound and such. At 32K it's a nice challenge. Cheap too. A little USB plug, crystal, few resistors and such, and you've got your game up and running.

 

If you want to jump in, I highly recommend this board:

 

http://www.propgfx.co.uk/forum/Blah.pl?m-1192495734/

 

It's clocked at the max 96Mhz, has VGA, composite video (and code determines PAL / NTSC), SD-Card, keyboard, mouse, Atari Joystick type game ports (I'm using a genny game pad right now, along with a coupla Atari joysticks), Serial, Audio, and an IDE connector to expose the pins for expansion, if you want. And that's a sweet idea as any old ribbon cable can be sliced up and routed to a bread board for fun 'n games.!

 

There is a file system for the SC-Card, meaning it's a lot like a little old school computer, with a DOS, etc...

 

I've done a 40x24, Atari style text display. It can actually run 80 chars if you want, or 40 in full color. See my blog for meanderings on that...

 

There is also talk of a Z80 based board of the same type.

 

This chip is a multi-processor. It runs 8 CPUs concurrently and is deterministic in it's timing. It's confusing, so I'll just put it this way: There is 32K of onboard RAM, running from $0000 to $7fff The rest is ROM, containing various goodies. On boot, one of the CPU's runs the interpreter, and it then runs your program, after having fetched it from an attached 32K EEPROM. Once running, your program then has control of the chip completely. If you run a CPU, and that CPU is running assembly code, that code is copied from the 32K HUB (system main) RAM, into the internal 2K of RAM each CPU has. From there, it's not reliant on the main memory any more, adding what is an extra 16K of program and data space.

 

A common approach is to init the CPU's, then overwrite that RAM with a screen or something, thus freeing most all of the 32K for stuff.

 

Graphics are done totally in software, with only a helper instruction, called waitvid that helps with serializing the display data. The rest is up to you.

 

Graphics done so far:

 

Linear addressable bitmaps 1, 2 or 8 bits per pixel (we need a 4, but nobody has bothered yet) ranging from 40 pixels to 720 pixels horizontally, with 120 or so colors, if you push it. Artifacting on NTSC will do well over 400 colors. 6 grey shades. Vertical is either interlaced or not, and color itself is either interlaced or not. That's like Atari -vs- C64 pixels where artifacting is concerned.

 

Sprite modes, 8 bits per pixel, 30 to 50 sprites.

 

Tile displays with resolutions and depths similar to the bitmaps, and color cells, if you want them.

 

Text (character mode) displays, 1 bit per pixel, 2 bits per pixel, 8 bits per pixel.

 

Everything but the sprite modes is a one CPU deal, not horrible to code up. Most people (myself included) share up graphics and sound routines, so there is lots to work from.)

 

The chip also makes a great, dedicated GPU. Look at PropGFX, for an excellent implementation of that. I think that's being released after the first of the year.

 

I'm interested in the 6502 work also because the work necessary to get the chip to present as a ROM for an older system has now been done! This means Chimera type projects, with less complexity in hardware would be possible, and with video output coming along for the ride! Not sure what that means for most systems, but it's there, and it's cool!

 

I'll shut up now. I just really am having a good time on this little CPU. I've got it and my Atari 400 out for retro fun, duplicating video modes, gaming, etc...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...