68K Memory Map:
维基百科关于内存映射的详细资料:
参考网址:https://wiki.neogeodev.org/index.php?title=68k_memory_map
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各个文件内容:
从上图的内容对照FBA中源码分析得出,P1rom文件是代码部分,P2rom是数据部分。
通过MAME命令可以从内存中DUMP出真正的代码:
为什么不直接用P1,因为大端小端的问题它的字节是反的,可用通过MAME的内存查看器,对比ROM的十六进制可看出来。
I/O Memory mapped registers 和 GPU:
下面三个寄存器是操作显存的:
参考网址:https://wiki.neogeodev.org/index.php?title=Memory_mapped_registers
在MAME的DEBUG中如何开启显存窗口,如下图: