avatar_krusty_benediction

Don't you think it's time to stop creating hardware interfaces ?

Started by krusty_benediction, 08:25, 01 December 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

krusty_benediction

Hello;
first I have almost no knowledge in electronic; I barely know how to use a soldering iron properly.Do not see this post as an attack to hardware creator but a friendly discussion for improving the ergonomic of our CPC expansions.

as a demomaker I use lots of interfaces to ease my crossdev works and I have followed the trends to upgrade (ie replace an old version by a newer one from someone else or the same creator) them with time. I have also bought some that I do not use.
It ends with lots of cards more or less incompatible between them that cannot fit all together on a CPC for several reasons: lack of expansion port that can be solved by  a mother x4 and impedance? changes that cannot be solved and break some demos (when I have several cards plugged, at some point there is 1 nop? of delay around the CRTC? and GA? that break demo effects (which is quite contradictory with using extensions to help crossdev).Some people also encounter voltage issues with all these things. It seems some cards are hard to produce because their chips do not exist anymore.

Don't you think it's time to use another approach where you have a single expansion card plugged on expansion port (and eventually printer port and disc port as well as video output to easily allow OSD) that hosts various additional output interfaces (WiFi? USB/serial to plug on the PC?/rj45?/cartridge port). The extension would not be hardwired on the card but provided as a software. To alter/add/remove an expansion would consists in modifying the software or its configuration.
It would be less messy in the CPC desk, maybe it would solve the demo effect issue I was discussing before, maybe it would ease the creation of novel or more powerful interface.
I am pretty sure it is a totally realistic thing to do with a bare-metal software on a raspberry pi (no wait of a Linux machine to start, existing expansion source code already available in several emulators) or a fpga implementation (think about the mister project).
Of course this imply several things: hardware people would need to gather forces to implement the board to be sure nothing is missing for the future, user people should be ready to put all their existing cards to the garbage (or another CPC;)) and by this additional one that would be more expensive. That would not change on the existing CPC software stack as the emulated expansion would be the same that the real hardware ones.
Otherscenes have such integrated complex cards. For example Atari ST has the cosmosex and C64 as the 1541 Ultimate-II. Maybe they are not as easily modifiable in comparison to what I have described, but they are powerful enough to be self sufficient.
So I hope, I'm not dreaming alone in front of my computer and hope one day I could by such thing for my CPCs.

luckpro

Sorry, but when I read you, the standards meme came to mind. In any case I agree with you, a lot of different hardware is coming out and I don't think it's good.

In any case, I don't know much about hardware, the experts had better say.

ComSoft6128

The more hardware the better.....BUT!
It needs to be thoroughly reviewed and listed on all the the major CPC sites.
And here is a problem - unlike commercial magazine reviews "back in the day" any review will be made by someone who is already a "CPC scene" member and that's when it gets personal. ::)


 



Bryce

The answer is flexibility and choice. If I only want RS232 connectivity or just want to connect a mouse or read a few ROM's, why should I be forced to buy an all singing and dancing massive expansion (with most likely a massive price)?
Also the Rpi/Linux approach is something that the purists will argue against. If the CPC is just a keyboard and display for a much more powerful processor, then is it a CPC expansion at all or did you just create a device that allows you to use a CPC Keyboard and screen on a Pi? And putting it all on one board won't solve the NOP problem either, these are limitations of the CPC, not the expansion hardware.

I own a MX4 and a pile of expansions, but I rarely want them all connected at the same time. I just connect the one(s) I need at the time.

Bryce.

reidrac

From my point of view (and this is just my opinion), for a new add-on to be "standard" or considered by any new CPC software:

- it must be available, so anyone can get one
- the hardware should be open hardware, and anyone should be able to build it (or even sell it, which goes nicely with previous point)
- it must be supported by a few emulators (ideally supporting major platforms like Windows, Mac and Linux)
- ideally there should be enough units out there, but if something becomes a "de facto" standard, this is likely to be true

Also take into account that add-ons that provide ways of using standard interfaces (e.g. load games from a DSK file) are out of scope here because as long as the CPC software is compatible with whatever the add-on implements, that's it (e.g. my games are M4 compatible, and I don't do anything specific: the same works on any emulator and the real CPC).

Either new add-ons are compatible with existing interfaces (either CPC itself or existing add-ons), or their authors will have a difficult time to get their new hardware adopted because the market is saturated at the moment (e.g. I love my M4!).

Yet supporting this type of add-on will always be controversial, but what can we do? People complain if a game is 64K, if is 128K, if requires Dandanator, etc; but putting that noise aside, this is my opinion at the moment as gamedev and user.
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse, Brick Rick and Hyperdrive for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

krusty_benediction

Quote from: reidrac on 11:13, 01 December 21it must be supported by a few emulators (ideally supporting major platforms like Windows, Mac and Linux)

I my initial though I was thinking of a card able to reproduce already existing peripherials with the ability to add newer.
So most existing hardware should work in it.

I think it is quite recent that emulators also emulate cards and I am sure that, except ACE, most of them only emulate a minimal subset of possible extensions. I have not found on the wiki a table that summarize that, maybe I am wrong.

krusty_benediction

Quote from: Bryce on 11:06, 01 December 21Also the Rpi/Linux approach is something that the purists will argue against. If the CPC is just a keyboard and display for a much more powerful processor, then is it a CPC expansion at all or did you just create a device that allows you to use a CPC Keyboard and screen on a Pi?

yep I understand.
On my side, I totally do not care, I do not even feel the need to touch the CPC keyboard (that's why over all the perifpherals able to load a snapshot, I favor M4 that can be controlled from the PC), it is just the box that make run the demo I want to watch, nothing more.

I guess players would also enjoy something that allow them to download over an https connection and play games easily. This is not currently possible with the state of the art extensions

SkulleateR

Quote from: krusty_benediction on 13:20, 01 December 21

I guess players would also enjoy something that allow them to download over an https connection and play games easily. This is not currently possible with the state of the art extensions


I think this already woud be possible by providing a proxy that holds the data/DSK/BAS whatever file and the M4 and/or USIfAC II with wifi module would be able to get the data from there ... BUT : someone has to program it ;)

krusty_benediction

#8
Quote from: SkulleateR on 13:52, 01 December 21

I think this already woud be possible by providing a proxy that holds the data/DSK/BAS whatever file and the M4 and/or USIfAC II with wifi module would be able to get the data from there ... BUT : someone has to program it ;)
I have doubt about the possibility to do https.
I  may be wrong but USIfAC II does not provide an easy access to network interface as does the M4.Additionnaly, It seems that network support of M4 is currently partially buggy (i.e., impossibility to use a FTP node for unidos); if it is an hardware limitation it is not fixable (I assume that such case would barely appear with an fpga or raspi solution), if it is a software issue we can wait it is fixed.

SkulleateR

Nothing to do with the https thing ... you allready can get files from the internet onto disk or into memory with the M4 card (|HTTPGET and |HTTPMEM) ...

m_dr_m

Quote from: krusty_benediction on 08:25, 01 December 21(when I have several cards plugged, at some point there is 1 nop? of delay around the CRTC? and GA? that break demo effects (which is quite contradictory with using extensions to help crossdev)

Sweet! Do you have a specific exemple (demo or source + your hardware setup)?

ralferoo

To be honest, this is kind of the reason why I started making my FPGA based CPC emulator back in 2012, 2013, whenever it was...


The idea was to have a small board that emulated the CPC perfectly, had the CPC ports on board, a 5V compatible expansion edge connector, and then support SD cards and a ton of external GPIO for other random projects.


And then life got in the way part way through making the floppy emulator and I've not even touched it since probably 2015. I did use to bring it to demoparties though as it was so much easier to take that, a roll-up PS2 keyboard and a tiny flat screen monitor than lugging the 464 + CTM around.

krusty_benediction

Quote from: m_dr_m on 15:53, 01 December 21
Sweet! Do you have a specific exemple (demo or source + your hardware setup)?
I am not in a state of testing in my machine now, but here is what I can remember :
- probable configuration Mother 4 + M4 + minibooster

- I had some issues with Optimus part of the 30YOMD (related to bank switch maybe)? maybe the one for Pulkamdy too
- I had issues with several of my effects in CRTC when testing it from a snapshot (mainly wrong addresses in R12/R13 for line to line splitting effects)- I think CRTC loader crashes more often when there are extensions
- I had issues on From Scratch that crashes after (or during?) the plasma effect

I do not remember if it happens on all my CPC or only/mainly my multi crtc0/crt1 machine (this is the main machine I use)


abalore

If it can help, I developed a simple parallel I/O board with 16 input and 16 output pins, with a selectable port number to tie up to 8 cards together to have a max of 128+128 lines. It can be used, among other things, to interface the CPC with a raspberry pi, arduino, FPGA, or whatever other thing. If someone thinks this can be useful, let me know.

eto

Quote from: abalore on 11:33, 09 December 21
If it can help, I developed a simple parallel I/O board with 16 input and 16 output pins, with a selectable port number to tie up to 8 cards together to have a max of 128+128 lines. It can be used, among other things, to interface the CPC with a raspberry pi, arduino, FPGA, or whatever other thing. If someone thinks this can be useful, let me know.


I would be very interested in this...

krusty_benediction

Quote from: abalore on 11:33, 09 December 21
If it can help, I developed a simple parallel I/O board with 16 input and 16 output pins, with a selectable port number to tie up to 8 cards together to have a max of 128+128 lines. It can be used, among other things, to interface the CPC with a raspberry pi, arduino, FPGA, or whatever other thing. If someone thinks this can be useful, let me know.
Probably, but looking at the expansion port documentation. https://www.cpcwiki.eu/index.php/Connector:Expansion_port we can see there are 50pins. Several of them are necessary to handle RAM or ROM. Does your card would allow the cop-processor to emulate roms or extra ram ?

TotO

Well... There is no problem to use standard RAM/ROM expansions on CPC.
Why do you want to emulate them with a co-processor through an i/o interface? Except to have timing issue? ;D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

Quote from: TotO on 15:08, 09 December 21
Well... There is no problem to use standard RAM/ROM expansions on CPC.
Why do you want to emulate them with a co-processor through an i/o interface? Except to have timing issue? ;D

Possibly to achieve DMA? (and have even more timing issues :) )


Bryce.

abalore

Quote from: krusty_benediction on 14:47, 09 December 21
Probably, but looking at the expansion port documentation. https://www.cpcwiki.eu/index.php/Connector:Expansion_port we can see there are 50pins. Several of them are necessary to handle RAM or ROM. Does your card would allow the cop-processor to emulate roms or extra ram ?
My board is a simple parallel I/O board. The only software interface allowed for it is OUT and IN. You make an OUT: several pins hold a value. You make an IN: you get the value set in several other pins. 16 pins of each. You can put up to 8 boards in a rack to get more pins. The hardware interface is MX4, so you can use it along with the great existing ROM and RAM expansions. My board has not a protocol, it doesn't define any standard, it's just that: parallel I/O pins. It's a small, old technology, cheap device.
About implementing FPGA (or other tech) emulations as CPC peripherals, I'm not very much with that idea, because I also have a MiSTer. If you emulate RAM and ROM, why not emulating also the Z80 and GA? That way you will be able to emulate CPC and one thousand more systems. My personal limit to invest in CPC expansions is that the expansions don't cost more than the computer itself. I know there are people that would be happy using the CPC as a keyboard, with everything else happening in external hardware, but again, I prefer to take my MiSTer and use a high quality, low latency gaming keyboard and gamepads. For my good old CPC I prefer good old, cheap and simple technology. That's the fun for me.

krusty_benediction

#20
Quote from: TotO on 15:08, 09 December 21Why do you want to emulate them with a co-processor through an i/o interface

       
  • to have a single expansion and not tons of them
  • to allow use cases where ROMs can be dynamic or RAM can be persistent
  • to burn rom more easily without using rsx  or fighting with ROM transfer from PC to CPC

eto

Quote from: krusty_benediction on 15:57, 09 December 21

       
  • to have a single expansion and not tons of them
  • to allow use cases where ROMs can be dynamic or RAM can be persistent
  • to burn rom more easily without using rsx  or fighting with ROM transfer from PC to CPC


I'd love to see a generic Raspberry Pico board. It seems it's fast enough to cope with the timings and there are so many things that can easily be adapted. E.g. transform it into a graphics card with VGA or DVI output. Or PCM sound - I would expect we can easily get 4 channel SID like sound from it. Of course that's all possible with hardware but it's always expensive and requires special hardware skills. It would move from electronics skills to programming skills and reduce development times and costs significantly. It would also mean, more form the community could contribute to the development of the addons. Maybe first a simple graphics adapter and then high res modes with accelerations for drawing graphics (lines, rectangles, copying screen ram...), or more sound channels and MOD support for the sound card.


abalore

If I had to ask for something to hardware developers it would this: Please stop adding RESET buttons to everything!

Bryce

Quote from: abalore on 11:26, 10 December 21
If I had to ask for something to hardware developers it would this: Please stop adding RESET buttons to everything!

But, but.... It's so easy to do it, it costs almost nothing and you can add it to the list of features!  :D

Bryce.

Gryzor

If people stop including them switches then ultimately eBay will be flooded with £10 paperclips opened at the right angle.

Powered by SMFPacks Menu Editor Mod