Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,436,850
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-19-24 06:41 PM
Guest: Register | Login

0 users currently in ROM Hacking | 3 guests | 2 bots

Main - ROM Hacking - Zelda II ASM Hacks New thread | New reply


Trax
Posted on 07-08-09 09:25 AM Link | Quote | ID: 110138


Yellow Stalfos
Level: 71

Posts: 849/1145
EXP: 3034145
Next: 132969

Since: 07-06-07
From: Québec

Last post: 3620 days
Last view: 2872 days
I made a video of some of the tweaks and ASM Hacks I could pull off with Zelda II: The Adventure of Link. I master the ROM's structure quite well, and I managed to make enemies a lot more challenging. Some modifications are simple variable tweaks, while some others involve ASM code written from scratch. If you think the original Zelda II is hard, then this kind of enemy hack will be considered extremely difficult to handle. You must compare this video to the original game to really see the differences in how enemies move and attack...

My main objective is to make the enemies less predictable, by adding or reinforcing the randomization factor...



Details of the tweaks:

Myu: moves faster, its routines are mixed with those of Bit/Bot.
Bit: moves faster.
Bot: jumps higher and farther, both X/Y velocities are randomized.
Moa: its routine is hard to tweak coherently, so I just made it to not freeze when it's hit.
Ache: moves faster overall and goes down earlier when closing in.
Acheman: this one has code written from scratch. Moves faster since Ache and Acheman share some code. Shoots three fireballs, either high or low, at random. Attack delays are shortened.
Bubble generator: each bubble has its speed randomized.
Rock generator: in the video, speed was simply increased, but I could randomize just as easily as with the raising bubbles generator.
Red Deeler: move faster overall, horizontally and up/down its rope.
Blue Deeler: same as Red Deeler, and jumps higher and farther on ground, randomized.
Bago Bago: speed increase, generated at a higher rate, and 100% chance to shoot a rock at Link when flying up.
Red Octorok: jumps at random heights, and the walking Octorok moves faster.
Orange Moblin: moves faster, higher and randomized X/Y velocities of spears.
Red Moblin: this was more tricky because there's a lot of shared code. Keeps a greater distance from Link.
Blue Moblin: just a mix of Red and Orange Moblin.
Orange Daira: moves faster when approaching Link and attacks at a higher rate.
Red Daira: moves faster and axes are thrown at higher velocity.
Goriya: this one is another tricky routine. Boomerangs move faster, fly farther, and come back faster.
Lowder: move faster overall, and reaction time to turn around is shortened a lot.
Moby generator: instead of going straight down, it moves diagonally first. Speed increased.
Megmet: jumping height increased and randomized, X velocity increased.
Geldarm: stays shrinked for a much shorter time and restretches faster.
Dumb Moblin: generation rate increased, speed increased and randomized.

There are many things that need improvement or adustments, but I think the potential is quite interesting overall. The routines are mixed between similar enemies, so it makes it hard to modify a single enemy. Modifying one enemy can cause unwanted changes to another...

Another problem arises with enemies that span over more than one world. These enemies' routines (Myu, Bit/Bot, Ache, Moa, Deeler, Octorok, Bago Bago) are stored in Bank 7, which is loaded permanently during gameplay. However, Bank 7 is tightly packed: no more than 75 unused bytes. This means you have to create code in multiple banks for the same enemy. Not doing so will cause the game to crash when one of these enemies appear on screen...

Comments and ideas are welcome...


MathOnNapkins
Posted on 07-08-09 03:50 PM (rev. 2 of 07-08-09 03:51 PM) Link | Quote | ID: 110141


Super Koopa
Level: 62

Posts: 688/842
EXP: 1934479
Next: 50207

Since: 02-19-07
From: durff

Last post: 4481 days
Last view: 4005 days
If the enemies were like this in the original release of the game I probably would have put my fist through the cartridge.

(Oh and *ahem* nice work.)

____________________
Zelda Hacking Forum
hobbies: delectatio morosa

Mariofan0
Posted on 07-08-09 04:12 PM Link | Quote | ID: 110142


Koopa
Level: 25

Posts: 86/104
EXP: 83090
Next: 6530

Since: 07-01-07
From: Around And Back

Last post: 5396 days
Last view: 5185 days
Posted by MathOnNapkins
If the enemies were like this in the original release of the game I probably would have put my fist through the cartridge.


I Would have to agree with MathOnNapkins on that one.

Yea pretty decent work it really puts the Hard in Hard Core so...

I hope you removed the HP meter for testing purposes... because that is Hard.

____________________
Currently Working On A Website Project Called Club Chaotic

Looking For Supporters For My Website Project Club Chaotic.

Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself.

RetroRain
Posted on 07-08-09 04:25 PM Link | Quote | ID: 110143


Fuzz Ball
Level: 66

Posts: 426/994
EXP: 2436844
Next: 25007

Since: 09-30-07

Last post: 1928 days
Last view: 950 days
It looks interesting but Zelda II should be made to be easier, not harder. I think it is hard enough as it is. But, I'm sure people who are truly masters of the game and want a harder, more challenging game, would welcome this with open arms.

____________________
My YouTube Channel

MathOnNapkins
Posted on 07-08-09 04:29 PM (rev. 2 of 07-08-09 04:32 PM) Link | Quote | ID: 110144


Super Koopa
Level: 62

Posts: 689/842
EXP: 1934479
Next: 50207

Since: 02-19-07
From: durff

Last post: 4481 days
Last view: 4005 days
Oh, and you were asking for ideas Trax, so how about this? Depending on how large the sprite routines are, you might be able to execute them from RAM. That is, if you have any space in RAM available at all. I'm not all that familiar with NES hacking but I thought that the NES has like... 2K of RAM, and the possibility for more RAM with certain mappers in the $6000 region, iirc. Of course, a mapper hack is no trivial undertaking, from what I've heard.

I can't imagine all the RAM in the game is used, anyway. That's the critical factor I guess.

____________________
Zelda Hacking Forum
hobbies: delectatio morosa

Mariofan0
Posted on 07-08-09 04:33 PM Link | Quote | ID: 110145


Koopa
Level: 25

Posts: 87/104
EXP: 83090
Next: 6530

Since: 07-01-07
From: Around And Back

Last post: 5396 days
Last view: 5185 days
Posted by RetroRain
But, I'm sure people who are truly masters of the game and want a harder, more challenging game, would welcome this with open arms.


I agree with you guys again its like we are on the same page here...

Weird...

anyways I might play it but just to sorta fool around or something I was never overly good with the game so...

Kept dieing consistently...

(Game over this and game over that, My Grandmother plays this game better than me.)

____________________
Currently Working On A Website Project Called Club Chaotic

Looking For Supporters For My Website Project Club Chaotic.

Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself.

RetroRain
Posted on 07-08-09 04:34 PM (rev. 2 of 07-08-09 04:37 PM) Link | Quote | ID: 110146


Fuzz Ball
Level: 66

Posts: 427/994
EXP: 2436844
Next: 25007

Since: 09-30-07

Last post: 1928 days
Last view: 950 days
Here is a great ASM hack that to my knowledge, hasn't been done yet:

When you get Game Over and Continue, you start at the entrance to the area or dungeon where you died, rather than start all the way at the beginning of the game. Now THIS I found very annoying in Zelda II. The only time this worked is when you reached the Great Palace. It should be done for the other dungeons as well. What's the point of travelling to the dungeon again from the very beginning? And, this would make the game less frustrating, easier, and more likely keep the player interested in continuing.

When I got Game Over and had to start from the beginning of the game again, I would turn the power off and play again some other time.

However, if I started in the dungeon where I died, then I'd be more likely to play some more.

____________________
My YouTube Channel

Mariofan0
Posted on 07-08-09 04:37 PM Link | Quote | ID: 110148


Koopa
Level: 25

Posts: 88/104
EXP: 83090
Next: 6530

Since: 07-01-07
From: Around And Back

Last post: 5396 days
Last view: 5185 days
Yea That and being unable to enter the dungeons again after you beat it... and If you missed an important Item... Your Screwed...

____________________
Currently Working On A Website Project Called Club Chaotic

Looking For Supporters For My Website Project Club Chaotic.

Currently Looking For Coders For Club Chaotic. I'm Thinking PHP myself.

RetroRain
Posted on 07-08-09 04:41 PM Link | Quote | ID: 110149


Fuzz Ball
Level: 66

Posts: 428/994
EXP: 2436844
Next: 25007

Since: 09-30-07

Last post: 1928 days
Last view: 950 days
Posted by Mariofan0
Yea That and being unable to enter the dungeons again after you beat it... and If you missed an important Item... Your Screwed...
That should be relatively easy to fix. There is most likely an address that is flipped from 0 to 1 whenever you beat a dungeon. Zero = Not Beaten. One = Beaten. You would simply NOP out the code that does this, and you could re-enter the dungeon as many times as you want.

____________________
My YouTube Channel

Marzen
Posted on 07-08-09 05:15 PM Link | Quote | ID: 110153


Giant Koopa
I might be alive, but chances are that's not the case.
Level: 73

Posts: 555/1273
EXP: 3418754
Next: 67114

Since: 10-15-08
From: Lulzerland

Last post: 4581 days
Last view: 4487 days
Now I want to hack Zelda 2 with all those insane enemies and make a really hard hack... MUST GET ZELDA 2 EDITORS WORKING ON COMPUTER.

Very nice, and hard looking. The game was a pain in the ass to beat, that's true enough. Now it'll be impossible.

____________________

DiscoPeach
Posted on 07-08-09 08:22 PM Link | Quote | ID: 110168


Octoballoon
Level: 31

Posts: 142/175
EXP: 177044
Next: 8319

Since: 04-15-08
From: Puerto Rico

Last post: 4547 days
Last view: 4528 days
I remember the controller I broke because of this game. That was an immediate twirl it around once in order to get sufficient inertia and centrifugal force to maximize the punishment on the controller as it hit the floor.

All I have to say is thank God emulators have save states. Dude, your enemy ASM hacks are insane in the fucking membrane. Brilliant! That mod's gonna be harder than taking a shit without squating.

____________________
MathOnNapkins' Zelda 3 (ALttP) Hacking Forum on Arc-Nova: http://arc-nova.org/forum/index.php?board=7.0

Trax
Posted on 07-08-09 11:04 PM Link | Quote | ID: 110173


Yellow Stalfos
Level: 71

Posts: 850/1145
EXP: 3034145
Next: 132969

Since: 07-06-07
From: Québec

Last post: 3620 days
Last view: 2872 days
Games I'm most familiar with tend to become too easy over time, although I can recognize that Zelda II is relatively hard if you compare to the games of its time, or the other games of the Zelda series. That said, it's a natural tendency to create a hack relative to one's own skills. Of course, there are elements in the video that I find a bit too hard myself. That's one of the things that gets easily underestimated in the hacking ROM world. When you make many things harder in the same game, the difficulty accumulates and you end up with something annoying instead of truly challenging and fun...

I plan to make these tweaks a part of a future hack, although it's not cast into concrete, far from it. I'll probably trade off speed for randomization, for example. I think one thing that annoyed many players in Zelda II was repetitiveness. By making enemies more random, it adds to the fun factor...

I plan to make random encounters more random as well. For example, if you hit a demon on grass in the overworld, the area you end up in scrolling side view will be chosen at random from a few possible areas of that type. Basically, you have 7 possible terrain types where you can get random fights: desert, grass, forest, swamp, graveyard, road and lava. Each of these have 4 different areas throughout Hyrule: northwest, southwest, northeast and southeast. And each area have two modes: weak and strong. This means 56 different areas for the entire game. Looks pretty good from afar, but when you've been through your 17th encounter in the same swamp, you get tired of it. If you can randomize from, say, 4 possible areas for each region, type and mode, you crank up to 224 possible encounters. Looks much better...

RetroRain, if you want the game to become easier, then you could just use the same variables as I did, and use them to slow down enemies and such...

MathOnNapkins, the idea of using the Cartridge RAM is a nice one, indeed. That would definitely remove the problem of enemies seen in multiple worlds. Cartridge RAM is 0x2000 bytes, located between 0x6000 and 0x7FFF. The Cartridge RAM structure is weird, the unused space is not simply set to 00 or FF, I know there are already many things there, like enemy bits and attributes, and some code as well. But finding unused spots should be fairly easy to do...

RetroRain, I agree completely with you, the continue feature of this game was a failure, in my opinion. I guess it would not be that hard to correct. And by using a byte of the Cartridge RAM, the last place visited could even be saved between resets.

By the way, the game is not broken if you forget something important in a temple. For a temple to turn into stone, you need to get the item in it and place the crystal. I'm not sure exactly what would be the point in going back to a temple when it's finished. Except maybe to get a key there...

The code for temple turning into stone is located at 0x479B in the ROM (add 0x10 because of the header) for West Hyrule (and probably the same relative offset for East Hyrule), and it simply checks if you have the corresponding item (Candle, Glove, etc.) and the corresponding crystal placed. Every time the overworld map is loaded, the routine is called to change the data as required. If you want to avoid this check altogether and always have the possibility to revisit palaces, it's simple: go to 0x479B, and change A2 for 60. Done!

You can also turn palaces into anything you want. Go to 0x47BF and replace 0B by anything between 00 and 0F. Done!


Jigglysaint
Posted on 07-09-09 10:38 PM Link | Quote | ID: 110225


Red Paragoomba
Level: 20

Posts: 46/62
EXP: 38519
Next: 3920

Since: 04-04-07

Last post: 4610 days
Last view: 2348 days
I would rather see the temple stone thing used to alter the landscape, rather than make areas un-visitable. I mean you could have each crystal control a specific gate that when you place the crystal, opens an area that has items and stuff. In fact there would be some great ASM hacks that could be added that could expand the gameplay somewhat. Perhaps the stones could work in reverse, being stoned untill you get the palace key, then it shows up when you find it.

Trax
Posted on 07-10-09 02:04 AM Link | Quote | ID: 110238


Yellow Stalfos
Level: 71

Posts: 852/1145
EXP: 3034145
Next: 132969

Since: 07-06-07
From: Québec

Last post: 3620 days
Last view: 2872 days
That's right, and the great thing with it is that there is unused space right after the routine that controls how the overworld is modified...

Main - ROM Hacking - Zelda II ASM Hacks New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.026 seconds. (347KB of memory used)
MySQL - queries: 102, rows: 136/136, time: 0.017 seconds.