#exult@irc.freenode.net logs for 8 Aug 2002 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[00:07:34] --- dwing010 is now known as dwing010|afk
[00:08:39] <wjp> time for me to go
[00:08:41] <wjp> night
[00:08:49] <-- wjp has left IRC ("Zzzz...")
[00:12:08] <-- Dominus has left IRC ("Exult! Exult! Exult!")
[00:24:05] --> Kirben has joined #exult
[00:24:05] --- ChanServ gives channel operator status to Kirben
[00:42:43] --> dwing011 has joined #exult
[00:42:56] --- dwing011 is now known as dwing010
[00:43:13] --- dwing010 is now known as dwing011
[00:45:08] <-- dwing011 has left IRC ()
[01:01:14] <-- dwing010|afk has left IRC (Read error: 110 (Connection timed out))
[07:50:04] --- Darke|afk is now known as Darke
[08:17:08] --> wjp has joined #exult
[08:17:08] --- ChanServ gives channel operator status to wjp
[08:17:12] <wjp> hi
[08:19:54] <Darke> Greetings.
[13:03:20] <-- wjp has left IRC ("gtg")
[13:08:31] --> Colourless has joined #Exult
[13:08:31] --- ChanServ gives channel operator status to Colourless
[13:08:46] <Colourless> hi
[13:09:03] <Darke> Greetings, oh great Lord of Non-Colour.
[13:09:22] <Colourless> lord hey...
[13:16:24] * Darke resists the urge to sing the "Robin Hood Rap" from Robin Hood: Men In Tights. *grin*
[13:16:59] * Colourless would like to hear Darke sing that
[13:22:02] <Darke> A better idea, have a link to it being sung: http://www.tmbhs.com/tmbhs/movies/robinhood/audio/rapintro.au For some reason when you said 'lord hey...', my first thought was the line from that tune that starts with, "Hey, nonny, nonny..." *grin*
[13:22:47] <Colourless> your mind is filled with too much crap :-)
[13:25:57] <Darke> Of course. *grin*
[13:28:01] <Colourless> fill it with something useful *cough* Ultima 8/TGTWDS/Pentagram stuff *cough*
[13:30:12] <Darke> Oh, it's certainly filled with that sort of 'useful' stuff. The problem is getting it from mind to file. *grin*
[13:37:31] --> artaxerxes has joined #exult
[13:37:32] --- ChanServ gives channel operator status to artaxerxes
[13:37:35] <artaxerxes> hi all
[13:37:58] <Colourless> hi
[13:38:03] <artaxerxes> so yeah right, Ken needs our help.... right! :)
[13:38:08] --> SB-X has joined #exult
[13:38:10] <SB-X> hello
[13:38:18] <artaxerxes> hi
[13:38:30] <Colourless> Darke: when are you going to commit the compiler? even if it's not finished, having it in cvs might be a good idea
[13:38:36] <Colourless> SB-X: hi
[13:38:52] <SB-X> hi artaxerxes & Colourless
[13:39:06] <Darke> Hi SB-X.
[13:39:11] <SB-X> hi Darke
[13:39:55] <SB-X> what is being talked about?
[13:39:55] <-- artaxerxes has left IRC (Remote closed the connection)
[13:40:03] <SB-X> oh ill read the log
[13:40:32] <Darke> Colourless: The compiler? Umm... no idea. I have no idea in what state it is at the moment since I haven't had a chance to look at it since I started this job. *grin*
[13:40:44] <SB-X> hmm
[13:41:21] <Colourless> Darke: hmm
[13:41:38] <Colourless> SB-X: nothing of note is being said
[13:41:43] --> artaxerxes has joined #exult
[13:41:43] --- ChanServ gives channel operator status to artaxerxes
[13:41:49] <artaxerxes> hi again
[13:41:51] <SB-X> wb
[13:41:53] <Darke> ReHi.
[13:42:00] <Colourless> wb
[13:42:01] <SB-X> you mentioned tgwds
[13:42:04] <SB-X> that is notable
[13:42:07] <artaxerxes> did I miss sth?
[13:42:34] <Colourless> tgwds are by definition unsupported
[13:42:41] <Colourless> nothing else to say about that
[13:43:02] <Colourless> of cousre i got the acronym incorrect. i think darke knows the correct one
[13:43:09] <artaxerxes> is u8 still considered tgwds ?
[13:43:32] <Darke> Colourless: Hmm... I should have a chance to take a look at the compiler on saturday. *grin* I'll see what I can clean up and work out how far I am into it. IIRC I wasn't very far into it, just had a 'basic' flex & bison file setup, and was parsing things like global variable definitions.
[13:43:39] <SB-X> yeah but cant i get support if i pay a fee?
[13:43:49] <Colourless> u8 is considered supported, even if it doesn't yet work :-)
[13:44:24] <Darke> Of note is that we know of 8 different versions of u8, and yes they're all considered supported. *grin*
[13:45:22] <Colourless> luckily we should have access to 7 of those 8 versions :-)
[13:46:00] * SB-X sighs.
[13:46:17] <SB-X> so you can support 7 u8s but 0 tgwdss
[13:46:33] * Darke thinks. Version 2.10 of English/French/German/Spanish, version 2.12 of English/French/German, and version 2.13 of English. He thinks that's all.
[13:46:53] <Colourless> but do you have 2.13 eng?
[13:47:02] <-- Kirben has left IRC ("System Meltdown")
[13:47:10] * Darke has diffs, IIRC.
[13:47:28] <SB-X> Darke: how idd you fget that?
[13:47:29] <artaxerxes> I've got a french version of u8.. how do I check the version number ?
[13:47:31] <SB-X> eh
[13:47:37] <SB-X> Darke: how did you get that?
[13:48:07] <Darke> SB-X: Thanks for the clarification. *grin* How did I get what in specific?
[13:48:14] <SB-X> a diff
[13:49:01] <Colourless> artaxerxes: if u8win works with your version you either have 2.12 or 2.13 :-)
[13:49:14] <Colourless> if it doesn't you have 2.10, and should run the patch, if you have it installed
[13:49:19] * Darke ahhs. He talked to someone, exchanged a md5sum of all the files and he was provided with the different files. There's almost nothing changed, IIRC.
[13:49:50] <SB-X> oh ok
[13:50:04] <SB-X> Darke: so you dont have access to U8 insiders?
[13:50:18] <Darke> SB-X: Nope. *grin*
[13:50:24] <SB-X> :(
[13:50:48] * Darke considers that if he did, he might be able to get a _little_ more specific info on that lost vale expansion pack then. *grin*
[13:51:26] <SB-X> all you have to do is hack move those big doors
[13:51:32] <SB-X> and you can see that it was all a dirty trick
[13:51:43] <Colourless> and then you fall off the end of the world?
[13:51:56] <Darke> IIRC, there's four bytes different in the usecode file, in an unused header section. The .exe file has been stripped, and I think they've just removed an unused shape or two.
[13:52:04] <SB-X> :-)
[13:52:16] <SB-X> ok
[13:52:28] <SB-X> what is the difference then?
[13:52:50] <Colourless> no effective difference between 2.12 and 2.13
[13:52:54] <SB-X> is 2.13 after applying that patch?
[13:52:59] <SB-X> hmm
[13:53:24] <Colourless> no
[13:53:33] <Colourless> 2.12 is after the patch
[13:53:46] <Colourless> 2.13 seems to be a version released on a EA Classics CD
[13:53:51] <Darke> There was no 2.13 released as a patch.
[13:54:34] <artaxerxes> I was able to finish the game under WinNT and to have easy jumps: you jump where you mouse is when you left-and-right click
[13:54:54] <Colourless> that would most likely be 2.12 then
[13:56:31] * Darke points out the 'easy' method is to do this: `strings U8.EXE |grep "2.12"` If you get `2.12` as a result, then it's 2.12. *grin*
[13:57:22] <SB-X> yeah that works
[13:57:42] <SB-X> but its u8.exe not U8.EXE :)
[13:57:48] <SB-X> at least over here
[14:00:17] <Darke> It depends. From what I can tell, if you've unzipped it from a zip made under windows/dos, it's U8.EXE. If you've just copied it from a fat32 partition, it's u8.exe. *grin*
[14:01:11] <SB-X> if it were U8.EXE i wouldve renamed it
[14:01:21] <SB-X> dont you find all-caps filenames annoying?
[14:02:38] * Darke uses the magic of tab completion. *grin* That and that he has to reference the U8.EXE/directory tree once in a blue moon, so it's more bother to rename it, then it is to just use it as-is. *grin*
[14:02:50] <artaxerxes> there's a way to unzip in lowercase!
[14:02:58] <artaxerxes> from your bash:
[14:03:07] <artaxerxes> unzip -l file.zip
[14:03:17] <artaxerxes> (it's smallcaps L)
[14:04:02] <SB-X> that shows file list
[14:04:10] <artaxerxes> then it's L
[14:04:15] <SB-X> hehe
[14:04:44] --- artaxerxes is now known as artaxerxes|afk
[14:04:53] <artaxerxes|afk> (back to real life... arggh)
[14:04:58] <SB-X> it works thx
[14:05:01] <SB-X> ok
[14:05:15] <Darke> artaxerxes|afk: Have fun. *grin*
[14:05:27] * Darke needs to afk now for a different reason. Sleep. *grin* Night all!
[14:05:33] <SB-X> wait
[14:05:39] <Colourless> cya
[14:05:41] * Darke earperks.
[14:05:55] * SB-X suggests Darke meditate at the Pentagram Shrine on "TGWDS", "TGWDS", "TGWDS" for 12 hours to facilitate the getting of stuff from mind to file.
[14:05:57] <SB-X> ok!
[14:06:01] <SB-X> cya
[14:06:42] * Darke snickers. Wouldn't the 12 hours spent be better used _to_ get the stuff from mind to file? *grin* Anyway, off now. *bow*
[14:06:52] * SB-X bows.
[14:06:52] --- Darke is now known as Darke|afk
[14:07:21] * SB-X mutters ... well he... *could* do that... *mutter* ... or sleep *shrug* :)
[14:07:43] --- artaxerxes|afk is now known as artaxerxes
[14:08:14] <artaxerxes> back to normal life
[14:08:21] <artaxerxes> :)
[14:09:03] <Colourless> you have a odd sense of normality
[14:09:07] <Colourless> s/a/an/
[14:09:25] <artaxerxes> don't we all... ;)
[14:09:57] <Colourless> well, yes, but at least i don't advertise the fact that I find 'it' normal ;-)
[14:11:04] <artaxerxes> actually, I did even worst last weekend. It was a long weekend here in Canada, so me, my wife, her mother and her mother's husband went to a cottage for a couple days... where I played SI on the beach! :)
[14:11:30] <artaxerxes> they call that "addiction" I believe... :)
[14:11:52] <SB-X> sounds like my kind of beach activity
[14:12:12] <Colourless> :-)
[14:13:08] <artaxerxes> I was glad the port to the z was then completed.
[14:13:35] <Colourless> no sound though i hear
[14:13:45] <Colourless> any idea why it doesn't work?
[14:14:14] <artaxerxes> because I didn't try! :) I would have to install the sound pack and I've been lazy lately.
[14:14:32] <artaxerxes> the music is likely out of question for now.
[14:14:37] <Colourless> bah
[14:14:47] <artaxerxes> but the sound should be in soon
[14:14:48] <Colourless> i just committed the fm synth !
[14:15:00] <artaxerxes> is it using floating point?
[14:15:06] <SB-X> and thank you for that!
[14:15:15] <SB-X> i want to try it
[14:15:22] <artaxerxes> what does the fm synth does ?
[14:15:25] <Colourless> in one small section, but it shouldn't matter
[14:15:29] <artaxerxes> s/does/do
[14:15:40] <Colourless> it doesn't use floating point for the actual synthesis
[14:15:47] <SB-X> does SB16 have an fm synth?
[14:15:57] <SB-X> i mean
[14:16:02] <SB-X> real fm chip
[14:16:16] <artaxerxes> any way to actually get rid of it? no FPU on the z... that will likely make it much more slow
[14:16:17] <Colourless> the fm synth is the software emulated fm synthesizer to play music
[14:16:39] <artaxerxes> so no need of kmid or timidity ?
[14:16:39] <Colourless> yes I am planning to make it fixed point
[14:17:01] <Colourless> no need for any of that stuff
[14:17:14] <artaxerxes> If I remember well, you code convert a float to an int anyways.
[14:17:16] <SB-X> well you dont need them if you can run the digital music too
[14:17:18] <Colourless> you can even compile sdl mixer with no music support at all, and it will still work
[14:17:42] <artaxerxes> s/you/your
[14:17:52] <Colourless> the amount of floating point is something like 2 instructions per note on, that's it
[14:18:44] <artaxerxes> is SDL_mixer still required then?
[14:18:55] <Colourless> yeah sdl_mixer is required
[14:19:20] <artaxerxes> for the fast copy in memory, right?
[14:19:29] <Colourless> ?
[14:19:35] <artaxerxes> (SDL_QuickLoad or sth like that)
[14:19:41] <Colourless> no
[14:19:56] <artaxerxes> or SDL_RawLoad
[14:20:26] <Colourless> sdl_mixer's mixer_hookmusic() (or something) is used to generate the samples
[14:20:42] <SB-X> what is the sb16's music capability?
[14:20:54] <Colourless> SB-X: Opl3 FM Snyth
[14:21:00] <Colourless> s/snyth/synth/
[14:21:20] <SB-X> that is what i thought but i didnt know...
[14:21:28] <SB-X> i have an opl3 driver loaded
[14:21:43] <SB-X> but i dont know anything about the hardware :)
[14:22:03] <SB-X> playmidi has to use patches
[14:22:19] <SB-X> do you think playmidi or your fm synth will sound better?
[14:22:28] <artaxerxes> your fm synth plays the music then... I'll give a try to the sound asap then
[14:22:56] <Colourless> artaxerxes: you need to modify the makefiles a bit
[14:23:10] <Colourless> the fmsynth files aren't included in them at the moment
[14:23:21] <Colourless> you'll also need to add a #define as well
[14:23:24] <SB-X> me too
[14:23:36] <Colourless> SB-X: playmidi will probably sound better
[14:24:42] <SB-X> ok thats not good at all is it? :)
[14:25:03] <SB-X> but i will still try it
[14:25:10] <Colourless> fmsynth is hardly anything to write home about :-)
[14:26:31] <SB-X> its nice to have the option
[14:26:34] <artaxerxes> may you put forth a list of changes to make, please? :)
[14:26:46] <SB-X> and define
[14:27:01] <SB-X> actually i think i read about it in the logs
[14:27:34] <Colourless> you need to add the 6 audio/midi_drivers/fmopl* files to the makefile.am in the audio/midi_drivers dir
[14:28:06] <Colourless> you then need to have USE_FMOPL_MIDI defined 'somewhere'
[14:28:21] <artaxerxes> configure.in probably
[14:28:31] <artaxerxes> along with my other defines
[14:28:53] <Colourless> assuming you don't have any other midi driver being compiled in, it should just work :-)
[14:29:14] <artaxerxes> is configure updated to reflect that option?
[14:29:26] <Colourless> in linux exult may be trying to automatically include another midi driver though.
[14:29:31] <Colourless> i have no idea :-)
[14:29:42] <SB-X> how about config.h.in
[14:30:17] <SB-X> oh nm that is autoconfed
[14:30:35] <Colourless> ok, exult will always try to use the 'forked_player' on any system that is not windows or macos
[14:31:14] <artaxerxes> is your player a forked player?
[14:31:19] <SB-X> no playmidi is
[14:31:25] <artaxerxes> ah
[14:31:32] <Colourless> eh, no
[14:32:44] <Colourless> just edit audio/midi.cc and comment out line 516 or something for now
[14:32:51] <SB-X> #if(defined(XWIN) && !defined(OPENBSD)?
[14:32:53] <Colourless> or add another !defined()
[14:33:07] <Colourless> SB-X: yep
[14:33:09] <SB-X> heh
[14:34:21] <artaxerxes> I've got a zaurus specific define so I'll sort things out
[14:34:45] <artaxerxes> #if (defined(XWIN) && !defined(OPENBSD) && !defined(__zaurus__))
[14:34:54] <Colourless> yeah that should be ok
[14:35:05] <SB-X> does the forked player not work on zaurus?
[14:35:32] <artaxerxes> honestly, I didn't try... too afraid of ruining my nice fps.. :)
[14:35:41] <Colourless> you will need to be sure that you've got the static/xmidi.ad file, and also static/adlibmus.dat
[14:36:31] <Colourless> you don't need mt32mus.dat though
[14:36:34] <artaxerxes> got them
[14:36:49] <artaxerxes> actually, got them all
[14:37:04] <artaxerxes> and there is no playmidi on the z
[14:37:07] <Colourless> if you copied the entire static did, then your good to go
[14:37:21] <artaxerxes> there is a playwave and a playmus but that's it
[14:37:30] <artaxerxes> I did
[14:37:43] <SB-X> hmm
[14:37:47] <SB-X> what does playmus play?
[14:38:01] <SB-X> on my system i have playmus from sdl_mixer that plays ogg files
[14:38:07] <SB-X> and other files
[14:39:54] <Colourless> ogg is no go
[14:45:33] <artaxerxes> playmus can play .wavs
[14:48:50] <SB-X> :|
[14:49:01] <SB-X> when what is playwave for :)
[14:51:17] <SB-X> then*
[14:51:36] * SB-X starts compiling Exult.
[14:52:00] <SB-X> i should check back on this in a few days and see if its done compiling
[15:02:03] <artaxerxes> I'm starting to compile exult too...
[15:02:09] <artaxerxes> let's see who is faster! :)
[15:02:30] <SB-X> oh
[15:02:40] <SB-X> i had to add the config option
[15:04:03] <artaxerxes> hum... error in fmopldrv.cc
[15:05:23] <artaxerxes> fmopldrv.cc:993: name lookup of `i' changed for new ANSI `for' scoping
[15:05:23] <artaxerxes> fmopldrv.cc:919: using obsolete binding at `i'
[15:06:16] <artaxerxes> COUT (i << " timbres read");
[15:06:22] <artaxerxes> is the guilty line
[15:07:16] <SB-X> hmm
[15:07:28] <SB-X> move int declaration to top of function
[15:08:09] <SB-X> out of line 919
[15:09:50] <artaxerxes> that worked... as well as at line 1109
[15:18:21] <Colourless> um, don't build debug
[15:18:42] <Colourless> :-)
[15:18:52] <artaxerxes> /home/zaurus/sources/exult/audio/midi_drivers/fmopl_midi.cc:191: undefined reference to `FMOpl_Midi::MidiAbstract virtual table'/
[15:18:52] <Colourless> not that it would matter much for you linux people
[15:19:08] <artaxerxes> /home/zaurus/sources/exult/audio/midi_drivers/fmopl_midi.cc:610: undefined reference to `FMOpl_Midi::send(unsigned int)'
[15:20:26] <Colourless> hmmm
[15:20:27] <Colourless> strange
[15:21:23] <Colourless> any other problems?
[15:22:17] <artaxerxes> audio/midi_drivers/.libs/libmididrv.a(fmopl_midi.o): In function `FMOpl_Midi::FMOpl_Midi(int)':
[15:22:26] <artaxerxes> /home/zaurus/sources/exult/audio/midi_drivers/fmopl_midi.cc:610: undefined reference to `FMOpl_Midi::send(unsigned int)'
[15:22:40] <artaxerxes> that's what it starts with
[15:22:57] <Colourless> ok
[15:23:10] <artaxerxes> interestingly, it happens only at the end of compile
[15:23:17] <artaxerxes> when I create "exult"...
[15:23:21] <Colourless> line 353 of fmopl_midi.cc remove the inline
[15:24:06] <artaxerxes> let's see
[15:24:07] <Colourless> also line 138 of fmopl_midi.h
[15:26:23] <artaxerxes> /home/zaurus/sources/exult/audio/midi_drivers/fmopl_midi.cc:191: undefined reference to `FMOpl_Midi::MidiAbstract virtual table'
[15:26:33] <artaxerxes> still errors
[15:26:38] <Colourless> just that one?
[15:28:46] <artaxerxes> nope
[15:28:54] <artaxerxes> about 2 pages worth of errors
[15:28:59] <Colourless> and they are?
[15:29:01] <SB-X> ow
[15:29:20] <artaxerxes> /home/zaurus/sources/exult/audio/midi_drivers/fmopl_midi.cc:587: undefined reference to `FMOpl_Midi::wmoInitClock(void)'
[15:29:51] <Colourless> hmm. it would appear something it choaking on inlined functions
[15:29:56] <Colourless> s/it/is/
[15:30:12] <artaxerxes> I'll remove all the inlines..
[15:31:03] <artaxerxes> but... I'll have to go back to work again... :(
[15:31:13] <artaxerxes> we'll see you later guys
[15:31:15] <-- artaxerxes has left IRC ("using sirc version 2.211+KSIRC/1.1")
[16:13:20] --> vividos has joined #exult
[16:13:34] <vividos> whoops wrong channel :)
[16:14:05] <Colourless> :-)
[16:15:21] <vividos> Colourless, I've seen you do another midi driver that uses an fmopl library?
[16:16:40] <Colourless> yes
[16:17:12] <vividos> does it sound better than the standard midi driver?
[16:17:33] <Colourless> it depends on your system. generally, no
[16:17:42] <SB-X> hi vividos
[16:17:48] <vividos> hi SB-X
[16:18:05] <vividos> hmm, what advantages does the new driver have?
[16:18:26] <Colourless> it's for systems that don't have any other method of playing music
[16:18:44] <Colourless> or for people who 'really' need to have fm synth music :-)
[16:21:39] <vividos> ah ok
[16:23:11] <SB-X> if im writing some data to disk, say a uint64, is there any disadvantage(like being slower) if i convert it to (void *) type first?
[16:23:46] <Colourless> it really shouldn't matter
[16:24:41] <SB-X> ok while you are here, do you know how to write this without shift operators?
[16:24:43] <SB-X> ARGSIZE(D) (((D << 1) >> 1) / 8)
[16:25:03] <SB-X> it just removed the left bit
[16:25:07] <SB-X> removes*
[16:25:56] <Colourless> it depends on the size of the arg
[16:26:09] <SB-X> it is always 1 byte
[16:26:27] <Colourless> you could just do ((D & 0x7F)/8)
[16:26:45] <SB-X> but if the left bit is 1 wont it stay that way?
[16:26:57] <Colourless> no
[16:27:15] <Colourless> 0x7F = 0111 1111 1111 1111
[16:27:52] <Colourless> doing a binary and with that will just discard the left most bit
[16:29:01] <SB-X> oh wait
[16:30:47] <exultbot> 0x7F = 0111 1111, actually :-)
[16:30:58] <SB-X> no
[16:30:58] <SB-X> heh
[16:30:58] <SB-X> i thought it would though!
[16:30:58] <SB-X> thanks a lot Colourless :-)
[16:31:00] <Colourless> ah whatever :-)
[16:31:26] <Colourless> wjp: if you want to say something, come here. Don't hide :-)
[16:31:57] <SB-X> i had thought of using it but for some reason, i was mixing AND and OR up-. i dunno why, i just do that a lot :)
[16:32:34] --> wjp has joined #exult
[16:32:35] --- ChanServ gives channel operator status to wjp
[16:32:41] <vividos> ok, have to go again. bye!
[16:32:46] <SB-X> bye
[16:32:50] <Colourless> using shifts to get rid of the left most bit is a bad idea if you are using signed ints
[16:32:50] <Colourless> hello wjp, what a surprise
[16:32:55] <Colourless> cya
[16:32:55] <wjp> yeah, I know :-)
[16:33:12] <wjp> I'm sure you didn't have a clue I would come in any second :-)
[16:33:26] <SB-X> hi wjp
[16:34:12] <Colourless> it would be so simple for people to take me comment out of context :-)
[16:34:15] * SB-X was hoping exultbot had finally gained some real intelligence. :(
[16:35:33] <SB-X> where is the sign in a signed int?
[16:35:53] <Colourless> left most bit :-)
[16:36:00] <Colourless> but...
[16:36:12] <SB-X> even with little endian?
[16:36:22] <Colourless> yeah
[16:36:46] <SB-X> left most bit of MSB?
[16:36:49] <Colourless> binary logic works that same regardless of architechture
[16:37:04] <Colourless> it's pointer op's that become screwy
[16:37:28] <Colourless> when doing right shifts on signed ints you get what is known as sign extending.
[16:37:43] <-- vividos has left #exult ()
[16:37:50] <Colourless> instead of 0's being added to the left side, if the number is negetive, you'll get 1's added
[16:38:54] <SB-X> what i am doing is removing the sign, but its only for 1 byte
[16:39:28] <Colourless> what are you actually attempting to do
[16:39:41] <wjp> ARGSIZE(D) (((D << 1) >> 1) / 8) ?
[16:39:51] <wjp> hm, doesn't that duplicate the 2nd bit into the 1st?
[16:39:53] <SB-X> the byte is an argument descriptor, and the sign bit tells if the argument is signed, and the 7 right bits tell the width of the argument in bits
[16:39:54] <Colourless> real funny wjp :-)
[16:40:07] <wjp> (if it's signed)
[16:40:33] <wjp> what's the type of that 'D'?
[16:40:39] <SB-X> unsigned char
[16:40:57] <Colourless> hmm, why don't you just use a standard signed char?
[16:41:05] <Colourless> and just use a test for < 0 ?
[16:42:37] <SB-X> eh :)
[16:42:40] <SB-X> i guess that would be the same
[16:44:21] <Colourless> you should know that -1 = 0xFF, -2 = 0xFE, -3 = 0xFD, -4 = 0xFC and so on till -127 = 0x81 and -128 = 0x80 (these are all for signed char)
[16:45:48] <Colourless> while the left most bit is the sign bit, it's not as simple as just flipping that bit to negate a number :-)
[16:46:57] <SB-X> i know that i am confused
[16:47:31] <SB-X> yeah, if i were using signed char
[16:47:55] <SB-X> i would have to change the functions the number that way
[16:48:29] <SB-X> but i didnt think of it when i came up with the idea, so im just using the right 7bits on their own unsigned
[16:48:58] <SB-X> and then if the left bit is signed, it doesnt change the right bits, it is used on its own as well
[16:49:04] <Colourless> hmm, how hard is it to add in some code like if (num < 0) { signed = true; num = -num; } ?
[16:51:12] <SB-X> hmm
[16:51:15] <SB-X> but you cant have -0
[16:51:33] <SB-X> i just noticed that if the size is 0, im assuming the arg is a null terminated string
[16:51:54] <SB-X> if left bit is 1, then it is a null terminated string of signed chars
[16:52:05] <SB-X> otherwise they are unsigned
[16:52:14] * Colourless doesn't really want to know exactly what sb-x is attempting to do. sounds horribly, and overly complex
[16:52:40] <SB-X> i just dont explain it well enough
[16:58:51] <SB-X> ok, im just using macros for different types like MSGP_USTR, MSGP_UINT16, MSGP_SINT32
[16:59:39] <SB-X> and i set the byte to one of those to describe the argument
[16:59:41] <SB-X> so its real simple
[17:02:22] <SB-X> if(describer != MSGP_USTR && describer != MSGP_STR) argsize = ARGSIZE(describer);
[17:03:46] * Colourless thinks it is horribly and quite probably overly complex
[17:04:06] * Colourless incidently still has no idea why SB-X would be doing something like that
[17:09:09] <SB-X> because message arguments are of variable type
[17:09:42] <SB-X> i just thought of that idea using MSGP* before i thought of your solution
[17:10:18] <Colourless> i take it you are using some sort of stream?
[17:11:54] <SB-X> this is C
[17:12:26] <Colourless> stream doesn't just mean a C++ stream :-)
[17:12:36] <SB-X> not a file stream if you mean that
[17:12:41] <Colourless> it's a fairly common term :-)
[17:13:06] <Colourless> are you streaming message packets as a 'stream' of bytes?
[17:13:13] <SB-X> yes
[17:13:32] <Colourless> why do you need to include the type and size into a single bytes?
[17:13:53] <SB-X> why not?
[17:14:30] <Colourless> flexibility?
[17:15:01] <Colourless> if you can only specify a size or a type, what happens if you have 2 things of a different type that can both have variable size?
[17:16:04] <SB-X> each argument has its own describer
[17:19:26] <Colourless> hmmm
[17:21:33] <SB-X> i get same errors as artaxerxes when linking exult
[17:22:39] <Colourless> it is probably got something to do with the wacky way that things are linked
[17:23:10] <Colourless> try going commenting out line 191 of fmopl_midi.cc and
[17:23:14] <Colourless> recompiling
[17:23:41] <Colourless> you may also want to uninline everything in that file (and fmopl_midi.h)
[17:36:25] <SB-X> still get the same errors
[17:36:32] <SB-X> but i cant mess with it now, gotta go
[17:36:34] <SB-X> see you later
[17:36:41] <-- SB-X has left IRC ("Ultima! Ultima! Ultima!")
[17:44:48] <Colourless> wjp: you don't by any chance want to check out why the fmopl stuff won't compile in. I posted instructions earlier how things are supposed to work to get it to compile
[17:45:24] <wjp> posted? in here you mean?
[17:45:34] <Colourless> yeah
[17:45:47] <Colourless> posted != right word to have used :-)
[17:46:13] * wjp takes a break from the uwadv build system
[17:46:48] <Colourless> :-)
[17:47:08] <wjp> I just did a working 'make dist' on it :-)
[17:49:35] <wjp> audio/midi.cc <-- Midi.cc ;-)
[17:50:00] <Colourless> where what? :-)
[17:50:12] <wjp> your 'instructions' :-)
[17:51:41] <Colourless> so i 'forgot' to use the correct case
[17:51:45] <wjp> ;-)
[17:51:51] <wjp> anyway, let's see...
[17:51:57] <Colourless> like you weren't able to figure it out from my 'instructions'
[17:52:18] <wjp> I was staring at it for _hours_ before I got it ;-)
[17:53:08] <Colourless> well, you could have just asked if it was going to take you 'that' long
[17:53:27] <wjp> hm, should I set music_conversion to XMIDI_CONVERT_FMSYNTH or move FMOpl_Midi up in the order of searched drivers?
[17:53:57] <Colourless> easiest would just be to use the music_conversion option
[17:54:18] <wjp> what's the keyword for the fmsynth?
[17:54:25] <Colourless> fmsynth :-)
[17:54:25] <wjp> oh, duh
[17:54:31] <wjp> that's one screen up :-)
[17:55:17] <wjp> now, let's see what this does
[17:59:23] <wjp> #ifdef USE_FMOPL_MIDI
[17:59:23] <wjp> static const int mct_array_size = 6;
[17:59:23] <wjp> #endif
[17:59:23] <wjp> std::string* midi_conversiontext = new std::string[mct_array_size];
[17:59:37] <wjp> that's kind of bad when USE_FMOPL_MIDI isn't defined
[18:00:02] <Colourless> oh shit :-)
[18:00:31] * wjp properly defines USE_FMOPL_MIDI this time... oops :-)
[18:01:26] <Colourless> well, you can consider yourself lucky, you found 2 problems ;-)
[18:02:17] <wjp> yay! :-)
[18:02:43] <Colourless> in case you were wondering, mct_array_size should equal 5 when not USE_FMOPL_MIDI
[18:03:31] <wjp> yeah
[18:03:56] <wjp> then there's some incorrect for scoping it seems
[18:04:19] <Colourless> i really wonder, was it necessary to make it static......
[18:04:33] <wjp> probably not :-)
[18:07:07] <wjp> ...compiling usecode...
[18:07:23] <wjp> ...objs...
[18:08:41] <wjp> ...main dir...
[18:11:31] <wjp> ok, same errors
[18:11:44] <wjp> undefined refs to the virtual table
[18:11:56] <Colourless> i have to wonder... how!?! :-)
[18:12:39] <wjp> this is generally caused by not implementing some virtual functions, I think
[18:15:06] <wjp> hm, what does ": virtual public MidiAbstact" mean?
[18:15:14] <wjp> (the 'virtual', in particular)
[18:15:24] <Colourless> i don't know 'for sure'
[18:15:30] <Colourless> all of them have that
[18:15:37] <wjp> removing the virtual gets rid of half the errors for me
[18:18:07] <Colourless> what does it have now?
[18:18:38] <wjp> only "undefined reference to `FMOpl_Midi virtual table" now
[18:19:15] <Colourless> example of a place?
[18:19:27] <wjp> in the constructor and destructor of FMOpl_Midi
[18:19:59] <wjp> line numbers given are just the opening {'s
[18:20:00] <Colourless> hmm
[18:20:28] <wjp> I don't see any unimplemented virtuals
[18:21:23] <Colourless> try getting rid of all the PSMDEX stuff from the .h and .cc
[18:21:40] <wjp> is that just the block with the comment?
[18:22:01] <Colourless> yeah just the funcs under the block
[18:22:17] <Colourless> max_streams to get_active
[18:22:20] <wjp> same error
[18:23:04] <Colourless> in the header remove the ../ from the Midi.h include
[18:23:41] <Colourless> ah, i think i know
[18:23:52] <Colourless> line 26 of .cc
[18:24:16] <wjp> uh, that's not the interface :-)
[18:24:16] <Colourless> replace
[18:24:20] <Colourless> #pragrma interface
[18:24:22] <Colourless> with
[18:24:23] <Colourless> #pragma implementation
[18:24:52] <Colourless> no wonder why kirben and me didn't see any problems
[18:25:00] <Colourless> !(WIN32) :-)
[18:26:43] <wjp> ...*sigh*... accidently modified Midi.h
[18:26:48] * wjp waits for recompile
[18:26:57] <wjp> k, links now
[18:30:18] <Colourless> ok
[18:43:00] <wjp> I have to go
[18:43:00] <wjp> bye
[18:43:03] <-- wjp has left IRC ("gtg")
[18:43:47] <Colourless> DARKE: WAKE UP! KEEP ME COMPANY NOW THAT WJP HAS DESERTED ME!
[18:46:34] <-- Colourless has left IRC ("bah. you disappoint me darke")
[21:31:39] --> wjp has joined #exult
[21:31:39] --- ChanServ gives channel operator status to wjp
[22:43:35] --> dwing010 has joined #exult
[22:50:43] <dwing010> quiet
[23:03:54] <wjp> hi
[23:04:02] <wjp> yeah, wrong time of day
[23:04:10] <wjp> too late for europe, too early for australia
[23:05:56] <wjp> I should be going too... have to get early again tomorrow
[23:05:56] <wjp> bye
[23:06:05] <-- wjp has left IRC ("Zzzz....")
[23:28:47] <-- dwing010 has left IRC ()
[23:52:26] --> DWing010 has joined #exult