News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

is it possible to add plus features to classic CPCs?

Started by Brocky, 05:04, 21 November 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Brocky

i wasnt sure where to post this so posted it here...

this is 2 ideas rolled into one package...
im wondering if, with a hardware extension, maybe using something like a full blown raspberry pi, could be made to add plus features to the classic CPC...
we have seen lately some interesting video converters, and rom emulators (could be ram too!), im thinking these sorts of things could be rolled into one, with some more features.

let me explain, if we connect the rpi to both the address and data and a few control lines on the cpc, we can use the rpi to decode the address for every IO and make it the only addon needed.. be it rom,ram, video out, sound, midi, wifi ,usb floppy and hdd disk images, addon cpu,fpu/math accelerator, etc etc, the possibilities are endless!

the video out can be done on the rpi by reading the RAM buffer (that the rpi is using for the cpc as a ram expansion..using the shadowed ram we've seen on expansions) and copying it to the rpi's framebuffer.. it should be relatively quick and without any noticeable lag

at the same time it could also be used to enhance features of the classic, when plus features are called from the cpc they are processed on the rpi and video out wouldnt be restricted by the GAs RGB out limitations.

it could maybe be done with a replacement/connection from the GA socket to the rpi, so the GA can be emulated and rewritten on the rpi, while it has full control of the bus and ram/rom

the issue im seeing with the raspberry pi is its limited GPIOs, it would need some high speed bi directional 16bit and 8bit parallel to serial converters to connect to the CPC..and probably level shifters..

ideally id love to see the plus 4096 colours brought to the classic somehow...
do you think its possible with the hardware we have today? even if some think modifying would be sacrilege!

McArti0

And why will CPC be needed for this?  :laugh:

Ps. DMA may be a problem.
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.

Bryce

Exactly what McArti0 says!

The RPi can emulate the entire CPC so why bother with the hassle of using any of the CPC hardware? So shouldn't the question be: Is it possible to use the CPC as an RPi keyboard?

Bryce.

dodogildo

This is the same debate since they introduced PiStorm for Amiga. 
M'enfin!

abalore

Quote from: Bryce on 10:56, 21 November 24Exactly what McArti0 says!

The RPi can emulate the entire CPC so why bother with the hassle of using any of the CPC hardware? So shouldn't the question be: Is it possible to use the CPC as an RPi keyboard?

Bryce.
Does it generate a RGB+Sync output and allows zero latency input?

andycadley

Quote from: dodogildo on 11:25, 21 November 24This is the same debate since they introduced PiStorm for Amiga.
Not quite, the PiStorm replaces the CPU but the Amiga Chipset is still present and used.

But, to get the same spec as a Plus machine you'd have to mimic the whole ASIC, which replaces so much of the internals of the CPC that there wouldn't actually be much left, even things like the AY would probably have to just be emulated so the new ASIC could feed data to it appropriately. There would be little left other than the Z80 and the keyboard.

GUNHED

Solution: Make a new computer, compatible to 6128plus and CPC6128, plus some of the most used expansions (RAM, ROM, M4 etc.).  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2024.10.27)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Bryce

Quote from: GUNHED on 15:48, 21 November 24Solution: Make a new computer, compatible to 6128plus and CPC6128, plus some of the most used expansions (RAM, ROM, M4 etc.).  :) :) :)

Or make an RPi extension that gives it all the CPC ports?

Bryce.

Brocky

all valid points, thanks

im still interested in something like this.. even if its lacking the plus features
it should be possible to use the rpi as an all in one addon extension...RAM, ROM, IO (mice, wifi, files on usb/sdcard etc)

im thinking something like z80-mbc... it uses an atmega32 chip connected to the z80 and ram, it acts as the system rom, on boot, it copies a buffer from the atmega to ram and executes, and it provides all IO.. additional IO can be programmed in to the arduino sketch..

we shouldnt need 101 devices connected to our CPCs, it should all be able to be rolled into one unit, that can be upgraded with code later to provide new functionality...

Brocky

just thinking about the ram expansion that could be made with it

you could have full 4Mb of bankable ram, but then it wouldnt be hard to code RPI with an IO port switch that allows for say 4 banks of 4Mb all setup in their own buffers on the rpi.. and even break the limitations of the CPCs banking (eg  swap only certain 8k banks and not be limited by cpcs hardware)

i think the closest term to what im thinking would be, "software defined" RAM ROM and IO

McArti0

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.

Brocky

Quote from: McArti0 on 00:39, 22 November 24Now You have low price MiSTER Pi.

https://retroremake.co/pages/store
for the plus stuff im not really looking at emulation...other than any functionality that needs to be replaced, so only emulating certain chips
but the plus features seem like an impossible task due to the way the classic boards are designed

but an ALL in ONE expansion should be possible, we shouldnt need a seperate rpi pico for video conversion, another separate one for a rom card, a separate ram card.. seperate card for USB or SD card etc etc. we should be able to roll everything into one, that decodes the entire RAM ROM and IO address spaces, that then opens up things like DMA to be done on the rpi side as it has full access to the ram and rom. video buffers etc could be used for HDMI or even composite out on the rpi etc. it would be possible to have the rpi even change the ram on the fly..eg replace a sprite set, or set pixels in video ram..

andycadley


But at that point what you have is an emulator, it's unavoidable once you start wanting to do things like replace the RAM so you can accomplish things the CPC was never really designed for.

And there's nothing wrong with that, as much as there is a segment of the retro community that sneers at emulation as if it were a lesser solution, but you might as well accept it and just go the whole hog.

Prodatron

There is already hardware, which have this approach: Emulating expansion hardware with a modern CPU.
I think the M4Board was the first one (ROM emulation with an ARM CPU), later the SYMBiFACE 3/RSF 3 did similiar things.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

GUNHED

Quote from: Bryce on 17:01, 21 November 24
Quote from: GUNHED on 15:48, 21 November 24Solution: Make a new computer, compatible to 6128plus and CPC6128, plus some of the most used expansions (RAM, ROM, M4 etc.).  :) :) :)

Or make an RPi extension that gives it all the CPC ports?

Bryce.

No, you don't have all the signals on the expansion port you would need for the ASIC for example (see topic).
http://futureos.de --> Get the revolutionary FutureOS (Update: 2024.10.27)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

GUNHED

Quote from: Brocky on 00:28, 22 November 24just thinking about the ram expansion that could be made with it

you could have full 4Mb of bankable ram, but then it wouldnt be hard to code RPI with an IO port switch that allows for say 4 banks of 4Mb all setup in their own buffers on the rpi.. and even break the limitations of the CPCs banking (eg  swap only certain 8k banks and not be limited by cpcs hardware)

i think the closest term to what im thinking would be, "software defined" RAM ROM and IO
Yes! That would be awesome!!!

Everything evolved in the world of the CPC, but regarding RAM expansions we see no change since 1986 sadly. And for a good programmer, a more versatile RAM expansion banking logic would be a paradise.  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2024.10.27)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

BSC

Quote from: GUNHED on 17:53, 22 November 24Everything evolved in the world of the CPC, but regarding RAM expansions we see no change since 1986 sadly. And for a good programmer, a more versatile RAM expansion banking logic would be a paradise. 
I would like to hear/read what good programmers have to say about that.

And are you sure that all RAM expansions from this list have been available in 1986?
https://www.cpcwiki.eu/index.php/Category:Memory_expansions 
** My website ** Some music

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

Prodatron

Quote from: GUNHED on 17:53, 22 November 24Everything evolved in the world of the CPC, but regarding RAM expansions we see no change since 1986 sadly.
Yes, of course we saw, the RAM memory expansion by RAM7 broke the 576K barrier end of the 90ies (or early 2000ies).

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

andycadley

Quote from: BSC on 18:08, 22 November 24I would like to hear/read what good programmers have to say about that.


I don't know whether I'd count as a good programmer, but I've never seen a banking scheme on any 8-bit machine that makes sense for more than about 512K RAM. Even by that point you're most likely going to treat is as just mass storage or "waste" a lot on course grained allocations because managing that much RAM becomes too much of an overhead.

Prodatron

Quote from: andycadley on 19:00, 22 November 24I don't know whether I'd count as a good programmer, but I've never seen a banking scheme on any 8-bit machine that makes sense for more than about 512K RAM.
PCW, Enterprise, NC100/200 have these more modern 4x16K mappers with 256 x 16K blocks, = 4MB.
The MSX could even access 4 (pslot) x 4 (sslot) x 256 (mapper) x 16K = 64MB (only in theory, in real about the half).

For classic single programs I agree. In my special case it may happen that 512/576K start to become tough, depending on how many daemons and apps you are running.

You cannot view this attachment.


Quote from: andycadley on 19:00, 22 November 24Even by that point you're most likely going to treat is as just mass storage or "waste" a lot on course grained allocations because managing that much RAM becomes too much of an overhead.
I agree, most programs, which use 512K or more just use them for playing stupid samples or video sequences, so they rely on mass storage or a disc jockey. Since there are some really cool compressors like ZX0, you can put a lot of stuff on existing floppies and still fill the entire 512K.

BTW, I know at least about one game, which could perfectly use a full 512K ram expansion (I still hope there is an option, that it will do it :) ).


Quote from: andycadley on 19:00, 22 November 24"waste" a lot on course grained allocations because managing that much RAM becomes too much of an overhead.
I can't confirm this, in reality you don't have any additional overhead.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Bryce

Quote from: GUNHED on 17:50, 22 November 24
Quote from: Bryce on 17:01, 21 November 24
Quote from: GUNHED on 15:48, 21 November 24Solution: Make a new computer, compatible to 6128plus and CPC6128, plus some of the most used expansions (RAM, ROM, M4 etc.).  :) :) :)

Or make an RPi extension that gives it all the CPC ports?

Bryce.

No, you don't have all the signals on the expansion port you would need for the ASIC for example (see topic).

I think you misunderstood my idea. I meant an RPi that emulates any CPC you want, but also has a "tophat" that provides all the original CPC physical ports to allow you to use original expansions and the original CPC Keyboard.

Bryce.

  

Brocky

interesting seeing the points of view here

i get where youre coming from Bryce..at this point that is probably the better option, especially for plus features...

but i still think a ram, rom, file system and video converter rolled into one processor would be nice..id really like to experiment with changing ram contents on the fly from the pi/mcu.
another thought about that ram expansion is you could have the rpi backup the ram contents like battery backed SRAM so you can keep your highscores in memory across sessions!

im gonna get some transceivers and see what i can do...

Powered by SMFPacks Menu Editor Mod