WinMUGEN 内存表

以下默认用十进制表示地址,括号内为十六进制


绝对地址:
4938572(4B5B4C):储存着主程序基址
4942465(4B6A81):暂停标志,为1表示暂停(Paused),反之为0
4938056(4B5948):前一帧按键输出索引值(?)
4938060(4B594C):当前帧按键输出索引值(?)
4937032(4B5548):当前帧按键输入值

设主程序基址为X,则有
X+48012:DemoMode标志,为非0表示处于DemoMode
X+48008:活跃标志,为非0时表示窗口活动
X+51508:SpeedMode标志,为非0时表示处于SpeedMode
X+46080:SkipFrames,大于0时表示处于SkipMode
X+50464:DebugMode标志,为非0时表示处于DebugMode
X+50456:Debug目标,为非0时表示处于DebugMode
X+46076:游戏运行时间(tick)
X+46120:ScreenX
X+46132:ScreenY
X+48176:RoundState
X+48132:RoundNo
X+48192:RoundTime,-1表示不限时
X+23544:当前Match中当前Round的序号
X+23548: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+41700:储存Explod表的基址
X+41700+228n:储存序号为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+972:储存某个临时地址,设为R
R:储存某个临时地址,设为E
E+24:储存该Player或Helper的Anim表基址,设为G
G+16n+12:储存序号为n的Anim的No
Y+5052:储存某个临时地址,设为H
H+16:储存当前Anim的信息基址,设为J
J+44:当前Anim的CLSN2标志,为0时表示处于NoClsn2
Y+4264:储存HitOverRide0的地址
Y+4264+20:储存HitOverRide1的地址
Y+4264+40:储存HitoverRide2的地址
Y+4264+20n:储存HitOverRide(n)的地址,设为K
K:HitOverRide的存在标志,为0表示不存在
K+4:HitOverRide的ATTR值(需推导成实际类型,下详)
Y+544:储存某个临时地址,设为L
L+8:NumTarget
L+20:Target表基址,设为P
P+32n:储存No为n的target所指的人物基址
Y+540:储存某个临时地址,设为C
C:储存该Player或Helper的Proj数据的基址,设为D
D+40:储存Proj所允许的最大数量
D+20:储存该Player或Helper的Proj表的基址,设为F
F+732n:储存该Player或Helper序号为n的Proj的基址
Y+344:Player或Helper存在标志,非0时存在
Y+4:ID
Y+9752:HelperID
Y+9756:ParentID
Y+3060:StateNo
Y+3064:PrevStateNo
Y+5060:Palno
Y+3620:Alive
Y+352:Life
Y+376:Power
Y+4136:Damage
Y+3596:Ctrl
Y+3584:StateType,为1时S,为2时C,为3时A,为4时L
Y+3588:MoveType,为0时I,为1时A,为2时H
Y+3608:HitPauseTime
Y+3632:为1或2时表示处于MoveContact,为2时表示处于MoveHit,为1时表示处于MoveGuarded,为4时表示处于MoveReversed
Y+4088:Mutiki
Y+4092:Hitby1(需同Hitby2推导出实际类型,下详)
Y+4096:Hitby2(需同Hitby1推导出实际类型,下详)
Y+4212:FallDamage
Y+400:Facing
Y+412:PosX(-ScreenX-160)
Y+416:PosY
Y+436:VelX
Y+440:VelY
Y+4048+4n:sysvar(n)
Y+4068+4n:sysfvar(n)
Y+3648+4n:var(n)
Y+3888+4n:fvar(n)
Y+476:PauseMoveTime
Y+480:SuperPauseMoveTime
Y+392:Attack-Mul

设某个Proj的基址为M,则有:
M:ProjID
M+4:存在标志,为1时表示Proj有效
M+92:X坐标
M+96:Y坐标

设某个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值,再同上推导即可

暂无评论
你,确定要这么做吗?
正在处理中...