Replacing beaengine in mmio handler with custom decoder.

Fixes #358.
This commit is contained in:
Ben Vanik
2015-08-04 08:25:42 -07:00
parent 90c248146e
commit ec326119cf
17 changed files with 221 additions and 146 deletions

View File

@@ -315,7 +315,7 @@ void GL4GraphicsSystem::Swap(xe::ui::UIEvent& e) {
GL_LINEAR);
}
uint64_t GL4GraphicsSystem::ReadRegister(uint32_t addr) {
uint32_t GL4GraphicsSystem::ReadRegister(uint32_t addr) {
uint32_t r = addr & 0xFFFF;
switch (r) {
@@ -335,12 +335,12 @@ uint64_t GL4GraphicsSystem::ReadRegister(uint32_t addr) {
return register_file_.values[r].u32;
}
void GL4GraphicsSystem::WriteRegister(uint32_t addr, uint64_t value) {
void GL4GraphicsSystem::WriteRegister(uint32_t addr, uint32_t value) {
uint32_t r = addr & 0xFFFF;
switch (r) {
case 0x0714: // CP_RB_WPTR
command_processor_->UpdateWritePointer(static_cast<uint32_t>(value));
command_processor_->UpdateWritePointer(value);
break;
case 0x6110: // ? swap related?
XELOGW("Unimplemented GPU register %.4X write: %.8X", r, value);
@@ -351,7 +351,7 @@ void GL4GraphicsSystem::WriteRegister(uint32_t addr, uint64_t value) {
}
assert_true(r < RegisterFile::kRegisterCount);
register_file_.values[r].u32 = static_cast<uint32_t>(value);
register_file_.values[r].u32 = value;
}
} // namespace gl4

View File

@@ -52,15 +52,15 @@ class GL4GraphicsSystem : public GraphicsSystem {
private:
void MarkVblank();
void Swap(xe::ui::UIEvent& e);
uint64_t ReadRegister(uint32_t addr);
void WriteRegister(uint32_t addr, uint64_t value);
uint32_t ReadRegister(uint32_t addr);
void WriteRegister(uint32_t addr, uint32_t value);
static uint64_t MMIOReadRegisterThunk(void* ppc_context,
static uint32_t MMIOReadRegisterThunk(void* ppc_context,
GL4GraphicsSystem* gs, uint32_t addr) {
return gs->ReadRegister(addr);
}
static void MMIOWriteRegisterThunk(void* ppc_context, GL4GraphicsSystem* gs,
uint32_t addr, uint64_t value) {
uint32_t addr, uint32_t value) {
gs->WriteRegister(addr, value);
}

View File

@@ -31,7 +31,6 @@ project("xenia-gpu-gl4-trace-viewer")
kind("WindowedApp")
language("C++")
links({
"beaengine",
"elemental-forms",
"gflags",
"glew",