[Mugen]--- Mugen 1.1b 下 512 bug简略表 【半成品】

 之前写过 


[ Mugen ] - 512 bug 内存表(16进制 版)  (WinMugen下)

 http://v-madoka.lofter.com/post/2fdf1b_97e0ed2


[Mugen]--- Mugen 1.0下 512 bug简略表 【半成品】

http://v-madoka.lofter.com/post/2fdf1b_9ea043d


上面两个测试是在win7系统上测试的,win10也适用,但是win10在测试过程中,某些方面存在一些问题,所以我暂时没有说win10是否适用。


今次,我怕自己会坑,所以就先把之前搞的一点东西放出。

-------------------------------------------

首先,Mugen 1.1b有两个基址,分别为 503D24 和 5040E8,无论是win10下还是win7的系统下,都是这两个。

而 Mugen 1.0 只有一个基址:52B40C

WinMugen则是 4B5B4C


这三个基址,在win10系统里,也是和win7一样的。


以下为测试

---------------------------------------------


从 基址503D24 或 5040E8 获取重定向点指针 “X”

X + 4 + 00012274  → P1人物数据指针Y
X + 8 + 00012274  → P2人物数据指针Z

(这里不明白的,请看:[Mugen]--- Mugen 1.0下 512 bug简略表 【半成品】



P1 和 P2的人物数据的间隔:
两人物指针之间相差(Z-Y=) 2608  (10进制是9736)

拿Y来进行研究,Y为人物数据存放地址的初始位置(以Y为基准)

————————————
(注意:以下Y加的偏移量都是10进制的,如果要在内存中偏移,需要把十进制变成16进制的数,才能正确相加)

如果10进制后面加了括号,则括号里的数字是16进制。

————————————
Y         : 重定向点Y
Y+04      : PlayerID
Y+08      : 出场数序(1-4 P)
Y+12      : Teamside
Y+16      : 本体是0,helper等 -1
Y+20      :
Y+24      :
Y+28      : ishelper(本体为0)←destroyselfやparentvarset実行に必要。!ishelperでnumpartnerに换算される。

Y+32 - Y+76  : Debug上的显示名 

Y+80      : const(data.life)
Y+84      : const(data.power)

...

Y+440     : Life
Y+444     : Lifemax
Y+448     : 该处值和Life相同,但修改会报错
Y+452     : 显示的Life值



Y+3276(CCC)  : Stateno
Y+3280(CD0)  : Prevstateno


Y+3284(CD4):Persistent开始处 


Y+3840(F00)   : Alive   (F00 - CD4 = 22C,即556,也就是刷值需要刷:557-560。和Mugen1.0相同)


y+5700(1644)  : HelperID
Y+5704(1648)  : ParentID
Y+5708(164C)  : Parent  (164C - CD4 = 978(16进制),10进制就是2424)
Y+5712(1650)  : Root
Y+5716(1654)  : PlayerType  (HelperType)



-----------------------------------------------


后话:

①,Mugen 1.1b下,Parent 在 2424 处了,而不是WinMugen下的 6693了

刷值量大大减少。


②,1p数据指针 距离第一次重定向地址的间隔:

WinMugen  : B754

Mugen 1.0   : 11234

Mugen 1.1b : 12278

可以看出 三个主程序 确实有一定的差别。


③,因为是简表,所以就先写这么多了。有些问题我在:

[Mugen]  - Mugen 1.0 和 1.1b 直死实验体 --- 八云恋2.0 / 3.0

http://v-madoka.lofter.com/post/2fdf1b_ecbedd0

这篇文章里提到过。


这里我说说一个问题,那就是win10系统下,P1和P2之间间隔的问题。

我曾经说过,win10下两个人物之间的间隔和win7下是不同的。那个话是错误的!

就是这篇文章:

[ Mugen ] -- Windows 10 下 WinMugen 使用初步体验

http://v-madoka.lofter.com/post/2fdf1b_b8cab5b

里面说人物间隔不同是有问题的。


最近我的测试发现,这个和我用的系统有关,我是用的虚拟机内的win10测试的,这是很有问题的,当我的内存分配很少时,人物之间间隔是毫无规律的,换个说法就是,P1,P2之间的人物指针是随机分配的,内存哪边空着就用哪边。

当内存分配一般般时,人物间隔有时会变的和win7相同,有时则毫无规律,尤其是在对战几次后,内存被用完了?不得而知。

而且有个问题是,我测试的时候,不同模式下,人物间隔不同,比如 VS模式 和 watch模式就可能不同,这可能和我的win10测试有关,今后我准备找一台稳定的非虚拟机的win10来测试一下。


当然 win7下 各个主程序win,1.0,1.1b以及各个模式(VS,Watch等),都是非常稳定的,所以不用考虑上面我提到的问题。说不定win10也很稳定,只不过是我测试所用的虚拟机的问题。



Date:2017.04.06

Author:yui

 
评论
 
回到顶部