Config
Log for #openttd on 4th June 2021:
Times are UTC Toggle Colours
02:08:15  *** Beer has quit IRC
02:31:01  *** Flygon has joined #openttd
02:38:15  *** Wormnest has quit IRC
03:28:36  *** glx has quit IRC
04:38:32  *** Gustavo6046 has quit IRC
04:39:11  *** Gustavo6046 has joined #openttd
04:44:13  *** snail_UES_ has quit IRC
04:53:33  *** Gustavo6046_ has joined #openttd
04:57:36  *** Gustavo6046 has quit IRC
04:57:36  *** Gustavo6046_ is now known as Gustavo6046
05:21:45  *** andythenorth has joined #openttd
05:49:02  *** andythenorth has quit IRC
05:55:12  *** andythenorth has joined #openttd
06:20:57  *** andythenorth has quit IRC
06:27:21  *** andythenorth has joined #openttd
06:45:43  *** HerzogDeXtEr has joined #openttd
07:26:22  *** y2kboy23_ has quit IRC
07:26:39  *** y2kboy23 has joined #openttd
07:38:37  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9333: Codechange: merge guiflags and flags in settings .ini files https://git.io/JGKeH
07:38:38  <TrueBrain> now easier to review :P
07:40:20  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9335: Codechange: make [Save|Load]Settings() behave more like other Save/Load code https://git.io/JGKBm
08:05:10  *** sla_ro|master has joined #openttd
08:06:26  *** y2kboy23 has quit IRC
08:13:44  *** y2kboy23 has joined #openttd
08:28:06  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
08:42:09  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
08:48:32  *** nielsm has joined #openttd
08:59:11  <TrueBrain> fun fact, we always store 256 subsidies in a savegame
08:59:14  <TrueBrain> even if they are all 0 :)
09:00:05  <andythenorth> super!
09:00:12  <andythenorth> hmm
09:00:34  <peter1138> I went to get more coffee and only came back with a biscoff...
09:00:36  <andythenorth> when we make ships like planes (1 extra cargo in a fake vehicle), that will need savegame bump? :D
09:00:43  <andythenorth> pax + mail in ships when?
09:00:59  <peter1138> Have you made a PR for it?
09:01:34  <andythenorth> yes, but it's invisible
09:01:39  <andythenorth> possibly imaginary also
09:01:56  <andythenorth> if you imagine reviewing and merging it
09:02:01  <andythenorth> I can imagine playing the game with it
09:02:11  <andythenorth> imaginary features, much less overhead
09:02:33  <peter1138> Also: splitting a ship up into multiple parts to help with sprite sorting.
09:02:52  <peter1138> (Locks might be fun)
09:04:22  <andythenorth> bendy ships
09:04:33  <peter1138> :/
09:04:43  *** namad7 has quit IRC
09:05:01  <peter1138> if you put all parts in the same location and just use sprite offsets to move the, er, sprites... might be actually work.
09:05:02  <TrueBrain> ah, no, subsidies is not a sparse array
09:05:04  <peter1138> -be
09:05:12  <TrueBrain> so it adds 0-entries up till the last valid index
09:05:13  <andythenorth> -be
09:05:14  <TrueBrain> that is just silly :P
09:05:22  <andythenorth> is -be the new 'goes it throw out'?
09:05:26  <andythenorth> shorter
09:05:54  <peter1138> Just google how to change your name.
09:06:12  *** andythenorth is now known as andythesouth
09:06:33  *** andythesouth is now known as andythenorth
09:06:54  <peter1138> Never Eat Shredded Wheat.
09:07:31  <andythenorth> SOHCAHTOA
09:11:46  <SpComb> raising elephants is so utterly boring
09:26:15  <TrueBrain> with only access to the savegame, not knowing which savegame version or any of the other details of how the chunk is stored, I can now load it and produce this (small snippet):
09:26:16  <TrueBrain> https://gist.github.com/TrueBrain/1be3d5348f5360df05cbd384974c1d16
09:32:36  <peter1138> key is stored?
09:34:52  <TrueBrain> yup
09:35:06  <TrueBrain> solves so many issues :P
09:46:44  *** EER has joined #openttd
09:49:35  <_dp_> TrueBrain, how would it handle setting renames?
09:50:07  <TrueBrain> that is a question with very little context .. for a viewer, that is rather irrelevant
09:50:32  <TrueBrain> as on a savegame itself, "rename" has no meaning
09:53:48  <_dp_> is game still parsing them by index?
09:54:09  <TrueBrain> your head is somewhere, but you forgot to take us along
09:54:33  <TrueBrain> I was talking about being able to load a savegame and showing information from it
09:54:40  <_dp_> yeah, catching up to it myself...
09:55:22  <_dp_> viewing is nice but it's one thing to know how it's called and another what it means :p
09:55:40  <_dp_> serverstat for example https://citymania.org/tools/serverstat
09:55:52  <_dp_> it can use key to get the name but it can't merge them if it's renamed
09:58:31  <_dp_> also was curious whether the game itself uses those key names for parsing settings in any way
09:58:43  <_dp_> when loading savegames
09:59:20  <TrueBrain> this is https://github.com/OpenTTD/OpenTTD/pull/9322
10:00:33  <_dp_> I was hoping for tldr xD
10:00:57  <TrueBrain> read the description?
10:01:35  <TrueBrain> I mean, it is like 5 sentences
10:06:38  <_dp_> description doesn't really answer the renaming question...
10:06:50  <_dp_> or rather it does but probably in a wrong way
10:07:04  <_dp_> as old setting would be unknown and ignored
10:09:48  <_dp_> also I don't see types in compat arrays, that feels wrong
10:10:00  <andythenorth> element.io: very very much more confusing than irc or discord
10:10:03  <Xaroth> feature request for your serverstat thing; showing the _default_ value, so it's easier to identify what settings are non-standard
10:10:09  <peter1138> "How is renaming of a setting key handled?"
10:10:17  <Xaroth> and maybe blacklist some settings like generation_seed
10:10:23  <_dp_> Xaroth, done, default is the blue one
10:10:58  <Xaroth> that... is somewhat unclear, but good.
10:11:55  <peter1138> Hmm, I've got a paused savegame that I can't unpause.
10:12:10  <TrueBrain> peter1138: do I want to know how you managed to do that? :D
10:12:14  <_dp_> gs paused?
10:12:20  <_dp_> pause have several flags
10:12:44  <peter1138> ^ probably this, yes. GameScript paused on server, game saved, GameScript not present locally.
10:13:21  <peter1138> I guess manual pause should be allowed in this case.
10:14:05  <TrueBrain> it survives a save/load? Lolz
10:14:07  <TrueBrain> that is funny :)
10:15:47  <Xaroth> You'd expect that manual intervention would override an automated process :P
10:29:01  <Rubidium> I'd expect, as maker of a GameScript that if I pause the game for some good reason the player cannot unpause it, as that would break my functionality
10:30:07  <Xaroth> Or, possibly, try to pause again if the user unpauses, after showing an appropriate warning message explaining _why_ it was paused?
10:30:09  <Rubidium> similarly, if I were to join a server with min-players = 1 as spectator and then do rcon unpause, should that server then be unpaused? And what if I then leave, how would others know that I unpaused the game manually?
10:30:50  <Rubidium> or will the others start filing bug reports that autopause on too few players does not work anymore
10:31:09  <Xaroth> Doesn't autopause clearly advertise that it is pausing because a lack of players?
10:31:24  <Xaroth> and can min-players be changed during runtime? iirc it can
10:31:31  <Xaroth> so the user remains in control.
10:32:05  <Xaroth> the user decides that the game should be paused when there is not at least X players, the game clearly informs the user it is pausing because of this reason
10:32:18  <Xaroth> so the user can then change the min-players setting, effectively unpausing the game.
10:32:34  <Xaroth> so that leaves the same scenario
10:33:29  <Xaroth> so yes, I _personally_ think that the user should have a way to overcome a pause.
10:34:27  <Xaroth> after all, it's the user that is playing the game, not the GS.
10:34:39  <Rubidium> won't resetting/restarting the game script solve it?
10:35:04  <peter1138> No. There is no gamescript currently active.
10:40:00  <peter1138> gamelog doesn't mention which gamescript was in use.
10:40:19  <peter1138> Hmm, maybe I saved since.
10:41:10  <peter1138> Ah no, the version change is just from loading it.
10:42:04  <andythenorth> ok element.io is officially shite
10:42:20  <andythenorth> do I have to get Slack?  I really don't want Slack, something about it gives me the Twitch
10:42:56  <Xaroth> I use slack on a daily basis, it's not _that_ bad
10:43:30  <Xaroth> good collaboration capabilities as well
10:43:41  <Xaroth> you can invite external people and they only have access to the channels you define
10:43:47  <Xaroth> and the people they share channels with
10:45:02  <andythenorth> I don't know what my objection to Slack is
10:45:14  <andythenorth> hard to explain, it's like some aesthetic issue
10:45:34  <Xaroth> Be glad it's not HipChat
10:45:47  <andythenorth> I really just want Discord for Businesss
10:45:55  <andythenorth> I thought element.io was a discord clone
10:46:08  <andythenorth> but it's not, it's weird and broken and fundamentally unusable
10:46:17  <Xaroth> heh
10:46:45  <Xaroth> I prefer discord in terms of ease of use, but I wouldn't use it for business stuff
10:46:56  <Xaroth> it doesn't have enough tools to manage it properly
10:47:51  <andythenorth> too many issues
10:47:55  <andythenorth> data security
10:48:00  <andythenorth> etc
10:49:25  <Xaroth> if you want to self-host there's mattermost, and rocket.chat iirc
10:49:33  <peter1138> IRC works quite well.
10:50:20  <andythenorth> irc is winningest
10:50:22  <Xaroth> If you work with a lot of tech-savvy people, yes
10:50:35  <andythenorth> but hosting an irc server is dull AF
10:50:42  <andythenorth> but irc is best
10:51:50  <peter1138> We switched from "shouting across the room" to Microsoft Teams.
10:51:55  <FLHerne> Matrix clients that aren't Element exist
10:52:00  <FLHerne> (but they all seem to suck)
10:52:12  <LordAro> Xaroth: (corpsethumb)
10:52:42  <Xaroth> I think I missed something important.
10:52:48  <LordAro> hipchat
10:52:53  <Xaroth> ah, yeah, no
10:53:13  <Xaroth> I'm _really_ glad I no longer have to deal with that thing
11:03:22  <LordAro> it was fine as a user
11:03:27  <LordAro> no different to any of the others
11:03:37  <LordAro> but a main tonactually administer
11:04:45  <LordAro> pain to actually*
11:52:48  *** nielsm has quit IRC
11:58:10  *** EER_ has joined #openttd
12:02:16  <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #9289: Change: Shortcut varaction chains for callbacks. https://git.io/JsHuK
12:02:23  *** EER has quit IRC
12:24:40  *** Samu has joined #openttd
12:27:44  <TrueBrain> I did something really goofy: https://github.com/TrueBrain/OpenTTD-savegame-reader
12:27:53  <TrueBrain> it has an interactive CLI to look at the savegame
12:27:57  <TrueBrain> frosch123 might like it :)
12:31:13  <TrueBrain> now with example image in the readme :)
13:01:33  *** snail_UES_ has joined #openttd
13:02:41  <Rubidium> s/gui/tui/?
13:06:25  <Rubidium> the image looks nice though ;)
13:48:48  *** glx has joined #openttd
13:48:48  *** ChanServ sets mode: +v glx
14:08:01  *** sla_ro|master has quit IRC
14:36:30  <andythenorth> hot tub time?
15:03:36  <Xaroth> Is that an invitation?
15:12:27  <andythenorth> solo
15:12:32  <andythenorth> hut tubs are solitary places
15:49:40  *** Progman has joined #openttd
16:04:21  <Xaroth> That really depends on the company.
16:28:15  <andythenorth> lol element.io has a feature to show if user is offline or not
16:28:41  <andythenorth> but it can't be enabled on the server because it has an unacceptable performance impact
16:28:56  <andythenorth> but they left the feature in the client UI
16:29:02  <andythenorth> so it just shows 'offline' for everyone
16:29:33  <andythenorth> I really wanted to like element.io, and pay them money for not being Slack
16:29:40  <andythenorth> but it really isn't very good at all
16:29:50  * andythenorth so off-topic
16:30:58  <andythenorth> I sell a SaaS with a huge engineering backlog, so they have sympathy
16:31:12  <andythenorth> but it really just is weirdly broken, and full of configuration stuff
16:31:32  <andythenorth> like ... for enterprise, why would I want my users to decide if they're encrypting a conversation on a per-conversation basis?
16:40:14  *** frosch123 has joined #openttd
16:49:03  <Rubidium> moin frosch123; the bad news of SLE_CHAR is that it can't be removed due to the file format of an array of 128+ elements differs from a string. Though SLE_CHAR/SLE_VAR_CHAR is just SLE_INT8/SLE_VAR_I8 so old data could still be converted if you cut out the intermediate shortcuts
16:50:29  <Rubidium> with a savegame bump you can change the new saves to use strings, but that won't help with loading the old saves and it would add extra complexity to the load function
16:59:16  *** Flygon has quit IRC
17:01:23  *** EER has joined #openttd
17:06:38  *** EER_ has quit IRC
17:10:14  <frosch123> meh :/
17:10:18  <frosch123> but thanks for looking into it
17:11:04  <Rubidium> renaming it will work though, and likely prevent further misuse of it
17:11:37  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGDIR
17:12:28  <Rubidium> as a script, is your integer being truncated from i64 to i32 and then back to i64 expected/wanted for a saveload cycle?
17:12:52  <Rubidium> SQInteger is 64 bits, but we only save 32 bits of that...
17:13:39  <frosch123> i thought everything was serialised to json :p
17:13:53  <frosch123> but maybe that is just for strings and their parameters
17:15:01  <Rubidium> json is only used for the admin communication
17:18:47  *** Gustavo6046 has quit IRC
17:36:07  *** Gustavo6046 has joined #openttd
17:48:49  *** Tulitomaatti has quit IRC
17:50:06  <TrueBrain> Rubidium: you removed SQ64 from Squirrel, so .... was that question to yourself? :D :D
17:54:53  <frosch123> silicon valley needs 64bit integers for cargomasks (since there are 64 cargos). but i don't think those are stored in savegames
17:57:05  <TrueBrain> pretty sure that if what he says is true, it is a bug :P Squirrel used to be this weird hybrid between 32bit and 64bit depending on your OS :)
17:57:12  <TrueBrain> but these days it is fully 64bit
17:58:00  <glx> seems it always been 32bit for saves
17:59:28  <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg opened issue #9337: Pressing a station name in the station list doesn't move you to the correct station https://git.io/JGDBu
18:02:52  <DorpsGek> [OpenTTD/team] osprinkis opened issue #225: [lv_LV] Translator access request https://git.io/JGDRD
18:03:56  *** y2kboy23 has quit IRC
18:04:56  <TrueBrain> frosch123: and, do you like my new toy? :D At least shows the headers are stored in a format that is easily readable by other tools :)
18:05:04  <TrueBrain> and that is works ... and contains sane data ..
18:05:05  <TrueBrain> :D
18:05:21  *** y2kboy23 has joined #openttd
18:05:43  <frosch123> i did not try it yet, but the presence of a tui surprised me for sure :)
18:05:45  *** y2kboy23 has quit IRC
18:05:58  <TrueBrain> it was just begging for it :P
18:06:04  <TrueBrain> worst part, the "--export-json" I made as final addition
18:06:10  <TrueBrain> as I thought you would appreciate that touch :P
18:06:27  <TrueBrain> took me forever to figure out how to work with ncursus in a sane way on Python
18:06:35  <TrueBrain> I (kinda randomly) picked urwid
18:06:43  <TrueBrain> but .. ugh .. what a nightmare to get it doing what I wanted it to :D
18:07:06  <frosch123> next time we need to diff savegames, we can run a json diff on it :)
18:07:17  <TrueBrain> it also clearly shows I really need to either change GS to a RIFF or change the chunk itself
18:08:03  <TrueBrain> there are surprisingly few RIFFs, and most really can be changed into a TABLE
18:08:06  <TrueBrain> so that is promising :)
18:08:14  <TrueBrain> but this is going to take a while to convert them all ... :P
18:08:30  <TrueBrain> with a lot of small PRs to address local issues
18:09:08  *** y2kboy23 has joined #openttd
18:09:11  <TrueBrain> stuff like https://github.com/OpenTTD/OpenTTD/pull/9322/commits/70ad64b5b14c1ec409509a7e3ea809899e9842fb :P
18:09:45  <TrueBrain> splitsing FileType from MemType into two variables still is best .. such a weird code to deal with it now
18:09:46  *** Wormnest has joined #openttd
18:14:21  *** sla_ro|master has joined #openttd
18:19:18  <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGD21
19:03:21  *** Compu has joined #openttd
19:07:36  *** gelignite has joined #openttd
19:23:44  <V453000> Could trains please have their own curve speed bonus in the vehicle properties? Something like tilt, but with more than 0/1?
19:23:53  <V453000> That would solve all of my issues
19:24:13  <V453000> I'm trying to implement an alternative solution in NUTS, but I'm just getting deeper and deeper into really stupid solutions
19:31:43  *** jottyfan has joined #openttd
19:34:08  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGDjv
19:54:01  *** virtualrandomnumber has joined #openttd
19:58:11  *** virtualrandomnumber has quit IRC
20:11:45  <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JGymY
20:11:46  <DorpsGek>   - Update: Translations from eints (by translators)
20:14:56  *** gelignite has quit IRC
20:34:09  *** EER has quit IRC
20:37:14  *** tokai|noir has joined #openttd
20:37:14  *** ChanServ sets mode: +v tokai|noir
20:44:09  *** tokai has quit IRC
20:57:54  <DorpsGek> [OpenTTD/BaNaNaS] frosch123 opened pull request #100: Change: migrate OpenTTD user V453000 to GitHub user V453000 https://git.io/JGy0G
20:57:59  <frosch123> must be an imposter
20:58:11  <glx> haha
20:58:41  <frosch123> the real one would have posted on IRC, not via forums :)
20:59:34  <DorpsGek> [OpenTTD/team] frosch123 commented on issue #225: [lv_LV] Translator access request https://git.io/JGDRD
20:59:46  <frosch123> another one who signed up to github just for us
21:01:28  <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain merged pull request #100: Change: migrate OpenTTD user V453000 to GitHub user V453000 https://git.io/JGy0G
21:01:32  <frosch123> 43.7% packages, 25.7% users migrated
21:01:43  <frosch123> similar numbers as the vaccination progress :p
21:01:53  <V453000> writing a forum message was actually surprisingly difficult for me :P
21:01:54  <TrueBrain> I hope it doesn't follow the same curve :P
21:01:56  <V453000> thanks!
21:03:23  <frosch123> oh, hey, V was PR #100
21:03:38  <V453000> can't be a coincidence
21:03:40  <TrueBrain> PARTY!
21:03:41  <TrueBrain> at his house?
21:03:46  <TrueBrain> can we just raid his house and have a party?
21:03:47  <TrueBrain> yes?
21:03:57  <V453000> it's not a raid if I give you permission
21:03:59  <V453000> so go ahead
21:04:00  <V453000> G_G
21:04:02  <frosch123> i think pm has been at his house before
21:04:06  <TrueBrain> yeah, that is no fun
21:04:07  <V453000> nope
21:04:12  <V453000> and I don't have a house
21:04:14  <V453000> ;(
21:04:20  <TrueBrain> you want me to draw you a house?
21:04:22  <TrueBrain> won't be pretty
21:04:22  <frosch123> and i have been at some other party organized by V
21:04:25  <TrueBrain> but at least means you have a house
21:04:38  <V453000> was factorio 1M sales party
21:04:42  <TrueBrain> wait, you guys having secret parties and don't invite me?
21:04:44  <TrueBrain> LAME!
21:04:57  <frosch123> i didn't even pay
21:05:03  <V453000> VIP yo
21:05:05  <TrueBrain> as with all good parties
21:05:16  <TrueBrain> did you get your moneys worth?
21:05:22  <frosch123> when the girls at the entrance did not find me on the guest list, i just told them to look at the other list :p
21:05:30  <frosch123> worked
21:05:33  <TrueBrain> :D lol
21:05:43  <frosch123> even got a t-shirt
21:05:53  <TrueBrain> fake news!
21:06:02  <V453000> christ, the website is asking me so many difficult questions, License, project website. Do you think I remember these things? :D Musa at least had it from last time :P
21:06:10  <V453000> :D
21:06:28  <V453000> I wonder if you were on the other list or they just feared your might
21:06:29  <frosch123> V453000: upload the file first, then it will prefill most stuff
21:06:37  <V453000> I did, it hasn't? :D
21:06:49  <TrueBrain> press the autofill button
21:06:51  <V453000> oh
21:06:58  <V453000> told you I'm a good test of idiot proofness
21:07:00  <TrueBrain> if you know a good UX/UIer, let us know :)
21:07:26  <frosch123> though at this point "good" means "actually deliver something" :p
21:07:26  <V453000> no it's a problem somewhere else
21:07:39  <TrueBrain> frosch123: haha, yeah, we should lower that bar
21:08:33  <frosch123> V453000: https://bananas.openttd.org/package/newgrf/48410101 <- anyway, you were unsure about licenses before :p
21:08:53  <TrueBrain> lolz
21:08:54  <V453000> not surprising at all XD
21:09:05  <TrueBrain> "for this version, I am going with ....
21:09:16  <TrueBrain> those tags .. lol
21:09:36  <V453000> more tags = more video views
21:09:39  <frosch123> i think V only came it second for "most tags" though
21:09:40  <V453000> rules the world
21:09:46  <V453000> XD
21:09:47  <V453000> oh
21:09:55  <TrueBrain> frosch123: don't give him ideas please
21:10:02  <V453000> hm does a grf with only replace and replacenew blocks have a minimum version?
21:10:19  <frosch123> all nml grfs have minimum 1.2
21:10:44  <TrueBrain> ugh, adding headers to all the chunks is boring and slow
21:10:48  <TrueBrain> takes ~3 minutes per chunk
21:10:54  <TrueBrain> there are 79
21:11:00  <TrueBrain> kill me, kill me now :P
21:11:28  <TrueBrain> well, no, I rather have you don't, but what-ever
21:11:45  <V453000> well, lets see how hard did I fuck up
21:11:48  <V453000> publishing
21:12:10  <frosch123> also, it's party time anyway. i quite my previous job 2 years ago (filed the notice)
21:12:18  <V453000> dam
21:12:29  <TrueBrain> -e, I assume :)
21:12:31  <V453000> BTW is there a way to see download numbers?
21:12:40  <frosch123> nope
21:12:45  <V453000> bbut
21:13:11  <frosch123> you only see the aws invoices
21:13:22  <TrueBrain> available after payment, ofc
21:13:44  <TrueBrain> "Broken savegame - Table chunk without header"
21:13:46  <TrueBrain> I BROKE SOMETHING
21:13:57  <V453000> TB's price is?
21:14:24  <TrueBrain> for you? 2 euros
21:14:27  <TrueBrain> for frosch123 ? 5 euros
21:14:32  <V453000> XD
21:14:35  <frosch123> why?
21:14:43  <TrueBrain> rng
21:14:45  <V453000> that's not 3 euros frosch
21:14:47  <frosch123> do i need to invade?
21:14:47  <V453000> that's 250%
21:14:50  <V453000> 250%.
21:15:04  <TrueBrain> it is nothing personal
21:15:05  <TrueBrain> I think
21:15:28  <frosch123> next time use a D100
21:15:51  <TrueBrain> wtf is CargoMonitor
21:15:54  <TrueBrain> and why isn't it in my savegame
21:16:01  <frosch123> you need a gs for that
21:16:07  <frosch123> use nocargoal or siliconvalley
21:16:19  <frosch123> it's a thing to allow gs to track cargo flow
21:16:24  <TrueBrain> ah .. it stores the header
21:16:26  <TrueBrain> but there are no indexees
21:16:32  <TrueBrain> so my savegame-reader doesn't "see" it
21:17:36  <TrueBrain> so I clicked nocargoal
21:17:36  <TrueBrain> downloaded it
21:17:37  <TrueBrain> it reloaded newgrfs
21:17:41  <TrueBrain> nocargoal not selected
21:17:42  <frosch123> V453000: 2 euros won't cut it in the long run. we need a rich wife for tb, so he can continue to work on ottd
21:17:42  <TrueBrain> right
21:17:50  <V453000> LOL
21:18:03  <TrueBrain> finally applied for a job last week
21:18:10  <TrueBrain> so that might come to an end soon :P
21:18:15  <V453000> :d
21:19:03  <V453000> well I've replaced mainly installing any games for working on newgrfs recently, luckily it's not really hurting my productive time so far
21:19:08  <V453000> but we all know how obsession goes
21:22:50  *** Samu has quit IRC
21:30:59  <Timberwolf> I would try that, except it turns out merely having OpenTTD and OpenRCT installed is enough to swallow all of my free time if I let it.
21:31:26  <V453000> I've got RCT classic on the ipad, so it's kind of making me not want to play it on a PC
21:32:26  <V453000> I've had it since like 2018 and I'm still not through all of the scenarios, it's ridiculous
21:32:46  <Timberwolf> I have the tablet version, it's weird playing without a mouse for me.
21:33:13  <V453000> I was actually shocked to find how great RCT is for touch controls
21:33:14  <Timberwolf> tbf, I had RCT2 since it came out and I only finished all of the scenarios this year :)
21:33:30  <Timberwolf> Oh yes, the RCT-engine games are way better for it.
21:33:45  <V453000> RCT2 is incredible in many ways, esp the height view feature
21:34:05  <V453000> OpenRCT2*
21:34:12  <V453000> but the classic version is great for me
21:34:59  <frosch123> i only heard about larger maps
21:35:02  <frosch123> what is height view?
21:35:07  <Timberwolf> I like that they're still at the stage of having `void ec78b3d() { /* does something with how much guests are willing to pay with shop items, I think */ ... }` in their code.
21:35:19  <V453000> you can basically hide objects under and above some height
21:35:23  <V453000> so you get like a slice
21:35:36  <frosch123> oh, i saw that, i assumed it was normal rct :p
21:35:37  <Timberwolf> When did the last of those disappear from OpenTTD? :)
21:35:41  * frosch123 never played rct
21:35:45  <V453000> I think that's exactly what RCT needs, sometimes things just draw on top of each other and with busy parks you can't see them in any rotation
21:36:49  <frosch123> Timberwolf: i cleaned up the names of the sound enum this year
21:36:57  <frosch123> some of the names were completely off
21:37:41  *** sla_ro|master has quit IRC
21:37:48  <Timberwolf> Oh yes... I mainly know it from the road vehicle sounds being not what you'd expect.
21:37:58  <frosch123> but the last big chunk of "remove this unknown code" was when the old ai was deleted
21:38:04  <Timberwolf> Well. I guess they are now.
21:38:14  <Timberwolf> Heh.
21:38:37  <Timberwolf> I theorise that Chris Saywer's asm source has, "I don't know what this does" comments in it when it comes to the AI :)
21:39:30  <frosch123> Timberwolf: actually, look at the original map generator
21:39:39  <frosch123> lot's of it looks like translated from asm
21:39:57  <frosch123> "z = 1 + (((x ^ 0xF) + (y ^ 0xF)) >> 1);" <- stuff like that
21:40:08  <Timberwolf> I think there's an interview somewhere where he talks about this in relation to RCT, about not being good enough at AI to make the peeps navigate intelligently within the performance constraints, then realising it was more realistic that they did stupid things and got lost.
21:40:48  <glx>  <Timberwolf> I like that they're still at the stage of having `void ec78b3d() { /* does something with how much guests are willing to pay with shop items, I think */ ... }` in their code. <-- opendune was similar in begining
21:41:14  <TrueBrain> but we fixed them all \o/
21:43:08  *** tokai has joined #openttd
21:43:08  *** ChanServ sets mode: +v tokai
21:46:55  *** jottyfan has quit IRC
21:50:12  *** tokai|noir has quit IRC
21:52:01  <TrueBrain> Broken savegame - Invalid chunk size
21:52:11  <TrueBrain> right, the smallest things can blow up the saveload stuff
21:52:14  <TrueBrain> without real indication why :P
21:53:02  <glx> yeah it's easy to break, and can be on save (and impossible to load) or on load only
21:54:14  <TrueBrain> owh ... found the issue .. hmm .. interesting
21:57:00  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store table header for each chunk in savegame https://git.io/JGlmd
21:57:03  <TrueBrain> right .. 4 more files done ... sssllllooowwwwww
21:57:11  <TrueBrain> and now figuring out why the reader is failing
21:58:41  <andythenorth> how can I force 1 instance of an industry type into every town on the map?
21:58:54  <andythenorth> it has been explained to me why this cannot be done with GS
21:59:28  <andythenorth> I thought I could abuse the probability callback, but I can't find a var for number of towns
21:59:29  <frosch123> you cannot force it in 100% of all cases
21:59:40  <frosch123> otherwise water towers would do that in tropic
21:59:55  <glx> you can limit to 1 per town, but can't force to have 1 in each
22:00:08  <andythenorth> there must be a way
22:00:15  <andythenorth> probability callback
22:01:04  * andythenorth thinks there must be some 80+ var for number of towns
22:02:13  <frosch123> why would there?
22:02:53  <TrueBrain> build_date: 16777229
22:02:56  <TrueBrain> I think that is wrong :P
22:03:28  <andythenorth> 'must' as in 'andy probably just looked in the wrong place' not 'is a requirement'
22:03:39  <frosch123> @calc 16777229 / 74 / 365
22:03:39  <DorpsGek> frosch123: 621.1487967419474
22:04:15  <frosch123> yeah, that is neither days nor ticks
22:05:34  <TrueBrain> SLE_CONDVAR(Depot, build_date, SLE_INT32,                SLV_142, SL_MAX_VERSION),
22:05:41  <TrueBrain> maybe that gives you a hint what is wrong :P
22:05:54  <andythenorth> hmm no towns count var anywhere obvious
22:06:02  <andythenorth> oh dear :)
22:06:04  <TrueBrain> @base 10 16 16777229
22:06:05  <DorpsGek> TrueBrain: 100000D
22:06:19  <frosch123> TrueBrain: oh, right: network order
22:06:43  <frosch123> ottd savegames are big endian, right?
22:06:51  <TrueBrain> they are
22:06:55  <TrueBrain> and I am doing that part correct
22:07:11  <andythenorth> oh I don't need to know the town count
22:07:16  <TrueBrain> but why is build_date a signed variable, I wonder ..
22:07:24  <andythenorth> I just need to know if 'this' town has the specific industry
22:07:43  <andythenorth> maybe
22:07:45  <TrueBrain> ah, "Date" is int32
22:08:20  <frosch123> so, it's days since year 0
22:08:30  <frosch123> @calc 16777229 / 365.25
22:08:31  <DorpsGek> frosch123: 45933.549623545514
22:08:39  <frosch123> pretty far in the future
22:08:49  <TrueBrain> not sure if it is this savegame, as it is really old
22:08:52  <TrueBrain> or my reader
22:09:01  <TrueBrain> but .. it is acting weird as fuck :P
22:09:33  <frosch123> what does "land info" say in game?
22:10:09  <frosch123> you can use "scrollto <tileindex>" in the console to fnid it
22:10:22  <TrueBrain> 6th Aug 2390 vor 16777229
22:10:46  <TrueBrain> same date for 13
22:11:01  <TrueBrain> I think something is not working as expected in my Python reader or something :D
22:14:10  <TrueBrain> @base 10 16 503316661
22:14:10  <DorpsGek> TrueBrain: 1E0000B5
22:14:17  <TrueBrain> @base 10 16 50331661
22:14:17  <DorpsGek> TrueBrain: 300000D
22:14:29  <TrueBrain> hmm .. pretty sure reading doesn't do what I expect it to do :P
22:15:53  <TrueBrain> ah .. SL_REF
22:15:59  <frosch123> there are a lot of 00 in the middle
22:16:11  <frosch123> maybe you are off by some bytes
22:16:13  <TrueBrain> yeah, those 00s are the name of the depot
22:16:20  <TrueBrain> and I write the wrong info about an SL_REF
22:16:54  <TrueBrain> as VarFileType() returns a value for SL_REF
22:16:56  <TrueBrain> that is not correct
22:17:00  <TrueBrain> SHOCKER
22:18:37  <glx> SL_REF needs AfterLoad, no ?
22:19:20  *** andythenorth has quit IRC
22:19:24  <frosch123> no, but there are two chunk handlers. one which reads the index from the save and stores it in the pointer
22:19:34  <frosch123> and one which replaced the index with the pointer
22:22:04  <TrueBrain> so the reader is useful \o/
22:22:22  <TrueBrain> from OpenTTD's perspective it was all dandy
22:22:29  <TrueBrain> just reading the file via Python was .. impossible :P
22:24:18  <TrueBrain> build_date: 873147
22:24:24  <TrueBrain> @calc 873147 / 365.25
22:24:24  <DorpsGek> TrueBrain: 2390.5462012320327
22:24:31  <TrueBrain> that is what it tells me ingame too
22:24:37  <TrueBrain> what is a bit odd .. they all have the same date
22:24:51  <TrueBrain> but what-ever, not my problem :)
22:24:56  <frosch123> you said it was a old savegame
22:25:03  <frosch123> maybe it started without a depot date
22:25:07  <TrueBrain> possible
22:25:18  <TrueBrain> funny, there is an entry in one of the chunks with "!dummy trains"
22:25:19  <TrueBrain> :)
22:26:02  <frosch123> depot name?
22:26:18  <TrueBrain> no, GRPS chunk
22:26:31  <frosch123> coop are those people who put "!" in front of names, to sort them first
22:26:36  <TrueBrain> Groups
22:26:39  <TrueBrain> so yeah, coop name thing
22:27:53  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store table header for each chunk in savegame https://git.io/JGlmd
22:27:59  <TrueBrain> right, that fixes depots :)
22:28:05  <TrueBrain> you can now look at depots via the Python app :D
22:28:42  <TrueBrain> next I should port this to WASM and allow you to upload your savegame, right? :D
22:28:52  <TrueBrain> 11 / 79 done
22:28:55  <TrueBrain> ugh, that number is depressing
22:30:20  <frosch123> replace the scenario editor with it
22:30:28  <TrueBrain> haha
22:30:36  <TrueBrain> "YOU are in control" :D
22:30:46  *** tokai|noir has joined #openttd
22:30:46  *** ChanServ sets mode: +v tokai|noir
22:30:58  <TrueBrain> I wonder if there is a sane form to make map-chunks easier to read
22:30:59  <TrueBrain> but they are so bit-stuffed
22:31:12  <frosch123> hmm, i guess there is no obvious way to store in the table, which pool a SL_REF references
22:31:39  <frosch123> i guess there isn't even an obvious way which chunk contains which pool :p
22:31:53  <TrueBrain> :)
22:32:01  <frosch123> TrueBrain: the schema would need to contain the bitfields :)
22:32:18  <TrueBrain> frosch123: if only that was possible :P
22:32:20  <frosch123> we discussed that before, because afterload moves some bitfields multiple times
22:32:29  <frosch123> and it is really hard to not mess up that conversion
22:32:41  <TrueBrain> but what a bitfield means depends on another bitfield
22:32:44  <frosch123> so it would be better if all of them would only be moved once
22:32:44  <TrueBrain> sometimes in another chunk :P
22:35:45  <frosch123> hmm, yeah, we need to figure out a way to delete the map array then
22:35:51  <TrueBrain> JSON? :P
22:36:01  <frosch123> usually you say yaml
22:36:05  <TrueBrain> I have been wondering about that, well, not JSON, but ..
22:36:12  <TrueBrain> the map array in memory can be bitstuffed like this
22:36:14  <TrueBrain> I really do not care
22:36:17  <TrueBrain> but on disk, we don't have to
22:36:22  <TrueBrain> it just takes more space
22:36:42  <TrueBrain> so yeah, you could apply some schemas to it, depending on the savegame version
22:36:45  <TrueBrain> assigning meaning to bits
22:36:48  <frosch123> well, autosave should be fast
22:36:57  <frosch123> or at least not pause the game long
22:37:08  <TrueBrain> so remove 4k as valid dimension? :D
22:37:21  *** tokai has quit IRC
22:37:30  <glx> it's easier to directly write memory to file
22:37:45  <frosch123> glx: but we don't even do that
22:37:59  <frosch123> m1, m2, m3 ... are stored separtely in file
22:38:03  <frosch123> but interleaved in memory
22:38:12  <frosch123> (i think)
22:38:19  <TrueBrain> we don't use memcpy
22:38:21  <TrueBrain> lets keep it at that :P
22:38:54  <TrueBrain> glx: in that mindset, we could just as well memcpy all objects to disk
22:38:55  <TrueBrain> very fast
22:39:03  <TrueBrain> just ... a complete nightmare for backwards compatibility :)
22:39:45  <peter1138> This is some mighty fine rabbit hole you've got yourself into.
22:39:46  <TrueBrain> I think in the end these conversations always come back to the realisation that our _m storage just sucks :P
22:39:57  <frosch123> hmm, i guess, if you would store the maparray as table, you would have a sparse table for each tiletype
22:40:16  <frosch123> train station tiles, road station tiles, finished industry tiles, unfinished industry tiles, ..
22:40:21  <frosch123> alls the messy details :p
22:40:28  <glx> hey at least it's not a union
22:40:53  <TrueBrain> frosch123: if only it was that easy :P
22:41:00  <frosch123> hmm, i forgot, can unions have member functions meanwhile?
22:41:11  <TrueBrain> 	{ 'M3LO', Save_MAP3, Load_MAP3, nullptr, nullptr,    CH_RIFF },
22:41:11  <TrueBrain> 	{ 'M3HI', Save_MAP4, Load_MAP4, nullptr, nullptr,    CH_RIFF },
22:41:16  <TrueBrain> I love those details :P
22:41:21  <frosch123> we can make the _m a union with private members and then put all mapaccessors into it
22:42:03  <TrueBrain> but okay .. I first have ~30 easy chunks to convert
22:42:16  <TrueBrain> after that I can change some RIFFs into TABLEs too
22:42:27  <TrueBrain> and then I am done with it, and we merge the PR :P
22:42:43  <TrueBrain> I need to find a nice way to have lists in tables
22:43:51  <glx> merge all m arrays into an array of tile struct
22:43:54  <frosch123> oh, looks like unions could have non-virtual member functions since forever
22:44:09  *** tokai|noir has quit IRC
22:44:13  <LordAro> frosch123: the tricky bit is packing the union so it stays the correct size
22:44:23  <LordAro> i played around with the idea before
22:44:26  <_dp_> array of struct may be bad for performance and compression
22:44:35  <LordAro> pragma pack didn't seem to do anything
22:44:59  <TrueBrain> is the correct size important?
22:45:15  <frosch123> LordAro: i guess bitfields are still implementation-defined
22:45:41  <TrueBrain> I mean, as long as we save/load is correct to what-ever is in memory
22:45:43  <TrueBrain> it should be fine, not?
22:45:50  <LordAro> hmm, perhaps
22:46:00  <LordAro> other than cache misses and all that
22:46:07  <LordAro> as _dp_ says
22:46:22  <TrueBrain> do we want to compress memory now? :P
22:46:38  *** tokai has joined #openttd
22:46:38  *** ChanServ sets mode: +v tokai
22:46:55  <TrueBrain> and I would wonder if cache misses really is a problem, or at least: a bigger or smaller problem
22:47:06  <TrueBrain> as I think our map access is rather random anyway
22:47:12  <TrueBrain> our tileloops are jumping around like a mad man :P
22:47:33  <TrueBrain> ofc the union should not be 32 bytes instead of 1 :D
22:47:37  <frosch123> the idea was that all the loop-over-all-tiles things would access stuff that fits into the cache at the same time
22:47:59  <TrueBrain> what cache are we talking about exactly, sorry?
22:48:01  <_dp_> arrange tiles in memory in tile loop order xD
22:48:07  <frosch123> TrueBrain: L2 cache
22:48:20  <glx> even for 4K maps ?
22:48:21  <frosch123> but it's big nowadays :p
22:48:22  <TrueBrain> and "the idea was", the idea CS had?
22:48:40  <TrueBrain> as building a game in a way that it favours L2 cache is ... difficult, I would argue :)
22:48:55  <frosch123> TrueBrain: the point of _m and _me is, that sizeof(_m[0]) is a power of two
22:48:59  <TrueBrain> especially with stupid CPUs without L2 cache, but that is childish :P
22:49:09  <frosch123> so there are no zeros for alignment
22:49:22  <frosch123> and _m can fit into L2, while _me is accessed rarely
22:49:33  <TrueBrain> can it really fit into the L2? :D
22:49:43  <TrueBrain> especially on modern PCs, I always wonder if that is the case
22:49:50  <TrueBrain> in the old days you had a bit more control over it ofc
22:50:13  <glx> with all the threads now
22:50:37  <frosch123> TrueBrain: sorry, i meant L3 :)
22:50:53  <TrueBrain> ah, okay, that shifts the story a bit :P
22:50:58  <TrueBrain> power-of-two alignment, I can get
22:51:03  <TrueBrain> but that is more about alignment of your memory
22:51:24  <TrueBrain> most RAMs are still read in pages
22:51:32  <TrueBrain> not really power-of-two, ofc, but who is counting
22:51:39  <frosch123> the compiler would align it anyway, but fill it up with zeros
22:51:40  <TrueBrain> (well, they are, but meh)
22:51:56  <TrueBrain> yeah, so you don't want to waste cache-lines .. I just wonder if that still matters on modern machines
22:52:09  <TrueBrain> if our TileLoop would be 0..N
22:52:13  <TrueBrain> I could get behind that
22:52:16  <TrueBrain> but .... we are weird :P
22:52:17  <frosch123> if a struct contains a uint32 and is 9 bytes in total, the compiler will put it into 12 bytes
22:52:30  <frosch123> so that the uint32 is aligned in array of that struct
22:53:24  <TrueBrain> don't compilers align to the dword boundary?
22:53:26  <LordAro> something something premature optimisation something something
22:53:38  <frosch123> TrueBrain: they align to the biggest alignment requirement of a member
22:53:54  <TrueBrain> owh, I remember the CPUs that didn't allow misaligned memory access
22:53:56  <TrueBrain> the fun days ...
22:54:39  <TrueBrain> Either way, if my memory serves me correct, it used to be a huge thing, how we arranged our _m and _me
22:54:46  <frosch123> afaik it's still better in modern cpu
22:54:48  <TrueBrain> but I do wonder how much impact there is these days
22:55:05  <TrueBrain> aligned memory access is always faster, I believe so too yes :)
22:56:08  <glx> yeah alignment still matters I think
22:56:24  <TrueBrain> especially vars that are aligned over a boundary, are just brrrrr
22:57:03  <TrueBrain> anyway, might just be worth profiling again in this modern day and age, to see what _m and _me do exactly in terms of performance
22:57:30  <frosch123> measurement is always good :)
22:58:03  <frosch123> i guess it's enough to add some dummy members to _m, just to make it bigger
22:58:13  <frosch123> no need to shift everything around for profiling
22:58:35  <TrueBrain> just towards what do you benchmark
22:58:56  <TrueBrain> the "slow" games we have is not because of map access :D
22:59:10  <TrueBrain> and the fast games are .. well ... fast :P
22:59:42  <glx> it's all because newgrf and pbs ;)
22:59:48  <TrueBrain> and we don't care about sequential access, as we rarely do that
22:59:53  <glx> and signals
23:00:19  <glx> and ships pathfinding
23:01:24  <frosch123> TrueBrain: don't underestimate the tileloop
23:01:37  <glx> plural ;)
23:01:39  <frosch123> it takes ages to check whether a tile needs to build fences/hedges to the next one
23:01:57  <TrueBrain> frosch123: I am not; I am wondering how we would benchmark it :)
23:02:04  <TrueBrain> as there is a lot of noise
23:02:19  <frosch123> i suggest to use a 1kx1k map, resonable amount of stuff on it, no newgrf
23:02:32  <glx> no autosave either
23:02:48  <frosch123> you could also try a pure-water, a pure-clean-land and a pure-trees map
23:03:08  <TrueBrain> how did this became a "you" and not a "we" :P
23:03:38  <frosch123> "you" can also mean "someone"
23:03:52  <glx> the famous "somebody"
23:03:59  <frosch123> but you are the only one who did something this week
23:04:13  <frosch123> hmm, maybe rb did something as well
23:04:22  <frosch123> i certainly didn't :p
23:04:35  <glx> I did minor stuff only
23:05:27  <TrueBrain> we are also low on contributors :P
23:06:05  <TrueBrain> funny, Tile has a static_assert to validate its size
23:06:09  <TrueBrain> but TileExtended doesn't
23:06:55  <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/map_type.h#L72
23:06:56  <TrueBrain> wth?!
23:07:28  <TrueBrain> used twice
23:07:31  <TrueBrain> npf-only
23:07:42  <TrueBrain> that comment is in so many ways wrong :P
23:07:49  <frosch123> i guess it's so you can write "a * STRAIGHT_TRACK_LENGTH"
23:07:55  <frosch123> and it will do the mul before the div
23:08:22  <TrueBrain> despite what it does .. that comment ist just priceless
23:08:53  <frosch123> yeah, it reads like a conversation between at least 3 people
23:09:02  <frosch123> kind of like when 3 people use @say
23:09:50  <TrueBrain> anyway, started a 1kx1k game with -g -G0 and default terrain settings, with 8-byte Tile -> 1440us per RunTileLoop iterator
23:09:52  <TrueBrain> added 4 bytes
23:09:53  <TrueBrain> same
23:10:32  <TrueBrain> added 28 bytes
23:10:32  <TrueBrain> same
23:10:35  <TrueBrain> but .. debug build :P
23:10:59  <TrueBrain> owh, no, after a few iterations, 28 bytes becomes slightly slow
23:11:04  <TrueBrain> 1600us per iteration
23:11:07  <glx> debug build so already bigger because memory guards everywhere
23:11:28  <TrueBrain> release-builds just take FOR EVER to build
23:11:31  <TrueBrain> well, link
23:15:09  <TrueBrain> still linking
23:15:30  <TrueBrain> seriously, is the linker installed on Mars?
23:15:51  <TrueBrain> OpenTTD/src/settings.cpp:2137:1: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
23:15:52  <TrueBrain> nice :D
23:16:40  <TrueBrain> ~250us for current code .. lol
23:16:45  <TrueBrain> 6 times faster, nice :D
23:17:17  <glx> keep current exe somewhere, to not have to rebuild
23:17:33  <TrueBrain> exe? What are you, a Windows developer? OMG :P
23:17:35  <TrueBrain> :D
23:20:32  <TrueBrain> ~270us with 4 bytes extra
23:21:16  <TrueBrain> just to show how much time is spend in debug-code :P
23:21:53  <TrueBrain> it is funny, with _m we are always worried about performance
23:22:12  <TrueBrain> but in 1.11 we made some changes to the video driver that blew fastforward so fast, we couldn't track it
23:22:18  <frosch123> in one of the recent msvc versions, ms advertised that they made debug builds faster by deleting lots of assertion-like things from the stdlib :p
23:22:37  <TrueBrain> lol; really? Does that make debug builds faster? MS smart!
23:23:45  <frosch123> i remembered the statement because it confused me. i thought they meant "compilation time" instead of "run time performance"
23:23:56  <TrueBrain> with 28 bytes extra it is ~330us
23:24:18  <glx> more visible in release build then
23:24:57  <frosch123> TrueBrain: how much does 4kx4k impact?
23:25:08  <TrueBrain> do you have any idea how much time it takes to recompile this? :P
23:25:17  <frosch123> just use the same build
23:25:24  <TrueBrain> I need at least 2 :)
23:25:27  <frosch123> 1kx1k vs 4kx4k
23:25:28  <glx> no need to recompile to change map size
23:25:44  <frosch123> the claim would be that it is more than 16x slower
23:25:46  <TrueBrain> glx: no shit :P
23:26:20  <glx> (that's why I suggested to backup exe)
23:26:32  <TrueBrain> anyway, 10% for 4bytes already kinda surprises me .. I expected a lot less
23:26:40  <TrueBrain> glx: I know, but I am way too lazy for that shit :)
23:26:57  <TrueBrain> well, it is 10% for doubling the size, I guess
23:27:13  <TrueBrain> @calc 80 / 28
23:27:13  <DorpsGek> TrueBrain: 2.857142857142857
23:27:23  <TrueBrain> about 3us per byte
23:28:08  <TrueBrain> generating a 4k map .. this will take a while :P
23:28:41  <TrueBrain> mainly the waiting for the function to loop 10 times the full map completely
23:29:01  <glx> and the townnames
23:29:02  <TrueBrain> 5500, give or take
23:29:09  <TrueBrain> @calc 330 * 16
23:29:09  <DorpsGek> TrueBrain: 5280
23:29:26  <TrueBrain> [2021-06-05 01:29:13] dbg: [misc] [RunTileLoop] 13986764 us [avg: 5463.6 us]
23:29:26  <TrueBrain> [2021-06-05 01:29:13] dbg: [misc] [StateGameLoop] 15716385 us [avg: 6139.2 us]
23:29:37  <TrueBrain> vs
23:29:38  <TrueBrain> [2021-06-05 01:27:45] dbg: [misc] [RunTileLoop] 927493 us [avg: 362.3 us]
23:29:38  <TrueBrain> [2021-06-05 01:27:45] dbg: [misc] [StateGameLoop] 1001331 us [avg: 391.1 us]
23:29:51  <TrueBrain> give or take some noise
23:30:28  <TrueBrain> @calc 360 / 390
23:30:28  <DorpsGek> TrueBrain: 0.9230769230769231
23:30:31  <frosch123> so it's faster?
23:30:37  <TrueBrain> @calc 5463 / 6139
23:30:37  <DorpsGek> TrueBrain: 0.889884345984688
23:30:54  <TrueBrain> frosch123: faster than?
23:31:08  <frosch123> @calc 5463.6 / 16
23:31:08  <DorpsGek> frosch123: 341.475
23:31:13  <frosch123> that is less than 362.3
23:31:18  <TrueBrain> yeah, as I said, minus some noise
23:31:20  <TrueBrain> it was ~330
23:31:29  <frosch123> ok :)
23:31:50  <TrueBrain> so ballpark, it is a multiplier of 16
23:32:10  <TrueBrain> these numbers are small enough that measurement issues are a big part of it too
23:32:20  <frosch123> so, we can stop all bitpacking and just use 32bytes per tile? :p
23:32:45  <TrueBrain> well, I was trying 36 bytes .. I was planning on 32, but I cannot count :P
23:32:59  <TrueBrain> I would like to see a game that is impacted by this in a noticeable way
23:33:19  <TrueBrain> sure, early game, FF will be slower
23:33:23  <TrueBrain> but we went from 1000x to 1000000x
23:33:27  <TrueBrain> so ... euh .. yeah ..
23:33:40  <TrueBrain> and late-game, I cannot imagine map-access is the issue
23:33:45  <TrueBrain> but, I can be completely wrong
23:33:45  <TrueBrain> ofc
23:34:02  <TrueBrain> [2021-06-05 01:33:56] dbg: [misc] [RunTileLoop] 11838267 us [avg: 4624.3 us]
23:34:02  <TrueBrain> [2021-06-05 01:33:56] dbg: [misc] [StateGameLoop] 13672344 us [avg: 5340.8 us]
23:34:06  <TrueBrain> without the extra 28 bytes
23:34:13  <TrueBrain> @calc 5463 / 4624
23:34:13  <glx> late game is slowed down by vehicles, not map I think
23:34:13  <DorpsGek> TrueBrain: 1.1814446366782008
23:34:22  <TrueBrain> 18% slower on 4kx4k for RunTileLoop
23:37:00  <TrueBrain> okay, let me collapse _me into _m, see what that does
23:37:42  *** HerzogDeXtEr has quit IRC
23:38:05  <TrueBrain> surprisingly easy to make that change
23:38:13  <TrueBrain> if you don't mind a nice "#define _me _m" :P
23:40:52  <TrueBrain> I ... removed the TICC/TOCCs ..
23:40:53  <TrueBrain> lol
23:41:08  <TrueBrain> guess I have to wait again on the LTO ..
23:41:37  <glx> of course, it's more fun that way ;)
23:41:50  <TrueBrain> I was like: either this is crazy slow, or I did something wrong
23:41:51  <TrueBrain> the latter
23:41:55  <TrueBrain> 100% absolutely the latter :)
23:43:32  <TrueBrain> 3 minutes ... seriously .. unplayable, this LTO game
23:44:59  <TrueBrain> [2021-06-05 01:44:48] dbg: [misc] [RunTileLoop] 13508528 us [avg: 5276.8 us]
23:45:00  <TrueBrain> [2021-06-05 01:44:48] dbg: [misc] [StateGameLoop] 15146048 us [avg: 5916.4 us]
23:45:02  <TrueBrain> that is a bit weird :P
23:45:27  <TrueBrain> ugh, it bounces around a lot more
23:45:41  <TrueBrain> [2021-06-05 01:45:33] dbg: [misc] [RunTileLoop] 12957398 us [avg: 5061.5 us]
23:45:41  <TrueBrain> [2021-06-05 01:45:33] dbg: [misc] [StateGameLoop] 14537540 us [avg: 5678.7 us]
23:45:43  <TrueBrain> seems a more fair value
23:46:46  <TrueBrain> anyway, that was fun. Now zzzz, and tomorrow more saveload chunk conversions \o/
23:47:45  <frosch123> night
23:47:48  *** frosch123 has quit IRC

Powered by YARRSTE version: svn-trunk