Autor |
Nachricht |
KennuX
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 13:27 Uhr
|
|
Retrohling
Anmeldungsdatum: 06. Aug 2009
Beiträge: 26
Status: Offline
|
|
Hallo Aep-emu Community,
Ich habe mal wieder eine Frage zur Programmierung eines Emulators. Diesmal ein Gameboy Classic emulator.
Ich komme mit den Cycles irgendwie nicht klar. Ich weis nicht wie ich diese benutzen soll.
Ich dachte da an sowas:
Wenn es 50 fps sein sollten:
Einen Timer benutzen, alle 20 millisekunden Das Bild Aktualisieren und die Cycles die die CPU in der Sekunde schafft / 50 in die Cycles variable rein und die CPU wieder rechnen lassen.
Das scheint mir allerdings etwas "unpraktisch". Denn wenn man einen zu langsamen Rechner hat wird es nicht funktionieren (es werden ungeahnte ergebnisse eintreten).
Eine andere Idee ist:
Eine While-Schleife die so aufgebaut sein soll
Aktualisiere Grafik
Aktualisiere Sound
Aktualisiere CPU-cycles
Lasse CPU rechnen
Beginne wieder bei Aktualisiere Grafik
Jedoch ist das dann wieder so, dass die komplette Geschwindigkeit des Computers benutzt wird und zu abstürzen führen kann.
Naja, ich bitte euch mir vorschläge zu machen |
|
|
|
|
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 14:39 Uhr
|
|
Ex-Member
Anmeldungsdatum: 28. Feb 2005
Beiträge: 3.561
Wohnort: überall und nirgends
|
|
While-Schleife... schleeeecht... ganz schlecht... Da solltest du mit Timern arbeiten, und einem Scheduler. Harhar das erinnert mich an den Grund warum man mit vielen ganz alten DOS-Progs und Games 'moslo' etc. verwende musste, weil da der gleiche Effekt zutage trat: schnellere Prozessoren als die Original vorgesehen oder zumindest getesteten brachten den Programmablauf und das Timing durcheinanderbrachten. |
|
|
|
|
|
KennuX
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 15:43 Uhr
|
|
Retrohling
Anmeldungsdatum: 06. Aug 2009
Beiträge: 26
Status: Offline
|
|
könntest du das mit dem Timer und dem Scheduler etwas genauer erklären?
Ich kann ja nicht getimt jede Anweisung interpretieren da bräuchte der Timer dann ja mehr ressourcen als die interpretation.
Und was ist moslo? |
|
|
|
|
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 16:05 Uhr
|
|
Ex-Member
Anmeldungsdatum: 28. Feb 2005
Beiträge: 3.561
Wohnort: überall und nirgends
|
|
|
|
|
KennuX
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 16:10 Uhr
|
|
Retrohling
Anmeldungsdatum: 06. Aug 2009
Beiträge: 26
Status: Offline
|
|
Kay, ich lad mir jetzt mal den mess source code und werd mir den die Nacht mal reinziehen. Ich schreibe euch morgen wie's aussieht |
|
|
|
|
|
XTale
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 31.03.2010, 21:18 Uhr
|
|
Site Admin
Anmeldungsdatum: 04. Jul 2004
Beiträge: 1.868
Wohnort: Dillingen / Saar
Status: Offline
|
|
Für Programmierfragen ist das Emutalk.net Forum ziemlich gut. Für so ziemlich jedes "Einsteigersystem" gibts da einen Thread mit vielen Tipps und co |
|
|
|
|
|
KennuX
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 01.04.2010, 11:15 Uhr
|
|
Retrohling
Anmeldungsdatum: 06. Aug 2009
Beiträge: 26
Status: Offline
|
|
Okay, danke ich werde mich dann mal an die wenden. Hab gestern den mess code angeschaut und es trotzdem ned rausbekommen. Hab aber in den weiten meiner Datensammlung ein eBook gefunden, da war's erklärt ^^
Btw, XTale ich wohne ganz inner nähe von dir xD |
|
|
|
|
|
Ragnarok
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 01.04.2010, 11:23 Uhr
|
|
Jinxed
Anmeldungsdatum: 12. Dez 2006
Beiträge: 5.397
Wohnort: 기정동
Status: Offline
|
|
Ich hab ja keinen Plan von der Materie, aber kann man nicht so eine While-Schleife mit nem Framelimiter für die Ausgabe machen? |
|
|
|
|
|
KennuX
|
|
Titel: [Programmierung]Gameboy Classic Emulator
Verfasst am: 01.04.2010, 13:41 Uhr
|
|
Retrohling
Anmeldungsdatum: 06. Aug 2009
Beiträge: 26
Status: Offline
|
|
Theoretisch schon, aber dann ist das wieder etwas ungenau weil man die Zeit nicht genau zählen kann (oder nur mit großem aufwand).
Außerdem wird's dann auf Rechnern mit weniger leistung schon wieder etwas zeitkritisch und es können ungeahnte Ergebnisse auftreten ^^ |
|
|
|
|
|
|