Adventure Island Hack

Download the hack here

The hack is in IPS patch format, you need the US ROM of the game and a patcher program. Full instructions at the end of the page.

Hudson's-Adventure-Island-(U)-[!]-5

A small break from the PC game

I took on a side project last week: to revisit the Adventure Island game on the NES, and see what could be done to make it more enjoyable today.

I’ve always loved playing this game. At a first look, it could be a similar game to Super Mario Bros, released 1 year before. It is a platformer, you start on the left of the screen, hold B to run, press A to jump, run to the right, jump holes, get powerups, defeat enemies. Every 4 levels you fight a boss and you go to the next world, and there are 8 of them.

But the level design is nothing like nintendo’s game. The game’s developers (not Hudson, the original programmers from Westone) made sure to always keep the game at a fast pace. It is not only possible, but encouraged by design that you run as fast as possible. You have depleting health, so you need to run to find food. There is a skateboard that practically turns the game into an autoscroller. The fruits and hazards are all positioned with the skateboard in mind so you generally don’t have to stop moving.

When you get good at the game it becomes rhythmic. At points it looks like a dance. The enemies are the leads and you follow gracefully, or face demise.

Nothing is perfect

So, what are the problems with the game? Well, for starters, it is very long. It features no warps, no save and no passwords, so you really need to beat all 32 levels in one sitting. This is made worse if you don’t even know about the continue secret, which is revealed in the game’s manual: find the hudson bee on level 1-1 and then press right+start at the game over screen. If you by mistake press anything other than right+start or wait too much you lose all your progress. Pretty daunting.

Another problem with the game is that the difficulty curve is based on variations of the same levels. You keep replaying harder versions of each level until the game is done. This was ok back then when you had only a handful of games in possession, but nowadays it is a little too much.

Finally, you die in a single hit and when you do you lose your weapon. This was really maddening, because it meant you would need to start over, without a weapon on some levels that don’t even give weapons.

dead

How to fix it?

The most obvious modification is to cut down on repeated content. I have looked into all of the game’s levels and detected that there are 10 different “sets”. These sets may have repeated graphics, but the level layout is unique to each one of them. So cutting down to 10 levels from the original 32 was already a good idea, but one of these sets is too much like some of the other ones, so I cut it too. In the end, I have selected the following levels:

Level 1 (old 4-1)
Level 2 (old 3-2)
Level 3 (old 7-3)
Level 4 (old 7-1)
Level 5 (old 7-2)
Level 6 (old 8-3)
Level 7 (old 8-2)
Level 8 (old 8-1)
Level 9 (old 8-4) (Boss)

fight

Notice that I changed the old 1-1, 1-2, 1-3, 1-4, 2-1, etc. format to a simple level sequence. This way you only fight the boss once.

I did this change and it was still hell to play. The game is too hard, so I had to address the other problems.

So I’ve added an automatic option to continue. And things improved. There was still the 1 hit kill problem, so I’ve changed it so you don’t die in one hit and some of the health is taken for that. It already felt like a totally different game at this point. Fairer, but still hard, as it should.

Then, I made it so you always start with the axe after dying. This removed some of the insane difficulty some of the later levels had. It was the “gradius” effect. If you die and lose all weapons you might as well just restart the whole game. Not anymore!

Finally, I made so all of the hidden power up eggs were now always visible.

Final Touches

I really liked the results, so I wanted to do that final level of polishing. I’m glad I did! I added the option to play the new level sequence using the original harder rules (no weapon, hidden eggs and 1 hit kill) or the new arranged rules.

options

Then, I managed to replace the original score system with a more modern, useful time attack system. During the game there is a timer where the score used to be, and speedrunners can use it to time their runs.

timer

This led me to make a few changes to the ending screen:

  • Now the ending shows your total game time
  • It also shows how many pot bonus you’ve collected
  • And finally, it tells you if you’ve finished the game in normal mode (Higgins holds the hudson bee in his hand if you did). Advice: don’t try original mode unless you want an infuriating challenge. Arranged mode is recommended!
Discoveries

While digging through the game’s code I’ve learned a few things that I always wanted to know, and I found something new too.

The first thing is how the power up system works. The game has a few possible egg contents:

  • Axe: the regular weapon
  • Skateboard: protection, more speed, but can’t stop
  • White Milk: replenishes some health
  • Flower: doubles the points for each fruit for the duration of the current level
  • Fireball: a stronger weapon that can destroy rocks and reaches farther
  • Pink Milk: fully replenishes health
  • Ring: 2000 points
  • Extra life: +1 life
  • Honeygirl (looks like an angel to me): temporary invincibility
  • Eggplant (bad): drains health
  • Hudson bee (only one in the entire game): allows continuing
  • Key: makes the next falling platform rise instead, taking you to the bonus level

There was one inconsistency with this, in that some of the eggs would sometimes produce different items. I never understood why, until now.

eggs

Despite the similar look, there are various types of eggs:

  • Simple egg 1: may contain axe, skateboard or honeygirl (always visible)
  • Simple egg 2: skateboard, flower or white milk (always visible)
  • Power up egg: may contain fireball, pink milk, ring or extra life (always hidden)
  • Eggplant egg: contains eggplant (always visible)
  • Honeygirl egg: contains honeygirl
  • Hudson bee egg: contains hudson bee (always hidden)
  • Key egg: contains key (always hidden)

The way the power up egg works is this: there is a hidden power up counter that starts at 0 and goes to 5. When opening a power up egg it reads this value to determine the contents. 0 is fireball, 1 is pink milk, 2, 3 and 4 are ring, and 5 is extra life. When collecting any of these items it adds to the power up level. If you simply open the egg but don’t collect the item, it will not go up. When collecting the extra life it resets the power up level to 0. Dying also resets it to 0. The power up level is persistent between levels though. So the ring isn’t just for points as I thought for so many years, it is important to get to that extra life bonus!

One interesting thing about this egg is that it seems to directly replace the way invisible bonus worked in wonder boy arcade. In that game, at certain points you could shoot and it would reveal a letter. After revealing 3 letters the next empty spot would reveal an extra life. These letters, as it is known, are E, S and C, the first three letters of the developer, ESCAPE (now Westone).

esc

So, when they developed the NES version they added the fireball weapon as the first of these hidden items. They then inserted the pink milk bottle here (big milk jar in Wonder Boy, attainable from eggs there). Then the letters, which in the NES became 3 rings. And finally the extra life. So, in the NES version you have a stronger weapon, but it takes two extra hidden eggs to get the extra life! These eggs are positioned in the same places as the hidden letters in the arcade Wonder Boy game.

 

Patching Instructions:

1- Download the hack here

2- Get your Hudson’s Adventure Island USA ROM (please legally own the game). Make a BACKUP of it!

3- Download lunar ips

4- Open lunar ips, click “Apply IPS Patch”. Locate the ips file contained in the zip.

5- Locate the Adventure Island ROM to apply the patch to.

Done! Now play it on your NES emulator of preference!

– Nesrocks

2 thoughts on “Adventure Island Hack

    • That can’t be done, to my knowledge, as the game cycles values and addresses all around for objects on the screen. Items are stored as bit streams in the ROM. Quoting hacker ALXR:
      “The game uses bits streams instead of bytes structures.
      The format of data is following: first 10 bits – is X offset of first object, next 6 bits – is objectId (00-3F). Now if objectId is 0x38-39, then object have 8 bit of custom data, if objectId is 0x3a-0x3f, then object have 16 bits of custom data.
      After first object begins second object data:
      1 bit – offset flag (0 – relative X offset from previous object X pos, 1 – absolute X offset from the screen 00);
      if offset flag is 0, then 6 bits of relative X offset
      if offset flag is 1, then 10 bits of absolute X offset
      6 bits of objectId
      0 or 8 or 16 bits of objects custom data (see above)

      The end of stream marks with offset flag 1 and absolute offset 00.

      So, to modify any object, you must calculate ALL bits before this object. And 1 byte from this stream can be refered to the 1 or 2 objects.”

      The game stores the first egg of level 1-1 (on the unmodified game, not my hack) at ROM address 0x7279. You can edit that to different values and see what happens. Like ALXR said though, editting levels like this isn’t advised. He made an excellent editor for the European version of the game, check it out. http://www.romhacking.net/utilities/1270/

Leave a Reply

Your email address will not be published. Required fields are marked *