IRC logs for #openttd on OFTC at 2023-11-30
β΄ go to previous day
00:00:36 <peter1138> 20944 / 16, 1309 industries. Hmm.
00:01:10 <peter1138> Seems like a lot of industries
00:04:17 <Rubidium> high industries on tropical attempts to create 1280, so it's ballpark close
00:15:20 <Rubidium> that zoom level enumeration is weird
00:15:43 <Rubidium> but I think it might be rabbit holey too
00:17:14 *** tokai|noir has joined #openttd
00:17:14 *** ChanServ sets mode: +v tokai|noir
00:21:17 <Rubidium> oh yes... everything assumes ZOOM_LVL_BEGIN is 0 and ZOOM_LVL_END and ZOOM_LVL_COUNT are the same, except for sound.cpp...
00:24:20 *** tokai has quit IRC (Ping timeout: 480 seconds)
00:44:52 <peter1138> I think originally there might have been ideas about -1 = out 2x, 0 = normal, 1 = in 2x, etc.
00:58:00 <peter1138> Hmm, 24 bytes per vector, so 1309 x 48 = 62842 bytes penalty for use vectors vs array.
00:59:35 <peter1138> But 463584 -> 26480 = 437104 bytes saved by using vectors (and that's without the extra saved history)
03:06:56 *** Wormnest has quit IRC (Quit: Leaving)
03:14:09 *** debdog has quit IRC (Ping timeout: 480 seconds)
06:22:30 *** keikoz has quit IRC (Ping timeout: 480 seconds)
07:40:44 *** virtualrandomnumber has joined #openttd
07:41:14 *** virtualrandomnumber has quit IRC ()
07:43:47 *** HerzogDeXtEr has joined #openttd
08:35:30 *** urdh has quit IRC (Ping timeout: 480 seconds)
08:44:48 *** locosage has joined #openttd
08:44:48 <locosage> Does nfo allows to assign permanent or temporary storage with non constant register number somehow?
08:45:03 <locosage> Ik it can access via var 7b
08:57:20 <_jgr_> You can use any adjust variable you want as the storage index for temporary/permanent stores, it doesn't have to be var 1A
09:20:28 <andythenorth> oh a stuck boat in my savegame
09:23:01 <peter1138> Maybe it needs to randomly flip.
09:24:15 <ahyangyi> What if ctrl+click the boat flips it
09:26:24 <andythenorth> not drawing that in pixels π
09:27:40 <andythenorth> ha ha user error
09:28:02 <andythenorth> it's supposed to be shared orders with ship 160, but....mistakes were made
09:35:10 <peter1138> Thanks VS Code refactor for only refactoring the .cs files and ignoring the .cshtml files.
09:46:45 <peter1138> Oh, I can't define `operator &=`, it has to be in terms of `operator &`
10:42:42 <xarick> omg discord is becoming aberrant
10:42:58 <xarick> so much begging for money clicks
10:44:01 <locosage> Hm, so I can if I put it into temporary?
10:54:19 <peter1138> That is one reason why I am back on IRC.
10:54:51 <merni> xarick: did you mean "abhorrent" :p
10:55:03 <merni> aberrant is quite a mild word to use for discord's current behaviour
10:55:34 <LordAro> gotta pay for those servers somehow
11:39:03 <Eddi|zuHause> isn't "discord" and "aberrant" like two words meaning the same thing?
11:44:09 <peter1138> Does anyone use the GS league table feature yet?
11:54:55 <LordAro> wait, German (and quite a lot of other languages) have been broken since June?
11:55:16 <Eddi|zuHause> it's "well tested" :p
12:01:58 <Rubidium> well, who uses "go to nearest depot"? :D
12:02:16 <peter1138> Hmm, original toyland has a "wigwam", but opengfx2 replaces it with a teapot.
12:03:05 <Eddi|zuHause> which one is the worse cultural appropriation?
12:04:58 <truebrain> peter1138: results are in
12:05:16 <truebrain> turns out, for 2 weeks or so the binary couldn't be compiled on Linux .. so the exact moment of change is not visible
12:06:26 <locosage> I use gs league table :)
12:08:34 <peter1138> I just shook up my vinaigrette. The lid was not on properly
12:10:18 <peter1138> Yeah, I assumed you do.
12:10:27 <peter1138> But does any downloadable gS?
12:15:03 <peter1138> truebrain, hmm, I've been compiling on Linux for a while...
12:18:05 <truebrain> dunno, 20130827 - 20130914 didn't want to compile
12:18:43 <truebrain> dunno, I time traveled
12:19:36 <peter1138> Fix: compilation failed on gcc 10.2 due to missing include. (#11300)
12:20:00 <peter1138> Hmm, that's Sep 15.
12:20:05 <truebrain> `crashlog_unix.cpp:230:3: error: β_exitβ was not declared in this scope; did you mean β_Exitβ?`
12:20:32 <Eddi|zuHause> i couldn't even tell you what happened between 2013 and 2023
12:20:35 <peter1138> Right, -14 inclusive.
12:20:52 <peter1138> Rerun all your tests with clang ;)
12:21:15 <peter1138> Or: how can I run my own? :D
12:22:14 <truebrain> if I feel like it, I might patch the system so it can apply patches for certain time periods (but not others), as to make it compilable
12:23:30 <truebrain> what was the commit that fixed the issue?
12:23:51 <peter1138> a3f661cb664247aec12ad3ec8c80800240e4d600
12:27:19 <truebrain> k, tnx; will run my script to fill in those remaining 2 weeks π
12:27:33 <truebrain> will take a few hours, ofc
12:28:52 <peter1138> Bit late to run it for the C -> C++ change ;)
12:46:20 <andythenorth> peter1138: I had a similar sad tale with soy sauce and a brand new jumper π
12:46:50 <andythenorth> do we feel it's lunch time?
13:09:16 <peter1138> It was, but I was busy throwing salad dressing everywhere.
13:12:36 <andythenorth> tomatos on toast
13:12:44 <andythenorth> one or the other
13:49:28 <_zephyris> Yellow, because toyland ground by water is always yellow, with toyland rocks to indicate impassiblity, plus shading of slopes, plus some nice little water animations. I'll make a PR...
13:53:09 <peter1138> The extra water sparklies really help it look intentional :D
13:53:28 <_zephyris> Always good to look intentional!
14:42:05 <_zephyris> Time for toyland title game?
14:43:19 <peter1138> Do the non-toyland rapids sprites need to be skipped for toyland?
14:47:24 <peter1138> Hmm, I guess they only take up SpriteIDs but don't actually take up memory because they'll never be used.
14:48:43 <peter1138> Hmm, I have a patch that claims to optimize callback chain evaluation (skipping them if there's no result) but I never did anything with it because I had no data to show if it was a benefit.
14:49:10 <peter1138> Maybe I can use truebrain's tool check.
14:49:35 <truebrain> valgrind also works for these kind of tasks π
14:50:28 <peter1138> Yeah but having all those saves ready to go...
14:50:47 <peter1138> I know most don't use NewGRFs but some do.
15:01:52 <andythenorth> now that I've added so many wagons / coaches to Horse
15:01:56 <andythenorth> in generations....
15:02:01 <andythenorth> auto-upgrade option? π
15:02:23 <andythenorth> (wagon specifies vehicle ID to upgrade to)
15:13:52 <_zephyris> peter1138: It works to not skip the non-toyland sprites, whether I _should_ skip them is a different question...
15:14:24 <peter1138> IIRC it's against the spec to skip act1 sprites or something?
15:14:31 <peter1138> Can't remember exactly.
15:19:05 <peter1138> Hmm, half-tile slopes in sunshine are a bit weird.
15:20:34 <peter1138> Another ground tile is drawn, but it's not the correct one for the tile.
15:27:55 <_zephyris> "You must not skip an action 2 at all unless skipping the entire rest of the file. Instead, skip the action 3 that refers to it."
15:34:06 <peter1138> Yeah, that's the spec.
15:35:34 <peter1138> I believe that's a TTDPatch restriction, I don't think there's anything in OpenTTD that would care.
15:44:40 <talltyler> _zephyris: Paging eratonysiad π
15:57:20 <peter1138[d]> Blurry, but... water pixels showing through river banks with OpenGFX2 Hi-Def in 2x out zoom.
15:57:53 <peter1138[d]> 1x and 4x out are fine.
15:59:04 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
16:04:43 *** Wormnest has joined #openttd
16:21:02 <_zephyris> Extremely localised flooding
16:25:34 <peter1138> I'm wondering the about the best way to pad those buttons in master without hardcoding pixel sizes...
16:27:09 <_zephyris> peter1138[d]: 2x zoom river water sprites poking out from behind downscaled 4x zoom river banks. 6 variants per sprite is a PITA.
16:42:52 <peter1138> Ah, OpenGFX/2 is slightly different from the original baseset.
16:43:22 <peter1138> Okay, well, very different. But specifically slightly different went when it comes to the edges of the landscape selection sprites.
16:47:51 <talltyler> I'd love to switch to shipping OpenGFX2 as the official default baseset at some point, but maybe not for 14.0... wondering what _zephyris thinks? More time needed? π
16:49:14 <talltyler> (Is OpenGFX packaged with the game, or just downloaded by default?)
16:50:26 <_zephyris> I'd love it to be the default set!
16:51:32 <_zephyris> There are some things still missing that I think should be part of the "Classic" set though, some 2x icons, font glyphs.
16:51:56 <_zephyris> And, the question of whether I need to tidy the build process...
16:52:01 <_zephyris> So probably more maturation time needed
16:53:37 <_zephyris> (and more time for people to spot bugs)
16:54:04 <_glx_> talltyler: packaged with steam/gog/microsoft store, else it's the first result for bootstrap
16:57:02 <rau117> _zephyris: For the bugs... I suggest releasing the set on bananas more often, then more players will be able to appreciate new things and search for new bugs.
16:57:30 <peter1138[d]> I dunno, 32bpp 4x zoom takes up a lot of space...
16:58:04 <peter1138[d]> As OpenTTD doesn't delete old versions when downloading an update that could get chunky.
16:58:15 <rau117> Just opengfx2 classic, without the full zoom module.
17:00:28 <peter1138[d]> _zephyris: I noticed the arrow buttons are not the same size/shape between Classic and Hi-Def versions, and both are a bit weird in terms of dimensions.
17:01:26 <peter1138[d]> Probably related π
17:02:28 <peter1138[d]> The offset is ignored anyway, but π
17:20:02 *** eratonysiad has joined #openttd
17:20:02 <eratonysiad> talltyler: When's the deadline?
17:32:01 <talltyler> We normally announce the completion after beta1, right? So it wouldnβt be until January at the earliest.
17:41:24 <peter1138> truebrain, #11495 might be a interesting in the performance charts. Or might not be.
17:42:30 <truebrain> It shouldn't, but will benchmark it after merge π
17:45:20 <truebrain> Not sure I can run PRs before they are merged without going through annoying hoops ... might be worth trying π
17:45:41 <_glx_> in theory we could promote a nighlty into beta
17:45:55 <_glx_> just to attract some bug testing
17:47:34 <_glx_> many don't play nightlies, but they could play beta
17:48:51 <truebrain> But what good does that do if we don't feature freeze? π
17:55:52 <peter1138> s/performance/performance & memory/
17:56:26 <peter1138> And "no change" as a result is interesting enough ;)
18:10:14 *** esselfe has quit IRC (Ping timeout: 480 seconds)
18:11:19 <truebrain> yeah, too much typing .. performance is not only CPU, but also memory performance π
18:11:24 <truebrain> so rather CPU & memory performance π
18:14:46 <truebrain> CPU is as stable as it can be, and memory too, with the exception of one very good commit π
18:14:57 <truebrain> 2023-09-04 was the date that was a good date
18:18:17 <peter1138> Fixed length _grf_text array.
18:19:20 <truebrain> hihi, the hash of 11525 is `abc...`
18:20:48 <peter1138> Yeah, about 20MB of static array :D
18:22:05 <peter1138> So none of the struct reshuffling (cargo packets) had much effect it seems..
18:22:15 <truebrain> not on these savegames, no
18:24:01 <peter1138> Hmm, the OpenTTD-performance Dockerfile patches python3 but the patch fails here.
18:24:13 <truebrain> most likely because vcpkg broke it again
18:24:25 <truebrain> they don't test properly for Python3 ... I fixed things 3 times in vcpkg already π¦
18:24:50 <truebrain> ah, yes, that vcpkg is no longer needed, most likely
18:27:28 <truebrain> okay, attempting to compare last nights nightly with pr11495 ... see if my scripting abilities are sufficient this fine night
18:35:08 <peter1138> Heh, I get the libmount error that the CI had :D
18:39:41 <truebrain> Left is 11495, right is lastest nightly
18:40:38 <peter1138> Uh... that's just noise right?
18:41:35 <truebrain> at least, I haven't observed a 2% noise so far
18:41:57 <truebrain> bit ironic, as this is with `-vnull` ofc π
18:42:32 <peter1138> We probably still load all the sprites :D
18:42:32 <truebrain> the main thing is, some games run shorter than others
18:42:42 <truebrain> so any initialization is hurting some games more than others
18:42:59 <truebrain> and the PR does more allocations, if I remember correctly
18:43:55 <truebrain> but yeah, I am once again reminded that this kind of performance measuring does poorly for a single commit; it only works by looking over time
18:44:41 <peter1138> Sorry for bothering you.
18:45:50 <truebrain> I keep looking for ways for us to know when performance degrades
18:46:04 <truebrain> but our context is too big to make that simple
18:46:43 <truebrain> 11495 is expected to do something, performance-wise .. just .. is it good? is it bad? that is such a difficult thing to know
18:47:51 <truebrain> I have been wondering if we could use kcachegrind to report (significant) differences
18:47:55 <truebrain> but that is also tricky to setup π
18:48:22 <truebrain> hmmmmmmm ... now I wonder .... webassembly might be the way here to get more consistent measurements
18:48:52 <truebrain> if we do not JIT that, every run will be identical in terms of operations executed
18:49:22 <truebrain> (and in result, also memory usage should be very stable)
18:50:03 <truebrain> something to experiment with over xmas π
19:19:38 <peter1138> So that would measure it in wasm instruction and therefore not be subject to cpu architecture/timing variantions
19:22:56 <peter1138> I'm still wondering how to do audio resampling nicely.
19:23:16 <peter1138> Preloading works, but can consume lots of memory.
19:24:02 <peter1138> And I think that what I've written would still do it even with -s null :)
19:24:58 <peter1138> It makes the audio 16x larger, so approximately 1.6MB to 25MB.
19:25:09 <peter1138> Currently we don't preload anything, it's loaded when it's played (yes...)
19:25:26 <peter1138> Even if it's already loaded for another boat going HONK HONK
19:28:20 <Rubidium> well, who plays with sounds on? :D
19:30:12 <peter1138> Oh, and it's only a 16x increase for sample.cat. With OpenSFX or AltSFX the sounds are already 16-bit 44100Hz, so it's only a 2x increase. But still those are not preloaded, only loaded on demand.
19:30:42 <peter1138> Rubidium, me sometimes :D
19:31:48 <truebrain> after all the savings, can we handle a 25MB increase in memory consumption? π
19:31:59 <truebrain> my performance metrics won't show it! (if you actually disable it with `-snull`)
19:32:30 <peter1138> I think it's possible to resample on the fly, but you'd need to keep resampling all the time and probably one for each mixer channel (because different sounds might have different playback rates)
19:33:05 <peter1138> Audio should be a separate thread so performance isn't too much of a problem.
19:34:57 <peter1138> Hmm, maybe we can cheat and not use proper resampling -- just apply a low-pass filter on the mixed audio.
19:36:05 <peter1138> Probably more distortion than not doing anything :D
19:37:02 <peter1138> Hmm, extract sample.cat, resample it, upload as "illegal base set" :D
20:05:37 <peter1138[d]> Screw everyone else π
20:06:14 <peter1138> Everyone else is probably using OpenSFX (or indeed muted)
20:13:27 <_pruple> I just changed mine back to original π
20:28:04 <xarick> how do I install the original_windows nowadays?
20:29:44 <_glx_> you copy files from the CD into baseset folder
20:40:43 <peter1138> Hmm, does the example_train grf from NML work?
20:41:28 <peter1138> I get a "Cargo Wagon" but "ICM 'Koploper' (Electric)" is hiding somewhere.
20:41:58 <peter1138> I'm an idiot. My start date was too early.
20:42:14 <peter1138> Dunno why, I normally do testing from 2000
20:43:33 <Eddi|zuHause> isn't that from like the '70s?
20:43:40 <_glx_> yeah examples should work, I fixed them some time ago
20:45:08 <_glx_> (oh it's been 2 years already)
20:46:07 <andythenorth> slow macOS build of OpenTTD is slow
20:46:12 <andythenorth> goes it M3 chip?
20:48:29 <andythenorth> if CB 162 range is 0-100 (decimal)
20:48:34 <andythenorth> what do I return for 50:50?
20:50:50 <brickblock19280> andythenorth: you broke the referance for the callback before and I can't figure out how to fix it
20:52:00 <brickblock19280> maybe not I might just be confused
20:55:13 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
20:57:26 <_glx_> andythenorth: nope still waiting for a review
20:57:39 <andythenorth> lack of nml reviewers? π
21:01:29 <andythenorth> have to unpick quite a bit of current Horse
21:01:35 <peter1138> I have tested it this time ;)
21:04:37 <peter1138> I made a mistake :D
21:05:45 <peter1138> It's not called for articulated parts.
21:06:52 <peter1138> IAnd on a different subject.
21:08:03 <andythenorth> can't tell if it's working until I delete the Horse varact 2 chain reversing π
21:08:07 <andythenorth> nothing here π
21:08:30 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:08:54 <peter1138> Darker green patch switches position?
21:09:43 <peter1138> Something about that middle part is not right. Probably the GRF though.
21:11:01 <peter1138> Possible clue: it only has 4 directions.
21:11:14 <peter1138> In theory that means flipping does nothing, but...?
21:12:59 <peter1138> /* In the 3-part version, the 3rd car is invisible */
21:14:25 <_pruple> when the example has BAD FEATURES D:
21:14:51 <peter1138> andythenorth, :fliptables:
21:16:12 <peter1138> It only happens if that part is flipped.
21:16:19 <_pruple> "n the three part version, shorten the 2nd vehicle to 1/8 and the 3rd to 7/8"
21:16:57 <_pruple> * The rear (7/8) part is then made invisisble */
21:17:13 <_pruple> so that coach that's flipping is actually a 1/8 vehicle with an 8/8 sprite D:
21:17:54 <_pruple> nothing wrong with the flipping, just the grf π
21:19:08 <peter1138> That's enough NML for me ;D
21:19:09 <Timberwolf> I saw about three lines talking about making random bits of vehicles invisible and had to check to make sure that wasn't one of mine...
21:19:51 <peter1138> This is only an issue because I'm testing a flag that it wasn't designed for...
21:20:23 <peter1138> Anyway, articulated parts can be flipped with this, but you can't unflip with ctrl-click because... they're articulated. Hehe.
21:20:35 <Timberwolf> Oops. Stupid right-click.
21:21:07 <Timberwolf> You'd think by now I might be able to use a computer with a mouse, but apparently no.
21:21:20 <andythenorth> I only have a trackpad with no buttons
21:21:27 <andythenorth> anything else...my brain wouldn't manage
21:22:17 <peter1138> Your keyboard has a few buttons.
21:23:30 <andythenorth> I make a lot of mistakes typing
21:25:28 *** Wormnest has joined #openttd
21:29:48 <andythenorth> Horse grf is 0.7 MB smaller (28.5 MB vs 29.2 MB previously)
21:29:58 <andythenorth> compile time is ~27s now vs ~31s
21:30:09 <andythenorth> there might be more duplicates somewhere
21:30:25 <andythenorth> I lost the grep snippet that finds them π
21:32:12 <andythenorth> something was working for articulated parts?
21:32:20 <andythenorth> hmm maybe wrong grf
21:32:47 <andythenorth> yup wrong grf π
21:34:27 <peter1138> You need 11526 for articulated parts. Because I didn't notice it.
21:34:50 <peter1138> Ah I see what you mean now.
21:35:08 <andythenorth> yes, works with 11526
21:35:43 <andythenorth> hmm random reverse HST?
21:48:19 <peter1138> Is Rect(width, height).Translate(x, y) confusing...
21:48:38 <peter1138> I can't do Rect(x, y, width, height) because that's Rect(left, top, right, bottom)
21:51:16 <peter1138> Rect::FromSomething(x, y, width, height) is maybe an alternative.
21:52:38 <peter1138> This is to simplify 'a few' occurrences of {x, y, x + width - 1, y + height - 1}, especially if there's more to x or y than that.
21:54:40 <peter1138> Stupid game from 1993.
21:59:39 <andythenorth> will my Horse branch go stale π
22:01:47 <andythenorth> oooo slopes π
22:03:06 <peter1138> Not sure it works though because it uses OpenGFX not original graphics ;)
22:04:51 <peter1138> Local filesystem access for webassembly?
22:05:11 <andythenorth> what could go wrong?
22:18:09 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
22:20:54 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:35:36 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:55:44 *** Wormnest has joined #openttd
23:14:05 <peter1138> Where's belugas these days, I miss his stories of constantly shoveling snow...
23:19:44 <Rubidium> well... I was in France earlier today and it was like 30 degrees Celsius...
23:21:26 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
23:30:14 <michi_cc[d]> Then the correct question is probably which part of France?
23:47:01 <Rubidium> there where it borders the Netherlands :D
23:50:54 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
23:58:47 <_glx_> only south might get above 20, it's less than 10 everywhere else
23:59:28 <_glx_> oh the south american france ?
continue to next day β΅