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
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.
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
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
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.