A lot of fixes (game is 100%'able!) (#1118)

* a crapton of fixes

* Update cavecrystal-light.gc

* damn you

* fix bunnies

* change codegen for int -> float cast (just add sign extension now)

* fix test

* this file is tagged anyway

* fix some stack types

* remove bad camera debug funcs

* add more heap bars and entity pick menu

* finish entity menu and make `music-flava` enum

* fix some `process-taskable` fields

* citadel sage crash fix

* fix citadel drop plats

* fix tests

* fix some casts

* update refs

* finish `village3-obs` and `snow-ball`

* Update README.md

* fix sidekick too

* fix issue?

* more entity inspect hardcoded checks

* more

* use `*display-actor-anim*` for something!

* CRAP

* also clear actor anim when deselecting entity

* *display-actor-anim* already renders this!

* do not display `path` tag info

* entity debug inspect tool

* one more

* make debug string even larger

* missing res tag types

* more polish and more known tags

* last few
This commit is contained in:
ManDude
2022-02-01 01:44:54 +00:00
committed by GitHub
parent 8f4dd59b7a
commit bd1718dc9c
165 changed files with 13528 additions and 4357 deletions
+9 -4
View File
@@ -300,7 +300,7 @@ std::vector<BacktraceFrame> Debugger::get_backtrace(u64 rip, u64 rsp) {
found = true;
}
} else*/
if (fails > 50) {
if (fails > 70) {
fmt::print(
"Backtrace was too long. Exception might have happened outside GOAL code, or the "
"stack frame is too long.\n");
@@ -578,14 +578,18 @@ void Debugger::read_symbol_table() {
bytes_read += 128;
// just in case
str_buff[127] = '\0';
assert(strlen(str_buff) < 50);
std::string str(str_buff);
// GOAL sym - s7
auto sym_offset = s32(offset + st_base + BASIC_OFFSET) - s32(m_debug_context.s7);
assert(sym_offset >= INT16_MIN);
assert(sym_offset <= INT16_MAX);
std::string str(str_buff);
if (str.length() >= 50) {
fmt::print("Invalid symbol #x{:x}!\n", sym_offset);
continue;
}
// update maps
if (m_symbol_name_to_offset_map.find(str) != m_symbol_name_to_offset_map.end()) {
if (str == "asize-of-basic-func") {
@@ -596,7 +600,8 @@ void Debugger::read_symbol_table() {
str += "-hack-copy";
} else {
fmt::print("Symbol {} (#x{:x}) appears multiple times!\n", str, sym_offset);
assert(false);
continue;
// assert(false);
}
}