Blader - 2018/5/19 11:46:13
這是早前銀河漫步版主的提問
當時沒有很好的解釋明白
以下用比較簡單的方式說明
以CM的格式來說
目前的Citra一共有3個基地址
地址1,10,38,0
地址1,C000F8,0
地址2,0
地址1與地址2通常差距50h
LLVM編譯版則是差距78h
這邊以我提供的基地址做示範
D22440,10,38,0
D22440,C000F8,0
D223F0,0
當然這三個基地址都是指向起始地址
但是實際上因為3DS內存配置較為特殊
所以根據遊戲的不同,也會有不同的結束地址
只要將基地址的,0改為,8即可指向結束地址
大致如以下
D22440,10,38,8
D22440,C000F8,8
D223F0,8
或者還有個辦法,直接將,0給去掉
如以下
D22440,10,38
D22440,C000F8
D223F0
然後到內存編輯觀察CM地址
00000000至00000003為起始地址
00000008至0000000B為結束地址
結束地址減去起始地址即可得知每個基地址的實際內存大小
而MECC因為在基地址設定支持四則運算,所以很輕易就能做到自動判斷
希望以上解釋版主能看懂...
银河漫步 - 2018/5/19 20:27:19
其实我自己弄明白了
但是这种变动ram感觉不合规律
继续等模拟器完善
Blader - 2018/5/19 22:28:48
Citra到目前為止,還能用7FFFFFFF以內的地址來修改
我覺得已經算不錯了,若固定內存大小,可能就得使用更大範圍的地址
反而還得等CM支持8字節基地址,或使用CE才能修改了