News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Queue

Pages: [1] 2 3 4 5 6 ... 31
1
Personal Projects / Re: Secret of Mana, Turbo - Beta 210915
« on: February 08, 2022, 02:57:29 pm »
I've always been intentionally vague about where I am, but I am south of Canada, north of Mexico, Pacific timezone.

I'm doing fine hmsong, healthy, and inflation isn't uniform (an average of 7% doesn't mean everything is universally 7% more expensive; many things I buy regularly are the same price they were 10 years ago).



OrangeCrush666, let's see what we can get figured out. As far as I recall, I've tested MSU-1 on ZSNES, one of byuu's emulators (I forget if it was BSNES, Higan or Ares/Lucia), Mesen-S and I think Snes9x... but less sure on that last one. I don't have a flash cart, and my SNES is carefully packed in a box (in my closet), so have never tried on real hardware.

Freezing two seconds after startup is pretty odd; that'd be more likely due to a patch gone wrong than MSU-1 stuff failing.

First off, to be sure you're starting from the correct ROM, it should be headerless and have a CRC32 checksum of D0176B24. In the ZPS patcher, the CRC32 label will be green. If the CRC32 label in the patcher is red, the ROM is wrong.

For most emulators, the MSU-1 audio files (PCM files) need to be named the same as the ROM, with a hyphen and decimal number following the matching filename. Also, the MSU marker file also needs to match the filename. For example:
SoM_Turbo.smc
SoM_Turbo.msu
SoM_Turbo-0.pcm
SoM_Turbo-1.pcm
SoM_Turbo-2.pcm
SoM_Turbo-3.pcm
...

But that's sorta it... The MSU-1 files need to be named correctly and in the same folder as the ROM (except for ZSNES, which supports an MSU subfolder). Patching should be fairly easy, as it's just a matter of making sure you have a vanilla ROM and feed it through the ZPS patcher (and leave [Audio] and [Enable_MSU-1] On). There could be some crazy combination of settings that would break it that I overlooked, so try with all Turbo settings at default at least once (since that's what I just tested to confirm MSU-1 was working).

PCM file 45 is the "Whalesong" that plays immediately at startup, so you can always try different files for that to get immediate feedback on if it's working.

When you next try to set this up, write down what you're doing step-by-step as you do it and relay it here, as a potential way for me (or others, people here are helpful) to try and see if there's a step in the process I'm forgetting to describe.

2
Personal Projects / Re: Secret of Mana, Turbo - Beta 210915
« on: January 21, 2022, 10:50:48 pm »
I'm still alive. And fine. Just no time for Secret of Mana at the moment. Refreshing download links in the first post (and here):

SoM Turbo:
https://www.sendspace.com/file/ps4qn7

MSU-1 stuff:
https://www.sendspace.com/file/xl73i5

I do want to look into what could be causing .NET issues for the patcher. It is a bit Frankenstein's Monster'd, but I did have it work everywhere that I tried. I did all testing and development on Win7 and have tested on Win10 and Ubuntu. Internally, it's:
TargetFramework(".NETFramework,Version=v4.5.2")
So when I can get back to this, that's what I'll be looking at first.

3
Personal Projects / Re: Secret of Mana, Turbo - Beta 210915
« on: September 29, 2021, 05:27:44 pm »
Ohh, those, I totally forgot about them. The replacements aren't even meant to be numbers, just ambiguous graphics where a human can learn which appearance means controller 1/2/3. Since the vast majority of people play solo, any little indicator that migrates between character portraits is adequate to inform which they're currently controlling.

Anyway, same deal as the charge numbers: if I can cleanly split off sub-feature toggles for the HUD art, I will, just no promises.

4
Personal Projects / Re: Secret of Mana, Turbo - Beta 210915
« on: September 29, 2021, 02:05:57 pm »
hmsong, Better_Pure_Land_Cutscene affects the final Pure Land cutscene where you reach the Mana Tree. It adds a fade-in to the scene transition between standing on the cliffs and when everyone is lying on the ground before the tree.

The changes to Tasnican_Countryside are tiny, things like replacing some solid purple flowers with ones you can walk through, removing some tiles from one layer that were subtly overlapping the other layer, etc. I had considered attaching it to Turtle_Tours, but there are tons of downsides, and basically no upsides. And again, putting conditions on the enemies means the map will feel even more underpopulated, which it already does; I would have if it played well.



Lime_Lime875, it would require quite a feat of re-engineering the input code to split off confirm / reject button behavior. Believe me, I know many people would like different menu buttons; it's a common request / complaint about vanilla SoM. It's just not likely to happen. It doesn't help that I personally think B/Y is the most natural button pair since the resting position of my right hand is with my thumb on B (e.g. in Mario World, I'm a Y-run / B-jump player, and consider reaching for A an annoyance)... so I have little personal motivation to do a massive amount of work for a feature I'd have off. Talking about this did make me ponder over what it'd take to make it work, and I'm not sure how to deal with certain issues that'd arise from trying to split up behavior, or what a good approach would be to implement it in the first place. The way the game uses buttons is: it reads the controller, remaps the buttons based on your controller config remapping, uses the remapped button layout to feed into all code that acts on controller input. Basically, code that reacts to input sees a virtual controller where remapping has already been processed: confirm is technically always reacting to "B" even if you remapped that to "A" and there's not a sane way for it to see the state of the physical "B" button.

When you say "turbo hub" I assume you're referring to Turbo_HUD? I assume it's the charge number art change you're not a fan of? Those were the only numbers I changed. I can appreciate not caring for their aesthetic, but it is sort've a take it or leave it scenario: splitting it off as a separate feature is probably more trouble than its worth. If I can do so without drastically complicating the existing code, I will, but don't hold your breath.

I should be able to make a stand-alone no-charging-sound feature for the next release. While it's an intentional part of Turbo Mode, it was also technically a side effect of sorts: removing the function call to play the sound freed up some bytes to let me fit in the code that defers showing the charge gauge until the 9th frame of charging (so that the gauge wouldn't flicker on and off as you spam-mashed the attack button).



WhiteT982, in the patcher, there's an "Advanced..." button. When you click that, you'll get a tall "Advanced Options" window where you'll want to locate "Weapon Experience Value" and "Spell Experience Value" (they're a little above the center). Vanilla values are 9/9, Turbo defaults are A/C (the values are hexadecimal numbers). What the values mean are explained in Quality_of_Life\Faster_Weapon_Grinding and Quality_of_Life\Faster_Spell_Grinding. You might be happy with just bumping each value up one (so B/D), but read the feature descriptions for more info.



I've had very little free time recently. I've spent like half of the past month away from home, and have other things I needed to attend to when home, so the next Turbo update will likely be a bit meager.

5
Personal Projects / Re: Secret of Mana, Turbo - Beta 210915
« on: September 15, 2021, 03:11:38 pm »
Version 2021-09-15:
https://www.sendspace.com/file/n7o4jz

Changes:
- a Changelog is now included in the readmes folder, thank you derula for the preliminary version!
- added event 5F8 to Text\Event_Fixes, this is an animation timing fix related to the final Pure Land cutscene
- implemented Miscellaneous\Better_Pure_Land_Cutscene, adds a fade-in where otherwise the heroes would appear abruptly
- enhancements to Miscellaneous\Tasnican_Countryside:
-- slight tweaks to collision and art
-- changed and moved one of the decorative enemies
-- compressed map piece data
-- optimized map piece decompression code (which benefits loading speed for all maps)
-- added 4 new map piece compression command bytes allowing for even better compression (only used by Tasnican_Countryside)
- slight improvement to Miscellaneous\Revisit_Pure_Land to improve load speed of first/last Pure Land map
- fixed Miscellaneous\Generous_Gold_Chests interaction with Text\Reborn (was missing a closing parenthesis)

Technical Changes:
- documented which map pieces use the data compression "stamp" capability
- improved code/data comments for spell animation data
- slight tweak to comment formatting to remove any remaining intentional trailing spaces; makes finding and cleaning trailing spaces going forward easier
- improved semi-automatic patch compatibility for map headers
- slight tweak to Overwrite_Unused_Data for bank $CF



hmsong, I vaguely recall some of the elemental summon animations being one frame shorter or longer than each other, buuut... I might be misremembering. Even if they are, the timing difference would be tiny; a human generally wouldn't notice, we're talking maybe ~83 milliseconds. The spell cast animation the character plays isn't set per spell. The elemental summon is, and a unique variation could technically be made for every spell, but I'm not even sure how that'd interact with other aspects of spell timing (and it'd only affect the heroes, for better or worse).

Anyway, to change them, you'd need to follow the elemental animation pointer the spell data specifies, figure out the format of the elemental summon animation data (as far as I recall it's actually a simple list of animation frames), find some free space in that bank ($D1) to make a new variant of the animation, and change the spell data's pointer to point to the new variant you made.



Josenev, like usual, beautifully done. I'm incredibly happy to see how you've taken the limitations and constraints imposed by the hardware and SoM's animation data into account since they were brought to your attention. I'm looking forward to the upward-facing walk animation; that should round out the initial stuff, namely standing and walking.

6
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 26, 2021, 01:40:39 pm »
Sorry, the New Game Plus prompt is meant to be sort've vague. If you had pressed right or left, some of the text would've highlighted. Without anything highlighted, the message repeats, if "repeats" is highlighted, you start a NG+, if "ends" is highlighted, you get the "The End" screen.



Edit: Think I'm happy with the map piece compressor I threw together:

Left is uncompressed, right is compressed.
The large spaces are bytes freed up by compression, and the remaining data is organized to still visually match the layout of the uncompressed data, so a human can sorta tell what they're looking at.



Edit: Ok, here's a walkthrough of spell data; going to use Fireball because it has variety in its data.

Here's the RAW data as you've seen in the disassembly:
Code: [Select]
D0/2DA0: E085 C304 C304 C304 ;{Anim/Gfx}Elemental
D0/2DA8: 8902 206A 0297 398D 8902 226A 0297 528D ;{Anim/Gfx}Low lvl
D0/2DB8: 8902 246A 0297 6F8D 8902 266A 0297 908D ;{Anim/Gfx}Mid lvl
D0/2DC8: 890C 266A 0000 908D 890C 266A 0000 908D ;{Anim/Gfx}High lvl
D0/2DD8: 81 ;Targeting
D0/2DD9: 00 ;(UNUSED)
D0/2DDA: 34 ;Spell Power
D0/2DDB: 4B ;Spell Accuracy
D0/2DDC: 08 ;Element
D0/2DDD: 0000 ;Status Effect
D0/2DDF: 02 ;MP Cost
And in ZPS RAW:
Code: [Select]
@OFF Spell.Data.Fireball
RAW E085 C304 C304 C304 ' elem. anim, gfx 0-3/4-7/8+
RAW 8902 206A 0297 398D ' spell anim, 0/1
RAW 8902 226A 0297 528D ' spell anim, 2/3
RAW 8902 246A 0297 6F8D ' spell anim, 4/5
RAW 8902 266A 0297 908D ' spell anim, 6/7
RAW 890C 266A 0000 908D ' spell anim, 8/9
RAW 890C 266A 0000 908D ' spell anim, 10+
@OFF %Spell.Data.Fireball%*%
RAW Spell.Target.Enemies
RAW Spell.Stat.None
RAW Spell.Power.Medium
RAW Spell.Accuracy.Default
RAW Spell.Element.Salamando
ADR.16 Spell.Effect.None
RAW 02 ' mana cost

Here's the formatted art/animation data:
Code: [Select]
@OFF Spell.Data.Fireball
ADR.16 $D185E0 ' animation script (elemental summon, salamando)
ADR.16 #0x04C3 ' graphics 0-3 = (0x04C3 & 0x07FF) * 24 = $D47248
ADR.16 #0x04C3 ' graphics 4-7
ADR.16 #0x04C3 ' graphics 8+
' spell level 0/1
RAW 89 ' palette
RAW 02 ' aim type, homing projectile
ADR.16 $D36A20 ' particles script
ADR.16 $D19702 ' animation script
ADR.16 $D18D39 ' animation script
' spell level 2/3
RAW 89 ' palette
RAW 02 ' aim type, homing projectile
ADR.16 $D36A22 ' particles script
ADR.16 $D19702 ' animation script
ADR.16 $D18D52 ' animation script
' spell level 4/5
RAW 89 ' palette
RAW 02 ' aim type, homing projectile
ADR.16 $D36A24 ' particles script
ADR.16 $D19702 ' animation script
ADR.16 $D18D6F ' animation script
' spell level 6/7
RAW 89 ' palette
RAW 02 ' aim type, homing projectile
ADR.16 $D36A26 ' particles script
ADR.16 $D19702 ' animation script
ADR.16 $D18D90 ' animation script
' spell level 8/9
RAW 89 ' palette
RAW 0C ' aim type, hardcoded
ADR.16 $D36A26 ' particles script
ADR.16 #0x0000 ' null
ADR.16 $D18D90 ' animation script
' spell level 10+
RAW 89 ' palette
RAW 0C ' aim type, hardcoded
ADR.16 $D36A26 ' particles script
ADR.16 #0x0000 ' null
ADR.16 $D18D90 ' animation script

So, the first 2 bytes (E085) are a 16-bit pointer into bank $D1 for the elemental summon animation that heroes use. Obviously enemies ignore this when they cast spells.

The next 6 bytes are 3 16-bit encoded pointers, whose value gets multiplied by 24 (0x18), and then used as a 16-bit pointer into bank $D4 for the start of the spell's graphics to load.

After this is 6 8-byte chunks of data that specify animations for each 2 spell levels.
- The first byte is a palette number, but it depends on the animation scripts for how much this palette number is used, if at all.
- The second byte is the animation type for the spell: whether it directly occurs on the target, fires homing projectiles that have to contact the target, plays a hardcoded animation, etc. AKA "aim type" because this specifies how the spell reaches its target.
- The next two bytes are a 16-bit pointer into bank $D3 that seems to be sprite construction data for spell "particles" which I guess are the lesser parts of the spell animation (small twinkles, etc.). I don't recall if this points at an animation script or just frame construction data.
- The next two bytes are a 16-bit pointer into bank $D1 and many animations don't use this pointer so it's set to 0000 instead. I think this tends to be used by projectile-style spells.
- The last two bytes are a 16-bit pointer into bank $D1 and are the spell's primary animation script.

Hardcoded animations tend to ignore all of the data in the above described chunk, aside from the "aim type" byte causing the spell animation loader to go check for a hardcoded animation for the current spell number in the first place.

7
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 25, 2021, 02:37:46 pm »
derula, oh that is excellent, thank you so much. I'll use that as a base to add on to going forward.

Davias, let's see what answers I can come up with...
- Thoughts that cross my mind regarding Salamando: the girl and sprite each have their own palette for each elemental, and the girl's Salamando is less red than the sprite's; the time of day was affecting his color scheme in a way that made it rather blue; or maybe if an Undine spell (e.g. Freeze) or healing item (e.g. Candy) was hitting the girl or sprite as they cast a Salamando spell, it interfered in such a way as to override that character's spell palette? (not sure if that can even happen, just brainstorming how the colors could come out wrong)
- I haven't yet reviewed Aegagropilon's AI; I've been slowly working my way through the bosses, trying to clean them up a little, but only made it as far as Vampire so far. I expect a combination of features (Faster_Bosses, Burst_-_Health_Cost, maybe others) has messed up some of his logic and led to the result you encountered; also most boss AI is just bad, so it could be it's a vanilla problem depending on things like where you're positioned, etc.
- Hm, I thought the Dark Lich was in okay shape thanks to Dark_Lich_-_Nether_Pursuit and Dark_Lich_Head_Bang_Fix; his AI will get reviewed again eventually. Hammering him with spells is the pretty typical way through that fight though; he's a somewhat annoying melee target, and by that point, your magic is as strong as you're going to have it and you should have the mana to cast it.

8
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 24, 2021, 04:08:35 pm »
Stifu, if someone really wants to do that, I wouldn't stop them or request it be undone, and I know I can always submit a change if I'm not happy with the description, etc. I think my only requirement is that a link to this thread be prominent in the description.

But seeing as I wouldn't want to do it, I'm not going to request that someone do it for me.

Sarah Shinespark, in hindsight, I wish I had kept a changelog text file; I just hadn't expected Turbo to be more than like a one-month project originally.

9
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 24, 2021, 03:36:38 pm »
I sorta expect that I won't submit this to RHDN until I don't want to work on it ever again, so it hinges on me reaching that point. Having gone through the process of RHDN submission and then quite a few update resubmissions for the SoM retranslation, I thoroughly dislike the time and effort spent on that process. Nothing against RHDN itself, I love the site and am happy with how it works, just that if I commit to submitting, I'd want to keep that version at least fairly up-to-date (I don't want many-version-out-of-date bug reports that I have to keep double-checking because they're using an older RHDN release if I didn't keep resubmitting, etc.), and the more consistently I do that, the more time burned (for the RHDN submission reviewers too!). Compare that to random upload site + forum releases, where it takes me less than 60 seconds to pack the zip, drop onto a browser window, copy a URL, and edit first post + start a new post. Typing up a changelog is the longest part of the release process currently. The worst case scenario is I start to resent submitting updates, which makes me disinterested in working on this project, and that would be a sad reason to stop.

Oh, and as for stability, it's been pretty solid for at least a year. Occasionally bugs slip through, and the two newest complex features (Centered_Spawns and Turtle_Tours) haven't been thoroughly checked to make sure they don't have unexpected side effects, but are both fundamentally sound and bug-free as far as I'm aware.

If you mean literal stability, like crashing an SNES, the game has never been as crash-free as it is now.



Tasnican Countryside Map:
Spoiler:
Really, this spoils the fun of exploring the new location:
Spoiler:

hmsong, the Scorpion Gang henchman should be "hiding" somewhere if you visit before the sunken continent rises (at which point, you'll see him there, like usual). I figured it'd give some sense of continuity between the Tropics and Underground City instead of them being completely absent between those two points. In the future, I had another area to add in mind where I'd probably have the same sort of little easter egg, to add a Scorpion Gang appearance between the Tropics and flight travel (this one).

I do intend to answer your questions about spell colors (and such), but there's just enough I need to figure out how to explain that I need to commit a decent chunk of time to doing so, and I keep running out (of time). -_-

10
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 20, 2021, 10:45:27 am »
I'm out of town until sunday, so I probably can't accurately answer the more technical questions you had until I get home, but here goes...



For the Matango trap, first off, if I was ever aware of that lost crab, I didn't remember it, so a huge thanks for bringing that up. I did some tricky stuff to make the enemy not get hurt by the fall animation, so that he gets in a free attack, and so that he only spawns for the fall.

So that he doesn't get hurt he's set to spawn on the opposite collision layer to the players, which prevents melee and ranged attacks from colliding with him, and then the event sets him back to the normal layer when it ends (after the fall and head-shake animations) so he's attackable.

So that he casts a spell as soon as possible, I use the event \unlock command as soon as you change maps, which technically means the AI buddies or other two players can move around slightly during the fall, but that's not a big deal, since unlocking lets the spider legs AI be active while the heroes are playing fall and head-shake animations.

As for him not respawning, event flag 0x0A controls the pit trap visuals and the trap itself resetting, so I tied the spider legs spawning to that event flag as well, and the event just sets it to 02 after he's spawned, so that if you leave and go back down the stairs, the flag will still be 02 while he requires it to be 01.



For Tasnican Countryside, none of the doors are functional. There are very few available unused doors, so I intentionally designed the new area to use none.

I did want to have a sign for the player to read, but that tileset doesn't have the signpost! I also had wanted waist-deep water, but the water in that tileset doesn't work that way, so I had to fake extra shallow water in the northeast. That tileset has tons of stuff in it, but because it's so varied it also lacks some of the specialized stuff of the more specific-purpose tilesets.

Because the map is so huge, even 31 monsters is spread just a little thin, so I can't reasonably add spawning conditions to them without making them even more sparse. What I mean is, 32 is the maximum possible spawn table size, and monsters with spawning conditions (event flag X is at least Y, etc.) still use up one of those 32 slots. To make the map not feel underpopulated, I need them all to always be available. If there wasn't that limit, I'd have had more rules for what spawns when.

Thematically, it's not a monster village; it's not like monsters built it, they're just what took over the area after the Tasnicans were pushed back to their castle during their war with the Empire. That's why I mostly used wild animals (bees, flowers, ducks, pumpkins, etc.), with some ghouls to represent dead villagers. I had considered having it be imperial troops (knights, ninjas, etc.) but figured they wouldn't just stick around long after the war to guard an abandoned village.

The slight difference in landing spot was a "just because I can" sorta thing. You land at a small dirt cliff; if you land on the top half you're placed above the cliff, if you land on the bottom half you're placed just below it. The world map landing zones have low granularity; there happen to be two spots because it straddles two landing zones. You're basically centered in the area when you land, and I didn't put enemy spawns where you land.

There should be 3 farmable items available, all with reasonable stats for the point in the game you can first get there and probably worth the player's time.

It's very difficult to change objects (enemy spawns, NPCs, treasure chests) on an existing map, which is why doing so generally requires stealing objects from another map, but since I added a map I had a little more flexibility to set up some of its data. I'm still limited by free unused space in bank $C8 and I had to modify the map piece loader to allow an additional data bank for map piece data.

My creative process was to first make the buildings; I knew I really wanted to use the town tileset and to make overgrown buildings. Then I made the area on the world map, and used it to guide my full-size map design. As I came up with details that didn't quite match the world map, I'd tweak the world map, and so on, so that's how I kept the details fairly close to each other.

11
Personal Projects / Re: Secret of Mana, Turbo - Beta 210818
« on: August 18, 2021, 09:31:18 pm »
Version 2021-08-18:
https://www.sendspace.com/file/b4uic3

Changes:
- fixed Miscellaneous\Turtle_Tours corrupting the Pure Land clouds on the world map
- added a monster to Miscellaneous\Enable_Matango_Caves_Trap at hmsong's suggestion
- added hmsong's Magic\Spell_Timing_Tweaks for Lava Wave
- added hmsong's Balance\Better_Magic_Rope which allows use of the Magic Rope in 4 dungeons where it couldn't be used before
- added hmsong's hardcoded Hellfire animation (if Shadow_Saber is On)
- changed the high level Luna Revivifier colors from green to yellow
- implemented Miscellaneous\Centered_Spawns which alters NPC positioning all over the game world; spider legs are now centered in their pits, kings now sit in the middle of their thrones, guards are now positioned symmetrically, etc. but please report any issues this usually 4 pixel shift causes for cutscenes and such
- implemented Miscellaneous\Tasnican_Countryside which adds a gigantic new adventuring location a little east from a certain castle-bound city-state, on the mainland; see below

Technical Changes:
- relocated bug fix code block from $CCEB00 to $DC0540
- reorganized various bank $C9 mod-added event data
- compatibility fixups to Farmable_Sword_Orb, Remove_Empire_Castle_Gate, Neko_And_Watts_In_Fortress and Weapons_Progression_Balance to accommodate Better_Magic_Rope
- additions to Overwrite_Unused_Data



So Tasnican_Countryside was my new big project; it took over a month to make, and I've been kicking around the idea for over a year, so it's been a long time in the making. Aside from the map piece data being currently uncompressed, it's more-or-less done. Its objective is to provide a location after travel opens up to fight for experience, money, and a couple rare drops (that should be useful at the point in the game you can get there), while also looking interesting and pushing the engine to its limits: it is larger than any vanilla map, at 128x128, which is the maximum possible, and has 32 possible spawn points, also the maximum. I tried to use a tileset that isn't used for combat in vanilla and to misuse its tiles in unexpected ways to provide new (and hopefully appealing) visuals.

Here are some pictures of Centered_Spawns:


And a single vague spoiler for Tasnican_Countryside:


Oh, and Centered_Spawns fixes positioning of a certain space laser.



hmsong, I'm out of time at the moment, but I have a whole heap of replies to write to you. Thanks for all the work you put into your recent stuff, and the bug report, and the Matango trap idea. Try this version out and tell me if I messed up anywhere; I handled Better_Magic_Rope compatibility in basically the exact opposite way you had, so hopefully didn't break anything.

12
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: August 01, 2021, 03:32:02 pm »
0E is the aim type, 97 is the palette (though very unlikely to be used by the hardcoded animations).

The following 6 bytes are 3 16-bit pointers used by normal spell animations.

Oh, right, I was sorta forgetting what you were doing here.
Code: [Select]
@OFF $C13A24
CMP #26
...is enabling a hardcoded animation for spell 26 (Dispel Magic). This was taking that hardcoded animation slot from Exploder and giving it to Dispel Magic. Obviously that wasn't your objective.

You need spell 0D (Exploder / Hellfire) to play hardcoded animation 02 (which is Evil Gate) instead of 01 (which is Exploder). There are at least 3 ways to accomplish this:

1) Leave $C13A24 as CMP   #0D, and change $C13A48 to LDA   #01
2) Leave $C13A24 as CMP   #0D, and change $C13A26 to BEQ   $24
3) Change $C13A24 to CMP   #24, and change $C13A28 to CMP   #0D

Option 1 is probably the worst way of the three. Options 2 or 3 are both better. An even better way is to rewrite the hardcoded spell animation loader to be data driven, so that spell data in bank $D0 can specify which hardcoded animation to play, but I don't expect you to do that. A long term plan I have is to give the hardcoded animations to bosses so the art will still be used, without leaving it for the players to abuse to stop time.

Yes, aim type affects some of how spell recharge times work, though it's worth noting that the 7 hardcoded spell animations completely lock up the game while they play; they work completely differently than all other spell animations. The timing of when recharge starts ultimately falls on zhaDe's design of the recharge system. It's not like it couldn't work differently, but I'm not interested in changing how it works.

13
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: August 01, 2021, 03:33:04 am »
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.

14
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 31, 2021, 02:11:19 pm »
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:
Code: [Select]
' 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:
Code: [Select]
' 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:
Code: [Select]
'RAW 0E ' aim type, direct special
RAW 00 ' aim type, direct

15
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 30, 2021, 09:54:07 pm »
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.

16
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 24, 2021, 05:21:38 pm »
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:
Code: [Select]
@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:
Code: [Select]
'@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.

17
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 21, 2021, 04:39:41 am »
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.

18
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 18, 2021, 08:45:38 pm »
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.

19
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« on: July 18, 2021, 02:41:49 pm »
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.

20
Personal Projects / Re: Secret of Mana, Turbo - Beta 210715
« 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.

Pages: [1] 2 3 4 5 6 ... 31