(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
04-25-24 09:50 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Expanding Zelda 2 New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
Dwedit

Rope
フクト オン フォニクス








Since: 11-17-05
From: Chicago!

Last post: 6277 days
Last view: 6277 days
Posted on 01-11-07 11:55 AM Link | Quote
EDIT: Line 10 of the file is incorrect, reset vector should be modified to 64 FF instead of 74 FF. Damn ines header... I'm also finding other "off by 10" errors throught the file, just ignore the "file" addresses specified and just add 30010 yourself. I wish acmlmboard supported attachment editing...


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.

Example!


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.

Attachments

zelda2_expand.txt (1372b) - views: 58
zelda2_overworld.txt (1453b) - views: 27



(edited by Dwedit on 01-11-07 06:09 AM)
(edited by Dwedit on 01-11-07 08:24 AM)
(edited by Dwedit on 01-11-07 08:26 AM)
(edited by Dwedit on 01-11-07 08:27 AM)
Raccoon Sam

Boomerang Brother
Custom Title








Since: 11-20-05
From: Correct

Last post: 6276 days
Last view: 6275 days
Posted on 01-11-07 01:14 PM Link | Quote
Truly magnificent, Dwed'!
I hope Trax sees this. His Zelda II Game editor will probably take advantage from this.
the_icepenguin

Bit








Since: 05-28-06

Last post: 6275 days
Last view: 6275 days
Posted on 01-11-07 09:39 PM Link | Quote
The only part I don't get is expanding the ROM.

Can someone help me with this?

Edit: This part:

"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."


(edited by the_icepenguin on 01-11-07 03:41 PM)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6276 days
Last view: 6276 days
Posted on 01-11-07 10:22 PM Link | Quote
Lunar IPS is a good patching tool.
Dwedit

Rope
フクト オン フォニクス








Since: 11-17-05
From: Chicago!

Last post: 6277 days
Last view: 6277 days
Posted on 01-12-07 12:23 PM Link | Quote
Expanding roms is easy, just get a hex-editor which supports copy-paste and insert mode.




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_icepenguin's hack "Zelda II Part 2" 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.

File: z2_part2.ips


(edited by Dwedit on 01-12-07 07:24 AM)
RadioShadow









Since: 06-25-06

Last post: 6284 days
Last view: 6276 days
Posted on 01-15-07 01:34 AM Link | Quote
^ I used Hexwork Shop to expand my AW2 Ember Hack from 8MB to 16MB!
Trax

Red Tektite


 





Since: 05-01-06
From: Québec

Last post: 6276 days
Last view: 6276 days
Posted on 01-15-07 09:38 PM Link | Quote
Good good good ! It means much more space to store level data and stuff...

Yet, I'm having doubts about a few things. Dwedit said the bits that determine whether an object was taken or not are shared by all palaces in the same RAM space. But how about objects like Heart Containers, Bagu's Note, Mirror, etc ? Can you place them in the second half without problem ? Does the expansion affects saved games or saved states ?
Dwedit

Rope
フクト オン フォニクス








Since: 11-17-05
From: Chicago!

Last post: 6277 days
Last view: 6277 days
Posted on 01-16-07 01:34 PM Link | Quote
When you collect the object, it will remove the object from both halves of the rom. The object can be placed in either half.
I think this affects collectables, locked doors, and everything else changable that gets saved. I think it's stored per map# per screen# in SRAM somewhere. I don't know if it tries to compact it down to the small list of items used by the original game when you save, probably not. To find out, look around in the SRAM area used by storing collected item bits (bits in a set get turned from 1 to 0 as they are collected), and see if the entire set is in the savegame or not. With ~640 maps in the game total, there should be ~320 bytes to hold that. I'm still not 100% sure how the game stores item collection state.

I have noticed that in the original game beating horsehead and taking the key removes one of the other keys from the first palace.
Trax

Red Tektite


 





Since: 05-01-06
From: Québec

Last post: 6276 days
Last view: 6276 days
Posted on 01-16-07 07:06 PM Link | Quote
So it would mean some objects share the same "bit pointer"...
Since you can't pinpoint a bit in SRAM, there must be another mechanism, and maybe a specific table somewhere in the ROM...

If we can find a pattern in how the objects bits are set (or cleared), then we could determine if there's more space around to add objects. There's probably at least a few unused bytes that could be used for extra objects bits, even in the save data block. One byte means control over 8 objects. It adds up quickly without taking much space...
Ice Ranger

Grizzo








Since: 11-24-05

Last post: 6285 days
Last view: 6275 days
Posted on 01-16-07 08:55 PM Link | Quote
I tried documenting the bits once. Gave up pretty quick after doing about half of the First Palace. I gave you a copy of my notes Trax, so it should be in the section of RAM around $0600. It covered locked doors (heh, fun putting extra locked doors in the first palace), keys, experience bags, items (I don't know how to determine which item), and I think that's about it. Pretty much anything you can only do once.
the_icepenguin

Bit








Since: 05-28-06

Last post: 6275 days
Last view: 6275 days
Posted on 01-17-07 08:54 AM Link | Quote
I was wondering if someone here would help me through this.

I just can't figure it out, and it's frustrating!

Please help!

Edit: I guess you can just PM me or something.


(edited by the_icepenguin on 01-17-07 02:54 AM)
Trax

Red Tektite


 





Since: 05-01-06
From: Québec

Last post: 6276 days
Last view: 6276 days
Posted on 01-17-07 11:43 PM Link | Quote
Originally posted by Ice Ranger
I tried documenting the bits once. Gave up pretty quick after doing about half of the First Palace. I gave you a copy of my notes Trax, so it should be in the section of RAM around $0600. It covered locked doors (heh, fun putting extra locked doors in the first palace), keys, experience bags, items (I don't know how to determine which item), and I think that's about it. Pretty much anything you can only do once.

Yes, I've seen that. Starting from 0x607. Seems like it takes a bit of work to find all this stuff. What I'm looking for is the logical association between the byte, the bit and the item...
Trax

Red Tektite


 





Since: 05-01-06
From: Québec

Last post: 6276 days
Last view: 6276 days
Posted on 02-03-07 03:09 AM Link | Quote
D'ah... I couldn't do it after all. I can't produce a working ROM with Dwedit's explanations. Everything is okay until the very last set of modifications. Then, the ROM just doesn't load, and stays black...

Actually, I wonder what's up with the last opcodes:

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


What's the point in repeatedly shifting the accumulator and store it in the same memory spot?
Zepper

Paragoomba








Since: 09-04-06
From: Brazil

Last post: 6277 days
Last view: 6276 days
Posted on 02-03-07 03:19 AM Link | Quote
That's how the mapper 1 (MMC1) works. Go into nesdev wiki to learn a bit about MMC1. You know, hacking isn't byte changes only...
Trax

Red Tektite


 





Since: 05-01-06
From: Québec

Last post: 6276 days
Last view: 6276 days
Posted on 02-03-07 06:02 PM Link | Quote
I didn't know that. Thanks for the link...

Anyway, I guess the only reason why I can't expand the ROM is because the original ROM I'm using is somehow corrupted...
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Expanding Zelda 2 |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.021 seconds; used 420.66 kB (max 530.78 kB)