Skip to content

A decompilation effort targeting the game Bloons TD 5

Notifications You must be signed in to change notification settings

NKHook/BTD5-Decomp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BTD5-Decomp

A decompilation of Ninja Kiwi's game Bloons TD 5.

How?

This decompilation is made by hand. The names of files, classes, etc are either made up arbitrarily, or discovered with the help of left-over debug info.

Is this a 1:1 complete copy of the game or source code?

That is the goal, however since we do not have access to the source code, we cannot know for sure. What we can know, is if the compiled code from this decomp matches the compiled code of the game.

How do I build this?

Right now you can't. In the future, however, chances are you will be able to build an exe by disassembling the game's exe, and then transplanting the code generated by this project into it. That will likely be the way to do things until it becomes a fully complete decompilation (which, realistically speaking, may never be possible).

Can this be used for mods?

Yes, absolutely! I suggest looking at the NKHook5 project that will soon be reliant on this project for most patching and such. It will also help avoid copyright/dmca problems, as making a mod directly into the game's exe would mean you would have to make pirated copies to distribute the mod (very illegal!!).

Standards

The code standards used at Ninja Kiwi for this game and their NewFramework engine are unknown.

For the project,

  • We should assume that brackets {} are placed on new lines, unlike Java where its usually on the same line. If this is found to be innaccurate (judging from line numbers of assertions), then this rule may be ignored.
  • Unknown function names should be prefixed with the executable it came from, as well as commented with the specific release/update number. For example, a function from the Steam release, version 2.0, at address 00000000 should look like this: WIN_FUN_00000000(...); //Version 2.0. Same logic applies for other versions of the game. Another example: KONG_FUN_01234567(...) //Version 3.2 would be from BTD5-Kong.exe version 3.2 at address 01234567.
  • Addresses should be RVA addresses, those that are found in Ghidra/IDA. If an RVA address absolutely cannot be used, then the format use in Cheat Engine (Ex. BTD5-Win.exe+0x12345) should be used instead (filename+offset). It is still important to add a comment with the version here as well.

If any inconsistencies are found with this standard in the project, please open an issue. At the moment I (DisabledMallis) am the only person working on this, so mistakes are bound to happen. I will do my best to fix any issues found, and I appreciate when they are reported to me.

About

A decompilation effort targeting the game Bloons TD 5

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published