6

In Hollow Knight, do the monster kills you do before you get Hunter's journal count to the required number of kills to unlock said enemy's entry?

7

Yes they do, although it's unclear to me from which point on exactly. Looking at the disassembly and memory search of the linear section where the list of all enemy kills is stored during runtime shows a clear picture. Here is an small excerpt (there seems to be an unbelievable amount of different monsters in this lovely game) of this memory section on my OSX running the game:

rw- 0x1868C1800 0
rw- 0x1868C1808 0
rw- 0x1868C1810 15
rw- 0x1868C1818 0
rw- 0x1868C1820 0
rw- 0x1868C1828 0
rw- 0x1868C1830 18
rw- 0x1868C1838 1
rw- 0x1868C1840 0
rw- 0x1868C1848 15
rw- 0x1868C1850 0
rw- 0x1868C1858 0
rw- 0x1868C1860 0
rw- 0x1868C1868 0
rw- 0x1868C1870 0
rw- 0x1868C1878 3
rw- 0x1868C1880 20
rw- 0x1868C1888 0
rw- 0x1868C1890 0
rw- 0x1868C1898 10
rw- 0x1868C18A0 17
rw- 0x1868C18A8 1
rw- 0x1868C18B0 20
rw- 0x1868C18B8 0
rw- 0x1868C18C0 35
rw- 0x1868C18C8 10
rw- 0x1868C18D0 0
rw- 0x1868C18D8 0
rw- 0x1868C18E0 10
rw- 0x1868C18E8 10
rw- 0x1868C18F0 0
rw- 0x1868C18F8 1
rw- 0x1868C1900 0

As you can see I haven't really slaughtered all enemies yet, let alone found all foes (as the list is linear in the stack with 8 byte jumps per enemy and I can look up the byte offset from a known kill count, in my current game for example I have no corresponding monster entry in the game UI for the count of 0x1868C18C0, while I do have one for 0x1868C18B8 and 0x1868C18C8 showing up right after each other). Looking at the disassembly of the code-path while executed, the best I could come up with is the following (pseudo code):

class Enemy {
  Enemy e          { uponInstantiation := Game.generateObject() }
  int maxKillCount { uponInstantiation :=    15 }
  int curKillCount { uponInstantiation :=     0 }
  boolean inUIList { uponInstantiation := false }

  function onEnemyDies() {
    e.incKillCount()
    if (Game.getPlayer().hasHuntersJournal()) {
      if (!e.inUIList) {
        e.inUIList = true
      }
      if (e.curKillCount < e.maxKillCount) {
        e.showEnemyInUI(e.maxKillCount - e.curKillCount)
      } else {
        e.showEnemyTextInUIAfterKillCountEqualsMax()
      }
    }
  }

  function incKillCount() {
    e.curKillCount < e.maxKillCount ? e.curKillCount++ : e.maxKillCount;
  }
}

Judging from the first and last entry in my UI list of monsters, there is a clean 8 byte jump span of 132 entries from lowest found kill count in the stack to the highest one, and I have barely discovered 100 of the monsters in my current state of the game. I'm really looking forward to discovering more ;).

  • 1
    Wow, that's almost an overkill :). I've actually since then reasoned that they must count because there is one boss encounter which you don't really meet again but you still get his entry in the journal, as well as I had some enemies which I have farmed for a short moment when I got the journal first. Still, good job :) – Maurycy May 12 '17 at 8:54
  • I waited until very late in the game (post ending) to go back and collect the Hunter's Journal, and all my kills throughout the game are already recorded. So they're recorded whether you have the Journal or not, and having the item simply allows you to view the record. – DarthFennec Aug 21 at 21:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.