Compiling PocketSCUMM doesn't work

Subforum for discussion and help with ScummVM's PocketPC/HandheldPC port

Moderator: ScummVM Team

Post Reply
Cirion81
Posts: 36
Joined: Mon Oct 31, 2005 5:02 pm
Location: Germany

Compiling PocketSCUMM doesn't work

Post by Cirion81 »

Hello fellow PocketSCUMMERs,

since I couldn't wait for version 0.8.0 to be released I started my own personal project to compile PocketSCUMM. I encountered several errors, but I chose not to bug the developers with my problems while they were stressed with the release and doing their bugfixes.

Well, now I tried to compile the 0.8.0 release sources - but alas I didn't succeed. This is what I did (I am trying to be as detailed as possible - maybe this could also lead to some detailed guide for other user how to compile PocketScumm):

Initial steps:
1. downloaded Microsoft Embedded Visual C++ 4.0 with Service Pack 4
2. downloaded Microsoft Pocket PC 2003 SDK
3. downloaded Windows Mobile 2003 Second Edition Developer Resources (don't know if that one is really necessary)
4. downloaded all the listed libraries at http://arisme.free.fr/ports/

Compiling:
0. The workspace file and the makefiles are in Unix file-format, they have to be converted to DOS format to be usable in MSEVC 4.0
1. Set all the include and library paths in MSEVC 4.0 (can be done by trial and error - the compiler will tell you what's missing)
2. patched SDL-1.2.6 source with the diff by arisme
3. set ASPECT_MODE to kVeryFastAndUglyAspectMode in /common/scaler/aspect.cpp - otherwise the compiler will encounter an internal error (I conclude from the CVS comments that this is a known bug)
4. The compiler now missed Key.cpp and Key.h in /backends/wince/CEkeys - found these files in the CVS repository attic (they have been removed 3 months ago)
5. Then it also missed CEActions.cpp and CEActions.h in /backends/wince (also removed 3 months ago). I checked the CVS, and to me its seems like they have been renamed to CEActionsPocket.cpp/.h and also enhanced


What I did then was create the files and #include the according CEActionsPocket.cpp/.h which let to an error because of double declaration (what a suprise). I then removed the two files from the project (ouch!) - but now at least it did compile ...

But now the whole project doesn't link:
Linking...
Creating library bin/ARMV4Rel/PocketSCUMM.lib and object bin/ARMV4Rel/PocketSCUMM.exp
scumm.lib(script_v90he.obj) : error LNK2019: unresolved external symbol "void __cdecl Scumm::floodFill(struct Scumm::FloodFillParameters *,class Scumm::ScummEngine_v90he *)" (?floodFill@Scumm@@YAXPAUFloodFillParameters@1@PAVScummEngine_v90he@1@@Z) r
eferenced in function "protected: void __cdecl Scumm::ScummEngine_v90he::o90_floodFill(void)" (?o90_floodFill@ScummEngine_v90he@Scumm@@IAAXXZ)
bin/ARMV4Rel/PocketSCUMM.exe : fatal error LNK1120: 1 unresolved externals
I just don't know what to do now. Maybe this is because of the missing CEActions files. If so, it would be nice if Arisme (or one of the other PocketSCUMM developers if there are any) could provide the present content of the four files removed from the sources 3 months ago (removed by anotherguest). Maybe I just did something else wrong.

Thanks for every idea provided.

Cirion81
User avatar
frank_m24
Posts: 97
Joined: Sun Oct 30, 2005 4:10 pm
Location: Germany

Post by frank_m24 »

Hello,

I'm not an offical ScummVM Developer and I am no expert for Windows Embedded Programming, but I played around with the PocketScumm Sources some months ago.

As far as I know arisme has made changes to the SDL library, which are not published so far. Also the changes made from other embedded Ports are influencing the WinCE Sources (I think the missing files were not removed by arsime, but I'm not sure.) Maybe this is the reason for the missing / renamed files.

Your Problem has something to do with the floodfill Method in the HE Sources. Make sure the necessary files are added to the eVC Projects (floodfill_he.cpp, floodfill_he.h, should be in the Scumm Project). Or Maybe some of the defines are wrong (I think, DISABLE_HE and maybe also DISABLE_SCUMM_7_8 has impact on these files).

Due to a Hard drive Crash I have not installed the eVC Tools on my clean Windows so far, and I am not going to do it in the near furture, therefore I'm not able to check the things myself. Maybe I will shwitch to MSVC 2005 directly, which should support the embedded Devices with Windows Mobile 2003 and newer much better than eVC 4.

kind regards

Frank
Cirion81
Posts: 36
Joined: Mon Oct 31, 2005 5:02 pm
Location: Germany

Post by Cirion81 »

Hello frank_m24,

I read the CVS comment of Arisme concerning the SDL library, but I understood it such, that this concerns building PocketSCUMM for Windows Mobile 5. The missing files have indeed been removed by "anotherguy", if this happened due to changes to other ports I can't tell.

Anyway: your tip hit the bulls-eye. The floodfill_he.cpp was indeed missing in the scumm project (floodfill_he.h is present in "ExternalDependecies", though). I added the file to the project, and linking succeeded.

Thanks a lot for your help !!


Thus, to conlude my above list

5. remove CEActions.h/.cpp from the scumm_vm project (backends/wince)
6. add floodfill_he.cpp (located in the scumm subfolder) to the scumm project (folder "Source Files")

With these changes I was able to create an executable PocketSCUMM file.
User avatar
Arisme
ScummVM Porter
Posts: 38
Joined: Sun Oct 23, 2005 8:07 am
Location: Paris, France
Contact:

Post by Arisme »

yes sorry guys, it seems I forgot to update the project files when the branch was tagged :oops: I'm not working with my usual configuration right now and have some issues with TortoiseCVS I guess

I'll put the SDL changes on my site ASAP, but it can run without that (just not properly on Windows Mobile 5 :twisted:)
Post Reply