Assigned several unimplemented/unused kernel functions as stubs, so that we know when they're used and how they're called

svn-id: r42170
This commit is contained in:
Filippos Karapetis 2009-07-06 11:19:19 +00:00
parent bceacbd922
commit 87988c69ee
3 changed files with 20 additions and 13 deletions

View file

@ -309,7 +309,7 @@ SciKernelFunction kfunct_mappers[] = {
/*6f*/ DEFUN("6f", kTimesCos, "ii"), /*6f*/ DEFUN("6f", kTimesCos, "ii"),
/*70*/ DEFUN("Graph", kGraph, ".*"), /*70*/ DEFUN("Graph", kGraph, ".*"),
/*71*/ DEFUN("Joystick", kJoystick, ".*"), /*71*/ DEFUN("Joystick", kJoystick, ".*"),
/*72*/ NOFUN("unknown72"), /*72*/ NOFUN("unknown72"), // ShiftScreen, perhaps?
/*73*/ NOFUN("unknown73"), /*73*/ NOFUN("unknown73"),
// Experimental functions // Experimental functions
@ -322,7 +322,6 @@ SciKernelFunction kfunct_mappers[] = {
/*(?)*/ DEFUN("IsItSkip", kIsItSkip, "iiiii"), /*(?)*/ DEFUN("IsItSkip", kIsItSkip, "iiiii"),
// Non-experimental Functions without a fixed ID // Non-experimental Functions without a fixed ID
DEFUN("CosMult", kTimesCos, "ii"), DEFUN("CosMult", kTimesCos, "ii"),
DEFUN("SinMult", kTimesSin, "ii"), DEFUN("SinMult", kTimesSin, "ii"),
/*(?)*/ DEFUN("CosDiv", kCosDiv, "ii"), /*(?)*/ DEFUN("CosDiv", kCosDiv, "ii"),
@ -341,6 +340,21 @@ SciKernelFunction kfunct_mappers[] = {
// Special and NOP stuff // Special and NOP stuff
{NULL, k_Unknown, NULL}, {NULL, k_Unknown, NULL},
// Stub functions
DEFUN("ShiftScreen", kStub, ".*"),
DEFUN("MemorySegment", kStub, ".*"),
DEFUN("ListOps", kStub, ".*"),
DEFUN("ATan", kStub, ".*"),
DEFUN("StrSplit", kStub, ".*"),
DEFUN("MergePoly", kStub, ".*"),
DEFUN("AssertPalette", kStub, ".*"),
DEFUN("TextColors", kStub, ".*"),
DEFUN("TextFonts", kStub, ".*"),
DEFUN("Record", kStub, ".*"),
DEFUN("PlayBack", kStub, ".*"),
DEFUN("DbugStr", kStub, ".*"),
DEFUN("Platform", kStub, ".*"), // SCI1
{NULL, NULL, NULL} // Terminator {NULL, NULL, NULL} // Terminator
}; };
@ -779,11 +793,6 @@ void Kernel::setDefaultKernelNames() {
offset = 4; offset = 4;
} }
} }
if (_resmgr->_sciVersion == SCI_VERSION_1_1) {
// KQ6CD calls unimplemented function 0x26
_kernelNames[0x26] = "Dummy";
}
} }
#ifdef ENABLE_SCI32 #ifdef ENABLE_SCI32

View file

@ -509,12 +509,10 @@ reg_t kSetVideoMode(EngineState *s, int funct_nr, int argc, reg_t *argv);
reg_t k_Unknown(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t k_Unknown(EngineState *s, int funct_nr, int argc, reg_t *argv);
// The Unknown/Unnamed kernel function // The Unknown/Unnamed kernel function
reg_t kstub(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kStub(EngineState *s, int funct_nr, int argc, reg_t *argv);
// for unimplemented kernel functions // for unimplemented kernel functions
reg_t kNOP(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kNOP(EngineState *s, int funct_nr, int argc, reg_t *argv);
// for kernel functions that don't do anything // for kernel functions that don't do anything
reg_t kFsciEmu(EngineState *s, int funct_nr, int argc, reg_t *argv);
// Emulating "old" kernel functions on the heap
} // End of namespace Sci } // End of namespace Sci

View file

@ -237,9 +237,9 @@ reg_t kMemory(EngineState *s, int funct_nr, int argc, reg_t *argv) {
return s->r_acc; return s->r_acc;
} }
reg_t kstub(EngineState *s, int funct_nr, int argc, reg_t *argv) { reg_t kStub(EngineState *s, int funct_nr, int argc, reg_t *argv) {
char tmpbuf[200]; char tmpbuf[200];
sprintf(tmpbuf, "Unimplemented syscall: %s[%x](", sprintf(tmpbuf, "Unimplemented syscall: %s[%x] (",
s->_kernel->getKernelName(funct_nr).c_str(), funct_nr); s->_kernel->getKernelName(funct_nr).c_str(), funct_nr);
for (int i = 0; i < argc; i++) { for (int i = 0; i < argc; i++) {
@ -249,7 +249,7 @@ reg_t kstub(EngineState *s, int funct_nr, int argc, reg_t *argv) {
strcat(tmpbuf2, ", "); strcat(tmpbuf2, ", ");
strcat(tmpbuf, tmpbuf2); strcat(tmpbuf, tmpbuf2);
} }
strcat(tmpbuf, ")\n"); strcat(tmpbuf, ")");
warning(tmpbuf); warning(tmpbuf);