Announcement: Be excellent to each other.


Caravel Forum : Caravel Boards : Development : Linux DROD
123
Page 4 of 4
New Topic New Poll Post Reply
Poster Message
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Re: Re: Linux DROD (0)  
trick wrote:
Sure, no problem. The reason i thought we could have it there for now is that it's not actually part of any libstdc++ release yet, so anyone compiling the thing will have to go get a copy from the libstdc++ CVS (or get the file from me).
Yeah, I'd like to keep the file out of the repository. I don't mind keeping a copy of the file around in a separate location until libstdc++ includes the changes in a new release.
Anyway, sorry for adding it in the patch without asking first. Won't happen again.
No problem, Gerry. You were pretty careful about looking into the licensing, and I appreciate that. If I hadn't been busy, I would have picked up on this minor issue in your ealier posts about solving the wstring problem.

Oh, and I did get your Caravel agreement, thanks. Will mail it out tomorrow.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-23-2003 at 12:07 AM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged

File: Caravel-2003-07-24.zip (13 KB)
Downloaded 106 times.
License: Other
From: Unspecified
icon Re: Linux DROD (0)  
I've ported DRODUtil now, to see if that crashbug is due to platform incompabilities in metakit or the dat file. I fixed a little bug in there somewhere, too (%s in place of %S).

Now, this patch isn't the most beautiful of patches (i did it fast to be able to do as much as possible before i go on vacation), but it does make it work. At least i think it makes it work. I haven't tested it much yet, as i'm a bit unsure what to do, and don't want to do anything wrong. I did successfully create a drod1_6.dat file of a whopping 1054 bytes, tho. I guess i need to point it at some data to fill in.

Anyone want to tell me what to do ? :P

By the way, the patch fixes some things in the other dirs as well (fx. it fixes three casts that need to be reinterpret_casts), but as before, it doesn't include the dat/res stuff yet.

Edit: Fixed a bug (deletion of files in Util1_6.cpp returned false when it succeeded).

- Gerry


[Edited by trick on 07-24-2003 at 03:49 PM GMT: Fixed a bug]
07-24-2003 at 03:26 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5383
Registered: 02-04-2003
IP: Logged
icon Re: Linux DROD (0)  
DRODUtil delete
DRODUtil create
DRODUtil import /path/to/Caravel/Dat1.5
DRODUtil import -t /path/to/Caravel/Texts

Good luck!

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
07-24-2003 at 03:29 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged
icon Re: Linux DROD (0)  
Thank you!

Hm, there's something fishy with the path code. It won't work if there's a path other than the current. Have to look into that.

Anyway, i managed to make it import everything and now have a drod1_6.dat file with all the data in it. It differs from the one in CVS. Stay tuned =)

Tried DROD now with the new .dat files, and it crashed X (that's the window/graphics system). No program should make X crash, ever, so this is somewhat interesting. Doesn't help, tho, except to say there's a major bug somewhere in the linux port of DRODUtil, and one in X or its drivers as well. Oh well, back to coding..


[Edited by trick on 07-24-2003 at 04:01 PM]

[Edited by trick on 07-24-2003 at 04:03 PM]

[Edited by trick on 07-24-2003 at 04:11 PM]
07-24-2003 at 03:43 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged

File: DataResourceSeperation.zip (5.8 KB)
Downloaded 108 times.
License: Other
From: Unspecified
icon Re: Linux DROD (0)  
Here's the last patch from me before i go off on vacation: The Data/Resource seperation! Now the path of the executable, the path of the read-only data and the path of the writable data are seperate from each other. I tested it, and it works perfectly. There's some slightly hairy stuff in there, like how it locates the resource directory - that's done by looking for a unique file, for now it's "Bitmaps/HalphHopeful.bm_", but i think it would be better if we used a small (possibly empty) file named after the game so that BackEndLib wouldn't need to be customized for each game it's used for. Anyway, it works for now.

I also added the resource path to DataPath.txt after a semicolon, so it looks like this now:

/path/to/dat;/path/to/res

Initially i tried to seperate them by a newline, but that didn't work out the way i planned, so i just rewrote the DataPath.txt parser to be able to do this in stead. Hope you don't mind. The parser detects any errors in DataPath.txt and writes a new one if there's any problems, so the change from the old to the new DataPath.txt format should be transparent.

Oh, and right now, DataPath.txt is stored in the dat directory in linux, and then DataPath.txt is used to get the dat and res directories (yah :P). So, the dat dir needs to be manually searched every time, to locate the DataPath.txt file. I'll fix that later (put it in the users home dir or something).

I'd say "let me know if there's any problems", but i won't know until i get back, so i'm afraid you're on your own :P . I'm gone to Kypros :cigar

- Gerry

07-25-2003 at 08:33 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Linux DROD (0)  
I committed the patch. Thanks!

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
08-07-2003 at 05:54 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged

File: DROD-2003-08-09.zip (4.1 KB)
Downloaded 103 times.
License: Other
From: Unspecified
icon Re: Linux DROD (0)  
Here's another one for ya! Fixes a GetDatPath i missed, and some warnings. Also added iswalpha to Ports.cpp. One important thing i fixed is the trailing backslash in the comment in Files.cpp (CFiles::IsValidPath), which caused g++ to comment out the whole next line as well.

Other than that, nothing new. I'll go hunt down that crashbug after i get some sleep. *yawn*

- Gerry

08-09-2003 at 12:50 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Linux DROD (0)  
I committed the patch!

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
08-09-2003 at 01:39 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged
icon Re: Linux DROD (0)  
The attached patch fixes all known remaining issues with the linux version. The crashbugs were fixed yesterday, thanks to Mike (mrimer). Big cheer, everyone! Yay! :D

This patch fixes some stuff that popped up when i compiled without debugging, and an issue with the time offset code in DbDate.cpp (basically, there's two extra timezone fields in the tm struct in linux, which requires things to be done a bit differently - and january 1st 1970 can go into history, at least for linux ;)).

There's still some warnings about potentially unused variables, but i checked them all, and those that aren't caused by compiler stupidity are checked by ASSERTS in debug builds, so the debug build would catch those if they happened. They don't. There's one or two i was unsure about, so i zeroed them out in the patch - have a look.

I also fixed up the makefiles a bit, and added a master makefile and config to the Master directory, included in the zip.

Now, all that's left is building the binary drod for linux and wrapping it up. Unfortunately i can't just use the one i built here, because it's statically linked to some pentium3-optimized stuff, so it would require everyone to have a pentium 3. I'm setting up a partition for compiling i386-stuff as we speak (or, eh, type).

Yay! :P

Edit: Found a cosmetic bug related to random numbers and bolt sparkles, and fixed that. I'll just attach the new patch below and delete this one since this haven't been downloaded yet.

- Gerry

[Edited by trick on 08-10-2003 at 04:40 PM]
08-10-2003 at 01:56 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged
icon Re: Linux DROD (0)  
Eh, forgot about the help file browser popup. Shouldn't be hard to fix, tho. So, that's the one remaining issue.
08-10-2003 at 02:00 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged
icon Re: Linux DROD (0)  
The attached patch is for Browser.cpp in the DROD subdir, and fixes the help browsing. Only bad thing about it is that it halts DROD (except the music) while the browser is open. I tried opening the browser in a new process, but then DROD started misbehaving - probably because of FMOD and its processes - so it'll just have to be this way for now. I'll see if i can find a workaround.

In any case, it shouldn't be a too big deal. If the player opens the help browser, (s)he's interested in reading help, not playing, and when the browser closes, everything returns to normal.

Edit: I found a workaround! I discovered that the system() call allows the use of & to fork the shell, and doing that makes it work. Updated the attached patch. Wohoo :P

Edit: This patch is now included in the one below, for your convenience :D

- Gerry

[Edited by trick on 08-10-2003 at 03:09 PM GMT: Attached the patch]

[Edited by trick on 08-10-2003 at 04:00 PM GMT: It works!]

[Edited by trick on 08-10-2003 at 04:02 PM]

[Edited by trick on 08-10-2003 at 04:41 PM]
08-10-2003 at 03:06 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged

File: DROD-2003-08-10.zip (6.9 KB)
Downloaded 112 times.
License: Other
From: Unspecified
icon Re: Linux DROD (0)  
Okay, now all known issues are fixed. (I really mean it this time.) See the above messages for more info :P

Edit: Discovered that DRODUtil/Makefile.linux was listed as unknown in the diff, so added that to the zip.

- Gerry


[Edited by trick on 08-10-2003 at 04:56 PM]
08-10-2003 at 04:45 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Linux DROD (0)  
Excellent! I've applied your patch and committed the changes.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
08-11-2003 at 01:49 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged

File: DROD-2003-08-27.zip (3.2 KB)
Downloaded 119 times.
License: Other
From: Unspecified
icon Re: Linux DROD (0)  
I've got internet back now. Well, kinda. Pinging the router gives me 5% packet loss and 50% duplicates, but at least i've got access. In any case, here's a new patch for y'all, against current CVS. Fixes:

* Adds a terminating semicolon to DataPath.txt

This is done because text editors have a tendency to add a newline to the end of files, so people editing DataPath.txt for any reason (fx they may have moved the data, and drod doesn't find it) will create invalid DataPath.txt files. This is fixed by adding the second semicolon to the file, which acts as a string terminator, like the first one. End of file still acts as a string terminator too, of course, so excisting DataPath.txt files are still valid.

* DataPath.txt is now placed under the user's home directory by default in linux.

This way, if DataPath.txt exists under the home directory, DROD doesn't have to search multiple directories for DataPath.txt every time it starts. If it doesn't exist there, DROD still searches for it in other places before deciding if to create a new. Currently it is placed under $HOME/.caravel/<gamename> (this dir is created if it doesn't exist on writing of DataPath.txt). I added the .caravel part to make the home directory a little cleaner - it's a hidden dir, but still, the less the better. Game configs for future Caravel linux games can be put in here as well :D

* Bugfix in FileDialogWidget: Nonexistant path fix

If the path passed to CFileDialogWidget::SetDirectory is invalid, it sets the directory to the path stored in this->dirpath, but it doesn't check if the path in this->dirpath is valid. This were causing the filelist to be blank in these cases. I added a check to test if this->dirpath is a valid path, and if it isn't, set it to the current DAT path.

* Misc. makefile fixes

Added a new file, link libgcc dynamically (libgcc_s.so is now included in the tarball), etc.

That's it. Enjoy, and make sure to test build 40 of the linux client :P

- Gerry

08-27-2003 at 12:26 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
levelthirteen
Level: Master Delver
Rank Points: 109
Registered: 02-20-2003
IP: Logged
icon Re: Linux DROD (0)  
Here's a screenshot of win32 DROD under wine.
01-06-2004 at 01:54 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
Mattcrampy
Level: Smitemaster
Avatar
Rank Points: 2388
Registered: 05-29-2003
IP: Logged
icon Re: Linux DROD (0)  
While the idea of playing DROD under Linux by using wine appeals, I don't see how a rather large image telling us Wine can't take it anymore is better than telling us in words.

Oh, now I want to run the Gimp in wine. Or a Windows version of emacs.

Matt

____________________________
What do you call an elephant at the North Pole?
Click here to view the secret text

01-06-2004 at 03:24 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
trick
Level: Legendary Smitemaster
Rank Points: 2580
Registered: 04-12-2003
IP: Logged
icon Re: Linux DROD (0)  
There's absolutely NO reason whatsoever to play DROD under Wine, so I don't care. The native Linux client contains everything the Windows client does. Use that in stead.

- Gerry
01-06-2004 at 06:34 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Linux DROD (0)  
Not to gang up on levelthirteen, who was just being helpful, but even if there weren't a Linux DROD around, I probably still wouldn't pay attention to Wine bug reports, because the problem would have to be fixed in Wine. My understanding is that the Wine developers have to tweak things so that individual apps can work, which sorta brings trickle-down general fixes to the rest of the apps. Understandably they'd focus on getting games more popular than DROD functioning, so it's out of our hands and not likely to get fixed.

Gads, Wine has got to be the ultimate kludge! It blows my mind to think of all the work involved. And they're doomed to have the carpet repeatedly pulled out from under them by Microsoft. Not my kind of project, but I am impressed by it.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
01-06-2004 at 08:53 PM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
123
Page 4 of 4
New Topic New Poll Post Reply
Caravel Forum : Caravel Boards : Development : Linux DROD
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.