amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

[Login] [Registrieren] [Passwort vergessen?]

< Nächste MeldungVorige Meldung >
04.Jan.2023
amigaworld.net (ANF)


AmigaOS 4: Payback portiert
Nach einer längeren Entwicklungszeit - angekündigt bereits im September 1999 - veröffentlichte Apex Designs im Februar 2001 ihren Grand-Theft-Auto-Klon Payback inklusive einer Demoversion für 68k- und PPC-Prozessoren (WarpUP). Hierin schlüpft der Spieler in die Rolle eines jungen flüchtenden Fahrers und versucht dabei, ein großer Gangsterboss zu werden. Es folgten sieben Updates und mehrere neue und aktualisierte Karten. Roman 'kas1e' Kargin hatte von Apex Designs die Erlaubnis erhalten, das Spiel auf AmigaOS 4 zu portieren, was nun im OS4Depot unter dem Titellink verfügbar ist.

Weiterhin werden das Originalspiel und das letzte Update benötigt. Die Vorgehensweise zum Einspielen des Updates ist detailliert in der Beschreibung verfügbar. Zum Inhalt des Updates schreibt Kargin:

"Das ursprüngliche Payback wurde in C geschrieben und mit StormC (d.h. GCC 2.95) gebaut, und ein großer Teil des Codes war Assembler-basiert: die 68K-Version verwendete den 68K-Assembler, während die PPC/WarpOS-Version den Power-ASM-Assembler von H&P verwendete (dieser ist mit Motorola-Syntax, also ein PPC-Assembler mit Phxass-artiger Syntax und inkompatibel mit GCCs "as"). Ich musste also den gesamten C-Code vom alten GCC auf den neueren GCC portieren und dann den für die WarpOS-Version verwendeten Power-ASM-Assembler-Code nehmen und anpassen, sodass er mit dem selbstgebauten VASMMOT_PPC (d.h. VASM mit Motorola-Syntax) kompiliert werden kann. Dann habe ich GCC benutzt, um alles zu einer einzigen OS4-Binärdatei zu kombinieren. Die Assembler-Code-Anpassung war geringfügig, aber ich musste einige Funktionen implementieren, die im VASM-Assembler nicht verfügbar waren (prolog/epilog, pushgprs/popgprs, usw.).

Das nächste große Problem war das Warp3D-Rendering von Payback. Die Codes basierten wieder einmal auf alten GFX-Karten und enthielten einige Bugs, sodass einige Umschreibungen und Korrekturen erforderlich waren.
Ja, es ist nicht ungewöhnlich, dass Spieleentwickler in der Vergangenheit davon ausgingen, dass nur alte Arten von Grafikkarten verwendet werden (wie es zum Beispiel in Exodus: The Last War der Fall war).
Jetzt können Sie ohne Probleme Hardware-Rendering auf Ihren RadeonHD- oder RadeonRX-Karten verwenden, sei es NovaBridge oder Warp3D_SI. Vielen Dank an Hans für seine Hilfe in Bezug auf den Warp3D-Code!

Die Migration von GCC 2.95 auf GCC 11.3 benötigte ebenfalls einige Zeit, da viel veralteter Code, die altmodische Verwendung von DOS-Ankern, Message-Ports, Speicherzuweisungen etc. enthalten waren. Und, wie uns gesagt wurde, sind die Dinge, die im GCC 2.95 verziehen wurden, im heutigen GCC nicht mehr anwendbar, sodass Änderungen vorgenommen werden müssen. Darüberhinaus verwende ich anstelle von newlib den verbesserten CLIB2-Fork von Afxgroup (genauer gesagt CLIB2_beta07).

Sobald die Dinge anfingen zu funktionieren, wurden neue Videomodi hinzugefügt (damit man auch HD-Modi wie 1920x1080 abspielen kann). Gleichzeitig begann Javier mit dem Schreiben eines neuen Einstellungs-Programms, das jetzt Reaction-basiert, logisch und visuell ansprechend ist. Jetzt kann man alles von der PaybackSetupOS4-Binärdatei aus steuern, sowohl am Anfang an als auch später im Spiel wie vorher natürlich auch. Außerdem hilft Javier wie immer mit einigen Bits überall, also Hut ab dafür!

Die folgenden Änderungen sind nicht in diesem Update enthalten, sind aber für zukünftige Updates geplant:
  • Unterstützung für den Fenstermodus.
  • Fertigstellung des FLC-Videoplayers mit automatischer Skalierung. Wir haben zwar eine funktionierende Version, aber sie ist nicht gut genug, deshalb haben wir sie auf ein späteres Update verschoben.
  • Abschluss der Migration von audio.device zu ahi.device. Es funktioniert auch schon irgendwie, aber nicht gut genug.
  • Korrektur des Hardware-Renderings, sodass es wieder mit den älteren Warp3D Classic-Treibern funktioniert (die Umstellung auf den neueren GCC erforderte ein umfangreiches Neuschreiben, was zu einem schwerfälligen Hardware-Modus auf echtem Warp3D führt).
  • Behebung von Fehlern, die in diesem Update gefunden werden."
(dr)

[Meldung: 04. Jan. 2023, 06:43] [Kommentare: 13 - 09. Jan. 2023, 19:05]
[Per E-Mail versenden]  [Druck-Version]  [ASCII-Version]
< Nächste MeldungVorige Meldung >

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.