�
EUPCalc
A convenience tool for the EUD enthusiast
�
EUPCalc
A convenience tool for the EUD enthusiast
�
Description
EUPCalc, or Extended Unit Placement Calculator, is exactly what it sounds like: a calculator for all possible Player/UnitId combinations for writing to a specific address (as discussed in this topic). There are many different combinations of players and unit ids that are possible to write to a specific address, and this program conveniently provides all of them for you.
EUPCalc, or Extended Unit Placement Calculator, is exactly what it sounds like: a calculator for all possible Player/UnitId combinations for writing to a specific address (as discussed in this topic). There are many different combinations of players and unit ids that are possible to write to a specific address, and this program conveniently provides all of them for you.
Screenshots
Collapsable Box
Quick How-To
First, you need to pick the address you want to write to. A great place to look would be in the EUD Database and the Useful EUD Reference topic. If you are unfamiliar with EUDs, it is recommended that you read A Mapmaker's Guide for Creating EUDs and get some practice with them before going into more advanced/unstable EUD work.
After you have your address, simply put it in the text box at the top of the program and click "Go!" to start calculating. Note that the program is expecting a hexadecimal address, and you should prepend "0x" to signify that you are indeed giving it a hexidecimal value (otherwise, it will attempt to convert to hex and prepend "0x" for you).
As for reading the output, you'll note that each row has three columns. The first column is the player number, which will be the owner of the unit to place. The second and third columns are both Unit IDs. The "DeathId" column is the Unit ID that will write to the address when that unit dies, and the "PlaceId1" and "PlaceId2" columns are the Unit ID that will write to the address when that unit is placed (at the very beginning of the map). PlaceId1 is writing the All Unit Count for the unit, and PlaceId2 is writing the Completed Unit Count for the unit (both of which are written for a preplaced unit at map initialization). Keep in mind that all units will write to these addresses when they are placed and when they die (and other addresses as well), so when using an extended unit, you may be unintentionally writing to several different areas, which can cause stability issues and crazy side-effects.
Some extended units will crash when they die, and some will crash when they are being placed (or when the map initializes, which for the purposes of this phenomenon is the same thing). Which ones work? Well, unfortunately, we don't know. Extended units are highly unstable and unpredictable, and we only have a few documented cases of Player/Unit ID combinations that won't crash the game immediately, and even fewer that are safe to kill. Even though there are 21-22 different combinations for a given address, chances are good that none of them will be ideal for use.
First, you need to pick the address you want to write to. A great place to look would be in the EUD Database and the Useful EUD Reference topic. If you are unfamiliar with EUDs, it is recommended that you read A Mapmaker's Guide for Creating EUDs and get some practice with them before going into more advanced/unstable EUD work.
After you have your address, simply put it in the text box at the top of the program and click "Go!" to start calculating. Note that the program is expecting a hexadecimal address, and you should prepend "0x" to signify that you are indeed giving it a hexidecimal value (otherwise, it will attempt to convert to hex and prepend "0x" for you).
As for reading the output, you'll note that each row has three columns. The first column is the player number, which will be the owner of the unit to place. The second and third columns are both Unit IDs. The "DeathId" column is the Unit ID that will write to the address when that unit dies, and the "PlaceId1" and "PlaceId2" columns are the Unit ID that will write to the address when that unit is placed (at the very beginning of the map). PlaceId1 is writing the All Unit Count for the unit, and PlaceId2 is writing the Completed Unit Count for the unit (both of which are written for a preplaced unit at map initialization). Keep in mind that all units will write to these addresses when they are placed and when they die (and other addresses as well), so when using an extended unit, you may be unintentionally writing to several different areas, which can cause stability issues and crazy side-effects.
Some extended units will crash when they die, and some will crash when they are being placed (or when the map initializes, which for the purposes of this phenomenon is the same thing). Which ones work? Well, unfortunately, we don't know. Extended units are highly unstable and unpredictable, and we only have a few documented cases of Player/Unit ID combinations that won't crash the game immediately, and even fewer that are safe to kill. Even though there are 21-22 different combinations for a given address, chances are good that none of them will be ideal for use.
Download
This is the second public release of EUPCalc. The current version is Version 3.
This program requires the .NET Framework 4 to run.
Download from Sen's DLDB
This is the second public release of EUPCalc. The current version is Version 3.
This program requires the .NET Framework 4 to run.
Download from Sen's DLDB
Post has been edited 4 time(s), last time on Jan 5 2018, 6:59 pm by Roy.
Learn how EUDs work: A Mapmaker's Guide for Creating EUDs
Don't like learning?: EUDGen 2
Other stuff: Farlap Bound Maker
Dash: 1 2 3 4 5 6 7 8 9 X
Jog: Original Warp
Other: Super Mario SC Fireball Guard Your Civilian Strength Contest
Don't like learning?: EUDGen 2
Other stuff: Farlap Bound Maker
Dash: 1 2 3 4 5 6 7 8 9 X
Jog: Original Warp
Other: Super Mario SC Fireball Guard Your Civilian Strength Contest