Welcome, Guest. Please login or register.


Author Topic: Enterprise accelerator hardware - Enterprise gyorsító Hardver (Read 3357 times)

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Magyar fordítás később (Hungarian translation comming soon)

I was thinking today, how it would be possible to accelerate the Enterpriste like a GPU in a PC doing nowdays.

 We have a slow speed Z80 with lack of integer multiplication/division and floating point math calculation. There are mathematical instructions built-in in the ROM, but the routines are very slow it takes more CPU cycle to execute.
 Also there is no built-in sprite handling in the video processor (Nick).

 Various demos from the recent years are already showed us, that the Enterprise would be capable to show a cutting edge pictures and/or sounds, the only problem that the calculations are too slow, because of the missing instruction set.

 My idea would be a hardware, which uses 4+ free segments of the EP memory, and capable of receive memory mapped I/Os, and also memory blocks for manipulation.
 Certain memory would be dedicated to matematical instructions, other ones for fast memory block operations.

 Let's see some examples:
- Trigonometrical and floating point instructions
 Z80 does not have any "higher" mathematical instuctions like multiplication, division, sin(x) cos(x) , matrix table calculation.. or just even 32bit instructions.
 This instructions are mandatory for first person shooter games, like Total eclipse, Driller, Dark Side where a lot of coordination transformation is happening during movement.
 Imagine that the Mandelbrot picture in is basic will be ready in hundred milliseconds.
 Or a raytracing image rendering in seconds instead of 30 minutes (with turbo) see: https://enterpriseforever.com/video/raytrace/

- Fast memory block copy and manipulation (for sprites)
 In the hw accelerator memory we can store big background pictures and multiple small pictures (sprites) with masks. And the Z80 is going to tell the movement of a small picture (sprites) and the animation phases, and the accelerator makes the actual frame. The only task for Z80 is to copy all or part of the picture into the video memory. For 2D or 3D games it could be handy.

- Data compresson acceleration
 Nowdays we have many efficient working codecs from the PC world, so the pictures/sounds can be compressed very compact. We have not much memory for the Enterpise, so hi-deteiled interlaced pictures or trailing videos in game chapters could be played fast.
 The Z80 could extract the compressed filed and copy to the video memory just-in-time.


The "Hardware Accelerator" could be a fast FPGA which execute all the instructions in 200MHz. So the Z80 gets the result after it's request immediately.

Probably there are much more things/instructions, which would be nice to have, unfortunately I have no more idea right now.

Offline geco

  • EP addict
  • *
  • Posts: 7081
  • Country: hu
    • Támogató Támogató
I do not want to be the unnepronto :-D
The stuffs you mentioned are great, but if it is realized, our beloved EP is not an EP anymore. it is my oppinion: i saw some hw specific stuff for commodore +4 and 64 also which let the old hw to play video with digi sound, i did not like them.
Hw sprite for ep would be great, and it is ok for my side, as it was originally "planned" also, the problem with it, who will create programs for it? and how many sprite hw will be sold?

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
...but if it is realized, our beloved EP is not an EP anymore.
+1

Ünneprontó is party pooper or spoilsports IIRC. szipucsu, pls halp!

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
The stuffs you mentioned are great, but if it is realized, our beloved EP is not an EP anymore.

 I do not concur your oppinion. We need some new cool stuff where we can develop in our free time.
 It is also cool to test new hardware. See what the accelerator with the EP can do.

 You don't have to use the accelerator all the time. Just if you want to develop or play some new made games.

 My dream is for example a MP3 player in the background from the EP Speaker, while I run my recently made matrix code in basic.
 For that I just need a registred User-Interupt, and some data communication with the accelerator, and a SD-card floppy drive.

 

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
3D does not require floating point math*. You can get by with fixed point arithmetic. Trigonometrics and other math functions can be accelerated with LUTs. And no matter how much you speed up calculations, NICKs limited capabilities and the low available VRAM bandwidth will trip you up anyway in creating your dream graphics.

/OFF
*See C64 demo Andropolis' freescape part. And that is done on a measly 6510 running at less than 1MHz.
/ON

There is already a tried and proven way of accelerating the EP by internal Z80 turbo cards. IDK what are the actual possibilities, but a 20MHz Z80 doesn't sound bad to me. And you could add RAM in standardized ways too. Those could help a lot in increasing performance in a more or less native looking way.

That DMA in video memory is a freakish idea. Good luck to anyone trying to realise it. Snails are having aching bellies because of laughter.

/OFF
Does OperWolf count as FPS or not?
/ON

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Ünneprontó is party pooper or spoilsports IIRC. szipucsu, pls halp!
Spoilsport is ok, or killjoy is easier to remember.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
What you describe is mostly a modern PC running an EP emulator. What does still need to be developed in that? Obviously, not counting the Fantasy Enterprise parts. Which will have no real life impact (no buyers, no developers, no software, no use; except maybe for you).

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Some of the things proposed here are at hand with the SymbiFace3 interface.

For example, memory added to the EP with the interface can be manipulated by the ARM processor at the same time(dual port memory), so it is very possible to implement  some form of coprocessor for maths, graphics or compression. There are already some virtual machines done, like the Midi interface, a SID chip or a DAC for playing sound samples, all of them based on classic interfaces or rare developer's only devices. Geco(Software) and Hans(Hardware) implemented them.

A new RSF3 interface has been already proposed by Hans (Geco made the announcement not long ago), with a faster ARM processor and a bigger CPLD(or a little FPGA).

Maybe we can ask Hans to include the colour input signals on the device, to later be able to use them for a future Sprite generator.

--

But..... more energy is needed on the EP scene.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
My dream is for example a MP3 player in the background from the EP Speaker, while I run my recently made matrix code in basic.
 For that I just need a registred User-Interupt, and some data communication with the accelerator, and a SD-card floppy drive.

This is something that can be done easily on a SF3 in Basic, you can launch a MP3 on the SF3 USB pendrive, motorise it while you do your task(volume, bass, treble, pause, play, stop, remain). It takes very few Z80 time to ask the SF3 every now and then how the MP3 task goes.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
That DMA in video memory is a freakish idea. Good luck to anyone trying to realise it. Snails are having aching bellies because of laughter.

There are many ways to realize direct memory access to NICK's memory.
 The one would be to replace the onboard 64k with a dual port memory. It can be a SD-ram with interleaving, or a real dual port memory.

 The other possibility to would be to take the behaviour-description from KYP's FPGA project, and make it as an external NICK. Because the external NICK would have it's 64K memory, the direct memory access is also possible without changing the EP board.

 In that external NICK scenario it would be possible to extend the 64KB of video memory to 512K or more to have full PAL (720 x 576 pixels) resolution, which takes 720*576*1byte=405 KB memory.
 With dual port memory it is also possible to share the whole 4 MB of the EP memory with the NICK.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
You think BIG....

Better do that inside the FPGA. Implement a Super Enterprise with a 200Mhz Z80... Kyp says it is possible...

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Wow! And all that is told you by your internal electronics engineer genius raring to go and rip through such a project in no time with ease. Double wow! I'll wait excitedly to see how your Nonterprise dreams will fare. (Crash and burn, maybe?)

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Nobody is born taught, but enthusiasm impulses us to learn.

I like imagination, mixed with laziness... are the great forces that make us evolve as humans.


Think on Kyp, the FPGA Enterprise core maker, I know him personally since only three years. His interest with the FPGAs started only two years ago. Of course he has a baggage of hardware knowledge, acquired with Spectrums and Amigas, but FPGAs are not like programming an emulator, signals happen all at the same time. You need to change your mind to make what he has done, and continue doing.... next time mouse implementation.... 
« Last Edit: 2022.May.21. 18:44:39 by gflorez »