Pen20th battle DigiROM format

From DigiMeta
Jump to navigation Jump to search

The PenOG jogress DigiROM format corresponds to the DigiROMs generated by the Digimon Pendulum Ver.20th version in order to perform connection battles.

Practical example

Let's take the following DigiROM as an example: (placeholder)

Packet number Data
Packet 1 0 0 1110 10 0110 1110
Packet 2 00 11100101 11 1110
Packet 3 0000 00110101 1110
Packet 4 0 000 00001101 1110
Packet 5 01 1 1 11111000 1110
Packet 6 00 11101110 00 1110
Packet 7 0000 01101001 1110
Packet 8 0000 01000111 1110
Packet 9 0011 11100110 1110
Packet 10 0001 0000 1111 1110
Packet number Data
Packet 1 Order COU Attack Operation Version EOL
Packet 2 COU Index L Attribute L EOL
Packet 3 COU Shot W L EOL
Packet 4 Sick COU Shot S L EOL
Packet 5 COU Traited Egg Shake Power L EOL
Packet 6 Copy Index R Attribute R EOL
Packet 7 COU Shot W R EOL
Packet 8 COU Shot S R EOL
Packet 9 COU Power R EOL
Packet 10 Check Dodges Hits EOL

Meaning of each field

  • Order: Shows whether a device initiates battle or not, or in other words, which device pressed the button to start battle. The initiating device will have a 1 for order, while the second device will have a 0.
    • Example Value: Did not initiate
  • COU: Stands for Constant Or Unknown. This is a value that is the same across all signals we’ve analyzed, and may just be something that doesn’t get used. The possibility may exist though that it’s just a value we haven’t discovered the purpose of yet.
  • Attack: In this context, Attack is how much damage will be dealt for each successful hit. This is generally some kind of pattern, and the signal will instruct how much damage will be dealt each round. Usually you will get stronger attacks when you do better at the Pre-Battle Minigame. Attack Pattern is determined by your Digimon’s specific Shake requirements. There are 4 attack levels for each shot.
    • Example Value: 14
  • Operation: Whether this connection is a Single Battle (0), Jogress (1) or Tag Battle (2).
    • Example Value: Tag Battle
  • Version: This value will identify which specific version of a device series is being used. Each Battle System has its own range of version numbers, generally in sequence starting with the first released device. This is how the device determines whether the Lala egg should be unlocked upon victory.
    • Example Value: Silver Black
  • EOL: In most Battle Systems, the final 4 bits of each packet will be a constant value that doesn’t really mean anything on its own. In other words, you can ignore these bits when interpreting signals.
  • Index: The number by which the device refers to a specific Digimon. Each device has its own internal index that is referenced to determine which Digimon is being used.
    • Example Value: 229 (Ordinemon)
  • L: L indicates the Left Digimon, or in other words, the first one chosen for Tag Battles. For other operations that use one Digimon, it will always be represented with the L values.
  • R: R indicates the Right Digimon, or in other words, the second one chosen for Tag Battles. For other operations, these values will all be 0.
  • Attribute: All Digimon on modern virtual pets are categorized into one of four Attributes: Vaccine (0), Data (1), Virus (2) or Free (3). Generally speaking, Vaccine is stronger than Virus, Virus is stronger than Data and Data is stronger than Vaccine. Free does not have strengths or weaknesses. Having an Attribute Advantage gives roughly the equivalent of being 32 Power Points stronger.
    • Example Value: Free
  • Shot: This value determines which sprite gets used for attacks. Generally speaking there would be two sprites, one for stronger attacks (Shot S) and one for weaker (Shot W). The Digital Monster X also includes a sprite for Mega Hits (Shot M). The number itself is an index value specific to that device.
    • Example Value: 53
  • Sick: Whether or not the Digimon is Sick. If it is, the enemy Digimon will become sick after the battle.
    • Example Value: Not sick
  • Traited: Whether or not the Digimon was hatched from a Traited Egg. This value does not appear to affect battle outcome.
    • Example Value: Hatched from a Traited Egg
  • Egg Shake: Whether or not the Digimon was hatched from an egg that was shaken 100 times before it hatched. This value does not appear to affect battle outcome.
    • Example Value: Hatched from an egg that was shaken 100 times
  • Power: This number determines the likelihood of whether hits will connect or not. The larger your power is compared to your opponent’s, the higher the chance that a hit will connect.
    • Example Value: 248
  • Copy: This determines which internal database the index number should be pulled from. The values are Hatched (0) for a Digimon that was hatched and raised on this device, Raisable Copy (1) for a Copymon from another Digimon Pendulum Ver.20th and Copy Exclusive (2) for Digimon copied from the Digital Monster Ver.20th or a Password.
    • Example Value: Hatched on this device
  • Dodges: How many times you will dodge an incoming shot, represented as a 0 for a dodge, 1 for a hit. The direction the dodges and hits are read from in the signal can vary from device to device. For example, if the device requires that dodges are read from right to left, and the Dodges value is 01011, this means that your opponent’s shots will hit, hit, miss, hit and miss, in that order. 4 bits long, read from right to left. If more than 4 battles are needed, the pattern repeats. Opponents' dodges will be inverted for Single Battles, but not necessarily for Tag Battles.
    • Example Value: Dodge, Dodge, Dodge, Dodge
  • Hits: How many successful hits you will deal against your opponent, represented as a 0 for a miss, 1 for a hit. The direction the hits and misses are read from in the signal can vary from device to device. For example, if the device requires that hits are read from right to left, and the Hits value is 10100, this means that your shots will miss, miss, hit, miss and hit, in that order. 4 bits long, read from right to left. If more than 4 battles are needed, the pattern repeats. Opponents hits will be inverted for Single Battles, but not necessarily for Tag Battles.
    • Example Value: Hit, Hit, Hit, Hit
  • Check: The Check is a value that will frequently change to help ensure a certain remainder is achieved on a finished code. As such, the Check will always be in the final packet. This value is used to tell the device that the incoming code is in fact legitimate. The Check itself does not equal the intended remainder, but rather ensures the intended remainder is reached. So if the intended remainder is 11, and the current sum without the Check is 71, then the Check will be 4 (because 16 goes into 75 4 times with a remainder of 11). Remainder should always equal 12. The way it works is like this:
    • The signal is divided into 4 bit groups
    • Each group of 4 bits is added together
    • The sum is divided by 16
    • The remainder is checked
    • Example Value: 1