Under the microscope: Dynasty Warriors (PlayStation)
No romance in the three kingdoms; only fighting
The cheat sites list a few codes for Dynasty Warriors, the 1997 fighting game from Koei:

How do these work? They’re easy to locate in a memory snapshot if you know the standard PlayStation bit pattern-to-button mapping. The Sun Shang Xiang code above looks like this in the game data:
There’s a function at 8003cb50 that reads the bit patterns above when the main menu is active. The relevant logic looks like this when translated to pseudo-Python:
if (cheat_index == 0xd) and (cheat_counter < 8):
if (cheat_0d_buttons[cheat_counter] & player_pressed) == 0:
cheat_counter = 0
if cheat_counter == 8:
unlocked_characters |= 0x200
play_sfx(9)What this is doing is straightforward: for each button in the sequence that you get right, a counter increments. If the counter reaches 8, a new bit on the field at 800b8114 gets set – this unlocks Sun Shang Xiang. Lastly, a sound effect plays.
The next thing that the aforementioned function does is process another cheat sequence. This corresponds to the Unlock Nobunga code above. But GameFAQs has it wrong! The actual buttons are Up, Triangle, Down, Circle. The extra Square in front is unnecessary.
GameFAQs is right about this, however – to unlockNobunga, you have to clear the game with Lu Bu first. The game tracks whether this has been done by setting a bit on the field at 800b8118. It checks that field before applying the Nobunga code effect:
if (cheat_index == 0xe) and (cheat_counter < 4):
if (cheat_0e_buttons[cheat_counter] & player_pressed) == 0:
cheat_counter = 0
if (cheat_counter == 4) and (progress_flags & 0x1000 != 0):
unlocked_characters |= 0x4000
play_sfx(9)Is there a way to shortcut this process? Yes – there’s an “unlock almost everything” code that doesn’t seem to have been published in the 29 years since this game’s release.
The sequence is Up, Down, Down, Right, Right, Left, Down, Square, Circle, Up, Up, Triangle.
If you enter it, the game sets 15 bits on the progress and character fields mentioned above:
if (cheat_index == 0xffffffff) and (cheat_counter < 12):
if (cheat_ffffffff_buttons[cheat_counter] & player_pressed) == 0:
cheat_counter = 0
if (cheat_counter == 12) and (progress_flags & 0x1000 != 0):
unlocked_characters |= 0x7fff
progress_flags |= 0x7fff
play_sfx(9)This unlocks these characters:
Zhuge Liang
Cao Cao
Lu Bu
Sun Shang Xiang
Nobunga
That’s everyone except for Toukichi. Since everything else is already done, you can put in his code at the mode select screen, too: Down, Down, Right, Up, Circle, Triangle, R1, R2.
The new “unlock almost everything” code above works in the NTSC-U and PAL versions of Dynasty Warriors. But for the NTSC-J version, you have to swap Circle and X, so it’s this: Up, Down, Down, Right, Right, Left, Down, Square, X, Up, Up, Triangle.
Outro
If you like this sort of cheat code hunting, check out the archive for many more articles like this one.
I’ll be back with more Rings of Saturn soon, so subscribe to get the next edition delivered to your e-mail inbox:







