页次: 1
@司徒
感谢指导,但是不知道怎么回事,编译后的bin文件,在读取ROM完毕后,就黑屏死机没反应了。
@littlehui
你贴出的那个使用drz80和cylone的fba-a320,可有源头?至于Q sound无声的问题,OopsWare有提到过:
让人郁闷的 Q-Sound
用 Reesy 的 DrZ80 替换 Doze 后,运行总不能得到预计的结果。细读 Doze 代码后才发现,使用 Q-Sound 芯片的游戏ROM里,Z80代码是加密的,以游戏dino为例,128KB 的 cd_q.rom 文件经过解密后( 算法见 burn/capcom/kabuki.cpp )得到一个256K的内存,Zet 把这段内存分成两部分,分别映射为 MemFetch 和 MemFetchData 。Doze在模拟执行 Z80 的 ROM 时,OpCode 和 ImmData 分别来自 MemFetch 和 MemFetchData 。看来要对 DrZ80 做个大手术才行......
@司徒
看样子要修改fba a320的源代码才能调出菜单了。大致看了一下,在https://github.com/dmitrysmagin/fba-a320/tree/master/src/sdl-dingux/sdl_input.cpp里有如下代码(203-221行):
if ((keypc & BUTTON_SL) && (keypc & BUTTON_SR)) {
if (keypc & BUTTON_Y) {
ChangeFrameskip();
keypc &= ~BUTTON_Y;
} else if (keypc & BUTTON_B && !bPauseOn) {
StatedSave(nSavestateSlot);
keypc &= ~BUTTON_B;
} else if (keypc & BUTTON_A && !bPauseOn) {
StatedLoad(nSavestateSlot);
keypc &= ~BUTTON_A;
bPauseOn = 0;
} else if (keypc & BUTTON_START) {
keypc = keypad = 0;
SndPause(1);
gui_Run();
SndPause(0);
} else if (keypc & BUTTON_SELECT) ServiceRequest = 1;
}
else if ((keypc & BUTTON_START) && (keypc & BUTTON_SELECT)) P1P2Start = 1;
这应该是控制快捷操作的按键组合,把贴出的代码的第一行&& (keypc & BUTTON_SR)删掉,应该就可以避免L+R=MENU的困境了。
又或者,干脆用retrofw的fba-a320编译,retrofw所用的fba-a320修改了菜单的快捷组合键,可以避免按键冲突之尴尬。
代码可参考如下:https://github.com/retrofw/fba-a320/blob/master/src/sdl-dingux/sdl_input.cpp
只是不知道这个模拟器如何编译?
在下并没有编译过此类项目的经验,不知道司徒能否教授一下编译方法?
页次: 1