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

Author Topic: Secret of Mana, Turbo - Beta 210502  (Read 505421 times)

ManaRedux

  • Full Member
  • ***
  • Posts: 156
    • View Profile
    • Secret of Mana: Redux
Re: Secret of Mana, Turbo - Beta 210317
« Reply #1960 on: March 18, 2021, 04:25:42 pm »
ManaRedux, there, now I see the new village image. I suspect manaredux.com had a stale cache for a little bit again. That is super neat, and somewhat baffling of a change... I don't see an obvious (technical) reason why that map couldn't have been the moogle village + pebbler fight area...

I wonder if they felt it was simply too similar to the nearby sprite village and feared players would get the two confused?

Or maybe they felt thematically those building were too fancy for moogles if sprites also had the same structures?

Based on that image, all three doors had triggers in them (the doors that lacks triggers have light that forms a triangle instead of a trapezoid: compare the light in the doorways of the sprite village to these). Maybe they hadn't made the interiors yet (no doors or maps that would fit that purpose exist), and so scrapped the huts?

The moogle village tileset does still have those structures (well, everything in that image). And it's plausible they directly converted that into what was released since the map sizes look close enough that they may be the same (42x42).

The site was a mess yesterday.  It was down all morning, and as you've observed, there's cache issues at times.

Someone pointed out that the area may not have been large enough for the Pebbler fight. 

Btw, I found another angle for the glove: https://imgur.com/a/TItc2Ew

Memorex

  • Jr. Member
  • **
  • Posts: 35
    • View Profile
Re: Secret of Mana, Turbo - Beta 210317
« Reply #1961 on: March 18, 2021, 05:18:51 pm »
Nice job with all the improvements! Pardon me for asking but what is "event 16d" and why did it need fixing? And what exactly is the "inlined getPlayerChar() function"?

Great to see the addition of Ring_menu_highlight to the hack!  :beer: I feel like initiating a another playthough sometime soon!
More or less missed out on the quick-spell function last time around so there is still stuff left to explore.

Granivolus

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Secret of Mana, Turbo - Beta 210317
« Reply #1962 on: March 19, 2021, 04:16:45 pm »
I see, that's perfectly understandable Queue. Once again, thank you for all the work you've done! I straight up could not have continued Secret of Mana past the Mantis boss if it weren't for your mod!

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1963 on: March 21, 2021, 06:14:31 pm »
Version 2021-03-21:
https://filebin.net/7spaiz2xfys6b2i1/SoM_Turbo.210321.zip

Changes:
- updated Black_Hex with changes to recharge times for both spells it affects
- updated Lunar_Magic_-_Celestial_Cascade to medium spell recharge time
- added Water Thug to Balance\Monster_AI_Improvements (technically a weapon collision fix, not an AI change, but it affects usefulness of their AI)
- modified Title_Screen\Music_Fade_Fallback to add a heavy-handed timing fix for when the intro loops; should prevent possible hangs / crashes that afflict a wide range of hardware and emulators differently
- modified timing requirements and added deadlock safety to Title_Screen\Turbo_Logo
- implemented Bug_Fixes\Ownerless_Event_Safety which fixes a softlock when the event owning player is lost before an event wait-for-input happens (e.g. player who cast Analyzer on a Crystal Orb dies before the text boxes show)
- implemented Bug_Fixes\Matango_Caves_Trap (different from Miscellaneous\Enable_Matango_Caves_Trap) which fixes some "sticky" environment collision by the underground stream
- changes to Combat\Manual_Block glove weapon throws: fancier logic to synchronize throw direction between attacker and defender, uncharged throw is always the judo throw, charged throws pick throw animation depending on charge level
- tidy map treatment for Matango Caves
- improved Bug_Fixes\Late_HDMA_Fix to deal with transparent mosaic layer visual glitches in ZSNES (fixes Kakkara Desert clouds and Ruins fog)
- added super quick cast variant to Quality_of_Life\QuickSpell_Hotkeys: Hold L to start, press D-Pad pattern to select, make sure no buttons other than L are held and Release L to cast
- fixed ability to target inactive characters with QuickSpell_Hotkeys
- fixed event ownership to match vanilla ring menu spell cast behavior when using QuickSpell_Hotkeys (e.g. for casting on Crystal Orbs)
- fixed QuickItems changing last selected ring menu item position

Technical Changes:
- rewrote setProperWeaponRelativeBank() for Combat\Strong_And_Weak_Attacks
- changed DEBUG_MODE control for map reset from P3R + P1Start to P3R + P1Select



hmsong, I didn't change the recharge times on Inferno Barrier or Shadow Saber because I left them long on purpose. Both are way too good of spells, no harm in them having long recast times. While I doubt Celestial_Cascade really needs a non-short recast, I agree that medium is suitable.

$C81000 is the base address of an array of palettes that are applied to actors (monsters, players, etc.: the spell's target). $DCFC3E is the address for the actor palette the hardcoded Fire Bouquet (Dust Flare) uses. The comment beside the value explains how to calculate the actor palette address: $C81000 + 0x1E * palette. Since you wanted actor palette number 0x8F, it was $C81000 + 0x1E * 0x8F = $C820C2.

$D1F600 is the base address of an array of palettes that are applied to spell effects (and weapons). $DCFC3A is the address for the spell palette the hardcoded Fire Bouquet (Dust Flare) uses. The comment beside the value explains how to calculate the spell palette address: $D1F600 + 0x0A * palette. Since you wanted spell palette number 0xB8, it was $D1F600 + 0x0A * 0xB8 = $D1FD30.

The hardcoded Evil Gate animation is probably somewhere in bank $DC as well.

I liked the idea about weapon charge level letting you use the different throw animations, and as importantly, it was easy to implement. Unfortunately, it's not practical to let charge level boost throw damage because the throws are being activated in a non-standard way that doesn't clear your charge when they finish, so block throws have to just waste charge level. Because it can be hard to get to a high charge level when blocking resets your charge, it's set up as:
0 = judo throw (uncharged)
1 = suplex
2 = power bomb
3 = pile driver
4 = judo throw
5 = suplex
6 = power bomb
7 = pile driver
8 = judo throw
This was also inexpensive computationally to implement (cheaper than having ranges of charge level be certain throws).

For the QuickSpell patterns, there's a reason for the weird direction layouts: no direction can occur twice in a row. Undine / Salamando = Right, Undine = Up (not Right), Undine's spells = Left/Down/Right (not Up). While it makes searching less intuitive, building muscle memory for any of the inputs is arguably unaffected, and this system avoids any 2 (or 3) same direction presses, which take an extra input frame to execute due to requiring release for at least 1 input frame between presses.

Unfortunately ease of direction press is highly subjective: I actually consider Up to be the easiest direction to press, which is why I put the QuickItems drum and rope on Up, and the spell layouts essentially were built around Cure Water being on Right > Up > Right (the pattern I consider easiest).

Since the whole scheme is built around building muscle memory, I specifically avoided a "back one level" hotkey: Y/X/A are the "back" buttons, and all take you back to the first level (category selection). Learning partial patterns, for example, Right > Down, wait... no... Back > Up > Right, is destructive to learning the correct pattern (in this case, Right > Up > Right).

Good call on the Water Thug. It was actually a problem with their weapon: it lacked a collision rectangle. I didn't test Ice Thugs, but if they use the same weapon animation frames, they should be fixed too (and I guess I should update the description to mention them if it affects them). For the Kid Goblins, a bunch of the AI branches play a weird hop animation that was probably supposed to be an axe chop attack; I changed their short range AI branch to be an axe chop attack (or 2 or 3) instead of a hop. I left the other hops as-is because they'd be out of melee range anyway, and the hop is sort of their signature stupid move (other than snoring).

Oh, and Event2A8.Revisit_Kakkara_Desert.new is correct. It's somewhat coincidental that Revisit_Kakkara_Desert affects both Event28A and Event2A8.



ManaRedux, that image is excellent and probably shows why they cut the claw graphics: the right hand claw is floating a pixel above her hand. It's not possible to align claws on both hands with all 3 characters in all possible glove weapon attack poses (because they didn't design said poses with perfect hand placement consistency between the three characters).



Memorex, Event 16D is named that way to be less spoilery:
Spoiler:
It's the event where Thanatos drops you in a pit in the Pandora Ruins. A timed wait and a wait-for-input were mixed up.
You can use somedit to look at events by their number, or search the Turbo ZPS file for @OFF Event### (e.g. @OFF Event16D).

getPlayerChar() isn't something to worry about; technical changes are more about me documenting code changes that don't (in theory) affect the user, but could be the source of bugs, so if I suddenly get reports of something malfunctioning after a certain version, I can check the change notes and jog my memory. Anyway, it's a little helper function that converts a player index to a character index (I didn't name it). I inlined it and similar helper functions, which means instead of being a (computationally expensive for an SNES at 14 cycles) function call for a tiny bit of code, the code is inserted where a function call would otherwise be. In compiled programming languages, function inlining is usually an automatic process done by an optimizing compiler, but since ZPS patches are an assembly language (and optimizing assemblers is an oxymoron), I made a macro of sorts that inlines these helper functions (instead of me copy&pasting).

Now that QuickItems are in I dare you (or anyone) to do a whole run only using the quick menu to use spells or items. I've tried, but there are a few bosses (Great Viper) where I've still found myself having to pause (to the Ring Menu) to avoid losing.



Granivolus, :thumbsup:
« Last Edit: March 21, 2021, 11:53:45 pm by Queue »

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1964 on: March 21, 2021, 06:45:08 pm »
@Queue

I really appreciate you posting changes whenever you change something from Events (such as what you did for 16D).  I change some events (such as minor scripts of particular events), and not have to go through the entire script saves me the trouble of doing so, and even more so when you indicate which event was changed from specific versions.  So thanks.

Question though.  While I was going through events, I saw that in Event28A, there is "Event2A8.Revisit_Kakkara_Desert.new", instead of "Event28A.Revisit_Kakkara_Desert.new".  Is that some sort of error?  I hope it's not causing some unintended effect.



Quote from: Queue
Now that QuickItems are in I dare you (or anyone) to do a whole run only using the quick menu to use spells or items. I've tried, but there are a few bosses (Great Viper) where I've still found myself having to pause (to the Ring Menu) to avoid losing.

That's exactly why I would like it if the commands are a bit easier to remember, but like you said, it's highly subjective.
« Last Edit: March 22, 2021, 03:27:21 am by hmsong »

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1965 on: March 22, 2021, 06:06:51 am »
Quote from: hmsong
That's exactly why I would like it if the commands are a bit easier to remember...
Add:
%OFF% charControl_pattern[boy]
%OFF% charControl_pattern[girl]
%OFF% charControl_pattern[sprite]
to &(encode)\User-Defined\.asm and experiment with different hotkey arrangements. While I'm rather pleased with how I set it up, I can always add an Alternate_Patterns (or whatever name) option with a different layout.

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1966 on: March 22, 2021, 08:26:40 am »
Add:
%OFF% charControl_pattern[boy]
%OFF% charControl_pattern[girl]
%OFF% charControl_pattern[sprite]
to &(encode)\User-Defined\.asm and experiment with different hotkey arrangements. While I'm rather pleased with how I set it up, I can always add an Alternate_Patterns (or whatever name) option with a different layout.

Oh cool.  I shall try to experiment and test out my theory to see if it's actually easier.

Edit: Boy, you made it easy to edit (although that was always true).  But it seems I cannot press the same direction twice (such as Left Left Left for Earth Slide, assuming I made it that way).  Hmm.  Any idea how to get that to work?

Btw, I used it like this:
Spoiler:
Code: [Select]
IF [Quality_of_Life]
IF QuickSpell_Hotkeys
IF _Patterned_Inputs

%OFF% charControl_pattern[girl]
' 00 top
RAW    35
RAW 33    34
RAW    36

' 01 gnome / sylphid
'RAW    2A
'RAW 33    33
'RAW    2D
RAW    33
RAW 2A    2D
RAW    33
' 02 undine / salamando
'RAW    2B
'RAW 34    34
'RAW    2C
RAW    34
RAW 2B    2C
RAW    34
' 03 luna / dryad
RAW    35
RAW 2E    2F
RAW    35
' 04 shade / lumina
RAW    36
RAW 30    31
RAW    36

' 05 gnome
RAW    2A
RAW 03    05
RAW    04
' 06 undine
RAW    2B
RAW 09    0B
RAW    0A
' 07 salamando
'RAW    10
'RAW 0F    11
'RAW    2C
RAW    2C
RAW 0F    11
RAW    10
' 08 sylphid
'RAW    16
'RAW 15    17
'RAW    2D
RAW    2D
RAW 15    17
RAW    16
' 09 luna
'RAW    1B
'RAW 2E    1C
'RAW    1D
RAW    2E
RAW 1B    1D
RAW    1C
' 0A dryad
'RAW    21
'RAW 22    2F
'RAW    23
RAW    2F
RAW 21    23
RAW    22
' 0B shade
'RAW    32
'RAW 30    32
'RAW    32
RAW    30
RAW 32    32
RAW    32
' 0C lumina
'RAW    27
'RAW 28    31
'RAW    29
RAW    31
RAW 27    29
RAW    28

%OFF% charControl_pattern[sprite]
' 00 top
RAW    35
RAW 33    34
RAW    36

' 01 gnome / sylphid
'RAW    2A
'RAW 33    33
'RAW    2D
RAW    33
RAW 2A    2D
RAW    33
' 02 undine / salamando
'RAW    2B
'RAW 34    34
'RAW    2C
RAW    34
RAW 2B    2C
RAW    34
' 03 luna / dryad
RAW    35
RAW 2E    2F
RAW    35
' 04 shade / lumina
RAW    36
RAW 30    31
RAW    36

' 05 gnome
RAW    2A
RAW 00    02
RAW    01
' 06 undine
RAW    2B
RAW 06    08
RAW    07
' 07 salamando
'RAW    0D
'RAW 0C    0E
'RAW    2C
RAW    2C
RAW 0C    0E
RAW    0D
' 08 sylphid
'RAW    13
'RAW 12    14
'RAW    2D
RAW    2D
RAW 12    14
RAW    13
' 09 luna
'RAW    18
'RAW 2E    19
'RAW    1A
RAW    2E
RAW 18    1A
RAW    19
' 0A dryad
'RAW    1E
'RAW 1F    2F
'RAW    20
RAW    2F
RAW 1E    20
RAW    1F
' 0B shade
'RAW    24
'RAW 30    25
'RAW    26
RAW    30
RAW 24    26
RAW    25
' 0C lumina
'RAW    32
'RAW 32    31
'RAW    32
RAW    31
RAW 32    32
RAW    32

IF _QuickItems
%OFF% charControl_pattern[boy]
' 00 top
RAW    39
RAW 37    38
RAW    3A

' 01 mana
'RAW    43
'RAW 37    4A
'RAW    4B
RAW    37
RAW 43    4B
RAW    4A
' 02 heal
'RAW    40
'RAW 42    38
'RAW    41
RAW    38
RAW 40    42
RAW    41
' 03 warp
'RAW    39
'RAW 46    47
'RAW    45
RAW    39
RAW 45    47
RAW    46
' 04 cure
'RAW    44
'RAW 49    48
'RAW    3A
RAW    3A
RAW 44    49
RAW    48

ENDIF x4

Even if my idea works, the problem is, it may be easier only for me, so...



@Everyone

I'd really like to hear the opinion of other people.  What do you all think?  Do you think my "method" will make things easier for Patterned_Input for item/magic?

My method is:

Item (2nd input):
Up: nothing
Left: Item 1 (ex: Candy)
Down: Item 2 (ex: Chocolate)
Right: Item 3 (ex: Royal Jam)

Magic (2nd input):
Up: nothing
Left: Spirit 1 (ex: Gnome)
Down: nothing
RIght: Spirit 2 (ex: Sylphid)

Magic (3rd input):
Up: nothing
Left: Spell 1 (ex: Earth Slide)
Down: Spell 2 (ex: Gem Missile)
Right: Spell 3 (ex: Speed Down)

This way, you can entirely ignore one of the direction (up) in the 2nd and 3rd input, and you can also predict which of the 3 spells will come out for the 3rd input.
« Last Edit: March 22, 2021, 08:59:47 am by hmsong »

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1967 on: March 22, 2021, 04:07:19 pm »
Quote from: hmsong
But it seems I cannot press the same direction twice (such as Left Left Left for Earth Slide, assuming I made it that way).  Hmm.  Any idea how to get that to work?
Hm, yeah, it's due to code that skips everything if it sees you're selecting the same direction to avoid repeating the selection sound effect.

Find the following:
Code: [Select]
CMP #04
BCS *lbl_sameSelection_hop
LDX _QSH_char :16
CMP+X char.selectedHotkey :16
BEQ *lbl_sameSelection_hop
And ' comment out the CMP+X and BEQ, so:
Code: [Select]
CMP #04
BCS *lbl_sameSelection_hop
LDX _QSH_char :16
'CMP+X char.selectedHotkey :16
'BEQ *lbl_sameSelection_hop

Then find:
Code: [Select]
*end_check
PLA
CMP #FE
BCS *lbl_sameSelection
LDX _QSH_char :16
STA+X char.magicIconIndex :16
'LDA MAGIC_ICON_NONE
STZ+X char.magicIconVisible :16
And modify it to add:
Code: [Select]
CMP+X char.magicIconIndex :16
BEQ *lbl_sameSelection
Like this:
Code: [Select]
*end_check
PLA
CMP #FE
BCS *lbl_sameSelection
LDX _QSH_char :16
CMP+X char.magicIconIndex :16
BEQ *lbl_sameSelection
STA+X char.magicIconIndex :16
'LDA MAGIC_ICON_NONE
STZ+X char.magicIconVisible :16

And see if that works. I haven't tested, just typed that out real quick for you to try before I get busy today.

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1968 on: March 22, 2021, 09:59:04 pm »
@Queue

Tried it.  It doesn't allow me to move the cursor (although L still brings up the select screen).

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1969 on: March 23, 2021, 03:25:24 am »
It seemed to work as I expected when I tried what I posted (I could still select categories, elementals, spells, and cast them, etc.), just now... so I'm suspicious that you botched something. Hopefully I'll have a chance to mess with this more tomorrow.

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1970 on: March 23, 2021, 04:06:10 am »
You're right.  I must have botched something somewhere, since now it works.  Whoops.

Hmm.  Before putting the 2nd input of the spells (where you select the specific spirit), could you please tell me how to edit/create an icon so that spirits would all be aligned to left and right, instead of some spirits being aligned up and down? (ie gnome, jinn, undine, and salamando)

Quote from: Queue
$C81000 is the base address of an array of palettes that are applied to actors (monsters, players, etc.: the spell's target). $DCFC3E is the address for the actor palette the hardcoded Fire Bouquet (Dust Flare) uses. The comment beside the value explains how to calculate the actor palette address: $C81000 + 0x1E * palette. Since you wanted actor palette number 0x8F, it was $C81000 + 0x1E * 0x8F = $C820C2.

$D1F600 is the base address of an array of palettes that are applied to spell effects (and weapons). $DCFC3A is the address for the spell palette the hardcoded Fire Bouquet (Dust Flare) uses. The comment beside the value explains how to calculate the spell palette address: $D1F600 + 0x0A * palette. Since you wanted spell palette number 0xB8, it was $D1F600 + 0x0A * 0xB8 = $D1FD30.

Okay, I asked the wrong question.  How did you know that $DCFC3A was the address for the Fire Bouquet hardcoded spell palette?  If I can know how you found that out, then I assume I can find out the hardcoded spell palette for Evil Gate.

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1971 on: March 23, 2021, 05:56:26 am »
Quote
...could you please tell me how to edit/create an icon...
In the virtual file:
&(mods)\Magic\quickSpellHotkeys\data\graphics\decoded
...notice the commented out addresses before the elemental category pairs:
'@OFF $D289A0   ' icon 0F ud gnome / sylphid
'@OFF $D28EE0   ' icon 1D ud undine / salamando
'@OFF $D2AFE0   ' icon 75 lr luna / dryad
'@OFF $D2B040   ' icon 76 lr shade / lumina
Uncomment those 4 lines (and apply the ZPS patch) and you'll be able to find their graphics when using a tile editor at file offsets 0x1289A0 and 0x128EE0 in SNES 3BPP Format:

Edit them, save, then use a hex editor to extract 96 (0x60) bytes from each of those offsets to put in the ZPS file (and re-comment-out @OFF $D289A0 and @OFF $D28EE0)

Quote
How did you know that $DCFC3A was the address for the Fire Bouquet hardcoded spell palette?
I don't remember how I figured it out. I'll think about how I'd re-find it and describe that tomorrow (hopefully).

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1972 on: March 23, 2021, 10:48:46 am »
For those small spirit menu graphic, do you have their "full" tiny pictures?  I'm asking, because for both Gnome/Sylphid and Undine/Salamando pics, they overlap slightly, so I can't get the full picture of their individual self in that tiny format.  Or if you have them, could you please post?  That way, I have some sort of reference to draw out their "missing" pieces.


Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1973 on: March 23, 2021, 02:43:57 pm »
With images that small, every pixel counts. I didn't draw "full" ones then overlap them, I drew them as pairs, meticulously trying outline pixels in various spots to find a good division between them, and colored pixels to add (or remove) details.

Those little guys started as colored circles, which made me think of mario 3's micro-goombas, which I used as a sort of inspiration to make roughly 9x9 pixel versions of the elementals. At first I was going to use two generic elementals (that looked sorta like the final versions of luna with undine's hands, and salamando without pointy hair), but a single pixel change inspired me to take it further and make miniature versions of all of them.

Design breakthroughs were the face ovals (to make their face identifiable) and making the upper elemental in a stacked pair look like they're on the lower one's shoulders (to save space and make them fit).

I adhered to some rules for the outlines, like generally never filling diagonals except when it clarified pointy shapes (luna) or was part of the design (shade), so two of the pixels you have on that mini sylphid I wouldn't have put there (they're just part of gnome's hands).

There were design concessions here and there (no ears on sylphid, no staffs, no halo on luna, etc.) because they muddied the designs at that small scale too much. And gnome uses his secondary colors because brown was more identifiable than tan and green (his primary colors).

I spent probably 8 hours on them in total over a few days.



Edit: Okay, so to find hardcoded spell data, specifically the palettes it uses, normally I'd set breakpoints in an SNES debugger somewhere around $C13B71 since that's where the hardcoded animation loading starts, and follow code from there to see what it loads. I don't expect you to do that, so here's something slightly more approachable.

First off, we know where actor and spell palettes are; as covered above, they're in arrays starting at $C81000 and $D1F600 respectively. Evil Gate's hardcoded animation code and data is probably in bank $DC (I confirmed that it is, not going to cover how to figure that out, but it's related to $C13B71, and the address table it uses at $C13B2E).

So, in theory, we can use an emulator that shows us memory accesses, like Mesen-S, to first spot which palettes it's using. So Debug > Memory Tools, make sure View > Memory Access Highlighting > Reads is Enabled, switch the view to "CPU Memory" then Search > Go To... and enter C81000, then cast max level Evil Gate, and see if anything gets highlighted. Actor palettes don't end until $C82E00 so you want to check between $C81000 and $C82E00.

Oh look, data at $C820C2 was accessed, and it's a Shade palette, so that seems like a match.

So now we want to find $C820C2 in bank $DC, so, if you recall back to the stuff about SNES being little-endian, we'll be searching for "C220" which are the lower two bytes of that address, in little-endian order. In Memory Tools, Search > Go To... and enter DC0000 and Search > Find... C220 and look for highlighted matches. Bad news is "C220" is a very common pair of bytes in SNES code, that means REP #20... so... crud.

So, I guess let's try anyway. Change highlighted instances of "C220" to "781F" ($C81F78 is the Salamando spell target actor palette), one-by-one, cast Evil Gate, and see if anything turns red. The first C220 match (highlighted blue because it's a read, not green which means executed code), when changed should affect the target's palette. So that's lucky, that's the one we wanted.

Now the same process but D1F600 instead of C81000 (and spell / weapon palettes go from D1F600 to D20000). Find the palette, flip its address to little-endian 16-bit, then search for those two bytes in bank $DC. Change the value and cast and see if it changes the color of the Evil Gate swirl (spoiler alert, it will).
« Last Edit: March 24, 2021, 03:18:33 am by Queue »

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1974 on: March 24, 2021, 01:07:24 am »
Okay, I tried to make the picture into sideways... but boy it turned ugly.  Very cramped (although I guess that was expected, since you drew for up/down mini spirits).  I can see why you spent 8 hrs on creating the right pic.  At least it's easier for me since I'm just editing.



Okay, I finished drawing.  I noticed that your Undine looks a bit weird, so I created one (for up/down).  Feel free to use (or edit) the Undine that I drew.  Also, I noticed that Shade has that light on its head, but there was no outline.  Was that intentional?  Also, how did you do Sylphid's ears?  I'm not really getting how you did it.

I'm stuck on using TLP.  I created the decoded rom using this config (https://filebin.net/vicqtu62cukhxluj), and I opened it with TLP, and I went to 1289A0 (after changing the view to SNES 3BPP), but I'm not seeing the spirit pics that you posted.  I'm sure I did something wrong, since when I tried it yesterday, I was able to see the spirits.  Could you tell me what I did wrong?

For now, could you put an alternate patterned inputs option?  I'm not sure if this is how it works (in case someone enables Patterned_Inputs but not QuickItems).  I'll change things as people request different inputs (I hope people post their comments).

Quote
_Alternate_Patterened_Inputs "(hmsong)\n
\n
Requires [Patterned_Inputs].\n
\n
Alternate patterns for the last input (3rd for magic, 2nd for items), so that 1st option is always left, 2nd option is always down, and 3rd option is always right.  That way, it may easier to remember the commands due to consistency.\n
\n
Ex1: Sylphid's Thunderbolt (2nd spell) will be left down DOWN (instead of left down UP).\n
Ex2: Item (heal)'s Royal Jam (3rd item) will be right, RIGHT (instead of right LEFT)."

Code: [Select]
%OFF% charControl_pattern[girl]
' 00 top
RAW    35
RAW 33    34
RAW    36

' 01 gnome / sylphid
RAW    2A
RAW 33    33
RAW    2D
' 02 undine / salamando
RAW    2B
RAW 34    34
RAW    2C
' 03 luna / dryad
RAW    35
RAW 2E    2F
RAW    35
' 04 shade / lumina
RAW    36
RAW 30    31
RAW    36

' 05 gnome
RAW    2A
RAW 03    05
RAW    04
' 06 undine
RAW    2B
RAW 09    0B
RAW    0A
' 07 salamando
'RAW    10
'RAW 0F    11
'RAW    2C
RAW    2C
RAW 0F    11
RAW    10
' 08 sylphid
'RAW    16
'RAW 15    17
'RAW    2D
RAW    2D
RAW 15    17
RAW    16
' 09 luna
'RAW    1B
'RAW 2E    1C
'RAW    1D
RAW    2E
RAW 1B    1D
RAW    1C
' 0A dryad
'RAW    21
'RAW 22    2F
'RAW    23
RAW    2F
RAW 21    23
RAW    22
' 0B shade
'RAW    32
'RAW 30    32
'RAW    32
RAW    30
RAW 32    32
RAW    32
' 0C lumina
'RAW    27
'RAW 28    31
'RAW    29
RAW    31
RAW 27    29
RAW    28

%OFF% charControl_pattern[sprite]
' 00 top
RAW    35
RAW 33    34
RAW    36

' 01 gnome / sylphid
RAW    2A
RAW 33    33
RAW    2D
' 02 undine / salamando
RAW    2B
RAW 34    34
RAW    2C
' 03 luna / dryad
RAW    35
RAW 2E    2F
RAW    35
' 04 shade / lumina
RAW    36
RAW 30    31
RAW    36

' 05 gnome
RAW    2A
RAW 00    02
RAW    01
' 06 undine
RAW    2B
RAW 06    08
RAW    07
' 07 salamando
'RAW    0D
'RAW 0C    0E
'RAW    2C
RAW    2C
RAW 0C    0E
RAW    0D
' 08 sylphid
'RAW    13
'RAW 12    14
'RAW    2D
RAW    2D
RAW 12    14
RAW    13
' 09 luna
'RAW    18
'RAW 2E    19
'RAW    1A
RAW    2E
RAW 18    1A
RAW    19
' 0A dryad
'RAW    1E
'RAW 1F    2F
'RAW    20
RAW    2F
RAW 1E    20
RAW    1F
' 0B shade
'RAW    24
'RAW 30    25
'RAW    26
RAW    30
RAW 24    26
RAW    25
' 0C lumina
'RAW    32
'RAW 32    31
'RAW    32
RAW    31
RAW 32    32
RAW    32

IF _QuickItems
%OFF% charControl_pattern[boy]
' 00 top
RAW    39
RAW 37    38
RAW    3A

' 01 mana
'RAW    43
'RAW 37    4A
'RAW    4B
RAW    37
RAW 43    4A
RAW    4B
' 02 heal
'RAW    40
'RAW 42    38
'RAW    41
RAW    38
RAW 40    42
RAW    41
' 03 warp
'RAW    39
'RAW 46    47
'RAW    45
RAW    39
RAW 45    47
RAW    46
' 04 cure
'RAW    44
'RAW 49    48
'RAW    3A
RAW    3A
RAW 44    49
RAW    48

IF [Items]
IFNOT Faerie_Coconut
IF Stardust_Herb
%OFF% charControl_pattern[boy]
' 00 top
RAW    39
RAW 37    38
RAW    3A

' 01 mana
'RAW    43
'RAW 37    4A
'RAW    4B
RAW    37
RAW 43    45
RAW    4B
' 02 heal
'RAW    40
'RAW 42    38
'RAW    41
RAW    38
RAW 40    42
RAW    41
' 03 warp
'RAW    39
'RAW 46    47
'RAW    45
RAW    39
RAW 4A    47
RAW    46
' 04 cure
'RAW    44
'RAW 49    48
'RAW    3A
RAW    3A
RAW 44    49
RAW    48

ENDIF x4

I don't know how to incorporate the CMP+X and BEQ (the things that allow selection of same directions in a row), so I hope you can somehow include that to make the alternate input work as intended.



As for the Evil Gate Lv3 color... wow, that looks complicated.  A little overwhelming.  I'm gonna rest a bit and try again later.
« Last Edit: March 24, 2021, 09:52:33 am by hmsong »

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1975 on: March 24, 2021, 04:34:07 pm »
I'm working on some changes that won't be compatible with those new pattern tables (assuming the changes I'm making pan out), so I'm not incorporating your stuff quite yet.

Regarding the little elementals:
- Shade isn't supposed to have an outline above that top gray dot; go look at Shade's normal size icon. The black color on him is used for coloring rather than a strict outline.
- You gave Undine a tonsure haircut, and moved her hand to mostly cover her fish tail, and also didn't really give her a body. I can't say I see it as improvement though I appreciate the effort.
- You moved Salamando's hand so that it doesn't match his normal size icon's hand positions.
- You didn't give Gnome legs (those circles are his hands).
- You gave Sylphid a diaper or something: he doesn't have visible cloth between his legs (art depicts a metal plate there, the game uses his skin color). And just made him a pixel too tall in general; compare to Dryad.
- Regarding Sylphid's ears, I was trying to explain that I just omitted his ears in the mini version; the bulges left and right of his eyes are his fat cheeks.

A screenshot of what you see in TLP would potentially let me figure out what you're missing.
« Last Edit: March 24, 2021, 04:45:44 pm by Queue »

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1976 on: March 24, 2021, 06:02:22 pm »
I'm working on some changes that won't be compatible with those new pattern tables (assuming the changes I'm making pan out), so I'm not incorporating your stuff quite yet.

Oh.  Then I shall wait.  Maybe alternate won't be necessary.

Regarding the little elementals:
- Shade isn't supposed to have an outline above that top gray dot; go look at Shade's normal size icon. The black color on him is used for coloring rather than a strict outline.
- You gave Undine a tonsure haircut, and moved her hand to mostly cover her fish tail, and also didn't really give her a body. I can't say I see it as improvement though I appreciate the effort.
- You moved Salamando's hand so that it doesn't match his normal size icon's hand positions.
- You didn't give Gnome legs (those circles are his hands).
- You gave Sylphid a diaper or something: he doesn't have visible cloth between his legs (art depicts a metal plate there, the game uses his skin color). And just made him a pixel too tall in general; compare to Dryad.
- Regarding Sylphid's ears, I was trying to explain that I just omitted his ears in the mini version; the bulges left and right of his eyes are his fat cheeks.

The pic at the top was your spirits (one you posted), which removed an entire line of her hair.  I was certain that I gave Undine more hair (I gave her 1 more line) and tiara.  Yeah, I moved the hands due to limited space.  And yeah, I didn't give Gnome legs, because your pic didn't have them either (I simply copied what you already have, and moved the hands and shortened the hat).  I did make Sylphid too tall, but I couldn't reduce it any further due to limited sideway pixels.  I just suck at drawing.  Or lack the imagination.

A screenshot of what you see in TLP would potentially let me figure out what you're missing.

Here:

Hopefully, your new inputs won't make it necessary for me to even use the new arts.  I'm terrible at drawing.

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1977 on: March 24, 2021, 06:19:48 pm »
It looks like you didn't un-comment:
'@OFF $D289A0   ' icon 0F ud gnome / sylphid
'@OFF $D28EE0   ' icon 1D ud undine / salamando
'@OFF $D2AFE0   ' icon 75 lr luna / dryad
'@OFF $D2B040   ' icon 76 lr shade / lumina
...before patching. So the graphics weren't in the right place for editing in TLP.

Tonsure = basically bald. You used Undine's skin color on the top of her head. Since each mini elemental only gets two colors, for Undine I went with light blue = light blue and white, dark blue = dark blue and green (from the normal size icon). I made her head shorter because her pointy ears and fish tail are her boldest characteristics; I didn't really care about her hair. I reduced her face circle to give her eyes a slightly sad look like her normal icon (and to clarify her ears).

The vertical stack Gnome didn't have legs because conceptually they're behind Sylphid, the way Undine's body is mostly behind Salamando. They're sitting on the shoulders of the elemental below them, and kind've scrambling over them; hopefully Salamando doesn't mind his hair getting mussed up.

hmsong

  • Hero Member
  • *****
  • Posts: 562
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1978 on: March 24, 2021, 06:50:16 pm »
Ohh.  Whoops.

Sigh.  Art is hard.  And with such limited pixels, it's even harder.  I don't know what new thing you're doing, but I hope those inputs are easier to remember -- that way, alternate inputs aren't necessary.



I'm not sure if this is Reborn error or something else, but I can't get the scene in Girl's home to activate.  That is, assuming you don't talk to Dyluck and therefore Girl does not join you in Pandora Castle, but when you go visit her home (after the arranged marriage scene), there's no scene.  And Herman is not upstairs either.



@ManaRedux

In addition to what I wrote above, in Event 1E6, if you meet the Girl (werewolf fight) without giving her name (such as not talking to Dyluck in the beginning) and you talk to her with Sprite, you get the that "gogogogogogogo" thing, due to her not having a name yet.
« Last Edit: March 25, 2021, 10:44:02 am by hmsong »

Queue

  • Hero Member
  • *****
  • Posts: 560
    • View Profile
Re: Secret of Mana, Turbo - Beta 210321
« Reply #1979 on: March 25, 2021, 04:15:58 pm »
You must've just gotten the flags into the wrong state to see the girl in her home. Nothing in Reborn changes how that works. Event flag 0x12 needs to be 3 for her to be upstairs and needs to be 4 for her to be downstairs. When you talk to her upstairs it advances from 3 to 4 and when you talk to her downstairs it advances from 4 to 5. You get event flag 0x12 to be 3 by talking to Elman in the arranged marriage room in the castle.

Thanks for reporting the gogogogogogo situation with the girl + werewolves + sprite as leader. Fixed for the next release.