DCFFVII Research Thread

This whole venture began with the Omega- and G Reports. Long ago I had found addresses for changing the reports currently in the dropdown menu but I couldn't make sense of the values.

Upon revisiting the Omega Reports address, 2050DD4C, I found that each respective bit in this single-byte address sets each respective Omega Report to On or Off. I knew then the 0th bit was responsible for Omega Report #1, the 1st bit was responsible for Omega Report #2 and so on. The mystery though was that the game kept changing its mind about whether a bit value of 0- or a bit value of 1 meant that the report was collected and available in the dropdown menu.

Tests revealed that the game would randomly decide the "meaning" of each bit every time you returned to the Dirge of Cerberus logo-reveal prior to the start menu. Still meant though that I had no way of knowing beforehand which value of 2050DD4C meant that, for example, all eight Omega Reports had been collected. It could be any value in- and between 0 and 255.


A quick look into the assembler revealed a particular address that 2050DD4C liked to connect with: 2046F834. Observing the changing values then revealed to me what was going on. These two address values were performing an Exclusive Or operation to yield the final, actual result.

[2050DD4C] XOR [2046F834] = Omega Reports collected

Say that you boot up the game and get to the start screen. You observe that the value of 2050DD4C is 249. The value 2046F834 is also 249.

249 XOR 249 = 0

No Omega Reports have been collected. This makes sense that the default value before loading any gameplay would be that no reports are in your inventory. So you then load a chapter checkpoint, for example one where the first six reports have been collected. The value of 2050DD4C gets changed to 198 but the value of 2046F834 remains 249 so long as you don't return to the Dirge of Cerberus logo-reveal.

198 XOR 249 = 63

63 in binary is 00111111 (zeros added to match the number of bits in a byte). The value makes sense, given what we established earlier about which bit is responsible for which report. The bit to the most-right is the one I referred to as the 0th bit.

Code:
00000001 = Omega Report #1 Collected
00000010 = Omega Report #2 Collected
00000100 = Omega Report #3 Collected
00001000 = Omega Report #4 Collected
00010000 = Omega Report #5 Collected
00100000 = Omega Report #6 Collected
01000000 = Omega Report #7 Collected
10000000 = Omega Report #8 Collected
11111111 = All Omega Reports Collected

With this knowledge you can easily adjust which Omega Reports are present. In order to bypass having to make XOR calculations on my own I simply set the 2046F834 value to 0. This works because A XOR 0 = A. Subsequently I can look at address 2050DD4C, set it to 255 and instantly have all Omega Reports in the dropdown menu.


Zooming out at the whole area of 64 address flags, these are the memory regions in which they are placed in DCFFVII International.
Flag address values that change with gameplay: 2050DD20 - 2050DD5F
Flag address values that don't change with gameplay: 2046F808 - 2046F847

Random values are assigned to each of the 64 addresses in 2046F808 - 2046F847 whenever you return to the Dirge of Cerberus logo-reveal.

I may dub these areas the "64 Static Global Flag Addresses" due to how these addresses aren't moved about in memory and how they act in conjunction with more local variables like the game zone flags.


There is actually a third memory region that shows these 64 "flag addresses" yet again: 204B2900 - 204B293F

These addresses actually show the results that you get after the Exclusive Or operations. The downside is that the values are only updated as you load a chapter checkpoint or transition to a new checkpoint. So yes, you can use the address 204B292C (contained in the aforementioned region) to change the number of Omega Reports in your inventory, but you will only spot the result after reloading the zone or transitioning to a new checkpoint. It is much more useful to observe the 2050DD20 - 2050DD5F region because there I can observe changes in the game as they happen LIVE. Far easier to figure out the functions of each address that way.



This whole business with XOR operations to get the final result is not exclusive to the 64 Static Global Flag Addresses. The address I used to unlock hidden menu maps, such as those for the online Deepground lobby, worked in just the same way. Back then though the address values made no sense to me because I didn't know about the XOR operation that was happening.

Menu map address value that changes with gameplay: 20A06237
Menu map address value that doesn't change with gameplay: 2047DE2F

[20A06237] XOR [2047DE2F] = Current Menu Map

Is there an equivalent address that shows the final menu map number, without all that XORing business? Yes: Address 204C2ABC. But it only updates every time you open up the actual menu map. In comparison, 20A06237 updates immediately as the player enters an area that calls for a different menu map compared to earlier.
 
Last edited:
Nothing important but it always amuses me when I find yet another "new" online mode screenshot to add to the archive.

DCFF7_Fri_Sep_29_23_01_49.jpg


- Blog entry

Dozens of tries with various search terms usually doesn't yield anything unfamiliar. But 1 out of 50 times the google algorithms decide to pop up a surprise. In this case, the blog entry from summer 2007 is the blog's only post about the DCFFVII multiplayer. The screenshot was taken on 2006 September 29, the very last day of the online mode.

Speaking of algorithms, I am relatively close to solving something important in Dirge of Cerberus but in order to make use of it I need to get back into programming. The task is not necessarily of overwhelming difficulty but it's my inability to concentrate that's putting a wrench in the machinery.

Somebody whip me into shape. I could be a few weeks away from a breakthrough if I just stopped dilly-dallying. :wacky:
 
This is off to a good start.

Just a little less than eleven months ago I solved the so-called TTTT-encryption. Back then I couldn't write a single line of programming so I had no way of making practical use of this algorithm. Now I know enough C++ to actually write a program that runs this algorithm and thusly decrypts a TTTT file. Got it working for the first time yesterday and let's just say I felt great! *blasts victory music through speakers*

Some new revelations for me this week:
- There are actually multiple types of TTTT-encryptions (henceforth referred to as T4-encryptions), depending on the T4 file you are dealing with. The decryption starts the same but then deviates halfway through. I've spent most of today solving another T4 encryption and I'm almost finished.

- The encryption I looked at eleven months ago was solved with almost 100% accuracy. The only thing I missed were three cases of the Carry Flag being used. In other words: overflow leading to a 1 being carried into subsequent calculations.

- The header isn't always changed from TTTT to SSSS immediately after decryption. After a T4 is decrypted, its pointer values may change to (presumably) reflect the different areas in memory that it retrieves resources from. It is somewhere at this stage when the T4 file is "updated" that the header is changed to SSSS, perhaps as a signal that "yes, the update is complete". So yes, simply decrypting a lone T4 file isn't the end of the story.



So what is a T4 file? For one it holds the Text String IDs used to reference different text entries. For example the T4 file for the ending credits of the online mode contain strings like these:
ID_CREDIT_01
ID_CREDIT_02
ID_CREDIT_03
ID_CREDIT_04
...and so on. Each ID_CREDIT references a set of staff member titles- and names.

But it also contains strings referencing background music, particle effects and multiple other variable names for various features.

bgm_350
FEDEF_A0313_MULTI_END01_LEAF_0
ev2090
getstate
isdebugmode
enableSkip
...etc.
An aside: "LEAF" is associated with particle effects and it is in fact through a "LEAF" that the Protomateria is displayed in-game rather than through a standard 3D model object. It appears that the standard/"normal" 3D models for the Protomateria, g006 and g007, are unused (or used so rarely that I haven't found them yet in normal gameplay).


One common type of T4 file is one devoted to the menu map. Say that you load up Chapter 2 in Dirge of Cerberus and gameplay begins. The T4 file for the menu map is still encrypted at this stage. One particular section of the T4 file, if looked at in RAM, would look like this if you tried to view it as text:

eÑ.Rý%ž Jq.äæß:‚nqIícÄà…h...÷6Ø.Déég0-'Ý|.!34ç^†éý_¼Ý.Þl°½ÒF¼Ã.‡Yò\QÁ”HÐYfagÝ.Ä"~qÕrV^ýð‹¿ç,ô ¡Øåz.jS.¦ýꇮˆ½°²œ‹-.¨.D쨣0.@/êJ)OÆèRÏ×÷¨ô”Ö.E €¬ä³Qo¨.0.èG¥è2y_ß: @ìʈ.ZœBhp..né.ÒPtjì.*.ˆ.‡V.úT¹Cs3.rªà&—ÿ.÷.°}Î.ç..^äߺ¯ÅX¼ë.Å›Nð×ñm$x´%.º±_7;K¸Â.—Ð.á.~9‡Ñ.y<c.º.È.b..ˇ.uø..ï.$.œP.A2æíäHmØ1S&ã.$˜!+.ÅZ¢./®ï.®Ž$ïÖ@í"«Jžw'ù.×*¼®>.š vCT!‰ÓF”@CCp¾Í;ç...°-HCâE .¶üb]hM-CÝ.‘N¢vÁ..‰P?´ÄØ·À¯¿È¼æ¡îtY0á>.ûÑ-ÖsŠŒ‡€ƒÝé+0ÏÐ&ŠÑ¹*bh.4Q9%..÷)..Ð.ú4ŒRä.ª¤=.Øá.AÞ.:þMM¸Ó.Y../7üR§Þi¡öL

But once you enter the menu map, the T4 file gets decrypted and now the same area in memory will have turned into this:
<init>..()V..Code..LineNumberTable..gmap_exec..SourceFile..mm_z130.java..ID_PLACE_0..ID_MISSION_0..ID_SAVE_0..ID_PLACE_1..ID_MISSION_1..ID_SAVE_1..ID_PLACE_2..ID_MISSION_2..ID_SAVE_2..ID_PLACE_3..ID_MISSION_3..ID_SAVE_3..mm_z130..java/lang/Object..fake/KerberosGlobalMap..getZoneFlag..(I)I..setMap2..(IFFF)V..setMapString..(Ljava/lang/String; )V..setMapMissionString..setQuickSaveString..setPlayerPosition..(FFF)V..setPlayerDirection..(I)V..addMapMarker..(IFF)V....

Apart from menu maps, T4 files typically appear to code for cutscenes, general zone data (including juicy things like the online DG lobby) and Extra Features menus.


The TTTT files I have extracted from Dirge of Cerberus (by using Noesis) are naturally in their encrypted state. Thanks to the code I've written (and the code I am going to write once more encryptions are solved) I can unlock T4 data that normally isn't shown to me because I can't visit those areas in the game. This is how I am able to get these string variable references from one T4 file used for the Deepground lobby:

errorhandle
(Lfake/KerberosZone; )V
changeServer
select_main
vl_main
(Z)V
br_main
main
([Ljava/lang/String; )V
fake/KerberosWindow
fake/KerberosZone
fake/KerberosCamera
fake/KerberosActor
ID_LOBBY_OVL_DAME
bgm_069
csj_059
o099
c_tf_0
ID_NO_USE
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ccccccccccccccccccccccccccccccccccccccc
p_Vin
get rot
ID_BT_END_ERR
bgm_008
mrst0000
ev2046
java/lang/Object
fake/KerberosNetLobby
isError
()Z
exit
(I)V
fake/KerberosEvent
getflag
(I)B
fake/KerberosEffect
fadeout
(FII)V
set_usercontrol
setflag
(IB)V
lobby_init
()I
open
(IIIIILjava/lang/String; )V
getstate
sleep
close
prg_006
enterLobby
ev2046_sub
act_vlinit
(Lfake/KerberosZone;Lfake/KerberosActor;Lfake/KerberosCamera; )V
fake/KerberosSound
loadSoundEffectBySituationId
(I)I
wait
setNameVisible
playMusic3
(Ljava/lang/String;II)V
playBgSound
(Ljava/lang/String;I)V
load
(Ljava/lang/String;I)I
setmotion
(Ljava/lang/String;ZF)V
getvalue
(II)I
cmake_camera
(ILfake/KerberosCamera; )V
print
(Ljava/lang/String; )V
setdebugvalue
active
setVisible
get_charamake
act_select
(Lfake/KerberosActor; )V
changeMusicVol
(II)V
voice_load
server_selected
(Lfake/KerberosActor;II)V
sv_ucon_ctrl
changeSoundEffectVol
setbattlename
battle
stopMusic
enableBattleEffect
event
getOnlineBgm
fake/base/KerberosMath
random
()F
quest_scr005
changeBgmStr
(II)Ljava/lang/String;
getLobbyInitPos
()Lfake/base/KerberosVector;
getLobbyInitRot
getbattleactor
setdir
fake/base/KerberosVector
setpos
(Lfake/base/KerberosVector; )V
isNovicePlayer
setVisibleByGroupForOnline

(IZ)V
loadSoundEffectEx
loadStringData
quest_scr003
ev
(Lfake/KerberosZone;Lfake/KerberosActor;I)V
(III)I
quest
handle_event

The final section becomes partially gibberish however because the encryption algorithm changes unexpectedly. Hopefully by solving the encryptions for other T4 files I can figure this one out and get the correct symbols printed.

freEßvsercontral
eNôdrLobbyFitst
Fácein
pacuetcoNôsol
minotErroRÈbndle
enoble3dòdnder
stgrt_oNìfnebattle>.getpì`yerRoundCndStAôf
warp
gsfadEéoout
entcrBriEænngRoom
lesetcïrtume
vlYbrf. ¨Ofake/Kerlerosaãuor;Lfake)KerbEòpsCamera;2fake.ËdrberosZohe; )V €ptartsend~ackeT€.closeall
joiNÔbam
leav{Team €meaveBrie`ingROïn
exitBrgefinGÒnom
addCnatLoG€.get_onliPezonE€.(Z)Lfake)KerbEòlsZone;
gsNovIãdRoom
vlYbrf2 €/Lfake/KelberoSÁbtor;Lfakc/KerBåqosZone; )X
seTÔhmer
exir_onlIî.battle
’oadcHò^bzd
(Ljgva/lAîd/String;'I
rEðnrtQuestEpentDOîb



Why the sudden motivation to revisit the T4 files? Because I'm making progress with understanding the so-called "Text Preview Files". I have determined with certainty that the Text Preview Files generate a map which is then used by the game's decompressor to pick out each individual letter that forms the game's actual text entries.

The algorithm to generate this map is quite similar to the first T4 encryption I looked at. Writing the code for this is only the first step. Beyond this point is new territory: Understanding the decompression algorithm, which by its very nature will be quite different from the single byte-to-byte adventures I've had up until this point.

If I can figure out the decompression algorithm then I should be able to extract the game's text at long last, even without having to visit the game area. Here's hoping this goal is achieved sooner rather than later.
 
Just your reminder that, yes, Gackt still exists and he still performs Redemption. :monster:

See 07:10 - 11:14
- [TV] GACKT - Live at Hong-Kong Asian Pop Festival (2019.03.22)


I am making progress with reverse engineering the compression algorithm for DCFFVII's text. The algorithm is many times more complex than anything else I've dealt with so far, ergo why I expect progress to continue being slow. Not much else to do but to continue pressing on, driven by the Longing of uncovering this game's secrets.
 
I need to make a choice on whether to continue researching the decompression algorithm for the game's text the way I've been doing it thus far. There are just MASSIVE amounts of assembly code to read. Even with my improving skills at reading assembly I am questioning what is reasonable or not. There may be ways of being more effective in this reverse engineering process that I'm simply not aware of. Perhaps it's better to take a break?

Whatever the case, I'll share a few of the facts I've uncovered thus far, using the menu text for Chapter 2 (The Wastelands) as the main example. This example is chosen because it is one of the smallest Text Preview Files (TPF).

So this is what the TPF for the Chapter 2 menu text looks like in a simple hex editor:
S9TDIYr.png

The section at the end is why I call these the "Text Preview" files. Funny thing is that this text displayed here is not strictly relevant to the algorithm I want to solve (read further below to learn why).

The decompression of all this data into a list of text entries is a multi-step process. Firstly, ALL the text entries are spawned from the TPF, used and unused entries alike.

Code:
String ID - Actual Text

ID_PLACE_0          Wastelands
ID_PLACE_1          Wastelands
ID_PLACE_2          Wastelands
ID_PLACE_3          Wastelands
ID_MISSION_0        Travel through the wastelands to Edge!
ID_MISSION_1        Eliminate the Guard Hounds!
ID_MISSION_2        Travel through the wastelands to Edge!
ID_MISSION_3        Defeat the Pegasus Riders!
ID_SAVE_0           1:Tempsave Data:Wastelands
ID_SAVE_1           1:Tempsave Data:Wastelands
ID_SAVE_2           1:Tempsave Data:Wastelands
ID_SAVE_3           1:Tempsave Data:Wastelands
ID_STR_NONE
The final text entry is indeed empty, with a matching STRing ID name.

After the full text has been printed, the game will then pick out the text entries that will actually be used for the menus. This is when the actual Text Preview section of the TPF is used: The game will cycle through each text entry, changing the text displayed in the preview section as it goes along.

Ergo, the preview text helps me pick out the correct game files but it doesn't help me solve the primary decompression algorithm. The decompression has already happened at that point, plus the preview section only cycles through USED text. I want ALL the text!


As mentioned in a previous post, the TPF is run through a T4-esque decryption algorithm. This creates a "map" of sorts: A guide for the rest of the algorithm to follow. The T4-esque decryption does not touch the bytes at the end devoted to the Text Preview.


I wrote a program that can, at least, decrypt fairly short Text Preview files. I've come to refer to the map that's created as a "String Guide", though I really should pick a better name.

8SDsPn8.png

So one mess is replaced with a different mess. But wait! Notice how the first two rows of bytes, and the final row, doesn't look like a mess. There is data to be read from here. In the first row, the hex value 0D (13 in decimal) tells us the total number of text entries. If you go back to the text table from earlier, you'll see that the number of entries count to 13 if you include the empty one.

The other offsets show us the sizes of related files and the sizes of certain sections. Some I've figured out, some I haven't.

Here is the String Guide again, but now marked with two boxes.

JOhAEFG.png

The offsets in the blue box is involved in a massive, highly complex algorithm to generate what I call "The Letter Pile". This is the part that has me questioning if I should leave this reverse-engineering challenge behind. The algorithm is incredibly long-winded, in other words there is so much assembly code that it'd take me months to comb over.

View the Letter Pile here

The green box contain the values used in an algorithm that picks out specific letters from the Letter Pile. The final result will look familiar:

P2FN27J.png

I'm guessing that the non-text values in the first section are used as guides for the remaining process, like when the game picks out which text entries to actually use for the menu.

I have almost completely figured out the algorithm for the "green box" section and I'm confident in my ability to, within a reasonable timeframe, learn the rest and write a program for it. Of course, without understanding how the Letter Pile is formed then all I could do with this program is (after a lot of effort) print text that the game already prints for me while I'm playing the game. I need to also understand the "blue box" algorithm if I am to decompress Text Preview Files that the final game never accesses.


Just for funsies, here are the offsets from the Letter Pile that together form the first instance of the text entry "Wastelands".
 

Makoeyes987

Listen closely, there is meaning in my words.
AKA
Smooth Criminal
Well what are you looking for in the raw game text? Cut content? Hidden data that may have been meant to be implemented but was removed close to production?

This is a massive undertaking you're doing so a break would be wise. Going through that much code is going to take a long time, and it may only yield very little new information. Don't want you to burn out doing this, you've already done a lot to de-encrypt a PS2 game, which isn't easy. Are you hoping to find more secrets about the multiplayer mode that may have been left behind in the Western release?
 
@Makoeyes987
Indeed, I'm hoping to learn more about the multiplayer mode. I already know there's a good chance that a big treasure trove awaits. The Text Preview Files for the areas of the online mode tease us with dialogue that we can't find anywhere else.

Worst-case scenario these files are mostly nonsense, but in this example from the Deepground hub menu text I was able to find more text than what existed in the preview. The preview only showed us "- Sector 4.Deepground - Sector 1.Deepground - S" but I was able to confirm these text entries in-game:
Code:
Deepground - Sector 1
Deepground - Sector 2
Deepground - Sector 3
Deepground - Sector 4
Briefing Room
Thus giving me hope that there are indeed secrets beneath the water's surface.

One frustrating aspect is that I know a Russian team already reverse engineered the text encryption/compression. They made a mod of Dirge of Cerberus with Russian text. However I haven't found any of their documentation online or managed to get in touch with them. I say I'm frustrated but I also kind of don't want them to share their secrets because I want to figure out this mystery on my own. :wacky:

Regardless of subject matter it is my goal to always become better at reverse engineering software. If the topic wasn't Dirge of Cerberus it would be something else. But if I'm ever to crack the text compression I need to learn new tricks and git gud.
 
Holy moogles this was amusing XD

I took a look back at this old post from when I confirmed all three variations of Cait Sith's line on the Shera.

When looking at the RAM snapshot for the umpteenth time, something suddenly struck me.

JP3M2Vo.png


I looked at the area that I've marked here in blue and I thought "Wait, is that...Japanese text?!?!"

I copied the bytes, pasted them into a hex editor, viewed the file in Notepad++ with Shift-JIS character encoding on and unveiled this:

スクリプトより削除されていました​
Google translate:​
It was removed from the script

...WHAT WAS REMOVED FROM THE SCRIPT?! :wacky:

I just love how this piece of text was staring me in the face all this time and I didn't know it!
 
A cursory look at text in RAM shows that "スクリプトより削除されていました" appears numerous times in the English script. The corresponding text entry in the Japanese files do contain stuff but so far it is always mundane content.

What was removed in the example from the previous post? Just Vincent's silent reaction to Reeve not knowing who his benefactor is.
Vincent: ?
This reaction is in fact unused in the Japanese game.

In many cases textual expressions of silence, sighing, laughing etc may be included in the Japanese game but excluded in the English game. These text entries in the English game may be deleted or replaced with "スクリプトより削除されていました".

Other times, like in the previous example, is omitted even in the JP game. Another example is from Weiss's transmission viewed from the Shadowfox in Chapter 2.
くっ……ははっ、
ははははははははははははははは!!
Weiss's laughter exists as a text entry in JP but it isn't used.


More examples of more-or-less mundane unused text in Chapter 2 in the spoiler tag below. Text in bold is unused.

リーブ:なんだ?
リーブ:!?
リーブ:ガードハウンド?!
ヴィンセント:私が相手をする、このまま走れ!
リーブ:は、はい、お願いします!
リーブ:ヴィンセント、それを使ってください
リーブ:!?
リーブ:ヴィ、ヴィンセント……
リーブ:ヴィ、ヴィンセント!
う、うわぁーーーーーーーー!



***English version***

Reeve: What was that?
{Empty Text Entry}
Reeve: Guard hounds!
Vincent: I'll take care of your pet problem.
Just keep driving.
スクリプトより削除されていました
Reeve: Vincent! Use this!
{Empty Text Entry}
Reeve: Vincent!
スクリプトより削除されていました

リーブ:は、はい、お願いします!
Google translate:
Reeve: Yes, please!


リーブ:ヴィ、ヴィンセント……
リーブ:ヴィ、ヴィンセント!
う、うわぁーーーーーーーー!
Google translate:
Reeve: Vin, Vincent...
Reeve: Vin, Vincent!
W, woaaaah!


I wonder if those latter reactions were intended for the final cutscene when you are being chased by the guard hounds.
 
Last edited:
How to naturally unlock Cait Sith's "Number 7. Nice to meet you!" line.

Chapter 4-1:​
Get a score of 0-2 in the stage mission "Time to WRO Command". In other words take 80 seconds or longer to reach the command center (Reeve's office) at the top of WRO HQ.​
*EDIT for clarification* Your score depends on how fast you arrived at the command center (Reeve's office).​
0-59 seconds: 4 points​
60-79 seconds: 3 points​
80-99 seconds: 2 points​
100-139 seconds: 1 point​
140 seconds or more: 0 points​
Chapter 5-2:​
Get KO'd at least once as Cait Sith (don't forget to select "Restart" so the KO/Game Over gets saved).​

Fulfill both these conditions and the "Number 7. Nice to meet you!" line will be the one used.
If only one of these two conditions is fulfilled then the line "Number 6, ready for action!" will be used.
If neither condition is met then Cait Sith will say "Number 5 is alive!".


Don't ask me how I was able to miss the obvious second condition because I can't explain it myself. :wacky:

The flag for Cait Sith's KO/Game Over was indeed among the 64 Flag Addresses.

Flag 32 - Chapter 4 Stage Mission "Time to WRO Command" result.
Flag 34 - Chapter 5-2 flag: Sets to 1 if Cait Sith gets KO'd.
Flag 35 - Cait Sith Chapter 7-2 Scene: Line Variation.

With Flag 32, this result gets saved in memory when you clear Chapter 4.
The Flag 34 result is saved in Chapter 5-2 after getting KO'd and selecting "Restart".
The results in Flag 32 and Flag 34 are taken into account when gameplay begins in Chapter 7-1 (the Shera) and this is when Flag 35 is set to either 0, 1 or 2.
0 = Number 5 is alive!
1 = Number 6, ready for action!
2 = Number 7. Nice to meet you!

NOTE: Getting KO'd multiple times in Chapter 5-2 will have the same effect as getting KO'd only once. In other words you CAN'T unlock the Number 7 line simply by dying over and over and ignoring the Chapter 4 condition.


This adds to the list of what I need to try out next time I play through Dirge of Cerberus on console:

1) Play with mouse and keyboard​
2) Complete a playthrough in a corrupted save file to see if the save gets un-corrupted​
3) Unlock the Cait Sith "Number 7" line naturally, no hacks​
 
Last edited:
w8qgkhe.png


After something of a hiatus from Dirge I'm revisiting it for, you guessed it, playing it on console by using a keyboard and mouse. I bought a new keyboard+mouse specifically for this purpose so I wouldn't have to constantly switch my only set between my computer and my PS2. :monster:

You may wonder "But Shademp haven't you also played DoC with keyboard and mouse by virtue of emulating the game on your PC?"

The answer to that is no. Yes, I can play with normal "controller" settings on my keyboard, minus support for analog stick and minus support for mouse. But there doesn't seem to be a setting to align my keyboard with DoC's internal keyboard+mouse setup. Therefore, my only way to properly play with keyboard+mouse is to play on console. Then again I could easily have missed some simple setting that was right in front of me.

But even if I have been blind in that regard I know that there's just no way for me to maintain a proper framerate when emulating DCFFVII so console is my only choice if I want gameplay at a reasonable pace.

My next post will be more about my initial impressions playing Dirge with first keyboard only and then with keyboard+mouse. For now here are some miscellaneous observations:

- The startup screen of my PS2 where you can check your memory card and/or change your console settings did NOT register neither my keyboard nor the mouse. Ergo, in order to copy a DCFFVII save from one memory card to the other I still had to plug in a normal controller.

- Dirge will not object if you have a controller, keyboard and mouse all plugged in at once. I was kinda expecting some form of conflict if you tried to combine controller and keyboard but there was none.

- The tutorial mode, when you play as Turk Vincent, does not adjust its text boxes to teach you the keys for when playing with a keyboard. You either have to memorize the mappings as shown in the Reference Mode of the tutorial or simply play around with the keys until you find the correct ones. In other words the gameplay tutorial very much expects you to play using a normal controller.


Speaking of Reference Mode (the text-only tutorial you can access either before the gameplay Tutorial or via the TTT terminals in gameplay) I found a plethora of inconsequential version differences for these.


JORG
GaM5ODh.png


NA
tJDhMsw.png


Only the original release includes the Sony PlayStation logo and the hint of the blue text reading "Dualshock".

The downward directional button and the Select button were used for the online mode and are thusly not referenced post-JORG for obvious reasons.


方向キー下
Direction Key Down
…アイコンチャット呼び出し
Call Icon Chat


SELECTボタン
Select Button
…チャット入カ
Enter Chat



In PAL and (J)INT, this page got VERY cleaned up!

INT (International with English language setting)
12jnrAO.png


JINT (International with Japanese language setting)
7Tb5D34.png


JORG
AMyNYmQ.png


NA
JQN0toA.png



Many multiplayer-only keys that only appear highlighted in the JORG version of this Reference Mode.

The keys are no longer color-highlighted post-NA.

INT
Al9POlx.png


JINT
8K1vdu8.png

...and many, many more differences like these between the various verions of the Reference Mode pages.
 
Last edited:
For readability I'm combining the keyboard reference mode pages for NA and the descriptive button mapping of post-NA.

Q2Ovk2K.png

ZmKYm5q.png


Although not highlighted here, the Esc key is used as the Cancel button in menus. The full numpad is also available (closer to how the keys are highlighted in the JORG version of the Reference Mode) so long as you have Num Lock disabled.


I should emphasize that I am not used to playing shooters with mouse+keyboard. I know that for precise aim and all those lovely 360-no-scope memes you must join the PC master race and shun the console controller for any- and all shooter games. But the simple fact is that I have never spent more than a few hours playing a shooter with m+k setup. I'm drawn to the console controller because that's what I'm used to since early childhood. Expect my reflections on this new gameplay experience to mirror this fact.



Keyboard-only: Impressions after 30 minutes of play

Analog movement I miss you dearly.

When I emulated Dirge using my keyboard as a controller there was obviously no way for me to perform analog movement, thus having no way for precise aiming or to walk slowly with the player character. With the console keyboard setup we are *slightly* less limited than on PCSX2. Observe that the Shift key allows you to walk. This is quite a neat feature. I was hoping it had a dual use to also slow down your scope speed, thus moderately emulating an analog stick, but unfortunately no. The closest thing you can get to that sort of precise aiming is to have Vincent walk (using Shift) while also having your gun raised. You'd get the same effect if Vincent's equipment was so heavy that he could only walk while his gun is raised.

In other words I can only recommend this aspect of keyboard-only if you play the game with auto-targeting. The lack of proper analog control is an unfair handicap and so playing the game without auto-targeting, with the "Manual Scope" as it were, would be the errand of only a severe masochist. Hint: I am not that level of masochistic. :monster:


What about the keys in general? I am yet to try out re-mapping the keys so my impression is based on the default mapping.

Q2Ovk2K.png


Observe that the V key opens the main menu. Now what button must you use to exit the menu? With a controller you could have used the Melee button. Here you can't. You have to press Esc. So if you just decided to enter the main menu you better be committed to it because the Esc key is REEEAAAALLY far away. I hope that re-mapping allows you to set Esc to C instead. In the original release of Dirge, C was mapped for Enter Chat, same as the Select button on the controller.

Speaking of far away, look at the Pause key. That is the ONLY WAY for you to enter the Pause menu or to pause a cutscene. Every time I press Pause I feel like I'm making a detour to Mordor because the journey is so long! The Pause key is just so far away from everything else!


WASD is difficult enough as is for me as a console gamer and in particular as a DCFFVII aficionado. I keep wishing that X was down and not S, so that it would mimic the directional buttons on a controller. This leads to lots of accidental crouches with X. With melee set to B and jumping to Space my dexterity with the controls is many, many times slower than it would be with a normal PS2 controller. How am I supposed to precisely control Vincent's movement in 360 degrees with WASD while also at the same accessing jump and melee? This problem matters since, at times, melee is an important complement to the gameplay in Dirge.

Is this just my inexperience or are the default key mappings genuinely bad? I do not know for sure. Examples like how I often accidentally press E, thus consuming an item, rather than pressing R to reload is probably just me needing to git gud. I find it humorous though. Item toggling in the shortcut menu is counter-intuitive already since you can only toggle to the left and you use up items with the right directional button (unless you change your controls). Hours of having played Dirge has trained away the instinctive desire to toggle to the right in the shortcut menu. That's why I find it so humorous that now I'm accidentally pressing E instead of R. :wacky: It's like a rebirth of the beast.


For all my complaining, yes the game is technically playable even if you are using only a keyboard. You feel like you are playing with a distorted PS2 controller with only 1 1/2 hands but even so you can play the game this way. Maybe that's impressive?

Beyond being a fun experiment and a way for me to get accustomed with the keyboard in general, I can only recommend this setup if you REALLY don't want to use a PS2 controller and if you only intend to play with auto-targeting on.



Keyboard+Mouse: 30 minutes of nigh-bliss

1989388.jpg


My headshots. They're so...fluid. I have so much control. Such precision. It's beautiful. Okay I'm still having some trouble with the keyboard but man this is a delicious gameplay experience. The key of course is to play the game with the manual scope. Auto-targeting would remove the point of the mouse and almost equate it to using a PS2 controller. I guess it harkens back to a simple truth about Dirge of Cerberus: In order to enjoy it you need to impose challenges on yourself since the game on its own doesn't promote mastery. One key way to do this is to cancel that auto-targeting and play the game with a mouse.

w8qgkhe.png


Observe that clicking the scroll/turn wheel opens the main menu. This is only slightly inconvenient since you often accidentally turn the wheel and thus toggle your weapon slot, but it's still way better than pressing V on the keyboard. The fact that a simple left-click also acts as the Escape key (or Cancel button) is a welcome gift. Both menu navigation and shooting is so much more smooth thanks the mouse. Oh, AND MELEE WITH THE MOUSE IS PERFECT! I HAVE REGAINED MY ACROBATICS!

With a mouse you'll also enjoy the resurrection of Vincent's claw as an arrow pointer. It looks just like what you see in this old recording from the online mode (see 0:09 - 0:12) and if nothing else it's nice to see the arrow claw surviving beyond the original Japanese release where it was always present in the menus.


In the Config menu these are the default "speeds" for Sight, Camera and Mouse.

soH6ZpO.png


You gotta pump those numbers up. Those are rookie numbers. Adjust the speeds for Sight and Camera to maximum or close to maximum and you'll get the precision and full rotation capabilities that you need in order to get full use out of the mouse. You probably won't need to change the Mouse speed.



So there you have it. Only thirty minutes so far with Keyboard+Mouse and it is feeling quite promising. I already knew that, objectively, controlling aim using your whole hand on a mouse is far easier than tiny thumb-precision on a PS2 controller analog stick. I was thusly not surprised to see just how good it felt to reign in all those headshots using the mouse. Still feels amazing to actually experience it though.


The next step now is to complete a full playthrough of Dirge using the K+M setup.
 
Last edited:

Unlocked the Number 7 line with no hacks involved. All you need is to take 80 seconds or longer to reach Reeve's office in Chapter 4 and also save a Game Over as Cait Sith in Chapter 5.
Extra detail: Going from emulated research, the more precise time is 80.07 seconds or longer. Any faster and you won't be able to unlock the Number 7 line.

I'm having fun playing through Dirge with keyboard+mouse setup. I've mapped the Pause key to T and I've been experimenting with Camera- Sight- and Mouse Speed. One thing I definitely still miss- and feel inhibited by is the lack of analog movement for Vincent. It's a bit like you are enhancing your scope aim with the use of a mouse but you are sacrificing more precise control over the player character. You can press Shift + Directional Keys to move Vincent slowly, yes, but that's far more complicated than using the left analog stick on a PS2 controller.

Can't tell how feasible it would be for me to become as good- or better at the game with a K+M setup than with a controller. The latter I have thousands of hours of experience with while the former I only have about 3 1/2 hours with so far. Leaning towards there being pros and cons to both ways of playing the game. That's about what I can say with confidence for the moment.

All things considered I'm happy with my decent performance in this playthrough of Hard Mode in the NA/US version. I conveniently already had a corrupted save file for this version of the game which is why I'm playing that: I'm testing out the claim that finishing a new playthrough will un-corrupt the save file.

Maintaining my honor by always keeping Vincent at Level 1 and only ever using manual targeting. :monster:
Oh and for those who don't remember, I have a second YouTube channel under the name of "Gast Faremis". That channel is reserved for miscellaneous/extra/joke/junk videos and so that's where I uploaded "The moment of truth" video.
 
Last edited:
9PxaNA6.gif


The familiar bottleneck of the "Defeat 100 DG Soldiers" sidequest in Chapter 10 is rearing its ugly bottleneck. I knew it would be difficult with keyboard+mouse but not that it would be quite THIS difficult. Lost twice now with only 68 foes out of 100 defeated each time. The battlefield becomes too chaotic and my weaknesses with the keyboard manifest completely. With rapidly firing foes, where four shots on Vincent will typically lead to a KO, I most definitely have no time to react as I'm essentially playing with one hand tied behind my back.

I will have to do lots of re-memorization for this sidequest and possibly some customization before I can hope to clear this challenge. Defeating the 100 DG soldiers is in some ways more difficult in Hard Mode compared to Ex-Hard, since in the latter you may already have Ultima Weapon and Manasoul.


Using the mouse for more precise camera/scope control has highlighted something that in all honesty I should have made a conscious note of earlier: Even when played on console, Dirge of Cerberus has mild performance issues. When the game becomes resource heavy (complicated skybox + multiple particle effects + multiple 3D models + fast camera rotation + huge area renderings) it will skip frames. Rather than slowing the game down, like might happen if you're playing an NES game where too many objects appear on the screen at one time, Dirge of Cerberus skips frames while maintaining the overall game speed.

When playing with a mouse in a resource-heavy area, what happens is that the same mouse input leads to a greater camera motion than intended. A dramatic amount of precision is lost! This is most inconvenient. Unfortunately this also happens in multiple spots during the "Defeat 100 DG Soldiers" challenge. My only form of compensation is to hold Shift and press directional buttons for precise control of where Vincent is standing and thus, by extension, where the camera/scope is pointing. I can achieve more incremental changes in position with the Shift + ←↑→↓ strategy, with the downside that moving into position this way is a bit too slow.

The effect is subtle but obvious when you know what to look for even when you're not playing with a mouse. The cockpit of the Shera is a particularly resource-heavy location (on the PCSX2 the framerate will drop dramatically here) and when you do quick camera rotations the motion will be far less fluid than if you're doing the rotation in a resource-low area. Because I know from experience with the PCSX2 where the framerate tends to drop dramatically I also know where to look for frame-skipping when playing on console.

I am almost certainly not using the correct terms to describe what I'm experiencing but hopefully the idea gets across.


All this adds new personal insight to why fans of shooters emphasize the need for constant framerates so much. With mouse sensitivity being key, any disturbances to that sensitivity will inevitably throw you off your game. This topic isn't exclusive to players of first-person-shooters, of course, but that's the context I'm in right now.
 
It wasn't pretty but after a total of four Game Overs I did finally manage to clear the 100 DG Soldiers challenge of Chapter 10. Dishonor on me for pausing twice or thrice in the middle of the action just to give myself time to think. :wacky: When careful picking of consumables from the item shortcut was impossible I simply spammed the left-toggle key (Q) and consume key (E) in hopes that the final result would be proper. This is quite reminiscent of the chaos and helplessness in my very first playthroughs of Dirge, before I had gotten used to the controls.

In the end I used up all my consumables and the only reason I could win was because I could spam Thunder Lv.3 against the twenty final targets. Like I said, it wasn't pretty but I won. Vincent Level 1 and manual targeting all the way! As per usual once clearing that bottleneck it's pretty much smooth sailing towards the end. Thus it was that I cleared Hard mode (North American version) of Dirge of Cerberus, playing with keyboard and mouse plugged into my PS2.

MISSION COMPLETE


Was my corrupt save file uncorrupted? No. For this particular instance, completing a fresh playthrough did nothing.

I am still open to the possibility that this uncorrupting-method could work. Maybe my mistake was to complete the game in Hard mode when that was the very same difficulty mode in which the save file corruption originated? Maybe I should have cleared the game on Normal or Ex Hard. It's also possible that the method to repair a corrupt save file only works for certain cases of corruption. One particular thing about this NA save was that the following common symptom of save file corruption never manifested:

EKE9hrS.png

There are supposed to be five checkpoints from which to access Chapter 9, but due to a corruption that happened after defeating Azul the chapter only contains the first and last checkpoints.

In this case, where the save file corruption clearly originates from the ending of Chapter 9 (or the beginning of Chapter 10), I can easily imagine that an undoing of this error (via a fresh playthrough) could work. I may run that experiment some other time.


Going back to the keyboard+mouse thing, there was one drawback that became especially clear during the battle against Azul (both forms) in the ninth chapter: Having to constantly re-adjust your mouse when you circled the central pillar.

With a PS2 controller, all you have to do in order to run the player character in a circle is to tilt both analog sticks in the same direction and then you can be in an infinite loop if you like. However when the mouse is your camera you can only move the mouse so far across the mouse pad before you reach the edge of the pad and have to move back your mouse. In this particular example even the keyboard-only setup is superior to keyboard+mouse, because to run in a circle all you need is to press the keys. You don't have to essentially disrupt your running like what happens with the mouse. Maybe it's worth switching to keyboard-only in the battle against Azul?



I am very happy that I got to experience Dirge of Cerberus in this new way, observing the pros and cons of using the keyboard and mouse. Promising myself though that, for next time, I find a more comfortable setup. Because of the high elevation of my television and the lack of a proper, secondary desk, I could think of no other way to play but to sit on my sofa with the keyboard on my lap and the mouse elevated on a box to my right. Yes, this entire 7-hour-ish playthrough I played the game in this rather quaint-looking way. :mon:

Perhaps once I can comfortably sit at a desk and play DCFFVII with keyboard+mouse my true powers can be unlocked?! ...Or it might make no difference at all.
 
I had forgotten just how brutal Ex Hard mode is. Experiencing genuine rage right now.

Yeah I wasn't planning to play again so soon but I found that the more precise claim regarding the uncorruption-method was to complete an Ex Hard playthrough so I figured "you know what I actually have an itch to play some more" so I booted up Dirge again. This time I have my keyboard and mouse on the table in front of my sofa. The setup definitely provides me with better control but the posture is worse on my body. Will I really be forced to take a trip to IKEA and find some convenient portable mini-desk to play this comfortably with? :wacky: Playing with k+m is definitely becoming second-nature now though so I got that going for me. I should try mapping reload (R) to something else though since I keep using items (E) when I intend to reload. Maybe map it to Tab?

Recently noted that I only have documented cases of save file corruption for the first two versions of Dirge: Original JP and North American. Wouldn't surprise me if the save corruption bug was fixed post-NA. Equally would not surprise me if I've simply been lucky with PAL and JP International thus far.


Going back to the topic of Ex Hard mode:

Chapters 1 through 6 are mostly a breeze and in some places easier than Hard mode thanks to all the equipment you have carried over from the previous playthrough. The main difficulty there would be if you are trying to get all S rankings, as the demands for a high rank in the critical hits category appear way higher than in lower difficulties.

Once you get to Midgar though the difficulty gets amped up to eleven. Enemies swarm you and so do their bullets. Keep in mind that, as usual, I'm keeping Vincent on Level 1 and only ever using manual targeting. Three standard shots on Vincent and he's KO'd. ...So why does it feel like I'm playing through Ex Hard this way for the first time? Doesn't feel like the keyboard+mouse is to blame. I could have sworn I had done a Level-1-no-auto-targeting playthrough of Ex Hard before but I can't find any mention of that in this thread plus I'm getting quite slaughtered by the game.

One possible factor contributing to the difficulty is that I am, at times, trying to play as though I'm preparing for an All S Rankings run. This means no spamming magic...which usually leads to a KO and often enough to Game Over. If I'm not spamming magic and restorative items then I can't make it through the chapters. =/

I also have this theory since a few years back that enemies deal more damage in the NA version of Ex Hard than they do for PAL and JP International. One day I'll test this theory to see if there is any truth to this vague impression of mine.
 
Realized now I posted this on Discord almost a month ago but I never posted it on here.

8CHqsmz.png


At the proper angle you can see Yuffie seemingly floating in mid-air as she performs her motion sickness animation. The corridor Yuffie is in doesn't seem to have an outer wall which is why you can spot her. This oversight can easily be observed in any version of the game, be it on console or emulated. I wonder if an outer wall (right outside where Yuffie is standing) exists in the gfx data or if they skipped it entirely because this area of the game is rendering-heavy enough as is?


Since I was having so much trouble with Chapter 9-2 (Chapter 9-1 is all cutscenes and Chapter 9-2 is when you enter Shinra HQ) I booted up the PCSX2 so I could do faster trial-and-error with the use of save states. Even with the low framerates with the emulator it is still faster to experiment with strategies and observing the enemy AI with the help of save states. I was able to learn some key things that just now helped me get through Chapter 9-2 on console with passable results.

One fresh observation made me chuckle though. Ex Hard does the clever thing that it locks you inside the Shinra HQ lobby once you've entered it, using an EM barrier that gets raised whenever you approach it. This keeps you from retreating to safety outside Shinra HQ and making purchases in the shop. Shortly before you are about to take the stairs to the third floor, a group of DG soldiers and beasts storm in from outside the first floor entrance. If not dealt with quickly these foes can be quite an annoyance on any difficulty mode but especially so in Ex Hard mode.

Making a run for the EM barrier after the DG soldiers have spawned and are about to enter revealed a fresh observation that made me chuckle...

g2hfMs2.png


YOU CAN LOCK THOSE SUCKERS OUT! :lol: Although not a guaranteed zero-damage strategy, raising the EM barrier by being in close enough proximity grants you a much easier time with taking out this annoying mini-swarm. Obviously this strategy is not available in Normal and Hard since the EM barrier is not present in those difficulties.


The other useful observation I could make thanks to save states was the nature of the aggressive Deepground AI on Ex Hard: Many soldiers are programmed to immediately fire upon the player as soon as your scope aim "touches" them. This behavior is mostly familiar with the DG snipers who may shoot at Vincent once you've had a lock-on for roughly one second or more. But with many DG soldiers in Ex Hard, chapter 8 and onward, the AI is "IF THAT GREEN GODDAMN SCOPE SO MUCH AS TOUCHES ME I WILL IMMEDIATELY FIRE AT THE SUNUVA-".

To an extent then it may be more lucrative to approach the enemy and use melee or magic, since if you do NOT grace the soldiers with your scope they will usually be programmed to only start firing at a later stage.

One particularly challenging bit about the Shinra HQ lobby in Ex Hard is that the DG soldiers who are firing at you from beyond the stairs will move out of the way and approach Vincent shortly after your lock-on graces them. If you're gonna snipe these f*ckers and get that huge threat out of the way you better be quick about it or else those soldiers will leave their default position and sneak up on you. Oh and don't forget the two SOLDIER foes who run straight at you while you're trying to deal with the rain of bullets. :wacky:
 
Last edited:
Did clearing Ex Hard uncorrupt my NA save file? Nope.

Did I have a lot of fun with this Level-1-manual-targeting-keyboard-mouse playthrough of Ex Hard? Oh yes. There were plenty of Game Overs but it was a rewarding learning experience especially now since I'm much more comfortable with the k+m setup.

It's amusing how the Deepground AI gets so overaggressive and overpowered in Chapters 8 and 9, only to dial down to normal levels again in Chapter 10 and 11. Even the requirements for All S Rankings go from absolutely bonkers in 8-9 to actually quite easy in 10-11.

Stage Mission bug discovered: You can lure out and defeat the first two Stage Mission gargoyles in Chapter 11 before the SM is triggered, so when you actually trigger the SM your counter is stuck at "0/2" because there are no gargoyles left to defeat. That's what I get for being covert and sniping sneakily. :monster:
 
Initially I thought that it was my PS2 laser that needed replacing but I seem to only be having disc-reading problems with the original Japanese release of Dirge. I won't entirely rule out that the laser is damaged in such a way that it can't read the DCFFVII JORG disc specifically, but I'll place my bets first on buying another copy of this version of the game. Hopefully that one will work without any trouble.



Quick test with keyboard+mouse in the Japanese original

The sight/aim does this needless thing of slightly "centering" your aim back in the opposite direction of where you moved the camera. In other words whenever you are moving your lock-on towards an enemy you will have to take into account this rebounding effect. Removing this for the later releases was perfectly reasonable. EDIT: Yes, this partial-rebound is NOT present when playing with a controller. Forgot to test with keyboard-only. EDIT#2: Yup, the keyboard has the same rebound-effect with the sight/aim as the mouse does.


When first trying out the keyboard I could only use the directional keys and the Enter key (and maybe a few keys I didn't test) but I could not use W, A, S, D, Q, E, Z, and so on. The inability to move Vincent around was something of an obstruction! Initially at a loss, wondering if my nordic keyboard was incompatible, I found it was a matter of a config setting.


pcnNjnG.png


キーボードの使用
"Use of the keyboard"

チャットのみ​
"Chat only"​
通常操作にも使用​
"Also use for normal operation"​

By default the setting is on "Chat only" but after changing it to "Also use for normal operation" I finally had the full keyboard at my disposal. There are probably some intricacies to these two options that justify their existence but that I don't realize because I don't know what it was like to use the Chat in the online mode.


Like I knew already from playing with a PS2 controller, the super-auto-lock item "S Auto Scope" (granted to the player in Easy mode) is broken in JORG as it doesn't allow for simultaneous use of both analog sticks in the proper way. I was secretly hoping that this problem would go away when you played with keyboard+mouse but alas it did not. If you want to play with auto-lock it is much more convenient to pick Normal mode and use the fully functional "Auto Scope" on there.
 
Last edited:
My modded PS2 isn't intended for standing on its side but since you suggested it I tried it out. So far the disc is reading fine but a few hours of play and a few resets of the console will be required to say anything with confidence. Thanks for the advice!

Had already gone ahead and bought a second copy of DCFFVII J-1.0 before I read your suggestion but fortunately getting an additional copy is something I've wanted to for a long time anyway. I both want the reassurance of a spare and I want a casing that is closer to mint condition. My current one is very, very worn out.
 
Top Bottom