SuperCPU for the Vic-20

Modding and Technical Issues

Moderator: Moderators

User avatar
plbyrd
Vic 20 Hobbyist
Posts: 118
Joined: Tue Jun 01, 2010 9:32 pm
Website: http://thesharp.ninja
Location: Clarksville, TN
Occupation: Software Engineer

Re: SuperCPU for the Vic-20

Postby plbyrd » Tue Sep 12, 2017 10:40 am

The more you post, the more excited I get. It's great to see real hardware being tested.

User avatar
Kakemoms
Vic 20 Afficionado
Posts: 483
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Postby Kakemoms » Wed Oct 04, 2017 2:28 pm

A short update:

While we wait for the MachXO3L-9400, I have been debugging and preparing for PCB mounting and soldering. I have decided to order a fresh set of PCBs to get the first devices as streamlined as possible to prevent hand fixing.

The PCBs will be mounted with my freshly built openPNP machine and then reflow soldered in an oven. Connectors will be mounted manually. After PCB mount, softcores will be downloaded onto the cards through USB. They will then be tested and assembled into the laser cut case.

I have also started to program the VGA interface. In the start it will be a simple VIC simulation with 1280x720 output at 6X x-resolution and 3X y-resolution. This will give you 26 columns and 30 rows of output (208x240 pixels) as the maximum. I have deduced a fast two-pass 3X filter to improve the pixelated graphics, but it will be optional once I have made it into software. The whole point in having a VGA output is to be able to get (some) of your old games to play through that, but it is not simple and will take a lot of tweaking to get there... So patience is gold.

The 65C02 is compatible with the 6502, mostly. There are new instructions that replace the undocumented opcodes, and they execution is not cycle exact. So any time-critical routines or programming is going to break. Since its at least 25 times faster anyway, you probably don't care much.

I have also worked on my own c65n02 with a cut-down instruction set. The interesting part about it is that all instructions take 1 cycle and it runs at 100MHz. So 3-cycle instructions like "STA $2C,X" runs 300 times faster than on your Vic-20. At the moment development has a low priority, and the final version may be slightly slower, but the plan is to use it for some interesting co-processing like graphics or neural nets.

COREi64
Vic 20 Drifter
Posts: 29
Joined: Fri Oct 16, 2015 8:02 pm
Website: http://www.corei64.com
Location: Canada

Re: SuperCPU for the Vic-20

Postby COREi64 » Fri Oct 20, 2017 2:08 pm

This is really fantastic. Simply brilliant!

Count me in when you're ready!

Thomas
COREi64

User avatar
Kakemoms
Vic 20 Afficionado
Posts: 483
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Postby Kakemoms » Mon Oct 23, 2017 2:03 am

Short update:

The new boards arrived last week and will be tested once the MaxhXO3L-9400ALV arrives. I have asked the supplier for an update as they should be shipped this week (12 week delivery time). Hopefully there are no more delays from Lattice.

The VGA display port is currently being tested. The code is still in alpha, but it now shows a 1280x1024 60Hz stable output (but with a few bugs). The pixel clock is 108MHz and memory access seems to work fine. The 3X code hasn't been implemented yet and there are two ways to do that: 1) On-the-fly pixel scaling or 2) Memory-map pixel scaling. One-the-fly scaling requires less memory than a full memory map, but is very process intensive and will consume more of the MachXO3's resources. I will probably end up testing both to see what works better.

On-the-fly scaling will be more critical with respect to raster-effects. E.g. to get NTSC raster effects correct, a 60Hz output will be needed and 50Hz for PAL. Since VGA is only 60Hz, this has to be emulated for PAL games. Its not impossible, but in practice it would involve frame-skipping (e.g. when PAL shows 5 frames, this would need to be showed 6 times on a VGA). That is purely due to timing to prevent PAL games from running faster.

On the other hand, memory-map pixel scaling can incorporate raster effects independent of screen refresh rate, since all gfx is handled in a separate bitmap. The memory requirements will be larger, requiring 22*8*3*23*8*3/8=36432 bytes of memory for the standard 1-color 22*23 character display. For 16 colors it requires 4 bits per pixel and thus about 146KBytes (or larger for larger displays).

I will post updates on the VGA once I have something that works. The long-term goal is to get the old games to show correctly with the VGA output.. at least some of them. :roll:

User avatar
Kakemoms
Vic 20 Afficionado
Posts: 483
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Postby Kakemoms » Sun Oct 29, 2017 4:02 pm

Just a snapshot from the current VGA output of the SuperVixen 0.76:

IMG_6015.JPG


Some bugs remain, but generally it shows a character set from memory using a screen memory area (as for a Vic-20) with a separate color ram. There is no 3XHQ scaling yet, only nearest neighbour scaling.

The output is currently 1280x1024 with a 108MHz pixel clock.

User avatar
Kakemoms
Vic 20 Afficionado
Posts: 483
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Postby Kakemoms » Sat Nov 11, 2017 12:00 pm

My latest post autologged itself out, and insted I was given a login page and the post was sent to forum heaven.

A short summary of what was written:

There has been no answer from Lattice on the new MachXO3-9400 delivery, so they are late which is really annoying.

My Openbuilds PNP machine is nearly finished, so hopefully I can mount 10 boards more quickly once the MachXO3-9400 gets here...

The 65C02 will get the Vic-20 databus mirrored to $FFFD so that it can read everything that the 6502 cpu does and mirror this to the SuperVixen memory. The idea is that we can get the 6560 output on the VGA display without further tinkering. This will upgrade many old games that run on the Vic-20 to VGA. When the 3X filter gets going, we will also be able to experience higher resolution and better images from the old classics. Making them run on the internal 6502 will give 100% compability. Raster-effects are obviously not going to work, but I will continue to think of ways to do that. Well, thats the idea, anyhow. :wink:

User avatar
Kakemoms
Vic 20 Afficionado
Posts: 483
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Postby Kakemoms » Sun Nov 19, 2017 2:21 pm

Ok. I have started checking around and it looks like Mouser was promised a dispatch date of 6.November, but still haven't recieved anything. I didn't order this from them, but it probably reflects the trouble Lattice has to get this component qualified.

Anyway, if Mouser gets some before my supplier I will immediately order from them as well, so to get things going.


Return to “Hardware and Tech”

Who is online

Users browsing this forum: No registered users and 2 guests