decompiled FEZ.exe and found a heart room secret

  • Topic Archived
You're browsing the GameFAQs Message Boards as a guest. Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts.
  1. Boards
  2. Fez
  3. decompiled FEZ.exe and found a heart room secret

User Info: adampeltz

adampeltz
4 years ago#21
qbicfeet posted...
I can too confirm that breaking the heart cube on the 360 version breaks the game and gets the game stuck in loading limbo when you leave the game. I am going to try this on PC though, and have a walk around to see if I can find anything new post-input. The room Fractal (Totem room, contains the un-see-able concentric squares) feels particularly interesting.


Woops ... Looks like we broke the game. Lol


Maybe we really did "break their heart" into pieces by looking at a part of the game where shouldn't have been looking.
XBL gamertag: Peltz | Wii U NNID: Peltz-0
3DS Friend code: 1161-0129-0691.

User Info: qbicfeet

qbicfeet
4 years ago#22
Nothing of interest to be found in Fractal. No new ending, either.
PSN / GT / Steam - qbicfeet

User Info: samblye1

samblye1
4 years ago#23
I came across this while looking at the code myself last night, and as intrigued as I was, I was way too tired to try it and just ignored it. God damn, I should've known there was something up when there was something with the word 'reboot' going on after this code!

I guess it's time I beat fez again. I wonder if there was anything else added like stuff in the Fractal level and the concentric circles, cause that's highly possible.

User Info: Crocadillian

Crocadillian
4 years ago#24
Excellent find!

I kind of feel stupid, as using the artefacts themselves to input codes was never looked into before this. I guess they now have a use...

User Info: qbicfeet

qbicfeet
4 years ago#25
Okay, I have some more stuff to report on this:

As we already know, on a patched (1.1) Xbox 360 version, the game gets stuck in loading limbo after input. However...

...if you remove the patch (clear system cache, resets the version to 1.0), you can continue to play the game just fine. Interestingly enough, after I went back to the Temple of Love, the heart cube and fountain were still there (on the PC version the fountain disappears). I saved the game, exited out and updated the game (back to 1.1)...

...which prompted me with "your save file is corrupt".
I downgraded again and was able to load and play the game just fine, but as soon as I apply the patch the save file is considered corrupted.

I would like someone on the 360 with 209.4% completion THAT HAS YET TO DISINTEGRATE THE HEART CUBE to remove the patch, go to the temple of time, destroy the heart, go back to the temple after the reboot and take note whether the fountain and heart are still there or not. After that, upgrade to 1.1 and see if you can load the save file.

Edit: Same time post! woo!
PSN / GT / Steam - qbicfeet

User Info: Crocadillian

Crocadillian
4 years ago#26
DId a little more digging. Under the debug controls file, the Heart Reboot is assigned to a key as a test. The same is done for black hole states and cube collection stats. This might be evidence to support that the Heart Reboot changes or activates level elements that required testing...

User Info: mechacrashx2

mechacrashx2
4 years ago#27
So I've been looking through the source for the past hour (both of the game logic and the engine) and have found out a lot of the game's design.

First of all, the input codes for each room are storage inside the save data, which I'm currently in the process of decrypting. This will allow me to read any of the levels and find anything about them that we haven't already. Might take a while though, my C# writing skills are a bit rusty and I'm not really up to the challenge of rewriting it in my preferred language (C++).

Second, the "Temple of Love" and the heart disintegration are definitely a feature that they intended. It's too well built in to not be. It's also interesting as, unlike everything else, it has a "game wide input code" (the same as the QR code and the Achievement code). The difference here is that it first checks if you're inside the Temple of Love, then if you've already entered the codes, then if you're highlighting the right blocks before trying.

My theory for why this specific puzzle isn't stored in the level data is that it's extremely complex compared to the others, namely that it requires you to select the items in the menu and enter a code there, this doesn't really fit in with the current design of the menu, the code itself feels hacked in at the very least.

This means a few things:
1. There's likely nothing more to find regarding the skull and the tome, at least in input codes. I've looked around and can't find anything else that stands out for the menu, so I would assume this is the only case where something like this happens.
2. The input code of the black monolith (and any other room specific input code) is stored in the level data of which the format is partially understood, but not yet decrypted (working on it).
3. By doing things this way, we'll get no closer to determining _how_ to find these input codes in game / in the soundtrack. This is a hacky brute forced spoiler at the very best.

Anyway, just thought I'd contribute as I can. Anyone else looking through the code who's found something really interesting, give me a shout, I've pretty much skimmed the entire game logic and I'm looking into the engine now (for the data decryption). I guess we'll eventually have this game completed :P

User Info: qbicfeet

qbicfeet
4 years ago#28
Posting this here for people who don't want to dig themselves. This is from the save data structure.

---

public void CloneInto(SaveData d)
{
d.AchievementCheatCodeDone = this.AchievementCheatCodeDone;
d.AnyCodeDeciphered = this.AnyCodeDeciphered;
d.CanNewGamePlus = this.CanNewGamePlus;
d.CanOpenMap = this.CanOpenMap;
d.CollectedOwls = this.CollectedOwls;
d.CollectedParts = this.CollectedParts;
d.CreationTime = this.CreationTime;
d.CubeShards = this.CubeShards;
d.FezHidden = this.FezHidden;
d.Finished32 = this.Finished32;
d.Finished64 = this.Finished64;
d.GlobalWaterLevelModifier = this.GlobalWaterLevelModifier;
d.Ground = this.Ground;
d.HasDoneHeartReboot = this.HasDoneHeartReboot;
d.HasFPView = this.HasFPView;
d.HasHadMapHelp = this.HasHadMapHelp;
d.HasStereo3D = this.HasStereo3D;
d.IsNew = this.IsNew;
d.IsNewGamePlus = this.IsNewGamePlus;
d.Keys = this.Keys;
d.Level = this.Level;
d.MapCheatCodeDone = this.MapCheatCodeDone;
d.PiecesOfHeart = this.PiecesOfHeart;
d.PlayTime = this.PlayTime;
d.ScoreDirty = this.ScoreDirty;
d.ScriptingState = this.ScriptingState;
d.SecretCubes = this.SecretCubes;
d.SinceLastSaved = this.SinceLastSaved;
d.TimeOfDay = this.TimeOfDay;
d.View = this.View;
try
{
d.Artifacts.Clear();
d.Artifacts.AddRange((IEnumerable<ActorType>) this.Artifacts);
d.EarnedAchievements.Clear();
d.EarnedAchievements.AddRange((IEnumerable<string>) this.EarnedAchievements);
d.EarnedGamerPictures.Clear();
d.EarnedGamerPictures.AddRange((IEnumerable<string>) this.EarnedGamerPictures);
d.Maps.Clear();
d.Maps.AddRange((IEnumerable<string>) this.Maps);
d.UnlockedWarpDestinations.Clear();
d.UnlockedWarpDestinations.AddRange((IEnumerable<string>) this.UnlockedWarpDestinations);
d.OneTimeTutorials.Clear();
foreach (string key in this.OneTimeTutorials.Keys)
d.OneTimeTutorials.Add(key, this.OneTimeTutorials[key]);
foreach (string key in this.World.Keys)
{
if (!d.World.ContainsKey(key))
d.World.Add(key, new LevelSaveData());
this.World[key].CloneInto(d.World[key]);
}
foreach (string key in d.World.Keys)
{
if (!this.World.ContainsKey(key))
d.World.Remove(key);
}
}
catch (InvalidOperationException ex)
{
this.CloneInto(d);
}
}

---

"ScoreDirty" had me curious for a while, but it seems to be there to prevent hacked/exploited leaderboard scores from being uploaded.
---
PSN / GT / Steam - qbicfeet

User Info: mechacrashx2

mechacrashx2
4 years ago#29
qbicfeet posted...
Posting this here for people who don't want to dig themselves. This is from the save data structure.


The structure as is isn't really important, if you look in the FezEngine.dll, that's where you'll get the loading information (there's a full and a minimal load of levels, no doubt for situations where the graphics are maintained through different areas). That structure is simply the memory copy, the local data is what's important.

Look at FezEngine.Readers.LevelReader for the structure and types. The ContentTypeReader it derives from is a template that (I assume) helps read the data from the packages.

Currently playing the game so not really checking~

User Info: adampeltz

adampeltz
4 years ago#30
mechacrashx2 posted...
So I've been looking through the source for the past hour (both of the game logic and the engine) and have found out a lot of the game's design.

First of all, the input codes for each room are storage inside the save data, which I'm currently in the process of decrypting. This will allow me to read any of the levels and find anything about them that we haven't already. Might take a while though, my C# writing skills are a bit rusty and I'm not really up to the challenge of rewriting it in my preferred language (C++).

Second, the "Temple of Love" and the heart disintegration are definitely a feature that they intended. It's too well built in to not be. It's also interesting as, unlike everything else, it has a "game wide input code" (the same as the QR code and the Achievement code). The difference here is that it first checks if you're inside the Temple of Love, then if you've already entered the codes, then if you're highlighting the right blocks before trying.

My theory for why this specific puzzle isn't stored in the level data is that it's extremely complex compared to the others, namely that it requires you to select the items in the menu and enter a code there, this doesn't really fit in with the current design of the menu, the code itself feels hacked in at the very least.

This means a few things:
1. There's likely nothing more to find regarding the skull and the tome, at least in input codes. I've looked around and can't find anything else that stands out for the menu, so I would assume this is the only case where something like this happens.
2. The input code of the black monolith (and any other room specific input code) is stored in the level data of which the format is partially understood, but not yet decrypted (working on it).
3. By doing things this way, we'll get no closer to determining _how_ to find these input codes in game / in the soundtrack. This is a hacky brute forced spoiler at the very best.

Anyway, just thought I'd contribute as I can. Anyone else looking through the code who's found something really interesting, give me a shout, I've pretty much skimmed the entire game logic and I'm looking into the engine now (for the data decryption). I guess we'll eventually have this game completed :P



Thanks for this. I'm excited to hear more.
XBL gamertag: Peltz | Wii U NNID: Peltz-0
3DS Friend code: 1161-0129-0691.
  1. Boards
  2. Fez
  3. decompiled FEZ.exe and found a heart room secret

Report Message

Terms of Use Violations:

Etiquette Issues:

Notes (optional; required for "Other"):
Add user to Ignore List after reporting

Topic Sticky

You are not allowed to request a sticky.

  • Topic Archived