@Grendizer: i costi devono essere contenuti, perché altrimenti il progetto perderebbe molta dell'appetibilità. Credo che andremo un po' sopra i 200€ a causa delle ultime scelte che sono state fatte, perché ci saranno ben 3 FGPA abbastanza potenti, ma ti assicuro che ci vorrà parecchio tempo e, soprattutto, tanta fantasia per trovare dei modi per sfruttare tutte quelle risorse a disposizione (ogni FPGA ha circa 30K LE; se consideri che il softcore 68050 di Natami, con tanto di FPU e un bel po' di cache codice e dati, doveva richiedere circa 25K LE, capisci che rimane ancora un po' di margine per potenziarlo ulteriormente; inoltre l'ultimo FPGA usato per Natami aveva 55K LE, mentre qui ce ne sono 30 + 30 + 30
).
Ciò detto, in futuro potrebbero esservi ulteriori margini per potenziare ancora il progetto. Ci sono FPGA compatibili con quello scelto (è lo stesso per tutti e 3), ma con molte più risorse (fino a 4 volte di più).
Inoltre al momento si fa uso di memoria SDRAM (o SDR), ma per eventuali prossimi progetti (se questo avrà successo, come spero) si potrebbe pensare di impiegare DDR o DDR2, che porterebbero la banda teorica a disposizione rispettivamente a 6,4 e 12,8 GB/s: valori impressionanti (con le DDR2 siamo vicini a quella del "nuovissimo" Nintendo Wii U!).
Al momento, però, l'obiettivo n.1 è quello di portare il Minimig v1 su TINA, e ovviamente farlo funzionare.
Il secondo step sarà farlo evolvere per emulare un sistema AGA (Amiga 1200), che richiederà molto più lavoro (anche perché la CPU è decisamente più complessa).
Il terzo sarà lavorare a una CPU più potente. Si potrebbe anche integrare un'unità SIMD nuova di pacca, che manca alla famiglia 68K, per introdurre finalmente l'elaborazione massiccia parallela dei dati (almeno per quelli interi; se possibile anche floating point a 32 bit); avendo studiato l'architettura di Larrabbe si potrebbero prendere diversi interessantissimi concetti.
Col quarto si aggiungeranno i nuovi registri a 32 bit per il chipset, con nuove modalità video a 32 bit, sprite migliorati (credo, però, che rimarranno sempre 8, anche se potenziati con modalità chunky pixel a 8, 16 o 32 bit; eventualmente con possibilità di flipping orizzontal e, forse, verticale), 4 playfield ognuno con una propria modalità chunky (idealmente con 1, 2, 4, 8, 16, 24 e 32 bit di profondità colore), audio di nuova generazione (almeno 8 canali a 16 bit stereo con volume regolabile indipendentemente a destra e sinistra, e frequenze fino a 48Khz o anche più; vista la presenza di una quantità enorme di LE, credo si potrebbero aggiungere dei filtri real-time indipendenti per ogni canale, e magari un'unità DSP integrata che consenta di manipolare in maniera complessa i dati dei canali), Copper di gran lunga potenziato per ottimizzare i trasferimenti di dati e la programmazione dei registri, nuovo Blitter in grado di manipolare le nuove modalità chunky pixel, consentire di lavorare con flipping orizzontale e/o verticale di ogni canale dati in maniera indipendente (così da risparmiare parecchia grafica, che prima richiedeva appositamente la presenza in memoria di immagini speculari), e magari di disegnare alcune primitive grafiche oltre ai rettangoli e alle linee che sa già fare.
Mi piacerebbe anche poter introdurre la modalità YUV non soltanto per riprodurre video, ma anche per le normali operazioni. Credo che realizzare giochi in cui tutti gli elementi grafici (schermi/playfield con inclusa la modalità HAM in YUV, sprite, palette dei colori, e il Blitter con apposite modalità) siano YUV potrebbe portare un po' di innovazione; perché si potrebbe risparmiare banda sfruttando le peculiarità di questo spazio colore, pur conservando la qualità del risultato finale. Vedremo.
Carne al fuoco ce n'è quanta ne vogliamo (e altre idee ne verranno fuori sicuramente), come puoi vedere, ma è fondamentale uscire il prima possibile almeno col TINA che fa girare il primo minimig. Questo consentirà di attirare l'attenzione sul prodotto, e magari altri sviluppatori si potranno aggregare per dare una mano all'immenso lavoro che c'è da fare.
A tal proposito, secondo me questo thread è diventato troppo lungo, pesante, e dispersivo. Ci sono troppe cose discusse che andrebbero catalogate e conservate in modo che siano di più semplice consultazione. Le idee sono benvenute.