Jump to content
IGNORED

My Pet Project - MMDC Retro Player


Crispy

Recommended Posts

I've been working on this project off and on (mostly off) since 2010. It's still a work in progress, but it's far enough along now that I feel comfortable in sharing it. The original goal of the project was to recreate an Atari 2600 in an FPGA, but as things progressed the project goals became more ambitious. What I ended up with is an FPGA based Atari 2600 that uses HDMI instead of RF for its television interface, and USB for a slew of implemented and planned features, all wrapped up in an enclosure that is styled to resemble a Walkman.

 

For those who are interested, I wrote the RIOT and TIA cores in Verilog from scratch, and used the FPGA Arcade branch of Daniel Wallner's "T65" 6502 CPU core. Special thanks to Mike Johnson and Wolfgang Scherr over at FPGA Arcade (www.fpgaarcade.com) for updating the T65 core, and for sharing their work.

 

Features

  • Atari 2600 hardware faithfully recreated in an FPGA.
  • HDMI video/audio output for connecting to modern TVs.
  • Analog audio line output for use when connecting to a DVI monitor that doesn't have sound.
  • Full support for most Atari 2600 peripherals.
  • Enclosure styled to resemble a Walkman for total immersion in nostalgia.
  • Pause button that will freeze the game for those times when you need to take a break.
  • USB connector for upgrading the firmware, and also for a multi-protocol communications bus.
  • Test pattern generator that can be used to aid in adjusting your TV settings.

Planned Features

  • Capture screen shots to FLASH, and then transfer to a PC via USB.
  • Capture live game video and audio to a PC via USB.
  • Save and recall machine states.
  • PAL timing and palette.

Wish List

  • Complete debugging/monitor environment on PC via USB with flexible user specified triggering for trapping any hardware condition.
  • Other things I have yet to think of.

Specifications

 

HDMI

  • Video Formats
    • 640 x 480 @ 59.94 Hz
    • 800 x 600 @ 59.94 Hz
    • 1024 x 768 @ 59.94 Hz
    • 1280 x 720p @ 59.94 Hz
    • 1600 x 1200 @ 59.94 Hz
    • 1920 x 1080p @ 59.94 Hz
    • 1920 x 1200 @ 59.94 Hz
  • Audio Formats
    • 48 KHz linear PCM, 2 channels

Analog Audio

  • 940 mV P-P into 47K ohms
  • 360 mV P-P into 600 ohms

Test Patterns

  • H Ramp
  • V Ramp
  • H grayscale bars
  • V grayscale bars
  • 100% color bars
  • 75% pseudo SMPTE color bars
  • 16 x 16 cross hatch
  • H burst

Photos

 

View of the rear side: HDMI and joystick connectors.

post-41074-0-11552300-1474253168_thumb.jpg

 

Another view of the rear side.

post-41074-0-76072500-1474253176_thumb.jpg

 

View of the left side: buttons, USB connector, B&W/Color switch, left and right difficulty switches.

post-41074-0-06870800-1474253188_thumb.jpg

 

Another view of the left side.

post-41074-0-30232600-1474253197_thumb.jpg

 

Top down view of the main PCB.

post-41074-0-98082500-1474253206_thumb.jpg

 

All ready to go. Just press PLAY.

post-41074-0-85095700-1474253216_thumb.jpg

Edited by Albert
  • Like 37
Link to comment
Share on other sites

The switches should be less recessed than they are now.

 

Can this accept non-standard cart sizes like a supercharger or xonox double ender?

 

How about make the ff and rw buttons actually fast forward or rewind through the game? This can be done brute force by keeping a buffer of savestates.

Link to comment
Share on other sites

 

The switches should be less recessed than they are now.

Good eye. Yes, they are recessed a bit too far. I had designed the PCB and enclosure so that the ends of the switches would stick out about 20 mils when the part is centered on its footprint. The switch leads are much smaller than the holes on the PCB, and I must have positioned the switches too far back when I soldered them on the board. I would take it apart, and reposition the switches, but I'm in the process of making some design changes to the enclosure, one of which is adding a 20 mil chamfer to all of the switch cutout edges.

 

 

Can this accept non-standard cart sizes like a supercharger or xonox double ender?

That is a good question. The cartridge well is 2.65 inches long, and was designed so that 1.2 inches of a standard Atari cartridge would be exposed when the cart is fully inserted. This, I thought, was enough to grab onto in order to make it easy to remove the cartridge. Do you have the dimensions for the supercharger and xonox cartridges?

 

 

How about make the ff and rw buttons actually fast forward or rewind through the game? This can be done brute force by keeping a buffer of savestates.

That's an interesting idea. Currently, the fast forward button is used as the Game Select switch, and the rewind button for the Game Reset switch while the game is not paused. When the game is paused, then the fast forward and rewind buttons are used to control an OSD menu that allows the user to do things like change the HDMI output format, adjust the VCS vertical size and centering, and turn on and select test patterns. I'm sure I could purpose the buttons for additional functions as well.

Link to comment
Share on other sites

I don't have the dimensions of a supercharger cart. But I can tell you it won't fit if it has to go in so deep. Also, this should be tested with a harmony cart, too. Actually I can care less about the supercharger or any other funky shaped carts.

 

But for a harmony cart to not work, that'd be a deal breaker.

  • Like 1
Link to comment
Share on other sites

Dude!! That is rad!

 

Not only is it compact but HDMI!! Beautiful design.

 

Any plan for a production run or? I imagine you put more than a few hours into this....

 

 

This is really cool! Any clue what one of these would cost?

 

At one point I considered maybe producing and selling these, but then reality slapped me in the face when I started getting quotes for having the various bits and pieces manufactured. To be honest I really don't want to say what it cost me to have this one-off prototype manufactured, but I'll give you a hint. It was more than the price of an iPad Pro.

 

Since the question came up, I became curious about what it would cost produce these in quantity, so I did some calculations based on some probably wildly inaccurate guestimates, and came of with the following. If I were to do a production run of 100 units, then the retail price would be $769.50 per unit. For a run of 1000 units, the retail price would be $384.75 per unit. The retail price includes what I think is a fair markup over the manufacturing cost.

 

So here's the problem. I could probably find 100 people who would want to buy one of these, but probably none of them would want to pay the $770 retail price. Interesting side note here: this retail price is almost exactly the same as the retail price adjusted for inflation of the Atari VCS when it was released in 1977. The problem is even worse when trying to make a case for a production run of 1000 units. The market probably isn't that big, so I wouldn't be able to sell all of them, and would end up losing a lot of money.

 

Then there are the legal issues to contend with. I remember reading somewhere that Atari holds a number of patents related to the architecture of the TIA chip. Even if those patents have expired, Atari probably still has some ownership of the rights to the intellectual property. I doubt if they would just let me sell these without them getting a piece of the action.

 

Of course if someone comes up with a business plan that would allow us to market my product for a price that people would be willing to pay, then I'm certainly open to that.

  • Like 2
Link to comment
Share on other sites

I don't have the dimensions of a supercharger cart. But I can tell you it won't fit if it has to go in so deep. Also, this should be tested with a harmony cart, too. Actually I can care less about the supercharger or any other funky shaped carts.

 

But for a harmony cart to not work, that'd be a deal breaker.

It's 1.75" from the inserted end back to the point where the Supercharger begins to taper out to a larger dimension. Looks like a no-go with the cartridge well being 2.65" deep. That depth gets you into to the maximum dimensions on the Supercharger.

Link to comment
Share on other sites

I don't have the dimensions of a supercharger cart. But I can tell you it won't fit if it has to go in so deep. Also, this should be tested with a harmony cart, too. Actually I can care less about the supercharger or any other funky shaped carts.

 

But for a harmony cart to not work, that'd be a deal breaker.

Yeah, I was kind of worried about odd shaped cartridges, that's why I abandoned my original plan. When I first came up with the idea of the Walkman enclosure, I was going to make it exactly like a Walkman. It was going to have a door that flips open when you press the STOP/EJECT button. You drop the cartridge in, close the door, and then press the PLAY button which causes the cartridge connector to slide in and connect to the cartridge after which the hardware powers up. When you press the STOP/EJECT button it would turn the power off, and disengage the connector. Press the STOP/EJECT button again, and the door flips open.

 

First, the mechanical design for something like that would be complex, but the bigger problem is that it would only work with standard Atari cartridges. So then I had the idea of designing the cartridge slot so that when the cartridge is fully inserted, the end of it would be flush with the edge of the enclosure. Pressing the STOP/EJECT button would then turn off the power, and push the cartridge out. Then I realized that the force required to push the cartridge out would probably be more than plastic parts could handle, so I would have to make the mechanism out of some kind of metal.

 

I arrived at my current design as a sort of compromise. I didn't want the cartridge to stick out too far, because I thought that it wouldn't be visually appealing, but I needed enough of it sticking out to have to something to grab onto in order to remove the cartridge. It was at that point when I considered maybe making some kind of extender/adapter cartridge that puts a connector out close to the end of the enclosure so that odd shaped cartridges would plug in.

 

OK, that's enough rambling for now. Yes, I have a Harmony cartridge, and it works perfect. In fact, I'm pleased that every cartridge and every game that I've tried works. Even the game "Meltdown", which breaks on emulators, works fine on my hardware. That makes me a happy boy.

Edited by Crispy
  • Like 1
Link to comment
Share on other sites

Slick!

 

Video Formats

  • 640 x 480 @ 59.94 Hz
  • 800 x 600 @ 59.94 Hz
  • 1024 x 768 @ 59.94 Hz
  • 1280 x 720p @ 59.94 Hz
  • 1600 x 1200 @ 59.94 Hz
  • 1920 x 1080p @ 59.94 Hz
  • 1920 x 1200 @ 59.94 Hz

Since the frame rate is totally under the program's control, it's common for games to output an invalid number of scanlines, and thus a different frame rate. Old analog sets could handle this for the most part. Modern sets sometimes have trouble. What happens on your device when a game doesn't run at 60 fps?

 

Digital Press has a nice scanline list. Anything other than 262 scanlines will be at a framerate other than 60. A few examples:

 

Buck Rogers uses 240 scanlines at 65.50 fps

post-3056-0-55778500-1453751021_thumb.png

 

Cosmic Commuter uses 259 scanlines at 60.69 fps

post-3056-0-18669800-1453751013_thumb.png

 

Desert Falcon uses 281 scanlines at 55.94fps

post-3056-0-22191700-1453751005_thumb.png

 

It's also comon for frame rates of a game to change depending upon what's being displayed. Desert Falcon drops to 279 at 56.34 fps during it's demo:

post-3056-0-77663700-1453751326_thumb.png

 

and 280 at 56.14 fps while playing:

post-3056-0-67645300-1453751390_thumb.png

Link to comment
Share on other sites

Since the frame rate is totally under the program's control, it's common for games to output an invalid number of scanlines, and thus a different frame rate. Old analog sets could handle this for the most part. Modern sets sometimes have trouble. What happens on your device when a game doesn't run at 60 fps?

Simple answer: the triple buffer either drops a frame or repeats a frame every so often depending on how the two timings are beating against each other.

 

Complex answer: I had originally intended to genlock my output vertical timing to the vertical timing from my VCS core. That would produce a nice low latency display without the artifacts of a triple buffer that drops or repeats a frame every so often. But then I discovered that a lot of games out there produce odd or unstable vertical timing, and that is an insurmountable problem. Most modern HDMI televisions have very little tolerance to video timing that veers from the VESA or SMPTE standards that it supports. In fact some television designers are absolute Nazis about it. If the video timing is even a tiny fraction off from the SMPTE or VESA standard, then they consider it an invalid signal, and black out the display.

 

Now, I've designed my triple buffer for the lowest latency possible. with the best case being 5 lines, and worst case 1 frame of latency, but the problem remains that a triple buffer will drop or repeat a frame every so often when the input and output timings differ. That's just the nature of the beast. Of course I could go with a single buffer which would get rid of the frame drops and repeats, but would show a screen tear rolling through the image every so often. I think I would rather live with the effects of the triple buffer.

Edited by Crispy
  • Like 3
Link to comment
Share on other sites

  • 1 month later...

 

 

 

At one point I considered maybe producing and selling these, but then reality slapped me in the face when I started getting quotes for having the various bits and pieces manufactured. To be honest I really don't want to say what it cost me to have this one-off prototype manufactured, but I'll give you a hint. It was more than the price of an iPad Pro.

 

Since the question came up, I became curious about what it would cost produce these in quantity, so I did some calculations based on some probably wildly inaccurate guestimates, and came of with the following. If I were to do a production run of 100 units, then the retail price would be $769.50 per unit. For a run of 1000 units, the retail price would be $384.75 per unit. The retail price includes what I think is a fair markup over the manufacturing cost.

 

So here's the problem. I could probably find 100 people who would want to buy one of these, but probably none of them would want to pay the $770 retail price. Interesting side note here: this retail price is almost exactly the same as the retail price adjusted for inflation of the Atari VCS when it was released in 1977. The problem is even worse when trying to make a case for a production run of 1000 units. The market probably isn't that big, so I wouldn't be able to sell all of them, and would end up losing a lot of money.

 

Then there are the legal issues to contend with. I remember reading somewhere that Atari holds a number of patents related to the architecture of the TIA chip. Even if those patents have expired, Atari probably still has some ownership of the rights to the intellectual property. I doubt if they would just let me sell these without them getting a piece of the action.

 

Of course if someone comes up with a business plan that would allow us to market my product for a price that people would be willing to pay, then I'm certainly open to that.

 

I don't think you have to worry about Atari unless you invoke Atari in the name of your device. Then you face trademark infringement issues.

 

Actually, I have always wondered about Atari's patents, if any, on the TIA or the 2600 console. Atari could not patent the functionality of the 6507 or the 6532, those were MOS chips that anyone could purchase. The TIA was Atari's custom chip and not available outside the company. Coleco and Mattel cloned the TIA for their 2600 compatible devices. If Atari had any patents on the TIA, it could have nipped the clone efforts in the bud. I suspect that Atari instead relied on the architecture of the 2600 and the TIA being protected as a trade secret. Unfortunately, trade secrets lose protection to the outside world's exploitation once they cease being secret, and Atari's programmers knew all about the system. Whatever the historical context, patents expire after 20 years, so your device is quite safe. Unfortunately, the price is not sustainable.

  • Like 1
Link to comment
Share on other sites

  • 5 months later...
  • 4 weeks later...

Good thinking on the use of FPGA's I've always wanted to look more into the programming language HDL. Did you know there's a computer called MIST. I ran into this sometime last fall on a video that I saw.

 

If you are interested here's a link to the video:

Edited by Crimson Tibiasm
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...