+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Zelda 1 Overworld Monster Assignments
Pages: [1]
Author Topic: Zelda 1 Overworld Monster Assignments  (Read 2 times)
Dr. Floppy
Guest
« on: September 12, 2008, 07:56:08 pm »

This one's rather odd...

Does anyone know why certain screens (32 to be precise) on the Zelda 1 overworld seem to act as underworld screens with respect to monster assignment?

The data from $[18510-1858F] (header included) assigns monster sets to each of the 128 overworld screens, but a patchwork of 32 disparate screens don't seem to want to play by the rules. For example, the byte $0E codes for a single orange Tektite (such as the screen holding the entrance to Level 3 in the First Quest). But on these "rebel" screens, it calls up that dirty old man telling me how dangerous it is to be alone...

Moreover, I tried programming a red Lionel onto each screen with the byte $02. Again, the same set of thirty-two screens revolted and displayed a mildly retarded Gleeok.

I've looked at the other "layers" of 128-screen coding (V-placement, quest secrets, etc.) and found nothing in common with these 32 rebels. Likewise, they seem to have nothing in common with each other, save that most are located in the southern half of the map. Once Hostfile.org un-hacks itself, I'll upload and link to a .png displaying the specific screens in question. But for those familiar with the A-P/1-8 layout, here are their coordinates:

A7, B2, C4, C6, C8, D2, D6, D7, E6, E7, F1, F2, F7, F8, G1, G7, H6, I4, I6, J5, K4, K6, K7, L3, L6, L7, M5, N3, O4, O7, P5, P6, P7.

One other odd aspect of these rebel screens is that Link vanishes when he steps onto the top- or bottom-most part of the screen, almost as if there were an invisible dungeon doorway above him. I suspect the game is somehow loading underworld attributes into these screens, prompting the appearance of Gleeok, the invisible overhangs, etc.


Any insight?
Jigglysaint
Guest
« Reply #1 on: September 12, 2008, 10:48:28 pm »

Oh that one is easy.  For both the overwork and underworld, setting $80 will toggle the two sets of monster data that exist.  Also in the underworld, setting bit $40 will allow the blocks to be pushable.

Notice how the "rebel" screens in the overworld seem to be much higher than the normal ones?  The overworld has 128 screens, and setting $80 will make that screen use the secondary monster list.

If you have Zelda 1 questions, please ask me because spend some time doing some ASM hacking.  I actually succeeded in revamping the secrets data to allow for more items to trigger secrets, and for there to be a choice between a cave, stairs, or a blank tile to appear once you activated the secret.  I even added in lock blocks for the overworld.  I wanted to make lock blocks for the dungeons as well as level specific keys, but doing so would require a massive rewrite of the saveram data, which proved to be too hard for me to do.
Dr. Floppy
Guest
« Reply #2 on: September 14, 2008, 09:20:47 pm »

Here's a pictorial representation of the scenario:






The screens tagged in cyan (and with inverted colors in the screen collage) are the "rebels"""; i.e. screens that seem to have a totally different slate of monsters hardwired into their coordinates. To wit, a $02 byte is supposed to position one red Lionel on the screen, and does so 75% of the time. The other 25% of the time, you get a Gleeok composed of Lionel tiles.

The bytes in the legend are the respective monster placement values from the original game. One thing that stands out immediately is that every value assigned to a cyan/rebel begins with a 6, A or E. The one aspect exclusive to these nybbles is that bit-1 is set, while bit-0 is not. (Since these are "high" nybbles, it would technically be bits 5 and 4, respectively.)

The only other nybble this holds true for is "2", which can be found used exclusively in the graveyard screens. Interestingly, none of the six graveyard screens are rebels. (I replaced all 128 monster bytes with "$02"""; my cemetery is now full of depressed Lionels.)


Something elsewhere in the game code has to be influencing these 32 screens for a purpose I cannot fathom. Their arrangement doesn't seem to correspond with any pattern whatsoever, overworld or underworld, first quest or second...
Jigglysaint
Guest
« Reply #3 on: September 16, 2008, 08:06:14 pm »

Like I said in the PM, the bit the game reads for it to choose what list is found in the map placement data.  If you go to $18590, you will see that those "rebel" screens all have one thing in common.  Bit 07(that is, $80) is set.  It is that bit in this section that determines what list is used.
Moulinoski
Guest
« Reply #4 on: September 17, 2008, 07:18:51 am »

Quote from: Dr. Floppy on September 12, 2008, 07:56:08 pm
But on these "rebel" screens, it calls up that dirty old man telling me how dangerous it is to be alone...

Moreover, I tried programming a red Lionel onto each screen with the byte $02. Again, the same set of thirty-two screens revolted and displayed a mildly retarded Gleeok.

Off-topic, but I lol'd when I read this. I saw the Gleeok, but when I read "mildly retarded Gleeok" a different popped into my mind, that of a literally retarded Gleeok.
Jigglysaint
Guest
« Reply #5 on: September 18, 2008, 10:30:40 am »

Haha, yeah.  In fact that gives me somthing to laugh at for tonight(when I just might encounter a real life mildly-retarded Gleeok--of sorts).
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC