Top Post

This is a blog that I have made for discussing and posting content related to my MUGEN characters or other programming-related things, whether MUGEN or not. My characters are private/trade-only to prevent edits and the like. More often than not, asking will get you them, though.
Feel free to post a comment if you have any concerns. I mostly post in English, but can speak Japanese to an extent. I'll use a translator for any other language, so feel free to use your native one if you don't feel comfortable speaking in one of those two.

Characters created/collaborated on:

Theorem
theorem

Gefühl
Y-Gefühl (憂愁ゲフール)

ASYuuka
ASYuuka (ασιν)

DisplayToClipboard + Null Overflow = ???

so after noticing a bug in my capturing code after implementing something new, I wanted to resolve the issue.
i learned about an interesting problem...
to demonstrate the issue, this gif was made: this occurs after hitting F4 to restart the match. watch the number that keeps going down, this is PalNo, which is set by an equivalent of %%hn, whenever it can.

i really don't like this

so i asked "why does it keep going down? it should be set to 0 immediately such that it can be set to the proper value later!"
i even tried crashing MUGEN, and the same thing happened. it didn't crash, just kept decreasing...

i felt that something was wrong with my own code (or that PalNo is a cursed spot), so i wanted to try it with someone else's code. this way i can check if it was a universal occurrence or not and give better insight into the problem.
with this in mind, i made a quick change to a random character in my roster with an instant death State already present. this turned out to be φ (Empty Set).
(please forgive me for not letting the author know before i did so.)

this small piece of code will crash MUGEN if this State was entered, upon execution:
[state ]
type=displaytoclipboard
trigger1=1
text="%2147483647n"
params=0
ignorehitpause=1
a stack overflow and an invalid address should crash everything.
at the beginning of the State i also put a small indicator:
[state ]
type=displaytoclipboard
trigger1=1
text="Been In State %d"
value=stateno
ignorehitpause=1
i believe this image should explain exactly what happened:

nani

no crash. instead it kept running as normal, which is very strange...
however, placement turned out to be incredibly important.

Sanae's Alive value, upon entering the State, is 1 (0x00000001). when leaving, under normal circumstances, this becomes 0.
the DTC didn't execute but, due to how IgnoreHitPause works, it still decrements the byte.
when i placed the DTC on the first byte of Alive (0x01 in this case), it ignored the crash instruction.
so what happens when i move it to the second byte of Alive (0x00)?

what i was expecting

in summary:
clipboard instructions will not execute if the byte that they're on isn't 0, regardless of the value of Persistent.
i think this is useful information for Null Overflow...
unsure about other things like variables, etc.

if you're running into bugs with %%n, etc. this may be the reason why.
hopefully it makes sense now. _(:3」∠)_

EXELICA has 100 conditions to satisfy, which makes this fairly long to debug...
uses the phantom helper tech that i discussed in my previous entry
this is basically the only time i needed to use PowerSet/HitAdd in a permanent sense so congrats you did it

the dumbest conditions to satisfy were the root,life/2 triggers, which were inconsistent, so i just set life to 0 constantly and that worked out somehow
everything else was easy, to satisfy AnimTime > 0 you can use an animation with an ∞-length (-1) ending frame (AnimTime substitute for Time when)
P2 vs Enemy is just a matter of changing a helper's state to 0, so that isn't much of a problem

for whatever reason HitDef with affectteam = F still targetted her and as a result Beatrix was ReversalDef'd in some scenarios... might have something to do with HitPauseTime? i should check.

also featured: dedicated measures marker that i nEED TO ANIMATE BEFORE I DIE OF AAAAA

exelica

Volcrz Dedicated Measure stuff

i can't believe i'm using this again lmoa, how long has it been, at least 2 years?

anyways
everything up to Inferno is done as intended (aka deal X damage and have Y life while being Z distance away from Volcrz while she has less than W life, really simple)

Inferno has a condition that is something like:
[State ]
type = NotHitBy
triggerall = !isHelper && name = "Volcrz"
...
trigger57 = var(36) = 6 ;Inferno
trigger57 = sysvar(1) > 900 ;life < lifemax/10
trigger57 = enemy,numhelper || enemy(numenemy > 1),numhelper
...
value = SCA,AA,AT,AP
ignorehitpause = 1
there's similar conditions in Unlimited and DeathLevel
Beatrix likes helpers tho, they let her do C O O L things with attacks
i want her to do C O O L things with attacks

hence the creation of a new tech, numhelper impersonation! this will make it such that anyone (and i mean anyone, including you) will see that you have an arbitrarily defined amount that is less than what you actually have
how you perform this is only theoretically possible for a standard god character, but is easily possible using address acquisition
by setting a helper's root address to itself, it will treat it as a seperate entity from the root entirely (probably its numhelper count will be 1, it can have projectiles, etc.)
of course you should really consider storing the original root's address in this case... that way you can still reference it.

because the helper is now a seperate entity (i'll refer to it as a "phantom helper"), the true root's numhelper goes down by 1. you can repeat this for all of your helpers and have a helper count of "0", despite having more than that in practice.
using this, Inferno and Unlimited can be satisfied with helpers, as shown below:
Volcrz_Inferno
Volcrz_Unlimited

DeathLevel's cannot be satisfied outside of theory) due to how damage processing works and the fact that Volcrz's penalty checks for both life = 0 and alive != [0, 1] seperately.
theoretically, i could do something similar to what i did for DX_Machina (set movetype outside of Beatrix's main processing), but i think that it'd be a bit too fluctuating to be viable (movetype read as H > A > H > A > H > A...)

alas

Before I Forget Again

Version 1 of ASYuuka has been complete since the 20th, I just forgot to post a video link

Here's a showcase of her done by Buraido.

I don't know how to make youtube videos embed in this blog, sorry
Profile

Choon

Author:Choon
Welcome to my blog.
Feel free to leave comments on my posts. I'll get back to them when I notice them.
"http" is a banned phrase to prevent issues.

Latest journals
Latest comments
Monthly archive
Category
Search form
Display RSS link.
Link
Friend request form

Want to be friends with this user.