Adding vblank interrupt.

This commit is contained in:
Ben Vanik
2013-09-25 00:46:09 -07:00
parent 998467ce05
commit 91f62918f6
8 changed files with 116 additions and 7 deletions

View File

@@ -130,7 +130,7 @@ void xeVdInitializeEngines(uint32_t unk0, uint32_t callback, uint32_t unk1,
}
// r3 = 0x4F810000
// r4 = function ptr (ready callback?)
// r4 = function ptr (cleanup callback?)
// r5 = 0
// r6/r7 = some binary data in .data
@@ -166,7 +166,7 @@ void xeVdSetGraphicsInterruptCallback(uint32_t callback, uint32_t user_data) {
// r3 = bool 0/1 - 0 is normal interrupt, 1 is some acquire/lock mumble
// r4 = user_data (r4 of VdSetGraphicsInterruptCallback)
//gs->SetupInterruptCallback(callback, user_data);
gs->SetInterruptCallback(callback, user_data);
}
@@ -230,6 +230,8 @@ void xeVdEnableRingBufferRPtrWriteBack(uint32_t ptr, uint32_t block_size) {
printf("%.8X", ptr);
// 0x0110343c
// r3 = 0x2B10(d3d?) + 0x3C
//((p + 0x3C) & 0x1FFFFFFF) + ((((p + 0x3C) >> 20) + 0x200) & 0x1000)
//also 0x3C offset into WriteBacks is PrimaryRingBufferReadIndex
//(1:17:38 AM) Rick: .text:8201B348 lwz r11, 0x2B10(r31)