Age | Commit message (Collapse) | Author |
|
|
|
|
|
- Placed all of the associated debug code in a separate function
- Unified debug output
|
|
|
|
Fixes several issues with the menu in KQ7. Thanks to vakons for his patch.
Fixes bug #3231867 - "KQ7 scrolling bug"
|
|
|
|
This was due to a missing destructor in the HunkTable.
Thanks to wjp for this patch.
|
|
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
|
|
|
|
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.
The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom
Also fixed some engines which were leaking MidiDriver instances.
|
|
This allows us make _windowList private again
|
|
This can be used to see a list of the currently open windows. Also, added
a sanity check for the "al" command and performed some minor cleanup
|
|
|
|
This shows the current animation list, along with object properties,
positions and the scripts they belong to
|
|
This version it contains a broken resource.002 file inside disk 3, which
contains a large chunk of zeros and several broken resources (e.g. pic
250 and views 250 and 251).
|
|
Tip of the day: git grep -w PI
|
|
|
|
|
|
|
|
|
|
|
|
If an object defines more variables than its base class, some method
selectors may be hidden. This code tries to enumerate the affected
selectors. It may be useful for mass-scanning objects using
'find_callk Dummy'.
It's disabled by default currently since it does things to partially
uninitialized objects that I can't guarantee are 100% safe at this
point.
|
|
Create a custom segment manager within find_callk, so that the game's
segment manager won't be affected by loading and unloading scripts in there
|
|
|
|
|
|
|
|
Also, fix the kernel signature for kFormat to require two parameters
|
|
|
|
Thanks to waltervn for his work and help on this
|
|
|
|
|
|
|
|
This makes the workaround for the hang in the Colonel's Bequest
shower scene (bug #3122075) unnecessary.
|
|
|
|
|
|
This should ensure disasm will disassemble an entire function, and
not stop at an intermediate ret opcode.
|
|
This was caused by a buggy script, most probably the result of an
incorrect copy/paste while processing the original script. Fixed with a
script patch.
|
|
Fixed a bug (the "bwt" and "bc" options were inversed) and added the
ability to skip a defined number of ret calls, useful when a function
continues after a ret call
|
|
This ensures that these selectors will be detected regardless of the game
ID, when they're missing
|
|
|
|
The cause for this bug turns out to be a corrupt object that as
a side effect accidentally bypasses its own corruption. See the
added comments for details.
Also add a warning that points out similarly corrupted objects.
|
|
This is a heap patch for an odd object used in that scene, which will
suffice for now (until we find why this works in SSCI). Thanks to wjp
for his help and work on this
|
|
A regression from 463e475bd65
|
|
A regression from d2ad7898d93
|
|
|
|
|
|
Trying to delete a script marked as deleted should do nothing. Hoyle 3
tried to uninstantiate scripts more than once, and we incorrectly
decreased the reference count of associated scripts more than once,
thereby killing them. This properly fixes bug #3038837 (removed the
hack for it). Many many thanks to wjp for his help on this :)
|
|
Renamed some variables, functions and comments related to the
undithering code, to make them a bit easier to understand
|
|
|
|
Shivers uses a custom save/load system, so we can't replace its dialogs
|