kof97 逆向分析_内存关系映射

2020-03-11  本文已影响0人  LiuJP

68k memory map

https://wiki.neogeodev.org/index.php?title=68k_memory_map
维基百科关于内存映射的详细资料

68k memory map image.png

ROM各个文件内容

static struct BurnRomInfo kof97RomDesc[] = {
    { "232-p1.p1",    0x100000, 0x7db81ad9, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
    { "232-p2.sp2",   0x400000, 0x158b23f6, 1 | BRF_ESS | BRF_PRG }, //  1 

    { "232-s1.s1",    0x020000, 0x8514ecf5, 2 | BRF_GRA },           //  2 Text layer tiles

    { "232-c1.c1",    0x800000, 0x5f8bf0a1, 3 | BRF_GRA },           //  3 Sprite data
    { "232-c2.c2",    0x800000, 0xe4d45c81, 3 | BRF_GRA },           //  4 
    { "232-c3.c3",    0x800000, 0x581d6618, 3 | BRF_GRA },           //  5 
    { "232-c4.c4",    0x800000, 0x49bb1e68, 3 | BRF_GRA },           //  6 
    { "232-c5.c5",    0x400000, 0x34fc4e51, 3 | BRF_GRA },           //  7 
    { "232-c6.c6",    0x400000, 0x4ff4d47b, 3 | BRF_GRA },           //  8 

    { "232-m1.m1",    0x020000, 0x45348747, 4 | BRF_ESS | BRF_PRG }, //  9 Z80 code

    { "232-v1.v1",    0x400000, 0x22a2b5b5, 5 | BRF_SND },           // 10 Sound data
    { "232-v2.v2",    0x400000, 0x2304e744, 5 | BRF_SND },           // 11 
    { "232-v3.v3",    0x400000, 0x759eb954, 5 | BRF_SND },           // 12 
};

从上节的内容对照fba 中源码分析得出,p1rom文件是代码部分,p2rom是数据部分;
通过mame命令可以从内存中dump出真正的代码,

save test97.bin, 0,100000

为什么不直接用p1,因为大端小端的问题它的字节是反的,可用通过mame的内存查看器,对比rom的十六进制可看出来。

I/O Memory mapped registers 和 GPU

这三个寄存器是操作显存的
https://wiki.neogeodev.org/index.php?title=Memory_mapped_registers

image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读