In order for Daggerfall (and potentially some other games as well) to work on AMD64 systems when Dosbox is compiled as 64-bit, a change needs to be made to drive_local.cpp or Daggerfall crashes before you can play the game. The following patch should fix the problem and Peter Veenstra, one of the Dosbox Coders plans to commit it to the CVS shortly. However since the ebuild doesn't run off the CVS, perhaps the patch should be included since the bug in question breaks some of Dosbox's functionality. The patch is as follows : --- drive_local.cpp 2005-03-25 04:11:08.000000000 -0500 +++ drive_local_new.cpp 2005-04-20 16:12:57.000000000 -0400 @@ -420,7 +420,7 @@ //TODO Give some doserrorcode; return false;//ERROR } - int ret=fseek(fhandle,*pos,seektype); + int ret=fseek(fhandle,*reinterpret_cast<Bit32s*>(pos),seektype); if (ret!=0) { // Out of file range, pretend everythings ok // and move file pointer top end of file... ?! (Black Thorne)
games herd/mr_bones_: i put a slightly different patch in, but currently it gets only applied when 'use amd64' is true, since i'm not sure whether it might break 32bit arches. could you please test it and remove the 'use amd64' if it works? tia
Looks fine. The same patch is in dosbox-cvs upstream already. I made it unconditional in the ebuild. Next time, I'd prefer to be CC'd earlier in the process. Thanks.