Hello, Guest the thread was viewed3.5k times and contains 43 replies

last post from Retro-Nerd at the

Grand Prix Circuit von Accolade

  • Achja, für die Anpassung hatte ich dummerweise die NTSC-Version genutzt. Daher musste das auch noch an die PAL-Norm angepasst werden. Selbst Nostalgia hat das übersehen.:)

  • Könnte man im Zuge dessen noch, wie schonmal angesprochen, die "Farbe" der Strasse und des Tunnels tauschen?

    Also Straßenbelag grau, Tunnel schwarz?`


    Würde ja irgendwie mehr Sinn machen.

    Naja, die Amaturenumrahmung ist schon grau. Zudem nutze ich das Schwarz vom Tunnel, um auf 1MHz runterzuschalten, weil es sonst zu unschönen Flackern kommt.

  • Hier nun die Grand Prix Circuit Version, die auf einem stock oder standart C64 läuft. Sollte das Game irgendwo abstürzen, Bitte eine Mitteilung des Absturzes posten, wo und wann. 8)

    Eventuell oder sogar bestimmt habe ich ein oder zwei Sprunge nach $D3xx vergessen nach $12xx zu ändern. Es sollte aber nicht passiert sein, da ich alle Sprünge gewissenhaft

    nach Liste abgearbeitet habe.:)


    Im Codefenster sieht man einen kleinen Teil der IRQ-Steuernung und was ich da gemacht habe.:)

  • "das zu beheben musste ich die Datei "GP" disassemblieren. Wer schon mal mit dem Regenerator eine Datei disassembliert hat, weiß wovon Ich rede. "

    Bitte erklären.

    Das bedeut, aus einer Datei wieder einen edierbaren Quellcode zu machen.

    Haha... Ich bin der Author von Regenerator... Und moechte wieseen welche Probleme du hatest damit und was koennte besser gehen.

  • Oh cool der Macher vom Regenerator . Nein, ich hatte fast keine Probleme. Das File war nur 96 Blocks groß und hat dementsprechend lange gedauert, bis ich es soweit hatte, dass man es auch z.B. von der Ursprungsadresse

    $1509 nach z.B. $1700 assemblieren konnte. Ich musste hierbei viele Sprungtabellen anpassen, das war schon eine ermüdende Arbeit, und auch sehr viele Vektoren, die teilweise echt fieß zu finden waren. Siehe Codefenster.

    Das ist noch ein leichtes Beispiel, was mir die Standart-Version, also die Version, die ohne SCPU aber auch mit SCPU läuft ein, wenig versaut hat. Der Kernalloader mit Ladebalken sah ein wenig trashig auf dem Bildschirm aus und

    das Lade stockte teilweise. Den Fix lade ich hier gerade hoch.8)


    Was ich gut finden würde, wäre eine Wegschalten der Labels für die Bereiche von $0300-$0333. Bei Grand Prix Circuit standen dort keine Vektoren, sondern der IRQ-Lader. Auch wenn man nur die Kernal-Labels exta

    deaktivieren könnte, wäre das eine Hilfe. Das Andere, mit den Sprungtabellen und den Teilweise verstreuten Vektoren oder LowByte/HighByte X/X-Angaben oder Angaben in X&Y wie bei SETNAME oder SETLFS ist wohl

    eine sehr kompliziert Angelegenheit und dem vor dem Bildschirm sitzenden vorbehalten.:)


    Ansonsten ist das ein Top-Tool. Ich habe es für alle meine bisherigen Projekte genutzt wo irgendwas disassembliert werden musste.:thumbsup::thumbsup:


    Achja, der erstellte Quellcode der Datei "GP" ist 334KB groß.


    Im Anhang die gefixte Version aus Post #24, bei dem das Laden nicht richtig angezeigt wird.

  • Und hier der Fix02. Naja, eigentlich ist das kein Fix, sondern ein Update. Ich habe diverse Routinen überarbeitet und abgeändert und/oder angepasst.

    Bei einigen Routine habe ich abgezählte NOPs zum exakten autimen eingebaut. Und siehe da, das Spiel läuft nun um einiges schneller. Auf einem Standart-C64

    läuft es wie zuvor, mit den Zeichensatzdefinierten Bitmaps, die abwechselent ab $A000-$BFE8 und $E000-$FFE8 liegen. Die Spritepointer liegen ab $83F8 und

    ab $C3F8. Die Bildschirme werden dabei abwechselnt umgeschaltet.:)

  • So, mal kurz gestestet:

    Mit manuellen 20 MHz laufen Intro und Menüs zu schnell. Ingame teilen sich die Bereiche mit schwarzen Gaps, den Bodenwellen entsprechend. Bei 48 Mhz singt dann auch wieder die Gangschaltung ein Liedchen. :)

    gpcgrfx.png



    Man muss die Spiele auch nicht unbedingt mit zweistelligen MHz Werten befeuern: die Nostalgia Version läuft ohne Grafikfehler (bis auf die schwarzen Linien im Rückspiegel, die man auch als Kantenschatten auslegen könnte :) ) auf dem U64 mit den o.g. Einstellungen: Turbo Enable Bit, Badline enabled bei 4 MHz einwandfrei. Die Strecke scrollt flüssig genug und die Rennwagen Darstellung flackert nicht so rum, wie bei +10 MHz. Gangschaltung scheint robust. Anscheinend laufen Intro und Menüs mit 1 MHz und der Turbo wird erst im Rennen aktiviert. Stephan Scheuer Aber da kannst du sicher sagen, was da wo passiert.

    Bei 20 MHz flutscht zwar die Strecke extrem soft, aber die Wagen flackern zu sehr, daher sind 4 bis 6 MHz ein solider Kompromiss.


    Edit: SCPU detect braucht's natürlich nicht. Nur das Turbo Enable Bit des C128, d.h. GPC macht die 2 MHz an, auf dem U64 dann das, was man vorgibt. Ab 8 MHz spinnt die Gangschaltung rum, mit 4 Mhz scheint alles ok. Die schwarzen Linien bei den Tribünen, die ich im Rückspiegel markiert hab, sind kein Fehler.

  • Mit was hast du gesteste? Wie gesagt, es ist noch nicht für das U64 oder andere 6502-Beschleunigerkarten optimiert. Wenn deine Hardware keinen Softwareschalter hat, mir dem man die Frequenz auf

    wahlweise 1MHz oder 20MHz schalten kann, wird das SuperCPU optimierte Spiel niemals funktionieren. Also Tests mit dem U64 oder was auch immer, Bitte vorher fragen, ob das Spiel dahingehend

    angepasst ist, sonst macht man sich viel Arbeit für nichts.:) Zur Zeit ist es mit exakten Taktzyklen nur an die SuperCPU angepasst, und diese schaltet im Game häufig auf 1MHz bzw. 20MHz.

    Du kannst es selbt mit dem "xscpu64.exe" testen.

  • Mit was hast du gestest?

    Mit deiner grand_prix_circuit_1989_accolade_standart-c64_und_supercpu_support_(25.03.2023)_fix02.7z

    Bei "Standard C64 Support" bin ich stupide davon ausgegangen, dass es sich wie bei der Nostalgia Version verhält, die ja wie beschrieben mit Turbo Enable Bit und mit bis zu 6 MHz läuft. Testen ist doch immer gut :), dachte, du kannst Erfahrungsberichte gebrauchen. Das Turbo Register wird bei deiner Standard-Version anscheinend nicht verwendet, daher musste ich manuell fest einen MHz Wert setzen, dadurch sind dann Intro und Menü zu schnell.


    Bisher hatte ich das auch noch gar nicht so im Detail durchprobiert, von daher keine Mühe umsonst gemacht und harausgefunden, dass die NOS Version auf dem U64 bereits perfekt läuft. Fehlt quasi nur dein PAL-Spiegel-Fix. :thumbup:

  • Und hier der Fix02.

    Ich habe es auf meinem U64 laufen lassen und die gleichen Erfahrungen gemacht wie Lynx : Mit dem Turbo Control auf "manual" und 10 MHz habe ich die schwarzen Streifen bekommen und die Automatik-Schaltung war unsauber. Mit Turbo Control auf "U64 Turbo Registers" und 10 MHz lief das Spiel tadellos und ohne erkennbare Probleme! :thumbsup: (Badlines und SuperCPU auf Enabled). Mehr habe ich noch nicht getestet, musste ein paar Runden fahren. ;)

  • Und hier der Fix02.

    Ich habe es auf meinem U64 laufen lassen und die gleichen Erfahrungen gemacht wie Lynx : Mit dem Turbo Control auf "manual" und 10 MHz habe ich die schwarzen Streifen bekommen und die Automatik-Schaltung war unsauber. Mit Turbo Control auf "U64 Turbo Registers" und 10 MHz lief das Spiel tadellos und ohne erkennbare Probleme! :thumbsup: (Badlines und SuperCPU auf Enabled). Mehr habe ich noch nicht getestet, musste ein paar Runden fahren. ;)

    Da wird der Turbo aber nicht zugeschaltet und es läuft nur mit 1 MHz, daher auch keine Grafikfehler.

    Bei der ursprünglichen Nostalgia Version wird das Turbo Enable Bit gesetzt und es würde auf dem C128 mit 2 MHz laufen, auf dem U64 dann entsprechend mit 4, 5 oder 6 Mhz, was völlig ausreichend ist. Ab 8 MHz aufwärts wird das Update der Rennwagen auch zu schnell und somit unschön flackerig-zappelig.

    Turbo Enable Bit mit 4 MHz ist mein Favoriten-Setting für Grand Prix Circuit aufm dem U64.

  • Bei meiner SCPU-Anpassung werden bedeutend mehr Frames pro Sekunde nur für die Animation der Fahrbahn berechnet. So hatte ich mir das auch gedacht. Das Fahrzeug wird dabei unwesentlich schneller.:)

    Ich denke, dass die SuperCPU-Version recht gut geworden ist. Im übrigen benutzet die SCPU die Register $D07A für 1MHZ und $D07B für 20 MHz. Das war eine ganz üble Arbeit, das alles flackerfrei mit PAL-Patch

    an 20MHz anzupassen. Wobei man bedenken muss, das einige Codeabschnitte nur mit 1MHZ laufen dürfen. Sonst spackt die Gangschaltung richtig ab. Zudem zuckeln die anderen Rennteilnehmer vor eine nur so

    dahin, wie mit 20.000 Volt im Po.:)


    @ Lynx. ...dachte, du kannst Erfahrungsberichte gebrauchen....


    Sicher, und immer her damit. So kann ich mit einigen Zusatzbefehlen die 6502-Beschleuniger auch noch zähmen.:)8)


    Wenn Hardware, wie das U64 Register für die Anzahl der MHz besitzen, immer her damit. Im Hauptcode ist noch etwas Platz. Dann läuft das Spiel auch bedeutend besser auf dieser Hardware.


    Übrigens, die Nostalgia-Version läuft auch nicht mit der SCPU. Gangschaltung spinnt, Sprites flacker usw.

  • Hab mit deiner letzten Version jetzt mal ein paar Runden im SCPU Vice gedreht - läuft rund. Die Rennwagen liegen entspannt auf der Strecke. Ganz selten, sprich 3 Mal, gab's eine schwarze Line im Himmelbereich, ansonsten fiel nix schlimmes auf.


    Wenn Hardware, wie das U64 Register für die Anzahl der MHz besitzen, immer her damit.

    https://1541u-documentation.re…l#turbo-control-registers

    POKE53297,18 und BASIC wird zu Assembler. :D (Register muss man in den Settings natürlich enabled haben)

    Allerdings zicken z.B. Cartridges rum, wenn man in die Vollen geht. Unter 8 MHz läuft zusätzliche Hardware meist noch stabil.


    Übrigens, die Nostalgia-Version läuft auch nicht mit der SCPU. Gangschaltung spinnt, Sprites flacker usw.

    Die SCPU kann ja leider nur 1 oder 20 MHz. Wie erwähnt, läuft die Nos Version bis 6 MHz einwandfrei, 4 MHz sind perfekt für ein "realistischeres" Fahrgefühl und flüssiges Gameplay ohne Grafik- oder Schaltprobleme. Selbst 2 MHz sind da besser als 1 MHz. ...ok, der Punkt am Himmel fliegt etwas schneller, Vogel oder Flugzeug, wer weiss das schon... :)


    p.s. die eigene Karre fährt auch auf dem U64 mit 4 oder 48 MHz nicht wirklich schneller, die Strecke wird bei der Nos Version auch nur mit mehr fps gerendert. Wäre das eine feste Framerate, wäre es mit 48 MHz unspielbar. Wipeout on Steroids. :D

  • ....Ganz selten, sprich 3 Mal, gab's eine schwarze Line im Himmelbereich, ansonsten...


    Ich weiß. Das liegt am IRQ. Nach dem Beenden mit RTI hat dieser 20MHz. Diese 20MHz laufen sehr kurz in eine Routine, die nur mit 1MHz laufen darf.


    Der Punkt saust bei der SCPU-Version über den Bildschirm.:)


  • Die "Grand Prix Circuit" C64- und SuperCPU-Support, sowie die RamCard Version haben ein Super-Update erfahren. Es gibt sogut wie keine Rasterzeilen Bugs mehr.

    Die Gangschaltung funktioniert nun perfekt. Kein ruckartiges Abbremsen und danach das mehrfache Schalten der Gänge. Das Beste aber ist, dass die SuperCPU

    nun 95% ihrer Leistung bei dem Spiel erbringt. Die restlichen 5% gingen verloren, weil ich mittels STA $D07A das Spriteflackern der gegnerischen Rennwagen sogut

    es geht, abgeschaltet habe. Die ganze Nacht war ich dabei, das Timing der verschiedenen Routiene im Einklang zu bringen. Zwanzig A4 Blätter habe ich über Nacht,

    mit diversen Raster-IRQ Routinen beschrieben. Von den Codes hat sich das, was auf Blatt zwanzig stand, bewährt. Einige Kleinigkeiten musste ich für das perfekte

    Timing noch abändern. Bei dem Spiel Bitte mal den kleinen weißen Punkt, der sich am Himmel, von rechts nach links bewegt, anschauen. Der saust so schnell über

    den Bildschirm, wie die Rennwagen schnell fahren.^^8)


    Viel Spass mit dem Spiel.


    PS: Eine Version, speziel für die 6502-Beschleuniger, wie zum Beispiel das U64 ist in der Mache. Ich werde die MHz per Software, mal auf 1MHz, mal auf 48MHz und fast

    immer auf 20MHz schalten. In etwa einer Woche ist auch diese Version fertig.

  • Super Sache, vielen Dank dafür.:thumbsup:


    Habe eben versucht beide D64 von SD2IEC LW10 zu starten.


    Die Standard Version Fix03 lässt sich ohne Probleme von LW10 laden.:thumbup:

    Die Ramcard Version Fix01 versucht auf LW08 zuzugreifen und lässt sich so nicht starten. Direkt von LW08 habe ich noch nicht probiert.....:whistling:


    Liebe Grüße,

    Jojo

  • Sorry, ich habe immer noch nicht alle Quellcodes mit einer variablen Ladeadresse ausgestattet.:schande::wand:tischkante:


    so ist es bei vielen Quellcodes

    -----------------------------------

    LDA #$01

    LDX #$08

    LDY #$01

    JSR $FFBA


    so müsste es bei allen Quellcodes sein.

    ---------------------------------------------

    LDA #$01

    LDX $BA

    LDY #$01

    JSR $FFBA



    Das wird in Kürze geändert.^^