Ich habe mal ein Bild vom fast fertigen Quellcode gemacht. Da kann man sehen, ob das nun genau der oberen und unteren horizontalen Rahmen ist.
Beiträge von Stephan Scheuer im Thema „Kleine Anfrage zu "Grand Prix Circuit"“
-
-
Das Spiel liefert auch auf Standart-C64 eine gute Leistung ab. An dem Game haben mit Sicherheit sehr gute Coder gearbeitet. Ich Frage mich immer wieder, wie die das mit den
damaligen Mitteln geschafft haben, eine derartig gute Performance abzuliefern. Ich bin hier am Verzweifeln, weil das Timing mit der SCPU nicht so möchte, wie ich es gerne hätte.
Ich müsste den dokumentierten Quellcode haben, dann wäre die Anpassung ein leichtes. Den Quellcode habe ich leider nicht, also muss ich mich durch den Code wuseln, um
die Stellen mit kritischem Timing zu finden. Das im Game Toleranzen sind, sehe ich daran, dass es auch mit den 2MHz des C128 zurecht kommt. Die Adresse $D030 wird gesetzt.

-
Alles anzeigen
Ich bin gerade dabei, das Spiel für die SuperCPU anzupassen. Also alle illegalen OP-Codes müssen ersetzt werden. Das Timing muss auch an die 20MHz angepasst werden,
sonst flackert der Himmel. Zudem wird die Trennzeile zwischen Auto und Himmel nicht richtig dargestellt und die Konkurrenzautos flackern im Takt.
Naja, ich habe fast alle Fehler behoben. Nur das Problem mit der Automatik-Gangschaltung hakt noch ein wenig.

Das Ultimate64 versteht kein 65816-Code. Aber ich werde eine Version erstellen, die mit einem stink-normalen C64, mit einer Flash8 oder mit einer SCPU läuft. Ich benötige nur etwas mehr RAM.

Brauchst Du die 65816-Befehle, um mehr RAM anzusprechen? Wofür mehr RAM?
Der frühere Post liest sich so, als sollten nur die Illegals raus und ordentliche Routinen für beliebig hohe Taktraten rein.
Das hatte ich vor gehabt. Aber zuerst muss ich das Problem mit der hin-und-wieder verrücktspielenden Automatikgangschaltung beheben. Das ist auch der einzig verbleibende Bug.
Das muss entweder an einem zu geringen Timerwert liegen oder an diversen Rasterzeilen-IRQs. Soweit habe ich das auch verstanden. Wenn während der Initialisierung des Spiels, ein
zu niedriger Wert in der ZP eingetragen wurde, schaltet die Automatik häufig 2 Gänge auf einmal, und das in kurzen Zeitabständen..
-
Das hängt davon ab, wie man den U64 konfiguriert. Man kann den Turbo rein manuell zuschalten oder so konfigurieren, dass er wahlweise funktioniert wie das "2-MHz-Register" im C128 oder eben als SCPU erkannt wird. Außerdem kann er speziell als U64-Turbo angesprochen werden. Steht doch alles hinter dem Link zu lesen, den Panther gepostet hat.

Edit: Beim TC64 gibt es nur die Möglichkeit der manuellen Konfiguration oder die Nutzung von $D030 wie beim C128.
Die tatsächliche Geschwindigkeit ist aber sowohl bei U64 als auch beim TC64 unabhängig von $D030, wenn das verwendet wird, weil sich der Turbo separat konfigurieren lässt.
Ich lese die Seite gerade durch. Zudem habe ich mir von der Web-Page ein PDF erstellt.
-
Ich schätze mal dass das so funktioniert. Den SCPU Turbo-Mode kann man mit "STZ $D07A = 1MHz" und "STZ $D07B = 20MHz " auch während des Spielns umschalten.
Vielleicht wüsste jemand hier im Forum, ob das mit dem Ultimate64 auch so funktioniert.
....Man kann das einfach zur Laufzeit im Menü umschalten.....
Achso, das wusste ich nicht. Alles klar.

-
Wie der Turbo-Mode im Ultimate64 aktiviert wird, weiß ch nicht
Hilft dir das evtl. weiter? Bitte melde dich an, um diesen Link zu sehen.
Das hat mir sehr geholfen. Siehe Codefenster.
Code
Alles anzeigenU64 Turbo Control $D031 ----------------------- This register is only available when the Turbo Mode selector is set to "U64 Turbo Registers" or "Turbo Enable Bit". Otherwise it simply reads $FF. bit 0-3: CPU Speed (index) bit 7: Badline timing, 0 = Enabled, 1 = Disabled CPU Speed (index) ----------------- 00 = 01 MHz 01 = 02 MHz 02 = 03 MHz 03 = 04 MHz 04 = 05 MHz 05 = 06 MHz 06 = 08 MHz 07 = 10 MHz 08 = 12 MHz 09 = 14 MHz 10 = 16 MHz 11 = 20 MHz 12 = 24 MHz 13 = 32 MHz 14 = 40 MHz 15 = 48 MHz -
Das Ultimate64 versteht kein 65816-Code. Aber ich werde eine Version erstellen, die mit einem stink-normalen C64, mit einer Flash8 oder mit einer SCPU läuft. Ich benötige nur etwas mehr RAM.

Wie der Turbo-Mode im Ultimate64 aktiviert wird, weiß ich nicht, weil ich keines besitze. Sollte das mittels Speedschalter am Ultimate64 bewerkstelligt werden, sollte es problemlos funktionieren.

-
Ja, das Spiel wird auch auf der Flash8 laufen, wenn es fertig ist. Bitte melde dich an, um diesen Link zu sehen. testet schon die Fix04-Version.

Wenn das Problem mit der Automatik-Gangschaltung behoben ist, liegt an den 20MHz, werde ich es releasen.

-
Zitat
Was wären eigentlich Deine Alternativvorschläge, nur mal so aus Interesse... ?
Zumindest keine 3d-Autorennen auf zu schwachen Rechnern. Lotus auf dem Amiga gegeneinander war da schon eher was für mich ... Aber mein Kommentar ist 11 (!) Jahre her ...
Ich bin gerade dabei, das Spiel für die SuperCPU anzupassen. Also alle illegalen OP-Codes müssen ersetzt werden. Das Timing muss auch an die 20MHz angepasst werden,
sonst flackert der Himmel. Zudem wird die Trennzeile zwischen Auto und Himmel nicht richtig dargestellt und die Konkurrenzautos flackern im Takt.
Naja, ich habe fast alle Fehler behoben. Nur das Problem mit der Automatik-Gangschaltung hakt noch ein wenig.
