Heartbound

From Game Detectives Wiki
Jump to: navigation, search
Heartbound
Active since 2019-4-5
Heartbound poster 1mb.jpg
An ARG created around the game Heartbound.
Type Official
Creator Pirate Software
Discovered 2019-4-5

Main Page > List of Investigations > Heartbound

Heartbound is an ARG created around the game of the same name. The ARG was discovered on April 5th, 2019 which started by finding the trailhead page on any of the pages on Pirate Software's website for the game.

Chapter 1

Glowbringer

The first page to Chapter 1 can be found in the bottom-right corner of the About, Cast, and FAQ pages of the site. Clicking on the glitched crack will open the first page titled "Glowbringer".

The translation guide for the glyphs.

On the page, there are 2 sets of guardian glyphs. They translate to:

    This body is an illusion
    This mind is a collective

In the source code, a puzzle can be found. This sets the pattern for pages like this. The source code reads:

<div class="@Party | @....">
    <!-- GsvWzipmvhhVmxilzxsvh -->
</div>
<!-- No matter how bright their hearts seem. -->
<!-- Do not trust them. →

This can be split into 2 parts. The first part being the div class, the second being the 2 comments below. The comments don’t seem to relate to anything necessary to solve this part. The div class however is the puzzle. "@Party | @...." is the hint to solving the comment inside. Another word for a party, is a bash. Add @ before bash and you end up with Atbash which is the cipher used on the text in the comment. So throwing GsvWzipmvhhVmxilzxsvh through an atbash decoder will get TheDarknessEncroaches. If you add that phrase onto the end of the URL for this page, you will get this page which will lead players to the next part.

Darksider

The second page to Chapter 1, “Darksider”, features the same glyphs found in the first, translating them gives the following:

    We are closer to the source now
    Memory is the key to this mind

In the source code for the page, another puzzle can be found, and it reads:

<div class="Signal">
    <!-- *%%$*$%*%*$****$%%%$%%%$***$*$%***$%%%$%$**** -->
</div>
<!-- Keep your head down and keep moving. -->
<!-- This is the way it should be. -->

Just like the first page, it can be divided into 2 parts. The div class, containing the puzzle and a hint, and the 2 comments below that don’t offer help for this particular part. Taking a look at the div class, ”Signal”, which is a hint to the two different signal durations found in morse code. Looking at *%%$*$%*%*$****$%%%$%%%$***$*$%***$%%%$%$**** it’s obvious that the standardized characters have been switched, with “*” being a dot, “%” being a dash, and “$” acting as a space between sequences, switching the characters for the standardized ones we get .-- . -.-. .... --- --- ... . -... --- - ...., running that through a morse code decoder you will get WECHOOSEBOTH. Like the first puzzle, adding that to the end of the URL for this page, gets “Guardian”, which leads to the 3rd puzzle.

Guardian

This page follows the same pattern as the 2 before it.The glyphs translate to:

    This world is our undoing
    This world is our beginning

The source code this time reads:

<div class="13 + 64">
    <!-- ITuyEzylp3ECMxI2MKW5I29lMN -->
</div>
<!-- This will never work. -->
<!-- You are making a mistake. -->

As before, the 2 comments below the div don’t help with the puzzle. The hint for the puzzle is "13 + 64", and this is hinting towards using Rot13 and Base64 together. First, applying rot13 ,code>ITuyEzylp3ECMxI2MKW5I29lMN</code> and then putting it through a base64 decoder. The output will be TheFirstOfEveryWord. Once again, if adding that to the end of the URL will lead you to the next page.

The Virtue

“The Virtue”, unlike the other pages, doesn’t feature an image but instead is completely black. This page’s source code reads:

<div class="Have">
    <!-- 22NBK4456824048 -->
    <!--  6*;48†5(7 -->
</div>
<!-- Will you listen to me now? →

This time the div class contains 3 puzzles that result in one phrase, ”Have” is the first one and it’s exactly what it says, so the first part of the word is Have, taking a look at the second puzzle, 22NBK4456824048, they can be recognized as MGRS coordinates, which is the geocoordinate standard used by NATO militaries for locating points on Earth, searching them on Google Maps takes you to “Patience”, in French Guiana, “Patience” being the solution to the second puzzle we get the second part of the word, making it HavePatience, the last puzzle 6*;48†5(7, due to the use of “†” it was identified as the Gold-Bug cipher, which was created by Edgar Allan Poe and featured in the short story by the same name, running the encrypted text through a decoder you will get InTheDark, this concludes the set of puzzles making the word HavePatienceInTheDark. Adding that to the end of the current URL will take you to the last page of Chapter 1, “Don’t Hit That Button”.

Don’t Hit That Button

This is the final page for Chapter 1. The source code includes a puzzle again along with 2 more comments:

<div class="25615185 235 3151420914215>
    <!-- 8592 8592 8593 8595 8594 8595 8595 8595 8592 8594 8594 8593 8593 -->
</div>
<!-- I had hope for this one. -->
<!-- Time to start again. -->

This time, the hint isn’t as straightforward. The hint is a letter-number cipher and if breaking it up gets 2 5 6 15 18 5 / 23 5 / 3 15 14 20 9 14 21 5. This then decodes into Before we Continue which is a hint for what to do with the next part.

The comment in the div shows some HTML character entities, which when decoded display a sequence of arrows: ← ← ↑ ↓ → ↓ ↓ ↓ ← → → ↑ ↑ .

Chapter 2

See me Say me

The achievement gained after inputting the code in the game.

Using the code given at the end of Chapter 1 mixed with the hint leads players to input the code when first launching the game before pressing the continue button. Once the code has been successfully inputted, a faint laughter will be heard and the player will gain an achievement (steam version only) titled “Laughing Man”. After this happens, all the guardian glyphs that appear ingame will be translated so you can read them, as well as the game dropping a new file into the save directory named SeeMeSayMe.thor.

Save folder location:

Windows: %localappdata%\Heartbound
Linux: ~/.config/Heartbound
Mac: ~/Library/ApplicationSupport/com.piratesoftware.heartbound

Opening this file with a text editor will show a huge string of characters.

The “==” at the end gives it away that it is base64 encoded, but running it through a base64 to text decoder will result in garble text. Instead, a PNG header can be found when looking at the top. With this new info, running the code through a base64 to image decoder (as opposed to text), yields this image:

The image after decryption.

This puzzle is similar to another one made by Jason “Thor” Hall (The game director and founder of Pirate Studios and the person behind this ARG) in 2015, called “Play Rude”. The name of the puzzle itself is a reference to the Playfair Cipher, but this one has a couple of twists, it features 4 tables and the encrypted text is in clusters with repeated letters. Taking a look at the encrypted text, it was found that the letters repeat 4 times at max, this was used to quickly deduce that the number of times a letter repeats was a indication to what table to use out of the 4 available. Because of this, the coded text, NNIII - UUUMMM - SSQQ - VVVVNNNN - YSSSS - QBBB - TIII - TTTLLL - YYXXXX was translated to DI - AN - RF - KL - SU - IE- DN - EC - RE, reading the first letter of each grouping, then the second one or writing the sequence vertically like so:

DI
AN
RF
KL
SU
IE
DN
EC
RE

Will result in the string Darksider Influence, like in Chapter 1, putting this string right at the end of the HeartBound URL will give you a new page, in this case it’s called “Pact”.

Pact

This page is the first puzzle page of Chapter 2 and, like Chapter 1, taking a look source code reveals this message:

<!-- Phase 2 - Pact -->
<div class="NotMyName">
   <!-- What HE calls me... -->
</div>
<!-- Can you feel it...? -->
<!-- That growing power... -->
<!-- Like static in your veins... -->
<!-- Reach out... -->
<!-- Take it... -->

Here the puzzle consists of ”NotMyName” and What HE calls me…, with a bit of knowledge of the game’s story progression and using a part of the URL, Darksider Influence, as a hint, it was discovered that “HE” refers to a character ingame named Binder and “NotMyName” is The Artifact referencing to itself because the first time the player encounters Dark Lore is when the main character, Lore, first encounters The Artifact. Inputting TheArtifact at the end of the page’s URL will get you the next puzzle, Why are you here, usurper...?.

Why are you here, usurper...?

Looking at the source code for this page, it will read:

<!-- A child... in this prison? -->
<!-- Waking me from my slumber... -->
<div class="Why are you here, usurper...?" -->
    <!-- TheyDancin.png -->

Here the puzzle consists of the mysterious file, TheyDancin.png - the first thing to do is to find it. Having a look at the game’s files turns up with nothing in return, but taking a deeper look at the code it was found that the website’s assets are stored in URLs of similar nature to:

http://www.gopiratesoftware.com/games/Heartbound/assets/images/Artifact_1.png (example from the same page this puzzle is found in)

Following the URL format, this image with drawings of dancing men was found, it was assumed this was text encrypted with the Dancing Men Cipher and the encrypted text was translated to BinderSentMe, adding that to the end of the URL will lead to the “What is it you want then...?” page.

What is it you want then...?

Here, the source code reads:

<!-- You pitiful creature of flesh... -->
<!-- Doing the bidding of an old man... -->
 
<div class="What is it you want then...?">
    <!-- +4 | +2 | +0 | -2 | -4 -->
    <!-- 18 | 07 | 05 | 02 | 16 -->
    <!-- 19 | 21 | 01 | 20 | 01 -->
    <!-- XX | 10 | 09 | 11 | XX -->
</div>

Taking a look at the 5x4, the first line features +’s and -’s, this will be used later to decode it, while the other 3 contain various numbers but none go over 26, making it safe to assume that the numbers are supposed to be translated to letters, but writing them as letters as they are will result in a string of random letters because the numbers are still encrypted, to decrypt them we go back to the first line, +4 | +2 | +0 | -2 | -4, this was used to encrypt the numbers in the respective columns, so by switching the signals from + to - and vice versa you get what you need to decrypt the numbers, -4 | -2 | +0 | +2 | +4, applying this to the respective columns, so 18-4 is 14 and so on will give a new grid:

14 | 05 | 05 | 04 | 20
15 | 19 | 01 | 22 | 05
XX | 08 | 09 | 13 | XX

Rewriting this new grid as letters will result in the text NeedToSaveHim, where “XX” are nothing, adding this to the end of the current URL will result in the page “Who will benefit from this...?”.

Who will benefit from this...?

The source code of this page reads:

<!-- To save him...? -->
<!-- He owns these mistakes... -->

<div class="Who will benefit from this...?">
  <!-- 853396807703048194 -->
  <!-- HearMe.Thor -->

Looking at the number, it can be determined that it is very similar to a Tweet ID from Twitter. Inputting the number into a twitter url reveals this image.

Looking at the image, some white pixels can be seen on the dog's nose. Zooming in shows a pattern of pixels.

The pixels are formed in 8 groups, with every 2 groups having a clear space between another 2 groups. If you count the number of pixels in every 2 groups, you get 23, 9, 12, 12. Using the letter numbers cipher, this gives the output will.


Secondly, looking at the Thor file, if it is put through a spectrometer, then the word Both can be seen.

Putting both words together gives BothWill, and this can be added to the end of the url to give the next puzzle "You will help me first."

You will help me first.

This page's source code reads:

<!-- If that is your true desire... -->
<!-- I will help you... -->

<div class="You will help me first.">
  <!-- ThatGuy + ThatOtherGuy-->
  <!-- XpnwHfZolKvtp -->

ThatGuy and ThatOtherGuy can be appended to get 2 new urls. ThatGuy gives a picture of Binder, while ThatOtherGuy gives a picture of Baron.

Using the vigenere cipher with the key BinderBaron on XpnwHfZolKvtp gives WhatDoYouWish.

This can be appended to give the next puzzle, Do you agree?

Do you agree?

The source code reads:

<!-- To leave this place... -->
<!-- Free me from this prison... -->

<div class="Do you agree...?">
  <!-- Up each step to the Theatre of Pompey. -->
  <!-- CPPWVFIAILMPBGSS -->

The "Theatre Of Pompey" line is a reference to the place where Julius Caesar was assassinated, which infers that a caesar cipher must be used. However, a normal caesar cipher does not give a reasonable output.

"Up the step" implies that each character must be shifted by a different amount, with the first character being shifted by 1, the 2nd character being shifted by 2, and so on. Doing this gives the output of ContractAccepted. As before, this is appended to get the next puzzle, Strings.

Strings

The source code reads:

<!-- The contract has been sealed. -->
<!-- Leave me alone while I prepare. -->
<!-- While I pull the necessary... strings. -->

"pull the necessary... strings" implies an instrument is being played. However, appending "strings.wav" to the usual url will give a 404 error. Instead, by searching through the Heartbound game files, a file called STRINGS.wav can be found.

In it, clear DTMF notes can be heard. Decoding these gives 3 444 2 555 33 3 444 66. Decoding this using a phone keypad cipher gives DIALEDIN.

This can then replace "DARKSIDERINFLUENCE" to give a new url and a new Chapter: Breakdown.