News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Author Topic: zelda 2 ASM hacking and improvements  (Read 9608 times)

njosro

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #20 on: February 21, 2018, 10:17:07 pm »
@ultimaweapon - Use the zelda 2 disassembly I linked to in my previous post. It has the information you need.

Here is an excerpt from bank 1. This particular section is thanks to Trax! The bytes in this table start at 0x54E5 in rom.
Code: [Select]
Enemy Attributes (Palette, Experience Code, etc.)                 
                                                                             
"xx.. .... Palette Code (0-3)                                                  "
"..x. .... No Damage from Sword (needs Fire)                                   "
"...x .... Steals Experience Points                                            "
".... xxxx Experience Code (0-F)                                               "
                                                                             
"40 .x.. .... Fairy                                                            "
"40 .x.. .... Red Jar (or Exp. Bag or Magic/Heart Container)                   "
"40 .x.. .... Locked Door                                                      "
"C2 xx.. ..x. Myu                                                              "
"C1 xx.. ...x Bot                                                              "
"81 x... ...x Bit                                                              "
"94 x..x .x.. Moa                                                              "
"C2 xx.. ..x. Ache                                                             "
"80 x... .... ?                                                                "
"90 x..x .... ?                                                                "
"84 x... .x.. Acheman                                                          "
"10 ...x .... Bubble Generator                                                 "
"10 ...x .... Rock Generator                                                   "
"81 x... ...x Red Deeler                                                       "
"C2 xx.. ..x. Blue Deeler                                                      "
"02 .... ..x. Bago Bago Generator                                              "
"92 x..x ..x. Bago Bago                                                        "
"84 x... .x.. Red Octorok - Jumping                                            "
"84 x... .x.. Red Octorok - Moving                                             "
"40 .x.. .... Elevator                                                         "
"44 .x.. .x.. Moblin - Orange                                                  "
"85 x... .x.x Moblin - Red                                                     "
"C5 xx.. .x.x Moblin - Blue                                                    "
"48 .x.. x... Daira - Orange                                                   "
"89 x... x..x Daira - Red                                                      "
"45 .x.. .x.x Goriya - Orange                                                  "
"85 x... .x.x Goriya - Red                                                     "
"C6 xx.. .xx. Goriya - Blue                                                    "
"C2 xx.. ..x. Lowder                                                           "
"00 .... .... Moby Generator                                                   "
"51 .x.x ...x Moby                                                             "
"C3 xx.. ..xx Megmat                                                           "
"83 x... ..xx Geldarm                                                          "
"00 .... .... Dumb Moblin Generator                                            "
"50 .x.x .... Dumb Moblin                                                      "
"02 .... ..x. ?                                                                "

There is a table like this in each bank. search through the disassembly for "experience code" and you should find it.

edit:

The same recommendation goes for you too, ShadowOne333. It's great you found the relevant RAM addresses and opcode locations! These are readily available in the disassembly, which you can follow along as you discover new things. And if you would like to improve your ASM you should look through some of it because it is labeled and commented. Search the word "manual" in bank 0 of the disassembly and you'll find relevant code for the up + A thing.
« Last Edit: February 21, 2018, 10:25:22 pm by njosro »

ultimaweapon

  • Full Member
  • ***
  • Posts: 112
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #21 on: February 24, 2018, 03:42:57 pm »
@njosro - From what I read, it only deals with enemies in Western and Eastern Hyrule and Death Mountain. It doesn't give that info on palace enemies. I need that info for Mounted Ironknuckle. In my hack, no matter what I do, when you beat Mounted Ironknuckle, he only gives you 10 exp, and I can't seem to fix that.
Trust in the Heart of the Cards

ShadowOne333

  • Hero Member
  • *****
  • Posts: 906
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #22 on: February 24, 2018, 07:43:21 pm »
@njosro - From what I read, it only deals with enemies in Western and Eastern Hyrule and Death Mountain. It doesn't give that info on palace enemies. I need that info for Mounted Ironknuckle. In my hack, no matter what I do, when you beat Mounted Ironknuckle, he only gives you 10 exp, and I can't seem to fix that.
Here:
http://datacrystal.romhacking.net/wiki/Zelda_II:_The_Adventure_of_Link:Enemy_Data

Jeville

  • Sr. Member
  • ****
  • Posts: 332
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #23 on: February 25, 2018, 11:10:18 am »
Link doll: Make this increase your starting lives by one permanently. You start with 3 lives as normal, getting a doll increase it to 4, and it will stay 4 after a game over and when booting the file up again. There are only 6 dolls that are gone permanently after pickup, bringing the total starting lives to 9. The 1-up you get via experience points should either be eliminated, or grant a temporary increase like it does now.

Blue jar: Increase the amount of magic it gives.
« Last Edit: February 25, 2018, 11:29:08 am by Jeville »

PresidentLeever

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
    • Mini-Revver
Re: zelda 2 restart from current palace after game over
« Reply #24 on: February 25, 2018, 12:55:26 pm »
Nice work :)

Would be cool to see these things fixed:
-sword attack is canceled if you swing right before landing or jumping
-need to reselect spells in every new screen/room before use and after using a spell once you need to reselect it again
-accumulated exp is wasted when you finish a dungeon and level up instantly
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

Trax

  • Sr. Member
  • ****
  • Posts: 423
    • View Profile
    • Trax ROM Hacking
Re: zelda 2 restart from current palace after game over
« Reply #25 on: February 27, 2018, 11:18:36 pm »
NJosro, good to see that you're putting some efforts into making the code more adequate and avoid unwanted side effects. This post is not meant to be any kind of "told ya" rebuke, but well, I literally told you the first time I saw the code in writing.

I remember the first version of your code (or at least one of the first) messed with the function at CF30, and it had to be bad for some other crucial aspect of the game. One is what I call Item Presence Tables. Each part of the game keeps track of what objects are already taken or not. This data is kept in RAM at 6xx, and saved to cartridge RAM so it is memorized between saves. The routine at 1C2B3 uses the routine at CF30 (Region Code * 5 + World Code) to point to the correct location in RAM.

Do you mind explaining what happens in your code? If I understand correctly, you created your own table with the starting Area Codes for each palace. Makes sense, since the original code only relies on the player being in Palace 7 and simply resets the Area Code to 00, which works for Palaces 1, 3 and 7 (and North Castle, obviously), but not the others, since the palace entrances are not always Area Code 00 in their respective ROM banks. This is good also if someone shuffles the rooms around, you can simply edit the table with the correct Area Codes.

By the way, I don't want to look too harsh regarding this project, because the last thing I want is to scare people away from the great game that is Zelda II. So please, make bold moves, and I will be glad to add my input. I nearly disassembled the whole game, so I know a lot about its internal coding.

February 28, 2018, 12:17:39 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Now, for some other ideas evoqued in this thread.

The GHOST spell is interesting, but it could easily become a game breaker, especially with bosses. An alternative would be to have a limited invincibility time, that could even increase with your Magic level. Or it could be a number of hits before the spell wears off, and again, more hits as you level up.

I like the idea of a double jump. It could be quite tricky to achieve. There are several variables that keeps track of Link's "status", like contact with other surrounding tiles, whether he is falling, whether he is in mid-air after a jump. All this must be taken into account. You also have to decide if you want to be able to change direction for your second jump. That would be awesome. If you want to start somewhere, try RAM 479 (related to mid-air status), and A7, which has bitfields that keeps track of Link's contact in all four directions. The Jump spell modifier is RAM D0. Spell spell modifier is DE, but it's used for other things, so be careful.

For text speed, there are 4 variables you can use to make text type faster (or slower). Lower value means faster because they are delays, in frames. All in Bank 3. All delays related to letters are kept in RAM 566.

- Delay before text starts typing. F615 in ROM. Default is 2A = 42 decimal = 0.7 second.
- Delay between letters. F74E in ROM. Default is 05 = 5 decimal = 0.08 second.
- Delay after normal line break, letter code FD. F657 in ROM. Default is 0B = 11 decimal = 0.18 second.
- Delay after long line break, letter code FE. F65D in ROM. Default is 2D = 45 decimal = 0.75 second.

As for the typewriter sound, you can change it to anything that already exists, so it may not produce something harmonious. The offset is F747. Default is 60. Normally, sounds in are single bitfields, so a value of 60 seems peculiar. Try other values for possibly weird effects. A few examples:

01 = Death
02 = Sword hits something solid
04 = Spell spell
08 = Flute tune
10 = Big Door in Hidden Kasuto appears
20 = Random tune
40 = Force Field in Palace 7 removed
80 = Boss defeated
C0 = Fairy

There are 4 variables in RAM for sound effects: EC, ED, EE and EF. Default for typewriter is EC, but you can change it at F749 in ROM to have access to other "sets" of sound effects. RAM EB is for music. I don't think there are many sounds in the library that could adequately replace the typewriter sound, unless we could somehow import the sound used in the Japanese version, which sounded a bit more like someone talking (as far as the Famicom sound chip could produce).
« Last Edit: February 28, 2018, 12:17:39 am by Trax »

njosro

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #26 on: February 28, 2018, 01:34:23 pm »
It's great to hear from you again, Trax.

Quote
This post is not meant to be any kind of "told ya" rebuke, but well, I literally told you the first time I saw the code in writing.

Yes, I had that coming hahaha
I was so tired of messing around with the original code that year. I just left it even though it was flawed. But this version doesn't do any weird stuff :) Actually I'm a lot more familiar with the game's inner workings now thanks to making those editors and using your disassembly.

Quote
Do you mind explaining what happens in your code?

I created my own table for the exact reason you stated. I made it find the correct entry in the table by doing my own calculation instead of the one at CF30. I borrowed ideas from it though (of course).

LDA $706      ; get region
ASL         ; x2
ASL         ; x2
CLC
ADC $707      ; + world
ADC $748      ; + overworld area index
SEC
SBC #$34      ; -52

...And then it looks up the scene index (or "area code" in your terminology) from the table I created:

TAX
LDA $AB30,X      ; @ AB33, AB34, AB36, AB38, AB3B, AB3D, or AB3F
STA $561      ; set scene index


The table is not filled contiguously. There are gaps between the table entries to make the formula work.

Quote
I don't want to look too harsh regarding this project

Critiquing the code and offering your input makes it more satisfying and worthwhile to me. I will do the same if I think I have something to offer (even though I'm not as experienced).

ShadowOne333

  • Hero Member
  • *****
  • Posts: 906
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #27 on: February 28, 2018, 04:44:33 pm »
Mmmm I tried looking around the disassembly but I couldn't find anything related to the Death Counter at all.
I only want to bypass the count for when you save normally, but I cannot find anything on it.
I think it's handled by a STY/LDY opcode. The Death counter is stored at $742A in RAM.

I searched around in the Manual Save subroutine from the disassembly, but the only bit which seems related to the save is this:

Code: [Select]
LA1A5                                                                          ;
jsr      bank7_Remove_All_Sprites      ; 0x21b5 $A1A5 20 4C D2                 ;
jsr      bank7_Mute_music_when_loading_between_areas; 0x21b8 $A1A8 20 3D D0    ;
lda      #$02                          ; 0x21bb $A1AB A9 02                    ; A = 02
sta      $076C                         ; 0x21bd $A1AD 8D 6C 07                 ;; begin a special routine. Changing this value has the most 'automation' ;(00=restart from zelda's castle with 3 lives,  01=no routine, 02=die, 03=wake up zelda, 04=roll credits, 06=show the lives then restart the scene)
sta      $076D                         ; 0x21c0 $A1B0 8D 6D 07                 ;

The important part here is the LDA #$02.
This is the byte that tells the game what to do when it detects the Up+A press after a Pause.
However, I don't see a JSR or any jump near that section to at least try to pinpoint where it causes the counter to go up by 1 whenever it detects a save/death by means of a button press.

I am really noobish when it comes to ASM, so I am trying to learn bit by bit here. :P
Any kind of help will be appreciated.

njosro

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #28 on: February 28, 2018, 06:49:58 pm »
Hey shadowone sorry to leave you in the dark for a bit. I actually did create a reply about the save thing, but I was dumb and didn't copy the text. When I tried to post, I had been inactive too long and rhdn booted me out, so I lost the reply. I intended to do it again the next day but forgot.

I'll reply properly soon.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 906
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #29 on: February 28, 2018, 11:13:44 pm »
Oh don't worry njosro :)
I made some debugging on my part with Fceumm, and that's where I got the idea that the code might be using STY/LDY opcodes.
I am not familiar with those at all, so I couldn't make much out of them, but I'll try to read some basic ASM examples for those and see what I can gather :)

Thanks for taking the time for trying to help too!
Any help will be incredibly welcomed for sure :)

Trax

  • Sr. Member
  • ****
  • Posts: 423
    • View Profile
    • Trax ROM Hacking
Re: zelda 2 restart from current palace after game over
« Reply #30 on: March 01, 2018, 12:24:44 am »
Oh, and by the way, sorry for the super old Mac OS X editor. I've been working on and off on a better version, and I should have made at least a minor update since then. Shame on me. I think I made a thread in this forum quite some time ago about all the new features of my editor, which I now call Sword II.

If you want to change the magic requirements for spells, the table is at ROM offset 0D7B. Also, the spell effects bits are in the table immediately after, at 0DBB.

0D7B: Table for Magic Needed for Spells (40 bytes)
      
40 30 30 20 20 20 20 20      Shield
60 50 40 40 28 20 18 10      Jump
8C 8C 78 78 64 64 64 64      Life
A0 A0 78 78 50 50 50 50      Fairy
F0 A0 78 3C 20 20 20 20      Fire
F0 F0 A0 60 50 40 30 20      Reflect
F0 E0 C0 A0 60 40 30 20      Spell
F0 F0 F0 F0 F0 F0 C8 80      Thunder

----

0DBB: 01 02 04 08 10 20 40 80   Table for Spell effects bits (8 bytes)

Each row in the first table represents a spell, whereas each column represents a magic level, from 1 to 8. Keep in mind that a single square of magic in the meter is worth 32 (20 in hex) units. So the first byte in the table means the Shield spell when you are at Magic level 1 costs 64 units (40 in hex), or 2 squares.  And for some reason, you have to divide the values in the table by 2 to get the correct cost displayed in the Pause pane.

The spell effects bits mean that you can combine spells in any combination you want. Bit 0 is for Shield, bit 1 for Jump, and so on. If you take the first byte and set bits 0 and 1, which gives you the value 03, the Shield spell will also cast Jump at the same time. A value of FF would cast all the 8 spells simultaneously, but I think some spells may cancel others out. Experiment.

As for experience given by enemies, there is an universal table of preset experience values in Bank 7. You can set one of the 16 possible experience values to any enemy. The table is separated into low and high bytes, to account for values higher than 255. What's weird is that there are three tables, the second one seemingly a remnant of the Japanese version, since the numbers correspond. Here are the tables in question:

1DDC0: Experience Table Low Byte (10 bytes)

00 02 03 05 0A 14 1E 32 46 64 96 C8 2D F4 BC E8

1DDD0: 00 01 02 05 0A 14 32 64 C8 F4 E8 D0   Table for ? (C bytes)

Looks like the Japanese version score table...

1DDDC: Experience Table High Byte (10 bytes)

00 00 00 00 00 00 00 00 00 00 00 00 01 01 02 03

The values from table 1DDDC and 1DDC0 are combined to form 2-byte numbers.

The index into these tables is what is used in the Enemy Attributes table. For example, in bank 4 (Palaces Type A), Enemy Attributes are at 114D5. One byte per enemy. The bits 0-3 are for the Experience Type (or index). For example, the Guma is enemy code 1E. Value index 1E in Enemy Attributes table is 87. Bits 0-3 make 7. So the experience Guma gives is index 7 in the Universal Experience table, which is hex 32 = 50 pts.

Also, keep in mind that changing these values will not affect the little floating numbers that appear after you defeat an enemy. These are mapped in another table, at 1DD4C in Bank 7. Each floating number is made of two tiles. Small numbers (0, 2, 3, 5, 10) have the first tile as a transparent one. Here are the tiles you can use with the original graphics in the game:

F5 = Nothing
A0 = 10
A2 = 5
A4 = 2
A6 = 7
60 = 3
6C = 15
9C = 0
9E = 00

If you wanted a number that can't be made with one or two of these tiles (such as 40), you'd have to edit the graphics in the game.

ultimaweapon

  • Full Member
  • ***
  • Posts: 112
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #31 on: March 01, 2018, 11:29:29 am »
@TRAX - How is your process with Sword II? I remember you stating you were also looking to create some new moves like a charged sword attack.
Trust in the Heart of the Cards

PowerPanda

  • Jr. Member
  • **
  • Posts: 15
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #32 on: March 01, 2018, 01:49:38 pm »
First off, thank you so much for the existing hacks and utilities. I just did a full playthrough combining the easy-type hack with your restart from the current palace, along with using a utility to speed up the text, and it was like playing a new game. I ran into a bug in Palace 6 where the 2nd mounted knight boss would not appear, but taking an intentional game over fixed the game, so I don't know what happened there.

Here are some possible changes that I think would improve the Zelda II experience.

1. Health drops
There are 2 magic vials available right now, the blue ones, which refill 16 points of magic, and the red ones, which refill all magic. What if the refill for the blue vials was doubled to 32, and the red vials refilled one to two bars of health instead? In the current game, I always, ALWAYS cast "Health" before picking up a red vial anyway.

A special consideration would need to be given for the red vial secrets on the overworld. They could be replaced with fairies in 1 of 2 ways:
1. Do a recolored fairy sprite that restores magic.
2. Change fairies so that they restore health and magic, like in later Zelda titles.

2. Spells
There are two spells I felt were missing from the game:
Sword - Doubles Link's damage. There are a lot of enemies that are just a pain to fight, so this would reduce the length of battles. Boss HP might need to increase to make up for it though. I could see this replacing "Spell", but I'd want to gain it before the Death Mountain trip.
Run - Increases Link's movement speed by 50%. It always felt weird to me that you could double your jump height, but not your speed. One note on this spell is that it would also make Link jump further. I envision it replacing "Fairy", and changing the 2-3 screens in the game where Fairy is needed into pits that you must long-jump.

ultimaweapon

  • Full Member
  • ***
  • Posts: 112
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #33 on: March 01, 2018, 05:28:21 pm »
@PowerPanda - I believe IcePenguin's hack Shadow Of Night has a DASH spell in place of SPELL spell. It's very challenging, but a good hack. https://www.romhacking.net/hacks/728/
Trust in the Heart of the Cards

PowerPanda

  • Jr. Member
  • **
  • Posts: 15
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #34 on: March 01, 2018, 05:55:43 pm »
How is this for a PoC for making the Health bar Hearts instead of a single bar? :P



I struggled quite a bit because the game uses some kind of background colour for keeping track of the health, which is why I ended up putting a blue colour around the hearts so that this effect is not seen while in gameplay.

I am also thinking about making the Magic meter a single block instead of segmented blocks, but I'm not sure yet, this is how it'd look:


Some might like it, some might not.
In the meanwhile, I'll leave it as segmented blocks instead.

Hmmm... I like the idea. Seems like you're just adding a blue mask over the top of a sliding scale. That's a genius solution. Since this game is unique in having "Magic Containers" just like heart containers, could you use the same solution on the magic bar? I'll put a mockup below. I'm guessing that the problem with the colors comes from the palettes? Do the magic and life bars use the same palette of white/blue/red/transparent? If so, I'll change my mockups to accommodate that.

However, there are a few things to take into consideration. In other Zelda games, the hearts have 3 states: full, half, and empty. However, each bar in Zelda 2 actually has 8 states, one for each pixel. One of those pixels is the blue/white line between each container, which means that one container's State 8 is graphically indistinguishable from the next's State 1. (That's why you can still be alive even when it appears you have "0 health". You're actually just in State 1.) In yours, because of the white outlines, States 7&8 and the next container's States 1&2 are all indistinguishable, meaning that the player's view is only 50% accurate. It might be good to remove the white outlines. Here's a picture illustrating:
http://imgur.com/VBnvD6v

Put together, here's a mockup of what I think it could look like:
http://imgur.com/Bb5hwdo

EDIT: Still new to this forum, and can't figure out how to embed images.

Trax

  • Sr. Member
  • ****
  • Posts: 423
    • View Profile
    • Trax ROM Hacking
Re: zelda 2 restart from current palace after game over
« Reply #35 on: March 01, 2018, 08:02:50 pm »
My editor has a full fledged Overworld editor, you can modify palettes (there are 4), and set any palette to any of the 16 tiles. You can force a terrain "group" to stop with the bracket tool, so that covers places like the hidden palace 6. Now all attributes on key areas are accurately understood, so you can change all of them, and move the key areas around. The "crosshair" tool lets you select and move key areas, but you can also use the popup menu to select them. This means you can also select them by hand even if you can't see them on the map (an area with Y position 0 is out of bounds). You can use the lasso tool to fill, swap or randomize tiles. You can choose a few display settings, like grid and connections between areas. Nothing about the Demons, which could be a nice addition.

The Side View editor is quite advanced, but it doesn't save yet. You have access to all regions. You can change the association between the data and the area code. This is because more than one area can have the same terrain. Change the enemy group for each area. You can modify objects attributes, add or remove objects, modify enemies, add or remove enemies. The enemy sets can be browsed and selected from another window. You can change the area destinations for each of the four sides. You can also edit all the attributes: background map, no ceiling, extra layers, palette set, tile set, area width. In the Towns section, you can set the destinations of doors.

There's also an editor for Link's attributes: attack power, magic names, costs and effects, and level ups names and experience needed. This one is pretty much like before, except I put everything in the same window, instead of using multiple tabs. Plus some sugar, like the attack power differentials for each level. This shows how Link is going to progress as he levels up.

The enemy editor is quite interesting, you get to change all attributes (steals points, immune to Thunder, etc.), the experience code with the master experience table in the same window for reference, which can be modified too. You can change the item type given by the enemy (no item, minor and major). You can also change the damage code of the enemy, and again the damage table for reference, editable.

The text editor still only covers the Towns (no intro or ending), but all 98 dialogs are there. The new feature is that you have a picture that shows exactly how the dialog box will appear in the game, using the graphics from the ROM. There is also the Game Data editor, which contains various data, like beginning values: spells, items, techs, heart/magic containers, lives, crystals. Also, number of enemies to defeat for item, change the health below which it starts beeping, or cancel the beeping completely. Also, the amount of life restored by the Life spell. I could add quite a lot of miscellaneous stuff in there.

I started working on a tile editor (for the Side Views), which lets you edit what tiles are used for objects, the four 8x8 tiles that make the tiles used in layout, tiles palettes, and I will eventually add a way to change which tiles are solid and which aren't. You can see all of this in pictures in this old thread : http://www.romhacking.net/forum/index.php?topic=22077.0

It's been quite some time. I'm just back from a long dry spell of ROM hacking, so that's why the thread is that old. You can see a screenshot of the tile editor, and some of the "latest" progress.

ultimaweapon

  • Full Member
  • ***
  • Posts: 112
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #36 on: March 01, 2018, 09:45:56 pm »
@Trax - I remember seeing those pictures. I definite can't wait for you to finish it, so I could give it a test run.

I'm trying to finish my hack now. I'm nearly there. Just a couple of issues to finish working out.
Trust in the Heart of the Cards

PowerPanda

  • Jr. Member
  • **
  • Posts: 15
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #37 on: March 02, 2018, 04:08:56 pm »
@PowerPanda - I believe IcePenguin's hack Shadow Of Night has a DASH spell in place of SPELL spell. It's very challenging, but a good hack. https://www.romhacking.net/hacks/728/

Thanks for the tip. I tried it, and it works beautifully! Great job, Trax. Do you have that code documented somewhere aside from Shadow of Night so that it could be used in other hacks?

Just to log possibilities, here is the approximate distance the player jumps in different states.
Normal: 4 Tiles
Jump: 5 Tiles
Dash: 6 Tiles
Dash + Jump: 7-8 Tiles

So, for example, if you wanted to replace the fairy spell, you just have to edit all of the sideview sections from the tall vertical climb to pits that are 7 tiles wide. Then, players can only clear it when they have both Jump and Dash.
« Last Edit: March 02, 2018, 05:37:09 pm by PowerPanda »

ShadowOne333

  • Hero Member
  • *****
  • Posts: 906
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #38 on: March 05, 2018, 12:28:44 pm »
Hmmm... I like the idea. Seems like you're just adding a blue mask over the top of a sliding scale. That's a genius solution. Since this game is unique in having "Magic Containers" just like heart containers, could you use the same solution on the magic bar? I'll put a mockup below. I'm guessing that the problem with the colors comes from the palettes? Do the magic and life bars use the same palette of white/blue/red/transparent? If so, I'll change my mockups to accommodate that.

However, there are a few things to take into consideration. In other Zelda games, the hearts have 3 states: full, half, and empty. However, each bar in Zelda 2 actually has 8 states, one for each pixel. One of those pixels is the blue/white line between each container, which means that one container's State 8 is graphically indistinguishable from the next's State 1. (That's why you can still be alive even when it appears you have "0 health". You're actually just in State 1.) In yours, because of the white outlines, States 7&8 and the next container's States 1&2 are all indistinguishable, meaning that the player's view is only 50% accurate. It might be good to remove the white outlines. Here's a picture illustrating:
http://imgur.com/VBnvD6v

Put together, here's a mockup of what I think it could look like:
http://imgur.com/Bb5hwdo

EDIT: Still new to this forum, and can't figure out how to embed images.

I could change the hearts a little bit to accommodate for that.
The only thing I won't be able to do is change the Magic Containers to a green colour.

The HUD uses 4 colours:
$0F (Black/Transparency), $30 (white), $12 (blue) and $16 (red).

White is used for the letters and the magic meter, red for the health and blue for the shadows of the letters and the M/L tiles in the meters.
What I could do is try to change the blue for green, and then swap the colours of the blue and white in the Magic Meter to make the Magic Containers green, but that would also change the letters' shadow as well as the Sword hilt to green.
So I would have to either do that or make the shape of the Magic Containers and make them white as they are right now.

Also, @njosro, is the code in the OP the one for v2.0 of the Restart from Current Palace hack?
I want to give it a try but I think the Hack's page has 1.0 and I'm not sure if v2.0 is the on in the OP or if it is in the works :P

njosro

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: zelda 2 restart from current palace after game over
« Reply #39 on: March 05, 2018, 09:55:13 pm »
Quote from: Trax
The Side View editor is quite advanced, but it doesn't save yet. You have access to all regions. You can change the association between the data and the area code. This is because more than one area can have the same terrain. Change the enemy group for each area. You can modify objects attributes, add or remove objects, modify enemies, add or remove enemies. The enemy sets can be browsed and selected from another window. You can change the area destinations for each of the four sides. You can also edit all the attributes: background map, no ceiling, extra layers, palette set, tile set, area width. In the Towns section, you can set the destinations of doors.

For the terrain data my editor is fine with moving it around, reassigning, add/delete and all that. But for the enemies, were you able to find a way to change the pointer of an enemy set (for add/delete purposes) without causing glitches? I was trying to get my editor to do it, but it causes freezing and other glitches in world 0. And I even downloaded another side view editor created recently (https://github.com/cfrantz/z2doc/wiki/sideview-editor) to see how he did it, but when you change enemies in his editor it causes problems too.

Quote from: PowerPanda
First off, thank you so much for the existing hacks and utilities. I just did a full playthrough combining the easy-type hack with your restart from the current palace, along with using a utility to speed up the text, and it was like playing a new game. I ran into a bug in Palace 6 where the 2nd mounted knight boss would not appear, but taking an intentional game over fixed the game, so I don't know what happened there.

Thank you! I'm glad you liked it. I will have to look into that palace 6 thing to see if it's related...
As for the existing utilities, I put a lot of effort into making them as user friendly as possible so I'm glad to see you're liking them.

Quote from: ShadowOne333
is the code in the OP the one for v2.0 of the Restart from Current Palace hack?
I want to give it a try but I think the Hack's page has 1.0 and I'm not sure if v2.0 is the on in the OP or if it is in the works :P

The hack I submitted to RHDN is the current version. That old version Trax and I were referring to was more of a "version zero" that I made about 4 years ago.
« Last Edit: March 05, 2018, 10:00:58 pm by njosro »