📄 toaplan1.c
字号:
ret = ReadWord(&tp1vcu[0].SCROLL[offset&0x0E]); break; default: ret = 0x0000;#ifdef RAINE_DEBUG print_debug("tp1vcu[0] rw(%04x)\n", offset&0x0E);#endif break; } return ret;}static UINT8 tp1vcu_bg_rb(UINT32 offset){ UINT16 ret; ret = tp1vcu_bg_rw(offset); if((offset&1)==0) return (UINT8) ((ret>>8)&0xFF); else return (UINT8) ((ret>>0)&0xFF);}/******************************************************************************//* VBLANK/INTERRUPT THINGY *//******************************************************************************/static UINT32 want_int;static int x_ofs[4];static UINT8 tp_vblank_rb(UINT32 offset){ static UINT8 status; switch(offset & 0x0E){ case 0x00: status ^= 1; return status; break; default: return 0; break; }}static UINT16 tp_vblank_rw(UINT32 offset){ return (UINT16) (tp_vblank_rb(offset));}static void tp_vblank_wb(UINT32 offset, UINT8 data){ switch(offset & 0x0E){ case 0x02: want_int = data & 1; #ifdef RAINE_DEBUG print_debug("want_int: %d\n", want_int); #endif break; case 0x08: x_ofs[0] = (data&0xFF) - 0xd8; break; case 0x0A: x_ofs[1] = (data&0xFF) - 0x17; break; case 0x0C: x_ofs[2] = (data&0xFF) - 0x88; break; case 0x0E: x_ofs[3] = (data&0xFF) - 0x07; break; default: break; }}static void tp_vblank_ww(UINT32 offset, UINT16 data){ tp_vblank_wb(offset, (UINT8)(data&0xFF));}static int bg_x_ofs;static int bg_y_ofs;static void tp1vcu_ofsreg_ww(UINT32 offset, UINT16 data){ switch (offset & 6) { case 0: bg_x_ofs = data; break; case 2: bg_y_ofs = data; break; case 6: break; default: }}/******************************************************************************//* Z80 CUSTOM (not dumped) *//******************************************************************************/static UINT8 vimana_z80_rb(UINT32 offset){ UINT16 ret; offset |= 1; switch(offset&0xFF){ case 0x01: // sound comm? ret = 0xFF; break; case 0x03: // sound comm? ret = 0x00; break; case 0x05: // credits ret = 0x01; break; case 0x07: // dswa ret = get_dsw(0); break; case 0x09: // misc input ret = RAM[0x023003]; break; case 0x0B: // p1 input ret = RAM[0x023004]; break; case 0x0D: // p2 input ret = RAM[0x023005]; break; case 0x0F: // dswb ret = get_dsw(1); break; case 0x11: // dswc ret = get_dsw(2); break; default: ret = 0x00; #ifdef RAINE_DEBUG print_debug("vimana_z80_rb(%04x)\n", offset&0xFF); #endif break; } return ret;}static UINT16 vimana_z80_rw(UINT32 offset){ return (UINT16) (vimana_z80_rb(offset|1));}static UINT8 fshark_z80_rb(UINT32 offset){ UINT16 ret; offset |= 1; switch(offset&0xFF){ case 0x01: // p1 controls ret = RAM[0x023004]; break; case 0x03: // p2 input ret = RAM[0x023005]; break; case 0x05: // dsw a ret = get_dsw(0); break; case 0x07: // dswb ret = get_dsw(1); break; case 0x09: // misc input ret = RAM[0x023003]; break; case 0x0B: // dsw c ret = get_dsw(2) | 0x80; break; default: ret = 0x00; #ifdef RAINE_DEBUG print_debug("fshark_z80_rb(%04x)\n", offset&0xFF); #endif break; } return ret;}static UINT16 fshark_z80_rw(UINT32 offset){ return (UINT16) (fshark_z80_rb(offset|1));}/******************************************************************************//* Z80 NORMAL *//******************************************************************************/static UINT8 tp1_z80_rb(UINT32 offset){ offset &= 0xFFF; offset >>= 1; return Z80ROM[0x8000 + offset];}static UINT16 tp1_z80_rw(UINT32 offset){ offset &= 0xFFF; offset >>= 1; return (UINT16) (Z80ROM[0x8000 + offset]);}static void tp1_z80_wb(UINT32 offset, UINT8 data){ offset &= 0xFFF; offset >>= 1; Z80ROM[0x8000 + offset] = data;}static void tp1_z80_ww(UINT32 offset, UINT16 data){ offset &= 0xFFF; offset >>= 1; Z80ROM[0x8000 + offset] = (UINT8) (data&0xFF);}static UINT8 zero_wing_port_rb(UINT16 offset){ switch(offset&0xFF){ case 0x00: return RAM[0x023004]; break; case 0x08: return RAM[0x023005]; break; case 0x20: return get_dsw(0); break; case 0x28: return get_dsw(1); break; case 0x80: return RAM[0x023003]; break; case 0x88: return get_dsw(2); break; case 0xA8: return YM3812ReadZ80(0); break; default: return 0x00; break; }}static void zero_wing_port_wb(UINT16 offset, UINT8 data){ switch(offset&0xFF){ case 0xA8: YM3812WriteZ80(0,data); break; case 0xA9: YM3812WriteZ80(1,data); break; default: break; }}static UINT8 demons_world_port_rb(UINT16 offset){ switch(offset&0xFF){ case 0x00: return YM3812ReadZ80(0); break; case 0x20: return get_dsw(2); break; case 0x60: return RAM[0x023003]; break; case 0x80: return RAM[0x023004]; break; case 0xA0: return get_dsw(1); break; case 0xC0: return RAM[0x023005]; break; case 0xE0: return get_dsw(0); break; default: return 0xFF; break; }}static void demons_world_port_wb(UINT16 offset, UINT8 data){ switch(offset&0xFF){ case 0x00: YM3812WriteZ80(0,data); break; case 0x01: YM3812WriteZ80(1,data); break; default: break; }}static UINT8 truxton_port_rb(UINT16 offset){ switch(offset&0xFF){ case 0x00: return RAM[0x023004]; break; case 0x10: return RAM[0x023005]; break; case 0x20: return RAM[0x023003]; break; case 0x40: return get_dsw(0); break; case 0x50: return get_dsw(1); break; case 0x60: return YM3812ReadZ80(0); break; case 0x70: return get_dsw(2); break; default: return 0xFF; break; }}static void truxton_port_wb(UINT16 offset, UINT8 data){ switch(offset&0xFF){ case 0x60: YM3812WriteZ80(0,data); break; case 0x61: YM3812WriteZ80(1,data); break; default: break; }}static UINT8 outzone_port_rb(UINT16 offset){ switch(offset&0xFF){ case 0x00: return YM3812ReadZ80(0); break; case 0x08: return get_dsw(0); break; case 0x0C: return get_dsw(1); break; case 0x10: return RAM[0x023003]; break; case 0x14: return RAM[0x023004]; break; case 0x18: return RAM[0x023005]; break; case 0x1C: return get_dsw(2); break; default: return 0xFF; break; }}static void outzone_port_wb(UINT16 offset, UINT8 data){ switch(offset&0xFF){ case 0x00: YM3812WriteZ80(0,data); break; case 0x01: YM3812WriteZ80(1,data); break; default: break; }}static UINT8 hell_fire_port_rb(UINT16 offset){ switch(offset&0xFF){ case 0x00: return get_dsw(0); break; case 0x10: return get_dsw(1); break; case 0x20: return get_dsw(2); break; case 0x40:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -