avatar_MacDeath

FPGA developpment board as universal extension for Amstrad CPC/PLUS

Started by MacDeath, 07:58, 20 July 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rexbeng

Well, then, you guys aren't actually talking about extending the CPC, but rather making a new, standalone, CPC successor. That idea I find much more atractive than plugging new cards etc on an old CPC :D


Maybe you should start with the name to get inspiration. How about "CPC++"? Or maybe "CPC HD" - the later sounds much more trendy  8)


Seriously, I love the idea of a new CPC!


rb

steve

I would like a 32bit CPC with Ethernet port and able to access the internet, but what is it that people love about the CPC?

Is it that the machine is an 8-bit machine?

Is it the "API", so a 32 bit machine would be acceptable because it would still run the old programs and you know how to program it?

Is it the challenge of pushing the original "factory spec" machine to new heights?

Is it pure nostalgia and that no new machine could replace it?

Is it a piece of history that you don't really use much?

SyX

A few years ago, i "hacked" the caprice sources to add a SID chip and converted the Simon Owen's Sam Coupe sidplayer. The idea was that DaDman would make a card for the CPC with a Swinsid... but we began with more interesting projects :P

You can "enjoy" this franken-horror of caprice here  :-\ , in sidplay.dsk is a conversion of a c64 basic program to locomotive basic (only had to change the pokes to outs  ;D ) and in playsid.dsk one of first version (i haven't found any later version) of my "port" of Simon Owen's sidplayer "playing" (va a ser que no  :laugh: ) the AcesHigh.sid by Lasse Öörni  ;)

MacDeath

Amstrum CPCWX6000...

As in Amstrad, spectrum, pcW... the "X" is for it is better than "+"... and 6000 because it should be more like a 6128 than a 464...
Oh and NEC PC6001/6601 compatibility of course...

But "AMSTRUM" would be great as such machine should really include full Speccy emulation too.
So perhaps an AMSTRUM CPCW6XXX or Amstrum X


Anyway.
Concernng SID... would it be quite different than on a C64... provided it would be ran by a Z80... and perhaps not that directly pluged (extension port or printer port ?)


a device such as my Arduino could really be a universal Soundchip addon if some wiring is designed to get the Audio mix (mix with the existing CPC/PLUS audio jack) as was done with some Digiblaster cards...


An additionnal AY device for CPC was actually designed and detailed  in a book (I talked about it already... I think)


But I would have a question : can you put/use DMAs on/with an external extension port "cards" ?


But the problem is that a CPC to actually run well with 2xAY  or/and a "stereo Digiblaster" (Atari STE style then ?) and its "well known for being heavy" Video system... would really need to get theZ80 at 6mhz or even 8mhz IMO, and a boosted RAM of 256k minimum to really be optimal.

QuoteI would like a 32bit CPC with Ethernet port and able to access the internet, but what is it that people love about the CPC?

Is it that the machine is an 8-bit machine?

Is it the "API", so a 32 bit machine would be acceptable because it would still run the old programs and you know how to program it?

Is it the challenge of pushing the original "factory spec" machine to new heights?

Is it pure nostalgia and that no new machine could replace it?

Is it a piece of history that you don't really use much?
The good point keeping to the Z80 (be it overclocked) is that this machine then remains what it was already at the time : something "simple enough" to actually learn computering...
8 bit = simpler and still human sized... you can still code close to the core and machine language...(sort of).

Assembly on a 32bit system would certainly not be as trivial...but I may be wrong.
   

Also a good "VGA/MCGA" 320x200x256/65millions mode would not be 8bit flavoured...
but on the other hand a 160x200x256/4096 ("mode0x") would retains the good old CPC flavour and enable sweet stuffs...

steve

I think we could at least try for 640 x 200 x 16 from 4096 colours, 832 x 312 x 16 overscan.

MacDeath

Well, a 4 coloured mode2 with attribute is quite well enough...
Or else this means we may get some 320x200x256... which is then...VGA PC sort of... and too much for a decent 8bit.

if such machine is to have 256 colours Mode0 and 256colours sprites... then this means the ASIC would get 2 banks of 256inks.

An attribute system may enable to get those 16x16 (=256) being choice of palettes (as in some consoles...PC Engine ?) for most non directly 256coloured mode...
So :
Mode0 : 160x200x16/16x16 ink sets
Mode1 : 320x200x4 /16x4 ink sets
Mode2 : 640x200x2 /16x2 ink sets
Mode 3 : 160x200x4 /16x4 ink sets... (should make it weughting twice less VRAM of course)
Mode 4 : 320x200x2 /16x2 ink sets (Speccy style actually...)
and modes X...

Mode0X : 160x200x256 (no attributes... but rasters)
Mode1X : 320x200x16 /16x16 ink sets (gets heavy)
Mode2X : 640x200x4 /16x4 ink sets

Mode3X would be actuall mode0 and mode 5X would be actual Mode1...

Also I liked the way the AppleIIgs had some raster colour change list (line attributes, sort of)...
But with 256colours already settable, not sure this wouldn't be too much
Faster process to rapidly change the full 256 inks (or partial 16inks slots) between each scanline would be usefull... perhaps DMA vbased with poiinter in lists in RAM of something like it.


the Mode0 x256colours could perhaps swap between sprite palette and "normal palette", not sure...
But this would then be better to simply disable the Attributes to save memory... 256 is enough...

Anyway this is getting complicated but funny whishlist.


The Sort of upgrade NEC put on their NEC PC6601 SR (PC-6001 MK2 SR & PC-6601 SR...)

I also love to think that the Atari ST actually lacked a wide pixeled "Mode0" in 256colours...


Concerning some 400 vertical resolution (X2...) (if connected to a VGA monitor ?) well...not sure about the possibility...
would eat too much VRAM in X modes...

Anyway a 640x400x2 + attributes would be quite good anyway and not heavier than a 640x200x4 mode.
and the Attributed Mode1 with Y=400 (or 512 ?), provided you also overscan it... may be like a giant mode0 of a sort...

but the funny part would be that the HardSprites could then get a proper magnification range of X1/X2/X4/X8 from a square pixel (the 640x400 shaped ones...)

Good way would be to put some Hardware vertical magnification for the normal screen... X2 (square mode0), X1 (normal CPC) x1/2 (VGA like...) as an option (needing then proportionnal VRAM).

Anyway, the VRAM must be able to be elsewhere than in CPU main RAM...
So a good RAM management is needed instead of the good old "Wait state" for the CPU.


steve

The upgrade would be limited by the pallette, so a CPC ULA will only allow 16 colours from 27, and a plus ASIC will only allow 16 colours from 4096 plus another 16 colours for sprites so 256 colours is not possible without designing a complete new computer, which we are not.

The number of colours is also limited by the Firmware which is written to handle 16 colours at most, we may be able to twist these routines to handle 16 colours in higher resolutions, the overscan resolution is only 312 lines not 400 so it might work on an original amstrad monitor.

If it were possible to design and build a new CPC compatible then I would use 1280 x 1024 x 256 colours using 128 KB ram per screen, but that's not what I am doing.

It should be possible, using 4 banks of memory, to get a 640x200x16 colour screen on an unmodified CPC 6128.

Gryzor

If anyone ever actually produces something (we could even start a fund here at the wiki) I'd love to see some leds going on and off with activity like in the first vid that MacDeath posted :D

rpalmer

What would be nice is if an ASIC (or equivalent) were able to use its own internal memory to hold the colours for each scan line and then we might be able to get more colours through palette switching in the ASIC rather than from some external memory holding the colours in main memory.

rpalmer

freemac


Amstrad CPC 6128 - FPGA VHDL workshop  :)

steve

Thank you very much for this, will you be putting the full VHDL code and other details on the CPC-WIKI so that others can replicate what you have done?

I would like to build one myself, but I don't know enough to do it without help.


norecess

French accent + incredible English mistakes = cumbersome video ahah!  :laugh:    (nah I'm kidding, congrats for the video)

freemac

I just remind that my mac can speak  8)
But I think that writing is more serious.




But anyway, something more important i have to choose a name for my project, I made a french vote, for the moment I result :
- 3 votes for "FPGAmstrad"
- 5 votes for "CPCroxx"
- 1 vote for "T6128"


CPCWiki votes :
- 0 votes for "FPGAmstrad"
- 0 votes for "CPCroxx"
- 1 vote for "T6128"
- 0 vote for "FPG4cpc"
- 0 vote for "FPGArnold"



So if you want to suggest project name, or just vote... spam my PM  :D
I'll reedit then this post

OCT

#39
Quote from: freemac on 23:13, 19 July 11I made a french vote, for the moment I result :
- 3 votes for "FPGAmstrad"
- 5 votes for "CPCroxx"
Only French (no other place had that pervasive Croco campaign)...
Quote- 1 vote for "T6128"
...and Austrians (like Arnie ;) - BTW the CPC itself is of course known as "Arnold" too) will get the allusions I'm afraid. :)

Gryzor


freemac


Quote from: OCT on 06:02, 20 July 11
Only French (no other place had that pervasive Croco campaign)......
You got it, in france if you say croco speaking on TV, they remember all what was Amstrad :)
So french vote is corrupted xD


Arnold is Amstrad classic 6128 using a bigger ASIC chip... FPGA is ASIC reprogrammable...
But it's also actually a name really attached to Arnold emulator :)


Arnold4FPGA FPGArnold


BFG9000, GX4000 and K2000 => FPG4000 o_o

FPG4CPC

arnoldemu

Quote from: freemac on 09:38, 20 July 11
Arnold is Amstrad classic 6128 using a bigger ASIC chip... FPGA is ASIC reprogrammable...
But it's also actually a name really attached to Arnold emulator :)
Yes, Arnold is:
* the name of the prototype CPC
* the name of a game character in Amsoft games
* the code name for the CPC development (ARN5 is the plus)
* the name of my emulator (named because of the name of the prototype)  ;D

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

OCT

Quote from: arnoldemu on 10:57, 20 July 11
Yes, Arnold is:
* the name of a game character in Amsoft games
Wasn't that rather Roland (Arnold's alter ego and anagram ;)) ?

arnoldemu

Quote from: OCT on 23:15, 20 July 11
Wasn't that rather Roland (Arnold's alter ego and anagram ;) ) ?
yes you are correct. I was wrong there.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

freemac


Phi2x


steve

If you altered the firmware to display a hardcoded manufacturer's name, you could then use the three port pins used by the links, for some other purpose.

TFM

Quote from: phi2x on 19:50, 28 August 11
By the way, as you're french, do you know you can replace the manufacturer (Schneider :P ) that is displayed at the boot with "Amstrad :-* "?

Better British, than German? Damn racist! :P ;D
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Phi2x


Powered by SMFPacks Menu Editor Mod