MUGEN1.0 内存表
以下默认用十进制表示地址,括号内为十六进制
绝对地址:
5418692(52AEC4):储存某个地址,设为W
W+15332:主程序基址
5421392(52B950):暂停标志,为1表示暂停(Paused),反之为0
5417448(52A9E8):前一帧按键输出索引值(?)
5417452(52A9EC):当前帧按键输出索引值(?)
5416424(52A5E8):当前帧按键输入值
设主程序基址为X,则有
X+48008:DemoMode标志,为非0表示处于DemoMode
X+48004:活跃标志,为非0时表示窗口活动
X+51580:SpeedMode标志,为非0时表示处于SpeedMode
X+46028:SkipFrames,大于0时表示处于SkipMode
X+50536:DebugMode标志,为非0时表示处于DebugMode
X+50528:Debug目标,为非0时表示处于DebugMode
X+46024:游戏运行时间(tick)
X+46112:ScreenX
X+46116:ScreenY
X+48176:RoundState
X+48132:RoundNo
X+48192:RoundTime,-1表示不限时
X+2584:当前Match中当前Round的序号
X+2588:TurnsMode标志,为0时表示处于TurnsMode
X+48180:胜方,为1表示左侧方,为2表示右侧方
X+48184:WinKO标志,为1表示当前胜方WinKO
X+48136:左侧方胜局数
X+48140:右侧方胜局数
X+48148:平局数
X+46932:储存1P人物基址
X+46932+4:储存2P人物基址
X+46932+8:储存3P人物基址
X+46932+12:储存4P人物基址
X+46932+4(n-1):储存序号为n的player或helper的基址
X+41424:储存Explod表的基址
X+41424+264n:储存序号为n的Explod的基址
X+48084:PauseTime
X+48120:SuperPauseTime
X+47720:为0时表示1P处于frozen
X+47720+4n:为0时表示No为n的Player或Helper处于frozen
X+47992:储存一个值,设为Q,如果Q&65536≠0,则Noko=1;若Q&1≠0,则Intro=1;若Q&265≠0,则RoundNotOver=1
X+47792+4:储存一个值,设为S,若S&16777216≠0,则TimerFreeze=1
设某个Explod的基址为A,则有:
A:存在标志,非0时表示Explod存在
A+128:储存该Explod的Anim基址,设为B
B+12:储存Anim的序号(非AnimNo)
A+16:储存ExplodID
A+12:储存Explod的所有者的ID
设某个Player或Helper的基址为Y,则有:
Y:储存该Player或Helper的信息数据基址,设为M
M+48:DisplayName(最大长度为256)
M+1080:储存某个临时地址,设为R
R:储存某个临时地址,设为E
E+28:储存该Player或Helper的Anim表基址,设为G
G+16n+12:储存序号为n的Anim的No
Y+5144:储存某个临时地址,设为H
H+16:储存当前Anim的信息基址,设为J
J+44:当前Anim的CLSN2标志,为0时表示处于NoClsn2
Y+4356:储存HitOverRide0的地址
Y+4356+20:储存HitOverRide1的地址
Y+4356+40:储存HitoverRide2的地址
Y+4356+20n:储存HitOverRide(n)的地址,设为K
K:HitOverRide的存在标志,为0表示不存在
K+4:HitOverRide的ATTR值(需推导成实际类型,下详)
Y+620:储存某个临时地址,设为L
L+8:NumTarget
L+24:Target表基址,设为P
P+28n:储存No为n的target所指的人物基址
Y+616:储存某个临时地址,设为C
C:储存该Player或Helper的Proj数据的基址,设为D
D+40:储存Proj所允许的最大数量
D+24:储存该Player或Helper的Proj表的基址,设为F
F+736n:储存该Player或Helper序号为n的Proj的基址
Y+432:Player或Helper存在标志,非0时存在
Y+4:ID
Y+5236:HelperID
Y+5240:ParentID
Y+3148:StateNo
Y+3152:PrevStateNo
Y+5152:Palno
Y+3712:Alive
Y+440:Life
Y+472:Power
Y+4228:Damage
Y+3684:Ctrl
Y+3672:StateType,为1时S,为2时C,为3时A,为4时L
Y+3676:MoveType,为0时I,为1时A,为2时H
Y+3696:HitPauseTime
Y+3724:为1或2时表示处于MoveContact,为2时表示处于MoveHit,为1时表示处于MoveGuarded,为4时表示处于MoveReversed
Y+4180:Mutiki
Y+4184:Hitby1(需同Hitby2推导出实际类型,下详)
Y+4188:Hitby2(需同Hitby1推导出实际类型,下详)
Y+4300:FallDamage
Y+488:Facing
Y+500:PosX(-ScreenX/2)
Y+504:PosY(-ScreenY/2)
Y+516:VelX
Y+520:VelY
Y+4140+4n:sysvar(n)
Y+4160+4n:sysfvar(n)
Y+3740+4n:var(n)
Y+3980+4n:fvar(n)
Y+552:PauseMoveTime
Y+556:SuperPauseMoveTime
Y+480:Attack-Mul
设某个Proj的基址为M,则有:
M:ProjID
M+4:存在标志,为1时表示Proj有效
M+68:X坐标(+320)
M+72:Y坐标(+240)
设某个ATTR值为T,推导实际类型:
设实际类型为"A,B,C,D"
若T&1≠0,则A含s
若T&2≠0,则A含c
若T&4≠0,则A含a
若T&56=56,则B=aa
若T&8≠0,则B=na
若T&16≠0,则B=sa
若T&32≠0,则B=ha
若T&448=448,则C=at
若T&64≠0,则C=nt
若T&128≠0,则C=st
若T&256≠0,则C=ht
若T&3584=3584,则D=ap
若T&512≠0,则D=np
若T&1024≠0,则D=sp
若T&2048≠0,则D=hp
设HitBy1为U,设HitBy2为V,则U&V的值即是Hitby的ATTR值,再同上推导即可