Ready64 Forum
Commodore 64 => Segnalazione News => Topic aperto da: iAN CooG - 02 Dicembre 2007, 17:21:56
-
Modplay64 (http://noname.c64.org/csdb/release/?id=16380) e' un interessante esperimento realizzato tra il 1998 e il 2000 da un programmatore americano, Nate Dannenberg(*), che permette di suonare i MOD Protracker a 4 voci con un C64. Supporta una discreta gamma di device di output sonoro, a partire dal SID, SID stereo selezionabile a $D700/$DE00, DAC su parallela e persino la scheda DIGIMAX, ma questa solo per chi ha una SCPU.
Per poter funzionare e' pero' necessaria la REU da almeno 128kb per contenere i samples, dato che il programma stesso, un misto fra basic e LM, occupa quasi tutta la ram. Il programma e' oltremodo lento nel caricare, quindi si assume che una modifica HW come un kernal veloce come JiffyDOS/SpeedDos o almeno una cartuccia ActionReplay sia presente. L'Autore purtroppo dava per scontato che tutto l'HW necessario fosse presente, e non faceva nessun controllo, per di piu' usava una funzione presente solo in JiffyDos per stampare la directory. A questo aggiungerei che i settaggi di default consentivano l'output su un device "esotico", un DAC su porta parallela, mentre l'ideale sarebbe di poter emettere i samples direttamente da SID, dato che e' il device preferenziale di qualunque C64, mentre gli altri sono talmente rari che sfido chiunque a dire di averne mai visto uno.
Orbene, io avevo gia' provato a farne una patch anni fa (i miei files erano datati 2002) ma avevo desistito, non so piu' bene perche'. Ieri sera, dopo che ne avevano parlato su CSDb, mi sono rimboccato le maniche e ho finalmente completato il lavoro di fixing.
- sid by default, not dac device
- mono default, and not stereo
- dither disabled, adds only noise
- changed "$" with an asm dir routine
- reu detected, prints a warning only
- onefiled
Sorgenti e patch (http://iancoog.altervista.org/HF/modplay12e_src.rar)
D64 con 2 mod corti di esempio (http://iancoog.altervista.org/HF/modplay12e_fix_D64.rar)
D81 con 5 mod grandi di esempio (http://iancoog.altervista.org/HF/modplay12e_fix_D81.rar)
Se il link non funziona, e' per colpa di altervista: copiate il link in una nuova finestra o andate QUA (http://iancoog.altervista.org/HF/) e cercate i link in fondo alla pagina o su CSDb (http://noname.c64.org/csdb/release/?id=58189)
Per testarlo sotto Vice ricordate quindi di abilitare la REU con una quantita' di RAM sufficiente a contenere i mod da caricare - il programma non fa nessun controllo, se non c'e' spazio sentirete solo rumore - e magari usando un kernal/cart per accelerare i caricamenti. Con il 1581 la AR e' consigliata, e' l'unica che conosco che accelera anche il drive da 3,5" . Poi ovviamente c'e' il warp mode che viene sempre in aiuto.
(*) Ora non sto a spiegarvi il perche' ma ora si fa chiamare Vanessa :lol:
EDIT: link aggiornati alla 1.2e
-
(*) Ora non sto a spiegarvi il perche' ma ora si fa chiamare Vanessa :lol:
Lo stesso motivo per cui Dan Bunten, il programmatore di MULE (http://gb64.com/game.php?id=5076), iniziò a farsi chiamare Danielle (http://en.wikipedia.org/wiki/Danielle_Bunten_Berry)?
-
Ottimo lavoro Ian!
E' davvero una soddisfazione riprodurre dei MOD su C64... "it can be done!" Una versione fixata e onefiled poi ci voleva proprio per rendere più facilmente utilizzabile questa applicazione.
-
Lo stesso motivo per cui Dan Bunten, il programmatore di MULE (http://gb64.com/game.php?id=5076), iniziò a farsi chiamare Danielle (http://en.wikipedia.org/wiki/Danielle_Bunten_Berry)?
Exactly ;)
-
Bellissimo programma. COMPLIMENTI.
Queste sono le cose che vorrei vedere su un c64.. spingerlo sempre piu' verso il suo limite di elaborazione per testare fin dove puo' arrivare.
;)
-
Volevo cogliere l'occasione per chiedere se esistono giochi che sfruttano l'espansione di memoria REU oppure se esistono utilities che sfruttano lo stesso principio.
Grazie
-
Volevo cogliere l'occasione per chiedere se esistono giochi che sfruttano l'espansione di memoria REU oppure se esistono utilities che sfruttano lo stesso principio.
Grazie
Quasi tutte le releases N0stalgia, se sono multilivello e realizzate col loro N0sDos, permettono il precaricamento dei livelli in REU.
Tools ce ne sono, ad esempio alcuni copiatori che caricano un intero lato alla volta, o compattatori che per velocizzare il processo caricano in REU.
-
Ah, grazie, quindi nessuna casa ha mai sviluppato giochi che sfruttano piu' di 128k di memoria (c128)...?
-
Ah, grazie, quindi nessuna casa ha mai sviluppato giochi che sfruttano piu' di 128k di memoria (c128)...?
A parte che non capisco cosa c'entri il c128 con questo discorso, giochi per c128 si contano su 2 mani, Se intendi giochi commerciali che sfruttino la reu, non penso ne esistano. Solo Cracks recenti lo fanno.
-
E' possibile sfruttare, anche con qualche chip audio esternamente emulato, la modalita' 8 bit audio presente nelle opzioni di modplay64?
Mentre avevo scritto, facendo delle prove con l'emulazione DIGIMAX, dapprima ho visto che non la riconosceva, poi ho provato a "direzionare" l'indirizzo base della Digimax facendolo coincidere con USERPORT e quindi ho selezionato dal programma mod play l'audio 8bit dalla userport.
Funziona!!!
Anche perche' da un 8 bit non era concepibile una qualita' audio 4 bit super compressa!
:mavieni:
Mi sono poi caricato un bel file mod che occupa 170 kb di ram con la Reu: Flashdance!
-
Che meraviglia sentire le musiche di Turrican 2 Amiga sul c64
A parte un leggero disturbo dovuto alla resa 8 bit di una musica composta a 16, non ci si crede a cio' che il c64 puo' far uscire.
A questo punto mi chiedo...
Sfruttando la Reu, e la Digimax potevano pure sviluppare quache gioco che suonasse motivi in formato mod composti su un Amiga.
Il problema sarebbe stato il rallentamento di esecuzione delle istruzioni macchina relative alla grafica, immagino, cosa che la ram proprio non puo' ovviare.
Pero', tentativi potevano farli.
Forse perche' determinati pezzi di hardware erano poco diffusi e il gioco non valeva la candela.
Oggi pero' nel campo dell'emulazione qualcuno potrebbe cimentarsi in un progetto di un gioco che sfrutti tali estensioni hardware.
-
Che meraviglia sentire le musiche di Turrican 2 Amiga sul c64
A parte un leggero disturbo dovuto alla resa 8 bit di una musica composta a 16, non ci si crede a cio' che il c64 puo' far uscire.
A questo punto mi chiedo...
Sfruttando la Reu, e la Digimax potevano pure sviluppare quache gioco che suonasse motivi in formato mod composti su un Amiga.
Dubito che i samples di un mod protracker siano a 16bit, che io sappia erano sempre a 8bit a 8000hz di frequenza. Solo trackers piu' recenti permettevano samples a 16 bit.
E no, addirittura un gioco non e' possibile, primo perche' per migliorare la qualita' dell'output il VIC deve essere spento, e poi il solo player e le sue tabelle occupano quasi tutta la memoria, non ci sta molto altro.
Il gioco non valeva proprio la candela, dato che erano periferiche esotiche, persino la sola reu pur essendo piu' utile di una scheda audio/dac, ebbe poca diffusione, se non tra qualche sporadico geos fanboy.
-
Bumpo il thread per annunciare una nuova versione, con una aggiunta chiestami su CSDb
* what's fixed in modplay64 1.2c *
-in stereo sid address you can
select $d420-$d7e0 and $de00-$dee0
minor changes:
-stereo selection de/reactivates
address display
-fixed randomly disappearing cursor
-
Selezionare un indirizzo di memoria per lo Stereo che vantaggi da?
-
Ci sono diversi sid stereo con il 2o chip mappato a differenti indirizzi, i piu' usati sono d420, d500, d700, de00, df00; qust'ultimo pero' non e' utilizzabile con modplay perche' a quell'indirizzo c'e' la reu. Prima aveva solo d700 e de00, se non fosse selezionabile l'indirizzo $d420 gli utilizzatori del 2sid interno non ne potrebbero usufruire. Anche se l'ho testato solo su emulatore, la' fuori c'e' gente che gradisce che i programmi funzionino sull'HW reale :D
-
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.
-
Sorgenti e patch (http://iancoog.altervista.org/HF/modplay12e_src.rar)
D64 con 2 mod corti di esempio (http://iancoog.altervista.org/HF/modplay12e_fix_D64.rar)
D81 con 5 mod grandi di esempio (http://iancoog.altervista.org/HF/modplay12e_fix_D81.rar)
Se il link non funziona, e' per colpa di altervista: copiate il link in una nuova finestra o andate QUA (http://iancoog.altervista.org/HF/) 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
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