trunk/src/mame/drivers/saturn.c
| r21106 | r21107 | |
| 1381 | 1381 | //if((m_smpc.rtc_data[0] & 0xf0) >= 0xa0) { m_smpc.rtc_data[0] = 0; } //roll over |
| 1382 | 1382 | } |
| 1383 | 1383 | |
| 1384 | /* Official documentation says that the "RESET/TAS opcodes aren't supported", but Out Run definitely contradicts with it. |
| 1385 | Since that m68k can't reset itself via the RESET opcode I suppose that the SMPC actually do it by reading an i/o |
| 1386 | connected to this opcode. */ |
| 1387 | static void m68k_reset_callback(device_t *device) |
| 1388 | { |
| 1389 | saturn_state *state = device->machine().driver_data<saturn_state>(); |
| 1390 | device->machine().scheduler().timer_set(attotime::from_usec(100), timer_expired_delegate(FUNC(saturn_state::smpc_audio_reset_line_pulse), state)); |
| 1391 | printf("m68k RESET opcode triggered\n"); |
| 1392 | } |
| 1393 | |
| 1384 | 1394 | MACHINE_START_MEMBER(saturn_state,stv) |
| 1385 | 1395 | { |
| 1386 | 1396 | system_time systime; |
| r21106 | r21107 | |
| 1421 | 1431 | m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second); |
| 1422 | 1432 | |
| 1423 | 1433 | m_stv_rtc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(saturn_state::stv_rtc_increment),this)); |
| 1434 | |
| 1435 | m68k_set_reset_callback(m_audiocpu, m68k_reset_callback); |
| 1424 | 1436 | } |
| 1425 | 1437 | |
| 1426 | 1438 | |
| r21106 | r21107 | |
| 1466 | 1478 | m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second); |
| 1467 | 1479 | |
| 1468 | 1480 | m_stv_rtc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(saturn_state::stv_rtc_increment),this)); |
| 1481 | |
| 1482 | m68k_set_reset_callback(m_audiocpu, m68k_reset_callback); |
| 1469 | 1483 | } |
| 1470 | 1484 | |
| 1471 | 1485 | |
trunk/src/emu/video/stvvdp1.c
| r21106 | r21107 | |
| 294 | 294 | if ( VDP1_LOG ) logerror( "VDP1: Erase lower-right coord set: %08X\n", data ); |
| 295 | 295 | break; |
| 296 | 296 | case 0x0c/2: |
| 297 | | if ( VDP1_LOG ) logerror( "VDP1: Draw forced termination register write: %08X\n", data ); |
| 297 | case 0x0e/2: // After Burner 2 / Out Run / Fantasy Zone writes here with a dword ... |
| 298 | if ( VDP1_LOG ) logerror( "VDP1: Draw forced termination register write: %08X %08X\n", offset*2, data ); |
| 298 | 299 | break; |
| 299 | 300 | default: |
| 300 | 301 | printf("Warning: write to unknown VDP1 reg %08x %08x\n",offset*2,data); |