PDA

View Full Version : Emulazione Console


3nigma666
19-05-2005, 11:09
Salve..
volevo creare una discussione con l'intento di ricavarne tutti noi (per ki è interessato) il massimo profitto di informazione.Il quesito è:
per creare un emulatore di una console,qualsiasi:
1) che linguaggio di programmazione scegliere
2) qualcuno sa spiegare con un diagramma di flusso cosa fare,passo passo, per scrivere un programma che emuli una console?

Le uniche cose ke mi vengono in mente p ke il progetto ovviamente deve tendere ad emulare il processore (Ed eventuale chip grafico,ma troppo complicato per ora,magari ne parliamo quando avremo le idee piu chiare)
e deve essere in grado di leggere il codice macchina delle rom in quanto suppongo ke le rom siano gia in codice macchina.

Qualcuno sa illustrarci nel dettaglio passo passo ?
grazie mille

3NIGm@666

71104
19-05-2005, 13:59
non è niente di complicato: devi semplicemente interpretare le istruzioni della rom con gli stessi algoritmi che usa lei ed eseguirli su un'hardware simulato, quindi su uno spazio di memoria allocato da te, su una joypad simulato i cui tasti sono mappati in qualche maniera con la tastiera, ecc.
se vuoi realizzare anche una GPU allora semplicemente devi simularla in un thread a parte; se hai tutte le specifiche complete di funzionamento della console è tutto molto semplice.
poi se vuoi veramente (ma veramente) complicarti la vita e si tratta di una console come la X-Box, che è identica ad un PC, allora puoi provare a vedere se è addirittura possibile renderla più veloce facendo eseguire il codice direttamente dalla vera CPU della macchina ospite gestendo in modo particolare condizioni che non possono essere riprodotte in modalità protetta su un vero PC (ad esempio quando devi simulare un'istruzione di IO).

CH1CC0
19-05-2005, 16:40
poi se vuoi veramente (ma veramente) complicarti la vita e si tratta di una console come la X-Box, che è identica ad un PC, allora puoi provare a vedere se è addirittura possibile renderla più veloce facendo eseguire il codice direttamente dalla vera CPU della macchina ospite gestendo in modo particolare condizioni che non possono essere riprodotte in modalità protetta su un vero PC (ad esempio quando devi simulare un'istruzione di IO).

Forse sarà una stupidaggine, ma è un pò il lavoro che fa wine:
non emula windows su linux, ma trasforma le chiamate per farle eseguire alla cpu (senza usare l'emulazione che rallenterebbe il tutto).

71104
19-05-2005, 17:11
Forse sarà una stupidaggine, ma è un pò il lavoro che fa wine:
non emula windows su linux, ma trasforma le chiamate per farle eseguire alla cpu (senza usare l'emulazione che rallenterebbe il tutto).
non c'entra niente :D
il lavoro che svolge un'emulatore di una console è sia concettualmente sia (soprattutto) tecnicamente diverso da quello svolto da Wine o da qualsiasi software analogo

piuttosto un possibile paragone potrebbe essere VMWare Workstation