Jump to content
IGNORED

2x and 4x colour clock modes on the 800 fpga core


foft

Recommended Posts

Quote

 

Hello foft

 

   On 3/3/2023 at 8:03 PM,  foft said: 

I remember spending a long time making 2x and 4x colour clock fpga modes for the a8 fpga core and, to my knowledge, not one person used it. Still was fun/interesting to make.

 

Can you tell us some more about it?  I have no clue what so ever you are talking about.

 

Sincerely

 

Mathy

 

Since you ask Mathy, thought I'd write up a little 😀

 

The FPGA core runs internally at 32x the clock rate of the little guys. So it runs at about 58MHz. Typically it does a lot of waiting around so it's fully compatible with the original system.

 

However since I had all those extra cycles I decided to make use of them. The cpu limit can be removed so it theoretically runs at 32x the original speed.

 

Now here we run into some hardware limits. The FPGA cores use three types of RAM.

  • SDRAM. This is clocked at about 80MHz - 116MHz, depending on the board. It also though which takes a lot of cycles to access. So when using SDRAM the system only runs at 4x the original speed. 
  • Block ram: Built into the FPGA. It can be accessed at full speed, but... Reads take 2 cycles (cycle 1: provide address/data, cycle 2: results available). Writes take 1 cycle. So it runs at 16x the original speed for read and 32x for writes.
  • SRAM: External to the FPGA. Similar constraints to the block ram. 

Block ram is used on the EclaireXL for the base memory, extended is mostly in SDRAM. Most other boards are SDRAM only.

 

Anyway the 'minimum' 4x bandwidth increase allows us more cycles. So I modified Antic and GTIA to support DMA and to communicate with each other faster. Normally Antic and GTIA communicate using AN0-AN2 at the colour clock frequency. This is 2x the CPU frequency, so about 3.5MHz. I added two bits to DMACTL to run this instead at 7MHz or 14MHz. 

 

D400 (w):
bit 6 added, used together with bit 5
00 = playfield dma off
01 = playfield dma on - original colour clock
10 = playfield dma on - 2x colour clock
11 = playfield dma on - 4x colour clock

 

So this is compatible with existing software that isn't setting random reserved bits in DMACTL. 

 

These modes basically double or quadruple the resolution. So GTIA modes are 320x200. Gr.0 and Gr.8 are 1280x200 (not all video modes support this horizontal resolution).

 

Probably it doesn't make sense to go out and write a bunch of software using these, since of course it wouldn't run on the old systems (until I release CGIAMax :-)). However I think it would be good to have a few things:

  1. E: driver for 80 column colour using antic mode 6.
  2. Picture viewer using antic mode F + GTIA and/or antic mode E.
  3. An FPGA demo rocking the 4x CPU and high res modes.


One thing to add, these modes only work when they cpu is set >1x.

Edited by foft
  • Like 12
Link to comment
Share on other sites

1 hour ago, TGB1718 said:

@foft nice description, but what I'm missing is what is this device ?

It’s part of the fpga core used in Mist, Mister, MCC216, MCCTV, Turbo Chameleon 1/2

Also EclaireXL

 

The internal mod, CGIAMax, is not yet designed;) Though if software is written and there is interest then I’ll make it.

  • Like 1
Link to comment
Share on other sites

6 hours ago, foft said:

It’s part of the fpga core used in Mist, Mister, MCC216, MCCTV, Turbo Chameleon 1/2

Also EclaireXL

What would be the most affordable machine to start playing around with your core? 320x240x10 colors (GTIA mode 10) sounds like fun, too.

Link to comment
Share on other sites

All of it besides peripherals, probably. It's FPGA, so you load 'circuits and silicon as software' into it. New color modes on an otherwise accurate emulation would be awesome, and make me want to play. Would need somepOS pathcing obviously, but I bet we could squeeze in a few new color modes without too much disruption.

Link to comment
Share on other sites

3 hours ago, Mathy said:

Hello foft

 

Thanks.  But what does it replace?  The whole computer?  Part of it?

 

Sincerely

 

Mathy

 

It's a neat FPGA replacement.  But sadly, that's it.  It's not a component that could work in a real computer.  It's not an upgrade like the VBXE that has been out for 12+ years and has almost no software for it (I am trying to fix this).  It's a hardware emulation which too few people are aware of.  I was an early adopter / beta tester of this core.  It's super cool.  But nobody will code for it because nobody uses the hardware.  I beg for people to support the VBXE, which has been out there as the only viable video upgrade.  Yet, despite availability via Windows and Linux emulation, AND over a decade of hardware uptake, no-one uses it.

 

Despite this, ever few years, an idea of all new hardware arises.  Everyone oohs and aahs.  Wow - new hardware, let's get behind it.  Never thinking that decades prior, existing stuff is not being utilized.  Let's forget about that shit that nobody used, and make more new shit that nobody else will use.

 

Please - let's take a step back, see what we have, and see what we have had for years and years and years.  Please people, STOP asking for more new stuff.  Use that energy and write code for what we have.  VBXE has been out for 12+ years and we don't have an ANSI terminal for it.  But I have read 5 threads for new 80 column hardware in the past 3 years.  WHY?  Write for what we have.  Like I did - here:

 

 

 

  • Like 4
Link to comment
Share on other sites

Yeah it’s a reimplementation of the whole computer right now. Parts of it could later be used in the original system, like pokeymax is for instance.

 

To try it at a good price you could look for any of those boards second hand. For new ones the mist is going to be sold by lotharek again.

 

The only one that supports peripherals is the éclaire, we’ve not made any for years now though, chip crisis etc.

 

As for vbxe. Well I tried to buy one and got sloopy’ed. Then I tried to see if there was interest in boosting the market by including it in the fpga core and there wasn’t (which is fine, creator’s can choose).

 

Anyway back to topic, if anyone wants to try it and needs help let me know.

  • Like 1
  • Sad 1
Link to comment
Share on other sites

6 hours ago, Stephen said:

lease - let's take a step back, see what we have, and see what we have had for years and years and years.  Please people, STOP asking for more new stuff.  Use that energy and write code for what we have.  VBXE has been out for 12+ years and we don't have an ANSI terminal for it.  But I have read 5 threads for new 80 column hardware in the past 3 years.  WHY?  Write for what we have.  Like I did - here:

uhm

 

http://trub.atari8.info/cpm/tt.zip

 

i don't know if this is true ANSI terminal, or just some subset of VT100 though

 

  • Like 1
Link to comment
Share on other sites

Sorry to be a bit off topic, but I just wanted to respond to what @Stephen was saying.

 

My main reason for not having a VBXE and/or showing support for it, is that US customers such as myself don't have a lot of options when it comes to RGB viewing. Realistically most of us over here would probably have to resort to also finding and buying a suitable converter (RGB to HDMI would make the most sense), or purchasing a high quality RGB monitor.

 

So what does that look like financially...

  • VBXE + Shipping: $110
  • Converter+ shipping: $75-100
  • Sony PVM RGB Monitor + shipping: $250

Minimally you would be looking at close to $200 using a converter, and at least $360 using an RGB monitor.

 

And to tell you the truth, choosing an RGB to HDMI converter can be a sketchy proposition in the $75-100 range. So realistically to be sure you got the full quality of the VBXE output you'd likely have to spend a fair bit more than even the PVM option.

 

I personally don't feel like shelling out $360+ for an alternative Atari video adapter. This is where the Sophia 2 makes a bit more sense. And because of it's digital nature, even software generated 80 columns looks pretty darn good on it. Yes you don't get the blitter or the enhanced resolution modes of the VBXE, but then again in my opinion why bother trying to do this on stock Atari hardware anyway, when you can do so much more on an FPGA based clone such as the éclaire or Mist. Because bottom line going VBXE already means you definitely crossed the threshold of what is really an Atari 8-bit.

 

Don't even get me started on the logic of shelling out nearly $200 for a Rapidus ;)

 

EDIT: And I agree with Stephen on why make yet another new whiz-bang video board that relies on customized software to really take advantage of it. The idea of build it and they will come, historically hasn't been the case.

  • Like 7
Link to comment
Share on other sites

You can get a Sony PVM in US for 250 bucks? Last time when I even got a chance to consider it in Sweden I was quoted 500€ and a in person pick up 300 km away 😮 Didn't buy it, did not have that kind of money back then, now I would seriously reconsider.

 

Had the same thinking about VBXE, until I got one and started coding some stuff for it, never had so much fun 😉

  • Like 1
Link to comment
Share on other sites

Read up on the rest of the topic and I saw a hint of something I wondered about a while back - so why there is no VBXE in the 800 core? I have a quite loaded MiSTer, this would give me one more platform to test my small development on.

Link to comment
Share on other sites

3 minutes ago, woj said:

Read up on the rest of the topic and I saw a hint of something I wondered about a while back - so why there is no VBXE in the 800 core? I have a quite loaded MiSTer, this would give me one more platform to test my small development on.

Agreeing with Stephen and this! Why don't the MiST/MiSTer have a VBXE core...is it a technical limitation or just no one has done it?  It would certainly help to spread one standard further...though there seems little uptake regardless.

Link to comment
Share on other sites

25 minutes ago, Atari8guy said:

Agreeing with Stephen and this! Why don't the MiST/MiSTer have a VBXE core...is it a technical limitation or just no one has done it?

maybe because the vbxe core is not free and someone keeps their hands on the fact that there are no devices with such functionality :)

Link to comment
Share on other sites

1 hour ago, Atari8guy said:

Agreeing with Stephen and this! Why don't the MiST/MiSTer have a VBXE core...is it a technical limitation or just no one has done it?  It would certainly help to spread one standard further...though there seems little uptake regardless.

If I recall correctly, it was asked if the VBXE could be used, and they were told do not implement it.  At least Altirra has a (from what I can see) perfect implementation of it, and wonderful integration into the debugger.  I would not be able to get my code working without it!

  • Like 1
Link to comment
Share on other sites

I'm curious about the memory layout of these 2x and 4x modes. Is it as straightforward as 80 and 160 bytes per line? So a 320x200, 16-color screen would need 32K of base RAM? Or is there extended RAM banking? Is there still that 4K boundary crossing limit?

 

Similar questions about VBXE.

Link to comment
Share on other sites

Wondering if it's possible to extend the HW a little, like removing the PM maximum size check which would allow them to be larger than 4x. Not that I would use it but I'm curious because in theory that should have been really cheap (cost 0 or maybe even cost reduction to the original) and made PM quite useful for coloring large areas.

 

 

  • Like 1
Link to comment
Share on other sites

8 hours ago, ClausB said:

I'm curious about the memory layout of these 2x and 4x modes. Is it as straightforward as 80 and 160 bytes per line? So a 320x200, 16-color screen would need 32K of base RAM? Or is there extended RAM banking? Is there still that 4K boundary crossing limit?

Yes it's exactly that, nothing special beyond an increase in clock. I did wonder about extending the 4K boundary by a few bits, it would only have to be in these modes though since compatibility requires it in general. 

  • Thanks 1
Link to comment
Share on other sites

7 hours ago, rensoup said:

Wondering if it's possible to extend the HW a little, like removing the PM maximum size check which would allow them to be larger than 4x. Not that I would use it but I'm curious because in theory that should have been really cheap (cost 0 or maybe even cost reduction to the original) and made PM quite useful for coloring large areas.

 

 

They are purely 'fixed' dma slots at the moment, which is complicated by antic requesting the dma and gtia reading the bus at the same time! So 5 slots: 4 pms, 4 missiles. The width could definitely have been increased with minimal cost, add 5 more dma slots and then an extra register per PM in GTIA. There could also have trivially been the option to use the extra byte for 4 bit colours instead of wider. Oh and of course could also just clock them slower, so 1x,2x,4x,8x,16x width... (which is what I think you meant re-reading this...)

 

Going further would need a replacement dma engine to increase the width. Thinking too far on these lines gives you the Amiga ;-) 

 

Or there is the Atari 7800 Maria option, which is very neat.

Edited by foft
  • Like 5
Link to comment
Share on other sites

Well the core bus is boosted 16-32x, so it’s not just the cpu. Of course antic does not use 16x the dma cycles, so it is more than that in practice.

 

Does rapidus have its own ‘fast ram’ or just a cache?

 

Most of those charts seem to be showing 1-2x rapidus rather than 12x.

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