News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_doragasu

ROM board with a tiny DMA engine

Started by doragasu, 23:33, 14 January 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

doragasu

And finally added the programming guide, explaining how CPC developers can program the thing. Read it here:

https://gitlab.com/doragasu/romba/-/blob/master/PROGRAMMING.md


BTW, support for RetroVM emulator was added some time ago, but I do not know if the code hit the public releases. Time to talk to the author to see if it is supported.

reidrac

#101
Looking at my RVM looks like there's support for X-Mem and Dandanator, and that's it.

Is not essential, but having at leas one emulator supporting this would be very beneficial. I don't know what was 4Hz using for development, may be a private version of RVM with ROMBA support?
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.

doragasu

4MHz have never used (as far as I know) my cart. The only people that are working with it are Augusto Ruíz and Rhino from Batman Group (but there is a lot of time since I talked to him, so I do not know how development is going).

roudoudou

Quote from: doragasu on 18:21, 12 December 20
4MHz have never used (as far as I know) my cart. The only people that are working with it are Augusto Ruíz and Rhino from Batman Group (but there is a lot of time since I talked to him, so I do not know how development is going).
that's some serious news!
My pronouns are RASM and ACE

doragasu

Quote from: roudoudou on 18:41, 12 December 20
that's some serious news!
Well, I do not know if they will use my cart though. I think Augusto most likely will, but about Rhino, I am not that sure.

reidrac

#105
My bad then!

I kind of recall someone mentioning DMA re: Lady Phoenix and scroll, so I assumed it was based on your ROMBA. I'm probably wrong and it wasn't even using DMA :D

EDIT: that's right, they were using the Dandanator, as explained here: https://www.retromaniac.es/2018/04/tres-juegos-para-tres-grafistas.html
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.

XeNoMoRPH

Quote from: doragasu on 19:08, 12 December 20
Well, I do not know if they will use my cart though. I think Augusto most likely will, but about Rhino, I am not that sure.
Vespertino, the next game from Batman Group game will surely use cartridge ... according to these words of the Rhino himself

https://www.cpcwiki.eu/forum/games/new-game-from-bg-games-it-will-be-announced-tonight/msg174201/#msg174201
your amstrad news source in spanish language : https://auamstrad.es

GUNHED

Well, who will build a batch of this great card?
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)

doragasu

I do not own the equipment required for producing these in series, so that's the reason I have absolutely no problem if anyone wants to produce the carts and take the money.
But if nobody wants to make them, I can try building a batch. But for that to happen, it needs to pick interest, so I can send the PCBs to an assembler without the cost getting too high (as you might know, cost scales down with volume, making a few boards is very expensive, making a lot of them is cheap). And that is the reason I wanted a game released for these beauties. Because it might not be very interesting buying one if you have nothing special to run on it.

It would also be interesting to know how much people is willing to pay for the cart, so I can have an idea of how many boards I need to assemble to meet the price point.

Bryce

I have all the equipment to build these. If there is enough interest I could run a small batch.

Bryce.

XeNoMoRPH

#110
Quote from: Bryce on 09:32, 14 December 20
I have all the equipment to build these. If there is enough interest I could run a small batch.

Bryce.
OK, here we go !! .. 1  Romba for me, please  :D
your amstrad news source in spanish language : https://auamstrad.es

valfac

Hi,


Im interested too. Please one for me.


Thanks!




GUNHED

#112
Quote from: doragasu on 17:48, 12 December 20
And finally added the programming guide, explaining how CPC developers can program the thing. Read it here:

https://gitlab.com/doragasu/romba/-/blob/master/PROGRAMMING.md

Eventually I had time to look at the documentation, it's great. But maybe I did miss a bit...

Missing:
- Is it possible to copy from RAM to RAM
- How do I program the ROM content (8 MB of ROM)
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)

doragasu

#113
@GUNHED Thanks for looking to the docs.

It is not possible to copy from RAM to RAM, currently you can only copy from ROM to RAM, or from ROM to DAC (for sound playback).To program the ROM you need two things:
* The cartridge programmer that is plugged to the USB port of your PC.
* The programmer software (romba-cli).


The programmer software has a separate README.md file explaining how to read and write from the ROM, you can read it here:https://gitlab.com/doragasu/romba/-/blob/master/src/romba-cli/README.md

EDIT: Above I wrote "it is not possible to copy from RAM to RAM", but it is not true. It is in fact possible, but it is not implemented. It could be done with a bigger CPLD, but that would increase the price, and also speed would be half the one on ROM to RAM copy: instead of copying one byte per microsecond, you would get one byte copied each two microseconds.

doragasu

#114
Today I have good news and bad news.

The good news is that ROMBA has reached version 1.0. I have implemented a new register (CONF) with the bits needed to be able to write to the flash chip from the CPC itself. And with this, the CPLD usage has reached 100%, it's filled to the brim. You can read the details in the programming documentation.


The bad news is that today I checked the CPLD at Digikey (LAMXO256C or the compatible LCMXO256C) and they have raised the price from near 2 Eur to 7 Eur. That's a f*cking 3.5x price increase!!! I have been buying these CPLDs since 2017 and they always costed less than 2 Eur! I hope this is temporal due to COVID or other problems, and they go back to their old price, the new one does not make sense. For 7 Eur you can put there a Spartan 3 FPGA with a whole lot more logic.

roudoudou

Ok for spartan 3 ans more fonctions like
Dma
2 more AY
1 sid chip
FPU unit for CPC
...
:P
My pronouns are RASM and ACE

GUNHED

Quote from: doragasu on 16:42, 27 December 20
The good news is that ROMBA has reached version 1.0. I have implemented a new register (CONF) with the bits needed to be able to write to the flash chip from the CPC itself.
This is awesome!!!  :) :) :)
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: roudoudou on 18:01, 27 December 20
Ok for spartan 3 ans more fonctions like
Dma
2 more AY
1 sid chip
That already exists, use the PlayCity and the SpeakSID.
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: doragasu on 16:42, 27 December 20
The bad news is that today I checked the CPLD at Digikey (LAMXO256C or the compatible LCMXO256C) and they have raised the price from near 2 Eur to 7 Eur.
Well, maybe then it's better to use the bigger FPGA and enable RAM to RAM DMA. Even with 2 us per byte this is super awesome. Most software does use copy/move of RAM blocks way more often than from ROM to RAM.  :)
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)

doragasu

#119
With an FPGA I should be able to implement RAM to RAM copy and more DMA channels. And I could make DMA channels more complex. For example the current DMA engine is linear, but I could easily implement a 2D engine able to copy rectangular zones. I have not investigated if it is possible to map the screen RAM to external RAM. If possible, adding also some RAM to the cart could allow the DMA to implement some masking capabilities (e.g. skip copying a pixel according to a bitmap mask). Without the on-cart RAM some masking could also be added, but it would be byte per byte instead of pixel per pixel (i.e. on mode 0 each mask bit would be applied to two pixels, while on mode 1 it would be applied to four pixels).

Anyway I do not think I will be developing this, at least in a short time frame. In my experience, the more complex I make a cart, the less people interested in using it! A bit out of topic, but in addition to this CPC cart, I have developed a WiFi enabled Megadrive cart with a well documented API to ease its usage, three different NES cartridges (one of them still not public, the others can be found here and here) and a GameBoy/GameBoy Color cartridge with MBC5 support. Only the most simple designs (the NES cartridge without mapper, the NES cartridge with discrete mapper and the Megadrive cartridge without the WiFi parts assembled) have been used so far. The Megadrive cart with WiFi has not picked a lot of interest from devs, and the same goes for the NES cart with MMC3 support (extended up to 128 megabits) and the MBC5 Gameboy cart. So with each cart I complete, I feel less push to spend time making complex carts!

GUNHED

With the CPC the Gate Array / CRTC can only use the first 64 KB for video memory. That's hardwired.

The Z80 can access lots of KB's, but the Video-RAM must be inside the first 64 KB main memory.


Anything else: Awesome!!!
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)

doragasu

Well, this might be the cause for the price of the CPLD I am using to skyrocket: https://hackaday.com/2021/01/18/pandemic-chip-shortages-are-shutting-down-automotive-production/
I am using an automotive part (LAMXO256C) so this could be perfectly the cause. I suppose things will get back to normal eventually.

GUNHED

Hi there!

Since this is one of the most fascinating hardware projects for the CPC ... let me please ask ...

Are there any news? What's the status quo? Did the project reach final stage? Can it be bought somewhere?
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)

martin464

could I ask something related to the topic
Revaldinho's RAM pack for the 464 entirely replaces the onboard ram with external ram
wouldn't this method open up access to all the pins on the ram chips that are not available on the expansion bus?
that open up further performance options maybe

then, couldn't dma to expanded ram outside the base 64k be ultra fast and have interrupts enabled?
the cpc can just do its own thing while the expanded ram is being written to or read from

i'm imagining a Revaldinho style PCB with built in DMA support and storage device connection (say to IDE disc)
then a scroller game can be playing and when it gets near needing new background bitmaps it tells the device to fill up a 16k bank from a file and the cpc carries on. when it needs it, it's loaded in
or for video playback the device could switch the base 64k like with double buffer but your double buffering the screen part of the base 64k with expanded ram banks. like a 2nd gatearray to determine which banks the cpc see's as comprising the base 64k
you could do all that if the cpc didn't care about what was happening to ram it wasn't directly able to address?
maybe the onboard ram could still be available as well somehow for other purposes (the onboard becomes the 'expanded' ram and the 'expanded' the onboard)

i imagine the device having a small stack to remember commands needed to load files into ram, like
Track 3, Sector 1, Read x sectors to ram bank 5 so the cpc doesn't need to hand hold it just setup and its automatic

i await the 'it won't work'  :)
CPC 464 - 212387 K31-4Z

"One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation." Ada Lovelace

eto

Quote from: martin464 on 14:19, 26 February 24Revaldinho's RAM pack for the 464 entirely replaces the onboard ram with external ram
Not entirely. The GateArray still can only access the internal 64K. If I am not mistaken they are in shadow mode in parallel to the first 64K of the external RAM.


Powered by SMFPacks Menu Editor Mod