Giter Site home page Giter Site logo

trk_hollywood_revolution.a's Introduction

TRK_Hollywood_Revolution.a

This repository covers the decompiled source code to the debugger NUB ("Kernel") of "MetroTRK for Revolution", whereby there exist two different versions of this particular library: v0.1 and v0.4

The latter has been fully decompiled to a "one-on-one" hex binary match, compared between the object file(s) of the original library and the fresh compiled object file(s).

Currently, the source code within this repository enables v0.4 operation. The previous release (v0.1) and it's object files of the original library, once extracted, cover dates from the years between 1999 and 2006. The older library code was harder to decompile due to the fact that (most likely) multiple compiler releases were used to compile different parts of the library code but at the same time, most of the older library code is included here as well but disabled. At the same time it is very unlikely that the v0.1 source code would ever run with success.

Build / Clean-up instructions

To compile the required object files and create the actual library, it requires the command-line compiler and linker of "CodeWarrior for Wii". The exact compiler version is "v4.2 build 141" ("Runtime Built July, 31st 2008"). Same goes for the assembler and linker. They also require the FLEX license manager DLL coming with them and they need to be put into the empty "bin" folder.

From the command-line, run file "build.bat" or "clean.bat" to either compile the code or clean things up. The final library will be located within folder "lib".

Origin / Background

"MetroTRK" / "CodeWarriorTRK" / "AppTRK" are the common names used across multiple CodeWarrior IDE's for either "mobileGT" / "68K" / "Power Architecture". They all cover different versions of the source code whereby two versions are of use within every single repository: "Kernel version" vs. "Protocol version".

"Kernel version" most likely represents the modified code of the original source while "Protocol version" represents the source code of the API back in the day before changes were applied to make things run on different hardware / MCU's.

For this particular library right here, "Protocol version" was v1.10 which during development turned into "Kernel version" v0.4 in the end.

For the decompilation, "Protocol version" v3.2 was used as it's origin before things turned out to be much older. So lots of changes where done to recover the source code to the original binaries.

Christmas gift: GCC / GNU additions

The intention to decompile this library is to port it over to GCC for use with libOGC (devkitPPC). Most of the required modifications are already included and visible as "#if" definitions. Aside from that, libOGC itself needs modifications and it will also require a modified linker script, GNU plugins for CodeWarrior and specific CodeWarrior project data.

Test results

Tests were successful to the point, that the code within here works the way it should when compiling and linking it using the command-line tools of CodeWarrior for Wii. For GCC v4.8.2 as of devkitPro r27, once all the requirements are set and an "App" is run, it will work for everything but SDL / big projects so far.

Merry christmas 2023

trk_hollywood_revolution.a's People

Contributors

derek57 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.