Arc the Lad: Twilight of the Spirits Level-Up Bug

Discussion in 'Gaming' started by Amaury, Jun 21, 2014.

  1. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692


    This is a small (non-game breaking), but interesting, bug I discovered a long time ago in Arc the Lad: Twilight of the Spirits for both Ganz and Volk at level 41 in their HP growth rate, since they both share the same HPs and HP growth rate, and it seems that's the only stat affected. All the other stats are fine.

    Densimo also shares the same HPs and HP growth rate, but he's temporary, and at the point of the game you get him, enemies don't give much experience, so it'd take quite a while to level him up to level 41, even with bountiful fruits from a new game plus.

    Anyway, pay attention to the level-ups, especially the HP increase (you'll notice it was blank for level 41), and stat screens for Ganz and Volk. When showing the character stat screens, all weapon and accessory attachments were unequipped to show Ganz and Volk's natural stats at those levels.

    Also, I thought the bug occurred at level 42, so I was unable to show the level-up to level 40 for Ganz to show the level-up before the bugged level-up. However, I do have the information for Ganz's level-up to level 40.

    Ganz - Level 39 > 40:
    • MHP: +6
    • ATT: +3
    • DEF: +1
    • MNT: +2
    • SPD: +0
    • HIT: +1
    • AVO: +1
    • TRO: +0

    All that equals what you see in the first clip here.

    I also show the level-up after the bugged level-up to show that it goes back to normal.

    What would cause a bug like this? It happens with every playthrough of the game, so it's not a glitch. Discuss.
     
  2. Technic☆Kitty Hmm

    Joined:
    Apr 2, 2010
    Gender:
    Male
    Location:
    Indiana, USA
    1,299
    My guess, some programmer accidentally hit a t instead of an f. Seriously, it happens sometimes. It might not be that simplistic but the bug is most likely caused because of a mistake in the programming. Old games and even new games have bugs like this. The only thing about old games though is that they didn't get patch updates to fix these bugs.

    -Nights
     
  3. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    What's really interesting is that it's not only a visual issue during the level-up, it also makes their HPs decrease by five, as you saw, and then, ironically, at level 42 they go back to 422 because the increase is five, what they had at level 40.
     
  4. Technic☆Kitty Hmm

    Joined:
    Apr 2, 2010
    Gender:
    Male
    Location:
    Indiana, USA
    1,299
    That's not really ironic, so much as it is mathematical. There's a formula in the game that tells it what to do for which level. They drop 5 at forty one and return to the correct state at forty two. As I said, it's more than likely a simple mistake in the programming. Unless you have an in depth knowledge of game coding then there's no way of fixing it. I have absolutely know idea about making games but I know a mistake when I see one.

    -Nights
     
  5. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    Are you basically saying that they should have had 422 HPs at level 42 and not level 40? That doesn't sound right.
     
    Last edited: Aug 23, 2014
  6. Technic☆Kitty Hmm

    Joined:
    Apr 2, 2010
    Gender:
    Male
    Location:
    Indiana, USA
    1,299
    No, I'm saying that the game's programming fudged up and it basically overlooked two levels. It's happened in other games I'm sure.

    -Nights
     
  7. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    Two levels? Level 41 and level 42? The bug occurs when leveling up to level 41, though, not level 42, and only affects the HP stat.

    Level 38 > 39 - MHP +5: 411 > 416
    Level 39 > 40 - MHP +6: 416 > 422
    Level 40 > 41 - MHP -5: 422 > 417
    Level 41 > 42 - MHP +5: 417 > 422
     
    Last edited: Aug 23, 2014
  8. Technic☆Kitty Hmm

    Joined:
    Apr 2, 2010
    Gender:
    Male
    Location:
    Indiana, USA
    1,299
    If you're looking for specifics you're not going to get any. Like I've said, it's a programming error. I'm not a game designer so I can't tell you why it's doing what it's doing exactly. All I know is if it happens on every playthrough, it is a programming error.

    -Nights
     
  9. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    Edited my post above for anyone else seeing this.

    Yeah, that's why I'm calling it a bug and not a glitch.[DOUBLEPOST=1403371631][/DOUBLEPOST]@libregkd, @Patman, I know you guys know quite a lot about this stuff. Maybe you guys could put in your own two cents. :)
     
  10. libregkd -

    Joined:
    Sep 30, 2006
    2,902
    ...
     
  11. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
  12. libregkd -

    Joined:
    Sep 30, 2006
    2,902
    ...
     
  13. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
  14. Patman Bof

    Joined:
    Oct 19, 2010
    Gender:
    Male
    Location:
    France
    672
    Without access to the actual algorithm I' d just be taking shots in the dark. Judging from the characters max hp charts it' s not something as simple as maxhp = basehp + lv*5, since even putting lv 41 aside they don' t gain the same amount of HP every time. Might be an oversight that luckily doesn' t crash the program, might be completely intentional (as a means to avoid another bug to happen elsewhere, for instance).

    I' m not that savvy either, but it might be a tad more difficult than that. From what I' m told the data on a PS disk isn' t the original code per se. I' m not sure to which extent those differ, but it' s apparently big enough that retrieving the source code from the disc data alone qualifies as retro-engineering :
    http://www.1up.com/features/the-problem-with-preservation

    That' s why I was wondering if SE still had all the source data from all the KH games neatly stored and commented in their archives, or if they had to retro-engineer some stuff to make 1.5 and 2.5. Apparently I wasn' t the only one :

     
  15. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    I'm not sure I understand. Stats and stat growths at each level-up in this game are fixed, meaning they are the same time each time you play through. For example, Paulette's hit points will always increase by 10 points when leveling up from level two to level three and go from 105 to 115. Also, what do you mean by algorithm?

    It should also be noted, and I'm not sure why they did this, most other characters -- one from the human side and one from the Deimos side -- also share the same stats and stat growths. For example, at level 40, both Maru (human side) and Camellia (Deimos side) have 306 hit points, at level 40, both Tatjana (human side) and Volk (Deimos side) have 91 defense points, and so on. That's why both Ganz and Volk are affected by this HP increase bug at level 41 (since they share the same hit points and hit point growth), which leads me to my next question: why is only that pair affected by this bug and nobody else?
     
  16. Patman Bof

    Joined:
    Oct 19, 2010
    Gender:
    Male
    Location:
    France
    672
    They are the same each time you play through, but not the same at each level up.
    They don' t gain the same amount of HP regardless of what level they' re at :

    o------o
    | Ganz |
    o------o

    MHP ATT SPD HIT TRO DEF MNT AVO
    --------------------------------------------------------

    INITIAL 189 54 21 35 37 25 28 09

    9 -> 10 +08 +02 +01 +01 +01 +02
    10 -> 11 +09 +02 +02 +01 +03 +01
    11 -> 12 +08 +02 +01 +01 +01 +01 +03 +01
    12 -> 13 +09 +03 +02 +01 +01 +02 +01
    13 -> 14 +08 +03 +01 +01 +02 +03 +01
    14 -> 15 +09 +03 +01 +01 +02 +03
    15 -> 16 +08 +03 +01 +01 +01 +02 +01
    16 -> 17 +09 +03 +01 +02 +03 +01
    17 -> 18 +08 +03 +01 +01 +02 +03 +01
    18 -> 19 +09 +03 +01 +01 +02
    19 -> 20 +08 +03 +01 +01 +02 +03 +01
    20 -> 21 +08 +03 +01 +01 +01 +02 +02 +01
    21 -> 22 +08 +03 +01 +01
    22 -> 23 +08 +02 +01 +01 +02 +02 +01

    Sometimes he gains 8 hp, sometimes he gains 9 hp, it' s not a fixed value.

    An algorithm is a synonym for recipe. Machines don' t think, machines don' t talk, they merely do what you asked them to do and the only language they "understand" is math. For instance when I said "maxhp = basehp + lv*5", well, that ' d be logic talk for "the character gains 5 hp at every level up", which would then be translated into pure math language (if we had to type everything in pure math we wouldn' t see the end of it, we' ve build translators for that).

    I assume that' s be akin to character classes. You have your warrior-type growth algorithm, your wizard-type growth algorithm etc ...
    Ganz and Volk just happen to have been thrown in the same growth category.
     
  17. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    Right. Of course. That I knew. I meant fixed in that it's the same value for each character during each playthrough at those specific levels. Each time you play through Arc the Lad: Twilight of the Spirits, when Ganz levels up to level 10, he will always gain nine hit points, when he levels up to level 11, he will always gain eight hit points, and so on. It's the same thing in Dragon Quest VIII: Journey of the Cursed King, where the increases are fixed. For example, during each playthrough, at level 32, Yangus will always gain 22 hit points and go from 322 to 344 hit points.

    There are, of course, games where the values aren't fixed and vary each playthrough, such as in Fire Emblem: Path of Radiance (I don't have the game, but I've been watching the let's play my friend did of it a long time ago).

    Ah, yes. There aren't exactly character classes in the game, but they are implied. The class stuff you saw in the video had to do with special moves and magic. There are eight class levels, and you get access to more special moves and magic the higher you go.

    To give you a general idea of the characters' roles using level 40 and hit points (an H indicates the human side and a D indicates the Deimos side):

    • Kharg (H) and Delma (D) - Level 40: 345 HP
    • Paulette (H) and Darc (D) - Level 40: 317 HP
    • Maru (H), Camellia (D), and Choco (D) - Level 40: 306 HP
    • Ganz (H) and Volk (D) - Level 40: 422 HP
    • Tatjana (H), Bebedora (D), Diekbeck (H) - Level 40: 373 HP

    (Note: Diekbeck and Choco are bonus characters you get from winning the 20-round tournament at the Cathena arena (Kharg) and the 30-round tournament at the Rueloon arena (Darc), but I included them, anyway.)

    If you go back to Shotgun Nova's FAQ on the GameFAQs, there are descriptions of each character.
     
    Last edited: Aug 23, 2014
  18. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    There are few pretty basic ways I know of to track stats like this (there are really countless ways to go about it, but lets keep it simple).
    First is an algorithm. The game just uses an equation to find out what the stat should be, ignoring what the level used to be. (e.g. "maxhp = basehp + lv*5") It doesn't know or care what your HP used to be, it will just resolve at each level. You could actually force this to work every time but depending on what you want the stats to be this can become very complex or even more space intensive than the alternatives.
    Second is a table look up. The game doesn't do any calculations on the fly, it will just look up on a preloaded list what any given stat is at level x. (e.g. At level 40 maxhp = 422) Straight forward, but pretty space consuming.
    Third is updating a value each level based on something else. (e.g. maxhp = lastmaxhp + levelfactor) This level factor could be from a table look up, from another algorithm, or really anything if they thought it made sense.

    My best guess is that they used the third option of altering stats based on a table, and characters can share a table for any given stat. So somehow the table for this growth pattern of HP ended up with a negative 5 in it at level 41. It could be a slip of the finger while programming, a large number of possible errors that could change the previously correct error, or as brought up before this could be a minor to prevent a bigger error (like if that stat gets too big it could overflow out of the space given to it and cause the game to crash).


    As for why we can't just pop in a copy of the game and take a look at the code, there is a difference between source code and compiled code. In this generation of gaming the common practice is to write in a programming language (source code), compile it into machine language (compiled code), and then usually have the machine language converted into assembly language (human readable, but very rudamentary) so that somebody can optimize the code and then convert that back into machine language.

    So what we see can't even be directly converted back to the source code due to the changes (even if there was a good way to do that anyway), and trying to track the effects of assembly language into the final product is a nightmare.
     
  19. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    So this means nothing, basically, and is only so the players can see how much stats are going up by?

    [​IMG]

    Screenshot Credit: Flying Omelette (CTRL + F for "Bebs"): http://www.flyingomelette.com/arc4/arc4oddities.html

    So could we say that every hit point number for Ganz and Volk (and Densimo if you have enough patience to get him to that level) from level 41+ is wrong? Like at level 41, was that negative five actually supposed to be a positive five? That would have made their hit points 427, and then level 42 would have made their hit points 432, and so on for however much hit points go up by at level 43 and onward.

    But what was the blankness for the hit point slot caused by in the level-up box?
     
  20. Amaury Legendary Hero

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,692
    Something I just thought of: In addition to the above, @Mixt, couldn't they have fixed the bug in that growth pattern of hit points by giving it an increase of 10 hit points at level 42?