insaneCPU-C64 cpu boost μέσω RasPi Zero

Οτιδήποτε εκτός θέματος εδώ.

Συντονιστές: Nemo, Whacker, BraiNKilleR, Maddog

insaneCPU-C64 cpu boost μέσω RasPi Zero

Δημοσίευσηαπό Nemo » 31 Αύγ. 2017 19:42



https://www.youtube.com/watch?v=2YnaUX4PTl0


insaneCPU is an ARM-based C64 accelerator cartridge using a Pi Zero as CPU Grunt and a Cypress PSOC 5LP CY8CKIT-059 board as interface processor.
Prototype #2: USB connection removed - GPIO is used instead.
The Video is a 25FPS capture!
Prototype #2 being USB-less allows for a fast way to sync to VIC IRQs.
Border Colors: White is FX Time - Red is Transfer Time
PSOC side is still fairly unoptimized C - 985kb/s is the target which I want to reach. Also the PI side is still running under Linux which allows for fast development (using wireless even!) but adds the overhead/jitter of an multitasking operating system - the final insaneCPU will run bare metal in order to avoid the seen IRQ-jitter.
insaneCPU will be released with a 65816 as well as a 6510 turbo soft core.

insaneCPU is, for now, using the SuperCPU-way instead of the Turbo Chameleon-way. (i.e. mirroring instead of modified ultimax).
This can still be modified in a later time but would ditch C128' C64 mode compatibility (of which I do not know if it yet exists).
There is also the possibility of using the VideoCore4 to do the Transfer to the C64. But first 985kb/s i.e. 100% C64 Bus Speed will need to be reached.
Note that C64 Bus Speed is PI-PSOC-C64! The PI-PSOC Link is the current bottleneck - NOT the PSOC-C64 Link - this one operates at 985kB/s - i.e. Full Speed - since Day One


Θυμάστε

-το FIFOgfx project του MagerValp όπου ο σκοπός του να ζέψει σε ένα Raspberry Pi Zero -σε συνδιασμό και προς όφελος του C64- στις υπηρεσίες του οποίου λειτουργούσε ως graphics card/κάρτας γραφικών με HDMI out

:arrow: viewtopic.php?f=7&t=5979&p=36342&hilit=%2Afifogfx%2A#p36342
?

Το insaneCPU project θέλει να κάνει κάτι αντίστοιχο σε σε συνδιασμό με ένα Raspberry Pi Zero στοχεύοντας στην όμως στην Cpu αναβάθμιση των ικανοτήτων του C64 ( SuperCPU e.t.c.).

Υ.Γ.
Ποιός ξέρει ίσως στο μέλλον δούμε C64 με 3 Raspberri Pi το ένα ως για Cpu Boost ,το δεύτερο για Gpu boost και Hdmi out, το τρίτο με το uno2iec
{και ποιος ξέρει και για κάποιο άλλο πιθανό μελλοντικό project που θα έχει να κάνει με ήχο/ sid + raspberry(opl2 emu/aid emu) e.t.c.}

Αρκεί να το επιτρέπουν οι διαθέσιμες ελεύθερες slot που θα απαιτούν και να "σηκώνουν" τις αυξημένες απαιτήσεις όλων των παραπάνω τα γερασμένα ηλεκτρονικά components της πλακέτας του Coomodore ,το τροφοδοτικό και σε συνδιασμό με τους όποιους άλλους δεδομένους περιορισμούς που θα έχει λόγω του σχεδιασμού του .
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
 
Δημοσιεύσεις: 4367
Εγγραφή: 15 Απρ. 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: insaneCPU-C64 cpu boost μέσω RasPi Zero

Δημοσίευσηαπό Nemo » 16 Σεπ. 2017 16:28

:offtopic: mode on

Nemo έγραψε:Υ.Γ.
Ποιός ξέρει ίσως στο μέλλον δούμε C64 με 3 Raspberri Pi το ένα ως για Cpu Boost ,το δεύτερο για Gpu boost και Hdmi out, το τρίτο με το uno2iec


Ή και ως αντικαταστάτης του C64 floppy drive


Raspberry Pi as a 1541

can be done and done quite easily. I have been working on one for about a year now. It currently runs on a Raspberry Pi 3 and emulates the CPU, the VIAs and the 16Mhz clocked encoder/decoder logic. It is implemented in bare metal C++. It does not use VICE code but it is approaching the emulation compatibility levels that VICE does. It supports D64, G64 and NIB/NBZ disk images (still experimenting with P64).

It currently runs all of the top 30 of csdb’s demos. I have tested many copy protected originals such as Rapidloc, Vmax, Vorpal, sync counting etc, and most work. I have tested all major cart based fast loaders and JiffyDOS and all work.

Like most people I was a little disappointed in the sd2iec offerings and the FPGA solutions are out of my budget. After a short time my sd2iec device stopped working and I set about researching how to fix it. I then discovered how simple and cheap they are to make. After making a few of my own I then started looking into the source code. After looking at the source I realised that code for proper cycle exact emulation would be less complex than the code I was looking at!

I am so glad I started before the second half of this thread appeared. Not that I’m easily discouraged but I do genuinely respect the opinion of these posters and had they posted earlier I may have believed it was not possible when in fact it certainly is.

When I started out, I just wanted it to be better than sd2iec. I didn’t want to go down the rabbit hole of;- it must be fully compatible with every copy protected original. But as I progressed I found myself enjoying disassembling code and learning not only how the drive worked but how fast loaders and copy protection schemes worked. (I’ve seen some crazy stuff along the way). The rabbit hole wasn’t as bad as I thought. It was exciting to research something or fix a bug and discover that now all of a sudden a whole bunch of stuff just started working.

Like VICE it emulates up until and including the encoder/decoder. Again like VICE, the analog to digital data recovery section consisting of the amplifier, low pass filter, differentiator, zero crossing detector, time domain filter and pulse generator are all simulated.

The Raspberry Pi’s timer is clocked at a rather convenient 1Mhz, hence I use it to keep cycle exact timings. The 16Mhz stuff is implemented as a loop that iterates 16 times inside a 1Mhz step. Everything can be updated in 1us. The emulator runs on core 1. Core 0 handles the Pi’s USB keyboard interrupts and the user interface displayed on the Pi’s screen. Cores 2 and 3 are put to sleep (WFE). However, I do need to be careful how much I try to do on core 0 as any cache pollution can cause core 1 to miss its 1us real-time requirement.

For the emulation of the 6502 I thought that I would need to implement all the reads and writes it performs (That is, the read or a write it does on every cycle even if it is redundant). So I started with "MCS6500 Family Hardware Manual”. The T states for each addressing mode are detailed in this document and the addresses the 6502 uses for the ‘every cycle read or write’ are shown (including interrupts). For the undocumented instructions there now exists a variety of documents on the web describing them (most of them wrong). VICE was my the goto reference when there was a discrepancy.
......



:arrow: http://www.lemon64.com/forum/viewtopic. ... 025#799025

όπως πάντα κρατάμε μικρό καλάθι

γιατί το ζητούμενο δεν είναι η απλή εξομοίωση ~ αλλά επακριβή εξομοίωση σε πραγματικό χρόνο .

:offtopic: mode off
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
 
Δημοσιεύσεις: 4367
Εγγραφή: 15 Απρ. 2004 22:55
Τοποθεσία: Θεσσαλονίκη


Επιστροφή στο Εκτος θεματος

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Bing [Bot] και 1 επισκέπτης

cron