Jump to content

Altissimo

New Member
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Altissimo

  1. Thanks for your answers. I've made a little progress here as a result. However I've got some more follow up questions.

    Regarding the Pokémon section, your notes on the Dungeon Balance document say this:

    "The Pokemon section's entries are 0x0C bytes long for each pokemon, the entire entry for a floor is 0x2DF0 bytes long. The Pokemon in this table range from Bulbasaur, to an unused White Kyurem. Past that, there is room for the last "Pokemon", the Substitute, though for some reason its index number, D4 03, isn't listed. After that is FF FF FF FF FF FF FF FF FF FF FF FF signifying the end of the entire table entry."

    Based on this, and based on some investigation of the file with the help of a friend, it appears to be the case that every floor has a listing of all 600 or 700 whatever Pokémon that are in the game, and then assigns each mon a spawn weight and a level. If the mon has 0 as a spawn weight, it won't be included in the floor. Am I correct in my understanding?

    For example, given the dungeon_balance_15.bin file (the zip is in my previous post), I see that the second SIR0 file begins at 0x1FF0. According to your post, the Pokémon data is contained in the second SIR0 file. Starting at 0x5DD0 (offset of the entire file), there is a section where numbers beginning with 1 increment every 12 bytes. This is, to my understanding, where the index numbers for Pokémon begin, and to find the Pokémon that appear on the floor, you would have to look for any one of these 12-byte sequences where the first 2 bytes are not followed by a 0. Doing this, my friend has determined that the spawns and levels match those shown on Bulbapedia's Revelation Mountain page, which matches our independent finding that the dungeon ID given in the floor data section matches Revelation Mountain.

    At offset 0x8BC0 (again relative to the entire file) we have a string of 12 bytes consisting of FF, which according to your notes marks the end of the floor. Following that, the 12 byte sequences corresponding to a Pokémon entry repeat again, this time for the next floor.

     

    If this understanding is correct, I have 2 follow up questions.

    1) There are 44/45 or something FF x12 strings, which means data for that many floors. Revelation Mountain doesn't have that many floors. How can I tell where the real floors are? (The same goes for the first SIR0 file, which has like 80-something floors in this file.)

    2) The 12-byte sections that identify Pokémon indices, spawn weights, and levels are repeated between every span of FF x12. However, the very first entry, following the second SIR0 header in the file, contains more data than that, which is not repeated on each floor entry:

    • From 0x2000 to 0x4E7A (offsets relative to whole file), the data is entirely 0, punctuated with seeming 12-byte sequences of data.
    • From 0x4E80 to 0x5DCA, there appear to be sequences that can be broken down to 4-byte units (though I am unsure if the data they encode is limited to 4 bytes). The first byte appears to increment by 0x0C from one sequence to the next. The second byte appears to increment by 1 every ~0x16 bytes. The third and fourth bytes appear to always be 0.

     

    In your dungeon balance document, you write about this data:

    "Entries are 0x0B or 0x0C bytes long?

    0x00 - 0x03 = The Experience Yield. (Int32 in HxD. 2,147,483,647 or FFFFFF7F can fit the whole thing for example. Also tested in DreamNexus, the number was valid)
    0x04 - 0x05 = The Pokemon's HP Stat Value
    0x06 = The Pokemon's Attack Stat
    0x07 = The Pokemon's Special Attack Stat
    0x08 = The Pokemon's Defense Stat
    0x09 = The Pokemon Special Defense Stat
    0x0A = The Pokemon's Speed Stat
    0x0B = Unknown. Always 00."

     

    I'm sure that these entries (which are probably 0x0C in length, I'd guess) relate to the data sections I described above, but I need some clarification on exactly how. Is it the case that the 0x2000-0x4E7A section consists of 12-byte sections that contain stats for every pokemon, not identifying them by index number, but in the correct ordering of indices, and this is perhaps why the section is mostly 0's - stats are only provided for some Pokémon (those that appear in the dungeon)? If this is the case, are you aware of what the 0x4E80-0x5DCA section represents, by any chance? If I'm wrong, are you able to correct me as to how this data is organized?

     

    Thanks again.

  2. On 3/7/2024 at 4:59 PM, Noirfasui said:

    [snip]

    I've been on and off working on trying to compile Pokémon and item spawn rates for all the PMD games, largely for the recruitment guides I've made for GameFAQs, but more recently I also just want to compile all the spawn tables and put them into a consistent format on my website (undergoing offline revisions presently) with appropriate credit in the future, mostly to have them in one place. I was going to skip Super's spawns since they don't matter for recruitment, but there's been an uptick of interest in grabbing them in the PMD speedrun server, so I offered to look into it.

     

    I had a friend (StrikerX3, not sure if he has an account here, he did some work on SkyEditor at least) pull the dungeon files out of dungeon_balance.bin using dungeon_balance.ent, so now I've got a zip of 205 dungeon_balance files (attached in case anyone else wants to muck with them), and I was trying to reconcile your notes with what was in the files, but I've got a few questions I'd like some clarification on.

    • In your Super Mystery Dungeon Balance.txt doc, in the Pokemon section, you note that FF (times 12) signifies the end of the "entire table entry". Does this refer to the end of the floor, or the end of some sort of subsection (like the Pokemon data)?
    • Is the ordering of the data in this document (dungeon metadata, Pokemon, Traps) the same as the ordering in a dungeon's file, and is there data between the end of one section and the start of another?
    • Is this ordering consistently repeated for every floor in the dungeon within the same file? Is there data between the end of one floor's entry and the beginning of the next?
    • What is the offset at which the dungeon floor data starts after the file's header?
    • Do you know if item spawn information, for regular items, Monster Houses, or Kecleon shops, is contained within this file as well?

    If my questions might seem stupid, it's because I don't have a lot of experience in reading these filetypes; I did successfully pull Adventure Squad spawn & item data, but that used a format more like Sky's which had already been significantly documented.

    Thanks in advance and if you want to talk more directly, let me know; I've got a friend who's also helping with some of this and we could set up a Discord discussion or something.

    dungeon_balance.zip

×
×
  • Create New...