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

68k memory map

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

68k memory map
image.png
  • 0x000000 - 0x0FFFFF 代码ROM
  • 0x100000 - 0x10FFFF WORKRAM
  • 0x110000 - 0x1FFFFF WORKRAM mirror 镜像
    寻址的时候需要镜像,地址总线最大是0xFFFF 所以100000 和 1F0000是没有区别的
  • 0x200000 - 0x2FFFFF 射击bank switch
  • 0x300000 - 0x3FFFFF I/O Memory mapped registers 和 GPU
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值