News:

11 March 2016 - Forum Rules

Main Menu

Secret of Mana, Turbo - Beta 210915

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

Previous topic - Next topic

hmsong

#1260
Yes.  They will both work.  Thank you.  Why didn't I think of that?  Excellent.



@Queue

Okay, here are the updates of everything:

Black Hex v0.0 (I'll add the animation/color once I learn how, but it's usable -- please enable):


&(mods)\Magic\SpellSystemExtensions\Black_Hex
REQ _Black_Hex_-_Replaces_Evil_Gate
IF Hellfire_-_Replaces_Exploder
REQ FALSE
ENDIF
IF Evil_Gate_-_More_Useful
REQ FALSE
ENDIF

' Title: Black Hex
' Author: hmsong
' Version: 0.0

ASM <.asm>
FILE <encoded>
FILE <decoded>
FILE <Vanilla>
FILE <Reloc>
&(mods)\Magic\SpellSystemExtensions\Black_Hex\.asm

' copy spell function (copies any other changes already made to Dispel Magic, like Comprehensive Dispel)
@OFF Spell.List.Exploder
COPY Spell.List.Dispel_Magic 02

' copy spell data
@OFF Spell.Data.Exploder
COPY Spell.Data.Dispel_Magic Spell.Data.Size

' elemental summon animation fixup (after copying data)
@OFF Spell.Data.Exploder
ADR.16 $D185E0 ' animation script (elemental summon, salamando)
' element fixup (after copying data)
@OFF %Spell.Data.Exploder%Element%
RAW Spell.Element.Salamando

' [Animation Change (Dispel Magic --> Evil Gate)]
@OFF $D03420
RAW 4A86 2905 2905 2905
RAW 9700 426E 0000 9C94
RAW 9700 426E 0000 9C94
RAW 9700 446E 0000 9C94
RAW 9700 446E 0000 9C94
RAW 970E 446E 0000 F694
RAW 970E 446E 0000 F694

' high level animation, hardcoded spell number
@OFF $C13A28
'CMP #24 ' Evil Gate
CMP #26 ' Black Hex (Dispel Magic slot)

' [Dispel Magic slot - Black Hex]
@OFF Spell.List.Dispel_Magic
ADR.16 SSE.Func.Detrimental.StatsAndEffects
@OFF %Spell.Data.Dispel_Magic%Stat%
RAW SSE.Stat.All.Down
@OFF %Spell.Data.Dispel_Magic%Effect%
ADR.16 #0x2284 ' Poison, Pygmy, Confuse, Tangle
@OFF %Spell.Data.Dispel_Magic%Target%
RAW Spell.Target.Enemies
@OFF %Spell.Data.Dispel_Magic%Cost%
RAW 08

' [Animation Color Change]

' [Target Color Change]

' [Icon Exchange]
@OFF $D8FD98 ' Exploder --> Dispel Magic (icon + color)
RAW BA BB
@OFF $D8FDCA ' Dispel Magic --> Exploder (icon) + Evil Gate (color)
RAW 1A A2 ' (9A is for 2-frame animation, and -0x80 is for 1-frame rotation)

' [Name Exchange]
@OFF $%[]%00
COPY Spell.Name.Exploder 02
COPY Spell.Name.Dispel_Magic 02
@OFF Spell.Name.Exploder
COPY %[]%02 02
@OFF Spell.Name.Dispel_Magic
COPY %[]%00 02

' [Description Exchange]
@OFF $%[]%00
COPY Spell.Desc.Exploder 02
COPY Spell.Desc.Dispel_Magic 02
@OFF Spell.Desc.Exploder
COPY %[]%02 02
@OFF Spell.Desc.Dispel_Magic
COPY %[]%00 02

' ---

' [Enemy Spell Change]
@OFF $D073B0 ' Bomb Bee Exploder --> Burst
RAW 1F
@OFF $D08182 ' Imp Exploder --> Blaze Wall
RAW 11
IF _Inferno_Barrier_-_Replaces_Blaze_Wall ' compat
@OFF $D0817F ' Imp Inferno Barrier target = Self
RAW C4
ENDIF
@OFF $D08B41 ' Captain Duck Exploder --> Lava Wave
RAW 0E
@OFF $D097D3 ' Fiend Head Exploder --> Acid Storm
RAW 07
@OFF $D0A2EE ' Master Ninja Exploder --> Thunderbolt
RAW 13
@OFF $D0672D ' Wizard Eye Dispel Magic --> Dispell Ash
RAW 0D
@OFF $D06740 ' Wizard Eye Dispel Magic --> Dispell Ash
RAW 0D
@OFF $D06A57 ' Grave Bat Dispel Magic --> Dispell Ash
RAW 0D
IFNOT _Evil_Gate_-_NPC_Version ' compat
@OFF $D090CF ' Gremlin Evil Gate --> Black Hex
RAW 26
@OFF $D09979 ' National Scar Evil Gate --> Black Hex
RAW 26
@OFF $D09986 ' National Scar Evil Gate --> Black Hex
RAW 26
ENDIF
@OFF $D09956 ' National Scar Dispel Magic --> Dispell Ash
RAW 0D
@OFF $D09963 ' National Scar Dispel Magic --> Dispell Ash
RAW 0D
@OFF $D09A3B ' Dark Stalker Dispel Magic --> Dispell Ash
RAW 0D

@OFF $C2943E ' Mana Beast Dispel Magic --> Dispell Ash
RAW 0D
@OFF $C2E109 ' Fire Gigas Exploder --> Fire Bouquet
RAW 10
IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
@OFF $C2E109 ' Fire Gigas Exploder --> Flame Saber
RAW 0F
@OFF $C2E97D ' Dark Lich HP Absorb (one) --> Black Hex (all)
'RAW 08 00
RAW 26 01
IF [Balance]
IF Fire_Gigas_-_Flame_Saber
@OFF $C2E109 ' Fire Gigas Exploder (all) --> Speed Up (self)
RAW 10 02
ENDIF x3
IFNOT _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
@OFF $C2E98B ' Dark Lich Dispel Magic (one) --> Black Hex (all)
'RAW 26 00
RAW 26 01
ENDIF
@OFF $C2E273 ' Hexas Dispel Magic --> Dark Force
RAW 25
@OFF $C2E755 ' Buffy Dispel Magic --> Dispell Ash
RAW 0D
@OFF $C2F128 ' Red Dragon Exploder --> Lava Wave
RAW 0E

&(mods)\Magic\SpellSystemExtensions\Black_Hex\encoded
IF [Graphics]
IF Decode_Menu_Icons
REQ FALSE
ENDIF x2
ASM <.asm>
&(mods)\Magic\SpellSystemExtensions\Black_Hex\encoded\.asm

@OFF $D28DC0 '[GraphicData_Icons_Exploder_01]
RAW FEFBFAFCF7F4F1EFE0F9C7E0F3CFC0F3
RAW 8FC0F987C0B987E0 3FFF3F0FFF0FF7FF
RAW 079F9F630707F93B03FD7F03FEFD018F
RAW BF80F1FEC07FDCC0BFE0E09FF9F9C6EF
RAW FFE0F0FFF0FCFFFC 9DE1079FE103CFF1
RAW 03CFF3039FE3078FF7073FEF2F7FDF5F

&(mods)\Magic\SpellSystemExtensions\Black_Hex\decoded
REQ [Graphics]
REQ Decode_Menu_Icons
ASM <.asm>
&(mods)\Magic\SpellSystemExtensions\Black_Hex\decoded\.asm

@OFF $D28DC0 '[GraphicData_Icons_Exploder_01]
RAW FEFBFCF7F1EFF9C7F3CFF38FF987B987
RAW FAF4E0E0C0C0C0E0 3FFF0FFFF7FF9F9F
RAW 07073B037F03FD013F0F0763F9FDFE8F
RAW BF80FEC0DCC0E0E0F9F9EFFFF0FFFCFF
RAW F17FBF9FC6E0F0FC 9DE19FE1CFF1CFF3
RAW 9FE38FF73FEF7FDF0703030307072F5F

&(mods)\Magic\SpellSystemExtensions\Black_Hex\Vanilla
IF [Text]
IF Relocalized
REQ FALSE
ENDIF x2
ASM <.asm>
&(mods)\Magic\SpellSystemExtensions\Black_Hex\Vanilla\.asm

@OFF Spell.Name.Dispel_Magic
ADR.16 SSE.Text.Extended.Extra.3
@OFF SSE.Text.Extended.Extra.3
TEXT ^B l^ a^ c^ k^ _ ^H e^ x^ \0
@OFF Spell.Text.Dispel_Magic
TEXT ^D i^ s^ p^ e^ l^ l^ _ ^A s^ h^ \0

@OFF Spell.Info.Exploder
TEXT _ ^C a^ u^ s^ e^ s^ _ m^ a^ n^ y^ _ \n d^ e^ b^ u^ f^ f^ s^ _ & _ e^ f^ f^ e^ c^ t^ s^ . \0

&(mods)\Magic\SpellSystemExtensions\Black_Hex\Reloc
REQ [Text]
REQ Relocalized ' compat
ASM <.asm>
&(mods)\Magic\SpellSystemExtensions\Black_Hex\Reloc\.asm

@OFF Spell.Name.Dispel_Magic
ADR.16 SSE.Text.Extended.Extra.3
@OFF SSE.Text.Extended.Extra.3
TEXT ^B l a ck _ ^H e x \0
@OFF Spell.Text.Dispel_Magic
TEXT ^D is p e ll _ ^A s h \0

@OFF Spell.Info.Exploder
TEXT _ 8 _ ^M ^P ,_ ^C a us e_ \n v ar i ou s_ d e b u f f s_ & _ e f f e c t s \0


Spell Balance Overhaul:


ASM <.asm>
FILE <Vanilla>
FILE <Reloc>
&(mods)\Magic\SpellBalanceOverhaul\.asm

@OFF %Spell.Data.Stone_Saber%Cost%
RAW 05
IF _Mud_Saber_-_Replaces_Stone_Saber ' compat
@OFF %Spell.Data.Stone_Saber%Cost%
RAW 02
ENDIF
IFNOT _Mud_Saber_-_Replaces_Stone_Saber
IF [Balance]
IF Defensive_Petrify ' compat
@OFF %Spell.Data.Stone_Saber%Cost%
RAW 04
ENDIF x3

IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
@OFF %Spell.Data.Fire_Bouquet%Cost%
RAW 02
ENDIF
IFNOT _Dust_Flare_-_Replaces_Fire_Bouquet
@OFF %Spell.Data.Speed_Up%Cost%
RAW 02
ENDIF

@OFF %Spell.Data.Cure_Water%Cost%
RAW 03

@OFF %Spell.Data.Flame_Saber%Cost%
RAW 04

IFNOT _Inferno_Barrier_-_Replaces_Blaze_Wall ' compat
@OFF %Spell.Data.Blaze_Wall%Power%
RAW Spell.Power.Weak ' 2B (43)
@OFF %Spell.Data.Blaze_Wall%Cost%
RAW 03
ENDIF

IFNOT Thunder_Saber_-_Silence ' compat
@OFF %Spell.Data.Thunder_Saber%Cost%
RAW 02
ENDIF

@OFF %Spell.Data.Lunar_Boost%Stat%
RAW SSE.Stat.Attack.Up

IF Herbal_Boost_-_Replaces_Moon_Energy ' compat
@OFF %Spell.Data.Revivifier%Target%
RAW Spell.Target.Allies
@OFF %Spell.Data.Revivifier%Cost%
RAW 03
@OFF %Spell.Data.Moon_Energy%Power%
RAW Spell.Power.Maximal ' 64 (100)
@OFF %Spell.Data.Moon_Energy%Cost%
RAW 05
IF _Revivifier_-_Turn_Undead ' compat
@OFF %Spell.Data.Moon_Energy%Target%
RAW SSE.Target.AlliesOrEnemies.WallBypass
ENDIF x2
IFNOT Herbal_Boost_-_Replaces_Moon_Energy
@OFF %Spell.Data.Moon_Energy%Target%
RAW Spell.Target.Allies
@OFF %Spell.Data.Moon_Energy%Cost%
RAW 03
@OFF %Spell.Data.Revivifier%Power%
RAW Spell.Power.Maximal ' 64 (100)
@OFF %Spell.Data.Revivifier%Cost%
RAW 05
IF _Revivifier_-_Turn_Undead
@OFF %Spell.Data.Revivifier%Target%
RAW SSE.Target.AlliesOrEnemies.WallBypass
ENDIF x2

@OFF %Spell.Data.Light_Saber%Cost%
RAW 02
IF Light_Saber_-_Balloon ' compat
@OFF %Spell.Data.Light_Saber%Cost%
RAW 03
ENDIF

@OFF %Spell.Data.Lucent_Beam%Power%
RAW Spell.Power.Extreme ' 4F (79)
@OFF %Spell.Data.Lucent_Beam%Cost%
RAW 04

@OFF %Spell.Data.Lucid_Barrier%Cost%
RAW 06

@OFF %Spell.Data.Freeze%Power%
RAW Spell.Power.Weak ' 2B (43)

@OFF %Spell.Data.Acid_Storm%Power%
RAW Spell.Power.Strong ' 3D (61)
@OFF %Spell.Data.Acid_Storm%Cost%
RAW 04

@OFF %Spell.Data.Energy_Absorb%Cost%
RAW 03

@OFF %Spell.Data.Fireball%Power%
RAW Spell.Power.Weak ' 2B (43)

IFNOT Hellfire_-_Replaces_Exploder ' compat
@OFF %Spell.Data.Exploder%Cost%
RAW 03
ENDIF

IFNOT Lava_Wave_-_Engulf ' compat
@OFF Spell.List.Lava_Wave
ADR.16 SSE.Func.Detrimental.DamageAndStats
@OFF %Spell.Data.Lava_Wave%Stat%
RAW SSE.Stat.Attack.Down
@OFF %Spell.Data.Lava_Wave%Power%
RAW Spell.Power.Strong ' 3D (61)
@OFF %Spell.Data.Lava_Wave%Cost%
RAW 04
ENDIF

@OFF %Spell.Data.Thunderbolt%Cost%
RAW 03

@OFF %Spell.Data.Silence%Cost%
RAW 01

IF _Lunar_Magic_-_Celestial_Cascade ' compat
@OFF %Spell.Data.Lunar_Magic%Cost%
RAW 03
ENDIF
IFNOT _Lunar_Magic_-_Celestial_Cascade
@OFF Spell.List.Lunar_Magic
ADR.16 SSE.Func.Detrimental.Stats
@OFF %Spell.Data.Lunar_Magic%Stat%
RAW SSE.Stat.All.Down
@OFF %Spell.Data.Lunar_Magic%Cost%
RAW 04
ENDIF

IF _Burst_-_Health_Cost ' compat
@OFF %Spell.Data.Burst%Target%
RAW Spell.Target.Enemies.WallBypass
ENDIF
IFNOT _Burst_-_Health_Cost
@OFF %Spell.Data.Burst%Cost%
RAW 05
ENDIF

IF _Shadow_Saber_-_Replaces_Evil_Gate
@OFF %Spell.Data.Evil_Gate%Cost%
RAW 03
ENDIF

@OFF %Spell.Data.Dark_Force%Power%
RAW Spell.Power.Extreme ' 4F (79)
@OFF %Spell.Data.Dark_Force%Cost%
RAW 04

@OFF %Spell.Data.Dispel_Magic%Cost%
RAW 02

IF _Black_Hex_-_Replaces_Evil_Gate
@OFF %Spell.Data.Exploder%Cost%
RAW 02
@OFF %Spell.Data.Dispel_Magic%Cost%
RAW 08
ENDIF

&(mods)\Magic\SpellBalanceOverhaul\Vanilla
IF [Text]
IF Relocalized
REQ FALSE
ENDIF x2
ASM <.asm>
&(mods)\Magic\SpellBalanceOverhaul\Vanilla\.asm

IFNOT Lava_Wave_-_Engulf ' compat
@OFF Spell.Info.Lava_Wave
TEXT _ ^S c^ a^ l^ d^ s^ _ e^ n^ e^ m^ y^ \n / l^ o^ w^ e^ r^ s^ _ p^ o^ w^ e^ r^ . \0
ENDIF

IFNOT _Lunar_Magic_-_Celestial_Cascade ' compat
@OFF Spell.Info.Lunar_Magic
TEXT _ ^G r^ e^ a^ t^ l^ y^ _ w^ e^ a^ k^ \n e^ n^ s^ _ e^ n^ e^ m^ i^ e^ s^ . \0
ENDIF

&(mods)\Magic\SpellBalanceOverhaul\Reloc
REQ [Text]
REQ Relocalized ' compat
ASM <.asm>
&(mods)\Magic\SpellBalanceOverhaul\Reloc\.asm

@OFF Spell.Text.Analyzer
TEXT ^D e t e c t \0
@OFF Spell.Text.Lunar_Boost
TEXT ^T ou gh \0
@OFF Spell.Text.Lucid_Barrier
TEXT ^T w in k le _ ^B ar r i er \0
@OFF Spell.Text.Gem_Missile
TEXT ^D  i  a  m  on d_ ^M  is s  i  le \0
@OFF Spell.Name.Energy_Absorb
ADR.16 SSE.Text.Extended.Extra.4
@OFF SSE.Text.Extended.Extra.4
TEXT ^L i f e_ ^D r a in \0
@OFF Spell.Name.Magic_Absorb
ADR.16 SSE.Text.Extended.Extra.5
@OFF SSE.Text.Extended.Extra.5
TEXT ^M ag i c _ ^A b s or b \0
@OFF Spell.Text.Dispel_Magic
TEXT ^A n t i - ^M ag i c \0
@OFF Spell.Info.Stone_Saber
TEXT _ 5
@OFF Spell.Info.Speed_Up
TEXT _ 2
@OFF Spell.Info.Cure_Water
TEXT _ 3
@OFF Spell.Info.Flame_Saber
TEXT _ 4
@OFF Spell.Info.Lunar_Boost
TEXT _ 2 _ ^M ^P ,_ ^B u f f _ ^A \n ^T ^T ^A ^C ^K _w it h _ l u n ar _ p ow er \0
@OFF Spell.Info.Moon_Energy
TEXT _ 3
@OFF Spell.Info.Revivifier
TEXT _ 5 _ ^M ^P ,_ 1 0 0 _ ^P ^W \n ^R ,_ ^R e v i ve _t ar g e t s_ f r om _ ^D ^E ^A ^T ^H \0
@OFF Spell.Info.Light_Saber
TEXT _ 2
@OFF Spell.Info.Lucent_Beam
TEXT _ 4 _ ^M ^P ,_ 7 9
@OFF Spell.Info.Lucid_Barrier
TEXT _ 6
@OFF Spell.Info.Freeze
TEXT _ 2 _ ^M ^P ,_ 4 3
@OFF Spell.Info.Acid_Storm
TEXT _ 4 _ ^M ^P ,_ 6 1
@OFF Spell.Info.Energy_Absorb
TEXT _ 3
@OFF Spell.Info.Fireball
TEXT _ 2 _ ^M ^P ,_ 4 3
@OFF Spell.Info.Thunderbolt
TEXT _ 3
@OFF Spell.Info.Silence
TEXT _ 1 _ ^M ^P ,_ ^C ^O ^N ^F ^U ^S \n ^E _ ( & _ ^S ^I ^L ^E ^N ^C ^E ) _ f o es \0
@OFF Spell.Info.Dark_Force
TEXT _ 4 _ ^M ^P ,_ 7 9
@OFF Spell.Info.Dispel_Magic
TEXT _ 2

IF _Mud_Saber_-_Replaces_Stone_Saber ' compat
@OFF Spell.Info.Stone_Saber
TEXT _ 2
ENDIF
IFNOT _Mud_Saber_-_Replaces_Stone_Saber
IF [Balance]
IF Defensive_Petrify
@OFF Spell.Info.Stone_Saber
TEXT _ 4
ENDIF x3

IFNOT _Inferno_Barrier_-_Replaces_Blaze_Wall ' compat
@OFF Spell.Text.Blaze_Wall
TEXT ^B l a z e_ ^W a ll \0
@OFF Spell.Info.Blaze_Wall
TEXT _ 3 _ ^M ^P ,_ 4 3 _ ^P ^W ^R \n ,_ ^F i er y_ w al l s_ se t_ f o es _ ^A ^B ^L ^A ^Z ^E \0
ENDIF

IFNOT Thunder_Saber_-_Silence ' compat
@OFF Spell.Info.Thunder_Saber
TEXT _ 2
ENDIF

IF Light_Saber_-_Balloon ' compat
%OFF% Spell.Info.Light_Saber
TEXT _ 3
%OFF% SSE.Text.Extended.Extra.2
TEXT _ 3
ENDIF

IFNOT Hellfire_-_Replaces_Exploder ' compat
@OFF Spell.Info.Exploder
TEXT _ 3
ENDIF

IFNOT Lava_Wave_-_Engulf ' compat
@OFF Spell.Info.Lava_Wave
TEXT _ 4 _ ^M ^P ,_ 6 1 _ ^P ^W ^R \n ,_ ^D e b u f f _ ^A ^T ^T ^A ^C ^K ,_ ^S c al d_ f o es \0
ENDIF

IF _Lunar_Magic_-_Celestial_Cascade ' compat
@OFF Spell.Info.Lunar_Magic
TEXT _ 3
ENDIF
IFNOT _Lunar_Magic_-_Celestial_Cascade
@OFF Spell.Info.Lunar_Magic
TEXT _ 4 _ ^M ^P ,_ ^D e b u f f \n _ ^A ^L ^L _ ^S ^T ^A ^T ^S \0
ENDIF

IFNOT _Burst_-_Health_Cost ' compat
@OFF Spell.Info.Burst
TEXT _ 5
ENDIF

IF _Shadow_Saber_-_Replaces_Evil_Gate ' compat
@OFF Spell.Info.Evil_Gate
TEXT _ 3
ENDIF

IF _Black_Hex_-_Replaces_Evil_Gate ' compat
@OFF Spell.Text.Dispel_Magic
TEXT ^D is p e ll _ ^A s h \0
@OFF Spell.Info.Exploder
TEXT _ 8
ENDIF


I have some more, but I think I ran out of space for this post, so I'll post again as soon as someone posts something.

Queue

D'oh, the character limits do suck due to the post merging. I understand why things are the way they are, but still wish it weren't so. Anyway, you can also always use pastebin.com for bulk text posts.

hmsong

Enemy Behavior Changes (just the boss section) (for some reason, I cannot make Hexas use Lunar Magic if I enable Black Hex -- please help):


@OFF $C282B3 ' Doom's Eye Thunderbolt --> Dark Force
RAW 25
@OFF $C282BA ' Doom's Eye HP Absorb --> Moon Saber
RAW 1B
@OFF $C29443 ' Mana Beast Lucent Beam --> Burst
RAW 1F
@OFF $C2DC24 ' Blue Spike Fireball --> Lucent Beam
RAW 28
@OFF $C2E11D ' Thunder Gigas Thunder Saber target = All enemies
RAW 01
@OFF $C2E273 ' Hexas Dispel --> Dark Force
RAW 25
IF [Magic]
IF Spell_System_Extensions
IF _Lunar_Magic_-_Celestial_Cascade ' compat
@OFF $C2E273 ' Hexas Dispel --> Lunar Magic
RAW 1A
IF _Black_Hex_-_Replaces_Evil_Gate <--------------- even with this, I can't change back Hexas's Dark Force into Lunar Magic again, for some reason
@OFF $C2E273 ' Hexas Dispel --> Lunar Magic
RAW 1A
ENDIF x4
@OFF $C2E756 ' Buffy Dispel Magic target = All enemies
RAW 01
IF [Magic]
IF Evil_Gate_-_More_Useful ' compat
@OFF $C2E977 ' Dark Lich Evil Gate target = All enemies
RAW 01
ENDIF x2
IF [Magic]
IF Spell_System_Extensions
IF _Shadow_Saber_-_Replaces_Evil_Gate ' compat
@OFF $C2E977 ' Dark Lich Shadow Saber target = All enemies
RAW 01
ENDIF x3
@OFF $C2E97D ' Dark Lich HP Absorb --> MP Absorb
RAW 19
IF [Magic]
IF Spell_System_Extensions
IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
IF _Black_Hex_-_Replaces_Evil_Gate
@OFF $C2E97D ' Dark Lich HP Absorb (one) --> Black Hex (all)
RAW 26 01
ENDIF x4

IF [Magic]
IF Spell_Balance_Overhaul ' compat
@OFF $C2E992 ' Dark Lich Thunderbolt --> Lunar Magic
RAW 1A
@OFF $C2E999 ' Dark Lich Earth Slide --> Lava Wave
RAW 0E
@OFF $C2E9A0 ' Dark Lich Freeze --> Acid Storm
RAW 07
ENDIF x2
IF [Magic]
IF Hellfire_-_Replaces_Exploder ' compat
@OFF $C2F129 ' Red Dragon Exploder target = All enemies
RAW 01
ENDIF x2


Enemy Stat Changes (just the Mana Beast section):


@OFF $D0C0CD ' Mana Beast Attack 1 (right-to-left flyby) Strength = 120
RAW 78
@OFF $D0C0CE ' Mana Beast Attack 1 (right-to-left flyby) Sleep Status
ADR.16 #0x0010
@OFF $D0C0D4 ' Mana Beast Attack 2 (?) Strength = 120
RAW 78
@OFF $D0C0D5 ' Mana Beast Attack 2 (?) Sleep Status
ADR.16 #0x0010
@OFF $D0C0DB ' Mana Beast Attack 3 (back-to-front flyby) Strength = 120
RAW 78
@OFF $D0C0DC ' Mana Beast Attack 3 (back-to-front flyby) Sleep Status
ADR.16 #0x0010
@OFF $D0C0E2 ' Mana Beast Attack 4 (fire spiral breath)  Strength = 125
RAW 7D
@OFF $D0C0E3 ' Mana Beast Attack 4 (fire spiral breath)  Engulf Status
ADR.16 #0x4000

Queue

Quote from: hmsongeven with this, I can't change back Hexas's Dark Force into Lunar Magic again, for some reason
Balance\Enemy_Behavior_Changes happens much earlier in the patching order than Magic\Spell_System_Extensions\Black_Hex, so Black_Hex overwrites Enemy_Behavior_Changes. This is a feature creep problem: you're changing enemy AI in a spell change patch (I understand why, but it's still the source of this conflict), and then also have a dedicated AI changing patch, so they conflict, but due to patch order, the result isn't what you expect.

Probably the sanest way to deal with this will be to put Enemy_Behavior_Changes later in the patching order so that you don't need conditionals in Black_Hex to check for Enemy_Behavior_Changes, but it'll take me a little time to review Enemy_Behavior_Changes and check for potential conflicts elsewhere since all checks prior to now had been done with it early in the patching order.

Don't make any changes on your end regarding this issue with Hexas's AI; let me look it over first and see if just changing patch order will work.

hmsong

#1264
Ahh.  I had a vague idea that was the case.  I thought having conditional thing would have Enemy Behavior Change fix that, but now that I think about it, it wouldn't make any difference if Black Hex is applied afterwards.  Should have known better.

You seem to have an idea how to resolve this (I hope it doesn't cause unintentional problems).  I leave this to you.  Thanks.

Also, here's a kethinov's patch that I use frequently -- something that I thought others may enjoy:

Turtles on Turtle Shell Isle 1.0


@OFF $C8702C ' Sea Hare Island map pointer
RAW 60

@OFF $C89350
'RAW 2D16 1A 21 80 36 01C0 '(Ghoul #1)
'RAW 2D16 11 31 C0 36 01C0 '(Ghoul #2)
'RAW 2D16 1A 31 80 36 01C0 '(Ghoul #3)
'RAW 2D16 11 3F C0 36 01C0 '(Ghoul #4)
'RAW 2D16 1A 3F 80 36 01C0 '(Ghoul #5)
'RAW BD03 22 9B 40 EB 75C6 ' bow 4th
'RAW BB03 09 9B 40 EB 73C6 ' spear 4th
'RAW 85 BD 8504 800400 FF ' map header - Sea Hare Island
RAW BD03 22 9B 40 EB 75C6 ' bow 4th
RAW BB03 09 9B 40 EB 73C6 ' spear 4th
RAW 85 BD 8504 800400 FF ' map header - Sea Hare Island
RAW 000F 17 1D 40 43 01C0 '(Turtlance)
RAW 000F 19 1B 40 43 01C0 '(Turtlance)
RAW 000F 1C 1D 40 43 01C0 '(Turtlance)
RAW 000F 21 24 40 43 01C0 '(Turtlance)
RAW 000F 13 10 40 43 01C0 '(Turtlance)

IF [Items]
IF Weapons_Progression_Balance
@OFF $C89350
RAW BD04 22 9B 40 EB 75C6 ' bow 5th
RAW BB04 09 9B 40 EB 73C6 ' spear 5th
ENDIF x2


I don't know if I got the description parts correctly, but I know the codes work.

March 24, 2020, 08:03:10 AM - (Auto Merged - Double Posts are not allowed before 7 days.)


Crap.  Sorry, but I made a slight adjustments to Black Hex patch above (Fire Gigas behaviors).  Please apply that.  Thank you.

Well, it's this:

IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
@OFF $C2E109 ' Fire Gigas Exploder --> Flame Saber
RAW 0F
@OFF $C2E97D ' Dark Lich HP Absorb (one) --> Black Hex (all)
'RAW 08 00
RAW 26 01
IF [Balance]
IF Fire_Gigas_-_Flame_Saber
@OFF $C2E109 ' Fire Gigas Exploder (all) --> Speed Up (self)
RAW 10 02
ENDIF x3

Queue

Version 2020-03-28:
https://ufile.io/hnvtyok4

Changes:
- Enabled hmsong's Black Hex spell (Off by default, but now available)
- Updated hmsong's Spell Balance Overhaul
- Updated hmsong's Enemy Stat Changes
- Updated hmsong's Enemy Behavior Changes
- Added kethinov's Turtles on Turtle Shell Isle (Off by default)




Unfortunately been super busy the past week, so this is more of a maintenance release. I really want to get the rest of my world map stuff hammered out, but it all hinges on when I have some free time.

hmsong, I think I got everything you posted. Note a few small adjustments to conditionals (especially regarding IF Black_Hex and how it needs IFNOT's to match its main entry). Let me know if you have further changes or I missed / messed up something. You definitely don't need to apologize for making changes, it's no big deal. Honestly, the biggest help would probably be if you also wrote / updated the descriptions for the patcher, as I find that part to be the biggest pain in the butt.

hmsong

#1266
Great.  You didn't miss anything.  And thanks for fixing the Hexas's Lunar Magic thing.  Question though.  In the condition places like Spell Balance Overhaul, I see that you put the extra conditions for Black Hex (Evil Gate, Hellfire).  Was that necessary?  I mean, Black Hex wouldn't even work if either Evil Gate or Hellfire is on.

I will update the descriptions for all of my stuff, and I shall post them soon.

A side question.  Is there a way I can link a different shop to Nekos while keeping the same script?  For example, is there a simple way that I can link Nekos in Ice Country and Lofty Mountain to different shops, while keeping his script? (I want to link his shops to the very first shop, so that players would have access to items like Barrel and Honey, without have to go to that first shop).  That would make Nekos in those areas a bit more useful (their vanilla items are all available near where it is, all for half-price, which makes those Nekos useless).

Neko in Lofty Mountain:
C8/A108: 3F 05 23 A1 40 99 1843

I'm sure it's the 3F05 or 1843 that changes that, but I don't know which, nor to what to change.  How does that mechanic work?

More request.
- I found that Sprite being second-in-line during the combat to be very... frustrating.  He has such weak attack and defense, so he winds up bothering and getting killed far more frequently during the battle.  I would much prefer the Girl to be the 2nd person in line (she can actually give/take hits).  Would you please create a patch that does that?  Hopefully, not screwing up the order during the weird-joining segments (such as when Girl leaves during Gaia Navel, or when Sprite joins up first, etc).




Okay, here's some description updates:

Black Hex:

"(Patch)-\nAuthor: hmsong\nVersion: 0.0\n\nReplaces Shade's Dispel Magic with Black Hex (causes <Slow, Confuse, Pygmy, Poison>, and all debuffs), and replaces Salamando's Exploder with Dispel Magic (renamed to Dispell Ash).\n\nIntended for those who use Shadow Saber (so that the players would have access to spells with Evil Gate graphics), but does not depend on it.\n\nAlso changes the following enemy behaviors:\n\n- All monsters' Dispel Magic with Dispell Ash (same effect)\n- Bomb Bee Exploder --> Burst\n- Imp Exploder --> Blaze Wall (Inferno_Barrier if it's ON)\n- Captain Duck Exploder --> Lava Wave\n- Fiend Head Exploder --> Acid Storm\n- Master Ninja Exploder --> Thunderbolt\n- Gremlin Evil Gate --> Black Hex (if _Evil_Gate_-_NPC_Version is OFF)\n- National Scar Evil Gate --> Black Hex (if _Evil_Gate_-_NPC_Version is OFF)\n- Fire Gigas Exploder --> Fire Bouquet (Flame Saber if Dust Flare is ON, or Speed Up if Fire_Gigas_-_Flame_Saber is also ON)\n- Dark Lich HP Absorb (one) --> Black Hex (all)\n- Hexas Dispel Magic --> Dark Force\n- Red Dragon Exploder --> Lava Wave\n\nOverridden by [Hellfire_-_Replaces_Exploder] and [Evil_Gate_-_More_Useful]."


Spell Balance Overhaul:


"(Patch)-\nAuthor: hmsong\nVersion: 0.6\n\nRequires [Spell_System_Extensions] despite its position in the feature list.\n\nFollowing spells were changed:\n\n+Mud Saber 4MP --> 2MP\n  -Stone Saber 4MP --> 5MP (if Defensive_Petrify is OFF)\n+Speed Up 3MP --> 2MP\n-Cure Water 2MP --> 3MP\n-Flame Saber 2MP --> 4MP\n+Blaze Wall 33PWR --> 43PWR\n  +Blaze Wall 4MP --> 3MP\n+Thunder Saber 3MP --> 2MP (if Thunder_Saber_-_Silence is OFF)\n+Lunar Boost Atk Up_Eva Down --> Atk Up\n+Moon Energy Target = One_All Ally\n  -Moon Energy 2MP --> 3MP\n+Revivifier 61PWR --> 100PWR\n  +Revivifier 10MP --> 5MP\n  +Revivifier Bypasses Wall (if Revivifier_-_Turn_Undead is ON)\n+Light Saber 5MP --> 2MP (3MP if Light_Saber_-_Balloon is ON)\n+Lucent Beam 61PWR --> 79PWR\n  +Lucent Beam 8MP --> 4MP\n-Lucid Barrier 4MP --> 6MP\n\n-Freeze 61PWR --> 43PWR\n+Acid Rain 43PWR --> 61PWR\n  -Acid Rain 3MP --> 4MP\n-Energy Absorb 2MP --> 3MP\n-Fireball 52PWR --> 43PWR\n+Exploder 4MP --> 3MP\n+Lava Wave None --> +Atk Down\n  +Lava Wave 43PWR --> 61PWR\n  -Lava Wave 3MP --> 4MP\n+Thunderbolt 4MP --> 3MP\n+Silence 2MP --> 1MP\n-Magic Absorb 1MP --> 2MP\n+Lunar Magic Random --> All Stat Down\n  +Lunar Magic 8MP --> 4MP (3MP if Lunar_Magic_-_Celestial_Cascade is ON)\n-Burst 4MP --> 5MP (if Burst_-_Health_Cost is OFF)\n  +Burst Bypasses Wall (if Burst_-_Health_Cost is ON)\n+Shadow Saber 5MP --> 3MP\n+Dark Force 61PWR --> 79PWR\n  +Dark Force 2MP --> 4MP\n+Dispel Magic 4MP --> 2MP\n\nIn addition, numerous spells' names and descriptions were changed, especially if Relocalized is ON.\n\nNote: Other spell tweaks will have priority over this patch (ex: Hellfire, Cascade Lunar Magic, Inferno Barrier, etc.), so they are all compatible with this overhaul."


I can see why you'd think changing the description would be a pain.  I had some problems, because using some characters would result in error.  What are the character that I cannot use?  I know <*> is not okay, but are there any others?


Also, Could you add the following for Spell Balance Overhaul?  Just adding Magic Absorb edit -- already added that in the description above:


@OFF %Spell.Data.Magic_Absorb%Cost% <<--------- put this between Silence and Lunar Magic.
RAW 02

@OFF Spell.Info.Magic_Absorb <<--------- put this in Relocalized section of Spell Balance Overhaul, between Silence and Dark Force.
TEXT _ 2




Btw, since I changed vanilla's Lunar Boost's Atk Up/Eva Down to Atk Up, I didn't want to use the name "Rush".  What do you think is the best name among the following? (3 character limit for Reloc -- I'm trying to avoid using another extension):
1. T ou gh
2. P us h
3. H on e
4. W he t

Queue

_Black_Hex_-_Replaces_Evil_Gate is TRUE / FALSE based purely on the state of its checkbox. If you had...
IF [Magic]
IF Spell_System_Extensions
IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
IF _Black_Hex_-_Replaces_Evil_Gate
@OFF $C2E97D ' Dark Lich HP Absorb (one) --> Black Hex (all)
RAW 26 01
ENDIF x4

...and Black Hex and Hellfire On at the same time, even though Black Hex wouldn't be active since Black Hex has...
IF Hellfire_-_Replaces_Exploder
REQ FALSE
ENDIF

...Dark Lich would still have its HP Absorb changed to spell 0x26, even though that wouldn't be Black Hex.

Because Black Hex has the two other features that can disable it (REQ FALSE), those two other features have to be checked for anywhere you use IF _Black_Hex_-_Replaces_Evil_Gate, like:
IF [Magic]
IF Spell_System_Extensions
IF _Dust_Flare_-_Replaces_Fire_Bouquet ' compat
IF _Black_Hex_-_Replaces_Evil_Gate
IFNOT Hellfire_-_Replaces_Exploder
IFNOT Evil_Gate_-_More_Useful
@OFF $C2E97D ' Dark Lich HP Absorb (one) --> Black Hex (all)
RAW 26 01
ENDIF x6





The event script attached to each location's copy of Neko determines which shop he shows. I'll explain the object data:
@OFF $C8A108
RAW 3F05 23 A1 40 99 1843

3F05 = visibility event flag 3F, between values 0 and 5 (inclusive)
This determines whether or not the object (Neko in this case) is visible / active.
Event flag 3F is related to Jehk's test of courage; once you defeat the 3 shadow clones, I think the flag is raised all the way to value 6, so Lofty Mountains Neko probably stops spawning then. I'm just looking at the game data at the moment.

23 = X position | %something%
A1 = Y position | stationary
This is where the object appears.
0x23 = 35 (35 tiles from the left edge of the map)
0xA1 = 0x21 | 0x80
0x21 = 33 (33 tiles from the top edge of the map)
In the X position byte, I don't recall what 0x80 means, will update this post later once I check.
In the Y position byte, 0x80 means don't wander, so 0x21 (without 0x80) would allow the object to move on its own.
Because both position bytes use the high bit as a flag, the maximum X and Y position values are 127 (0x7F).

40 = %something% | direction
0x00 = facing up
0x40 = facing down
0xC0 = facing right
0x80 = facing left
0x10 = I don't recall
Any other value = I don't recall
At the very least, the top two bits (0x80, 0x40) are for what direction the object is facing.

99 = object type | %something%
0x99 = 0x19 | 0x80
0x19 = Neko
0x80 = I don't recall

1843 = 0x4318
The highest nibble, in this case the 4, means "when talked to via button press", and the lower 3 are the event number (0x318).
Other values for the highest nibble are when walked into (1) and pushable (8).
Event 0x318 is the Lofty Mountains specific Neko event, where he says "I love meow-tain climbing!" and it's not used anywhere else, so you could change event 0x318 so that it opens a different shop without it affecting any other Neko. Event 0x318 directly calls event 0x312 which is the master shop event. The first thing in event 0x318 is:
'RAW 30 FA 0C
\event \flag== FA 0C

Event flag 0xFA controls which shop Neko shows when you select Buy. You'd change 0x0C to whatever shop number you wanted.

Changing events requires compatibility fixups for both VWF and Relocalized, since both of them relocate all events.

Some versions of Neko use the same events as each other... I think? So it may not be as easy to change as it is for the Lofty Mountains one.

Ice Country Neko works a little differently, where his main event is 0x65F, which calls event 0x308, which is shared with the Todo shopkeeper, and event 0x308 is what sets event flag 0xFA. You could alter event 0x65F to set event flag 0xFA, and call event 0x312 (instead of 0x308), but that's a bit more complicated.




I agree regarding the sprite being second in line when you're controlling the boy. That has always been odd. I must admit I'd never actually considered changing it. I have no idea what controls that, but I'll look around some because if that's reasonable to change I'd want it changed as well. No promises because I really have no clue where the code is that determines what order they're in.




* is a valid description character. It's quotation marks " that aren't allowed, since they're what enclose the whole string of text, and there's no escape sequence for them.

The final checkbox definition...
0 0 0 Patch_Template "(Patch)\nAuthor: \nVersion: \n\n"..."\n\nURL: "
...contains angled quotation marks around ... which I have there to copy & paste when I need to put quotation marks in a description. Those angled quotation marks work where the basic " character would not work.




Yep, I'll get those edits in.




3 bytes is a tight fit for a spell name.

Push doesn't work in my opinion.

Whet is a bit obtuse (I assume you were shooting for something like sharpened by a whetstone). Despite examples in a dictionary, the only common uses of whet are in combination with stone (whetstone), or in the phrase "whet [my] appetite" (and even there, I suspect the average person would misspell the latter as "wet").

Tough sounds more like a defensive buff name, and even then, feels like an NES RPG spell name where there wasn't enough space for a longer name.

Hone feels like an interesting spell name for an attack buff, I like that one; it's definitely not an obvious choice, but spell names can be a fun place to use less common words.

hmsong

#1268
Quote_Black_Hex_-_Replaces_Evil_Gate is TRUE / FALSE based purely on the state of its checkbox.

Oh, that's true.  I should have known that.  Gottya.




As for Lunar Boost spell (for Spell Balance Overhaul), here's the correction (yeah, you're right about Tough sounding like some sort of defense buff).  It says "T ou gh" right now, but please change it to "H on e".  Only for Reloc though, since vanilla's "Lunar Boost" works fine:


@OFF Spell.Text.Lunar_Boost
TEXT ^H on e \0





Looking forward to Primm Popoi position switch.  Assuming you find the place to edit that.




Yikes.  Neko shop change seems more difficult than I imagined.  I figured it would be really easy to modify that.  Damn.  Do you have a list of which event number links to what event, and the address for those? (VWF and Reloc too)  That would help immensely, not just for this hack, but for all other hacks that I may attempt.  I'm pretty sure they're in bank 0x09, but I don't know any of the specifics.

Well, I'll work on it and ask questions when I get stuck.  Thanks in advance.

Crap.  I can't even begin.  One thing at a time.  Looking at the Lofty Neko, I understand that event 318 is the one that's link to that particular Neko, and I understand event 318 calls event 312 (how did you get this info?).  But everything after that, I didn't understand.  Where did you get FA 0C?  Which address are you looking at?




Here's more description update:

Enemy Behavior Changes:

"(Patch)\nAuthor: hmsong\nVersion: 0.3\n\n- Increases the frequencies of spells.\n- Changes various HP requirements for spell-casting conditions (to prevent stupid AI actions).\n- Corrects various spell-targeting (to prevent hurting itself or buffing PCs)\n\nOthers:\n\nSpectre Freeze --> Dark Force\nGoblin Cure Water (ally) --> Mud/Stone Saber (ally)\nWater Thug Cure Water (full-HP ally) --> Acid Rain (one enemy)\nIce Thug Ice Saber, Cure Water target = Self\nSilktail Acid Rain (1 enemy) --> Light Saber (self)\nSilktail Cure Water (self) --> Burst (1 enemy) at lower HP\nSilktail Fireball --> Lucent Beam\nHowler Speed Down (1 enemy) --> Lunar Boost (self)\nWerewolf Cure Water target = Self (if allies are around)\nTomato Man Defender --> Lunar Boost\nTomato Man Various PC-buff spells --> Magic Absorb (1 enemy)\nMystic Book Air Blast --> Magic Absorb\nEmberman Lava Wave (1 enemy) --> Inferno Barrier (self) if it is on\nKimono Wizard Freeze --> Magic Absorb\nGhost Freeze --> Lucent Beam\nBeast Zombie Acid Storm --> Lava Wave\nBeast Zombie Speed Down (1 enemy) --> Lunar Boost (self) (if Change_Form_-_Pygmy-Moogle is OFF)\nGhoul Speed Down (1 enemy) --> Lunar Boost (self)\nMetal Crab Light Saber --> Thunder Saber\nNitro Pumpkin Renews into Pumpkin Bomb --> Nitro Pumpkin\nTurtlance Moon Saber --> Moon Energy (or Herbal Boost)\nTurtlance Light Saber --> Ice Saber\nGremlin Freeze --> Lunar Magic (if Celestial_Cascade is ON)\nDark Ninja Speed Down --> Balloon\nDark Ninja Flame Saber --> Thunder Saber (unchanged w/o Shadow Saber)\nWhimper Earth Slide --> Lucent Beam\nHeck Hound Only spawns Beast Zombie\nNational Scar Spawns Imp --> Gremlin\nDark Stalker Ice Saber --> Flame Saber (or Shadow Saber)\nTerminator Lucent Beam (one enemy) --> Light Saber (self)\n\nDoom's Eye Thunderbolt --> Dark Force\nDoom's Eye HP Absorb --> Moon Saber\nMana Beast Lucent Beam --> Burst\nBlue Spike Fireball --> Lucent Beam\nThunder Gigas Thunder Saber target = All enemies\nHexas Dispel --> Dark Force (Lunar Magic if Celestial_Cascade is ON)\nBuffy Dispel Magic target = All enemies\nDark Lich Evil Gate/Shadow Saber target = All enemies (if Useful_Evil_Gate or Shadow Saber is ON)\nDark Lich HP Absorb --> MP Absorb\nDark Lich Thunderbolt --> Lunar Magic (if Spell_Balance_Overhaul is ON)\nDark Lich Earth Slide --> Lava Wave (if Spell_Balance_Overhaul is ON)\nDark Lich Freeze --> Acid Storm (if Spell_Balance_Overhaul is ON)\nRed Dragon Exploder target = All enemies (if Hellfire is ON)\n\n* Intended to be used with [Enemy_Type_And_Element_Changes] and [Enemy_Stat_Changes], although it does not depend on them."

Queue

Version 2020-04-01:
https://ufile.io/hbwyxace

Changes:
- Updated some of hmsong's features and feature descriptions
- Implemented Quality_of_Life\Rearguard_Sprite; changes party follow arrangement when boy is party lead, from boy > sprite > girl, to boy > girl > sprite
- Implemented Quality_of_Life\Personal_Space (defaults to Off); changes party follow distance, vanilla is 0x40, default is 0x30, configurable via Advanced Settings %Party_Follow_Distance%

hmsong

#1270
Nice.  The new Primm being in 2nd works great.  And so does Personal Space.  30 seems pretty good too.  I haven't tried the cases when the 3rd person is missing, but I assume that works well (I'll test that out -- sandship, northtown ruins, etc).

I was testing few things, and I noticed my previous mistakes:

Enemy Stat Changes:


@OFF $D01FDD ' Tomato Man MP (46 --> 70) <<---------- I put it as $D01FDB (HP), which was already done in the previous line.
RAW 46

@OFF $D07952 ' Ghost HP Behavior (631 --> 539) <<---------- Similar to National Scar HP Behavior, Ghost needed one too.
RAW 1B 02
@OFF $D079A7 ' Ghost HP Behavior (631 --> 539)
RAW 1B 02


No need to change the version number, since I'm just correcting the mistakes that I made.
I take that back.  Please change the version number, since that allows me to keep track of how many revisions I go through.

Edit:  Tested.  Everything works great.

StarWyvern

 This is the greatest thing for the Mana series I have ever seen!  :woot!: Is the latest beta available yet? This makes this game's replay value go up by thousands. Don't stop doing stuff like this. It is absolutely amazing. Great work, REALLY, great job!  :thumbsup:
Insert "Witty Text" here.

nosynose

Queue, thanks for your work and dedication for SoM Turbo. One thing, though: do you consider making a non dotnet patcher? Will such conversion be very difficult? Thank you in advance.

Queue

#1273
StarWyvwern, you should look up the Secret of Mana Randomizer, née Ancient Cave, by Mop (link). It just had its milestone 1.0 release and REALLY adds replay value.

The latest beta is available 3 posts above this or at the top of the first post (I update the download link in the first post whenever I post a new release).




hmsong, I got lucky when looking for the party arrangement code and found it quickly. It almost looks like it could've been a mistake that it went boy > sprite > girl, given that they're technically designated in the order boy > girl > sprite, but the order of designation is different from the resulting follow order. I just also happened to see code that looked like it was specifying follow distance (it was) just below the party order code so I hooked it up to be configurable.

Thanks for testing; I didn't test it properly (by playtesting the part where you gain / lose party members) and was instead artificially removing / adding them, but I was pretty confident it would work.

I think you made the right choice regarding version numbers; there's really no harm in bumping the number on any change, as the version number doesn't itself mean anything, and literally exists so everyone (author included) knows if a change has occurred.

I want to explain the event stuff, but keep finding myself short on time. -_-
I'll try to get to that next post.

hmsong

#1274
Thanks.  Looking forward to the explanation.

Also, I'm thinking about promoting your hack by releasing some of my patches on RHDN (your patch deserves more attention).  After all, I only learned about your hack's existence because kethinov told me about it.  And I was only able to ask kethinov because his patch was available in RHDN.

I'll probably put something like:

QuoteI strongly suggest you to check out Queue's [Secret of Mana Turbo] hack compilation.  It has all of my hacks (enhanced versions), as well as a LOT of others (some of which make the game significantly better).  It even fixes most of the glitches that were present in the original game.  And you can toggle which hacks to use (very user-friendly).  It is by FAR the best SoM hack.

- Queue's [Secret of Mana Turbo] forum:

  https://www.romhacking.net/forum/index.php?topic=27890.0

I'll probably release some of the more simple patches (ones that don't use your SSEs, such as Enemy Behavior/Stat/Element Changes).  I'm also thinking about releasing Spell Balance Overhaul (well, the inferior version which don't use SSEs).  Is it alright if I included your Silence Thunder Saber and Poison Sleep Flower in the Spell Balance Overhaul?  I'll credit you, of course.

This is just an idea.  I've never actually uploaded anything in RHDN.

Pethronos

I agree. I think this project should be far more known, since it's awesome and best way to customize SOM in so many different ways. Also, it's the best option to know about the entire SOM hacking community and the astounding work of all of you. Many people would get absolutly amazed with it. I'd be nice to see a proper submission to the hacks section, but it's your thing. Anyway, thanks and congratulations to all of you for keeping alive this beautiful community. Cheers :D

JJaANF

Hello Good Folk...


Total newbie I am, and I have a (lot of) Q...

I'd like to try Turbo, with Equipment Progression Balance...

-Are they Compatible ???
--If they are, what is the installation procedure ?

-I think I read somewhere it could be integrated later, is it right ?
--If right, when is "later" ??? :p

And ...
...
...
THANK YOU for the good stuff !!!   :thumbsup:

hmsong

@JJaANF

I'll answer what I can, since Queue is probably busy.

Hoo boy.  Where to start.  Equipment Progression Balance changes lots of things with the drops and the shops (esp shops).  So any patch that changes those are not likely to be compatible (there's bound to be errors here and there).  Examples:  Faerie Coconut, Stardust Herb, Equipment Tweak, and maybe even Neko-in-some-land patches, etc.

Assuming you're not using any of the patches that mess around with shops or drops, the order is:  Turbo --> Equipment Progression Balance.

Quote-I think I read somewhere it could be integrated later, is it right ?
--If right, when is "later" ??? :p

You read it "somewhere"?  I'm not the one who posted that, so you'll have to ask the person what he meant.

JJaANF

Quote from: Queue on April 15, 2019, 12:57:32 AMdarthvaderx, you're mixing up "Equipment Progression Balance" and "Level 9 Weapons Progression Balance" (both by Kethinov). Turbo only currently includes the latter. I'll get the other eventually.

Oops... I read "later" when it is written "eventually"...

Wishful reading ??? :p


Thank you for the answer !!! Helps a lot !!!

I'll be back !!!

Queue

Quote from: nosynose on April 02, 2020, 12:26:46 PM[Would] you consider making a non dotnet patcher? Will such conversion be very difficult? Thank you in advance.
Unfortunately very difficult. The patcher isn't my creation, and I don't have the source code to it. The ZPS patch format, especially Turbo's use of it, relies on lots of very specific behaviors, so rewriting the ZPS patcher in another language would require extensive effort to match the behavior of the existing one.

While I'm not a big fan of .NET, I still found the capabilities of the ZPS patch format compelling enough to use in spite of its patcher being .NET and obscure. The only patcher option for it is tough to use outside of Windows.




Pethronos, thanks. That's a really nice sentiment, I really appreciate it.




JJaANF, like hmsong said, you should be able to apply Equipment Progression Balance after applying Turbo, with the caveat that it'll overwrite features that affect shops and enemy drops.

And yeah, somewhere I said I'd get it integrated eventually, but there's no timeline for it, especially that one as it'll require a fair bit of compatibility crosschecking and fixups that I'm not currently in the mood for.

My goal is to get all of kethinov's hacks in the Turbo patcher, but I only have so much time available.




Quote from: hmsongIs it alright if I included your Silence Thunder Saber and Poison Sleep Flower in the Spell Balance Overhaul?
Absolutely fine.

Let's hammer out some of the info on the game's events. The following is only for vanilla, as VWF and Relocalized both relocate all event scripts.

Events 0x000-0x3FF are in bank 0xC9 and events 0x400-0x7FF are in bank 0xCA. The first 0x800 bytes of each of those banks are the pointer tables to the events; think of them like a table of contents. So, say you want to know where event 0x318 is in bank 0xC9, take the value 0x318, and multiply it by two because the pointers are 16-bit (2 bytes, so 0x318 * 2 = 0x630); look at $C90630 to get the 16-bit address of event 0x318. At $C90630 you'll find the bytes 0x58 0xCD, which read as a single 16-bit value in little-endian order is 0xCD58, so event 0x318 is at address $C9CD58.

At $C9CD58 you'll find:
[Event 318]
C9/CD58: 30FA0C
C9/CD5B: 50
C9/CD5C: A89FA5A9C5A3808C8F9685808D858F97C68E9481898E7F
N E K O : I _ l o v e _ m e o w - n t a i n \n
C9/CD73: 80838C898D82898E87C880A885858480818E999488898E87CA
_ c l i m b i n g ! _ N e e d _ a n y t h i n g ?
C9/CD8C: 2800
C9/CD8E: 52
C9/CD8F: 06
C9/CD90: 03
C9/CD91: 2D08
C9/CD93: 5D5F
C9/CD95: 80A3C28C8C808596858E809381968580998F95928087818D85C87F
_ I ' l l _ e v e n _ s a v e _ y o u r _ g a m e ! \n
C9/CDB0: 5903
C9/CDB2: CB
(
C9/CDB3: 58
C9/CDB4: 5A05
C9/CDB6: AD819685
S a v e
C9/CDBA: 5A0C
C9/CDBC: 9C9599
B u y
C9/CDBF: 5A12
C9/CDC1: AD858C8C80CC
S e l l _ )
C9/CDC7: 5B
C9/CDC8: 10FF
C9/CDCA: 104F
C9/CDCC: 1312
C9/CDCE: 1313
C9/CDD0: 00 [End]

In ZPS syntax, this would be:
@OFF $C9CD58
\event \flag== FA 0C
\event \text_open
TEXT ^N ^E ^K ^O : ^I _ l o v e _ m e o w - n t a i n \n
TEXT _ c l i m b i n g ! _ ^N e e d _ a n y t h i n g ?
\event \wait_input
\event \text_clear
\event \lock \gather \camera_center
\event \gold_show
TEXT _ ^I ` l l _ e v e n _ s a v e _ y o u r _ g a m e ! \n
\event \multispace= 03
TEXT (
\event \text_opt_start
\event \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==
\event \goto 0FF
\event \goto 04F
\event \goto 312
\event \goto 313
\event \end

(I think, typed this out without testing.)

The important part for what you want is that very first command, \flag== FA 0C, which sets event flag 0xFA to the value 0x0C. Event flag 0xFA controls which shop shows, and setting it to value 0x0C is the value for the Mandala / Lofty Mountains shop.

Mop's somedit can be used to search events, though there are some event commands it doesn't know, and there are some uses of events that won't show up when searched for, but it's certainly a handy reference. If this is anyone's first exposure to somedit, be aware that it is inadequate for actually producing significant ROM hacks for Secret of Mana, but it is amazingly useful reference material. If you try changing anything in it, be ready for the changes to not save, or not be reusable on a subsequent run, etc. I treat it as a read-only resource, but use it on occasion to look at the game's data to come up with ideas.