Autore Topic: Modplay64 1.2e  (Letto 5231 volte)

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Modplay64 1.2e
« Risposta #15 il: 06 Dicembre 2007, 20:41:27 »
 Nuovo e importante aggiornamento:

* what's fixed in modplay64 1.2d *
-removed log+pitch calcs by including
precalculated and exomized tables
-cleaned from scpu specific parts
they were unreached code anyway ;)

Ho tolto i tediosi calcoli delle tabelle dalla parte basic, generando le 5 tabelle necessarie per ognuna delle periferiche utilizzabili, compattandole e infilandole nella gia' poca ram rimasta a $d000 e $ee00. Questo, seppur comportando l'aumento del file finale di 22 blocchi, permette di avere quasi istantaneamente le tabelle giuste appena si variano device e parametri (stereo e dithering). Per risparmiare un po' di blocchi ho levato di mezzo i rami della parte Basic che dovrebbero essere elaborati solo in presenza della SCPU, ma penso che nessuno si lamentera' di questo, anche perche' la mia versione onefiled include, sin dalla 1.2b, solo il player per C64 normale, a 1mhz.

Buon ascolto.
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Modplay64 1.2e
« Risposta #16 il: 10 Dicembre 2007, 01:25:59 »
 
Citazione da: "iAN CooG/HF"
Sorgenti e patch
D64 con 2 mod corti di esempio
D81 con 5 mod grandi di esempio
Se il link non funziona, e' per colpa di altervista: copiate il link in una nuova finestra o andate QUA e cercate i link in fondo alla pagina
Ultima versione, e stavolta non c'e' davvero margine per ulteriori migliorie.

* what's fixed in modplay64 1.2e *
-compiled with austrospeed to save some time on mod loading
Codice: [Seleziona]
Modplay1.2d basic version vs 1.2e Austrocompiled version

------------------------------------
|                    |Loading times|
|recall.mod  / 66040b|Basic |Comp'd|
|----------------------------------|
|normal kernal+1541  | 3:56 | 3:03 |
|TFR 0.8             | 3:56 | 3:03 |
|Action replay/RR    | 3:50 | 3:01 |
|Exos                | 3:49 | 3:02 |
|SpeedDos+           | 2:02 | 1:15 |
|JiffyDos 6.01       | 1:51 | 1:04 |
|PiffyDos/FLT        | 1:52 | 1:04 |
|DolphinDos 2        | 1:24 | 0:37 |
------------------------------------
|normal kernal+1581  | 3:17 | 2:27 |
|JiffyDos+1581jd     | 1:23 | 0:36 |
------------------------------------
All tests made in Vice 1.22, 1541/1581 and a stopwatch

La compilazione del programma e' stata possibile solo grazie alla precedente modifica, che ha fatto risparmiare un bel po' di spazio non essendo piu' necessari array nello spazio variabili, prima non ci stava fisicamente.
Diversamente da quanto pensassi, le cartucce acceleratrici non riescono ad accelerare l'accesso ai files letti sequenzialmente, ma solo le operazioni load/save.
Resta il fatto che la compilazione con austrospeed toglie gia' un minuto scarso ai quasi 4 minuti necessari a caricare un mod cosi' "piccolo", su un c64 non modificato e con 1541.
Usando invece dei kernal che sfruttano la porta parallela, si ottengono risultati piu' che soddisfacenti.
DolphinDos e' gia' un mostro di suo, con questa miglioria addirittura si scende a 37 secondi. Bestiale  
Per usare Jiffydos e Piffydos (modifica non ufficiale dei Fairlight) ho dovuto invertire su disco la posizione dei 2 mod di esempio perche' inspiegabilmente si inchodava a meta' della lettura se recall.mod si trovava sulla traccia 20 e proseguiva in avanti, fermandosi alla traccia 21. Invertendoli si caricano entrambi senza problemi anche con questi kernal.
Posso solo sperare che funzioni correttamente su un C64+Jiffy reale :stordita:

EDIT: aggiornati files dopo aver migliorato anche se di poco il onefiling (prima facevo 2 passate con Exomizer, non era piu' necessario fin dalla 1.2d) e completato lo schema delle tempistiche con i tempi rilevati con 1581
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -