## News:

11 March 2016 - Forum Rules

## Secret of Mana, Turbo - Beta 210915

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

#### hmsong

Quote from: Queue on April 27, 2021, 03:42:16 AM
It's like being able to sequence break early game stuff so the girl and / or sprite join the boy in the goblin village cutscene: harmless, funny, doesn't break the game.

Wuw, so you're not gonna fix the beginning cannon travel man bug?

#### Queue

#2081
Version 2021-05-02:
https://filebin.net/7spaiz2xfys6b2i1/SoM_Turbo.210502.zip
https://www.sendspace.com/file/x44ouv

Changes:
- Wall Face removed from Magic\Change_Form_-_Pygmy-Moogle list of changes
- Modified Balance\Wall_Face_-_Uncrushable_Barrels to change Wall Face's east eye Freeze spell into a new "Moogle Beam" boss skill
- Implemented Balance\Vampire_-_Form_Change; new transformation animation frames and appearance while flying and altered flight mode logic (so the vampire bosses don't immediately start then stop flying)
- Implemented Bug_Fixes\Wall_Boss_Beam_Fix; apparently if a wall boss used a beam skill (e.g. Flash Beam), it could only hit each hero once, and then would stop doing damage on subsequent uses, due to a vanilla programming mistake
- Implemented Bug_Fixes\No_Sleep_Walking; if you transformed (e.g. moogle) while unconscious, you could move around before the sleep status effect had worn off
- Implemented Bug_Fixes\Unhinged_Vampire_Door; a phantom door appeared when being sent into Vampire's fight arena due to a mistake in door data
- Fixed Quality_of_Life\Equip_2nd_Weapon; if player 2 was blocking, player 1 couldn't quick swap weapons
- Gave Santa's House interior Tidy Map treatment (you no longer stand on top of the flowers on his table or the logs by his fireplace)
- Fixed Magic\Spell_System_Extensions; elemental names weren't displaying correctly in their level up messages
- Updated Text\Reborn pre-prelease V1.11

hmsong, yeah, probably not going to. It just doesn't hurt anything and practically has to be done on purpose.

Oh right, and I wanted to mention that projectile weapons not working on Vampire, but working against Buffy, seems to be some vanilla projectile collision issue related to how each of those fight arenas works. It doesn't seem to be intentional behavior. I'm trying to resolve the issue, but SoM's collision detection logic is rather complicated.

#### hmsong

Huh?  I thought you were intending on removing Change Form from Wall Face, and not Vampire.  I'm guessing it was removed from Vampire because you needed the extra space for the new Vampire mechanics?  And does changing stuff from Vampire change stuff from Buffy too?  Does that mean that no bosses have Change Form?

I still couldn't figure out what to do with Wall Face's Change Form.  Wait, does the left eye and right eye have different moveset? (at least, one of them has the moogle beam instead of freeze/change form?)  Does that change things for Demon Wall?

Hmm.  I want to fix the canon travelman bug in the beginning, for my private collection.  Could you please help?  I'm guessing I need to change Event0CE's "\if_flag== 11 00", but I don't know what to change to.  I know there's something I can change, since the Pandora guard moves away once certain event happens.  I'm not sure if they're related though.

Oh, and unless you change a lot of things from the previous Reborn version, could you please post which specific event number was changed? (you don't need to post which part of the event was changed, since that may be tedious).  I changed some things for my private patch, and if I knew which event was changed, I can just take a look at that event to see if I need to change anything, instead of going through the whole script all over again.  Thanks.

#### Queue

The changelog is wrong, I'll edit that post, I typed Vampire where I meant to type Wall Face. Vampire and Buffy still have Change Form instead of Freeze.

Yes, the Vampire stuff affects Buffy as well.

Doom Wall should be unchanged. Wall Face's left and right eyes have different moves. Left has Flash Beam, Leaden Glare and Cure Water, Right has Energy Absorb and Freeze (now Moogle Beam).

Hm... it's tough for me to do a comparison between Reborn versions embedded in Turbo. I do a full comparison between stand-alone Reborn versions for the Reborn readme, but listing every event changed would be a huge time waster. Are you making changes directly to the Reborn script data? You could use:
%OFF% Event###
To overwrite whole events in your custom stuff so that you won't have to make edits to them without needing to re-edit them every update. Or are you already and just want a heads up on what has changed? When I've listed event numbers before, it was generally when adding to Text\Event_Fixes, where I have to painstakingly keep things organized since not every script needs every event fix. When Reborn gets changed, it's text in a spreadsheet fed into a script that converts it for use by the ZPS patcher; at the time it's changed in the spreadsheet, there's nothing to indicate which event number the text is part of.

Regarding the cannon travel guy, solving it appears imperfect. Changing \if_flag== 11 00 \goto 0FB means he'd keep offering you a free ride to the Water Palace... you might be able to change it to \if_flag== 12 00 \goto 0FB, the same as the Pandora Guard that stops you from entering the city. Hopefully that would work.
%OFF% Event0CE\event \if_flag== 1E 7F \goto 0D1 \if_flag== 12 00 \goto 0FB

#### hmsong

Quote from: Queue on May 02, 2021, 08:05:13 PM
Doom Wall should be unchanged. Wall Face's left and right eyes have different moves. Left has Flash Beam, Leaden Glare and Cure Water, Right has Energy Absorb and Freeze (now Moogle Beam).

Hm... it's tough for me to do a comparison between Reborn versions embedded in Turbo. I do a full comparison between stand-alone Reborn versions for the Reborn readme, but listing every event changed would be a huge time waster. Are you making changes directly to the Reborn script data? You could use:
%OFF% Event###
To overwrite whole events in your custom stuff so that you won't have to make edits to them without needing to re-edit them every update. Or are you already and just want a heads up on what has changed? When I've listed event numbers before, it was generally when adding to Text\Event_Fixes, where I have to painstakingly keep things organized since not every script needs every event fix. When Reborn gets changed, it's text in a spreadsheet fed into a script that converts it for use by the ZPS patcher; at the time it's changed in the spreadsheet, there's nothing to indicate which event number the text is part of.

Regarding the cannon travel guy, solving it appears imperfect. Changing \if_flag== 11 00 \goto 0FB means he'd keep offering you a free ride to the Water Palace... you might be able to change it to \if_flag== 12 00 \goto 0FB, the same as the Pandora Guard that stops you from entering the city. Hopefully that would work.
%OFF% Event0CE\event \if_flag== 1E 7F \goto 0D1 \if_flag== 12 00 \goto 0FB

Wuw, so Wall Face's left eye and right eye always had different moveset in vanilla?  I didn't know that.  But makes sense.  Cool.

I'm indeed using %OFF% Event###.  For example, I changed Event10C's Timothy/Elliot somewhere in the middle (I pointed this out to ManaRedux, but he decided to keep the way it is due to it being the original version), but I had to include all the scripts previous of that since I obviously had to keep the original things too.  Basically, I changed into this, because I can't just pick out the specific change in the whole script:

%OFF% Event10C ' \$E13E04 Row: 592\event \flag== 10 05 \lock \gather \camera_center \move_leader= 00 \move_npc== 06 40 \text_openTEXT ^E L^ D^ E^ R^ : ^O h , _ [B] , _ y o u  r e _ a l l \n^TEXT r i g h t . _ ^T i m o t h y _ a n d _ ^E l l i o t t \n^TEXT t o l d _ m e _ w h a t _ h a p p e n e d . \n\event \wait_input \text_close \lock \move_npc== 04 90 \move_npc== 05 40 \move_npc== 06 90 \wait_anim \move_npc== 04 4E \move_npc== 06 40 \wait_anim \text_openTEXT ^E L^ L^ I^ O^ T^ T^ : ^G e e z , _ ^I _ t h o u g h t _ y o u \n^TEXT w e r e _ a _ g o n e r ! _ ^T o o k _ y o u _ l o n g \n^TEXT e n o u g h , _ y o u _ d o l t ! \n\event \wait_input \text_clearTEXT ^T I^ M^ O^ T^ H^ Y^ : ^J u s t _ l i k e _ ^I _ s a i d , \n^TEXT t a k i n g _ a _ g u y _ l i k e _ t h i s _ a l o n g \n^TEXT w a s _ a _ b a d _ i d e a . _ ^T s c h ! \n\event \move_npc== 05 C0 \wait_input \text_clear \move_npc== 06 C0TEXT ^E L^ D^ E^ R^ : ^I d i o t s ! _ ^I _ s a i d _ d o n  t \n^TEXT g o _ t h e r e ! _ ^Y o u  v e _ c o n d u c t e d \n^TEXT y o u r s e l v e s _ l i k e _ t o t a l _ b r a t s ! \n\event \move_leader= C0 \move_npc== 04 80 \move_npc== 05 00 \wait_anim \wait= 01 \move_leader= 42 \move_npc== 04 00 \move_npc== 05 80 \wait_anim \wait= 01 \move_leader= 80 \move_npc== 04 C0 \move_npc== 05 40 \wait_anim \wait= 01 \move_leader= 00 \move_npc== 04 40 \wait_anim \wait_input \text_clearTEXT ^E L^ D^ E^ R^ : ^O h . . .\event \move_npc== 06 40 \wait_animTEXT [B] ! \nTEXT ^W h a t _ d o _ y o u _ h a v e _ t h e r e ? \n^\event \wait_input \text_clearTEXT ^I t  s . . . t h a t  s . . . n o , _ t h a t  s \n^TEXT i m p o s s i b l e ! \n\event \wait_input \text_clear \move_npc== 05 80'TEXT ^E L^ L^ I^ O^ T^ T^ : ^O o o o h ! _ ^M a y b e _ y o u \n^'TEXT f o u n d _ t h e _ t r e a s u r e ! ? \nTEXT ^T I^ M^ O^ T^ H^ Y^ : ^O o o o h ! _ ^M a y b e _ y o u \n^TEXT f o u n d _ t h e _ t r e a s u r e ! ? \n\event \wait_input \text_clear'TEXT ^T I^ M^ O^ T^ H^ Y^ : ^H e y , _ n o t _ b a d ! \nTEXT ^E L^ L^ I^ O^ T^ T^ : ^H e y , _ n o t _ b a d ! \n

But if you changed the "\move_npc== 06 40" part to "\move_npc== 06 41" (I'm not saying you did, but I'm just taking that as an example), I'll need to change that in my private patch too, so that my private patch changes with what was changed.

Btw, I wasn't requesting you post the changes to all of Reborn stuff.  I'm specifically talking about between the specific versions.  For example, if you changed something event001 in v210502 (relative to v210419), then under "- Updated Text\Reborn pre-prelease V1.11", you can just put additional, "--Event001".  You don't need to specify what part of event001 was changed (unless you want to).

But that's only if very few events were changed.  If you changed a lot of different events, then posting the changes would be a pain for you, and I'll just go through the script to see what was changed.

#### Mr X

Filebin doesn't seem to work since yesterday that I tried, weird that site was always working for me

#### Queue

hmsong, when ManaRedux or I make changes to Reborn, it's not in a ZPS file, it's in a spreadsheet.
After we make edits:
- it gets exported as a "Tab-separated values" (TSV) file
- the TSV gets fed into a combination Batch / VBScript
- the VBScript processes it into ZPS syntax
- the Batch script merges it with some other ZPS script fragments
- the ZPS Patcher then applies the generated ZPS patch
- then FLIPS generates an IPS patch from the ZPS patched ROM for the Reborn release
Because changes are mostly made in the spreadsheet, I don't know which event number the changes will be affecting. Edits to the event scripting template (stuff like how much NPCs move) is a fairly messy affair mostly focused on making sure text boxes work correctly with the integrated spreadsheet text, and also doesn't happen much at this point.

And the working folder for building the patch looks like this:

A comparison between the Reborn ZPS event fragment versions (the part that contains the events), can look like this:

But what isn't obvious is that the diff utility is preprocessing the input to strip comments, and I can't (reasonably) do that with the Turbo ZPS file to compare Reborn text once its been copy&pasted in (the Turbo ZPS file is too big and complex, basically; the preprocessing chokes and fails). I don't track changes between iterations of Reborn because lots of changes are scrapped, and all change notes are by hand, so I wait until a release is ready, then do a full comparison between versions (e.g. Reborn V1.10 and V1.11), and even then, it's to count the number and type of changes (spelling changes, spelling fixes, event fixes, etc.), not to note exactly which event numbers saw changes.

#### hmsong

I see.  Thanks for the explanation.  I guess I'll manage.

this looks neat!

#### LightBaneX

I just want to express how happy I am to see this project still being worked on. I did a full playthrough of this game with my buddy back in... april or may last year? So it's been an entire year! Is there an easy way to look through what has changed in the last year or should I just start reading through these pages

#### Thanatos-Zero

Quote from: Josenev on April 25, 2021, 10:54:47 AM
Hello one more time, I'm glad to show you the current progress of this new graphic theme.

This time I work the walk side animation sets of the characters, I put a preview animated GIF x3 and a preview animated GIF in real pixel size:

For the current animations I took the characters animations from Seiken Densetsu 3 as a reference (Hawk, Angela and Carlie)

I show you the frames sets with the game tiles, I guess they fit properly, but I'm not actually 100% sure about that, I use the SOMEDIT to take the references.
Any help about that would be greatly appreciated.
(the colors tiles are the repeated tiles, there are a JPG x3 and a PNG real size)

On another front... Hi ManaRedux!

I think that the serious look is beacuse the pixel line in their foreheads, I think I fixed it by changing the bright.

I'm still figuring out how work the other issues, but I assume this is about to play with the color palette.

As I said las time, anything of this pixelart work is liable to be change. Thanks in advance for the help and the responses.

If you aim to edit all existing sprites in SoM, I could imagine for later the usesage of the Secret of Mana IOS and the Trials of Mana tiles for the backgrounds.
Also if the IOS sprites fit in the assigned vectors for the SNES sprites, your work will be a lot easier as a result.

#### Echoherb

#2091
Hello, glad to see this project still alive! I was wondering if there was a way to run the custom patcher with android? I'm playing with turbo vanilla settings at the moment (thankfully there a prepatched rom available), but I'd like to tweak things a bit add a higher default magic setting, plus a little bit faster weapon/magic grinding speed. Thanks in advance!

#### Queue

LightBaneX, I'm afraid there's no organized changelog. I post changes with each new release, but don't centralize that info anywhere.

Echoherb, I took a look, and it doesn't look like there's a sane option for running .NET programs on Android. I think it's possible to some degree, but requires an enormous amount of work, for example: setting up Termux, then Arch Linux set up within Termux, then Mono within Arch Linux. And even then, since the ZPS Patcher requires "Mono with Visual Basic support" (mono-vbnc), I'm not even positive that would be available within that, and it'd still probably only give you commandline capability, not the patcher GUI.

While I've been quiet lately, I've been busy. Wrapping up Reborn V1.11, and mapping out (and visualizing) all of the game's collision detection systems. It actually has a bunch of mostly unrelated collision code depending on what's touching what.

Here's an example showing player attacking boss with melee, boss attacking player with non-instant skill, faded ranged attack collision regions (the yellow boxes near the left and right eyes), and more. Notice that player weapon size is exaggerated (doubled) for boss collision checking, at least for Wall Face. Not sure yet if that's true for all bosses. Also note actor numbers, and that Wall Face can use all 9 slots (skill attacks like lasers use an NPC slot).

#### hmsong

I guess Wall Face's coding (for vanilla at least) is a mess.  That must mean Demon Wall is just as messy.

#### stealthrabbi

I enabled the Default Spirit Levels mod. But, when I got Sylphid, instead of starting at level 1, it started at zero. Has anyone else got this to work?

I had the overall Magic group checkbox enabled, and confirmed that other settings I set have taken affect.

This is on 210502

https://i.imgur.com/9I8K7NJ.png

#### Mr X

Would be cool gimmick for wall bosses if they get some sort of defense mechanism for the middle eyes that maked them immune to magic and to drop that defense you have to take out the left/right eyes.

Or have middle eye cast a high leveled cure water to heal self and only way to make it stop casting is by taking out the other two eyes forcing the middle eye to take action against you then once the two eyes are killed.

#### Echoherb

So I got to Gaia's navel with the girl, and she made me go to the forest first before she would let me enter. I thought that was patched out with the Gaia's navel without doubling back mod?

#### Queue

stealthrabbi, Default_Spirit_Levels needs to be active when a character is first recruited to function (when you name the girl or sprite). That's the point in time when character data is initialized, and so includes setting elemental levels (to 0 in vanilla, generally not 0 with Default_Spirit_Levels). If you hadn't had it enabled, and played past the point in the game where you name the girl and/or sprite, then enabled it (and repatched the ROM, etc.), that's one way for it to seemingly not work.

Echoherb, if you enabled Quality_of_Life\Gaias_Navel_Girl then yes, but it's not On by default.

hmsong, yeah, the two wall bosses share almost all of their code, it's practically just their respective desperation attacks that diverge.

Mr X, I'd looked at altering some of the logic concerning the side eyes, especially regarding mana, but didn't come up with anything that was worthwhile. Like all boss code, it's really unpleasant to work on, and I don't expect to revisit wall boss code any time soon. Lots of other bosses that still need an initial pass to try and iron out their worst wrinkles. The wall bosses will probably benefit as a side effect of collision code work I'm currently experimenting with, but it won't be focused on them in any way.

And on that topic (collision detection), despite the common complaints, this game's collision detection code is pretty solid (though messy and with separate implementations for almost every object interaction).

The only truly bad collision code is for basic projectiles (bow/javelin/boomerang); it's reliable, it just does a terrible job placing collision boxes since it disregards relative position offsets and uses square bounding boxes for the projectiles (e.g. the javelin is a massive 32x32 pixel square, not 32x8 like it looks like).

Boss skills that launch projectiles have more technically correct collision (they use the relative position offset), but can only collide every 5 frames, making them less reliable.

There are a few improperly defined collision rectangles, but that's defined per frame of animation, and most are good; I'm convinced the bulk of the complaints still stem from the lack of feedback on if a hit connected, and the delay before damage is applied, rather than any fault specifically in collision detection itself. There are some non-obvious situations where you and your target are at different heights (not like Z-distance off the ground, which does matter, but rarely comes into play, but instead ground height which is based on staircases usually) so that an attack isn't allowed to connect (I think Spring Beak is affected by this, where the design was where you need to be standing on one of the platforms for melee to hit, but where that's hard to accomplish due to positioning and only attacking in cardinal directions), but that accounts for very few situations.

#### hmsong

Oh, so that's why I miss so often against some enemies whenever I use projectiles? (such as Spike Tiger)  Heh.

It seems you're busy with all the edits.  Looking forward to your next release.

#### kaine23

I'd love to give this a try!