nv2a: Simulate PCRTC_RASTER register

This commit is contained in:
Matt Borgerson 2020-10-25 18:27:56 -07:00 committed by mborgerson
parent 23096561a3
commit 0433c5e6bc
4 changed files with 7 additions and 0 deletions

View File

@ -319,6 +319,8 @@ static void nv2a_vga_gfx_update(void *opaque)
NV2AState *d = container_of(vga, NV2AState, vga); NV2AState *d = container_of(vga, NV2AState, vga);
d->pcrtc.pending_interrupts |= NV_PCRTC_INTR_0_VBLANK; d->pcrtc.pending_interrupts |= NV_PCRTC_INTR_0_VBLANK;
d->pcrtc.raster = 0;
nv2a_update_irq(d); nv2a_update_irq(d);
} }

View File

@ -398,6 +398,7 @@ typedef struct NV2AState {
uint32_t pending_interrupts; uint32_t pending_interrupts;
uint32_t enabled_interrupts; uint32_t enabled_interrupts;
hwaddr start; hwaddr start;
uint32_t raster;
} pcrtc; } pcrtc;
struct { struct {

View File

@ -603,6 +603,7 @@
# define NV_PCRTC_INTR_EN_0_VBLANK (1 << 0) # define NV_PCRTC_INTR_EN_0_VBLANK (1 << 0)
#define NV_PCRTC_START 0x00000800 #define NV_PCRTC_START 0x00000800
#define NV_PCRTC_CONFIG 0x00000804 #define NV_PCRTC_CONFIG 0x00000804
#define NV_PCRTC_RASTER 0x00000808
#define NV_PVIDEO_INTR 0x00000100 #define NV_PVIDEO_INTR 0x00000100

View File

@ -36,6 +36,9 @@ uint64_t pcrtc_read(void *opaque, hwaddr addr, unsigned int size)
case NV_PCRTC_START: case NV_PCRTC_START:
r = d->pcrtc.start; r = d->pcrtc.start;
break; break;
case NV_PCRTC_RASTER:
r = d->pcrtc.raster++;
break;
default: default:
break; break;
} }