trunk/src/mame/drivers/r2dx_v33.c
| r32187 | r32188 | |
| 33 | 33 | |
| 34 | 34 | optional_device<eeprom_serial_93cxx_device> m_eeprom; |
| 35 | 35 | |
| 36 | DECLARE_WRITE16_MEMBER(r2dx_angle_w); |
| 37 | DECLARE_WRITE16_MEMBER(r2dx_dx_w); |
| 38 | DECLARE_WRITE16_MEMBER(r2dx_dy_w); |
| 36 | 39 | |
| 40 | DECLARE_WRITE16_MEMBER(r2dx_unk1_w); |
| 41 | DECLARE_WRITE16_MEMBER(r2dx_unk2_w); |
| 42 | |
| 43 | DECLARE_READ16_MEMBER(rdx_angle_r); |
| 44 | DECLARE_READ16_MEMBER(rdx_dist_r); |
| 45 | DECLARE_READ16_MEMBER(r2dx_sin_r); |
| 46 | DECLARE_READ16_MEMBER(r2dx_cos_r); |
| 47 | |
| 37 | 48 | DECLARE_WRITE16_MEMBER(tile_bank_w); |
| 38 | 49 | DECLARE_WRITE16_MEMBER(rdx_bg_vram_w); |
| 39 | 50 | DECLARE_WRITE16_MEMBER(rdx_md_vram_w); |
| r32187 | r32188 | |
| 212 | 223 | |
| 213 | 224 | } |
| 214 | 225 | |
| 226 | //Olivier Galibert: ok, write angle at 428, get sin/cos results at 434/436 |
| 227 | //Olivier Galibert: 16-bits signed |
| 228 | //Olivier Galibert: write dx/dy at 424/426, get dist and angle at 432/430 |
| 215 | 229 | |
| 230 | WRITE16_MEMBER(r2dx_v33_state::r2dx_angle_w) |
| 231 | { |
| 232 | |
| 233 | } |
| 234 | |
| 235 | WRITE16_MEMBER(r2dx_v33_state::r2dx_dx_w) |
| 236 | { |
| 237 | |
| 238 | } |
| 239 | |
| 240 | WRITE16_MEMBER(r2dx_v33_state::r2dx_dy_w) |
| 241 | { |
| 242 | |
| 243 | } |
| 244 | |
| 245 | READ16_MEMBER(r2dx_v33_state::rdx_angle_r) |
| 246 | { |
| 247 | return 0x0000; |
| 248 | } |
| 249 | |
| 250 | READ16_MEMBER(r2dx_v33_state::rdx_dist_r) |
| 251 | { |
| 252 | return 0x0000; |
| 253 | } |
| 254 | |
| 255 | READ16_MEMBER(r2dx_v33_state::r2dx_sin_r) |
| 256 | { |
| 257 | return 0x0000; |
| 258 | } |
| 259 | |
| 260 | READ16_MEMBER(r2dx_v33_state::r2dx_cos_r) |
| 261 | { |
| 262 | return 0x0000; |
| 263 | } |
| 264 | |
| 265 | WRITE16_MEMBER(r2dx_v33_state::r2dx_unk1_w) |
| 266 | { |
| 267 | |
| 268 | } |
| 269 | |
| 270 | WRITE16_MEMBER(r2dx_v33_state::r2dx_unk2_w) |
| 271 | { |
| 272 | |
| 273 | } |
| 274 | |
| 275 | |
| 216 | 276 | static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state ) |
| 217 | 277 | AM_RANGE(0x00000, 0x003ff) AM_RAM // vectors copied here |
| 218 | 278 | |
| r32187 | r32188 | |
| 223 | 283 | AM_RANGE(0x00404, 0x00405) AM_WRITE(r2dx_rom_bank_w) |
| 224 | 284 | AM_RANGE(0x00406, 0x00407) AM_WRITE(tile_bank_w) |
| 225 | 285 | |
| 226 | | // AM_RANGE(0x00400, 0x00407) AM_WRITE(mcu_table_w) |
| 227 | | AM_RANGE(0x00420, 0x00429) AM_WRITE(mcu_table2_w) |
| 286 | AM_RANGE(0x00420, 0x00421) AM_WRITE(r2dx_unk1_w) // frequent |
| 287 | AM_RANGE(0x00422, 0x00423) AM_WRITE(r2dx_unk2_w) // frequent |
| 228 | 288 | |
| 229 | | /* results from cop? */ |
| 230 | | AM_RANGE(0x00430, 0x00431) AM_READ(rdx_v33_unknown_r) |
| 231 | | AM_RANGE(0x00432, 0x00433) AM_READ(rdx_v33_unknown_r) |
| 232 | | AM_RANGE(0x00434, 0x00435) AM_READ(rdx_v33_unknown_r) |
| 233 | | AM_RANGE(0x00436, 0x00437) AM_READ(rdx_v33_unknown_r) |
| 289 | AM_RANGE(0x00424, 0x00425) AM_WRITE(r2dx_dx_w) |
| 290 | AM_RANGE(0x00426, 0x00427) AM_WRITE(r2dx_dy_w) |
| 291 | AM_RANGE(0x00428, 0x00429) AM_WRITE(r2dx_angle_w) |
| 234 | 292 | |
| 293 | AM_RANGE(0x00430, 0x00431) AM_READ(rdx_angle_r) |
| 294 | AM_RANGE(0x00432, 0x00433) AM_READ(rdx_dist_r) |
| 295 | AM_RANGE(0x00434, 0x00435) AM_READ(r2dx_sin_r) |
| 296 | AM_RANGE(0x00436, 0x00437) AM_READ(r2dx_cos_r) |
| 297 | |
| 235 | 298 | AM_RANGE(0x00600, 0x0064f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| 236 | 299 | // AM_RANGE(0x00650, 0x0068f) AM_RAM //??? |
| 237 | 300 | |
| 238 | | // AM_RANGE(0x0068e, 0x0068f) AM_WRITENOP // synch for the MCU? |
| 239 | | // AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w) |
| 240 | | // AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2) |
| 301 | AM_RANGE(0x0068e, 0x0068f) AM_WRITENOP // maybe a watchdog? |
| 302 | AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w) // could be encryption key uploads just like raiden2.c ? |
| 303 | AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2) |
| 241 | 304 | // AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP |
| 242 | 305 | // AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP |
| 243 | | // AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w) |
| 244 | | // AM_RANGE(0x006be, 0x006bf) AM_WRITENOP // MCU program related |
| 306 | AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w) |
| 307 | // AM_RANGE(0x006be, 0x006bf) AM_WRITENOP |
| 245 | 308 | |
| 246 | 309 | // sprite protection not 100% verified as the same |
| 247 | 310 | AM_RANGE(0x006c0, 0x006c1) AM_READWRITE(sprite_prot_off_r, sprite_prot_off_w) |