Jump to content
Andrew Davie

Homebrew C64 VIC FGPA - parallels to ARM assist

Recommended Posts

 

 

This fascinating project is replacing the on-board graphics chip on a C64 with a FGPA replacement.

 

Being mostly a 2600 guy myself, I immediately thought of the equivalent - a drop-in replacement for the TIA.  What could that do?

 

For one thing, though, I spotted some similarities with what the ARM is basically doing on our '2600 carts (and in particular on the CDFJ format). There are some interesting additions in the above video - and even though not '2600 it's already giving me some ideas. Thought it worth sharing.

 

 

 

Edited by Andrew Davie
  • Like 7

Share this post


Link to post
Share on other sites

Only watched a brief bit as I'm about to head out, but this sounds more like the F18A. It's a replacement for the TMS-9918A used in TI-99/4A, ColecoVision, and other systems listed on the bottom of this page.

 

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites

If I were making a TIA replacement with FPGA, I'd want it to still feel like the TIA... here's some ideas:

 

  1. automatic playfield mode - you could preload left/right playfield bitmaps and colors for each scanline, perhaps using per-pixel color and a higher resolution.  The FPGTIA would automatically replay the playfield on playfield on later screen refreshes, freeing up the 6502 to focus on the players and balls.  I could see this using a page flipping mechanism too so you could load one playfield while not disturbing the display of the current one.
  2. player positioning via X register write - instead of having to time in a scanline when to write to HMOVE, you could just directly modify the position register
  3. expand to full 256 colors that GITA supports by adding 1 more bit of luminance

Share this post


Link to post
Share on other sites
On 2/7/2021 at 12:28 PM, bcombee said:

If I were making a TIA replacement with FPGA, I'd want it to still feel like the TIA... here's some ideas:

 

  1. automatic playfield mode - you could preload left/right playfield bitmaps and colors for each scanline, perhaps using per-pixel color and a higher resolution.  The FPGTIA would automatically replay the playfield on playfield on later screen refreshes, freeing up the 6502 to focus on the players and balls.  I could see this using a page flipping mechanism too so you could load one playfield while not disturbing the display of the current one.
  2. player positioning via X register write - instead of having to time in a scanline when to write to HMOVE, you could just directly modify the position register
  3. expand to full 256 colors that GITA supports by adding 1 more bit of luminance

Once those ideas are implemented, you've basically ended up with an ANTIC/GTIA combo.  :)

  • Like 3

Share this post


Link to post
Share on other sites

I was just thinking about this today.  Can there be an FPGA replacement for the TIA?  Is anyone working on this?

Share this post


Link to post
Share on other sites
8 hours ago, wongojack said:

I was just thinking about this today.  Can there be an FPGA replacement for the TIA?  Is anyone working on this?

SuperCharger Disk BASIC features a software only implementation to allow x,y addressable graphics and an x,y addressable camera with tile mapping and support for regular (unflipped) bitmap graphics. ANTIC style display lists are also supported allowing multiple camera zones like in the upcoming SillyVenture KC OS release.

 

The techniques pioneered for the soft blitter and ANTIC are the same as was later implemented for the tile mapped ARM games, however an FPGA replacement could allow entirely new functionality directly in the TIA while maintaining backward compatibility.

 

  • Like 1

Share this post


Link to post
Share on other sites

 

9 hours ago, wongojack said:

I was just thinking about this today.  Can there be an FPGA replacement for the TIA?  Is anyone working on this?

IIRC someone was working this some years ago. But it was closed source and was sold for commercial use.

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, Thomas Jentzsch said:

 

IIRC someone was working this some years ago. But it was closed source and was sold for commercial use.

Interesting!  I'm mostly just interested in preservation.  I am guessing that eventually a replacement will be enabled by some sort of tech advance.

Share this post


Link to post
Share on other sites
9 minutes ago, splendidnut said:

The CollectorVision Phoenix has an Atari 2600 FPGA implementation available on their github account:

 

https://github.com/CollectorVision/Phoenix2600

I am thinking more along the lines of a replacement for the chip itself.  Like the original post is discussing a replacement chip for the Commodore 64.  They also make an FPGA SID for the C64.  Both of those can be used to repair old systems.  So if you have a physical 2600 with a bad TIA then you could get a replacement without relying on 40 year old stock (that is finally drying up).

 

Also FPGA is not the only way.  They also make an ARM SID

Share this post


Link to post
Share on other sites

Taking a deeper look at the link I posted, it appears the modules are separated out (i.e. the TIA stuff is in a separate folder).  Granted, I may be wrong, but I would think that it would still be useful and, if anything, better than starting from scratch.

  • Like 1

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