+ Rispondi alla Discussione
Risultati da 1 a 20 di 20
  1. #1

    Smile SEGA SC-3000, EMULATORE in FLASH AS3

    Ciao Ragazzi,
    a un paio di anni dalla creazione del sito sul SEGA SC-3000, ho cercato di creare qualcosa di nuovo per i fan SC-3000 del web. Ho creato un emulatore scritto interamente in Action Script 3, attualmente in fase di test.

    http://www.digimorf.com/fsc3k

    Caratteristiche di questo emulatore è la possibilità di salvare gli stati di memoria e di caricarli successivamente, in pratica viene salvata la sola RAM e le informazioni sui CHIP.

    E' stata implementata l'emuazione del datassette che permette di caricare le tapes in formato bitstream ( spero presto disponibile anche su MESS )

    Inoltre è possibile grazie al salvataggio degli stati, scriversi programmini in BASIC e salvarli, per riprenderli successivamente.

    L'emulatore ora riesce anche a leggere nella RAM gli HI-SCORES per memorizzarli in variabili durante l'esecuzione. Comodo per usi futuri.

    Questo progetto è nato principalmente perchè volevo scrivere qualcosa di avanzato in Action Script 3, e così, partendo da un semplice frame buffer sono arrivato ad un intero emulatore.

    Chiaramente Flash Player presenta risultati diversi in base alla macchina/browser su cui gira, per questo sto continuamente lavorando per ottimizzare il codice in modo che possa girare anche su macchine più datate... ma per questo ho bisogno dell'aiuto di tutti voi!

    Grazie e buon divertimento!

  2. #2
    Il Nonno L'avatar di Salvatore71
    Data Registrazione
    10-02-04
    Località
    Foggia
    Messaggi
    4,269

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Citazione Originariamente Scritto da sc3000survivors Visualizza Messaggio
    Ciao Ragazzi,
    a un paio di anni dalla creazione del sito sul SEGA SC-3000, ho cercato di creare qualcosa di nuovo per i fan SC-3000 del web. Ho creato un emulatore scritto interamente in Action Script 3, attualmente in fase di test.

    http://www.digimorf.com/fsc3k

    Caratteristiche di questo emulatore è la possibilità di salvare gli stati di memoria e di caricarli successivamente, in pratica viene salvata la sola RAM e le informazioni sui CHIP.

    E' stata implementata l'emuazione del datassette che permette di caricare le tapes in formato bitstream ( spero presto disponibile anche su MESS )

    Inoltre è possibile grazie al salvataggio degli stati, scriversi programmini in BASIC e salvarli, per riprenderli successivamente.

    L'emulatore ora riesce anche a leggere nella RAM gli HI-SCORES per memorizzarli in variabili durante l'esecuzione. Comodo per usi futuri.

    Questo progetto è nato principalmente perchè volevo scrivere qualcosa di avanzato in Action Script 3, e così, partendo da un semplice frame buffer sono arrivato ad un intero emulatore.

    Chiaramente Flash Player presenta risultati diversi in base alla macchina/browser su cui gira, per questo sto continuamente lavorando per ottimizzare il codice in modo che possa girare anche su macchine più datate... ma per questo ho bisogno dell'aiuto di tutti voi!

    Grazie e buon divertimento!

    Complimenti, davvero!!!

  3. #3
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Ciao,
    scusa l'ignoranza. Il codice sotto è scritto in C/asm oppure hai fatto tutto in Action Script? Se sì non sapevo si potessero realizzare queste cose a basso livello con quel linguaggio.

  4. #4

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Complimenti, davvero!!!
    Grazie! In effetti mi sono divertito molto a scriverlo, anche perchèp poi l'appetito vien mangiando ma soprattutto si imparano molte cose su coem "ragionano" i vari chip e il bello sta poi proprio nel simulare poi il tutto

    Il codice sotto è scritto in C/asm oppure hai fatto tutto in Action Script?
    E' tutto in Action Script 3... In effetti a dire il vero ci sono alcune cose che andrebbero "migliorate" in Flash player, come lo stream audio che ha una latenza di circa 2, 43 frames ( che a 50 Hz del PAL a 313 linee alcune sincronizzazioni si perdono, e anche altri effetti di vibrato etc... ) Il buffer Audio ha una limitazione di 2048 campioni come minimo.

    Poi per l'uso della tastiera ho una pesante limitazione per il full screen, ovvero quando mando a tutto schermo il filmato, come si fa per You tube ad esempio, ho solo pochi tasti a disposizione... per non parlare dei tasti control ed ALT, che sono comunque controllati principalmente dal browser.

    Comunque per un semplice uso "ludico" è già ragionevole... anche se poi si verificano limitazioni in base alla velocità della macchina ed eventualmente il browser.
    Per questo è necessario cercare di ottimizzare il più possibile il codice, come ad esempio l'uso di strutture dati più veloci da gestire per Flash player etc...

    Spero di riuscire a diminuire ancora il frame time così che anche su computer datati ho una velocità migliore.

    Vi terrò aggiornati sulle evoluzioni

  5. #5
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Citazione Originariamente Scritto da sc3000survivors Visualizza Messaggio
    Grazie! In effetti mi sono divertito molto a scriverlo, anche perchèp poi l'appetito vien mangiando ma soprattutto si imparano molte cose su coem "ragionano" i vari chip e il bello sta poi proprio nel simulare poi il tutto
    A proposito di emulazione, per coloro che volessero cominciare ad emulare qualche sistema (parlo ovviamente di coloro che già sanno programmare), quale risorse consigli (documenti, esempi di codice, siti)?

  6. #6

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    In primo luogo bisogna conoscere la macchina da emulare... Avendo tirato su il sito dell'SC-3000 avevo la possibilità di avere a disposizione molte informazioni tecniche. Al di là di quello ci sono alcuni siti che ti danno indicazioni su cosa fare e come iniziare...

    uno che mi ricordo è:
    http://fms.komkon.org/EMUL8/

    Il linguaggio usato dall'autore è C++... Bisogna metter in conto che alcune cose devono essere studiate "nativamente" per il linguaggio con cui si sviluppa, così si ottiene più velocità di esecuzione.

    Ovviamente per capire si possono leggere e studiare i sorgenti del MESS o del MAME, o di altri emulatori che offrono i sorgenti, ma alla fine credo sia meglio mettersi a scrivere bene tutto, così si sa dove andare a parare in caso di bug fix.

    Attualmente devo riscrivere lo z80 e il chip sonoro, classi che ho usato già scritte ma che una è stata ottimizzata per zx Spectrum, e l'altra invece per fare un player VGM ( dettagli su www.smspower.org )

    Spesso accade che le classi scritte non siano propriamente generiche, ma ottimizzate per il lavoro che si deve andare a fare. Per fare questo ci ho messo diversi mesi, ovviamente a tempo perso. Ma ho avuto anche dei preziosi consigli da SirioKD, autore di diversi emulatori per SC-3000... ( informazioni su www.sc-3000.com )

    Per il linguaggio sicuramente il c++ è il migliore, e per far girare online il tutto Java è veloce e flessibile rispetto Action Script, ma confido che nel futuro migliorerà.

  7. #7
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Grazie. Info molto molto interessanti

  8. #8

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Prego, figurati!

    Ora sto studiando un modo per velocizzare di più l'emulazione... devo anche migliorare la routine per il frame skip.

    Devo anche fare una piccola interfaccia per la tastiera, così che chi no conosce la tastiera dell'SC-3000 e magari si trova in difficoltà, può cliccare sui tasti dirrettamente. E poi per alcuni tasti, bloccati dal browser risulterà più semplice stendere un programmino in basic.

    Ovviamente poi implementerò la possibiltà di leggere i tapes esattamente come accade per gli stati di memoria, così si potrà salvare il proprio lavoro e convertirlo poi in wav da usare sul MESS...

    Una to do list pesante

  9. #9
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Su quale emulazione (computer a 8 bit?) consiglieresti di iniziare (anche tenendo conto del materiale didattico che c'è in rete)? Al momento credo che l'emulazione delle console (almeno quelle a 8 bit) sia ancora troppo difficile per i neofiti dell'emulazione.

  10. #10

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Guarda, questo è il proimo emulatore che scrivo, l'SC-3000 rispetto ad altre console computer è più semplice, ovviamente più semplice è la macchina e più semplice è l'implementazione.

    Devo dire però che alle volte sembra "facile" concettualmente ma poi ci si scontra con degli algoritmi che devono assolutamente essere ottimizzati a livello di operazioni e poi tutto si complica andando avanti. Non è una cosa semplice.

    Secondo me per iniziare è meglio cercare di "replicare" qualcosa che è già stato fatto, farne una propria versione insomma, almeno hai dei tremini di paragone. Ovviamente "copiare" non serve a nulla se vuoi imparare qualcosa, ma sicuramente avere una traccia da seguire ti aiuta a capire come funzionano certi concetti.

    Io come sviluppatore in FLASH ero abituato a tutt'altro metodo di programmazione... qui sono cose diverse, esattamente come un tempo 2 operazioni in più che si ripetono possono fare la differenza a livello di cicli di clock.

    Studiare i listati serve molto.

  11. #11
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Ok grazie per il consiglio. Comunque al momento l'ottimizzazione non mi interessa (sarebbe già ottimo se riuscissi a far visualizzare una schermata o un gioco che va molto a scatti).
    Quindi mi consigli SC-3000?

  12. #12

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Prova a fare una ricerca, e trova qualcosa che ti possa divertire anche

    Intendo, se c'è un gioco in particolare che ti piace fallo, Non so, anche un pacman, o asteroids... non so devi vedere tu... la fase di ricerca ti permette anche di vedere quali sorgenti trovi in giro.

    Il MESS o MAME ti offre molto, ma i sorgenti attuali sono molto complessi... puoi anche partire da quelli più vecchi...

  13. #13
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Mmm si potrebbe partire dall'emulazione di una scheda da "bar" vecchia come ad esempio Pac Man?

  14. #14

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Se ti piace il PACMAN prova da qui:
    http://www.ascotti.org/programming/pie/pie.htm
    Spiega un po' il funzionamento, e poi hai anche il MAME con i sorgenti più vecchi come traccia base... Non è dei più semplici, ma se ti diverte poi ci giochi anche

  15. #15
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Scusa se rompo. Qualcosa di ancora più semplice?
    Ultima modifica di gianlucamasina; 20-08-10 alle 10:49:43

  16. #16

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    puoi provare a cercare informazioni sulle macchine che facevano girare PONG o altri più semplici, ma alla fine sempre quello è, hai un processore, gestione ram, rom, probabile suono ed eventualmente processore video...

    Su alcune macchine magari ti risparmi un processore video e l'audio, ma alla fine devi sempre gestire la memoria, il processore, spesso e volentieri lo z80 per le macchine datate, interrupt etc...

    Secondo me devi partire da qualcosa che ti piace sul serio, studiarlo e incominciare...

    Se lo fai tanto per provare a fare un emulatore, arrivi ai momenti di stallo, e non li superi se non vuoi arrivare alla fine perchè non vedi l'ora di giocarci...

    Dai, guardati un po' in giro... cerca tra le risorse del MAME per trovare gli arcades un po' vecchi...

  17. #17

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Ciao a tutti!
    L'emulatore in FLASH è andato un po' avanti con qualche cache in più per la velocità di esecuzione... così poi ho messo tutto in un nuovo sito per l'SC-3000, praticamente seconda area per il sito sc-3000.com

    Presto inserisco la lista dei giochi su tape che ho convertito in bitstream, ma rimane sempre la possibilità di salvare e caricare gli stati di memoria per continuare le partite.

    Pensavo poi di implementare la registrazione utenti per poter salvare i punteggi sul proprio profilo, giusto per dare il via a qualche sfida

    Per ora vi auguro pause caffè divertenti !!! A presto!

    http://www.play-sc-3000.com

  18. #18
    gianlucamasina
    ospite

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Ottimo!!!!!

  19. #19

    Predefinito EVOLUZIONI: SEGA SC-3000, EMULATORE in FLASH AS3, ORA Colecovision e MSX

    Ciao A tutti,
    tempo fa ho aperto questo post per condividere un mio progetto personale:

    L'emulatore in Action Script 3 di SEGA SG-1000/SC-3000.
    Dopo un po' di lavoro ho fatto 2 varianti, una per CBS Colecovision ed un'altra per MSX...

    Il programma è lo stesso ma le macchine emulate ovviamente vengono composte in modo diverso in base a delle specifiche, un po' come fa il MESS, anche se alla lontana.

    Ho scritto le varie classi addizionali per l'emulazione dei CHIP sonori dell'MSX GI AY-3-8910 e l'SCC presente nelle Cartridges KONAMI.

    La cosa interessante è che gira in FLASH Player
    www.digimorf.com/fcv
    www.digimorf.ASmsx

    Sicuramente va ancora ottimizzato... ma volevo condividere la mia "gioia" nel creare un prodotto simile.

    Chissà che magari non vi strappa la lacrimuccia di nostalgia di tempi passati e giochi seppur semplici ma immediati.

  20. #20
    Lo Zio
    Data Registrazione
    15-09-01
    Località
    Bologna
    Messaggi
    1,833

    Predefinito Riferimento: SEGA SC-3000, EMULATORE in FLASH AS3

    Non sono uno sviluppatore ma un tool interessante potrebbe essere questo:
    http://www.smspower.org/meka/
    Molto probabilmente lo conoscete già.

+ Rispondi alla Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato