JUTWarningConsole_f calls vprintf, but in a way we currently don't
handle (which messes up the printed message). However, it is a standard
debug print function, so we can directly hook it instead of waiting for
the vprintf call.
This is necessary to fix debug output in a few games now that vprintf
is properly detected in more games.
The signature DB is very helpful for generating a symbol map for games
which don't ship with debugging symbols, since it includes signatures
for common SDK functions.
However, it isn't very complete and only contained signatures for GC
games -- the current database isn't very helpful for Wii games, which
still have a huge number of unknown functions even after using this DB.
Yet Wii games typically share a lot of code (since they all use the
SDK), and not having symbols makes it a lot harder to look into what
a game is doing… So this commit adds common Wii SDK function signatures
to the database, in order to make generated symbol maps a lot more
useful for Wii games.
The debug info comes from the debugging map that was left in the Wii
version of The Legend of Zelda: Twilight Princess. To avoid cluttering
the DB with game-specific debug info (even though it already contains
some game-specific symbols), some basic filtering was done on the
shipped symbol map:
egrep '(section layout|\.a|m_Do|lib|Lib| OS)' tp-framework.map | grep -v Z2 > common-wii-sdk.map
Then this map was loaded in Twilight Princess, and "append to existing
signature file" was used to append the new hashes to totaldb.dsy.
This also moves the pipeline and descriptor set layouts used for texture
conversion (texel buffers) to ObjectCache, and shares a binding location
with the SSBO set.
Makes the information panel self-contained.
This was done first, as opposed to isolating the GameConfig panel--the
first panel in the group--as this panel had code all over the place in
ISOProperties, so I figured it'd be best to fix this one up first.
The SDL backend crashes when you close a joystick after SDL_Quit has
been called. Some backends don't need to be shutdown and
re-initialized everytime, we can just ask to enumerate devices again.
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
Should we ever introduce anything else that has to be done when a command
buffer is executed (e.g. invalidating constants from previous commit), we
don't have to update all the callers.