PenOG Battle DigiROM format

From DigiMeta
Revision as of 23:08, 24 May 2026 by Nacabaro (talk | contribs) (Created page with "The PenOG battle DigiROM format corresponds to the DigiROMs generated by the Digimon Pendulum Original version, and also the DigiROMs generated by the Pendulum Ver.20th when using the "Old" option. == Practical example == Let's take the following DigiROM as an example: '''(placeholder)''' {| class="wikitable" ! Packet number !colspan="7"| Data |- | Packet 1 |style="background: #f4cccc;"| 0 |style="background: #d9ead3;"| 001 |style="background: #fce5cd;"| 0 |style="bac...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The PenOG battle DigiROM format corresponds to the DigiROMs generated by the Digimon Pendulum Original version, and also the DigiROMs generated by the Pendulum Ver.20th when using the "Old" option.

Practical example

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

Packet number Data
Packet 1 0 001 0 0 0 00110 1111
Packet 2 0000 100 11111 1111
Packet 3 0000 100 11111 1111
Packet 4 0000 10010111 1111
Packet number Data
Packet 1 COU Version Sick Operation COU Slot EOL
Packet 2 Effort 2 Effort 1 Attack EOL
Packet 3 COU COU Hits EOL
Packet 4 Check Shot EOL

Meaning of each field

  • 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.
  • 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.
  • Operation: Whether this connection is a Battle (0), or Jogress (1). Jogressing between a Digimon Pendulum and a Digimon Pendulum Ver.20th is not possible. Example Value: Battle
  • Slot: Just like on the Digital Monster, each Digimon belongs to a specific slot. Unfortunately, the ratios for these slots do not appear to have been officially published, and would require a LOT of tedious testing to determine reasonably on our own. Higher Stage Digimon being stronger than lower stage ones, and the attribute tree applies but in reverse. This means Vaccine is stronger than Data, Data is stronger than Virus, and Virus is stronger than Vaccine, despite the official guides stating the opposite. (See Common Values for Attribute). Example Value: 6 (Vaccine Adult 1)
  • Sick: Whether or not the Digimon is Sick. If it is, the enemy Digimon will become sick after the battle.
  • 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.
  • Effort: Effort is broken up into two sections, strangely enough. No idea why, as it could have used fewer bits to represent as a normal binary number. Instead, Effort 1 is the first Digit of the effort value, and Effort 2 is the second digit. In this case, Effort 1 is 4, and Effort 2 is 0, meaning that the actual effort is 40. Effort increases by 1 every time you train your Digimon, so all Digimon start at 0 and cap out at 40. Example Value: 15.
  • Attack: See Common Values. There are only two attack levels, so it can simply be read from right to left to see whether each round will be a weak attack (0) or a strong attack (1). Weak attacks deal 1 damage while strong attacks deal 2. Example Value: Strong, Strong, Strong, Strong, Strong


  • 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. 5 bits long, read from right to left. Example Value: Hit, 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 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

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 11. Example value: 8.

  • Shot: This value determines which sprite gets used for attacks. The number itself is an index value specific to that device. Example value: 151.


References