News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_zhulien

Custom CRTC

Started by zhulien, 13:40, 15 April 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zhulien

Looking at the other thread about the CRTC5, it makes me wonder... as an alternative to a CPC Graphics Card, could a custom FPGA or Microcontroller based 'enhanced' CRTC be made instead to give the CPC additional graphics capabilities?

roudoudou

and maybe we will call it ASIC ;D
My pronouns are RASM and ACE

McArti0

You can do anything, but will it be retro? You can insert Internal 32GB videoram for CRTC and 32bit color with 15k binding lines into the GA. But is it retro? I cloned PAL with one tiny option. And it turned out that it was not CPC.  :(
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

McArti0

#3
Now you can't even connect CPC to VGA because no emulator supports it. Can you imagine that? I can't connect a 1986 CPC to a 1987 monitor because no one has done it before!
It is not possible to introduce a new, better standard for extended memory because the last 4MB is already used. :'(
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

zhulien

Quote from: McArti0 on 14:06, 15 April 24You can do anything, but will it be retro? You can insert Internal 32GB videoram for CRTC and 32bit color with 15k binding lines into the GA. But is it retro? I cloned PAL with one tiny option. And it turned out that it was not CPC.  :(
Seriously those that want to be stuck with something old and not upgraded don't have to upgrade anything - I don't use my CPC because it's "retro", I use it because I like to use it.  retro has nothing to do with it at all!

VincentGR

Quote from: McArti0 on 14:06, 15 April 24You can do anything, but will it be retro? You can insert Internal 32GB videoram for CRTC and 32bit color with 15k binding lines into the GA. But is it retro? I cloned PAL with one tiny option. And it turned out that it was not CPC.  :(
Actually it will.
I think that retro term refers to something that looks like the old original, even if it is an object or a trend.
A mini NES console is retro, the actual machine isn't.
Maybe I'm wrong though.

McArti0

But it turns out that retro is when each software runs on an old machine. New interface concepts are not retro.
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

zhulien

Quote from: McArti0 on 15:49, 15 April 24But it turns out that retro is when each software runs on an old machine. New interface concepts are not retro.
so what is the exact date you could claim that would be the retro-cutoff date so the next day becomes not retro? concepts and techniques evolve all the time - if the reason you are using your CPC is because it's old, that is a fair reason - I use it because it's fun for me to program - age has nothing to do with it, i wish it was newer, more reliable - in fact, that is why I also have the CPC4ATX but I am using my 6128 Plus mostly at the moment.

andycadley

"Retro" in common English means "meant to look old" but it's been adopted by the gaming community to incorporate old machines, reproduction machines and software emulation alike.

Lazy Dude

Retro means it was advertised for sale in Amstrad Action magazine back in the day  :D

GUNHED

Quote from: McArti0 on 14:06, 15 April 24You can do anything, but will it be retro? You can insert Internal 32GB videoram for CRTC and 32bit color with 15k binding lines into the GA. But is it retro? I cloned PAL with one tiny option. And it turned out that it was not CPC.  :(
Why should it be retro? No need for that imho.

Main goal: Have better hardware and software in connection with CPC!  ;)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

GUNHED

Quote from: zhulien on 14:58, 15 April 24
Quote from: McArti0 on 14:06, 15 April 24You can do anything, but will it be retro? You can insert Internal 32GB videoram for CRTC and 32bit color with 15k binding lines into the GA. But is it retro? I cloned PAL with one tiny option. And it turned out that it was not CPC.  :(
Seriously those that want to be stuck with something old and not upgraded don't have to upgrade anything - I don't use my CPC because it's "retro", I use it because I like to use it.  retro has nothing to do with it at all!
Thank you!!!!!!!!!!!  :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

McArti0

Maybe extensions require Lord Allan's signature?  :-X :laugh:
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

SerErris

I think you can expand the system with whatever you want. However it should not break the original system (code).

For instance any GateArray replacement (Graphics Card) need to have a 100% compatible mode, so that the original software runs flawless. From my point of view that can be any technology, I could not care less. Yes I do have kind of a Museum CPC, that is all original parts, and I will never tinker with it. However another one has now replacement AY and replacement GA (just to test it).

So there is no reason to use a FPGA to achieve something much better, but again - it needs to be compatible to the original Firmware and Software and may extend its use cases - someone needs to write dedicated code for it.

What I could think of is a ASIC version of the GA that you can plugin to the original CPC lines (backporting CPC+ capabilities). I am not sure if that is even possible without changing other pieces of the hardware (e.g. the video out will not work with the new GA).
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

djaybee

Going back to the original thought: the CRTC does 2 things (or 3,depending on how you count):
-It generates the frame timings, notably for HSYNC and VSYNC.
-It generates 15-bit addresses at 1 MHz, used by the rest of the CPC to fetch 16-bit chunks of graphics data (width of 1 character in mode 1), or a signal that the border color should be displayed.

Now, the frame timings can't really be messed with if you want to stay within the specs of PAL and NTSC, so there's probably not a lot of room to be creative there.

The address generation part, however, is where there's a lot of fun to be had:
-linear framebuffer
-extra hidden characters at the end of each line
-flexible address wraparound behaviors
-vertical pixel-accurate scrolling
-screen slices, or (pushing further) programmable graphics address change for each line (like in the PCW)
-graphics address change mid-line (like in the NES MMC5)
-text mode / tile mode
-(going crazy) on-the-fly compositing of a windowing system, with each window stored non-overlapping in RAM, such that moving windows (and possibly even scrolling a window content) can be done without moving the actual data.

Major caveat (if you're seriously considering it): the CPC relies on the CRTC generating addresses in a specific order, in order to meet the DRAM's refresh requirements. My memory is fuzzy, but I think I remember that each of the DRAM's 256 rows must be touched at intervals of less than 2ms. I wonder whether those could be hidden within HSYNC.

Powered by SMFPacks Menu Editor Mod