don't click here

The Infamous 03 XX Tag Object

Discussion in 'Engineering & Reverse Engineering' started by Ultima, Apr 14, 2004.

  1. Ultima

    Ultima

    Games Publisher Tech Member
    2,398
    1
    18
    London, England
    Publishing mobile games!
    I got off my ass earlier and finally decided to look into how the 03 XX tag object works. I'm gonna be putting visual representations into SonED soon, but for now, here's my notes (admittedly a tad more organised than they originally were ^_~). As a side point, if you have anything that is definately questionable about it, tell me and I'll test it again (or look into it as the case may be).

    ==================
    FORMAT EXPLANATION
    ==================

    ---

    03 XX - Moving Right(To High / To Low / No Effect)
    - Moving Left(To High / To Low / No Effect)
    - Moving Up (To High / To Low / No Effect)
    - Moving Down (To High / To Low / No Effect)
    - Height / Width XX pixels ($XX) (X tiles)

    03 XX: Object Number

    Moving Right: Which plane is switched to when moving through the tag horizontally rightwards

    Moving Left: Which plane is switched to when moving through the tag horizontally leftwards

    Moving Up: Which plane is switched to when moving through the tag vertically upwards

    Moving Down: Which plane is switched to when moving through the tag vertically downwards

    HEIGHT / WIDTH: The height is both above and below the object's coordinate. The top pixel is (height) pixels subtracted from the object coordinate, and the bottom pixel is (height - 1) added to the object coordinate. $XX is simply the number of pixels in hex, and X tiles is how many 8x8 tiles this is.

    ---

    ====
    TAGS
    ====

    ---


    03 00 - Moving Right (To Low)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 32 pixels ($20) (4 tiles)

    03 01 - Moving Right (To Low)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 64 pixels ($40) (8 tiles)

    03 02 - Moving Right (To Low)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 128 pixels ($80) (16 tiles)

    03 03 - Moving Right (To Low)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 256 pixels ($100) (32 tiles)

    03 04 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To Low)
    - Width 32 pixels ($20) (4 tiles)

    03 05 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To Low)
    - Width 64 pixels ($40) (8 tiles)

    03 06 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To Low)
    - Width 128 pixels ($80) (16 tiles)

    03 07 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To Low)
    - Width 256 pixels ($100) (32 tiles)

    03 08 - Moving Right (To High)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 32 pixels ($20) (4 tiles)

    03 09 - Moving Right (To High)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 64 pixels ($40) (8 tiles)

    03 0A - Moving Right (To High)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 128 pixels ($80) (16 tiles)

    03 0B - Moving Right (To High)
    - Moving Left (To Low)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 256 pixels ($100) (32 tiles)

    03 0C - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To High)
    - Width 32 pixels ($20) (4 tiles)

    03 0D - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To High)
    - Width 64 pixels ($40) (8 tiles)

    03 0E - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To High)
    - Width 128 pixels ($80) (16 tiles)

    03 0F - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To Low)
    - Moving Down (To High)
    - Width 256 pixels ($100) (32 tiles)

    03 10 - Moving Right (To Low)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 32 pixels ($20) (4 tiles)

    03 11 - Moving Right (To Low)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 64 pixels ($40) (8 tiles)

    03 12 - Moving Right (To Low)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 128 pixels ($80) (16 tiles)

    03 13 - Moving Right (To Low)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 256 pixels ($100) (32 tiles)

    03 14 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To Low)
    - Width 32 pixels ($20) (4 tiles)

    03 15 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To Low)
    - Width 64 pixels ($40) (8 tiles)

    03 16 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To Low)
    - Width 128 pixels ($80) (16 tiles)

    03 17 - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To Low)
    - Width 256 pixels ($100) (32 tiles)

    03 18 - Moving Right (To High)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 32 pixels ($20) (4 tiles)

    03 19 - Moving Right (To High)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 64 pixels ($40) (8 tiles)

    03 1A - Moving Right (To High)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 128 pixels ($80) (16 tiles)

    03 1B - Moving Right (To High)
    - Moving Left (To High)
    - Moving Up (No Effect)
    - Moving Down (No Effect)
    - Height 256 pixels ($100) (32 tiles)

    03 1C - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To High)
    - Width 32 pixels ($20) (4 tiles)

    03 1D - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To High)
    - Width 64 pixels ($40) (8 tiles)

    03 1E - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To High)
    - Width 128 pixels ($80) (16 tiles)

    03 1F - Moving Right (No Effect)
    - Moving Left (No Effect)
    - Moving Up (To High)
    - Moving Down (To High)
    - Width 256 pixels ($100) (32 tiles)

    ---

    ===================
    MISCELLANEOUS NOTES
    ===================

    ---

    Objects 03 00 - 03 1F are one set. 03 20 - 03 3F have the same properties as far as solidity switch type and orientation are concerned. These sets must be some kind of difference, however, in something I have overlooked.

    ---
     
  2. Mystic

    Mystic

    Oldbie
    29
    0
    0
    Sonic Robo Blast 2
    Aren't 03 20 and 03 21 some of the loop solidity switches from ARZ? Since they don't use 03 00 I'd assume that there is some kind of direct difference.
     
  3. The Wanderer

    The Wanderer

    Never really posted Member
    165
    0
    0
    Flash Animations
    Wow, that's what I've been looking for for a long time. For the longest time, I've been basically BSing my plane triggers in the old hack I was working on, and this information helps a lot.

    *Motions for the sticky-ing of this thread.*
     
  4. Ultima

    Ultima

    Games Publisher Tech Member
    2,398
    1
    18
    London, England
    Publishing mobile games!
    I make that same assumption for the same reason. Except that mine is based on the tags in CPZ, and how some of plane swapping paths use incremental tags of $20 (03 19, 03 39, 03 59). I spent a while thinking about it however, and I found that I haven't the faintest clue what the difference might be. It certainly doesn't seem to make a huge difference in game anyhow, the loops in EHZ use 03 91 in the original game, but 03 11 works just as well, as does 03 31...
     
  5. Magus

    Magus

    Fallen Hacker From The Past Tech Member
    157
    0
    16
    Paris, France
    Translating Grandia 2 PC to French
    As posted earlier on some other board, I'm posting about it here too. Thanks to Ultima's work, I just determined how the tag works. Here are the explanations about the parameter byte. First, you have to put it into binary form?. Then, just see what each bit does !

    HGFE DCBA

    BA: Size. Put BA in decimal form? before performing the following calculation:
    Size = 32 * 2 ^ (BA)

    C: Orientation. Also determines the operating orientation.
    0 = Vertical / The object operates from Left To Right and Right to Left
    1 = Horizontal / The object operates from Up to Down and Down To Up

    D: Operation when crossed from Left To Right or Up To Down
    0 = Send to Low
    1 = Send to High

    E: Operation when crossed from Right To Left or Down To Up
    0 = Send to Low
    1 = Send to High



    Example:
    For an horizontal object of size 64 that sends to high layer when crossed from up to down and low layer when crossed from down to up, the parameters will be as follows: BA=01, C=1, D=1, E=0. The resulting byte is: 0D.
     
  6. Mystic

    Mystic

    Oldbie
    29
    0
    0
    Sonic Robo Blast 2
    Maybe they did it for organizational purposes, and it has no actual effect in-game. It would stand to reason that they'd use different numbers to help organize their tags.
     
  7. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    *bump* pin plz
     
  8. Hayate

    Hayate

    Tech Member
    grr... *is annoyed at topic diggers*
     
  9. Hivebrain

    Hivebrain

    Administrator
    3,049
    161
    43
    53.4N, 1.5W
    Github
    Actually, I'm surprised this topic hasn't been archived.