Links| Forums| Comments| Report news
Chat| Polls| Newsticker| Archive

[Login] [Register] [Forgot your password?]

< Next messagePrior message >
04.Jan.2023 (ANF)

AmigaOS 4: Payback ported
After a long development period - announced in V - Apex Designs released their Grand Theft Auto clone Payback in February 2001, including a demo version for 68k and PPC processors (WarpUP). In this, the player slips into the role of a young getaway driver while trying to become a big gangster boss. Seven updates and several new and updated maps were released afterwards. Roman 'kas1e' Kargin had received permission from Apex Designs to port the game to AmigaOS 4, which is now available at OS4Depot under the title link.

The original game and the last update are also required. The procedure for installing the update is available in detail in the description. Kargin writes about the content of the update:

"The original Payback was written in C and built via StormC (meaning GCC 2.95), and a large part of the code was Assembler-based: the 68K version used the 68K assembler, whereas the PPC/WarpOS version used H&P's Power ASM assembler (this one is with Motorola syntax, so it's PPC assembler with Phxass kind syntax and is incompatible with GCC's "as"). So I was in needs to port all the C code from old GCC to newer GCC, and then take the Power ASM assembler code used for the WarpOS version and adapt it, so it can be compiled with self build VASMMOT_PPC (which means VASM with Motorola syntax). Then I used GCC to combine everything into a single OS4 binary. The assembler code adaptation was minor, but I had to implement a few functions that were not available in VASM's assembler (prolog/epilog, pushgprs/popgprs, etc).

The next major issue was Payback's Warp3D rendering. The codes were once again "old GFX card" based and contained some bugs, so some rewriting and fixing was required. Yeah, it is not uncommon for game developers from the past to assume that only old kinds of graphics cards will be used (as it was in Exodus: The Last War, for example). Now, you can use hardware rendering on your RadeonHD or RadeonRX cards with no problems, be it NovaBridge or Warp3D_SI. Thanks to Hans for his help in terms of Warp3D code!

Migration from GCC 2.95 to GCC 11.3 also takes some time because of plenty of deprecated code, old-fashioned use of DOS's anchors, message ports, memory allocations, the way of calling assembler functions, non-static structs, etc. And, as we were told, the things that were forgiven in GCC 2.95 are no longer applicable in today's GCC, so changes must be made. On top of that, instead of newlib, I do use Afxgroup's improved CLIB2 fork (more specifically, CLIB2_beta07).

Once things start working, new video modes are added (so you can play HD modes like 1920x1080 too). At the same time, Javier starts writing a new "preference" program that is now Reaction-based, logical, and visually appealing. Now you can control everything from the PaybackSetupOS4 binary right from the start, as well as later in the game as before, of course. Also, Javier does help with some bits all over the place as always, so hats off for that!

The following changes are not included in this update, but are planned for future ones:
  • Support for window mode.
  • Finalizing of the FLC video player with auto-scaling. We do have a working version, but it's not good enough, so we postponed it to a later update.
  • Complete the migration from audio.device to the ahi.device. Also, it kind of works already, but not well enough.
  • Fixing hardware rendering to works on the older Warp3D classic drivers again (migration to the newer GCC required extensive rewriting, resulting in clumsy hardware mode on real Warp3D).
  • to fix bugs that will be found in this update."

[News message: 04. Jan. 2023, 06:43] [Comments: 0]
[Send via e-mail]  [Print version]  [ASCII version]
< Next messagePrior message >

Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2022 by - all rights reserved.