Pre: cyclesLeftToUpdate = [0...g_videoScanner6502Cycles] . 2-14: After one emulated 6502/65C02 opcode (optionally with IRQ) . ~1000: After 1ms of Z80 emulation . 17030: From NTSC_VideoRedrawWholeScreen()
| 2474 | // . ~1000: After 1ms of Z80 emulation |
| 2475 | // . 17030: From NTSC_VideoRedrawWholeScreen() |
| 2476 | static void VideoUpdateCycles( int cyclesLeftToUpdate ) |
| 2477 | { |
| 2478 | const int cyclesToEndOfLine = VIDEO_SCANNER_MAX_HORZ - g_nVideoClockHorz; |
| 2479 | |
| 2480 | if (g_nVideoClockVert < VIDEO_SCANNER_Y_MIXED) |
| 2481 | { |
| 2482 | const int cyclesToLine160 = VIDEO_SCANNER_MAX_HORZ * (VIDEO_SCANNER_Y_MIXED - g_nVideoClockVert - 1) + cyclesToEndOfLine; |
| 2483 | int cycles = cyclesLeftToUpdate < cyclesToLine160 ? cyclesLeftToUpdate : cyclesToLine160; |
| 2484 | g_pFuncUpdateGraphicsScreen(cycles); // lines [currV...159] |
| 2485 | cyclesLeftToUpdate -= cycles; |
| 2486 | |
| 2487 | const int cyclesFromLine160ToLine261 = g_videoScanner6502Cycles - (VIDEO_SCANNER_MAX_HORZ * VIDEO_SCANNER_Y_MIXED); |
| 2488 | cycles = cyclesLeftToUpdate < cyclesFromLine160ToLine261 ? cyclesLeftToUpdate : cyclesFromLine160ToLine261; |
| 2489 | g_pFuncUpdateGraphicsScreen(cycles); // lines [160..191..261] |
| 2490 | cyclesLeftToUpdate -= cycles; |
| 2491 | |
| 2492 | // Any remaining cyclesLeftToUpdate: lines [0...currV) |
| 2493 | } |
| 2494 | else |
| 2495 | { |
| 2496 | const int cyclesToLine262 = VIDEO_SCANNER_MAX_HORZ * (g_videoScannerMaxVert - g_nVideoClockVert - 1) + cyclesToEndOfLine; |
| 2497 | int cycles = cyclesLeftToUpdate < cyclesToLine262 ? cyclesLeftToUpdate : cyclesToLine262; |
| 2498 | g_pFuncUpdateGraphicsScreen(cycles); // lines [currV...261] |
| 2499 | cyclesLeftToUpdate -= cycles; |
| 2500 | |
| 2501 | const int cyclesFromLine0ToLine159 = VIDEO_SCANNER_MAX_HORZ * VIDEO_SCANNER_Y_MIXED; |
| 2502 | cycles = cyclesLeftToUpdate < cyclesFromLine0ToLine159 ? cyclesLeftToUpdate : cyclesFromLine0ToLine159; |
| 2503 | g_pFuncUpdateGraphicsScreen(cycles); // lines [0..159] |
| 2504 | cyclesLeftToUpdate -= cycles; |
| 2505 | |
| 2506 | // Any remaining cyclesLeftToUpdate: lines [160...currV) |
| 2507 | } |
| 2508 | |
| 2509 | if (cyclesLeftToUpdate) |
| 2510 | g_pFuncUpdateGraphicsScreen(cyclesLeftToUpdate); |
| 2511 | } |
| 2512 | |
| 2513 | //=========================================================================== |
| 2514 | void NTSC_VideoUpdateCycles( UINT cycles6502 ) |
no outgoing calls
no test coverage detected