Star Fox Assault Weapon ID and Damage documentation

Damage Table for Hardcoded Values

These are the damage values that are hardcoded into the game's code and are the same for all game modes. The number is purely for deciding what random numbers to change. It means NOTHING in the actual game.

#

Damage Type

Damage

Notes

Damage Table for weapons (only verified on Mission 4 and VS mode in Katina Outpost. Don't think it matters though)

There are many special cases where reduced damage, and possibly addition damage, is dealt without being documented. So keep that in mind when looking at the table.

Single Player Damage (Direct/Splash Damage)

Vs Mode Damage (Direct/Splash Damage)

Weapon

ID

Pilot/Enemy

Arwing/Wolfen

Landmaster/???

Pilot

Arwing/Wolfen

Landmaster/???

Notes

IDs for teammate shots in On-rails, enemy's chasing teammates in On-rails, touching certain enemies in On-Rails, enemies chasing teammates in Wing Riding weren't obtained due to complications. So those could be the missing IDs along with others I may not know about.

Code Making

This allows you to change damage weapons for any of the above weapons and decide for what game modes it'll apply for. Leave something blank to not change its value. Report any bugs to ModSault whether on discord, email, reddit, or github. Links can be found on the Youtube Page.

Hardcoded Damage Type

GameMode

Damage

Other



The input box in the Other section is for an additional offset from where the damage value should normally be found at. It changes automatically when switching weapons. But if you want to change it manually, you can do so. Only recommended for non-documented IDs. The valid range is from -14 to 40 as an increase in id of 1 moves to the next weapons damage value 40 memory address away. The -16 is also valid as damage values are 16 bytes away from the base struct, so while you can make overlap as an id of 2 and offset of 30 is the same as an id of 3 with an offset of -10, I wanted to give flexibility to account for this.

Weapon Type

GameMode

Pilot/Enemy Damage (Direct/Splash)

Arwing/Wolfen Damage (Direct/Splash)

Landmaster/??? Damage (Direct/Splash)

Other

Randomizing Damage

This allows you to make a code that'll randomize the damage of everything you want to randomize. Just pick if its a weapon ID or Hardcoded damage, the game mode, the ids/# range for the damage type, then the damage range. Then make the code.

Weapon Type

GameMode

ID/Hardcoded Number Range (Inclusive)

Damage Range (Inclusive)

Damage Types (if Weapon ID)

Other

Credits and How to Help

Function for calculating Weapon Damage:
 Pilot: 0x1
 Arwing/Wolfen: 0x2
 Landmaster: 0x3
 Enemies: 0x4
 ??? (I don't know what's this for): 0x5

The Weapon IDs 0-37 were originally documented by Jase-Vendor and updated slightly by ModSault. The rest of the IDs were found by ModSault, including hardcoded values. If you want to help with any documentation, whether it be for the missing IDs, reporting bugs, or anything else, feel free to do so. My contact information can be found on my Youtube Channel's About Me page.

The method I used to get the hardcoded values mainly involved placing a memory breakpoint on the health of the player/Landmaster/Arwing, taking damage by the hardcoded amount, and tracing it back with a gdb like debugger using Dolphin to find where its damage value is saved.

As for the Weapon IDs, a function is called when the Pilot/Arwing/Enemy/Landmaster is hit to determine how much damage should be taken. The address of the start of the function are above. All you need is a breakpoint on the appropriate function, and then get hit by the attack. Run the first instruction of the function and the register (r0 or r7 as seen on the first instruction of the function) will have the ID number of the weapon.