Beitrag
von Slamy » 6. Oktober 2016, 16:19
Ich kann dir die Arbeit nicht abnehmen, da man ein Spiel schon sehr lieben muss, um diese Tortur durchzustehen. Aber ich kann dir erzählen, wie ich vorgegangen bin.
Für Super Turrican habe ich mir zunächst einen Emulator ausgesucht, der den MSU1 beherrscht. Irgendwie gab es nur einen, den higan.
Davon habe ich mir den Source Code geschnappt und den integrierten Tracer weiter entwickelt.
Im Trace tauchen nun nicht nur CPU Instruktionen auf, sondern auch Kommunikationen über diese 4 Memory Mapped I/O Adressen für den SPC.
Wann immer das Spiel irgendwas mit dem SPC macht, konnte ich es im Trace sehen und musste "nur" zurückverfolgen, an welcher Stelle der call erfolgte und ob es Korrelationen bei den Parametern oder den Registern gab.
Super Turrican z.B. hat eine Funktion um die "Soundbase" zu laden. Damit werden 4-6 Songs gleichzeitig in den Speicher des SPC geladen. Es handelt sich dabei um eine exakte Kopie des TFMX Ansatzes, den Chris auch schon auf dem Amiga gemacht hat.
Dann gab es eine Funktion die per Index einen Song aus der Soundbase spielt.
Ich nehme an, dass jedes Spiel irgendwo eine Funktion hat, welche einen Index zu einem Song umsetzt. Und dann gilt es eigentlich nur einen freien Platz für seinen eigenen Code zu finden und eine Umleitung zu bauen.
Das alles weißt du vielleicht auch schon. Da aber bisher keiner hierzu was geschrieben hat, wollte ich doch wenigstens etwas zu meinem Weg schreiben.
Ich baue gerade Super Turrican 2 um und bisher fehlt mir auch noch der Einsprungspunkt. Manchmal ist es eben nicht so einfach.