News:

11 March 2016 - Forum Rules

Main Menu

Secret of Mana, Turbo - Beta 230822

Started by Queue, January 31, 2019, 06:45:12 PM

Previous topic - Next topic

Queue

Well, it can be turned off, that is sorta a key value in the patching mechanism used by this project. That said, it's for a rather specific situation that Early_Luna causes:
- Kakkara Desert enemies reward exp/gold in the 170-215/144-174 ranges (respectively)
- Light Palace enemies reward exp/gold in the 530-1065/504-708 ranges (respectively)
- Marmablues are only at the Moon Palace and reward 1385 exp and 816 gold
- The Moon Palace is normally only accessible once the Light Palace is complete
- Early_Luna gives access to the Moon Palace as soon as you reach the Kakkara Desert (and finish the Sandship)

That puts Marmablues way out of whack, rewarding over 6 times the exp and 4.5 times the gold per kill as other Kakkara Desert enemies, meaning it's basically insane to fight anything else if you want experience or money. This leads to the degenerate gameplay scenario of, instead of fighting a decent range of monsters as you travel to your next objective, going to a dead end to repeatedly fight the same overly rewarding enemy (with especially cheese-able AI).

No_Grell_Grinding changes their payout to 370 exp and 264 gold, still great for the Kakkara Desert, so you don't go unrewarded if you defeat them, just not astronomically rewarding.

Mr X

Quote from: lexluthermiester on July 17, 2021, 08:04:34 PM
This is one change I have to call janky. Not cool at all.

Why not, if you have access to early Luna it makes perfect sense to do that.

hmsong

Hmm.  I tried to change the Gold City old man's visable value to 359F, but that just makes him not appear at all (which softlocks the game).  The address I changed was $C8ABA0, and I think I have it right.  Crap.  Help?

Also, I noticed that there are less Matango mushroom villagers (the entrance map).  I think there were supposed to be 5~7 villagers, but for whatever reason, there are less.  Which option is causing this?  If it's one of yours, could you make it so that none of the villagers disappear?  I'm sure you can work around it so that you can instead delete some of the enemies in the previous screen (I think that's right outside the dragon cave).

On my replay, I noticed that you can skip getting wind seed.  I mean, you need to talk to Grandpa (to get Sylphid), but not getting the wind seed doesn't seem to affect the plot.  At least, I can beat Matango and be launched to Kakkara/Ice Country.  Was this vanilla behavior?  If you ever update Reborn, could you make it so that Grandpa reminds you to seal the Wind Seed?

Queue

Hm, that's weird. A quick test with my end game save had 35 =>9 =<F work just fine. Flag 0x35 should be incremented to 9 when you talk to Truffle to escape the collapsing castle. Well, an alternative would be to use the event flag related to having Flammie, since that also happens when you finish the Imperial Castle. That'd be 24 =>A =<F.

Matango villagers are affected by time of day (so Day_Night_Cycle). Only certain ones are out and about depending on night/morning/day/evening time. The same is true of Moogle Village, Mandala, Kakkara and Todo. Partly it's for immersion, but it's also because those places, especially Matango and Kakkara, have terrible framerates with a full set of NPCs walking around all at the same time, so this alleviated that. To be clear, they haven't been removed.

Being able to skip the Wind Seed is a vanilla flaw.

Memorex

Thanks for continuing working on the game!  :beer:

hmsong

24AF works great.  I was gonna try 24FF (because that was Truffle outside Matango), but then I realized that he's a one-time sprite, which doesn't work.  Didn't expect 24AF to work.  But it works, so thanks.

Ohh, so Night Cycle was doing that.  Heh.  At least no one is missing then.  Works for me.

Haha, Wind Seed flaw was a vanilla behavior?  I wonder what would happen if you missed the wind seed, all the way to the rise of the sunken continent.  Would you just be stuck with 6 seeds, until you beat the Pure Land?

Queue

After you talk to Truffle at Matango and he tells you flight controls, event flag 0x24 is reduced from 0xF to 0xA (where it stays the rest of the game). If you had used 24FF then that old man would've only been visible if you had finished the Imperial Castle but not talked to Truffle in Matango.

It depends on if you can seal Dryad's Seed; I'm pretty sure it doesn't seal (both story-wise and literally due to not incrementing / setting event flags), so yes, 6 until after Pure Land.

lexluthermiester

#2187
Quote from: Mr X on July 18, 2021, 03:17:55 AM
Why not, if you have access to early Luna it makes perfect sense to do that.
Quote from: Queue on July 17, 2021, 10:29:42 PM
Well, it can be turned off, that is sorta a key value in the patching mechanism used by this project. That said, it's for a rather specific situation that Early_Luna causes:
- Kakkara Desert enemies reward exp/gold in the 170-215/144-174 ranges (respectively)
- Light Palace enemies reward exp/gold in the 530-1065/504-708 ranges (respectively)
- Marmablues are only at the Moon Palace and reward 1385 exp and 816 gold
- The Moon Palace is normally only accessible once the Light Palace is complete
- Early_Luna gives access to the Moon Palace as soon as you reach the Kakkara Desert (and finish the Sandship)

That puts Marmablues way out of whack, rewarding over 6 times the exp and 4.5 times the gold per kill as other Kakkara Desert enemies, meaning it's basically insane to fight anything else if you want experience or money. This leads to the degenerate gameplay scenario of, instead of fighting a decent range of monsters as you travel to your next objective, going to a dead end to repeatedly fight the same overly rewarding enemy (with especially cheese-able AI).

No_Grell_Grinding changes their payout to 370 exp and 264 gold, still great for the Kakkara Desert, so you don't go unrewarded if you defeat them, just not astronomically rewarding.
Here's why I disagree. The Marmablues are tough and difficult to kill at that point in the game. They're more dangerous and as such if the player can stay alive to farm them the player deserves the boosted EXP/GP. Just my opinion though..

Mr X

Quote from: lexluthermiester on July 19, 2021, 01:59:55 AM
Here's why I disagree. The Marmablues are tough and difficult to kill at that point in the game. They're more dangerous and as such if the player can stay alive to farm them the player deserves the boosted EXP/GP. Just my opinion though..

They can be killed with magic tho, no? You don't have to attack it physically only.

Or adjust stats slightly to match more the enemies at that point.

lexluthermiester

Quote from: Mr X on July 19, 2021, 06:17:43 AM
They can be killed with magic tho, no? You don't have to attack it physically only.

Or adjust stats slightly to match more the enemies at that point.
At that early stage of the game, your magic isn't that powerful yet, so they still remain a challenge.

hmsong

Hey, some questions.

For Turtle Tour, why did you place the highstepper on the right side of the island, instead of the bottom (or bottom right)?  There's more room there, and more importantly, I feel like it would look better.

For Day Night Cycle, I see that you didn't change the outside of Mana Fortress.  Was that because it's a bit too difficult for that places, or was that intentional?

I noticed that Lava Wave Lv7 has unusually long animation speed, which allows chain spells (even with the cooldown).  It's strange, because Lv4 Lava Wave has reasonable animation length.  Looks like Lv7 does the animation twice.  I don't know about Lv5~6.  Could you check that out and make the animation have the same length as Lv4, to prevent chain spells?

I remember you telling me that you have no intention of making the Magic Rope work for Witch's Castle, Ice Palace, Emperor's Castle, and/or Mana Fortress, but I forgot why.  Does making Magic Rope work cause some kind of error? (as Pandora Castle did?)

Queue

#2191
For Turtle_Tours, my ideal launch animation would be the party bouncing off that Highstepper onto the turtle's tail (which currently only exists on the world map) which then smacks the party up into the air. Since I didn't get around to making some sort of map piece animation to have the turtle's tail do that, I fell back on just having the Highstepper. It's located where it is in case I get around to a tail smack animation eventually.

Regarding the Mana Fortress, when in flight mode it moves around, and once you've left flight mode it doesn't really have a location anymore as far as I could tell (where its location would dictate its timezone). I also only just made a mechanism for a map having a variable timezone (for Turtle Shell Isle for Turtle_Tours) and that's a hard-coded special case (and bases its timezone on the day of the week, not on its location).

I'm not especially interested in spell balance at the moment. I see what you mean, where the high level Lava Wave animation does seem to simply be too long. I might look into it, but no promises, it may be a while.

Regarding the Magic Rope, I no longer recall. Thinking them through, I can imagine the Imperial Castle and Ice Castle having rooms where allowing it could break the game. For the Mana Fortress, I don't think it'd be unsafe, but it'd be a huge difficulty reduction since you wouldn't have to fight your way out to visit an inn (or grandpa, etc.). The Witch's Castle would probably be safe.

I've started on yet another technically big thing, like Turtle_Tours (regardless of how it's perceived, it was a buttload of work built on top of previous work to make it), but don't have any good screenshots, etc. yet.

hmsong

#2192
The tail jump on the turtle isle sounds really cool.  Sounds quite difficult though.

Ah, I see why Mana Fortress night would be difficult.  Heh.  What about the outside of Ice Palace?  That place seems like it can use the night time (esp since the Shellblasts change at night).  I mean, the outside of Fire Palace changes at night, so I don't see why the nights of outside Ice Palace shouldn't work.

Yeah.  Lava Wave Lv4 has the upgraded animation, and it has short animation.  I tested it out, and Lv4/5 has one cycle animation, while Lv6/7 has double cycle animation (which means it's longer).  There may be other spells that do that, but I'm not entirely sure.  In any case, Lava Wave is quite powerful due to its chain ability.  I hope you can get to it soon.

Also, could you check out the hit box for axe swings?  It seems to be very narrow, despite the animation.  I figured it'll have the same hit box as sword swing, but axe is narrower.  I tested it, and here it is (well, one part, as I'm sure there's more when facing diff direction):



I noticed when I was trying to destroy the stones, but the axe was missing a lot.

I'm looking forward to whatever big it is you're working on.  I certainly love the turtle tour.




Okay, I created a little something for magic rope working for various places.  As usual, if you can think of a better name, then feel free to use that.  Also, I don't know which section this patch would belong, so for now, I just did it as if I were to put in User Defined.  I'm guessing it'll belong in Quality of Life, but whatever you think, I'll go with that.

If you can think of other areas that can use Magic Rope, let me know.

I tested if they were working, and they all work fine.  I think I made it work with all other patches, but could you check? (I only tested with the setting I can think of)

Quote
Better_Magic_Rope "(Patch)-\n
Author: hmsong\n
Version: 0.0\n
\n
There were some places in vanilla where the Magic Rope didn't work.  I don't know why vanilla intentionally left out those places.  This patch makes the Magic Rope work in the following places:\n
\n
- Witch's Castle\n
- Ice Palace\n
- Empire Castle\n
- Mana Fortress\n
\n
In addition, this disables the Magic Rope in the unsealed Moon Palace to prevent being sent back to the dark room (although going there won't affect anything).\n
\n
Note that the Magic Rope still doesn't work in some of the rooms in those places, to prevent undesirable effects (ex: Jails, traps, boss fights, etc)."


IF [Items]
IF Farmable_Sword_Orb
@OFF $C8BF38 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas
ENDIF x2
IF [Items]
IF Weapons_Progression_Balance
@OFF $C8BF38 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas
ENDIF x2

IF [Items]
IFNOT Farmable_Sword_Orb
@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas
ENDIF x2
IF [Items]
IFNOT Weapons_Progression_Balance
@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas
ENDIF x2
IFNOT [Items]
@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas
ENDIF

@OFF $C8BF78 ' map 248, mana fortress 1
'RAW    00
RAW 15 AD 9505 600000 FF ' enables magic rope
@OFF $C8C0B8 ' map 249, mana fortress 2
'RAW    00
RAW 15 AD 9505 600000 FF ' enables magic rope
@OFF $C8C208 ' map 250, mana fortress 3
'RAW    00
RAW 15 AD 9501 600000 FF ' enables magic rope
@OFF $C8C360 ' map 251, mana fortress 4
'RAW    26
RAW 15 AD 9500 660000 FF ' enables magic rope

IF [Quality_of_Life]
IF Neko_And_Watts_In_Fortress
@OFF $C8C358 ' map 251, mana fortress 4
RAW 15 AD 9504 660000 FF ' add auto event (flag), enables magic rope
RAW 000F 0E 8B 40 99 D741 ' Neko
ENDIF x2

@OFF $C8CA38 ' map 300, witch's castle 1
'RAW    20
RAW CF 56 8F04 600200 FF ' enables magic rope
@OFF $C8CA48 ' map 301, witch's castle 2
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8CA68 ' map 302, witch's castle 3
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8CA80 ' map 303, witch's castle 4
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8CAA0 ' map 304, witch's castle 5
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8CAB8 ' map 305, witch's castle 6
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8D030 ' map 343, witch's castle room 1
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope
@OFF $C8D050 ' map 344, witch's castle room 2
'RAW    20
RAW CF 56 8F00 600200 FF ' enables magic rope

@OFF $C8D140 ' map 350, moon palace 1
'RAW    60
RAW D7 DF 9700 200000 FF ' disables magic rope
@OFF $C8D148 ' map 351, moon palace 2
'RAW    60
RAW D7 DF 9705 200000 FF ' disables magic rope

@OFF $C8D168 ' map 352, ice palace 1
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D188 ' map 353, ice palace 2
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D198 ' map 354, ice palace 3
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D1B8 ' map 355, ice palace 4
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D1E0 ' map 356, ice palace 5
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D200 ' map 357, ice palace 6
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D228 ' map 358, ice palace 7
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D238 ' map 359, ice palace 8
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope
@OFF $C8D2B8 ' map 362, ice palace 10
'RAW    20
RAW CF 55 8F01 600200 FF ' enables magic rope
@OFF $C8D2E8 ' map 363, ice palace santa room
'RAW    20
RAW CF 55 8F04 600200 FF ' enables magic rope
@OFF $C8D310 ' map 365, ice palace 11
'RAW    20
RAW CF 55 8F00 600200 FF ' enables magic rope

IF [Quality_of_Life]
IF Frosty_the_Friendly_Alchemist
@OFF $C8D238 ' map 359, ice palace 8
RAW CF 55 8F05 600200 FF ' add auto & 0xBF event (mod), enables magic rope
ENDIF x2

@OFF $C8D5D0 ' map 384, empire castle 1
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D600 ' map 385, empire castle 2
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope

IF [Miscellaneous]
IF Remove_Empire_Castle_Gate
@OFF $C8D618 ' map 386, empire castle 3 chapel
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D638 ' map 387, empire castle 4 banquet hall
'RAW    00
RAW CF 3A 8F04 600200 36 ' enables magic rope
@OFF $C8D658 ' map 388, empire castle 5
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D668 ' map 389, empire castle 6 barracks
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6B0 ' map 390, empire castle 7
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6D8 ' map 391, empire castle 8 throne room
'RAW    00
RAW CF 3A 8F04 600200 38 ' enables magic rope
ENDIF x2

IF [Miscellaneous]
IFNOT Remove_Empire_Castle_Gate
@OFF $C8D640 ' map 386, empire castle 3 chapel
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D660 ' map 387, empire castle 4 banquet hall
'RAW    00
RAW CF 3A 8F04 600200 36 ' enables magic rope
@OFF $C8D680 ' map 388, empire castle 5
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D690 ' map 389, empire castle 6 barracks
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6C8 ' map 390, empire castle 7
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6E8 ' map 391, empire castle 8 throne room
'RAW    00
RAW CF 3A 8F04 600200 38 ' enables magic rope
ENDIF x2
IFNOT [Miscellaneous]
@OFF $C8D640 ' map 386, empire castle 3 chapel
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D660 ' map 387, empire castle 4 banquet hall
'RAW    00
RAW CF 3A 8F04 600200 36 ' enables magic rope
@OFF $C8D680 ' map 388, empire castle 5
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D690 ' map 389, empire castle 6 barracks
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6C8 ' map 390, empire castle 7
'RAW    00
RAW CF 3A 8F00 600200 FF ' enables magic rope
@OFF $C8D6E8 ' map 391, empire castle 8 throne room
'RAW    00
RAW CF 3A 8F04 600200 38 ' enables magic rope
ENDIF


Would enabling the magic rope in some of these places (such as ice palace or the empire castle) cause some sort of problem?  Maybe I lack the imagination to thoroughly test for "errors".

Also, I'm not sure why enabling both Farmable Sword Orb and Weapons Progression Balance doesn't change the Buffy room header location to something else.  Does enabling Weapons Progression Balance disable Farmable Sword Orb or something? (because Mana Tree will always maximize the sword orb)

Btw, "20" in the 5th byte makes the Magic Rope work (for usage and target point).  Also, it links the other "20" areas as one giant area, as far as Magic Rope is concerned.  I'm mentioning this, because your Pandora_Barracks_No_Rope had a "?" for 20 description.




Okay, I figured out how to reduce the Lava Wave animation speed for Lv6~7.  It was much easier than I expected, as there was already Lv4~5 animation (which is just Lv6~7 not doubled).


@OFF $D02E46
'RAW 7D8E ' original Lv6~7 animation
RAW 478E ' Lv4~5 animation


From what I can tell, the power is still the same as it should be.  Perhaps you can add this as an optional sub feature for Magic Recharging (that's the only reason anyone should be using it).

The name can be something general (for future).  The description can be:

QuoteSpell_Animation_Change "(Patch)-\n
Author: hmsong\n
Version: 0.0\n
\n
This changes the following spell animations, to make them more fitting for Magic Recharging:\n
\n
- Lv6~7 Lava Wave (shorter animation)"

Queue

The Ice Palace isn't affected by the time of day for a couple reasons. The first is that it just doesn't look very good; it has an animated, bright, colorful palette, and tinting those colors ends up looking unpleasant. The second, from what I recall, is some of its colors happen to be on the list of colors Day_Night_Cycle doesn't tint so that the colors appear to "glow" at night (flames, windows of occupied houses, etc.). So not only does it look bad, but some random colors end up untinted so they look extra wrong.

Unintentionally untinted colors is why the Goblin Village isn't affect by time of day either. When that happens, it requires careful palette and tile art adjustments. The palette edits aren't that bad, but the tile art changes take a lot of work (to do well).

Anyway, the Ice Castle is magically glowing; just accept that as why it's always bright as day outside the front door. No such excuse for the Goblin Village; that one's just waiting until I get around to the second round of work on it (when I'll improve the entrance doors).




It's not that the axe is narrower, the last frame of the upward swing is positioned too far right. It is a flaw with the axe animation frame collision data, and one I'll get to when I continue with the collision system overhaul. It's just not what I'm in the mood to work on at the moment.

I'm working on something that lets me be a little more artistic at the moment.




I'll likely put your Magic Rope stuff in the Balance category since it protects the player from overextending too deeply into dungeons. Normally, you're punished (with a game over) if you get to the deepest part of a dungeon that doesn't allow using the Magic Rope and don't have the resources (remaining mana for healing, mana restore items, healing items, etc.) to survive the trip back out. I suspect this is why the Magic Rope isn't allowed in those places in the first place (for difficulty reasons).

Unfortunately, they all need to be slightly rewritten, from:
@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW    00
RAW 15AD 95 00 200000 FF ' links to the connected Magic Rope areas

...to something like:
'@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF ' map header
@OFF $C8BF2C ' add preserve rope door flag
RAW    20

You only need to change the layer scroll / rope / drum flag byte; rewriting the whole map header just adds more compatibility headache if some other feature wants to change a different part of the header. Also, because once this is integrated as a patch it'll occur much earlier in the patching order, the compatibility fixups will be a bit different than the ones you worked out.

Sorry about the incomplete header flag documentation in Pandora_Barracks_No_Rope. That was one of the earliest patches I made, and I didn't know what it did back then, and never went back and updated the comment. Specifically what 0x20 means here is:
- if going from a map without 0x20 set, to one with 0x20 set, record the last used door as the "rope door" for later use
- if going from a map with 0x20 set, to one with 0x20 set, don't change the "rope door"
- if going from a map with 0x20 set, to one without 0x20 set, clear the "rope door"

Conceptually, you could think of 0x20 as meaning "indoors" and if not set "outdoors" or like you put it, adjacent maps with 0x20 are "connected" for the purposes of using the Magic Rope.

When I get this set up and double-check all the compatibility stuff for it, I'll get you an answer regarding Farmable_Sword_Orb and Weapons_Progression_Balance, but they are compatible with each other and both default to On. I probably worked out the map header / object list data relocation specifically so they'd be compatible.




I hadn't gotten around to writing about it yet, but I did look at Lava Wave a little, and if you really want its recast time fixed, there's a little more to be done. Lava Wave 2/3 is basically just double length 0/1 so it's also too long. Aside from (re-)playing a sound and two extra animation cycles each (for levels 2/3 and 6/7 versus 0/1 and 4/5, respectively), there are other small differences in the animation scripts that I haven't fully scrutinized but hopefully aren't a loss of art by changing to the lower level animations.

Fireball and Thunderbolt also have differences between 0/1 and 2/3, 4/5 and 6/7, while all other spells use the same animations for 0-3 and 4-7. Not sure what the result is, but figured I'd mention it since it's unusual. I'd bet Thunderbolt, Fireball and Lava Wave were created early, and then they scaled back the number of spell animations for all further spells.

hmsong

#2194
Ah, that makes sense.  Okay, here are the corrections:

Better Magic Rope:


IF [Items]
IF Farmable_Sword_Orb
'@OFF $C8BF38 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF
@OFF $C8BF3C
RAW    20 ' add preserve rope door flag
ENDIF x2
IF [Items]
IF Weapons_Progression_Balance
'@OFF $C8BF38 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF
@OFF $C8BF3C
RAW    20 ' add preserve rope door flag
ENDIF x2

IF [Items]
IFNOT Farmable_Sword_Orb
'@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF
@OFF $C8BF2C
RAW    20 ' add preserve rope door flag
ENDIF x2
IF [Items]
IFNOT Weapons_Progression_Balance
'@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF
@OFF $C8BF2C
RAW    20 ' add preserve rope door flag
ENDIF x2
IFNOT [Items]
'@OFF $C8BF28 ' map 244, mana fortress Buffy room
'RAW 15AD 95 00 000000 FF
@OFF $C8BF2C
RAW    20 ' add preserve rope door flag
ENDIF

'@OFF $C8BF78 ' map 248, mana fortress 1
'RAW 15 AD 9505 000000 FF
@OFF $C8BF7C
RAW    60 ' enables magic rope
'@OFF $C8C0B8 ' map 249, mana fortress 2
'RAW 15 AD 9505 000000 FF
@OFF $C8C0BC
RAW    60 ' enables magic rope
'@OFF $C8C208 ' map 250, mana fortress 3
'RAW 15 AD 9501 000000 FF
@OFF $C8C20C
RAW    60 ' enables magic rope
'@OFF $C8C360 ' map 251, mana fortress 4
'RAW 15 AD 9500 260000 FF
@OFF $C8C364
RAW    66 ' enables magic rope

IF [Quality_of_Life]
IF Neko_And_Watts_In_Fortress
'@OFF $C8C358 ' map 251, mana fortress 4
'RAW 15 AD 9504 260000 FF ' add auto event (flag), enables magic rope
@OFF $C8C35C
RAW    66 ' enables magic rope
'@OFF $C8C360
'RAW 000F 0E 8B 40 99 D741 ' Neko
@OFF $C8C364
RAW    40 ' Change back
ENDIF x2

'@OFF $C8CA38 ' map 300, witch's castle 1
'RAW CF 56 8F04 200200 FF
@OFF $C8CA3C
RAW    60 ' enables magic rope
'@OFF $C8CA48 ' map 301, witch's castle 2
'RAW CF 56 8F00 200200 FF
@OFF $C8CA4C
RAW    60 ' enables magic rope
'@OFF $C8CA68 ' map 302, witch's castle 3
'RAW CF 56 8F00 200200 FF
@OFF $C8CA6C
RAW    60 ' enables magic rope
'@OFF $C8CA80 ' map 303, witch's castle 4
'RAW CF 56 8F00 200200 FF
@OFF $C8CA84
RAW    60 ' enables magic rope
'@OFF $C8CAA0 ' map 304, witch's castle 5
'RAW CF 56 8F00 200200 FF
@OFF $C8CAA4
RAW    60 ' enables magic rope
'@OFF $C8CAB8 ' map 305, witch's castle 6
'RAW CF 56 8F00 200200 FF
@OFF $C8CABC
RAW    60 ' enables magic rope
'@OFF $C8D030 ' map 343, witch's castle room 1
'RAW CF 56 8F00 200200 FF
@OFF $C8D034
RAW    60 ' enables magic rope
'@OFF $C8D050 ' map 344, witch's castle room 2
'RAW CF 56 8F00 200200 FF
@OFF $C8D054
RAW    60 ' enables magic rope

'@OFF $C8D140 ' map 350, moon palace 1
'RAW D7 DF 9700 600000 FF
@OFF $C8D144
RAW    20 ' enables magic rope
'@OFF $C8D148 ' map 351, moon palace 2
'RAW D7 DF 9705 600000 FF
@OFF $C8D14C
RAW    20 ' enables magic rope

'@OFF $C8D168 ' map 352, ice palace 1
'RAW CF 55 8F00 200200 FF
@OFF $C8D16C
RAW    60 ' enables magic rope
'@OFF $C8D188 ' map 353, ice palace 2
'RAW CF 55 8F00 200200 FF
@OFF $C8D18C
RAW    60 ' enables magic rope
'@OFF $C8D198 ' map 354, ice palace 3
'RAW CF 55 8F00 200200 FF
@OFF $C8D19C
RAW    60 ' enables magic rope
'@OFF $C8D1B8 ' map 355, ice palace 4
'RAW CF 55 8F00 200200 FF
@OFF $C8D1BC
RAW    60 ' enables magic rope
'@OFF $C8D1E0 ' map 356, ice palace 5
'RAW CF 55 8F00 200200 FF
@OFF $C8D1E4
RAW    60 ' enables magic rope
'@OFF $C8D200 ' map 357, ice palace 6
'RAW CF 55 8F00 200200 FF
@OFF $C8D204
RAW    60 ' enables magic rope
'@OFF $C8D228 ' map 358, ice palace 7
'RAW CF 55 8F00 200200 FF
@OFF $C8D22C
RAW    60 ' enables magic rope
'@OFF $C8D238 ' map 359, ice palace 8
'RAW CF 55 8F00 200200 FF
@OFF $C8D23C
RAW    60 ' enables magic rope (also Frosty_the_Friendly_Alchemist)
'@OFF $C8D2B8 ' map 362, ice palace 10
'RAW CF 55 8F01 200200 FF
@OFF $C8D2BC
RAW    60 ' enables magic rope
'@OFF $C8D2E8 ' map 363, ice palace santa room
'RAW CF 55 8F04 200200 FF
@OFF $C8D2EC
RAW    60 ' enables magic rope
'@OFF $C8D310 ' map 365, ice palace 11
'RAW CF 55 8F00 200200 FF
@OFF $C8D314
RAW    60 ' enables magic rope

'@OFF $C8D5D0 ' map 384, empire castle 1
'RAW CF 3A 8F00 000200 FF
@OFF $C8D5D4
RAW    60 ' enables magic rope
'@OFF $C8D600 ' map 385, empire castle 2
'RAW CF 3A 8F00 000200 FF
@OFF $C8D604
RAW    60 ' enables magic rope

IF [Miscellaneous]
IF Remove_Empire_Castle_Gate
'@OFF $C8D618 ' map 386, empire castle 3 chapel
'RAW CF 3A 8F00 000200 FF
@OFF $C8D61C
RAW    60 ' enables magic rope
'@OFF $C8D638 ' map 387, empire castle 4 banquet hall
'RAW CF 3A 8F04 000200 36
@OFF $C8D63C
RAW    60 ' enables magic rope
'@OFF $C8D658 ' map 388, empire castle 5
'RAW CF 3A 8F00 000200 FF
@OFF $C8D65C
RAW    60 ' enables magic rope
'@OFF $C8D668 ' map 389, empire castle 6 barracks
'RAW CF 3A 8F00 000200 FF
@OFF $C8D66C
RAW    60 ' enables magic rope
'@OFF $C8D6B0 ' map 390, empire castle 7
'RAW CF 3A 8F00 000200 FF
@OFF $C8D6B4
RAW    60 ' enables magic rope
'@OFF $C8D6D8 ' map 391, empire castle 8 throne room
'RAW CF 3A 8F04 000200 38
@OFF $C8D6DC
RAW    60 ' enables magic rope
ENDIF x2

IF [Miscellaneous]
IFNOT Remove_Empire_Castle_Gate
'@OFF $C8D640 ' map 386, empire castle 3 chapel
'RAW CF 3A 8F00 000200 FF
@OFF $C8D644
RAW    60 ' enables magic rope
'@OFF $C8D660 ' map 387, empire castle 4 banquet hall
'RAW CF 3A 8F04 000200 36
@OFF $C8D664
RAW    60 ' enables magic rope
'@OFF $C8D680 ' map 388, empire castle 5
'RAW CF 3A 8F00 000200 FF
@OFF $C8D684
RAW    60 ' enables magic rope
'@OFF $C8D690 ' map 389, empire castle 6 barracks
'RAW CF 3A 8F00 000200 FF
@OFF $C8D694
RAW    60 ' enables magic rope
'@OFF $C8D6C8 ' map 390, empire castle 7
'RAW CF 3A 8F00 000200 FF
@OFF $C8D6CC
RAW    60 ' enables magic rope
'@OFF $C8D6E8 ' map 391, empire castle 8 throne room
'RAW CF 3A 8F04 000200 38
@OFF $C8D6EC
RAW    60 ' enables magic rope
ENDIF x2
IFNOT [Miscellaneous]
'@OFF $C8D640 ' map 386, empire castle 3 chapel
'RAW CF 3A 8F00 000200 FF
@OFF $C8D644
RAW    60 ' enables magic rope
'@OFF $C8D660 ' map 387, empire castle 4 banquet hall
'RAW CF 3A 8F04 000200 36
@OFF $C8D664
RAW    60 ' enables magic rope
'@OFF $C8D680 ' map 388, empire castle 5
'RAW CF 3A 8F00 000200 FF
@OFF $C8D684
RAW    60 ' enables magic rope
'@OFF $C8D690 ' map 389, empire castle 6 barracks
'RAW CF 3A 8F00 000200 FF
@OFF $C8D694
RAW    60 ' enables magic rope
'@OFF $C8D6C8 ' map 390, empire castle 7
'RAW CF 3A 8F00 000200 FF
@OFF $C8D6CC
RAW    60 ' enables magic rope
'@OFF $C8D6E8 ' map 391, empire castle 8 throne room
'RAW CF 3A 8F04 000200 38
@OFF $C8D6EC
RAW    60 ' enables magic rope
ENDIF


The compatibility fix up sounds good.

Spell Animation Change:


@OFF $D02E36
'RAW 218E ' original Lv2~3 animation
RAW 098E ' Lv0~1 animation
@OFF $D02E46
'RAW 7D8E ' original Lv6~7 animation
RAW 478E ' Lv4~5 animation


Thanks for the info for Lv2~3 Lava Wave animation length.  And you're right about Fireball and Thunderbolt (I didn't really take a look at it until just now).  They're both short animation (esp Thunderbolt), so I'm not too worried about it (esp Fireball, as the recharge time restarts when the 3rd fireball hits).  I'll experiment with those two at some point in the future, but for now, I'll leave them as it is.

Edit: Whoops, I made a mistake in one of the codes.  Fixed.




Okay, for Herbal Boost, it seems that Revivifier L9 animation's target's color is off (it's green background and green target, even though it's Luna element now).  I was able to change the target color pretty easily, so if you can include that, I'd appreciate it:


@OFF $D193DD 'Revivifier target color
'RAW 86 ' green
RAW 87 ' yellow


The problem is, I have no idea how to change the background color (address nor value).  So if you could do that, then I'd appreciate it.

Also for Hellfire, I tried to bring in Lv9 Evil Gate animation (if Shadow Saber is ON) by changing 16 bytes values on D02E08 to 970E 446E 0000 F694 970E 446E 0000 F694 (that's the Evil Gate Lv9 animation), but it's just causing Lv9 Exploder.  I'm not sure what's going on.  I can work on changing the color of the animation and the target color once I successfully connect it to the spell, but I can't even connect it to Hellfire.  Please help?

Queue

The hardcoded level 8 spell animations are just that: hardcoded for certain spell numbers to use certain game-pausing spell animations. Hardcoded implies not data driven, so the spell data in bank $D0 is basically not used for the hardcoded level 8 animations. The spells are checked by number via a bunch of compare instructions at $C13A20-3A (and then their corresponding animation number is loaded in code between $C13A44-5E, but it's generally the spell numbers you want to change, not the animation numbers).

What I'm working on looks like it'll still take at least another week; it's pretty labor intensive and art intensive, so while rewarding to work on, it's slow going. And I still need to decide if I want to write a compressor or if I want to compress the data by hand when I'm done. 32 KB is a little too big to leave uncompressed, even with all the free space in the expanded ROM, and in this specific case, uncompressed data is also slower to load, so there are no upsides other than being easier to edit by hand later.

hmsong

Huh?  When I created Black Hex, I was able to call the Evil Gate Lv9 animations by copy/pasting the $D0 codes from Evil Gate (assuming Shadow Saber was ON and therefore disabled the actual Evil Gate).  I wasn't able to change their colors, but I was able to connect the spells to the Dispel Magic slot.  But for Hellfire, I'm unable to even connect them to Exploder slot.  I looked at Hellfire codes, but I was unable to figure it out, other than that it must be something in:


@OFF Spell.Data.Exploder
ADR.16 $D185E0 ' animation script (elemental summon, salamando)
ADR.16 #0x0529 ' = (0x0529 & 0x07FF) << 3 = 0x14A4 ' evil gate
ADR.16 #0x0529 ' = (0x14A4 << 1) + 0x14A4 = 0x3DEC ' evil gate
ADR.16 #0x0529 ' = (0x0529 & 0x07FF) * 12 = $D43DEC ' evil gate
RAW 8A ' palette (exploder)
RAW 00 ' aim type, direct
ADR.16 $D36E42 ' particles script (evil gate, low)
ADR.16 #0x0000 ' null
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
RAW 8A ' palette (exploder)
RAW 00 ' aim type, direct
ADR.16 $D36E42 ' particles script (evil gate, low)
ADR.16 #0x0000 ' null
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
RAW 8A ' palette (exploder)
RAW 00 ' aim type, direct
ADR.16 $D36E44 ' particles script (evil gate, mid / high)
ADR.16 #0x0000 ' null
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
RAW 8A ' palette (exploder)
RAW 00 ' aim type, direct
ADR.16 $D36E44 ' particles script (evil gate, mid / high)
ADR.16 #0x0000 ' null
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
RAW 8A ' palette (exploder)
'RAW 0E ' aim type, direct special
RAW 00 ' aim type, direct
ADR.16 $D36E44 ' particles script (evil gate, mid / high)
ADR.16 #0x0000 ' null
'ADR.16 $D194F6 ' animation script (evil gate, high)
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
RAW 8A ' palette (exploder)
'RAW 0E ' aim type, direct special
RAW 00 ' aim type, direct
ADR.16 $D36E44 ' particles script (evil gate, mid / high)
ADR.16 #0x0000 ' null
'ADR.16 $D194F6 ' animation script (evil gate, high)
'ADR.16 $D1949C ' animation script (evil gate, low / mid)
ADR.16 $D1F0FB ' animation script (hellfire)
@OFF %Spell.Data.Exploder%Cost%
RAW 0C

' animation script (hellfire)
@OFF $D1F0FB
RAW B0 84 ' actor palette 84
RAW F1 ' call
ADR.16 $D1949E
'RAW FF ' end


But I have no idea why that would replace Evil Gate Lv9 animation with Exploder.

QuoteThe spells are checked by number via a bunch of compare instructions at $C13A20-3A (and then their corresponding animation number is loaded in code between $C13A44-5E, but it's generally the spell numbers you want to change, not the animation numbers).

Okay, I'm looking at those specific addresses (and values), but I don't know what that means.  Which part is the spell number?  Following what you said, I see that $C13A30 was changed from C910 to C904, but I don't know what that actually means.  I changed it back to C910 to see what happens, but I'm not noticing any difference.  I'm so lost.

Queue

Other than "aim type" needing to be C, D or E to trigger a hardcoded animation, the rest of the spell data's animation stuff basically isn't used by the hardcoded animations.

In Black Hex, the following is what makes it use the Evil Gate hardcoded high level animation:
' high level animation, hardcoded spell number
@OFF $C13A28
'CMP #24 ' Evil Gate
CMP #26 ' Black Hex (Dispel Magic slot)

Note the original value of 0x24 (Evil Gate's spell number).

Here's what Dust Flare uses:
' high level animation, hardcoded spell number
@OFF $C13A30
'CMP #10 ' Fire Bouquet
CMP #04 ' Dust Flare

Again, note that the spell number was changed so the animation would be used for the new spell's number.

Hellfire doesn't use a harcoded animation. In what you quoted from Hellfire, note:
'RAW 0E ' aim type, direct special
RAW 00 ' aim type, direct

hmsong

Okay, so what do I do?  I'm guessing one of the things I'm supposed to do is change C1/3A24 from C90D to C926 (that's the hard coded Exploder).  That alone doesn't seem to do anything, so I'm guessing there's supposed to be something else.  I'm not sure what "aim type" even is... nor direct vs direct special.

In any case, Hellfire (current) doesn't use the Lv9 animation, which is why it doesn't use hardcoded spells, right?  I'm trying to use Lv9 animation (so that players don't miss out on any of the cool Lv9 animations).  I'm guessing that means I have to somehow connect hardcoded Lv9 Evil Gate animation first, then change various colors to red.  Or is my thinking process completely wrong somewhere?

Queue

You're on the right track, just change both $C13A24 and Hellfire's spell data (Spell.Data.Exploder, the stuff in bank $D0) for its high level animation, especially its aim type to 0E (I think 0C and 0D would also work; I don't recall if there's actually a difference between those 3 values). I think all you're missing is doing both at the same time.

Aim type is what controls if the spell appears directly on the target, fires homing projectiles, flies in from the edge of the screen, uses a hardcoded animation, etc. It's sort've a weird assortment of valid values; with a quick glance I see: 00, 01, 02, 05, 06, 07, 0C, 0D, 0E.