Back to Home / #openttd / 2007 / 11 / Prev Day | Next Day
#openttd IRC Logs for 2007-11-09

---Logopened Fri Nov 09 00:00:56 2007
00:28|-|mikk36|work [] has joined #openttd
00:28<mikk36|work>heh, 26k citizens in a non-helped city in desert :P
00:45|-|mikk36|w [] has joined #openttd
00:49|-|slafs_ [] has joined #openttd
00:49|-|wolfryu [] has joined #openttd
00:50|-|nfc_ [~nfc@] has joined #openttd
00:50|-|Noldo_ [] has joined #openttd
00:50|-|eQualize1 [] has joined #openttd
00:50|-|Rubidium_ [] has joined #openttd
00:50|-|XeryusTC2 [] has joined #openttd
00:52|-|dfox_ [] has joined #openttd
00:52|-|LeviathNL [] has joined #openttd
00:52|-|Flyinglord^ [] has joined #openttd
00:53|-|tokai|ni [] has joined #openttd
00:53|-|Netsplit <-> quits: eQualizer, mikk36|work, wolfy, slafs, Noldo, qfh, nfc, @Rubidium, Leviath, XeryusTC, (+2 more, use /NETSPLIT to show all of them)
01:04|-|HerzogDeXtE1 [] has quit [Read error: Connection reset by peer]
01:13|-|BigBB_ [] has joined #openttd
01:19|-|BigBB [] has quit [Ping timeout: 480 seconds]
01:20|-|Unknown_Entity [] has joined #openttd
01:35<Unknown_Entity>hi hylje
01:35<SpComb>Logs: (old: )
01:37|-|Gekz [] has joined #openttd
01:48|-|Diabolic-Angel [] has joined #openttd
01:54|-|wolfryu changed nick to Wolfensteijn
01:57|-|Frostregen_ [] has joined #openttd
02:03|-|Frostregen [] has quit [Ping timeout: 480 seconds]
02:04|-|Frostregen_ changed nick to Frostregen
02:09|-|Deathmaker [] has joined #openttd
02:23|-||Bastiaan| [~kvirc@] has joined #openttd
02:34|-|TinoM [] has joined #openttd
02:34|-|ludde [] has joined #openttd
02:48|-|Deathmaker [] has quit [Read error: Connection reset by peer]
02:50|-|mikl [] has joined #openttd
02:50|-|Osai [] has joined #openttd
02:55|-|Sacro [~Sacro@adsl-87-102-80-216.karoo.KCOM.COM] has quit [Remote host closed the connection]
02:57|-|XeryusTC2 [] has quit [Ping timeout: 480 seconds]
02:58|-|XeryusTC [] has joined #openttd
03:02|-|Ammler [] has joined #openttd
03:03<Gekz>la la la la la la la lalalalala
03:06|-|Jello [] has quit [Ping timeout: 480 seconds]
03:20|-|Osai [] has quit [Quit: Osai]
03:25|-|Osai [] has joined #openttd
03:28|-|lolman changed nick to John
03:29|-|John changed nick to lolman
03:30|-|Jello [] has joined #openttd
03:50|-|Vikthor [~Vikthor@] has joined #openttd
03:51|-|mikl [] has quit [Remote host closed the connection]
03:53|-|shodan [] has joined #openttd
03:55|-|orudge [] has quit [Quit: Goodbye.]
04:02|-|orudge [] has joined #openttd
04:02|-|mode/#openttd [+o orudge] by ChanServ
04:03|-|Sacro [~Sacro@adsl-87-102-80-216.karoo.KCOM.COM] has joined #openttd
04:10|-|Osai [] has quit [Quit: Osai]
04:24|-|Purno [] has joined #openttd
04:37|-|Eddi|zuHause2 [] has quit [Ping timeout: 480 seconds]
04:40|-|Farden [] has joined #openttd
04:41|-|Eddi|zuHause2 [] has joined #openttd
04:47|-|Alltaken [] has joined #openttd
04:53|-|Dark_Link^ [] has quit [Read error: Connection reset by peer]
04:53|-|Dark_Link^ [] has joined #openttd
05:08|-|mikl [] has joined #openttd
05:22<Unknown_Entity>can anyone tell me what StartSpriteCombine() is doing and if it could be the cause of the strange SpriteIDs I still get?
05:23|-|stillunknown [] has joined #openttd
05:41|-|MarkMc [] has joined #openttd
05:43|-|Zavior [] has joined #openttd
05:44|-|mikl [] has quit [Quit: Connection reset by Peer Gynt]
05:49|-|HerzogDeXtEr [] has joined #openttd
05:56|-|TinoM| [] has joined #openttd
05:57|-|TinoM| [] has quit []
05:57|-|MarkMc [] has quit [Quit: - nbs-irc 2.36 - -]
06:00|-|Unknown_Entity [] has quit [Ping timeout: 480 seconds]
06:01|-|Deathmaker [] has joined #openttd
06:07|-|BigBB [] has joined #openttd
06:07|-|BigBB_ [] has quit [Quit: BigBB_]
06:08|-|LordAzamath [] has joined #openttd
06:09|-|Unknown_Entity [] has joined #openttd
06:16|-|Alltaken [] has quit [Quit: ChatZilla [Firefox]]
06:17|-|Progman [] has joined #openttd
06:21<CIA-1>OpenTTD: truelight * r11395 /trunk/src/ (town_cmd.cpp tunnelbridge_cmd.cpp): -Fix: allow town-bridges to be build on slopes (Rafal Rzepecki)
06:21|-|Gonozal_VIII [] has joined #openttd
06:21<Gonozal_VIII>hello all
06:22<CIA-1>OpenTTD: truelight * r11396 /trunk/src/vehicle_gui.cpp: -Fix: GCC 3.3 doesn't like 'static bool inline', should of course be 'static inline bool' (SmatZ)
06:23<Gonozal_VIII>short question out of interest... how many bit/byte is a single map tile with all information?
06:24<TrueBrain>the size of _m...
06:24<TrueBrain>what would it be currently..
06:24<TrueBrain>8 + 8 +16 + 8 + 8 + 8 + 8 bits
06:24<TrueBrain>(type_height + m1 .. m6, where m2 is 16 bit)
06:24<Gonozal_VIII>thanks :-)
06:24<TrueBrain>see src/map.h
06:25|-|LeviathNL [] has left #openttd [Leaving]
06:25|-|LeviathNL [] has joined #openttd
06:26<Gonozal_VIII>does it really use that in ram/hd or more?
06:26<LeviathNL>why is there also a m7 in /docs/landscape_grid.html ?
06:26<TrueBrain>lol, LeviathNL, you are right
06:26<TrueBrain>+ 8 ;)
06:26<TrueBrain>Gonozal_VIII: type_height + m1 .. m6 are 8 bytes in total, so it uses 8 bytes, and is stored as a single array
06:27<TrueBrain>m7 is stored as an extended, using 1 byte, and stored in a seperate array
06:27<TrueBrain>as maps are always word-aligned
06:27<TrueBrain>I guess it is safe to say: 9 bytes * map-tiles
06:27<Gonozal_VIII>ok thanks for that good answer
06:28<Gonozal_VIII>i had an idea and wanted to know if it would make sense
06:29<Gonozal_VIII>but i wouldn't be able to implement anything anyways
06:29<Gonozal_VIII>at least not yet
06:29<Unknown_Entity>is 184404916 a valid SpriteID? something similar is passed to ViewportDrawTileSprites() on a regular basis and crashes the game
06:29|-|ThePizzaKing [] has quit [Quit: ThePizzaKing]
06:30<TrueBrain>Unknown_Entity: it doesn't look like it, but who knwos what happens internally :p
06:33<Gonozal_VIII>my idea was to assign each possible tile combination a single number, maybe 16 bit and have a db with those numbers as key and all necessary sprite, pathfinder, ground bla data in it
06:34<Unknown_Entity>TrueBrain: i was hoping you could shed some light on my problem. if i simply ignore those spriteIDs this is what I get:
06:34<Unknown_Entity>so obviously some sprites are missing, mostly tiles
06:35<Unknown_Entity>that screenshot is outdated by the way. depots are showing up correctly by now
06:35<LeviathNL>DS-port :o?
06:35<Unknown_Entity>LeviathNL: work in progress
06:36<Unknown_Entity>LeviathNL: but it's kinda playable (except for missing sprites, some crashes and being unable to click some buttons due to resolution)
06:37<LeviathNL>nice work!
06:37<Gonozal_VIII>yes that's cool
06:40<LeviathNL>Unknown_Entity, isnt the pointer to a spriteid passed to ViewportDrawTileSprites ?
06:41<TrueBrain>Unknown_Entity: I really don't know why the tiles are garbaged..
06:41|-|skidd13 [] has joined #openttd
06:42<TrueBrain>morning skidd13
06:43<skidd13>TrueBrain: This early over there? :D
06:43|-|HerzogDeXtE1 [] has joined #openttd
06:43<TrueBrain>43 minutes past the morning
06:43<TrueBrain>so yes
06:43<Rubidium_>TrueBrain: it's safer to say that it's 10 bytes per map tile
06:43<TrueBrain>Rubidium_: why?
06:43<Rubidium_>all the overhead everywhere ;
06:44<Gonozal_VIII>i'm up since 7:15...
06:44|-|eQualize1 [] has quit [Ping timeout: 480 seconds]
06:44|-|tokai|ni [] has quit [Ping timeout: 480 seconds]
06:44<TrueBrain>Rubidium_: which? I mean, extended is in an array... should use 1 byte per tile :)
06:44<Gonozal_VIII>that's 29,5h :S should really go to sleep now...
06:44<TrueBrain>night Gonozal_VIII
06:45|-|Gonozal_VIII [] has quit [Remote host closed the connection]
06:46|-|tokai|ni [] has joined #openttd
06:47<Rubidium_>TrueBrain: animated tiles one a busy map takes about that
06:47<TrueBrain>Rubidium_: lol, true, but that isn't _m related ;)
06:50<Rubidium_>Gonozal's idea wouldn't even work with 9 byte keys as there is quite a lot information stored in the variables of most buidlings
06:50|-|Rubidium_ changed nick to Rubidium
06:50|-|HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
06:50|-|Unknown_Entity [] has quit [Ping timeout: 480 seconds]
06:51<skidd13>TrueBrain: The comments in the town bridge patch lie. It doesn't fit 100% into the layout. There is a unfrequent case where the target_dir does not fit to the source dir.
06:51<TrueBrain>skidd13: how many out of the how many?
06:52<LeviathNL>cd bin
06:52<skidd13>TrueBrain: Hmm not that much.
06:52|-|Unknown_Entity [] has joined #openttd
06:52<SpComb>Logs: (old: )
06:53<TrueBrain>skidd13: so, it aint a real lie, just a lie in rare cases I guess ;)
06:53<TrueBrain>is there a way to fix it to be 100%?
06:54<TrueBrain>and is this by design, or a bug of target_dir
06:54<skidd13>There should be, but I don't know one in the ballpark. ATM
06:55<LeviathNL>TrueBrain, what do you think about my shore-generating patch?
06:56<skidd13>This bug occured some times earlier. I think it's by design of the old algorith, but don't pin me down on that.
06:56<TrueBrain>LeviathNL: I am unsure, I think I don't like it; I remember we fixed it the other way long ago :p
06:56|-|Stoffe [] has quit [Quit: Peace and Protection 4.22.2]
06:56<TrueBrain>skidd13: so, lets leave it like it is for now :)
06:57<TrueBrain>LeviathNL: but I first need to lookup what happened in thehistory, to be sure what I like ;)
06:57|-|Gekz [] has quit [Quit: KVIrc 3.2.6 Anomalies]
07:11<skidd13>TrueBrain: I just found a way to fix it...
07:13<TrueBrain>skidd13: and it works? :)
07:14<skidd13>It checks if the tile before the bridge has the RoadBit to the bridge set. So yes
07:17|-|Unknown_Entity [] has quit [Ping timeout: 480 seconds]
07:18<TrueBrain>skidd13: patch doesn't apply
07:19<skidd13>TrueBrain: Hmm
07:19<skidd13>What's the problem
07:19<TrueBrain>not sure in fact...
07:19<TrueBrain>Hunk #1 FAILED at 916.
07:19<TrueBrain>patch unexpectedly ends in middle of line
07:19<TrueBrain>might be pastebin
07:20|-|Diabolic-Angel [] has quit [Ping timeout: 480 seconds]
07:20<TrueBrain>can you put it on a http? :p
07:21<skidd13>TrueBrain: As I told you a few days ago nope :(
07:21<TrueBrain>manual applying....
07:21<skidd13>I've got no website
07:25|-|Unknown_Entity [] has joined #openttd
07:31|-|LeviathNL [] has quit [Remote host closed the connection]
07:37|-|Diabolic-Angel [] has joined #openttd
07:39|-|skidd13 changed nick to Guest82
07:40|-|smoovi [] has joined #openttd
07:40|-|skidd13 [] has joined #openttd
07:42<LordAzamath>Does anyone know...? When modeling with Blender, how many tiles is one elevation...I want to make bridge starts-ends, but how high should it be ? Thanks
07:42<LordAzamath>I mean the bridge itself, how many tiles (BLender tiles) from ground
07:43|-|Guest82 [] has quit [Ping timeout: 480 seconds]
07:50<Rubidium>I think nobody knows
07:53|-|Osai [] has joined #openttd
07:55|-|LeviathNL [] has joined #openttd
07:55|-|lolman changed nick to John
07:55|-|John changed nick to lolman
07:56|-|Brianetta [] has joined #openttd
07:56|-|Brianetta [] has left #openttd []
07:58|-|Deathmaker [] has quit [Read error: Connection reset by peer]
07:58|-|mikl [] has joined #openttd
08:06|-|Diabolic-Angel [] has quit [Quit: leaving]
08:10<mikk36|w>Rubidium, is there a reason why a specatator can't see available trains ?
08:11<Rubidium>there probably is, whether it's a good one is something else
08:12<mikk36|w>i'm missing it a lot when i'm not in a mood to play myself but rather just spec
08:12<Ammler>mikk36|w: you can see the used set on the grf list and then check the doc about it
08:12|-|eJoJ [~ejoj@] has joined #openttd
08:13|-|Purno [] has quit [Quit: Always remember you're unique, just like everyone else.]
08:13<mikk36|w>Ammler, that's as straight way to do it as to go to a shop 1km away by a highway travelling 25km
08:14<Ammler>:) indeed
08:14<Ammler>and its also possible that there isn't a doc available
08:22<CIA-1>OpenTTD: truelight * r11397 /trunk/src/town_cmd.cpp: -Fix r11395: some minor fixes for better town-bridge results (and better comments) (skidd13 / TrueLight)
08:30<Ammler>TrueBrain: was there ever a try to import/export patch/grf settings?
08:32<Ammler>we are asked sometimes for the settings we are using on our servers, many would like to use it on a single player game
08:33<Ammler>we can't publish our cfg because of the passwords...
08:35<TrueBrain>then just remove the passwords
08:36|-|mikl [] has quit [Remote host closed the connection]
08:37|-|glx [] has joined #openttd
08:37|-|mode/#openttd [+v glx] by ChanServ
08:38<skidd13>Ammler: If you've got a shell grep is your friend (to filter out stuff like passwords)
08:41<Ammler>hmm, sometimes we have changed the settings while playing or play a scenario from someone...
08:42<Ammler>hmm, but for first is indeed something with removing the password
08:51|-|SmatZ [] has joined #openttd
08:54|-|Vikthor [~Vikthor@] has quit [Remote host closed the connection]
08:55|-|Vikthor [~Vikthor@] has joined #openttd
08:55|-|dihedral [] has joined #openttd
09:07|-|LeviathNL [] has quit []
09:15|-|Rafagd [] has joined #openttd
09:18|-|dihedral [] has quit [Ping timeout: 480 seconds]
09:27<Unknown_Entity>can anyone explain viewport.cpp line 704 to me?
09:27<Unknown_Entity>*vd->parent_list++ = ps;
09:27<Unknown_Entity>are there parenthesis missing?
09:28<Rubidium>write ps to vd->parent_list[0]
09:28<Rubidium>and increment vd->parent_list afterwards
09:28<Unknown_Entity>well that's the line which has a different result on DS and on Unix
09:29<+glx>blame your DS compiler
09:29<Unknown_Entity>glx: i do! but doesn't solve the problem :(
09:30<TrueBrain>Unknown_Entity: so, fix it by: *vd->parent_list = ps
09:30<TrueBrain>(2 lines)
09:30<TrueBrain>some old (weird) compilers to mix up the order of ++ and *...
09:31<Unknown_Entity>yeah, i'm trying that at the moment (always takes an eternity to run the binary *g*)
09:32<Unknown_Entity>argh. still the same problem :(
09:32<TrueBrain>then it is something else ;)
09:32|-|egladil [~egladil@] has quit [Ping timeout: 480 seconds]
09:33|-|Dephenom [~paul@] has quit [Quit: Leaving]
09:33<Unknown_Entity>after that line executes _cur_vd->first_tile->image is set to 184404944. on unix it's something sane. and i suspect that 184404944 is some random memory leak
09:33|-|Dephenom [~paul@] has joined #openttd
09:33<TrueBrain>or buffer overflow?
09:33|-|LeviathNL [] has joined #openttd
09:33|-|eQualizer [] has joined #openttd
09:34<Unknown_Entity>which buffer?
09:37<Unknown_Entity>it's driving me nuts. XD everything else is running so smoothly now
09:38<SmatZ>Unknown_Entity: you may verify that when it is initiated, it has a correct value... then you may set a data breakpoint to see when it is written to
09:39<Unknown_Entity>SmatZ: i don't have a debugger. i'm doing that manually now...
09:39<SmatZ>don't you have even gdb?
09:41<Unknown_Entity>there's a special emulator version with gdb support and you have to set up a stub to receive the debug data. it looked to complicated to bother with until now. *g*
09:44<Eddi|zuHause2>a propos debugger... anyone know an integrated python debugger?
09:45|-|fjb [] has joined #openttd
09:45<Eddi|zuHause2>that better not be an automatted message...
09:47<SpComb>Logs: (old: )
09:48|-|Wezz6400 [] has joined #openttd
09:48|-|Rafagd [] has quit [Remote host closed the connection]
10:23|-|LeviathNL [] has quit [Ping timeout: 480 seconds]
10:23|-|Murray-Mint [] has joined #openttd
10:23|-|SmatZ [] has quit [Remote host closed the connection]
10:23<Murray-Mint>Hi, what IP/port does the game connect to to advertise a game on the master server?
10:23<Murray-Mint>Also, what IP/Port does the client connect to to get the master server list?
10:24<TrueBrain>@openttd port
10:24<DorpsGek>TrueBrain: OpenTTD uses TCP and UDP port 3979 for server <-> client communication and UDP port 3978 for masterserver (advertise) communication (outbound)
10:24<Murray-Mint>Clever... :)
10:24<Murray-Mint>What IP does the master server have?
10:24<Murray-Mint>I'm at a (very) large LAN party, and I need to get the firewall rule added for it :)
10:27<Murray-Mint>THank you very much!
10:32<Unknown_Entity>lol, remember that I said that _cur_vd->first_tile->image is set to 184404944? I found out what that value is. 0xAFDC914. it's the adress where _cur_vd->first_tile->image is stored.
10:33<Unknown_Entity>any ideas why it's behaving like that?
10:33<TrueBrain>the compiler fucks up,or your debug line :)
10:34<Unknown_Entity>very very strange. i'm beginning to dislike ds programming :P
10:35|-|skidd13 [] has left #openttd [ZZZzzzz.]
10:44<Murray-Mint>Superb, that's excellent help with the ports and IP, thank you very much :)
10:44|-|Murray-Mint [] has quit []
10:58|-|Osai [] has quit [Quit: Osai]
10:58|-|LordAzamath [] has quit [Quit: ChatZilla [Firefox]]
11:00|-|[wtc7SG] [~utdoom@] has joined #openttd
11:00|-|G [] has joined #openttd
11:02|-|G_ [] has quit [Ping timeout: 480 seconds]
11:04|-|skidd13 [] has joined #openttd
11:12|-|G [] has quit [Ping timeout: 480 seconds]
11:15<@Belugas>so true :D
11:16<@Belugas>my best one!
11:17|-||Jeroen| [] has joined #openttd
11:34|-|Unknown_Entity [] has quit [Quit: giving up for today]
11:37|-|Grey [~Greyscale@] has joined #openttd
11:37|-|Greyscale [~Greyscale@] has quit [Read error: Connection reset by peer]
11:40|-|Gonozal_VIII [] has joined #openttd
11:58|-|svippery [] has quit [Remote host closed the connection]
12:01|-|svip [] has joined #openttd
12:05|-|skidd13 [] has left #openttd [ZZZzzzz.]
12:07|-||Bastiaan| [~kvirc@] has quit [Quit: KVIrc 3.2.6 Anomalies]
12:11|-|egladil [~egladil@] has joined #openttd
12:12|-|Wolf01 [] has joined #openttd
12:13|-|SmatZ [] has joined #openttd
12:15<SmatZ>hello again :)
12:15<SmatZ>back for a while...
12:29|-|Wezz6400 [] has quit [Quit: 2440457725]
12:32|-|lolman changed nick to John
12:33|-|John changed nick to lolman
12:33<SmatZ>TrueBrain: I have just received email I am talking in my reply I didn't receive...
12:34<SmatZ>so it is working, but sometimes with a little delay
12:43|-|XeryusTC [] has quit [Ping timeout: 480 seconds]
12:44<TrueBrain>SmatZ: too bad for you, you replied at the wrong thread
12:44|-|XeryusTC [] has joined #openttd
12:48<SmatZ>TrueBrain: ah sorry :-o
12:48<TrueBrain>no problem, just don't do it again ;) And you can repost to the correct thread
12:48<SmatZ>this concept is so complex
12:49<SmatZ>I didn't want to, things happen...
12:49<TrueBrain>get a real email client ;)
12:49<Wolf01>"The nation's other strategic robots were quickly torn asunder by the Dajjal" what does mean "torn asunder"?
12:49|-|Diabolic-Angel [] has joined #openttd
12:53<Wolf01>TrueBrain there's a way to subscribe to patches where you replied orown patches only?
12:57<Gonozal_VIII>asunder is easy, what is "dajjal?
12:57<@Belugas>with a capiatl D, it must be a name ;)
12:58<@Belugas>or a title, even
12:58<TrueBrain>Wolf01: sorry, my english parser couldn't parse that sentence
12:58<Gonozal_VIII>name wouldn't have "the" in front of it
12:58<Wolf01>mine too :/
12:59<Eddi|zuHause2>but a title would
12:59<SmatZ>TrueBrain: is there a way to subscribe to notifications only for threads you started or your replied to?
12:59<SmatZ>my parser got it
12:59<Wolf01>the Dajjal is another robot
12:59<@Belugas>yup... like "the Master"
12:59<TrueBrain>SmatZ: ah :) Wolf01: no
12:59<TrueBrain>I am creating a small page that shows the emails per thread
12:59<TrueBrain>including status and such
12:59<TrueBrain>maybe I will add an email-field to it some day
13:00<TrueBrain>but for now, I guess you have to make your client ignore other threads
13:00<TrueBrain>SmatZ: tnx, now the patch is clean code-wise :)
13:00<Gonozal_VIII>wiki says dajjal means anti-christ
13:00<Wolf01>but, why not use a forum instead of a mailing list? forums work well for this kind of things
13:00|-|Wezz6400 [] has joined #openttd
13:01<TrueBrain>Wolf01: nope, they work as bad as FS did
13:01<TrueBrain>Wolf01: now I have a nice list of threads, which show me clearly where a new person replied, which I did't reply too, etc etc
13:01<SmatZ>TrueBrain: :-) nice, but the worse side of this is that things that were not 'clean' I usually copied from other parts of the OTTD code...
13:01<TrueBrain>that only maillist have
13:01<SmatZ>I hope your parser will handle that :)
13:01<TrueBrain>SmatZ: nobody ever said the current code is good :)
13:01<TrueBrain>that is why we want to make it better ;)
13:01<TrueBrain>so sadly enough, it isn't an excuse ;)
13:02<SmatZ>TrueBrain: yes... also, there are now doxygen comments, C++ things and so on...
13:02<TrueBrain>sometimes it is needed to go just a little bit outside your own patch to make the original code just a tiny bit better :)
13:03<TrueBrain>see 11397, the bridge_length thingies weren't needed at all.. but while at it, well, why not ;)
13:03<TrueBrain>Wolf01: btw, as you can see on the maillist activity, I think nobody had this quick replies on their patches ;) So I think a maillist is the right choice, from a developers point of view anyway :)
13:04<Wolf01>forum -> list of threads, forums show when there are new posts, offten forums show with a different icon the threads you replied to... mailing lists are difficult to understand for me, and the forums have the same function
13:04<SmatZ>anyway, I was curious if changing it from uint32 to uint8 will make things faster, when "uint" is supposed to be the fastest data type
13:04<TrueBrain>Wolf01: I disagree :)
13:05<TrueBrain>SmatZ: 'uint' isn't, as we force it to be 32bit :)
13:05<TrueBrain>(so on 64bit it isn't)
13:05<TrueBrain>and compilers optimize that anyway
13:06<SmatZ>TrueBrain: maybe... maybe it will use "movzx" and masks before comparison to fit in 8 bit, when it shouldn't be needed
13:06<SmatZ>on amd64, the fastest data type is 32bit...
13:06<Rubidium>TrueBrain: where do we force uint to be 32 bits?
13:06<SmatZ>if you don't prove something else :)
13:07<TrueBrain>Rubidium: I really hope we do :) (And I am sure we do)
13:07<SmatZ>it doesn't need the REX prefix, and data need less cache
13:07<Rubidium>TrueBrain: I'm kinda sure it doesn't
13:07<SmatZ>but even 8bit integer will usually take 32bits of register/memory
13:08<Rubidium> typedef unsigned int uint;
13:08<TrueBrain>stdafx.h: typedef unsigned int uint32;
13:08<TrueBrain>stdafx.h: typedef unsigned int uint;
13:08<TrueBrain>stdafx.h: typedef unsigned int uint;
13:08<TrueBrain>I am sure uint is 32bit :)
13:08<TrueBrain>always and always and always
13:08<SmatZ>on 16bit DOS, int was 16bit
13:08<Rubidium>TrueBrain: int is not necessary 32 bits
13:08<TrueBrain>SmatZ: yup
13:08<TrueBrain>Rubidium: it is
13:08<TrueBrain>look up.. well.. everywhere
13:09<TrueBrain>even Windows agree
13:09<TrueBrain>the only thing Windows doesn't agree on against Linux, is what 'long' should be
13:09<TrueBrain>or was it 'long long'
13:09<Rubidium>TrueBrain: how big is a short?
13:09<TrueBrain>anyway, either one of the two is different
13:09<TrueBrain>Rubidium: 16bit
13:11<SmatZ>I have to go, bye
13:11<TrueBrain>bye SmatZ :)
13:12<TrueBrain>Rubidium: the main reason this was done, is because else porting became a bitch
13:14<TrueBrain>not the best side, but I lost the one that had a nice table.. anyway:
13:14<TrueBrain>'int' is ALWAYS 32bit, 'long' MIGHT be 64bit (linux only)
13:14<TrueBrain>(so, always avoid the usage of 'long' ;)
13:16<TrueBrain> <- that is more like it
13:16<TrueBrain>anyway, nuff said
13:17<Rubidium>TrueBrain, a DSP: can have short of 32 bits and can have an int of 24 bits
13:17<TrueBrain>Rubidium: C should always correct for that
13:17<TrueBrain>the C standard defines the above rules...
13:17<Rubidium>no it does not
13:17<TrueBrain>sorry, it really says that..
13:17<Rubidium>TrueBrain: where?
13:17<TrueBrain>the internal storage is hidden from the user
13:17<TrueBrain>look up some standard
13:17<TrueBrain>anyway, doesn't matter, OpenTTD 'uint' is 32bit on ALL suported platforms
13:18<Rubidium>the C specs only says sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
13:18<TrueBrain>either 32bit or 64bit systems
13:18<TrueBrain>which breaks in your example, so ;)
13:18|-|Diabolic-Angel [] has quit [Quit: leaving]
13:18<Rubidium>no, it does not
13:18<Rubidium>two different DSP procs
13:18<TrueBrain>euh, you say short 32, int 24... I dunno, sounds not fitting ;)
13:18<TrueBrain>anyway, who cares
13:18<TrueBrain>uint is never 64bit
13:18<Rubidium>some DSPs have short of 32 bits, some (other) have shorts of 24 bits
13:19|-|Diabolic-Angel [] has joined #openttd
13:19<TrueBrain>(or maybe a better statement: what ever size uint32, uint is in that size too)
13:19<TrueBrain>so if you start talking nonsence like that, about DSP, you have a problem anyway in OpenTTD
13:19<TrueBrain>as uint32 isn't 32bit
13:19<TrueBrain>and uint16 isn't 16bit
13:19<TrueBrain>and in fact, it would break saveload totally
13:20<TrueBrain>so, evenso we don't force uint to be 32bit, for sure we do force it to be the same size as uint32
13:21<Rubidium>no, it's just "luck" that noone makes a processor where unsigned int != uint32
13:21<TrueBrain>hahaha, oh bo
13:21<Rubidium>for an OS where OTTD runs on
13:21<TrueBrain>dafx.h: typedef unsigned int uint32;
13:21<TrueBrain>unsigned int is ALWAYS uint32...
13:21<Rubidium>TrueBrain: if that is the case, it must be in the C++ specifications
13:21<TrueBrain>Rubidium: no, it is how we define it
13:22<TrueBrain>uint32 is OpenTTD thingy
13:22<TrueBrain>(okay, BEOS has it defined in the system-headers)
13:22<Rubidium>TrueBrain: for windows it apparantly holds that unsigned int is uint32
13:22<TrueBrain>for OpenTTD it holds that unsigned int is uint32...
13:23<TrueBrain>stdafx.h:262 states that
13:23<Rubidium>that is ONLY for Windows and OS2
13:23<Rubidium>i.e. only for x86 processors
13:24<TrueBrain>it is outside any #ifdef block
13:24<TrueBrain>(okay, inside not BEOS)
13:24<TrueBrain>and even more fun: assert_compile(sizeof(uint32) == 4);
13:24<Rubidium>then someone did completely misalign the crap in stdafx.h
13:25<TrueBrain>Rubidium: no, nobody ddid
13:25<TrueBrain>you are just wrong
13:26<TrueBrain>so it really is true, that on any system OpenTTD compiles successful, an uint is the same size as an uint32, is 32bit
13:27<Rubidium> <- 3.9.1 only states their relative size. It does not state how large it is
13:28<Rubidium>it even does not specify whether signed integers are 2 or 1 complement
13:28<stillunknown>What kind of rendering backend is used for openttd?
13:28<TrueBrain>Rubidium: you are correct, C specification don't specify it by detail
13:28<TrueBrain>nevertheless, OpenTTD does
13:31<Rubidium>it does not check it for BEOS
13:31<TrueBrain>Rubidium: it does the check for sure
13:31<TrueBrain>and the above rule still holds
13:31<Rubidium>TrueBrain: where does it check that sizeof(unsigned int) for BEOS?
13:31<TrueBrain>you really can try to find a way around it, but is it that hard to admit you were wrong and in OpenTTD uint32 == uint?
13:32<TrueBrain>assert_compile(sizeof(uint32) == 4); <- about there...
13:32<stillunknown>Why don't you just use a uint32_t or something like that?
13:32<Rubidium>where do you define uint32?
13:32<TrueBrain>oh, unsigned int, indeed, BEOS doesn't
13:32<Rubidium>define uint32 for BEOS
13:32<TrueBrain>but I am all this time talking about uint and uitn32
13:32<TrueBrain>stillunknown: historical reasons I guess
13:32<Rubidium>probably because MSVC doesn't have uint32_t
13:33<Rubidium>(and friends)
13:33<@Belugas>[13:34] <stillunknown> Why don't you just use a uint32_t or something like that? <--- not all compilers support that, iirc
13:33<TrueBrain>Rubidium: for all I know/care, BEOS uses 64bit for shorts, and 16bit for unsigned int... uint16 is 16bit, and uint32 is 32bit
13:33<Rubidium>then the thing you declared in the begin (that sizeof(uint) == sizeof(uint32)) does not hold for BEOS
13:34<TrueBrain>haha, it still does :) But okay, we don't check on it
13:34<TrueBrain>so concratulations, after a detour of minutes
13:34<TrueBrain>you finally found a way
13:34<TrueBrain>so you don't have to admit you are wrong
13:34<TrueBrain>and that all tnx to BEOS
13:34<TrueBrain>(sorry, but you can be stubber)
13:35<Rubidium>oh yes I can ;)
13:35<TrueBrain>feel proud? Sad...
13:35<TrueBrain>"as Patrick Stout said to" <- why is typing my name that hard?! Idiots...
13:36<TrueBrain>Rubidium: but can we settle on the fact that uint is always 32bit?
13:37<Rubidium>no, we can settle on the fact that we do not explicitly force uint to be 32 bits
13:37<TrueBrain>besides for BEOS, we do
13:37<TrueBrain>should I add that for BEOS?
13:38<Rubidium>when you do that, add a check for the way the signedness for signed integers is encoded ;)
13:39<TrueBrain>we don't depend on that
13:39<Rubidium>we don't?
13:39<TrueBrain>as long as it is one or two complement
13:39<TrueBrain>we are fine
13:39|-|Brianetta [] has joined #openttd
13:39|-|BigBB [] has quit [Quit: BigBB]
13:39|-||Jeroen| [] has quit [Quit: oO]
13:39<TrueBrain>(as I am sure there aren't BCDs systems in the world with signed integer support)
13:40|-|Wezz6400 [] has quit [Quit: Have a nice weekend]
13:41<Rubidium>one complement means (bitwise not) ~0 == 0
13:41<TrueBrain>no -0 :p
13:42<TrueBrain>there are btw even systems having the binary value 00000000 meaning -127 :p
13:42<TrueBrain>makes you wonder....
13:42<Rubidium>some CPUs convert -0 to 0, some don't; -0 == 0 is true on some, it isn't on others
13:43<Rubidium>anyway... it's all hypothetical as there is (AFAIK) no really often used CPU with those characteristics
13:44<TrueBrain>there (still) are one-complement systems
13:45<Rubidium>true, but are they fast enough to even run OTTD?
13:45<TrueBrain>so now you want to filter on that?
13:45<TrueBrain>you don't want to state uint == uint32, but you do want to state one-complement isn't important? :p
13:46<Rubidium>the uint/uint32 issue was hypothetical too
13:46<TrueBrain>most of us only care about reality ;)
13:46|-|Gonozal_VIII [] has quit [Ping timeout: 480 seconds]
13:47<Rubidium>true, but ... not everything is applied mathematics either, there's theoretical mathematics too
13:47<TrueBrain>so, should I apply this patch?
13:48<TrueBrain>as I really like to say: uint == uint32
13:49|-|LeviathNL [] has joined #openttd
13:49<Rubidium>don't think it's really necessary, just drop BEOS ;)
13:50<TrueBrain>when was the last time someone compiled for BEOS?
13:50<TrueBrain>who maintains BEOS anyway?
13:51<TrueBrain>so I guess it is dropped :p
13:51<TrueBrain>so, uint == uint32?
13:52|-|[wtc7SG] [~utdoom@] has quit []
14:02|-|Gonozal_VIII [] has joined #openttd
14:03|-|skidd13 [] has joined #openttd
14:05<TrueBrain>hi skidd13
14:05<TrueBrain>we welcome you in this warm channel of debates about nothing :)
14:06<skidd13>Whats up in here?
14:06|-|Wolf01 changed nick to Wolf01|AWAY
14:07<TrueBrain>people :)
14:07<TrueBrain>and currently, my food :)
14:07<fjb>Hi skidd13, they were killing time by counting bits.
14:08<skidd13>crowd_bits = 0x00; // Stop wasting the time :P
14:09<TrueBrain>I should be doing things, but I hate doing things
14:10<skidd13>I'm off bowling. CU folks
14:10|-|skidd13 [] has left #openttd [ZZZzzzz.]
14:10<TrueBrain>have fun!!
14:10<TrueBrain>too late...
14:14[~]Gonozal_VIII does things
14:15<Gonozal_VIII>i made a screenshot of my best roro entry design :-)
14:17<fjb>The station entry is usually not my problem.
14:18<Gonozal_VIII>i think that is the easiest part
14:22<Gonozal_VIII>there hast to be at least a train length after the platforms before the merge but that shouldn't be a problem
14:23<fjb>The problem is the connection betwenn the sttions. I hate to build this stupid overtaking sections. They never work like intended.
14:24<fjb>Stration entry and exit are symetric in my networks.
14:25<Gonozal_VIII>i try not to mix trains with different speeds
14:25<Gonozal_VIII> <-- that's my entry
14:27<fjb>I usually can harly avoid to mix trains aof different speeds. Or else I wouls have to terraform the whole world.
14:28<Gonozal_VIII>i use dbsetxl, the wagon maxspeeds are pretty low, they reach their max speed fast
14:29<fjb>I use it too.
14:29<Gonozal_VIII>passengers are a different network...
14:30<fjb>I just build some main lines an connect everything to them.
14:31<fjb>Hm, where can I put a screenshot of my station design?
14:32<Gonozal_VIII>i don't know, just used my webspace
14:32<fjb>Myx webserver is down at the moment.
14:33<fjb>Hm, there is a srennshot section at the forum.
14:36<Gonozal_VIII>i think i found a bug in my own picture^^ there should be an exit signal after the depot, not entry like i wrote
14:38|-|LeviathNL [] has quit [Quit: Leaving]
14:39<fjb>Ammler: Thank you
14:39<Ammler>different speed network is something I miss on coop servers
14:44<Gonozal_VIII>in my experience split and merge again for overtaking causes more troubles than it solves
14:44<TrueBrain>the speed-limit patch is nice, but indeed, it gives more network problems than it solves
14:45<fjb>Here it is:
14:45<fjb>Wagon speed limits make the game more realistic.
14:46<fjb>And the game is still easy enough.
14:46<Gonozal_VIII>that's right
14:47<Gonozal_VIII>and more use for rvs, as they are faster than some of the wagons
14:47<Gonozal_VIII>like sand and limestome with ecs... max speed is 80 km/h
14:48<fjb>Yes, but I think it is kind of a bug that there is only one wagon availlable for sand.
14:48<Ammler>fjb: but you don't have many trains..., then it works
14:48|-|BiA|pavel-css [] has joined #openttd
14:48<Ammler>else you could block the station
14:49<Ammler>if at same time 2 trains try to enter same plattform
14:49<Gonozal_VIII>looks realistic but not very efficient
14:49|-|Zuu [] has joined #openttd
14:49<hylje>yes to road classes!
14:50<fjb>I tested it. It is really efficient. Here is a more efficient version:
14:50<hylje>from dodgy path to highway
14:50<fjb>Ammler: two trains trying to enter the same platform can happen, but the timing must be very bad.
14:51|-|dihedral [] has joined #openttd
14:51<hylje>fjb: it's a small chance of deadlock by itself
14:52<hylje>fjb: so it's not showing up in coop at least
14:52<Gonozal_VIII>no not deadlock... there are no signals for a long discance, the trains would turn around after some time
14:53<hylje>for that some time then
14:53<fjb>I didn't have any deadlock with that design yet, even with many trains.
14:54<Ammler>fjb: if this station type would be efficent, we would use it on our servers :P
14:54<Gonozal_VIII>would be better with pbs
14:55<Ammler>Gonozal_VIII: you will have more problems with pbs then, not less
14:55<hylje>pbs makes stuff like that easier
14:55<hylje>but not necessarily better
14:55<fjb>It would be much better with better signlas. :-)
14:56<Gonozal_VIII>btw why are there two combos before the station?
14:56<Ammler>fjb: how do the inner 4 plattforms enter the depot?
14:56<fjb>Yes, I will take a better screen shot.
14:57<fjb>Ammler: They don't have a depot. But there are more depots at the entry and exit of the station.
14:57<Ammler>only 2
14:57<hylje>i heard something happened over at netherlands
14:58<Ammler>fjb: nice airport?
14:58<Gonozal_VIII>but not nice crash^^
14:59<fjb>The crash was not itended...
14:59<Ammler>fjb: also that house on the left border, from which Set are they?
15:00<fjb>Here you can see the signlas better:
15:00<Gonozal_VIII>ecs i think
15:00<fjb>Ammler: which of the houses?
15:00<fjb>Most are TTRS.
15:00<Ammler>the big white one
15:00<Ammler>never saw that
15:00<Gonozal_VIII>small construction thing?
15:00<Ammler>like a storage hall
15:01<Gonozal_VIII>i think that's what it is
15:01<fjb>Ah, yes, with the green roof. that is from ECS.
15:02<Ammler>and the airport?
15:02<Ammler>but generally nice looking style fjb
15:03<Gonozal_VIII>i think i have almost the same grfs
15:03<fjb>The airport is from the combined airport set. Should be at GRF crawler.
15:04<fjb>I think most are using that grfs, maybe exchanging the uk set for ECS and DBset.
15:05<fjb>I like it when the land is not just flat, I like it looking a bit like nature. :-)
15:05<fjb>And I had a model railway, whne I was young...
15:07<Ammler>an225_gr.grf <-- aircraft?
15:07|-|BigBB [] has joined #openttd
15:07<Ammler>and how is ECS working?
15:07<Ammler>most of them are still alpha
15:07<Gonozal_VIII>can load everything
15:08<Gonozal_VIII>it's set to anything but passengers
15:08<fjb>Most of ECS is working, and it is fun to use, even if many things are alpha. But it's all still new.
15:08<Gonozal_VIII>i think that includes tourists... have to look
15:08<fjb>Tourists are fine.
15:08<Ammler>we never played ECS seriously yet
15:09<dihedral>we should :-)
15:09<Ammler>Gonozal_VIII: yes it has, they are in the town vector I guess
15:10<Gonozal_VIII>yes can load tourists... that's not right...
15:10<Gonozal_VIII>but minor problem
15:10<Ammler>Gonozal_VIII: could you make a nice (and working) scenario for us?
15:10<Gonozal_VIII>hmm i never made a scenario
15:11<Gonozal_VIII>only played random maps...
15:11<dihedral>first time for everything :-)
15:12<fjb>Here is one of the small harbours and a small private railway:
15:13<Gonozal_VIII>rüsselbrücken^^ funny town name
15:13<Ammler>hmm, fjb, the patch for better looking newwater seems to work well
15:13<fjb>Yeah, some of the german town names in the game are really funny.
15:14<Ammler>we have patched our member server with it
15:14<dihedral>since when that Ammler ?
15:14<Ammler>since about 2 hours
15:14<Gonozal_VIII>are there no signals at the harbour station?
15:14<fjb>I didn't apply any path in that game. It's play r11386.
15:15<fjb>No signals because there is only one track, used in both directions.
15:15<Gonozal_VIII>but three platforms
15:16<fjb>Yes, for trains waiting for their cargo.
15:16<Gonozal_VIII>buuuut.. they don't enter without signals? or are there some hidden under the road bridge?
15:16<Ammler>fjb: its better, I am not sure if it will be loadable in trunk later
15:17<fjb>Oh, sorry, there is a signal in front of every platform of course. they are under the bridge.
15:18<fjb>The only patch I'm experimenting with is the passenger destination patch. But that was another game.
15:18<Gonozal_VIII>passenger destination will be nice when it's ready
15:19<Gonozal_VIII>i've played several games with old versions
15:20<TrueBrain>I am so bored! Oh boy oh boy
15:20<TrueBrain>is the coop game any good lately?
15:20<Gonozal_VIII>don't know
15:21<fjb>TrueBrain: Start implementing PBS. :-)
15:21<Ammler>hmm, we started a newcargo.grf game at the Member Zone, with the sharing patch
15:22|-|Peakki [] has joined #openttd
15:22<Gonozal_VIII>or a system where the trains are dumb and the switches do the path calculating (programmable)
15:22<@Belugas>[15:22] <TrueBrain> I am so bored! Oh boy oh boy <--- I would gladly trade places :S
15:22<Ammler>fish and chips, ahm beer
15:22<Ammler>Belugas: he is just joking, I guess
15:22<TrueBrain>Belugas: I should be doing.. well... alot
15:23<TrueBrain>I just don't have anyone breathing down my neck to really do it
15:23<TrueBrain>so... I don't do it :)
15:23<TrueBrain>Ammler: cool! Can I join? :)
15:23<TrueBrain>fjb: I won't do PBS
15:23<fjb>TrueBrain: Was just a thought...
15:24<TrueBrain>fjb: I know
15:24<TrueBrain>and if I knew I could do it, I would
15:24<TrueBrain>but I know I can't :)
15:24<Ammler>hmm, Truelight is the honorary member
15:24<TrueBrain>Ammler: I know :)
15:24<fjb>The next plain crash...
15:24<@Belugas>TrueBrain :
15:24<@Belugas>initiation to grf operations :D
15:25<TrueBrain>newgrf... brr :)
15:25<Gonozal_VIII>yes... i would never take a plane in the openttd world
15:25<fjb>Why do they allway fall onto the airports. .-(
15:26<Ammler>TrueBrain: if you like to take a look, you know our place...
15:26<TrueBrain>Ammler: I wish :) I come from the time there wasn't a member server ;)
15:27<Gonozal_VIII>chrisin has a patch for plane crash frequency... would be nice in trunk
15:27<Eddi|zuHause2>fjb: most of the accidents happen on starting or landing
15:27<fjb>Ammler: If you look closely, you can see some trams and some trucks from the long vehicles here:
15:27<Ammler>ah, come on, I can remember how you complained about the new building style on the Werklose desync
15:28<TrueBrain>Ammler: that was ment for me? As I hav eno idea what you are talking about :s
15:28<fjb>Eddi|zuHause2: I know, that is real. I was only complaining because they were my airports... :-)
15:28<Ammler>hmm, Mucht is ill and can't help...
15:29<Ammler>TrueBrain: its about 14 months
15:29<fjb>I don't mind those crashes, they are part of the game. But I have to colain if it happens to me.
15:29<TrueBrain>Ammler: ah, my memory stops working after 2 months :)
15:31[~]fjb loves trams.
15:31<Gonozal_VIII>me too
15:32<TrueBrain>here they drive against busses
15:32<TrueBrain>less amuzing ;)
15:32<Gonozal_VIII>which tramset do you use?
15:32<fjb>The dutch tram set.
15:32<fjb>The busses must not stop at the wrong place...
15:33<Gonozal_VIII>ah i haven't yet looked at that, wasn't out when i tested trams
15:34|-|Dephenom [~paul@] has quit [Quit: Leaving]
15:34|-|Dephenom [~paul@] has joined #openttd
15:34<Gonozal_VIII>i choose the serbian trams
15:34<fjb>The dutch trams are articulated. :-)
15:35<hylje>The dutch trams are overrated. :-)
15:36<fjb>Maybe, but there is not much better out there yet. Other sets are only availlable to beta testers.
15:37<fjb>The generic tram set has articulated trams, too. But I didn't like that set that much. It was too generic for my taste.
15:37<fjb>And I patched the dutch tram set to cooperate nicely with the long vehicles. :-)
15:40<Gonozal_VIII>hmm the passenger numbers are very low... is that per vehicle part?
15:40<Gonozal_VIII>ah yes ok
15:40<fjb>Yes, per part.
15:41<hylje>shouldnt articulated rvs show the full cap?
15:41<hylje>because, well, one gets the full vehicle instead of a loco and cars
15:41<hylje>(same with multiple part rail vehicles?)
15:42<fjb>It shows the full capacity in the vehicle info, but not in the list of buyalble vehicles.
15:44<Gonozal_VIII>it doesn't look very good in curves, they get seperated too far...
15:45<fjb>But it looks far better than the long busses...
15:45|-|mikk36 [] has joined #openttd
15:45<mikk36>hey :)
15:45<Gonozal_VIII>ok that's true
15:45<mikk36>is there any particular reason for openttd being so cpu-hungry in vista ?
15:45<fjb>Hi mikk36
15:46<Gonozal_VIII>yes, vista sucks
15:46<fjb>Depends on the size of your cpu...
15:46<mikk36>fjb, same cpu -> xp usage 1-2%, vista usage 60+%
15:47<mikk36>A64 3200+
15:47<fjb>Oh, strange. But I don't use Windows, so i'm no expert for that.
15:47<mikk36>shouldn't be a slow cpu :)
15:47[~]fjb uses the same cpu.
15:47<TrueBrain>mikk36: I guess it isn't OpenTTD, but Vista ;)
15:48<Gonozal_VIII>i think vista isn't really ready yet
15:48<fjb>Only chirsin with the grass growing on tracks makes the game really slow with many trains.
15:48<mikk36>i do have slightly less performance in vista (from 5 to 20%, but nowhere as close as with openttd)
15:48<mikk36>openttd is just crazyly slow in vista
15:49<fjb>OpenTTD is designed not vor Vista. :-)
15:49<mikk36>512x256 map moderately filled -> stable 100% cpu
15:49<mikk36>that is about 100 trains
15:50<fjb>Did you try the same save on XP?
15:52<Gonozal_VIII>[21:37:53] fjb: And I patched the dutch tram set to cooperate nicely with the long vehicles. :-) <-- would you give me that version please?
15:54<mikk36>fjb, a new game, about 10 trains, 50% cpu
15:55|-|BigBB [] has quit [Remote host closed the connection]
15:55|-|BigBB [] has joined #openttd
15:55<Gonozal_VIII>switch on fast worward and look how long a year takes with the same save in xp and vista
15:56<mikk36>i don't have xp next to me
15:57<dihedral>would it be possible for multi core systems to add a command line option, with which one could specify at least which core the game should use?
15:57<dihedral>TrueBrain? ^ that line :-)
15:57<fjb>Gonozal_VIII: Here is the diff to the .nfo in the grf. You have to use grfcodec and patch:
15:58<TrueBrain>dihedral: no
15:58<TrueBrain>now that was easy :)
15:58<TrueBrain>you can control it in Windows I believe, via Task Manager
15:58<TrueBrain>but it really is up to the OS in my opinion
15:58<TrueBrain>hi SmatZ :) Nice to have you back!
15:58<Ammler>how with linux?
15:58<Gonozal_VIII>thanks fjb
15:58<Ammler>(choose the core, I mean)
15:58<fjb>Hi SmatZ
15:58<TrueBrain>Ammler: as far as I know, it does a good job :)
15:59<Ammler>you mean automatically.
15:59<SmatZ>hello TrueBrain, I am with my girlfriend for whole weekend, so no OTTD development... ;-)
15:59<mikk36>in win: task manager -> set affinity
15:59<TrueBrain>SmatZ: bah, girlfriends...
15:59<SmatZ>hello fjb, have a nice friday!
15:59<TrueBrain>mine always want to take me away from OTTD too :p
15:59<dihedral>TrueBrain: try reversing that
15:59<SmatZ>yes, she is saying my name
15:59<SmatZ>to stop typing here :-p
15:59<fjb>SmatZ: Thank you. And be carefull what you are developping. :-)
16:00<TrueBrain>SmatZ: always when I continue to type things
16:00<TrueBrain>she gets... well..
16:00<TrueBrain>in a good way ;)
16:00<TrueBrain>always nice to end.. well... there are underaged children here ;)
16:01<fjb>TrueBrain: just say busses and long vehicles. :-)
16:01<TrueBrain>more: depot and long vehicle (both not plural)
16:01|-|Soup [] has joined #openttd
16:02<Ammler>welcome back Soup
16:02<Soup>can i play #openttdcoop
16:02<TrueBrain>Ammler: did I saw him asking what I thought he was asking?
16:02<SmatZ>TrueBrain: hmmm maybe I could try that strategy ;-)
16:03<TrueBrain>SmatZ: it only works N times ;)
16:03<Ammler>Soup: how is your virus?
16:03<TrueBrain>can I play with my train?
16:03[~]dihedral pats TrueBrain on the head
16:03<dihedral>sure you can
16:04<TrueBrain>people can ask such weird questions
16:04<dihedral>in some cases it can however be amusing :-P
16:04<Soup>* Soup hits himselft on a wall
16:05|-|bob27 [] has joined #openttd
16:05<Gonozal_VIII>you broke a virus?
16:05<TrueBrain>or your train?
16:05<dihedral>it got infected :-D
16:05[~]dihedral also hits soup against a wall
16:05<TrueBrain>that aint nice
16:05<Gonozal_VIII>don't make a mess
16:06<dihedral>i was being helpful
16:06<dihedral>at least he does not have to do those things all by himself
16:06|-|SRCR [] has joined #openttd
16:06<Soup>o w w!
16:07<TrueBrain>Soup: you are starting to annoy me
16:07<TrueBrain>in general, it is a bad idea to annoy me
16:07<SRCR>I have started a dedicated server but i would like to start a map in 1024*1024 where do i set that (I keep getting the 256*256)
16:07<TrueBrain>SRCR: either start the game normally and change it via the GUI
16:07<TrueBrain>or change openttd.cfg
16:07<TrueBrain>see wiki page for more info
16:08<dihedral>TrueBrain: soup got himself banned from #openttdcoop, and #wwottdgd
16:08<TrueBrain>dihedral: ah :) So it won't be long? :)
16:08<TrueBrain>oh joy oh joy oh joy :) Am I looking forward to this :)
16:08<dihedral>we shall lose all that fun
16:08<Gonozal_VIII>what did he do?
16:08<dihedral>it's so amusing
16:08<SRCR>thanks.. I'll have a look (In my case it's openttd.cfg) my server is non graphical
16:08<TrueBrain>dihedral: so.. can I toy with him then?
16:08<Ammler>Gonozal_VIII: nothing, his virus is doing all that
16:08<TrueBrain>SRCR: good choice :)
16:09<dihedral>or - TrueBrain: you could setup a honypot irc server, emulating certain nicks :-D
16:09<TrueBrain>wiki page explains most things about openttd.cfg, SRCR
16:09<TrueBrain>let us know when you need any more info
16:09<Gonozal_VIII>aaah irc virus
16:09<TrueBrain>dihedral: in fact, it is just a nice idea to do that
16:09<dihedral>with a honeypot irc server, you'd at least get all the nice conversation
16:09<TrueBrain>in general
16:09<Ammler>a java virus
16:10<TrueBrain>Average responce-length of Soup: 4 letters
16:10<Soup><> cracked egg
16:10<TrueBrain>I am impressed
16:10<TrueBrain>he can type!
16:10[~]fjb rememberes Eliza.
16:10|-|bob27 [] has left #openttd []
16:10<dihedral>this is just too great
16:10<dihedral>no - not you
16:10<TrueBrain>oh, the average just dropped to 3 letters
16:11<TrueBrain>hmm, now 4 again
16:11<TrueBrain>stop doing that
16:11[~]dihedral slaps Soup
16:11<fjb>No letters anymore...
16:11<Soup>i lauged myselft
16:11|-|KritiK [] has joined #openttd
16:12<dihedral>i bet that nick aint registered... :-P
16:12<Eddi|zuHause2>we should talk german... words tend to get much longer there :)
16:12<dihedral>lol Eddi|zuHause2
16:12<fjb>No problem.
16:12<Gonozal_VIII>Donaudampfschifffahrtsgesellschaftskapitän :-)
16:12<Soup> slaps german
16:13<fjb>No, wrong.
16:13<TrueBrain>Soup: here we only slap you
16:13[~]dihedral points at soup and laughs
16:14<Gonozal_VIII>Rheinmaindonaukanaldampfschifffahrtsgesellschaftskapitän :P
16:14<@Belugas>these are real words????
16:14<hylje>three f:s?
16:14<dihedral>shiff < 2 f's
16:14<Eddi|zuHause2>hylje: yes, since the 1996 spelling reforme
16:14<dihedral>fahrt < one f
16:15<Gonozal_VIII>schifffahrt is 3 f
16:15[~]dihedral votes for soup
16:15<TrueBrain>@kick Soup enough
16:15<DorpsGek>TrueBrain: Error: I need to be opped to kick someone.
16:15<TrueBrain>Belugas: can you +o DorpsGek?
16:15|-|mode/#openttd [+o DorpsGek] by Belugas
16:15<TrueBrain>@kick Soup enough
16:15|-|Soup kicked [#openttd] DorpsGek [enough]
16:16|-|Soup [] has joined #openttd
16:16<Eddi|zuHause2>be wewwy quiet, i'm hunting wabbits
16:16<fjb>It didn't help.
16:16<Soup>end of the war
16:16<@Belugas>anything to help you, TrueBrain
16:16<Soup>this borring
16:16<TrueBrain>you know your way to the exit?
16:17|-|mode/#openttd [+o TrueBrain] by DorpsGek
16:17|-|mode/#openttd [+b *!*] by TrueBrain
16:17<@TrueBrain>let me help you in the general direction
16:17<fjb>Just follow DorpsGek
16:19|-|SRCR [] has left #openttd []
16:21|-|Soup [] has quit [Quit: HydraIRC -> <- Po-ta-to, boil em, mash em, stick em in a stew.]
16:21|-|mode/#openttd [-b *!*] by TrueBrain
16:21<@TrueBrain>I didn't even had to kick him...
16:21|-|BiA|pavel-css [] has quit []
16:22<fjb>Strange guy...
16:22<@TrueBrain>you guys don't have to stop talking ;)
16:22<Eddi|zuHause2>i'm sure you figure something out to satisfy your needs ;)
16:22<@TrueBrain>@kick Eddi|zuHause2 tnx for volunteering :)
16:22|-|Eddi|zuHause2 kicked [#openttd] DorpsGek [tnx for volunteering :)]
16:22|-|Eddi|zuHause2 [] has joined #openttd
16:22<@TrueBrain>really, this becomes too easy.....
16:22|-|mode/#openttd [-o TrueBrain] by DorpsGek
16:23<fjb>Where did Eddi go? :-)
16:23[~]TrueBrain hugs Eddi|zuHause2 :)
16:23<Eddi|zuHause2>i'm right here...
16:23<fjb>Ah, ok, I didn't see you.
16:24[~]fjb needs a nfo disassembler...
16:24[~]fjb needs his dragon book.
16:24<hylje>here be dragons
16:25|-|Soup [] has joined #openttd
16:25<TrueBrain>Soup: this is the last time we are this nice
16:25<TrueBrain>next time it really is a kick+ban
16:25|-|Farden123 [] has joined #openttd
16:25<Soup>ok i see
16:25<Gonozal_VIII>chase the dragon!
16:25[~]hylje runs away
16:26<Soup>slap me
16:27<Eddi|zuHause2>this reminds me of the talk like pirate day
16:27<Gonozal_VIII>the what?
16:28[~]fjb found it: COMPILERS Principles, Techniques and Tools (c) 1986, 1987 by Bell Telephone Laboratories Inc.
16:29|-|dihedral [] has quit [Quit: ChatZilla [Firefox]]
16:30|-|G [] has joined #openttd
16:30<fjb>Gonozal_VIII: Dragon book, not dragon smoke...
16:31<Eddi|zuHause2>@seen Prof_Frink
16:31<@DorpsGek>Eddi|zuHause2: Prof_Frink was last seen in #openttd 1 day, 20 hours, 37 minutes, and 12 seconds ago: * Prof_Frink constrains Eddi|zuHause3 to the x-y plane
16:31<Soup>how do i use distcc
16:31<Eddi|zuHause2>read the wiki
16:31<TrueBrain>./configure --enable-distcc
16:31<TrueBrain>and read some good distcc documentation
16:32|-|Farden [] has quit [Ping timeout: 480 seconds]
16:32|-|Farden123 changed nick to Farden
16:32<Soup>what os it works
16:32<Ammler>hmm, what is distcc?
16:32<TrueBrain>many, as long as it has a *nix prompt I guess
16:32<TrueBrain>(so mingw for windows, and *nix)
16:32<TrueBrain>Ammler: distribute CC
16:33<Eddi|zuHause2>Ammler: like compile on multiple processors simultaneously
16:33<TrueBrain>only not on one computer ;)
16:33<Soup>distcc bineaes
16:33<Eddi|zuHause2>nobody excluded that ;)
16:34[~]Ammler is checking If suse does have that
16:34<TrueBrain>Ammler: all linux distros do
16:35<Soup>even cygwin
16:35|-|BigBB [] has quit [Remote host closed the connection]
16:35<Soup>has it
16:35<fjb>One big OpenTTD game on a server farm? :-)
16:35<Ammler>but its not a virus :P
16:35<TrueBrain>fjb: euh, no
16:35<Eddi|zuHause2>fjb: no, not DistTT :p
16:35<Ammler>fjb: you also need to have the clients there then
16:36<Ammler>we tried to run a client over ssh -x
16:36<hylje>my far-future ttd clone/continuation will do just that
16:36<Ammler>for wwottdgd
16:36<fjb>What is is goot for then? Just compiling on the server farm?
16:37<fjb>Ammler: how was the ssh forwarding working?
16:37<Gonozal_VIII>ah truelight that reminds me of something about your server/client openttd... if every player is client and server at the same time with a part of the map on each pc, the max map size would be lots bigger
16:37<Eddi|zuHause2>fjb: any multi-core computer can profit from that...
16:37<Ammler>it seems x needs much more cpu then dedicated
16:38<TrueBrain>Gonozal_VIII: there is more to it then just that ;)
16:38<Ammler>server couldn't handle the game
16:38<TrueBrain>Eddi|zuHause2: for local computer compilation, you have 'make -jN', not distcc
16:38<hylje>TrueBrain: so you though of that too
16:38<TrueBrain>hylje: I had various 'speeches' here and drafts about it
16:38<Eddi|zuHause2>well, i don't have a multi-core ;)
16:39<TrueBrain>hylje: I can talk 60 minutes long about the idea ;)
16:39<TrueBrain>and the inpact
16:39<TrueBrain>and ways to approach it :p
16:39<Soup>a laptop and a single desktop is much faster than a laptop alone. wow
16:39<hylje>i can picture that
16:39|-|TinoM [] has quit [Quit: Verlassend]
16:39<Soup>found at distcc site
16:41<fjb>make -jN also helps on single core.
16:42<TrueBrain>fjb: not really, the default value is prefect (if you didn't change it ;))
16:43[~]fjb only tried it with BSD make.
16:45<Phazorx>disttt can be posisble if you do somewhat a portal system, then you can do geobased split between servers to localize area of responsibility
16:46<Phazorx>like BigWorld does it
16:46<Phazorx>or lower end implementations similar to WoW or UO/EQ
16:46|-|thgergo [] has joined #openttd
16:46<TrueBrain>Phazorx: all ideas are kind of impossible in the current design of OpenTTD
16:46<Phazorx>of course
16:47<Phazorx>any scale gain would requirw complete rewrite
16:47<Phazorx>but only of network side of things if you go with portal idea
16:48<Phazorx>but that will bump interserver communication to much higher level
16:48<hylje>1. python bindings for ottd
16:48<hylje>2. ???
16:48<hylje>3. profit!!
16:49<TrueBrain>Phazorx: not really
16:49<TrueBrain>just each object needs to gets a random-seed assigned
16:49<TrueBrain>which in fact will slow down the process
16:49<TrueBrain>hmm, my IRC lags 3 seconds..
16:49<TrueBrain>Phazorx: you mean in the way that you can't see 2 regions at once?
16:49<TrueBrain>hylje: you are weird ;)
16:50|-|BigBB [] has joined #openttd
16:51<TrueBrain>hylje: for what do you want python bindings?
16:51<hylje>for.. well, doing stuff!
16:51[~]Soup slaps Soup upside da head with a hairy goldfish
16:52<fjb>Scripting some actions you would usually do manually over and over again.
16:52<TrueBrain>hylje: now that clears it up ;)
16:52<hylje>particularly using ottd gui stuffs for a new backend
16:52<TrueBrain>hylje: hehe :) Good luck splitting off the GUI :)
16:52<Soup>orudge say i
16:52<TrueBrain>you can put on a webGUI ;)
16:52<Soup>or slap
16:52<TrueBrain>Soup: you are doing it again....
16:52[~]Soup likes slapping people and randomly picks Soup to slap.
16:53<hylje>TrueBrain: yeh, think one could start with modularizing stuff
16:53<Gonozal_VIII>create your own channel, there you can slap yourself all you want
16:53<TrueBrain>did you know that I considered last week writing the game in Python totally? :)
16:54<TrueBrain>(via server/client model, even for localhost games)
16:55<Soup>[12:53] <TrueBrain> did you know that I considered last week writing the game in Python totally? :) wow:O
16:56<Gonozal_VIII>with my tile number idea it would be only like 16 bit per map tile and much less traffic :-)^^
16:56<hylje>that could help with thinking a design down up
16:56<Sacro>@seen Bjarni
16:56<@DorpsGek>Sacro: Bjarni was last seen in #openttd 1 day, 1 hour, 10 minutes, and 11 seconds ago: <Bjarni> you are perfectly good at breaking the rules on your own
16:56<TrueBrain>Gonozal_VIII: which 'traffic'?
16:56<Gonozal_VIII>well between clients...
16:56<TrueBrain>Gonozal_VIII: euh, no, that won't help
16:56<TrueBrain>do you have any idea what is send between client?
16:57<TrueBrain>the smallest amount of information thinkable :)
16:57<Gonozal_VIII>only changes?
16:57<TrueBrain>no, that would be VERY slow
16:57<hylje>a whole lot of prediction and assumptions
16:57<TrueBrain>each client does the gamelogic itself too
16:57<TrueBrain>so, the only thing that is sent..... client actions! So, DoCommands
16:58<Gonozal_VIII>yes that's how it is now
16:58<TrueBrain>so, it only sends something if you build a rail
16:58<TrueBrain>and not a lot, just that you want to build a rail, like a local client executed the command
16:58<TrueBrain>you can't get smaller than that ;)
16:59|-|Osai [] has joined #openttd
16:59<Gonozal_VIII>yes but if everything runs on the server or a part of the map at every client
16:59<TrueBrain>ah, you mean it like that :)
16:59<TrueBrain>each tick
16:59<TrueBrain>I believe 1/8th of the map receives a 'tick'
16:59<Soup>a banana
16:59<TrueBrain>and most of the time, they change
16:59|-|mode/#openttd [+o TrueBrain] by DorpsGek
16:59|-|mode/#openttd [+b Soup!*@*] by TrueBrain
16:59|-|Soup kicked [#openttd] TrueBrain [Go kick]
17:00<@TrueBrain>stupid IRC client... why would it ban on the username? :s
17:00<@TrueBrain>anyway, Gonozal_VIII, by my calculations that would mean.. say you have a 128x128 map loaded:
17:00<@TrueBrain>@calc 128*128*2
17:00<@DorpsGek>TrueBrain: 32768
17:00<@TrueBrain>32 kiB per tick...
17:00<@TrueBrain>@calc 128*128*2*30
17:00<@DorpsGek>TrueBrain: 983040
17:00<@TrueBrain>@calc 128*128*2*30/1024
17:00<@DorpsGek>TrueBrain: 960
17:00<@TrueBrain>960 kiB per second...
17:01<@TrueBrain>or: 10 Mib/s....
17:01|-|[1]Soup [] has joined #openttd
17:01<@TrueBrain>no, B and b
17:01|-|mode/#openttd [+b *!*@*] by TrueBrain
17:01|-|[1]Soup kicked [#openttd] TrueBrain [Go kick]
17:01|-|mode/#openttd [-b Soup!*@*] by TrueBrain
17:01<@TrueBrain>Gonozal_VIII: B = byte, b = bit
17:02<hylje>good job banning a whole isp there
17:02<@TrueBrain>hylje: yeah, I fucked up again :p
17:02<@TrueBrain>my IRC client sucks for banning
17:02|-|mode/#openttd [+b *!*] by TrueBrain
17:02|-|mode/#openttd [-b *!*@*] by TrueBrain
17:02<Gonozal_VIII>you only need the date for the part of the map on screen
17:02<@TrueBrain>on the other hand... the ISP deserves a ban, if they allow such users :p
17:02<@TrueBrain>Gonozal_VIII: then scrolling would be dead slow
17:02<@TrueBrain>(I refer to my WebTT :p)
17:03<@TrueBrain>you need a surrounding to allow some kind of smooth scrolling
17:03<@TrueBrain>so, 128x128 I guess is the minimal setting for that
17:03<@TrueBrain>but even with 64x64
17:03<@TrueBrain>you talk about 2.5 Mib/s
17:03<@TrueBrain>(everything about 100 kib/s I am not even willing to consider :))
17:03<@TrueBrain>so, the other way around:
17:03<@TrueBrain>@calc 100000 / 16
17:03<@DorpsGek>TrueBrain: 6250
17:03<@TrueBrain>@calc sqrt(6250)
17:03<@DorpsGek>TrueBrain: 79.0569415042
17:04<Gonozal_VIII>so how would your webtt work?
17:04<@TrueBrain>3x3 map
17:04<@TrueBrain>Gonozal_VIII: currently, it caches a 32x32 map, which takes 1 second to send
17:04<@TrueBrain>euh, that is not true..
17:04<@TrueBrain>5ms, server-load
17:04<@TrueBrain>but okay
17:05<@TrueBrain>each tile takes 20 bytes
17:05<@TrueBrain>anyway, WebTT can only exist if we disable the tileloop
17:05|-|sPooT [] has joined #openttd
17:05<Gonozal_VIII>would be 2 bytes per tile with the tilenumberthing...
17:05<@TrueBrain>and most likely the trees
17:05<@TrueBrain>Gonozal_VIII: no, it has other reasons why it needs more data
17:06<@TrueBrain>browsers are character protocols :)
17:06<@TrueBrain>it needs real letters
17:06<@TrueBrain>and.. it needs context :)
17:06<@TrueBrain>so: UpdateTile(x, y, <yournumber>)
17:06<@TrueBrain>of course we can make it: U(x,y,<yournumber>)
17:06<@TrueBrain>still many chars ;)
17:07<@TrueBrain>anyway, for a normal client this approach can work
17:07<@TrueBrain>but current design of OpenTTD simply doesn't allow it
17:07<@TrueBrain>too much is going on :)
17:08<Phazorx>TrueBrain: make your protocl on top of http
17:08<Phazorx>can make it more compact
17:08<Phazorx>headers are still huge tho
17:08<@TrueBrain>Phazorx: true, but it would mean you need to write that in Javascript ;)
17:08<Phazorx>TrueBrain: you use JS already to reload
17:09<@TrueBrain>hylje: I showed that can be done ;)
17:09<@TrueBrain>Phazorx: but to decrypt such a data-stream...
17:09<fjb>Help, the auto updating doesn't work for my road vehicles. :-( Do Ireally have to replace about 100 trucks by hand?
17:09<@TrueBrain>btw, Gonozal_VIII, how on earth can you pack a 9byte information packet to 2bytes?
17:09<Phazorx>TrueBrain: clients can be slow :)
17:10<@TrueBrain>Phazorx: up to a limit ;)
17:10<Phazorx>you can make flshtt then
17:10<Phazorx>and use free form packets on top of tcp
17:10<Gonozal_VIII>well 2 bytes is about 65k numbers...
17:10<Phazorx>well with some limitations of cource
17:11<Gonozal_VIII>each possible tile in the game gets a unique number...
17:11<Rubidium>Gonozal_VIII: how many unique numbers can you form with 9 bytes?
17:11<@TrueBrain>Gonozal_VIII: you mean each possible combination?
17:11<@TrueBrain>Phazorx: flshtt?
17:11<Rubidium>as the number of possibilities is actually quite enormous
17:11<@TrueBrain>around 2^(9*8) I think ;)
17:12<@TrueBrain>which is about the number of tile combinations you need... as OpenTTD uses almost all bits
17:12<@TrueBrain>Phazorx: I hate flash! :)
17:12<Gonozal_VIII>it wouldn't be that much
17:12<Phazorx>TrueBrain: same here
17:12<@TrueBrain>Gonozal_VIII: I guess you need to get a math-class :)
17:12<Phazorx>my last project was serverside for flash client
17:12<@TrueBrain>or a look at landscape.html
17:12<Phazorx>so i hate it even more now
17:13<@TrueBrain>I always hated flash
17:13<@TrueBrain>mostly, because it takes for ever to load
17:13<@TrueBrain>and it is always annoying
17:13<Phazorx>but you can use it only as middle man to faccilitate communication
17:13<@TrueBrain>that is ture
17:13<Phazorx>like in hudden frame just to feed input/output buffer
17:13<Phazorx>and maintain connection
17:13<@TrueBrain>a bit faking ;)
17:13<Gonozal_VIII>the bytes are split into categorys.. it's 2^8 + 2^8 + 2^8 not 2^8 * 2^8
17:13<@TrueBrain>but even with the best protocol
17:13<@TrueBrain>I don't see how to make WebTT to work ;)
17:14<@TrueBrain>Gonozal_VIII: euh.... okay
17:14<@TrueBrain>but can I ask then, why we wouldn't be using your tile-number stuff already in the game?
17:14<@TrueBrain>I mean, that would be a very good idea, reduction of 4 times the memory footprint!
17:14<@TrueBrain>people would love that!
17:15<Gonozal_VIII>because somebody would have to create the db with all possible tiles
17:15<@TrueBrain>oh, we would be able to fix that, with bit fiddling
17:15<@TrueBrain>but now just think for a moment
17:15<@TrueBrain>at any moment in the game
17:15<@TrueBrain>does it happen that m1 has data, but m2 is empty?
17:16<@TrueBrain>or, for your idea to work: m1 has data, and m2 .. m7 is empty?
17:16<Rubidium>18 types of slopes * 16 types of "groundlandscape * 8 types of treegrowth * 41 types of trees
17:16<Rubidium>=> more than 65536
17:16<@TrueBrain>Gonozal_VIII: take it from us, every bit in the _m array is used
17:16<Rubidium>and that *only* for all possible tree layouts
17:16<@TrueBrain>in its best way
17:16<@TrueBrain>for each tile, most bits are used..
17:16<@TrueBrain>so no way on earth any DB will be able to reduce that ammount
17:17<@TrueBrain>we _need_ all bits, and the combinations are endless... or rather: 2^(8*9)
17:17<Rubidium>so good luck assigning all different tiles to 65536 unique ones, when the trees already make much more than 65536 unique tiles
17:17<@TrueBrain>no bit is left untouched, or unique
17:17<Phazorx>Rubidium: a while ago i offered to store layers of map independantly, like landscape, obstacles, players items, eyecandies - separately
17:17<Rubidium>TrueBrain: not completely true for visualisation (owner bits are not needed)
17:17<Phazorx>hence you can have more optimizable map structures
17:17<@TrueBrain>Rubidium: fences! :)
17:18<Rubidium>Phazorx: how can adding more layers make it more space efficient?
17:18<@TrueBrain>we already are at max efficiency :)
17:18<Phazorx>Rubidium: yeah would jave more limitted bit size
17:19<Phazorx>heigh + slope is what, 6 bits only ?
17:19<Rubidium>a layer for tree information, for example... can't be a linked list of something like that as that would take more memory than a simple array with that information
17:19<Rubidium>slope isn't even stored
17:19<Rubidium>height = 4 bits
17:19<@TrueBrain>is calculated on the fly, every request :s
17:19<Phazorx>well even better then
17:19<Gonozal_VIII>well it certainly wouldn't be more than 2^32 different tiles
17:20<@TrueBrain>Gonozal_VIII: sure, that is why we need 2^72 bits to store all the different possibilities
17:20<Phazorx>so height is a layer of it;s own, then you have permament objects, client side fixtures, server side and client and serverside
17:20<Phazorx>by client i mean things that player can built and by server - things that server can built
17:20<Rubidium>let's see... how many different tiles can I make with a single industry...
17:21<Phazorx>they are maintained differently - at different stages of different ticks
17:21<Phazorx>operating on smaller data set should be beneficial at htese times
17:22<@TrueBrain>Gonozal_VIII: <- our bit usage
17:22<Phazorx>also, such "bitmasks" are likely to be mroe compression friendly if separated since they have less variety - hence mroe compressable by nature
17:22<@TrueBrain>Gonozal_VIII: if you take road, it alone has 2^68 combinations that are possible on the tile
17:22|-|Vikthor [~Vikthor@] has quit [Remote host closed the connection]
17:22<Rubidium>TrueBrain: that's too low ;), let me make a simple calculation about effective number of different tiles (sprite wise)
17:23<@TrueBrain>Rubidium: road-class has 2^68 combinations :)
17:23<@TrueBrain>yes :)
17:23<@TrueBrain>industry 2^64
17:23<@TrueBrain>so, a tiny compression indeed is possible ;)
17:24<@TrueBrain>overlooking the table, I would say... 64bit..
17:24<@TrueBrain>Phazorx: basicly, you mean storing m1, m2, m3, ... seperatly
17:24<Phazorx>TrueBrain: not sure what these are?
17:24<Rubidium>we have NewGRF industries. That has 128 bytes of persistent storage that can be used for determining what sprite to draw, we have all kinds of cargo states (2*3 + 2*2) bytes, productions some bytes, ... in effect I have about 200 bytes of "entropy" to generate a sprite layout from to draw on a tile (and this is only a single industry tile)
17:24<@TrueBrain>Phazorx: see URL :)
17:25<Rubidium>now try to pack 200 bytes of "entropy" into 4 bytes, i.e. compress 200 bytes of "random" data into 4 bytes
17:25<Phazorx>TrueBrain: well to some degree
17:25<@TrueBrain>Rubidium: you only need 2^64 bits to store the industry, assuming the state of the game is the same for the rest
17:26<Rubidium>I wish you good luck, and *IF* you succeeded...
17:26<@TrueBrain>(which in fact is what Gonozal_VIII talked about only.. we didn't even dare to talk about the information required outside the map ;))
17:26<Eddi|zuHause2><Gonozal_VIII> well 2 bytes is about 65k numbers... <- that is not even enough to give each tile on 2048x2048 a different number...
17:26<Rubidium>well... *he* wanted to send the stuff to draw on a tile as a uint32 to the client
17:26<Phazorx>a "farmland" would be a server side only thing, so it would go to same level as stonepiles and other things like that
17:27<@TrueBrain>Eddi|zuHause2: euh... wrong argu,ent :)
17:27<@TrueBrain>argument even
17:27<@TrueBrain>Eddi|zuHause2: if each tile on such map would look identical, you only need 1 number
17:27<Rubidium>I just say that it is not possible when somebody really starts exploiting newindustries' capabilities
17:27<@TrueBrain>Phazorx: then how can a client draw it?
17:27<Eddi|zuHause2>yeah, i know it is backwards ;)
17:27<Phazorx>TrueBrain: by analyzing one by one each "affected layer"
17:27<Phazorx>some dibale others
17:28<@TrueBrain>then nope, I don't follow you :)
17:28<@TrueBrain>I think what you mean is already done
17:28<Phazorx>like if it is a "obstacle" tile - it can not be a tree or "server side emposed removble element"
17:28<Eddi|zuHause2>but a less informed person would probably buy it ;)
17:28<@TrueBrain>but... I am not sure :)
17:28<Rubidium>but then again, there are only about 4 million tiles on the map, but with animation you get a lot of new/different tiles which would gradually give you > 2 billion different tile stacks
17:28<@TrueBrain>Eddi|zuHause2: yeah.. still: bad argument :)
17:28<Phazorx>TrueBrain: lemme erun through theoretical states of map generation
17:29<Phazorx>say you have 2 main layers one controls heigh another owner
17:29<Phazorx>so you only anlyze these at 1st
17:29<Phazorx>heigh obviosly is what is now, owner is wether the tile is frre or player/server(town)
17:29<Rubidium>Phazorx: what do you want to achieve with those "split" layers?
17:29<Rubidium>more memory usage?
17:29<Phazorx>less actualy
17:30<Phazorx>and faster processing hopefully
17:30<@TrueBrain>Phazorx: m1 basicly contains the owner
17:30<Rubidium>you can't get less
17:30<Rubidium>as your "owner" layer can't be misused for other things
17:30|-|Progman [] has quit [Quit: Progman]
17:30<Rubidium>like happens currently with houses and industries
17:30|-|Progman [] has joined #openttd
17:30<Phazorx>that's actualy a point - things should ne be missuesed
17:30<@TrueBrain>Rubidium: the document says only with industry...
17:30<Rubidium>so there you already wasted bytes
17:30<Phazorx>owner should represent owner or abcence of thereof
17:31<Phazorx>how ?
17:31<Rubidium>because you have to store bytes that store no information
17:31<Phazorx>height = 4 bits, owner - 1
17:31<@TrueBrain>Phazorx: really, believe us when we say: the map array is as efficient as it can get :)
17:31<Rubidium>tile type industry -> ALWAYS OWNER_INDUSTRY, storing the owner means wasting space
17:31|-|Vikthor [~Vikthor@] has joined #openttd
17:31<Eddi|zuHause2>Phazorx: tiles that never can have any owner (industries) will still store the useless bits for the information that it does not have an owner
17:31<Phazorx>TrueBrain/rubidium : lemme finish 1st
17:31<Eddi|zuHause2>-> wasted bits
17:32<@TrueBrain>Phazorx: the floor is yours :)
17:32<Phazorx>once again main thing 4+1 bytes that define height and presence of owner (where owner means = soemtihng built thre or just one tile terrain)
17:33<Phazorx>so based on presence or abcence of owner bit it would either go into figuring out what is on that tile or where that tile belongs
17:33<Gonozal_VIII>well... seems like there were some flaws in my theories
17:33<Phazorx>say there is no owner set
17:34<Rubidium>Phazorx: how are you going to store the owners of the tile physically?
17:34<@TrueBrain>Rubidium: he is 'trying' to go in the direction of Igor2's map idea, which infact was more efficient ;)
17:34<Phazorx>Rubidium: next step
17:34<Phazorx>1st no owner -
17:34<@TrueBrain>Rubidium: that map was layered :)
17:34<@TrueBrain>as I remember, the profile showed good results :)
17:35<Phazorx>that emans you should loo into things that are more feasible (popular 1st) leaving les spopular to later
17:35<Phazorx>say tree is most popular things - you look into tre layer
17:35<Phazorx>tyhat should have i dont know how many bits but say 8
17:35<Rubidium>Phazorx: still.. how are you going to store the owner of the tiles that have an owner?
17:35<Phazorx>if there is a tree - done
17:35<Phazorx>Rubidium: i'm working from assumtion that number of things with owner is less than thigns w/o them
17:36<Eddi|zuHause2>TrueBrain: then what happened to that idea?
17:36<Phazorx>so there we go, alternative route where owner bit is set
17:36<@TrueBrain>Eddi|zuHause2: it involved an OpenTTD rewrite :)
17:36<Rubidium>Phazorx: still... HOW are you going to store them... give me some datastructure type name (LinkedList, HashSet, Map, Array)?
17:36<Eddi|zuHause2>TrueBrain: how much of that has been solved with map accessors meanwhile?
17:36<@TrueBrain>Eddi|zuHause2: none
17:37<@TrueBrain>Rubidium: do you remember the SVN of that project?
17:38<Phazorx>Rubidium: i think hashset could be appropriate... say we bump company limit to more than 8 - you get 5, 6 or whatever is feasible bits for owner of a tile, but that is to be storred only for these tiles where owner would make sense
17:38<@TrueBrain>I can't seem to find it in the default libgpmi SVN repos...
17:38<Gonozal_VIII>ah this is going to be in the direction of using less bits for more frequent tiles and more bits for tiles that are not used often
17:38<Phazorx>owner check could/should be one of later stages
17:38<Phazorx>after you figure out what is on that tile
17:38<Eddi|zuHause2>hm... gpmi... that kind of rewrite ;)
17:38<Phazorx>because there are many cases when you need just to display it
17:38<Phazorx>and owner doesnt matter
17:38<Phazorx>and can be safely ignored
17:38<@TrueBrain>Phazorx: your idea works, maybe not in the detail in what you describe, but okay, but not for owner. It is used too often ;)
17:39<Rubidium>LinkedList -> sizeof(pointer) + sizeof(TileIndex) overhead per tile, HashSet -> sizeof(pointer) + sizeof(TileIndex) overhead per tile, Set -> sizeof(TileIndex) overhead per tile, array (tiles without owner as overhead)
17:39<Phazorx>imho - TrueBrain: owner check is to be done only in case if client is modifying sometihng
17:39<Rubidium>owner checks are also done on drawing
17:39<Phazorx>which means it is "on click" rather than on tick/draw sprite
17:39<@TrueBrain>Phazorx: ah, for drawing only, yes, you are right, in the case the client didn't need the owner for gamelogic ;)
17:39<Eddi|zuHause2>Phazorx: or when a vehicle is trying to enter a tile
17:39<Phazorx>Eddi|zuHause2: event based
17:39|-|Peakki [] has quit [Quit: Lähdössä]
17:39<Rubidium>and modifying "something" is what the whole game logic is about
17:40<Eddi|zuHause2>Phazorx: yeah, but that happens multiple times a tick
17:40<Phazorx>Rubidium: i'm trying to work in several different directions at same time
17:41<Phazorx>optimizing datastructure for size, lookup speed and compressability
17:41<Phazorx>memory size i'd actualy move to last spot
17:41<Rubidium>write a paper about it and proof (mathematically) that is will yield a reduction in storeage space, speed and compressability. Then let it get peer reviewed and when that is done I'll look at it.
17:41<Phazorx>it is importnat but is less important that speed seeing current game engine limitations
17:41<@TrueBrain>Rubidium: you did yourself....
17:41<Rubidium>TrueBrain: I did what?
17:42<@TrueBrain>gave a proof-of-concept that Phazorx's idea works
17:42<Rubidium>where? when?
17:42<@TrueBrain>glx: do you remember the SVN we used for that?
17:43<Phazorx>and as far as owner goes - some lookups need to know wherether owner is set or not only so bit would be fine
17:43<Rubidium>that's only about adding extra layers, which isn't significantly slower *but* uses more memory, which is exactly the opposite of what Phazorx is going to prove. Phazorx is going to prove it is going to be more space efficient *and* faster (the exact opposite of my proof-of-concept)
17:43<Phazorx>and some activity can be limited by tipe of tile no matter what an owner is - again actul owner is ignored
17:43<Phazorx>well i'm not sugegsting to do that on top
17:43<@TrueBrain>Rubidium: for owners for example, we established that it was needed to allocate the whole array at once
17:43<Phazorx>but rather instead
17:43<@TrueBrain>for road pieces on the other hand, it wasn't
17:44<@TrueBrain>as < 2% of a map is road, I believe the stats said
17:44<@TrueBrain>then you DO make memory reduction
17:44<@TrueBrain>glx: I can't find it in there :(
17:44<Rubidium>TrueBrain: at the cost of 4 bytes per tile, so net gain is 10%... *but* that assumes that the bytes are not used on any of the other tiles
17:44<Phazorx>TrueBrain / Rubidium / glx i dont think that is exactly what i am suggesting
17:45<@TrueBrain>Phazorx: then you are wrong
17:45<Phazorx>by definition - if i sugegst somthing other than whjat exists already i am wrong?
17:45<@TrueBrain>Phazorx: no :)
17:45<Phazorx>i tihnk this discussion os over then :)
17:45<Rubidium>take trees for example, those use say two bytes and are everywhere, so a new array -> net loss of quite some % due to the fact that you don't have trees everywhere
17:45<@TrueBrain>Rubidium: you really don't remember the tests?
17:46<Rubidium>and finally the conclusion became that using this method, though *much* cleaner, uses more memory
17:46<@TrueBrain>glx: I looked there sveral times.. Iam blind :p
17:46<Phazorx>Rubidium: an object on tile if it is a tree - it can not be soemthign else, hence you will win on nost storing associated things
17:46<Rubidium>TrueBrain: only vaguely
17:46<@TrueBrain>glx: no, that is the AI via GPMI
17:46|-|LeviathNL [] has joined #openttd
17:46<@TrueBrain>Rubidium: really, you were this when you started that
17:46<@TrueBrain>but after Igor2 showed some stats
17:46<@TrueBrain>and you 2 build a lot of code
17:46<@TrueBrain>it showed it really was AND faster AND more memory efficient
17:46<+glx>it's in extensions
17:47<@TrueBrain>as all those % together, did reduce the memory
17:47<Phazorx>Rubidium: i suggest only some things to be bitmasks, especialy these that are not player controlled
17:47<Rubidium>TrueBrain: it did NOT
17:47<Rubidium>TrueBrain: you are really making things up now
17:47<@TrueBrain>no need to argue with statements like that
17:47<@TrueBrain>glx: can't find it :s
17:48<@TrueBrain>this is annoying :) Not being able to find back an old project :)
17:48<Rubidium>Phazorx: you are either not clear or totally not seeing my point
17:48<Phazorx>Rubidium: i see you point of currently storing number of tiles * number of variations for most things
17:48<@TrueBrain>Rubidium: but for the record, I dislike people telling me I am making things up. You might want to calm down a bit.
17:49<@TrueBrain>glx: tilekit! :) :) :)
17:49<Rubidium>you say you want to use the bits used for trees when a tile is not a tree for something different, right?
17:49<Phazorx>i recognize that some of these features are based on "generic data area" element within these "number of variation"
17:50<+glx>TrueBrain: yes it's in gpmi_extensions
17:50<Phazorx>i sugegst separating that to some generic levels where bit maps would work efficiecntly and someother not bitmap based stuctures
17:51<Phazorx>i claim that it is possible to separate data based on usage type from "actiion validation" part of game logic engine
17:51<@TrueBrain>glx: tnx :)
17:51<Rubidium>Phazorx: for what reason?
17:51<Phazorx>at same time to use layer lookup order whoch woudl make "tile image generation" stage easier
17:52<@TrueBrain>glx: bah, the tests are already removed from that... do you maybe have an old old checkout?
17:52<Phazorx>Rubidium: reason being posibility to implement dofferent optimization aproach other than geenric data area wthin map array
17:52<+glx>they used another repo to do the tests IIRC
17:52<@TrueBrain>glx: yeah... I remember that vaguely too
17:52<@TrueBrain>one that was owned by Rubidium I believe, and one by igor2
17:53|-|LeviathNL [] has quit [Remote host closed the connection]
17:53<@TrueBrain>hmm, my log-files don't go back that far
17:53<Phazorx>Rubidium: i am very unfamilar with how data is stored right now, but i am familiar with common data analysys techniques as well as data storing theories
17:53<Rubidium>I didn't own a SVN back then
17:53|-|csaba [] has joined #openttd
17:53|-|LeviathNL [] has joined #openttd
17:54<Rubidium>Phazorx: write a paper or something like that explaining exactly what you mean as IRC doesn't seem to be a right channel to explain it
17:54<Phazorx>and i speak mroe based on theoretical posibility and most likely that would mean changing a lot of things and hence i am stepping on many toes :)
17:54<Phazorx>well i might just do that
17:54<+glx>svn:// <-- this one maybe
17:54<@TrueBrain>no, that were XML speed checks
17:55<Phazorx>however bouncing idea of heads of present company might be agood exercize as well
17:55<@TrueBrain>which showed libxml2 was VERY fast :p
17:55|-|Zuu [] has quit [Quit: Leaving]
17:55|-|G_ [] has joined #openttd
17:55<Phazorx>as i mentioned - i dont know how data is tored right now specificaly, and i also might miss something very obvious for a developer that is not obvious to an one who is not familiar with the project to necessary level
17:56<@TrueBrain>glx: I guess we have to ask igor2 tomorrow :) He can look on the local disk..
17:56<+glx>yep, I can't find more on my HD
17:57|-|G [] has quit [Ping timeout: 480 seconds]
17:57<@TrueBrain>glx: svn://
17:58<Rubidium>TrueBrain: that was, AFAIK, the thing about the low backend of tile storing for different levels
17:58<Phazorx>as far as industries go for example - it can be akeyed list, based on roster of "used tiles" linked to industry id
17:58<Rubidium>i.e. that's from where 'geo' evolved
17:58<@TrueBrain>Rubidium: layers, exactly, yes :)
17:59<@TrueBrain>which was, as far as I remember, more efficient in byte-storing
17:59<+glx>TrueBrain: I don't have it on my HD ;)
17:59<Rubidium>but those layers are completely different types than the one Phazorx is talking about
17:59<@TrueBrain>(and more easier to use)
17:59<Rubidium>as the layers of geo are 'z' layers
17:59<@TrueBrain>Rubidium: possible, as I said, I doubt what Phazorx is telling can be done, but something simular can be done
17:59<@TrueBrain>which in fact would reduce memory footprint
17:59<@TrueBrain>(and speed)
17:59<@TrueBrain>and is more flexible
17:59<@TrueBrain>that was the word I was looking for :)
18:00<Rubidium>you "could" think about allocating memory per tile
18:00<@TrueBrain>Rubidium: am I still making things up?
18:00<Rubidium>but then you have an overhead of at least 3 bytes per tile
18:01<Rubidium>so the average (current) tile must "waste" at least 3 bytes
18:01<@TrueBrain>you talk about igor's idea?
18:01<Rubidium>nah, GPMI's design was totally different
18:01<Rubidium>at least geo's design
18:01<@TrueBrain>exactly. In that design, it was more efficient, not?
18:02<Rubidium>no, *but* the most efficient it could get given the strict separation rules for GPMI.
18:02<@TrueBrain>what I remember, all the % together, it did use less memory..
18:02|-|thgerg1 [] has joined #openttd
18:02<@TrueBrain>we assumed 16 layers (16 bits to indicate if the layer was active), and still it consumed less..
18:03<@TrueBrain>mostly because things like: only N% of the tiles use road
18:03<Tefad>would 4bits not be enough?
18:03|-|Sionide- [] has joined #openttd
18:03|-|G_ changed nick to G
18:03<Rubidium>you can make the current map less space efficient, but only at cost of processor times
18:03|-|Sionide [] has quit [Read error: Connection reset by peer]
18:03<@TrueBrain>but Rubidium, anyway, am I still making things up?
18:03|-|thgergo [] has quit [Read error: Connection reset by peer]
18:04|-|Sionide- changed nick to Sionide
18:04<Rubidium>that I made something that was both more space and memory efficient than OTTD's? Yes, that is not true
18:06|-|csaba [] has quit [Quit: ChatZilla [Firefox]]
18:07<Rubidium>you simply can't make something more space and processor efficient. I highly doubt you can even make it more processor efficient; probably, but at cost of memory as you start adding redundant information so GetTileOwner doesn't need to switch, or HasBridgeAbove doesn't need to switch
18:08<Rubidium>only means that 2 bytes per tile need to be added
18:08<@TrueBrain>I am looking for this document:
18:08<@TrueBrain>btw, Rubidium, for the record, you are very stubber today
18:08<Rubidium>more memory efficient means "encrypting" everything more, which then needs decrypting, which takes time.
18:09<Rubidium>TrueBrain: gone with the disk it was on
18:10<Rubidium>the disk was totally broken; nothing could be saved and I didn't have much space for backups, so I didn't backup that.
18:16<Tefad>encrypting or compressing?
18:16<Tefad>i don't see how encrypting would save space as a general rule . .
18:17<@TrueBrain>Tefad: it depends how you define compresion, as it can be an encryption ;)
18:17<Rubidium>it's more bitfucking etc, not real "compression"
18:17<Rubidium>and the bitfucking makes it more cryptic
18:17<Tefad>lossless compression is still compression
18:18<@TrueBrain>LZW is a nice encryption :)
18:18<Tefad>you know you love shl and shr ; )
18:18[~]Rubidium wonders whether removing duplicate files is called compression too
18:18<Tefad>Rubidium: solid archive?
18:19<Tefad>look at how well goodmerge compresses rom collections where there's slight variations amongst .. 5 or so files
18:19<Tefad>5 files down to less than the size of one : )
18:20<Tefad>and compressing just one yields only a slightly smaller archive
18:20<Tefad>LZW? LZO ftw.
18:21<@TrueBrain>I had to write my own LZW thingy a few days back, it amuzed me how much of a compression or encryption it could be :)
18:21<@TrueBrain>if you don't know how it is done, doubtful you will ever figure out :p
18:21<Tefad>compression makes for a very very weak encryption
18:22<@TrueBrain>I agree :)
18:22<Tefad>i wrote my own huffman codec in java
18:22<Rubidium>ROT0 is the weakest I guess ;)
18:23<Tefad>next would be ROT256 ; )
18:23<Rubidium>depends on the amount that is going to be rotated
18:23<Tefad>if you were really nuts, you'd write something that obfuscates into brainfuck code then compresses
18:24<@TrueBrain>Tefad: nuts, yes
18:24<@TrueBrain>a company gave $250,000 to who ever could decrypt a piece of text
18:25<@TrueBrain>it was like 20 A4 pages full I believe
18:25<@TrueBrain>they only didn't give the encryption method with it..
18:25<@TrueBrain>well... then I can come up with N ways, which you won't be able to crack, ever
18:25<Tefad>onetime pad
18:25<Eddi|zuHause2>in theoretical computer science, "compression" means writing a universal turing machine, then writing a program on that machine that reproduces the original input
18:25<@TrueBrain>Tefad: exactly :)
18:25<@TrueBrain>so I was considering your brainfuck, how useful it would be... but if you know how it is done, I guess it is easy ;)
18:26<@TrueBrain>I like those 'demos', that are 64 KiB, and have a full 3D application
18:26<@TrueBrain>now that is compression
18:27<Tefad>the produkkt
18:27|-|Farden [] has quit [Quit: ( :: NoNameScript 4.02 :: )]
18:27<Tefad>not much compression as it is taking advantage of crafted random patterns as textures ; )
18:27<@TrueBrain>true true
18:27<Tefad>but yeah, it's quite nuts : D
18:27<@TrueBrain>still, I wouldn't even know how to set up a 3D env in 64 KiB :p
18:28<@TrueBrain>hmmm.. I _can_ write Dune in my WebTT
18:28<@TrueBrain>now that is something worth considering...
18:29<Eddi|zuHause2>well, the trick about compression almost no possible combination of bits is actually used
18:30|-|KritiK [] has quit [Quit: Leaving]
18:30<Tefad>those guys made a 3d FPS within 96KB
18:33<@TrueBrain>Tefad: I respect that a lot :)
18:33<Eddi|zuHause2>on the other hand, almost no (finite) bitstream is actually compressible to something that is not in O(1) around the size of the original input
18:33<@TrueBrain>Eddi|zuHause2: there were people from Japan claming to compress something on an incredible rate...
18:33|-|Osai [] has quit [Quit: Osai]
18:33<@TrueBrain>it was 200:1 I believe
18:33<@TrueBrain>on any data
18:33<@TrueBrain>well.. after their first statement that they did it, nobody ever read anytihng from them again
18:33<@TrueBrain>but still! :)
18:34<SmatZ>textures, maps done as simple fractals
18:34<Eddi|zuHause2>there were preople trying to patent algorithms that could compress any input string by 1 bit
18:34<Eddi|zuHause2>and then repeating that step over and over again
18:34<SmatZ>yes, I read about it rather often at comp.compression
18:35<Eddi|zuHause2>they did not get very far either, i believe :p
18:35<Tefad>unpossible ; )
18:35<SmatZ>these people do not want to understand simple math proof...
18:35<@TrueBrain>it happens more often
18:35<@TrueBrain>it is funny, then you read something on slashdot, of which you think: impossible
18:36<@TrueBrain>than some days later they post it
18:36<@TrueBrain>or you read in an other magazine that it can't be done
18:36<@TrueBrain>(like some weeks back some guys thought they had found a way to accelerate a partical faster than light.... too bad for them they just made an other experiment to show quantum entanglement)
18:37<Eddi|zuHause2>the mathmatical prove is almost trivially easy
18:37<Eddi|zuHause2>if you have X possible strings of n bits
18:38<Eddi|zuHause2>you only have X-1 possible strings of 0..n-1 bits
18:38<Tefad>you cannot shring 1bit of data by one bit, then you no longer have data.
18:38<Eddi|zuHause2>so at least 1 string you cannot compress
18:38<Tefad>shrink anyway
18:39[~]Rubidium wonders when you shrink that last bit twice by one bit
18:39<@TrueBrain>Eddi|zuHause2: if, and only if, all combinations are used, you are correct
18:39<Phazorx>there are entropy based compression algos with "guess" based decompression
18:39<Phazorx>compression takes forever but you get miracles
18:39<Tefad>al la flac?
18:39<Tefad>or no
18:39<Phazorx>imagine a 2d array where you know summs of all rows
18:40<Phazorx>and colums
18:40<Tefad>like sudoku or something
18:40<Phazorx>kinda reverse but ues
18:40<@TrueBrain>indeed takes for ever ;)
18:40<Eddi|zuHause2>TrueBrain: yes, i said that before... compression only works because "almost no" strings are actually used
18:40<Phazorx>so you know all sums and some arbitrary amount of cells and a math appratus that knows how to guess
18:40<@TrueBrain>Eddi|zuHause2: and with strings you mean bit-combinations?
18:40<Phazorx>the rest which is not know
18:41<Eddi|zuHause2>yes... but the used alphabet does not really matter
18:41<@TrueBrain>Phazorx: in fact, what Tefad said, reduce it to a Sudoku, and it even consumes less space ;)
18:41<Eddi|zuHause2>(as long as you compress into the same alphabet)
18:41<Phazorx>TrueBrain: that is very performance inefficient
18:41<@TrueBrain>Phazorx: yours isn't? :p
18:41<@TrueBrain>lol :)
18:41<Phazorx>TrueBrain: same thing
18:41<Phazorx>btu i tihnk that's where future is
18:41<SmatZ>omg NO! I did svn revert in a wrong directory
18:41|-|thgerg1 [] has quit [Read error: Connection reset by peer]
18:42<@TrueBrain>Phazorx: fun part: you can compress that matrix too
18:42<@TrueBrain>it gives an other reduction
18:42<Phazorx>as number of dimetions grows - amoutn of data stored decreased exponentialy to the power
18:42<Tefad>SmatZ: ohnoes, use your backup you made yesterday, right?
18:42<@TrueBrain>you can do it till a given N in matrix-size
18:42<@TrueBrain>SmatZ: that sucks.. tip: use Mercurial (hg)
18:42<SmatZ>Tefad: well, maybe four hours lost :-/
18:42<Eddi|zuHause2>i _always_ do a "svn diff > temp" before a "svn revert"
18:42<Tefad>ah not so bad then
18:42<@TrueBrain>Phazorx: it in fact is a very nice compression way :)
18:43<SmatZ>TrueBrain: I should use it...
18:43<SmatZ>Eddi|zuHause2: yes, a good idea
18:43<@TrueBrain>the main trick is to leave as little information as possible, while keeping decompression as fast as possible
18:43<@TrueBrain>and the solution needs to be unique
18:43<Phazorx>TrueBrain: you get better result if you start from many dimensions
18:44<Phazorx>but i havent seen a decent "guessing" algo that can do it efficiently w/o cotrnering itself
18:44<@TrueBrain>I wonder, is there a math-proof to show what data you at least need to keep the solution unique?
18:44<Phazorx>basicaly a copression would give you a slider between infity of time spend and infitly small size
18:44<@TrueBrain>btw, Phazorx, what are you in daily life?
18:44<Eddi|zuHause2>Phazorx: the "optimal" compression is undecidable
18:45<Phazorx>well, you dont need to keep it unique
18:45<Phazorx>but you need to provide same amount of data for same algo to get same result
18:45<@TrueBrain>Phazorx: you do if you want to get the same result ;)
18:45<Phazorx>TrueBrain: mope
18:45<Phazorx>a solution is a branch
18:45<Phazorx>you give it just enough hits to get to end of it
18:45<Eddi|zuHause2>Phazorx: a compression _must_ be injective
18:46<Phazorx>so basicaly you have an aswer for every fork
18:46<Phazorx>and hope that number of hints outweights the block size
18:46<@TrueBrain>btw, Phazorx, what are you in daily life? (and yes, Tefad, I ment profession :))
18:46<Phazorx>outweighst in yeld as in less than
18:46<Eddi|zuHause2>you can not _ever_ have two different strings that get compressed to the same output
18:46<Phazorx>system architect :)
18:47<Phazorx>specializing in MMO solutions
18:47<@TrueBrain>age? :p
18:47<@TrueBrain>k :) At least gives an idea to what/who we are talking ;)
18:47<@TrueBrain>hehe :)
18:47<Phazorx>sure :)
18:47<@TrueBrain>anyway, Phazorx, I don't see how it can work if the solution isn't unique
18:47|-|Diabolic-Angel [] has quit [Quit: leaving]
18:48<Phazorx>it is kinda tricky
18:48<@TrueBrain>it of course firstly depends on what you were compression exactly
18:48<@TrueBrain>I assumed a matrix created from the binary stream
18:48<Phazorx>doesnt realy
18:49<Phazorx>welli can envision it being something lie
18:49<Phazorx>take a fast algo to compress a stram and loose uniformity
18:49<Phazorx>anything will do
18:49<Phazorx>as long as you dont get any chunks that all checksums are 0s
18:49<Phazorx>so it gives you a starting point
18:50<Phazorx>then say you want to take a cube of 256x256x256
18:50<Phazorx>that's a bug chunk of info 16MB
18:50|-|BigBB [] has quit [Remote host closed the connection]
18:50<Phazorx>and then you make xor in evey row colum of all surfaces
18:50<Phazorx>basicaly you get 256x3
18:51<Phazorx>then pick a random cell in the cube as starting point
18:51<Phazorx>and follw some algo to guess the rest
18:51<Phazorx>when you guessed wrong - add another cell
18:51<@TrueBrain>that guessing really can take for ever...
18:51<@TrueBrain>add an other cell?
18:52<Phazorx>well no amount of combiantions is limitted
18:52<@TrueBrain>do you have a name for those kind of algorithms?
18:52<Phazorx>there must be one, i called them entropy based ones :)
18:52<Phazorx>came out of a discussion i had with some mathematitian specialising in N-dimantianal data systems and wavelets
18:53<Phazorx>basicaly that would take numerical calculation aproach to another level
18:53<@TrueBrain>that 'guessing' means you need to guess 255 numbers
18:53<@TrueBrain>and how the XOR adds up..
18:53<@TrueBrain>how = hope
18:53<Phazorx>well yes
18:53<SmatZ>TrueBrain: girlfriend sleeping, patch updated :-p
18:53<@TrueBrain>SmatZ: hehehehehe :)
18:54<Phazorx>guessing part is giving as little as possible "cells"
18:54<Phazorx>to come to predefined full matrix
18:54<Phazorx>if you lucky it can be one
18:54<@TrueBrain>but, that matrix, filled with data
18:54<@TrueBrain>should be equal to the starting point, right?
18:54<@TrueBrain>so, the amount of data inside the matrix, should result in an unique solution, right?
18:54<Phazorx>i dont see any limitation on that part
18:54<Phazorx>well with given dataset yes
18:55<@TrueBrain>as the content of the matrix is the input to the decoder of the original compression
18:55<Phazorx>but a solutio to that math problem is a tree
18:55<@TrueBrain>so that is rather tricky, to make sure it is unique..
18:55<Phazorx>worst scenario = no math apparatus
18:55<SmatZ>I can't let her sleep alone, night
18:55|-|SmatZ [] has quit [Remote host closed the connection]
18:55<@TrueBrain>Phazorx: what if I 'guess' numbers and find an other solution
18:55<Phazorx>so you do brute force to guess all cells
18:55<@TrueBrain>it will ... well.. break things ;)
18:56<Phazorx>TrueBrain: that means you need to provide another "start cell"
18:56<Phazorx>or an additional one most likely
18:56<@TrueBrain>but, how to do that?
18:56<@TrueBrain>I mean, after compression, I only get N things
18:56<Phazorx>an intelegent guess
18:56<@TrueBrain>I can't request an other 'start cell'
18:56<@TrueBrain>I only have what I have
18:56<Phazorx>well again 256x256x256
18:56<Phazorx>in theory from knowing all checksumms and one specific cell
18:57<Phazorx>is it possible to calculate all other cells
18:57<@TrueBrain>and is that really an unique solution?
18:57<Phazorx>to some subset of values
18:57<Phazorx>it isnt
18:57<Phazorx>you get subsets
18:57<Phazorx>but say 1st vaue on some of these subsets are these that you need
18:58<Phazorx>so you need to inellegently guess another cell in additon to curent one
18:58<Phazorx>that would gibve you even more right guesses
18:58<Phazorx>and so on
18:58<Phazorx>untill 1st element of all subests are match to starting data
18:58<@TrueBrain>hmm, I still don't completely see this, but okay ;)
18:59<Phazorx>then you end up with N^M + K bytes
18:59<Phazorx>sorry yes
18:59<Phazorx>N*M + K bytes that give you N^N data
19:00<@TrueBrain>where M is 3, and K is the start-cells?
19:00<Phazorx>obviously as M<<N and compressing and K is a M coordinates + value
19:00<Phazorx>K is array of start cells
19:00<@TrueBrain>yeah, k, guess that one correctly ;)
19:00<Phazorx>each elemnt is a byte value and it's cooredinates
19:01<@TrueBrain>any life example of this? :p
19:01<Phazorx>depending on data set and K data you can in theory to compress N^N to N^M+M
19:01<Phazorx>it needs a math engine to be feasible
19:01<@TrueBrain>any plans on making it? :p
19:02<@TrueBrain>I read more about such things, I try to remember where... but.. complete failure in my head :p
19:02<@TrueBrain>it was described differently though..
19:02<Phazorx>it is somewhat borderline with fractal thoery
19:02<Phazorx>and guessing values to comeup with checksums can be based on wavelet theory
19:03<Phazorx>that emphisizes on errors and deviations
19:03<Phazorx>in this case you'd try to come up with data set that would have them limited to 0
19:03<Phazorx>it is somewhat possible
19:03<Phazorx>but how good it will be really based on math behind it
19:03<Phazorx>and i simply lack capacity on that level
19:04|-|BigBB [] has joined #openttd
19:04<@TrueBrain>hehe :)
19:04<@TrueBrain>well, it does sound nice :)
19:04<Phazorx>i'm sure someone else with right approcha and background based on this can come to something much faster than i would
19:04<@TrueBrain>and if it works, it really compresses
19:04<Phazorx>it is luck based you see
19:04<ln->this is quite nice: (not porn, sorry, but contains trains)
19:05<Phazorx>but 16M to 772bytes sounds really nice
19:05<@TrueBrain>Phazorx: yup.. and I am still wonder about the part: unique ;)
19:05<Phazorx>well why does it have to be unique
19:05<@TrueBrain>the end result :)
19:05<Phazorx>you know binary search
19:06<Phazorx>you need up to N tries to guess a number between 1 and 2^N
19:06<Phazorx>but what do you get if you have less than N tries?
19:07<@TrueBrain>a close-to value
19:07<Phazorx>well you get probability
19:07<@TrueBrain>N-1 tries can never be more than +/- 1 wrong
19:07<Phazorx>and also you might get it from 1st attempt
19:07<Eddi|zuHause2>probability is not enough
19:07<Phazorx>Eddi|zuHause2: correct
19:07<@TrueBrain>that is what I worry about too yes ;)
19:07<Eddi|zuHause2>you have to be 100% certain that your decompression is correct
19:08<@TrueBrain>and that is what I don't see here... the resulting decompression needs to be correct ;)
19:08<@TrueBrain>I let Eddi|zuHause2 talk :)
19:08<Phazorx>but what if a number selection within probable subset is predefined
19:08<Eddi|zuHause2>you need additional space to specify the subset
19:08<Phazorx>if you know how "guessing" works at decompression part, you might give it appropriate data to guess it faster
19:09<Phazorx>and perhaps you can guuide it so it would guess each one from 1 attempt rather than N
19:09<Phazorx>Eddi|zuHause2: exactly
19:09<Phazorx>that's what K array does
19:09<Phazorx>it removes confusion
19:09<@TrueBrain>so, basicly, you guess, feed it to the decompresser, and check if the data is useful?
19:09<Phazorx>but after that you still get not unique solution
19:10<Phazorx>TrueBrain: essentialy that is the decompression algorithm
19:10<Phazorx>and same for compression
19:10<@TrueBrain>but what if you make XOR values on both rows and columns?
19:10<Phazorx>you feed decompression with K data untill it has enough to guess it from 1st try
19:10<@TrueBrain>how much values do you need to make an unique matrix?
19:10<Phazorx>and that is specific for evey case
19:10<@TrueBrain>as that would speed up decompression ;)
19:11<@TrueBrain>anyway, that guessing from the 1st try is the most trickiest part ;)
19:11<Phazorx>well bumping M and lowering N will too
19:11<Eddi|zuHause2>i really do not think that "speed" is an issue here :)
19:11<Phazorx>Eddi|zuHause2: a math part should be very simple from computer perspective while being infinitely uncomprehendable in human eyes
19:12<Eddi|zuHause2>what makes you think my eyes are human? :p
19:12<Phazorx>and having rigth math parts, especialy when it comes to conclusion "sratch all, lest try another starting cell"
19:12<Phazorx>Eddi|zuHause2: i wasnt refering to thee or myself spefically :)
19:13<Eddi|zuHause2>but i should go to bed
19:13<Phazorx>and i should have dinner
19:13<@TrueBrain>enjoy your dinner
19:13[~]TrueBrain to bed too
19:13<@TrueBrain>Phazorx: tnx for the input :)
19:13<@TrueBrain>input = info
19:13<@TrueBrain>it is fun :)
19:13<Phazorx>i know
19:13<Phazorx>thinking is my kind of fun
19:13<Phazorx>i like it
19:14<Phazorx>good night lads :)
19:14|-|Wolf01|AWAY changed nick to Wolf01
19:15<@TrueBrain>Phazorx: I miss it at my study currently ;) (hehe, and I am doing CS...)
19:15<Phazorx>as far esuducation goes i dont have any formal one :)
19:15<@Belugas>technical question: is it possible to enabled IDE drives on a SATA system? I have to transfert quite a lot of data
19:15<Phazorx>dont taky it as a guideline tho, but my point is thinking is a process and education is a base
19:16<Phazorx>it would be nice if they come together but it doesnt always
19:16<Phazorx>Belugas: dos your south bridge has IDE controller?
19:16<Phazorx>there are sole el cheapo sata>pata addapters
19:16<Phazorx>but i have not heard of reverse
19:17|-|smoovi [] has quit [Quit: #idlerpg]
19:18|-|Osai [] has joined #openttd
19:23<stillunknown>Belugas: There are converters which allow PATA drives to connect to a SATA controller.
19:24|-|XeryusTC [] has quit [Ping timeout: 480 seconds]
19:27<@Belugas>there is one IDE port-controler and 5 SATA, but somehow, if IDE is detected, it looks like disabling the SATA
19:29<Tefad>i think i finally found the source
19:29<stillunknown>Strange, have you tried using the 4 normal ports and not the 1 "seperate" one.
19:29<+glx>Belugas: weird system ;)
19:30<+glx>ide works well with sata in my machine
19:30<@Belugas>not mine, mother's in law
19:30<@Belugas>anything special you did?
19:31<+glx>I have an HDD in SATA, a CD-RW and a DVD+-RW on IDE
19:33<Gonozal_VIII>same here plus an ide hdd
19:33<@Belugas>so, sata and ide HD can coexist
19:33<@Belugas>so , why is it not the case here???
19:34<@Belugas>anythng special in the BIOS maybe?
19:34<Wolf01>Belugas, try to set ide compatibility on bios for sata, i used it when i needed to clone the ide hard disk on a sata one
19:34<Gonozal_VIII>don't know... i did nothing special, it just worked
19:35<@Belugas>noted Wolf01
19:37<Wolf01>some motherboards allow 3 settings for hdd: sata only, sata & ide, sata as ide (or something like this), the last is more compatible but disables raid if i'm not wrong
19:39|-|Brianetta [] has quit [Quit: Tschüß]
19:42<CIA-1>OpenTTD: glx * r11398 /trunk/src/newgrf_industries.cpp: -Fix [FS#1414]: industry variables 67 and 68 return was incorrect
19:45|-|G_ [] has joined #openttd
19:45<@Belugas>good point, Wolf01. i will try that tomorrow
19:46<@Belugas>it sounded so weird to me that ide and sata on same machine were not meant to communicate
19:46<@Belugas>you know what i mean
19:46<Wolf01>eheh, that's my job :P
19:47|-|G [] has quit [Ping timeout: 480 seconds]
19:47|-|Vikthor [~Vikthor@] has quit [Quit: Leaving.]
19:48|-|stillunknown [] has quit [Ping timeout: 480 seconds]
19:48<@Belugas>lucky for me :D
19:55|-|ludde [] has quit [Ping timeout: 480 seconds]
19:59<Eddi|zuHause2>i have 2 ide HD, 2 ide DVD and 1 sata HD, works like a charm
19:59<Eddi|zuHause2>i somehow have a 3rd ide port, but i never got that one running...
19:59<+glx>I have 2 IDE ports and 4 SATA
20:00<+glx>I'm free to updgrade when needed ;)
20:01<Eddi|zuHause2>according to my board documentation, i have 2 dual IDE controllers, and a raid controller with the 3rd ide port (suitible for one drive) and 2 sata ports
20:02<Gonozal_VIII>1 hdd raid :-)
20:03<Eddi|zuHause2>no, 3 drives
20:03<Eddi|zuHause2>1 ide + 2 sata
20:04<Eddi|zuHause2>but you don't have to put the drives into a raid
20:04<Eddi|zuHause2>and i only have 1 drive connected
20:05|-|Osai [] has quit [Quit: Osai]
20:11|-|Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
20:12|-|LeviathNL [] has quit [Ping timeout: 480 seconds]
20:16|-|sPooT [] has quit [Remote host closed the connection]
20:17<CIA-1>OpenTTD: belugas * r11399 /trunk/ (25 files in 3 dirs):
20:17<CIA-1>OpenTTD: -Feature(ette): transparency settings can now be saved and thus remembered.
20:17<CIA-1>OpenTTD: -Codechange: Wrap all transparency settings in accessors, hiding the implementation
20:17<CIA-1>OpenTTD: -Change: Clicking "transparent building" menu will toggle Houses And Trees only. The other options can be used in the transparency gui.
20:17<CIA-1>OpenTTD: Initial patch by Smatz (FS#1349), with some rework by BigBB and your humble servant.
20:23|-|Progman [] has quit [Quit: Progman]
20:26|-|Gonozal_VIII [] has quit [Remote host closed the connection]
20:31|-|Eddi|zuHause3 [] has joined #openttd
20:38|-|Eddi|zuHause2 [] has quit [Ping timeout: 480 seconds]
20:43|-|Grey [~Greyscale@] has quit [Ping timeout: 480 seconds]
20:47<fjb>Good night
20:48|-|fjb [] has quit [Quit: KVIrc 3.2.0 'Realia']
21:02|-|BigBB [] has quit [Remote host closed the connection]
22:05|-|Ammler [] has quit [Remote host closed the connection]
22:22|-|glx [] has quit [Quit: bye]
22:28|-|XeryusTC [] has joined #openttd
22:31|-|Dephenom [~paul@] has quit [Quit: Leaving]
22:52|-|Dephenom [~paul@] has joined #openttd
22:58|-|Dephenom [~paul@] has quit [Read error: Connection reset by peer]
22:59|-|Dephenom [~paul@] has joined #openttd
23:18|-|XeryusTC [] has quit [Quit: May the ducttape be with you]
---Logclosed Sat Nov 10 00:00:16 2007