Test Drive II - The Duel (Turbo Patch Version)

  • Test Drive II - The Duel (Turbo Patch Version)

    Hallo zusammen!

    Dieser Thread ist ein Ableger von Angepasste Spiele für SuperCPU und CMD Laufwerke.

    Hier geht es nur um das Projekt "Test Drive II - The Duel", das dann - entsprechend angepasst - mit der SuperCPU, dem Turbo Chameleon oder künftiger Hardware zusammenarbeiten soll.

    Ziel ist es, die Ursache der Inkompatibilität zu finden und dann entweder den Schnellader, illegale Opkodes oder was auch immer zu ersetzen. So würden Nägel mit Köpfen gemacht und das Spiel könnte mit verschiedener Hardware zusammenarbeiten - ähnlich "Test Drive I", dass ein gewisser Master vor mehreren Jahren bereits angepasst hat.

    Unsere Szene ist so groß und hat viele kluge Köpfe - lasst uns von den Besten jemand rekrutieren, der sich mit Schnellladern, der SuperCPU und dem Spiel auskennt!

    Erste Wahl wäre natürlich dieser "Master /T.A.C.", der schon viele große Spiele für die CMD Laufwerke und die SuperCPU angepasst hat. Er hatte seinerzeit einen wirklich guten Job gemacht und verfügt über dementsprechende Erfahrung.
    Vielleicht könnte auch jemand Chester Kollschen oder Stefan Gutsch kontaktieren? Auch taucht im Zusammenhang mit der SCPU immer wieder "Mac Gyver/DMA" auf.
    Ich habe gestern Abend noch "Tom-Cat" von NOSTALGIA kontaktiert - eine Überarbeitung ihres Cracks ist aber nicht möglich, da "S!R" nicht über die CMD Hardware verfügt!
    Wer von euch hat eine SuperCPU und Kenntnisse mit Ladern, usw. oder könnte einen Kontakt zu jemand Geeignetem herstellen?

    Fehlerbeschreibung:
    Ich chabe auf verschiedene Arten versucht den Crack von NOSTALGIA mit der SuperCPU zum Laufen zu bekommen. Egal von welchem Laufwerk und egal ob sich die SuperCPU im 1 oder 20 MHz Modus, irgendwas ist faul. Bis zum ACCOLADE Intro ist die Welt noch in Ordnung, wenn dann jedoch nachgeladen wird um das Auswahlmenü mit der Stoppuhr und den Fahrzeugen zu starten, stürzt es bei schwarzem Bildschirm ab. Es passiert also immer, wenn der linke Schalter auf links steht und damit die 65816 CPU gewählt ist - die Taktfrequenz spielt keine Rolle. Steht dieser Schalter auf rechts - also dem emulierten 6510 CPU Modus, läuft das Spiel, aber natürlich nur mit 1 MHz.

    Ich weiß nicht, ob die Ursache beim Schnelllader liegt, oder an etwaigen illegalen Opkodes. Es fällt aber auf, dass eine Zeit lang geladen wird und beim Umschalten vom Intro auf den schwarzen Bildschirm ist Schluss! Möglicherweise beim Aufruf einer geladenen Datei?

    Vielen Dank für eure Mithilfe! ;)
    Die beste Investition ist die
    in den eigenen Magen

    J. Heyltjes

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DATA-LAND ()

  • Ace Du bräuchtest das Game ja nur antesten im Turbo Modus des TC64 und Meldung geben ob alles läuft ?!

    Ich denke generell sollte man heutzutage leiber die Software auf das TC64 bzw desssen Turbo anpassen, soweit das nötig ist.
    Denn das TC64 ist verfügbar und verglichen mit der SCPU Spottbillig.
    "We don't stop playing because we grow old; we grow old because we stop playing."

    George Bernard Shaw
  • DATA-LAND schrieb:

    Steht dieser Schalter auf rechts - also dem emulierten 6510 CPU Modus, läuft das Spiel, aber natürlich nur mit 1 MHz.
    Emuliert? Da wird nichts emuliert; AFAIK schaltet man damit die SCPU schlicht und einfach aus.

    DATA-LAND schrieb:

    Ich weiß nicht, ob die Ursache beim Schnelllader liegt, oder an etwaigen illegalen Opkodes.
    Illegals könnte gut sein, die hat der 65816 nun mal nicht. Untersuch den Absturz doch mal mit dem Monitor von VICE (xscpu64).
    Yes, I'm the guy responsible for the ACME cross assembler
  • Rein theoretisch sollte der Originalcode von Test Drive II frei von illegalen Opcodes sein, da das Spiel auch auf dem Apple//gs läuft, der ebenfalls über einen 65816 verfügt. Kann mir nicht vorstellen, daß die zwei verschiedene Programmkerne entwickelt haben. Überhaupt war der Einsatz illegaler Befehle in kommerziellen Programmen äußerst gering bis gar nicht vorhanden. Als Fehlerursache würde ich daher eher auf Probleme mit dem Lader tippen oder eventuell einem unsauberen Crack.
  • Ace von Heisenberg schrieb:

    Master hat auch keine CMD Hardware mehr und machte noch so kleine Sachen mit dem Vice Emulator
    Hmmm, so'n Mist! Könntest du ihn trotzdem mal anschreiben? Habe ihn hier nicht gefunden. Vielleicht weiß er noch was er bei Test Drive I gemacht hat.

    Superingo schrieb:

    Ich denke generell sollte man heutzutage leiber die Software auf das TC64 bzw desssen Turbo anpassen, soweit das nötig ist.
    Denn das TC64 ist verfügbar und verglichen mit der SCPU Spottbillig.
    Ja da hast du recht, aber nach einer Anpassung läuft's dann überall, denke ich. Das ist möglicherweise nur eine Stelle, die dem 65816 und dem TC 64 nicht schmeckt!?

    Mac Bacon schrieb:

    Untersuch den Absturz doch mal mit dem Monitor von VICE (xscpu64).
    Hab keine EMUs zuhause, nur reale Hardware.

    Kennt jemand eine Kontaktmöglichkeit zu Mac Gyver?

    M. J. schrieb:

    Als Fehlerursache würde ich daher eher auf Probleme mit dem Lader tippen oder eventuell einem unsauberen Crack.
    Ach M.J., schön dass du auch reingeschaut hast! ;)
    Hättest du evtl. Muße da mal reinzuschnuppern? Eine Fehlerbeschreibung habe ich oben.
  • DATA-LAND schrieb:

    Ach M.J., schön dass du auch reingeschaut hast! ;)
    Lese ich da eine gewisse Ironie?

    DATA-LAND schrieb:

    Hättest du evtl. Muße da mal reinzuschnuppern? Eine Fehlerbeschreibung habe ich oben.
    Da müßtest Du mir aber noch sagen, welche Version Du verwendest. Mir liegen nur zwei Versionen vor (Original und HtW), die beide einen klassischen Schnelllader mit eingeschränktem Handshake (s. z. B. $63e ff.) verwenden und daher logischerweise mit einer Taktfrequenz > 1Mhz nicht funktionieren können.
  • DATA-LAND schrieb:

    Hier geht es nur um das Projekt "Test Drive II - The Duel", das dann - entsprechend angepasst - mit der SuperCPU, dem Turbo Chameleon oder künftiger Hardware zusammenarbeiten soll.
    Die Chameleon-Version gibt es schon, nämlich die EasyFlash-Version. Im Turbomenü einstellen: Turbo aus, d030 bit an und kein Limit. Den Rest erledigt das Spiel von selbst. ;)
  • M. J. schrieb:

    Lese ich da eine gewisse Ironie?
    Nee, war ernst gemeint! :) Weil du doch neulich in Windeseile den "Defender Of The Crown" Bug bzgl. S-Jiffy gefunden hast!


    M. J. schrieb:

    Da müßtest Du mir aber noch sagen, welche Version Du verwendest
    Ich verwendete diesen Crack:
    csdb.dk/release/?id=103759

    Er verwendet das sog. N0S DOS und bis zum Intro klappt's auch.
  • Aus Geschwindigkeitsgründen verwendet auch der N0S DOS-Lader den eingeschränkte Handshake:

    Quellcode

    1. .5fa: cli
    2. clc
    3. .5fc: sei
    4. lda $d011
    5. sbc $d012
    6. and #$07
    7. beq .5fa
    8. lda $dd00
    9. and #$03
    10. sta .62e + 1
    11. ora #$20
    12. sta $dd00
    13. nop
    14. and #$df
    15. sta $dd00
    16. lda #$ea
    17. lda $dd00
    18. lsr
    19. lsr
    20. eor $dd00
    21. lsr
    22. lsr
    23. eor $dd00
    24. lsr
    25. lsr
    26. eor $dd00
    27. .62e: eor #$00
    28. cli
    29. rts
    Alles anzeigen
    Vielleicht kann man ja die Leute von Nostalgia darum bitten, bei ihrem Loader nur die Routine mit komplettem Handshake zu verwenden (die gleiche Routine, die sonst benutzt wird, wenn auch Sprites angezeigt werden sollen).
  • Ace von Heisenberg schrieb:

    Superingo schrieb:

    Ace Du bräuchtest das Game ja nur antesten im Turbo Modus des TC64 und Meldung geben ob alles läuft ?!
    Keine Zeit, mach Du mal. Solltest Du kein TC64 haben, wäre jetzt der ideale Zeitpunkt eins zu kaufen =)
    Du ahnst ja nicht wie Recht Du hast.Ich spiele immer häufiger mit dem Gedanken.
    Aber es soll ja noch mehr Besitzer des TC64 hier geben...
    Tatsächlich soll der Turbomodus vom TC64 ja weitaus kompatibler sein als die SCPU.
    "We don't stop playing because we grow old; we grow old because we stop playing."

    George Bernard Shaw
  • M. J. schrieb:

    Aus Geschwindigkeitsgründen verwendet auch der N0S DOS-Lader den eingeschränkte Handshake
    Okay, prima - dann wären wir schon mal einen Schritt weiter! Heißt also weder Original, noch Crack könnten aufgrund des Schnellladers je mit 20 MHz zusammenarbeiten.

    Was mir aber nicht schmeckt, ist die Tatsache, dass der Crack auch mit dem 1 MHz Modus der 65816 CPU nicht funktioniert. Im 1. Auswahlmenü mit der Stoppuhr komm' ich nie an, es sei denn ich schalte die SCPU aus (linker Schalter nach rechts). Es muss also noch einen Grund geben und der hat wahrscheinlich auch früher dem TC 64 zu schaffen gemacht!?

    Weißt du ab wann der Schnelllader installiert wird? Nach dem ACCOLADE Intro?
  • Der Schnelllader wird meines Wissens nach bereits zum Laden des Intros gebraucht. Warum das Programm dann bei "Select" abstürzt, kann ich auf die Schnelle nicht sagen. Der Code an sich sieht zunächst normal aus. Für eine genauere Untersuchung müßte ich in der Lage sein, den Fehler mit VICE zu replizieren.

    Edit: Läuft das Intro bei Dir eigentlich ganz durch bis zur Demo oder gibt es schon während des Intros einen Absturz?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von M. J. ()

  • Der bisherige Stand der Untersuchung:

    Leider gehört "Test Drive II" in der Version für den C64 zu den Programmen, bei denen es sich der Autor nicht nehmen ließ, illegale Opcodes einzubauen. Fündig geworden bei der Suche bin ich z. B. in der Routine zum "Ausblenden" des Bildschirms. Diese liegt beim Intro-Modul original bei $2307 und wird aus Geschwindigkeitsgründen bei $22ea in die Zeropage ab $6d kopiert:

    Quellcode

    1. .22ea: ldx #$34
    2. .22ec: lda .2307, x ; kopiere Code in die Zeropage
    3. sta $006d, x ; absolute Adressierung!
    4. dex
    5. bpl .22ec
    6. lda #$00 ; Adreßzähler
    7. sta $006f + 1
    8. lda $3d ; Bildschirmseite
    9. sta $0078 + 1
    10. lda #$fc ; Maskenwert
    11. sta $006d + 1
    12. jmp .6d
    13. .2307:
    14. .org $6d
    15. .6d: ldx #0
    16. .6f: ldy #0
    17. lda $233c, y
    18. sta .80 + 1
    19. sta .83 + 1
    20. .78: lda #0
    21. sta .80 + 2
    22. sta .83 + 2
    23. ldy #$1f
    24. .80: lda $ffff
    25. .83: sax $ffff ; Illegaler Opcode!
    26. inc .80 + 2
    27. inc .83 + 2
    28. dey
    29. bpl .80
    30. sec
    31. rol .6d + 1
    32. rol .6d + 1
    33. bcs .96
    34. asl .6d + 1
    35. .96: inc .6f + 1
    36. bne .6d
    37. sec
    38. rol .6d + 1
    39. rol .6d + 1
    40. bcs .6d
    41. rts
    Alles anzeigen
    Nun könnte man theoretisch das Programm abändern in so etwas wie hier (ungeprüft!):

    Quellcode

    1. .22ea: ldx #$34
    2. ?0: lda ?1, x
    3. sta ?10 .b, x
    4. dex
    5. bpl ?0
    6. inx
    7. stx ?11 + 1 .b
    8. lda $3d
    9. sta ?12 + 1 .b
    10. lda #$fc
    11. sec
    12. jmp ?10
    13. ?1:
    14. .org $6d
    15. ?10: tax
    16. ?11: ldy #0
    17. lda $233c, y
    18. sta ?14 + 1
    19. sta ?15 + 1
    20. ?12: lda #0
    21. sta ?14 + 2
    22. sta ?15 + 2
    23. ldy #$1f
    24. ?13: txa
    25. ?14: and $ffff
    26. ?15: sta $ffff
    27. inc ?14 + 2
    28. inc ?15 + 2
    29. dey
    30. bpl ?13
    31. txa
    32. rol
    33. rol
    34. bcs ?16
    35. asl
    36. sec
    37. ?16: inc ?11 + 1
    38. bne ?10
    39. rol
    40. rol
    41. bcs ?10
    42. rts
    Alles anzeigen
    Problem:
    1.) Diese lästige Routine wird nicht nur im Intro, sondern auch in anderen Modulen des Spiels (z. B. Auswahlmenü) verwendet. Diese Stellen müßten allesamt gesondert gepatcht werden.
    2.) Die Version von Nostalgia hat die Programmdateien komprimiert, so daß man sie nicht direkt patchen kann. Folglich müßte zuerst das jeweilige Modul entpackt, dann modifiziert und anschließend neu gepackt werden.
    3.) Versuchsweise kann man mit dem VICE-Emulator "xscpu64" (für die SuperCPU) folgenden Test durchführen:
    a) Setzen der Geschwindigkeit auf 1Mhz, damit der Schnelllader funktioniert.
    b) Wenn das Intro startet, mit ALT-M in den Monitor gehen.
    c) An der Adresse $231d den SAX-Befehl abändern in einen BIT-Befehl, z. B. durch "> 231d 2c". Danach entsteht zwar Müll in der Anzeige, aber das ist nicht weiter relevant.
    d) Solange warten, bis die Demo geladen wird. Wenn das Auto losfährt, die schnelle Prozessoremulation des 65816 einschalten.
    e) Man sieht jetzt, wie sich das Spiel verhält bei Beschleunigung durch die SuperCPU. Die Graphik wird tatsächlich deutlich schneller gezeichnet, ABER: Es entstehen Artefakte in der Anzeige, und einige Shapes (z. B. die Tankstelle) werden nicht korrekt gezeichnet. Es ist daher davon auszugehen, daß hier weitere illegale Befehle lauern, die man auch noch alle suchen und ersetzen müßte.

    Fazit: Es ist sehr aufwendig, Test Drive II anzupassen. Am ehesten könnte es den Leuten von Nostalgia gelingen, wenn man sie höflich und freundlich darum bittet und ihre Sources und Tools noch irgendwo auf deren Festplatte rumschwirren. Lohnt sich die Mühe? Fraglich. Da die SuperCPU, wie ich gehört habe, ohnehin nicht mehr gebaut wird, würde ich persönlich eher dazu tendieren, das Chamäleon als die neue Turbokarte für den C64 anzusehen, und die hat auch nicht das Problem mit den illegalen Opcodes wie beim 65816.
  • M. J. schrieb:

    Läuft das Intro bei Dir eigentlich ganz durch bis zur Demo oder gibt es schon während des Intros einen Absturz?
    Zunächst herzlichen Dank, dass du der Sache nachgegangen bist! ;)

    Ich kann deine Frage leider erst jetzt beantworten, nachdem du selber schon weitergeforscht hast - egal, hier nun mein Ergebnis:

    Die CPU 65816 ist aktiv. Sobald man das N0S Trainer Menü mit "START GAME" verlässt, wird in der SCPU von 20 MHz auf 1 MHz automatisch runtergeschalten und die Ladeprozedur beginnt. Daher gab es wahrscheinlich zunächst auch keine Probleme das Intro zu laden. Hier passiert aber nun Folgendes (mit der 16-Bit CPU):

    Nach ca. 7...8 Sek. im Intro hört die Musik von alleine auf und es erfolgt ein kurzer Diskettenzugriff. Danach wechselt der Rahmen immer zwischen Hell- und Dunkelblau. Wenn man nun die Tastatur oder den Feuerknopf betätigt, erfolgt ein weiterer kurzer Diskettenzufgriff, danach kommt es zum Crash!
    Dürckt man stattdessen im Intro frühzeitig den Knopf, wird ca. 7...8 Sekunden eine Datei geladen, die geringfügig länger zu sein schient, als die allererste von N0S - könnte "SL" sein!? Nach Ende des Ladevorgangs kommt nun auch der Crash!

    Bei der CPU 6510 kommt im Intro nach ca. 7...8 von alleine ein Wechsel mit Autos. Wird hier per Feuerknopf der Ladevorgang gestartet, dauert es ebenfalls 7...8 Sekunden, danach erfolgt ein 2. kurzer Diskettenzugriff und das SELECT Menü erscheint.

    M. J. schrieb:

    Chamäleon
    Ich chabe bisher nur die Rückmeldung, dass die sog. Easyflash Version mit dem TC 64 zusammenarbeitet. Man müsste auch noch den separaten N0S Crack probieren - wie bei der SCPU. Insgesamt ist das aber eine Notlösung: Wenn nur die Eaysflash Version mit dem TC 64 zusammenarbeitet, bedeutet das, dass man diese Version nie auf Diskette hat. Rein virtuelle Software (CRTlinge) wie etwa "Prince Of Persia", von denen es keine Dubletten auf Disketten gibt, müssen die Ausnahme bleiben! Mit Blick auf die zigtausend Cracks in all den Jahren, ist es am C 64 Tradition, dass man die Software der Hardware anpasst und nicht umgekehrt. Soll heißen, das Spiel weist offensichtlich Kompatibilitätsmängel auf, die mit Hardwareerweiterungen Probleme macht. Daher wäre die professionellere Lösung natürlich die Mängel zu beseitigen.

    Wärst du offen für eine Zusammenarbeit mit NOSTALGIA, bzw. ist die Originalversion als Vorlage besser und würde es deine Arbeit erleichtern, während dem Patchen eine reale SuperCPU zu haben?