[graphics] generic merc (#1192)

* begin generic merc

* more generic stuff

* generic dma generation not crashing, at least until high-speed-reject

* c

* unpacker for generic

* starting to work

* small fixes

* more fixes

* more progress

* cleanup

* fix tests

* no custom imgui assert on windows
This commit is contained in:
water111
2022-02-24 22:33:10 -05:00
committed by GitHub
parent 71f08fbd8c
commit 9c00b0c135
58 changed files with 11482 additions and 990 deletions
+15
View File
@@ -73,15 +73,29 @@ TEST(VuDisasm, OceanVu0) {
TEST(VuDisasm, GenericVu0) {
auto data = get_test_data("generic-vu0");
VuDisassembler disasm(VuDisassembler::VuKind::VU0);
// disasm.add_label_with_name(48, "JUMP_48");
auto prog = disasm.disassemble(data.data(), data.size() * 4, false);
EXPECT_EQ(disasm.to_string(prog), get_expected("generic-vu0"));
// fmt::print("{}\n", disasm.to_string_with_cpp(prog, true));
}
TEST(VuDisasm, MercnericVu0) {
auto data = get_test_data("mercneric-vu0");
VuDisassembler disasm(VuDisassembler::VuKind::VU0);
// disasm.add_label_with_name(314 - 280, "JUMP_314");
// disasm.add_label_with_name(326 - 280, "JUMP_326");
// disasm.add_label_with_name(353 - 280, "JUMP_353");
// disasm.add_label_with_name(386 - 280, "JUMP_386");
// disasm.add_label_with_name(427 - 280, "JUMP_427");
// disasm.add_label_with_name(438 - 280, "JUMP_438");
// disasm.add_label_with_name(454 - 280, "JUMP_454");
auto prog = disasm.disassemble(data.data(), data.size() * 4, false);
EXPECT_EQ(disasm.to_string(prog), get_expected("mercneric-vu0"));
// disasm.add_label_with_name(0, "vcallms_280");
// disasm.add_label_with_name(303 - 280, "vcallms_303");
// fmt::print("{}\n", disasm.to_string_with_cpp(prog, true));
}
TEST(VuDisasm, OceanTexture) {
@@ -138,6 +152,7 @@ TEST(VuDisasm, Generic) {
VuDisassembler disasm(VuDisassembler::VuKind::VU1);
auto prog = disasm.disassemble(data.data(), data.size() * 4, false);
EXPECT_EQ(disasm.to_string(prog), get_expected("generic"));
fmt::print("{}\n", disasm.to_string_with_cpp(prog, false));
}
TEST(VuDisasm, TieNear) {