Page 161 of 243

Re: JGR's Patch Pack

Posted: 15 Jan 2021 11:25
by Argus
What is wrong? I don't notice anything.

Re: JGR's Patch Pack

Posted: 15 Jan 2021 11:45
by Wahazar
Maybe it is problem with my newgrf, I wanted to be sure if it is known general issue...

EDIT: There is a suspect:

Code: Select all

switch(FEAT_TRAINS, SELF, switch_steam_Russia_RZD_F_visual_effect, motion_counter % 2) {
	0: return visual_effect_and_powered(VISUAL_EFFECT_STEAM, -3, DISABLE_WAGON_POWER);
	return visual_effect_and_powered(VISUAL_EFFECT_STEAM, 3, DISABLE_WAGON_POWER);
}
It is my fault, not related to JGRPP, sorry for false alarm.

Re: JGR's Patch Pack

Posted: 15 Jan 2021 14:51
by Eddi
McZapkie wrote: 15 Jan 2021 11:45 Maybe it is problem with my newgrf, I wanted to be sure if it is known general issue...

EDIT: There is a suspect:

Code: Select all

switch(FEAT_TRAINS, SELF, switch_steam_Russia_RZD_F_visual_effect, motion_counter % 2) {
	0: return visual_effect_and_powered(VISUAL_EFFECT_STEAM, -3, DISABLE_WAGON_POWER);
	return visual_effect_and_powered(VISUAL_EFFECT_STEAM, 3, DISABLE_WAGON_POWER);
}
It is my fault, not related to JGRPP, sorry for false alarm.
i don't know if that is the cause of your issue, but NewGRF code should never cause desyncs, and if it does, it must be considered a bug in the game, not the NewGRF

Re: JGR's Patch Pack

Posted: 15 Jan 2021 15:02
by JGR
Eddi wrote: 15 Jan 2021 14:51 i don't know if that is the cause of your issue, but NewGRF code should never cause desyncs, and if it does, it must be considered a bug in the game, not the NewGRF
Unfortunately it is easy to write a NewGRF which cause desyncs, even by accident, and this is really a bug in large chunks of the NewGRF specifications.
It's nearly impossible for the game to prevent all desyncs given how lax and full of footguns the specification is.

I've got code to correct and/or mitigate some of the most common desync-inducing NewGRF patterns (and a few other issues), but this is only a small subset of the specification space.

Re: JGR's Patch Pack

Posted: 15 Jan 2021 15:27
by Eddi
in this case, you could disable access to certain variables in the visual effects callback, similar to how access to variables is restricted in CB36

alternatively you can add data to the (network) savegame for additional synchronization

Re: JGR's Patch Pack

Posted: 15 Jan 2021 15:55
by JGR
Eddi wrote: 15 Jan 2021 15:27 in this case, you could disable access to certain variables in the visual effects callback, similar to how access to variables is restricted in CB36
I may be missing something, but I'm looking through the code for variables and that around CB36, and I don't see any such restricted access to variables.
The specification makes no mention of this either.

Which variables specifically are these?
Eddi wrote: 15 Jan 2021 15:27 alternatively you can add data to the (network) savegame for additional synchronization
That is what I have done already for vehicles.


I have not been able to reproduce any desync with the savegame here under normal conditions.
A look at the desync logs would be useful.

Re: JGR's Patch Pack

Posted: 15 Jan 2021 21:11
by Eddi
i misremembered. it was var61 (trains) that is restricted for certain callbacks.

Re: JGR's Patch Pack

Posted: 16 Jan 2021 18:23
by Snail
Eddi wrote: 15 Jan 2021 21:11 i misremembered. it was var61 (trains) that is restricted for certain callbacks.
Correct. And speaking as an newGRF developer, this is a total pain in the butt :P

Re: JGR's Patch Pack

Posted: 16 Jan 2021 22:04
by Wahazar
How this drive_through_train_depot particularly works? I enabled it, placed 2 depots back to back but thre are still 2 separate depots and train can't go trough.

Re: JGR's Patch Pack

Posted: 16 Jan 2021 22:09
by JGR
McZapkie wrote: 16 Jan 2021 22:04 How this drive_through_train_depot particularly works? I enabled it, placed 2 depots back to back but thre are still 2 separate depots and train can't go trough.
Can you post a save of what you're trying to get working and I'll have a look.

Re: JGR's Patch Pack

Posted: 16 Jan 2021 22:50
by piratescooby
McZapkie wrote: 16 Jan 2021 22:04 How this drive_through_train_depot particularly works? I enabled it, placed 2 depots back to back but thre are still 2 separate depots and train can't go trough.
Have you activated the function in settings ? ... Vehicles routing Drive through train depots ....On

Re: JGR's Patch Pack

Posted: 17 Jan 2021 03:04
by Aegir
On the subject of depots, given any thought to integrating the Multitile Depot patch? It's been running pretty stable for me, and choosing between the Patchpack and the Multitile build atm is killing me 😭

Re: JGR's Patch Pack

Posted: 17 Jan 2021 13:05
by Wahazar
JGR wrote: 16 Jan 2021 22:09
McZapkie wrote: 16 Jan 2021 22:04 How this drive_through_train_depot particularly works? I enabled it, placed 2 depots back to back but thre are still 2 separate depots and train can't go trough.
Can you post a save of what you're trying to get working and I'll have a look.
Problem solved - these depot are still separate and I addressed wrong one (exit instead of entry, thus train lost its path)

Re: JGR's Patch Pack

Posted: 17 Jan 2021 17:13
by JGR
Aegir wrote: 17 Jan 2021 03:04 On the subject of depots, given any thought to integrating the Multitile Depot patch? It's been running pretty stable for me, and choosing between the Patchpack and the Multitile build atm is killing me 😭
I haven't looked at it properly yet, at some point I'll get round to investigating it.

Re: JGR's Patch Pack

Posted: 18 Jan 2021 16:23
by JGR
Eddi wrote: 15 Jan 2021 14:51
McZapkie wrote: 15 Jan 2021 11:45 Maybe it is problem with my newgrf, I wanted to be sure if it is known general issue...

EDIT: There is a suspect:

Code: Select all

switch(FEAT_TRAINS, SELF, switch_steam_Russia_RZD_F_visual_effect, motion_counter % 2) {
	0: return visual_effect_and_powered(VISUAL_EFFECT_STEAM, -3, DISABLE_WAGON_POWER);
	return visual_effect_and_powered(VISUAL_EFFECT_STEAM, 3, DISABLE_WAGON_POWER);
}
It is my fault, not related to JGRPP, sorry for false alarm.
i don't know if that is the cause of your issue, but NewGRF code should never cause desyncs, and if it does, it must be considered a bug in the game, not the NewGRF
After doing a bit of digging, it turns out that the motion counter is not saved in the savegame at all and is therefore reset to 0 on load, including for network clients.
This seems like a definite bug, as I can't see any reason for it to not be saved. NewGRFs using it for just about anything other than animations could cause desyncs.
I'll raise an issue about this upstream a bit later.

Re: JGR's Patch Pack

Posted: 18 Jan 2021 18:31
by Argus
I just want to ask how many trains can intersect? I know there are no more than two in the Vanilla version.

Re: JGR's Patch Pack

Posted: 18 Jan 2021 18:40
by JGR
Argus wrote: 18 Jan 2021 18:31 I just want to ask how many trains can intersect? I know there are no more than two in the Vanilla version.
I'm not really sure what you mean by this. Could you please clarify?

Re: JGR's Patch Pack

Posted: 18 Jan 2021 19:01
by Argus
Google Translate errors ... Sorry. How many trains can safely share one route?

Re: JGR's Patch Pack

Posted: 18 Jan 2021 19:07
by JGR
Argus wrote: 18 Jan 2021 19:01 Google Translate errors ... Sorry. How many trains can safely share one route?
Both in this patchpack and in vanilla you can have as many trains as you want in a block (using PBS) or on a route at the same time. There is not a limit of two.

Re: JGR's Patch Pack

Posted: 18 Jan 2021 20:28
by Argus
Thanks :)