We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Dragon Warrior IV (NES)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Dragon Warrior IV

Also known as: Dragon Quest IV (JP)
Developer: Chunsoft
Publisher: Enix
Platform: NES
Released in JP: February 11, 1990
Released in US: October 1992

EnemyIcon.png This game has unused enemies.
GraphicsIcon.png This game has unused graphics.
Sgf2-unusedicon1.png This game has unused abilities.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.

Dragon Warrior IV was phenomenally popular in Japan as Dragon Quest IV, but wasn't released in the west until late in the NES' lifespan, when most non-Japanese gamers were already occupied with 16-bit platforms.

Nevertheless, IV featured an innovative (for its time) chapter-based story system and continued the series' tradition of solid gameplay, eye-catching monster designs, and a memorable soundtrack. It was later remade for the PlayStation in Japan only, but that version was later ported to the DS and released internationally.


Dragon Quest IV Vivian.png
Regional Differences
Not quite as many as the previous games in the series.

Debug Features

A debug mode can be accessed with Game Genie code ATEGAENY. When you start a new game, you will be given a chapter selection menu. If you press B at this menu, you will start at Chapter 5 with a full LV1 party, and the hero gets 65535 HP and MP, all spells available, and all return destinations available. If the hero is healed, he will lose the 65535 HP.

Otherwise, if you get to Chapter 5 and skipped earlier chapters, the characters from the previous chapters will join the party with 0 for all stats, including HP and Max HP, making them useless.

While using the debug code, you can also hold B to walk through walls, and the Return list is in a different order and has additional destinations.

(Source: GameFAQs)

Unused Text

Dw4 hometown.png

The name of Hometown in Chapter 5 is only shown with debug mode turned on.

Unused Abilities

Open says-a me!

Dragon Warrior 2 and 3 had an "Open" spell to unlock doors, learned at an extremely high level but obviating the need for keys. While none of the heroes in DW4 learns this spell, it does exist in the ROM and is fully functional, although its name is a blank space in the US version. In the Japanese version the spell has the same name as it did in the previous games, アバカム. The Game Genie code PLNOGPIU for the US version, or PUUPLPIU for the Japanese version, will replace Brey's Outside with Open (note that this code will only work if Brey has already learned Outside--changing the spells a character learns requires more invasive surgery than a single GG code).

Presumably the spell was disabled (and never brought back in any subsequent main-sequence DQ game) because being able to open any door just by gaining enough levels would play havoc with the storyline.

Unused Enemies

To do:
Find out more about the enemies' stats and actions during battle. Also figure out where on the ocean each is actually supposed to appear after the bug is fixed.

Six entirely unused enemies are hidden away in the code, along with four enemies that can only be encountered under very specific circumstances.


This guy got screwed over in so many ways.

A palette swap of Roric, minus the boomerang (it's hidden by using an all-black palette). His battle stats (at 61094 in the ROM) are clearly incomplete: nine zero bytes (giving him zero HP, MP, attack, defense, agility, experience and gold) followed by "(193)" and eight spaces in ASCII (most likely some kind of placeholder, although he's actually enemy number 189 in decimal).

For the record, he's one of the few human opponents in the Dragon Quest/Warrior series, despite never being used in a final product.

Unused Sea Enemies

The following five enemies have complete stats, but don't appear anywhere in the game. All of them were intended to be encountered at sea, and do appear there in the PS1 and DS versions.


This dinosaur is literally extinct.

A palette swap of Pteranodon and Chillanodon.

Rabid Roover

So I herd u liek... eh, never mind.

A palette swap of Poison Lizard and Baby Salamand.


No relation to the "Final Fantasy IX" boss.

A palette swap of Great Ohrus and Sealthrope.


I think I had one of these once after eating some bad sushi.

A palette swap of Giant Worm and Sand Master.


What happens when an angler fish mates with an electric eel.

A palette swap of Bangler.

Rare Sea Enemies

The following four enemies can be encountered, but only when a random encounter occurs on the exact step you transition from the Shrine of Breaking Waves to your ship on the world map. Like the above five, they all appear normally in the remakes.


Sounds Japanese, but it's really the name for the biological order of stingrays.

A palette swap of Guzzle Ray and Raygarth.

Giant Octopod

Insert your own off-color tentacle reference here.

A palette swap of Elefrover and Tentagor.


Goes great with pasta in a cream sauce.

A palette swap of Armor Scorpion and Metal Scorpion.


You fail ichthyology forever, Dragon Quest.

Another palette swap of Bangler.

The reason so many sea enemies don't appear anywhere, while others only appear under specific and strange conditions is, not surprisingly, because of a bug in the code that calculates what encounter zone you're in. The encounter zones for each roughly screen-sized section of world map (16 by 16 squares) are packed into a single byte, with the land encounter table index in the lower 6 bits and the sea encounter table index in the upper 2 bits. The bugged code starts in bank 18, address 9C5A (offset 61C6A in a headered .nes ROM image):

18/9C5A: AD 45 A2      lda $A245 ; lo byte of ptr to world map encounter table
18/9C5D: 85 00         sta $00
18/9C5F: AD 46 A2      lda $A246 ; hi byte of ptr to world map encounter table
18/9C62: 85 01         sta $01
18/9C64: A5 42         lda $42 ; player's X position in map squares
18/9C66: 4A            lsr
18/9C67: 4A            lsr
18/9C68: 4A            lsr
18/9C69: 4A            lsr
18/9C6A: 85 06         sta $06
18/9C6C: A5 43         lda $43 ; player's Y position in map squares
18/9C6E: 29 F0         and #$F0
18/9C70: 05 06         ora $06
18/9C72: A8            tay
18/9C73: B1 00         lda ($00),y ; read packed encounter table indexes
18/9C75: AE 15 05      ldx $0515 ; current vehicle (0 = on foot, 1 = ship, 2 = balloon)
18/9C78: E0 01         cpx #$01
18/9C7A: F0 05         beq ship
18/9C7C: 29 3F         and #$3F ; the land encounter table is in the lower 6 bits
18/9C7E: 4C 88 9C      jmp storeit
18/9C81: A5 07         lda $07 ; bug! this variable hasn't been initialized yet
18/9C83: 0A            asl
18/9C84: 2A            rol
18/9C85: 2A            rol
18/9C86: 29 03         and #$03 ; the sea encounter table is in the upper 2 bits
18/9C88: 85 07         sta $07

The uninitialized variable $07 contains the index of the encounter table that was checked on the previous step. So each step you take on the ocean, the game uses the index of the previous encounter table divided by 64 as the current encounter table. As a result, the only time a table other than table 00 gets used is when you have an encounter immediately upon moving from an area with an encounter table index of 64 or greater. The only such area that you can move directly into the sea from is the Shrine of Breaking Waves.

The four enemies that you can encounter via the Shrine of Breaking Waves method are in encounter table 01. If there were a dungeon with an encounter table index of 128 or greater that was accessible by ship, you could encounter the remaining five enemies (all of which are in encounter table 02), but the encounter tables used by the game don't go that high.

To fix the bug, change the byte at ROM offset 61C8B from 05 to 07 (i.e. change the destination of the beq so it skips over the bogus lda $07). A Game Genie code for the bug fix is YANOUGIA.

Revisional Differences

Dialogue Differences

The speech of this soldier in Chapter 5 was changed between the first and second Japanese revisions:

Japan PRG0 Japan PRG1 US
Dragon Quest IV (PRG0)-1.png Dragon Quest IV (PRG1)-1.png Dragon Warrior IV-1.png

His line in the US version is a direct translation of the PRG1 line. The PRG0 line translates to "Please tell Ryan [Ragnar] to come back to the castle once in a while."

In all versions, he only says this line if Ragnar/Ryan is not in the active party; if he is, the soldier greets him instead.

Casino Text Color

Like the other Dragon Quest/Warrior games, the color of the text windows changes if you have a party member who is severely wounded or dead (in this game, to green or red respectively). In the first Japanese revision, the text windows change color no matter where you are. In the second Japanese revision and the US version, when you're in the Casino in Endor, the text windows remain white regardless of the status of your party members.

Japan PRG0 Japan PRG1 US
Dragon Quest IV (PRG0)-0.png Dragon Quest IV (PRG1)-0.png Dragon Warrior IV-0.png

Party AI Improvement

To do:
There are other differences in the battle/AI code between the two Japanese revisions; figure out what they mean.

In the first Japanese revision, the party AI in Chapter 5 evaluates damage-dealing spells based on the average damage dealt by each spell. In the second revision and the US version, it was changed to use the minimum damage instead. This change ensures the AI does not choose a spell too weak to finish off an enemy when a stronger spell is available.