Files
psxrecomp/runtime/include/timers.h
T
Matthew Stanley a1165d51b7 Phase 2 complete: BIOS boots to GPUSTAT read
Full recompilation pipeline working:
- Recompiler emits 799 functions (46k instructions) from SCPH1001.BIN
- Tail-call trampoline in dispatch loop prevents stack overflow
- Timer registers (3 counters, mode, target) implemented
- Interrupt check at labels + dispatch boundaries with vblank scheduling
- SYSCALL 1/2/3 (Enter/ExitCriticalSection, ReturnFromException) handled
- EPC correctly set from SYSCALL instruction address

BIOS boot reaches first GPU hardware access:
  UNIMPLEMENTED MMIO READ32 (GPUSTAT) @ 0x1F801814

Phase 3 (Sony logo) starts here: GPU, DMA, display pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 00:03:46 -07:00

28 lines
586 B
C

#ifndef PSXRECOMP_V4_TIMERS_H
#define PSXRECOMP_V4_TIMERS_H
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define TIMER_BASE 0x1F801100
void timers_init(void);
/* MMIO read/write for 0x1F801100..0x1F80112F.
* Accepts 16-bit or 32-bit access (caller zero-extends). */
uint32_t timers_read(uint32_t addr);
void timers_write(uint32_t addr, uint32_t value);
/* Advance all timers by the given number of CPU cycles.
* Called once per frame (cycles ~= 33868 for NTSC). */
void timers_tick(int cycles);
#ifdef __cplusplus
}
#endif
#endif /* PSXRECOMP_V4_TIMERS_H */