News:

11 March 2016 - Forum Rules

Main Menu

Secret of Mana, Turbo - Beta 231108

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

Previous topic - Next topic

Queue

hmsong, I'll try and reply to your questions, but I still need to do a full write-up for how the new event labels work. Anything I put in "quotation marks" is searchable in the Turbo ZPS file.

The only labels that exist by default are the basic Event### label, one per event, that points to the start of the event. Any that are Event###.Anything_Else.etc. are added to allow patching at a point other than the start of the event.

Search for "@OFF Event###" (with actual hex numbers in place of ###) to find the event scripts. Likewise, patches to events will be "%OFF% Event###". Currently you'll have to pass through a large block of junk at the "event address lists" if you search for "@OFF Event###"; I'll try and alter things so search results won't find matches in there.

So with Generous_Gold_Chests as an example, they needed to change the gold amount, and some text, so I added label declarations:
!Event67E.Generous_Gold_Chests.amount
!Event67E.Generous_Gold_Chests.text
!Event67F.Generous_Gold_Chests.amount
!Event67F.Generous_Gold_Chests.text

to the "event script headers"
(I put them all on one line using %\n%'s)

It doesn't matter if they're declared in the correct order (these aren't), as long as they're declared in the "event script headers" section just after the !Event### declaration they're related to (in this case !Event67E and !Event67F).

Then I added those labels to events 67E and 67F, in Vanilla, VWF Edition and Relocalized's event scripts, which are now in the Turbo ZPS file. Search for "Generous_Gold_Chests" to see how the labels were declared and inserted.

The name of the labels is arbitrary. Since Generous_Gold_Chests needed two per event, I described each one's purpose. I chose text and amount to be descriptive, but anything would've worked, .1 and .2, .first and .second... it has no intrinsic meaning. I name feature-specific labels with the feature they're related to (Generous_Gold_Chests in this case), but that also isn't technically required, just a good idea: you can search for "Generous_Gold_Chests" and find everything related to that feature since the event labels contain that text.

After adding the labels, they can be used by the patch they're intended to be used by, and if a future event script variant is added (like reconstructingmana's upcoming work), then adding support involves inserting the event labels to the new event script; in the case of simpler event patches, sometimes no extra work will be necessary.

You're still limited by the space available in the original event, and no, Event134.Missable_Spear_Fix.text won't do anything unless you first add a declaration for it:
!Event134.Missable_Spear_Fix.text
(somewhere just below !Event134)
and insert the new label into the three versions of Event134 (presumably just before a line of text), like:
@OFF Event134 ' $C93CDA
\event \if_flag== 1B 13 \goto 13C \flag== FD 00 \flag== FE 02 \text_open
@OFF Event134.Missable_Spear_Fix
\event \if_flag== C3 00 \call 13A
@OFF Event134.Missable_Spear_Fix.text
TEXT ^L ^U ^K ^A : ^I ` l l _ r e s t o r e _ y o u .
' this is the start of the Vanilla version of Event 134, omitted the rest


So, your Neko's Better Business Sense isn't the easiest patch to adapt to this new system; assuming we can't figure out a way to make it work without editing his text (which is likely possible, I've just not had the time to go over your work in detail yet), it would still require text variants for all 3 event scripts.

Currently, Vanilla Event1DF looks like this:
@OFF Event1DF ' $C9813D
\event \wait_input
TEXT \n
\event \call 480 \gold_show
TEXT ^N ^E ^K ^O : ^M e o w , _ b u s y _ t r a v e l e r s ! \n
TEXT _ ^I ` l l _ e v e n _ s a v e _ t h e _ g a m e ! \n
TEXT _# 03 (
\event \text_opt_start \text_opt_define= 05
TEXT ^S a v e
\event \text_opt_define= 0C
TEXT ^B u y
\event \text_opt_define= 12
TEXT ^S e l l _ )
\event \text_opt_end== \goto 0FF \goto 04F
@OFF Event1DF.Neko_And_Watts_In_Fortress
\event \goto 301 \goto 313 \end

Note the added label for Neko_And_Watts_In_Fortress which is in the same spot you intend to alter.

After adding the declarations for:
!Event1DF.Neko_Shopping.text
!Event1DF.Neko_Shopping.buy
You'd modify the event like so:
@OFF Event1DF ' $C9813D
\event \wait_input
TEXT \n
\event \call 480 \gold_show
@OFF Event1DF.Neko_Shopping.text
TEXT ^N ^E ^K ^O : ^M e o w , _ b u s y _ t r a v e l e r s ! \n
TEXT _ ^I ` l l _ e v e n _ s a v e _ t h e _ g a m e ! \n
TEXT _# 03 (
\event \text_opt_start \text_opt_define= 05
TEXT ^S a v e
\event \text_opt_define= 0C
TEXT ^B u y
\event \text_opt_define= 12
TEXT ^S e l l _ )
\event \text_opt_end== \goto 0FF \goto 04F
@OFF Event1DF.Neko_And_Watts_In_Fortress
@OFF Event1DF.Neko_Shopping.buy
\event \goto 301 \goto 313 \end


After which you can use:
%OFF% Event1DF.Neko_Shopping.text
\event \flag== FA 01 ' Initial Neko Shop
TEXT ^N ^E ^K ^O : ^I _ h a v e _ i t e m s , _ n y a ! \n

%OFF% Event1DF.Neko_Shopping.buy
\event \goto 4F1

in your patch. Including what was replaced as a comment becomes less valuable since you can just search the ZPS for Event1DF.Neko_Shopping.text and Event1DF.Neko_Shopping.buy to see the original.

You could also preserve the original text using the DTE characters:
%OFF% Event1DF.Neko_Shopping.text
\event \flag== FA 01 ' Initial Neko Shop
TEXT ^N ^E ^K ^O : ^M e ow ,_ b us ' y _ t r a v e l e r s ! \n

Since you only need 3 extra bytes to fit the \flag== command.

There's a lot of junk at the start of Event1DF:
\event \wait_input
TEXT \n
\event \call 480 \gold_show

\gold_show is two bytes; you could use an unused event to do \gold_show \flag== FA 01 \ret, and change the \gold_show in Event1DF into a \call UnusedEventYouJustReplaced.
That would let you avoid the text change entirely.

Similar methods could probably be used on the other Neko events. The ideal is to not have to change or edit text, and then you don't need script-specific (Vanilla/VWF/Reloc) text / fixups at all.

reconstructingmana

The rough, preliminary translation is more or less complete.  Now, this will be rewritten and paraphrased. 

Both the original '93 translation, and the '18 remake added or omitted details in places.  Each was writing for a different purpose.  The '18 remake followed Woolsey a lot, and ironically truncated some things, most likely to adapt it for voice acting.  Since all of the additions are "authentic", I will try to include them.

Of course, there is no claim that this is a literal translation.  Even though some very kind (and patient) fluent speakers have offered to develop and check over the script, there are some things that are extremely difficult to translate nicely.  Japanese has a lot of context-dependent nuances, onomatopoeia, complex sentence structure, etc.  I will do my best to get as many nuances out of the original text as I possibly can.

Also, I'm advocating for keeping the original English names and font from the SNES.  This is a different approach from most retranslations, but I have the idea that you're playing Secret of Mana as always, just with a more accurate script.

When this is complete, we should finally have our retranslation, and complete Phase 2 of what I'm calling the script augmentation project. 


Queue

Version 2020-04-28:
https://filebin.net/7spaiz2xfys6b2i1/SoM_Turbo.200428.zip

Changes:
- finally fixed axe neutral downward attack collision for busting rocks (Strong_And_Weak_Attacks)
- added preview version of Text\Abortable_Dialog, conversations that are nonessential can now be canceled early with the cancel (default Y) button; not all events have been processed yet

Technical Changes:
- replaced VWF_Edition event data blob with semi-readable decomposed events (was necessary for Abortable_Dialog)
- minor old code cleanup and restructuring
- improved unused event documentation accuracy




Much of this has been in preparation for the Script Augmentation Project, which has pretty much had all of my attention recently. Aside from sneaking in the axe collision fix, I've been focused almost entirely on cleanup, reorganization and the event system. I'm currently in the midst of hammering out a script (code) to process and format the new retranslation.

hmsong

Ooo.  Thank you for fixing that neutral Axe barrier thing.  That always bothered me, but I was able to get past the barrier with the stab motion, so I didn't make a big deal of it (and it was NGI's work).

One of the guys mentioned that Arrow is kind of weird (the rain of arrows).  I personally would have preferred neutral Arrow to be the regular arrow shot (longer range from Strong_And_Weak_Attacks, only because arrows take much longer than other weapons for the attack to come out).  And the D-pad+B would be rain of arrows, but at even longer range (seems fair, since that attack takes forever to hit).  Food for thought.

I like the default Javelin though.  Default is the throw, and the D-pad is the melee stab (spear's stab seems to have longer range than the javelin stab, which is fair).

I'm still working on the Neko shop.  Yeah, keeping the original text would be a better idea, since it would work with all of the retranslations.  It's kind of hard, since different shops use different timing on "gather, center camera, show gold, etc".  And I need at least 3 bytes in a row to call a new event.  And another 3 bytes in a row to call a specific shop.  More trials-and-errors are necessary.

Queue

Event call's (and goto's) are only 2 bytes. Just making sure that was clear, either in case you did think they took 3, or had just mistyped but someone else read that.

hmsong

Oh crap, you're right.  I screwed up.  Damn.  I didn't mistype that.  I really thought it was 3 bytes.  Well jeez.  Gotta do this all over again.  Thanks for the correction.  But being only 2 bytes should make things easier for me.

zoolgremlin

Hi everyone, you haven't seen me for a while, have you now?

Sorry about that, I've been involved with a community of gamers who play Evangelion:  Dawn, a mobile game.  I haven't thought about Secret of Mana, and the Turbo Project, for quite some months now!  And who would've thought a MOBILE GAME would garner that much dedication from its Players?  I swear I didn't anticipate this.  :(

It looks like I will have quite a lot to catch up on.  So the Project is still going?  Wow!

Hope you've all been okay, in the midst of this worldwide pandemic...  :o
MASTER LINK:  Secret of Mana Information (Vanilla)

"Yes, the Author is indeed a horse!"  <zool>

Queue

Version 2020-04-29:
https://filebin.net/7spaiz2xfys6b2i1/SoM_Turbo.200429.zip

Changes:
- No_Heal_At_Level_Up now On by default
- Abortable_Dialog promoted out of Preview status (apparently there were only 5 more events that needed processing, didn't realize I was that close)
- New_Game_Plus now re-seals Mana Magic

Internal Changes:
- further documented unused events
- added marks to event typos that I can revisit later

Abortable_Dialog could now really use testing. What it enables is the ability to hit the cancel button (Y, with default controller config) to exit NPC conversations early if doing so wouldn't break events. The adjustments to events were done by hand, and though I'm pretty sure I didn't make any mistakes, there are 2048 total events (I have never counted how many actually contain text, fewer than a quarter I'm sure), so it's not impossible that I added conversation cancel-ability where I shouldn't have. So basically it's just a matter of always using Y when talking to NPCs and see if it breaks the game. An upshot to having gone over each event by hand is I spotted a few mistakes in various versions of the event scripts that I can fix up someday (there really weren't many though, which is nice).




zoolgremlin, good to hear from you. With the jillions of phone games that exist now, I'm not shocked that there are some that are actually worthwhile (or at least that have a fan base). Nothing to apologize over.

Yeah, somehow I haven't thrown in the towel. Lots of recent stuff has been overhauling how the game's event data is presented inside the Turbo ZPS, largely in preparation for work on a new retranslation. Before that was overhauling the game's world map system to speed it up and allow runtime changes.

LightBaneX, I like your thoughts on the bow, but there's a problem: there's currently no way to differentiate between the neutral and directional attacks for the purposes of knockback (and I don't have plans to add that capability), so if bow neutral was a sort of melee animation that shoved the enemy away, the directional ranged attack would also have the same knockback.

You mention the whip, but both attacks cause enemies to be pulled in; and it's actually a non-obvious nerf to the whip since the whip has a deadzone immediately adjacent to the player, so once an enemy is pulled close, the whip often won't be able to hit them unless you move away first (personally I tend to pair it with a secondary melee weapon like the sword or gloves to swap to after a whip pull).

There are currently 4 knockback styles (with Strong_And_Weak_Attacks):
- always knockback the direction the player's facing, gloves
- always knockback the opposite direction the player's facing, whip
- if enough damage, knockback based on enemy's direction (Vanilla-style), axe/boomerang
- if enough damage, knockback the way direction player's facing, sword/spear/bow/javelin
These can discern the weapon type, but not if it was from a neutral or directional attack.

Ideally, all weapons would be equally viable, with some overlap here and there so that multiplayer you have options if multiple players want to use the same fighting style, but differences so that you can have your favorites be more than aesthetic. The arrow rain poses a problem as it's especially different from all other attacks (I suppose it's closest to an extra short range boomerang throw?) and doesn't seem to provide benefit to match its weirdness. It's ignorable if you exclusively use bow directional attacks, but if no one likes the arrow rain, it would be worth working on it since there are only 8 weapons (so it's a waste of what little is available).

If the arrow rain stays, what would it take for people to like it? I have some thoughts but want others' brainstorming without my ideas clouding the input.

hmsong

@zoolgremlin

It's great to hear from you again.  I'm glad you're doing well.  SoM is becoming more and more amazing.



@Queue

Quote- further documented unused events

Where's the part that documented the unused events?  I only know of the unused events, because you posted several pages ago the unused events (that's what I'm using to create new events for Neko shopping).

I shall test out the Abortable_Dialog.  At least, as much as I can -- I'll probably forget to test the abort from time to time.

Speaking of the default buttons, I feel like B should be the Dash/cancel button, and A should be the confirm/attack button, because that was true for pretty much all other snes rpgs (the SoM default is A = dash, B = attack, and Y = cancel).  Right now, I always manually change it (can't do anything about Y for cancel though), but in the title screen, you have to press B button to confirm.  Very annoying.

reconstructingmana

I spent yesterday and today revising the preliminary translation.  I checked it against a partial, unofficial translation that was written by someone who I've been consulting with throughout the process.  This will be done tomorrow, and then I will check what I have against Woolsey, the 2018 translation, and another partial retranslation.  The final step here will be rewriting to improve characterizations, and then it will be reviewed by folks who know the language very well.  If anyone knows Japanese, or knows someone who does, every bit of insight helps.

hmsong

@Queue

Hmm.  I thought I did the Neko Shop correctly, but it's not working.  Can you tell me what I did wrong this time?


'[Event 065 - Initial Neko Shop]
@OFF $C91234
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $C98142
'\event \gold_show
\event \call 088
@OFF $C98195
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $C99D7A
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $C9CD58
'\event \flag== FA 0C ' Mandala Shop
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $C9CDFC
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $CA8964
'\event \camera_center
\event \call 649
@OFF $CA89B2 ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List

%OFF% Event088 ' 088-08D, initial neko, various beginning nekos
\event \gold_show
\event \flag== FA 01 ' Initial Neko Shop
\event \end

%OFF% Event178 ' 178-17D, upperland neko
\event \gold_show
\event \flag== FA 06 ' Upperland Neko
\event \end

%OFF% Event31A ' 31A-31F, grand palace neko
\event \gold_show
\event \flag== FA 0F ' Grand Palace Neko
\event \end

%OFF% Event649 ' 649-64E, ice neko
\event \camera_center
\event \flag== FA 01 ' Initial Neko Shop
\event \end

%OFF% Event4F1
\event \if_flag== 4F 1F \goto 659
\event \if_flag== 4F 00 \goto 678
\event \end

%OFF% Event659
\event \flag== FA 0F ' Grand Palace Neko Shop
\event \goto 312
\event \end

%OFF% Event678
\event \flag== FA 01 ' Initial Neko Shop
\event \goto 312
\event \end

IF [Text]
IF VWF_Edition
IFNOT Relocalized
'[Event 065 - Initial Neko Shop]
@OFF $E114F5
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $E197A9
'\event \gold_show
\event \call 088
@OFF $E19801
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $E1BE47
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $E20A4F
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $E20AF8
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $E2E1D7
'\event \camera_center
\event \call 649
@OFF $E2E22A ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List
ENDIF x3

IF [Text]
IF Relocalized
'[Event 065 - Initial Neko Shop]
@OFF $E11507
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $E1980E
'\event \gold_show
\event \call 088
@OFF $E19866
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $E1BEB6
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $E20AB8
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $E20B61
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $E2E2A8
'\event \camera_center
\event \call 649
@OFF $E2E2FB ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List
ENDIF x2


I probably used the event thing wrong, but I can't quite tell...

Queue

#1371
At a quick glance, all your little helper events need to end with \ret instead of \end.

When you \call an event, when it reaches a \ret, it returns (\ret = return) to where it was \call'd from. \end completely stops the current event execution. In the base scripts, lots of events end with \ret \end, but the \ret happens before the \end and that \end never occurs.

In patch added events, if they end with \ret, they don't need an \end after it, so you don't need to worry about relocating what you've done to have space for that extra byte. Just change the \end to \ret where necessary.

Alternatively, I think there's 24 bytes of empty events at 5B5-5CD, so you could pack all 4 helper events into that one space instead of strewn around. There are upsides and downsides to both and I don't care which approach you use, just pointing out options.

Also, what do you think of a name like Neko_Distribution_Network? Or Neko_Delivery_Network? I was imagining Neko reworking his merchandise supply distribution (and using big rigs that look like giant cats to ship his goods around). Delivery seems like it might imply being a mail carrier, so that's probably no good, but maybe something related to Shipment would work. I'm just trying to think of a name that avoids a possessive apostrophe (since apostrophes are the comment character, and I've been trying to keep symbols out of feature checkbox names).

StarWyvern

 Hey what rom do I need for this patch. Mine came up black screen of death... :( Does it work on Snes9xTYL?
Insert "Witty Text" here.

hmsong

Ohh, so that's what it is.  Dang it.  I'll fix it, then test it (to confirm that everything works).

The reason I chose numerous different events (exact bytes) was because I wanted to save the large byte events, just in case someone else may need it in the future.  For example, if all dummied events only had 5 bytes or less, I never would have been able to create my new events.

I like Neko_Distribution_Network better than Delivery.  Delivery sounds like it should go directly to the buyer.  So unless you or I think of a better name (before your next release), let's go with that.




@StarWyvwern

Are you using a No Headered ROM?  It sounds like you're using a Headered rom.

zoolgremlin

#1374
@Queue & @hmsong:  It looks like you have a "public test release" of Turbo.  Is it worth it to have all of the previous zipfiles of the Project?  I've got many of them, but some I have missed because of my absence.  (EDIT:  Ignore this bit, I made a decision on it as outlined below.)

I'm hoping to catch up on, at the very least, understanding how the Project has progressed over the last 3-4 months, now that I'm close to quitting the "Guild" I'm a member of in EVA:  Dawn.  No more commitment to play that game every damn day, just to keep proving that my "Guild" has the best Players on Server AU-Line21.  I'm so done with that, especially in a game that has to be always-online, and runs like a shower of shit even at the best of times.

Gonna go and Archive all the previous Posts that aren't backed up yet, hope to see you again soon.  :)

EDIT:  Decided to delete all previous zipfiles, and any extracted files from them, in favour of the April filebin Uploads.  I should be able to go back to experimenting with and playing the game with those, at any point in the future.
MASTER LINK:  Secret of Mana Information (Vanilla)

"Yes, the Author is indeed a horse!"  <zool>

hmsong

#1375
@Queue

Okay, I confirmed that everything works.  Please upload (along with my previous posted Neko description):


'[Event 065 - Initial Neko Shop]
@OFF $C91234
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $C98142
'\event \gold_show
\event \call 088
@OFF $C98195
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $C99D7A
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $C9CD58
'\event \flag== FA 0C ' Mandala Shop
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $C9CDFC
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $CA8964
'\event \camera_center
\event \call 649
@OFF $CA89B2 ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List

%OFF% Event088 ' 088-08D, initial neko, various beginning nekos
\event \gold_show
\event \flag== FA 01 ' Initial Neko Shop
\event \ret

%OFF% Event178 ' 178-17D, upperland neko
\event \gold_show
\event \flag== FA 06 ' Upperland Neko
\event \ret

%OFF% Event31A ' 31A-31F, grand palace neko
\event \gold_show
\event \flag== FA 0F ' Grand Palace Neko
\event \ret

%OFF% Event649 ' 649-64E, ice neko
\event \camera_center
\event \flag== FA 01 ' Initial Neko Shop
\event \ret

%OFF% Event4F1
\event \if_flag== 4F 1F \goto 659
\event \if_flag== 4F 00 \goto 678
\event \end

%OFF% Event659
\event \flag== FA 0F ' Grand Palace Neko Shop
\event \goto 312
\event \end

%OFF% Event678
\event \flag== FA 01 ' Initial Neko Shop
\event \goto 312
\event \end

IF [Text]
IF VWF_Edition
IFNOT Relocalized
'[Event 065 - Initial Neko Shop]
@OFF $E114F5
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $E197A9
'\event \gold_show
\event \call 088
@OFF $E19801
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $E1BE47
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $E20A4F
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $E20AF8
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $E2E1D7
'\event \camera_center
\event \call 649
@OFF $E2E22A ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List
ENDIF x3

IF [Text]
IF Relocalized
'[Event 065 - Initial Neko Shop]
@OFF $E11507
'\event \gold_show
\event \call 088

'[Event 1DF - Various Nekos in the Beginning]
@OFF $E1980E
'\event \gold_show
\event \call 088
@OFF $E19866
'\event \goto 301
\event \goto 4F1

'[Event 23C - Upperland Neko]
@OFF $E1BEB6
'\event \gold_show
\event \call 178

'[Event 318 - Mountain Neko]
@OFF $E20AB8
\event \flag== FA 0E ' Tasnica Shop

'[Event 319 - Grand Palace Neko]
@OFF $E20B61
'\event \gold_show
\event \call 31A

'[Event 65F - Ice Country Neko]
@OFF $E2E2A8
'\event \camera_center
\event \call 649
@OFF $E2E2FB ' Ice Country Neko Shop Pointer
'\event \goto 308
\event \goto 310 ' Call Shop List
ENDIF x2


Well, I'd actually like to have separate VWF and Relocalized section, but I'll leave that to you.  Btw, you were right.  The new event system made things easier.  I didn't have to write events for VWF and Relocalized separately.  So thanks.

Man, I'm having a hard time coming up with names for Neko shop.  "Better Neko Shops"?  "Smarter Neko Business"?  "Neko has better business sense"?  Or just your "Neko Distribution Network"?  My name creativity is... less than satisfying.

I tried your Abortable_Dialog, and so far, it works great (I haven't played all the way through).  Most NPCs don't have more than one text bubble though.



Kethinov,

You're pretty good with the name creation (like your "Banished From Potos on the Honor System").  Any good name for the Neko shop modification for my patch?

Also, for your "Banished From Potos on the Honor System", maybe you can do this:


'[083: Potos Village]
@OFF $C8AFB0 ' Potos Guard
'RAW 1006 9D 99 60 C7 0941 ' Child Hat Villager
RAW BE1F A1 A5 60 C4 0BC1 ' Potos Guard - pushable (post Spikey Tiger)
@OFF $C8AFB8 ' Potos Guard
'RAW 100F A1 A5 60 C4 0B41 ' Potos Guard
RAW BE00 ' clears after Getting the 1st Boomerang Orb (Spikey Tiger)


That way, the Potos Guard becomes PUSHABLE after you get 3 characters (that'll show him how powerless he is before your might).  I tried it, and it works beautifully.  Maybe you can rename your patch to, "Pushing around the Potos Guard".  I actually wanted to make him be pushable as soon as you get banished (but not before you get banished), but I didn't know how to get that to work.  I don't know how to mess with the event flags.

Queue

Version 2020-05-01:
https://filebin.net/7spaiz2xfys6b2i1/SoM_Turbo.200501.zip

Changes:
- added hmsong's Neko_Distribution_Network

Technical Changes:
- added searchable "EVENT DATA" Quick Guide




hmsong, the name is always changeable, so don't feel like you have to stick with Neko_Distribution_Network, I just wanted to get a public version available. Check it out and look at the commented out potential additions (and note that %OFF% has to be commented out as 'OFF%; '%OFF% will cause bugs). Some work should probably still be done regarding interaction with Neko_And_Watts_In_Fortress. I wanted to walk you through the further use of event labels, but an example will hopefully be a better approach in this case. Search for "EVENT DATA" (with quotation marks) to see a set of instructions I wrote; it's pretty information dense, so don't feel like it all has to make sense immediately.

Search for "unused events" and "empty events" WITHOUT quotation marks to see those notes. I should probably decide on a standardized style of searchable info.

hmsong

Will do.  Thanks.

I found one scene for aborted dialog not working -- the coward soldier in Pandora Castle in the soldier quarter.  His dialog doesn't get canceled, and I know his dialog isn't essential.

Queue

Quote from: StarWyvwern on April 30, 2020, 05:31:07 PMHey what rom do I need for this patch. Mine came up black screen of death... :( Does it work on Snes9xTYL?
Like hmsong said, you probably patched a headered ROM. In the ZPS patcher, if you're using a correctly dumped Secret of Mana (US) ROM, the CRC32 label background will turn green after selecting the ZPS and ROM (SFC/SMC) file. If it's red you have an unexpected ROM that may or may not work; red doesn't mean headered, just that it doesn't have the expected checksum.




hmsong, nice catch spotting the coward guard not being abortable. I didn't give him the feature because at the end of his dialog, he faces upwards (so that it looks like he's face-down in bed), but if you abort he doesn't. I guess this is 100% harmless; I had avoided granting abortability to any events that were anything more than text (in this case, an NPC face upwards command), but obviously this one's a safe exception.

hmsong

Okay, some more Aborted Dialog not working:
- Phanna's grandfather (after beating Undine, but before clearing Pandora Ruins) in Pandora town.
- Rudolf the reindeer (before clearing the Ice Palace).

I know that their dialog changes, depending on the events, but NPCs like Sand soldier in the Ice Country Paradise (inside the house), and the Northtown Doctor have their dialog aborted, so that must not be the issue.

At least none of the essential dialogs are canceled (unless the winter moogles from when you first arrive in the Upperland getting aborted counts).  I just beat Northtown Ruins, so more need to be tested.