You are not logged in.
Pages: 1
Okay, here's an ASM hack that allows you to expand Zelda 2.
Read the text file, zelda2_expand.txt.
Also read the overworld locations table format text file, zelda2_overwold.txt, so you know what the hell I mean when I say "W" byte.
The ASM hack allows you to specify that an exit to an overworld/town/palace is on the second 128k.
You do that by setting bit $20 of the "W" byte.
LIMITATIONS:
When you leave a palace or town located on the second 128k, you will go back to an overworld on the second 128k, even if the teleporter that took you there was on the first 128k.
You also need to specify the $20 bit for ALL towns and palaces you want to place on the second 128k, otherwise they will switch back to the first 128k.
When you continue or restore from a save, you start on that half of the rom.
<h1>Example!</h1>
An example of using the expanded rom:
First expand the rom and apply the asm hacks
Then copy 4000 bytes at 8010 [file address] to 24010.
Let's change that forest with the 50 point P bag to another overworld.
Hack these bytes:
4631: AA
46AF: 00
46E0: 20
After doing all the hacking, that forest now takes you to a messed-up version of the second overworld (because we copied that rom bank from 8010 to 24010).
If someone can point me to a good patch creating tool I could make the expansion and example as a patch.
Possible hack ideas: (use your imagination!)
Double the width of the overworld maps by having caves link the two halves together.
Make huge palaces, now that you have twice as much room as before.
Have a light world/dark world. Note that palaces share RAM areas to store their state, so you could put the key in one world, and the locked door in the other.
Have a Palace that you enter in such a way that is hard to exit from, then when you clear it, you emerge on the second world.
zelda2_expand.txt:
First, you need to physically expand the rom.
Duplicate the first 128k after the NES header, then change the header to indicate that the PRG size is now $10 instead of $08.
Then make these changes to allow the game to use the expansion:
Paste this code into FF64 (3FF74)
A9 00 LDA #$00
8D FE 7F STA $7FFE
8D FF 7F STA $7FFF
4C 70 FF JMP $FF70
Modify reset vector at FFFC (4000C)
replace this:
70 FF
with this:
74 FF
Paste this code into FF4C (3FF4C)
4A LSR
4A LSR
48 PHA
29 08 AND #$08
8D FE 7F STA $7FFE
68 PLA
29 07 AND #$07
60 RTS
Go to CBA6 (3CBB6)
Replce this:
4A LSR
4A LSR
29 07 AND #$07
With this:
20 4C FF JSR $FF4C
EA NOP
Paste this code into FF58 (3FF68)
8D 69 07 STA $0769
48 PHA
AD FE 7F LDA $7FFE
8D FF 7F STA $7FFF
68 PLA
60 RTS
Go to CD59 (3CD69)
Replace this:
8D 69 07 STA $0769
with this:
20 58 FF JSR $FF58
Replace the bankswitching code at FFC5 (3FFD5) with this:
A9 00 LDA #$00
F0 06 BEQ $FFCF
AD 69 07 LDA $0769
0D FF 7F ORA $7FFF
8D 00 E0 STA $E000
4A LSR
8D 00 E0 STA $E000
4A LSR
8D 00 E0 STA $E000
4A LSR
8D 00 E0 STA $E000
4A LSR
8D 00 E0 STA $E000
60 RTS
Zelda2_overworld.txt
Zelda 2 overworld information
----------------------------
"Browse Around" information
----------------------------
locations of towns and caves and such:
base addresses
This is copied to SRAM area 6A00-6AFB
0x462F west hyrule
0x611C death mtn
0x862F east hyrule
0xA10C maze island
Base address is for "Y"
Add 3F to get "X"
Add 7E to get "Z"
Add BD to get "W"
"Y":
.xxxxxxx - Y position plus 1E (30). Subtract 30 to decode, add 30 to encode
x....... - "External" bit, this makes it a warp to overworld, town, or palace
"X":
..xxxxxx - X position
.x...... - Is second part of a cave
x....... - ?
"Z":
..xxxxxx - Map number
xx...... - Horizontal position to enter within map (ignored for two-exit locations)
00 = enter at middle of first screen
01 = enter at middle of second screen
10 = enter at middle of third screen
11 = enter at middle of fourth screen
"W":
x....... - Fall into a pit when entering
.x...... - "two-exit", like a bridge. Must go through level to cross this tile.
..x..... - Enter at right side instead of middle
...000xx - (requires External) Warp to same numbered exit in overworld #xx
...xxx.. - (requires External) Warp to overworld, town, town2, palace, palace2, great palace
------------------------------
Rock pointers
------------------------------
0x479F - lv 1
0x47A1 - lv 2
0x47A3 - lv 3
0x47A5 - lv 4?
0x1879F - lv 5
0x187A1 - lv 6
0x187A5 - lv 4
"We are merely sprites that dance at the beck and call of our button pressing overlord."
Offline
For no reason, I just made an IPS patch which after expanding the rom, turns Zelda 2 into a version that can switch between the hack "Zelda II Part 2" (by the_icepenguin) and the original zelda 2. This is just a test...
Enter North Castle to change which game.
Apply the patch to an expanded Zelda 2.
"We are merely sprites that dance at the beck and call of our button pressing overlord."
Offline
Pages: 1