News:

Congratulations!
 You've won the News Item Lottery! Your prize? Reading this news item! :)

Incorporating changes from Standard

Started by ACarlotti, May 06, 2018, 12:08:01 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

Andarix

Quote from: Roboron on February 17, 2022, 11:13:16 AM
Changing windows-latest to windows-2019 in the CI fix it. For some reason it is not able to find MSVC in windows-2022.

Windows Server 2022 (I think VS 2022 because it was also announced) has a newer version of MSVC than Windows Server 2019 (VS 2015). And so the paths should differ.

jamespetts

Quote from: ceeac on February 16, 2022, 07:18:11 PM
Pull request #503 incorporates the "Heavy Mode" desync debugging mode and some fixes regarding desyncs. Hopefully there should be fewer of them now, but I could not test absolutely everything. Please check before merging the changes because the savegame version is increased.

EDIT: Windows CI is failing because

Thank you for your work on this (and to the others, too).

Before I incorporate this, can I check what Heavy Mode is in this context?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

ceeac

This makes debugging easier and optionally produces two save files at the exact sync_step the desync occurred, at the cost of severely reduced performance.
To enable Heavy Mode, both client and server must be started with the -heavy 1 command line flag.
For details, see the original thread here:
https://forum.simutrans.com/index.php/topic,21211

jamespetts

I have tried to merge this, but I get a "missing endif" error on compiling referring to line 777 of the makefile. Does this assume that I have merged prior pull requests from Ranran in this project?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

ceeac

No, the error was unrelated - Should be fixed now.

jamespetts

I am afraid that I am still getting the same error:

$ make -j3
Makefile:777: *** missing 'endif'. Stop.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

Quote from: Ranran on February 01, 2022, 12:27:13 PM
Pull request #485 is for standard's commits r9872 to r10076 related to translator and symsys coordination. and unification of formatting with standard,  also translation from amber to yellow.

I am afraid that I get a compile error when trying to build this:


gui/trafficlight_info.cc: In constructor 'trafficlight_info_t::trafficlight_info_t(roadsign_t*)':
gui/trafficlight_info.cc:42:27: error: 'class roadsign_t' has no member named 'get_ticks_yellow_ns'; did you mean 'get_ticks_amber_ns'?
   42 |    amber_ns.set_value( s->get_ticks_yellow_ns() );
      |                           ^~~~~~~~~~~~~~~~~~~
      |                           get_ticks_amber_ns
gui/trafficlight_info.cc:48:27: error: 'class roadsign_t' has no member named 'get_ticks_yellow_ow'; did you mean 'get_ticks_amber_ow'?
   48 |    amber_ow.set_value( s->get_ticks_yellow_ow() );
      |                           ^~~~~~~~~~~~~~~~~~~
      |                           get_ticks_amber_ow
gui/trafficlight_info.cc: In member function 'void trafficlight_info_t::update_data()':
gui/trafficlight_info.cc:110:32: error: 'class roadsign_t' has no member named 'get_ticks_yellow_ns'; did you mean 'get_ticks_amber_ns'?
  110 |  amber_ns.set_value( roadsign->get_ticks_yellow_ns() );
      |                                ^~~~~~~~~~~~~~~~~~~
      |                                get_ticks_amber_ns
gui/trafficlight_info.cc:111:32: error: 'class roadsign_t' has no member named 'get_ticks_yellow_ow'; did you mean 'get_ticks_amber_ow'?
  111 |  amber_ow.set_value( roadsign->get_ticks_yellow_ow() );
      |                                ^~~~~~~~~~~~~~~~~~~
      |                                get_ticks_amber_ow
make: *** [common.mk:55: simutrans/gui/trafficlight_info.o] Error 1
make: *** Waiting for unfinished jobs....
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

#427
Oh, I'm so sorry.
Quote from: jamespetts on February 19, 2022, 11:51:04 AMalso translation from amber to yellow.
In standard, this was implemented as yellow, but in extended, I think there may have been a history of it being intentionally made into amber, which is why I revert it a few days ago. The cause is that the revert is clearly incomplete. I apologize for the lack of confirmation.
Can I ask what the color notation should be?

jamespetts

Quote from: Ranran on February 19, 2022, 12:27:10 PM
Oh, I'm so sorry.In standard, this was implemented as yellow, but in extended, I think there may have been a history of it being intentionally made into amber, which is why I revert it a few days ago. The cause is that the revert is clearly incomplete. I apologize for the lack of confirmation.
Can I ask what the color notation should be?

For traffic lights, the colour should be "amber". For railway signals, the colour should be "yellow". In the UK at least, the actual colours of traffic lights on roads are distinctly different to railway signals: roads have always had red/amber/green, whereas railways have red/yellow/green. (For reference, amber is a yellowish orange).
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

Quote from: jamespetts on February 19, 2022, 12:51:05 PMFor traffic lights, the colour should be "amber"
Thank you for the clarification. I think I have restored it and now it is testable.

jamespetts

Quote from: Ranran on February 19, 2022, 01:28:10 PM
Thank you for the clarification. I think I have restored it and now it is testable.

Excellent, thank you: now incorporated.
Edit: Unfortunately, I now get a merge conflict with Ceeac's heavy mode branch.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

ceeac

Quote from: jamespetts on February 19, 2022, 11:37:36 AMI am afraid that I am still getting the same error:
Could not reproduce. I have now rebased the branch onto the current master branch to resolve the merge conflict and the issue does not occur there for me either (commit 6c60afa91).

jamespetts

Quote from: ceeac on February 19, 2022, 02:00:14 PM
Could not reproduce. I have now rebased the branch onto the current master branch to resolve the merge conflict and the issue does not occur there for me either (commit 6c60afa91).

Thank you. I have now rebased, but I am afraid that we are now getting a save format incompatibility issue with the latest master: games saved in the latest master can't be opened in the heavy mode branch, and vice versa.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

ceeac

Quote from: jamespetts on February 19, 2022, 03:32:30 PMgames saved in the latest master can't be opened in the heavy mode branch
That was a bug and should be fixed now.

Quote from: jamespetts on February 19, 2022, 03:32:30 PMand vice versa.
That is not a bug because the save game version is incremented in the heavy mode branch.

jamespetts

Quote from: ceeac on February 19, 2022, 04:48:41 PM
That was a bug and should be fixed now.
That is not a bug because the save game version is incremented in the heavy mode branch.

Excellent - now incorporated. Thank you.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

There seems to be a problem in compiling with MSVC, because the current changes for heavy mode have not been applied to MSVC. I was able to add the file specification and compile on my own (I just added a link to the file for debug mode), but I don't know if that's correct because I don't understand the conditions correctly.

jamespetts

Quote from: Ranran on February 19, 2022, 11:39:07 PM
There seems to be a problem in compiling with MSVC, because the current changes for heavy mode have not been applied to MSVC. I was able to add the file specification and compile on my own (I just added a link to the file for debug mode), but I don't know if that's correct because I don't understand the conditions correctly.

Did you have to add a .cc file to the project? If you did and that solved the problem, then this should be a relatively straightforward fix. Can I ask what file it was that you added?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

Quote from: jamespetts on February 19, 2022, 11:54:33 PMDid you have to add a .cc file to the project? If you did and that solved the problem, then this should be a relatively straightforward fix. Can I ask what file it was that you added?
I had to make at least the following changes to get the build to work on MSVC.
https://github.com/Ranran-the-JuicyPork/simutrans-extended/commit/36c9cd51899d71719fa440e14df0b2b521f722ee

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

We are getting a consistent loss of synchronisation error occurring on all online server games, as reported here which cannot be reproduced on a local client/server pair. As the "heavy mode" patch is the only thing that affects either the simulation itself or client/server synchronisation, I strongly suspect that this is the cause, but have not looked into it in sufficient detail to know how this causation might occur. Ceeac - is there anything that you can think of that might be responsible for this?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

ceeac

Probably different settings (simuconf.tab/settings.xml). Try starting two instances in singleuser mode, I managed to reproduce the desync this way. I have not investigated the root cause of the desyncs yet, though.

jamespetts

Quote from: ceeac on February 20, 2022, 03:00:55 PM
Probably different settings (simuconf.tab/settings.xml). Try starting two instances in singleuser mode, I managed to reproduce the desync this way. I have not investigated the root cause of the desyncs yet, though.

Hmm - different simuconf.tab settings ought not to cause losses of synchronisation, since the settings that make a difference to the synchronised game state ought to be transmitted with the saved game. I will have to test running two different computers on the same local network to see whether this produces loss of synchronisation.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

As reported here, I have found the immediate cause of the problem: different versions of (the base) en.tab between server and client cause a loss of synchronisation.

This is very similar to a problem which I identified and solved in 2017: the town name fragments are randomised. At the time, they used simrand, not sim_async_rand, with the result that any divergence between the list of town name fragments on client and server would cause the random number state to diverge between them. I think that I fixed this by switching the town name randomisation to use sim_async_rand.

I am not sure whether that is the exact problem that has now recurred or whether something different but similar is behind this, but it is instructive to know what caused the previous very similar problem in order to understand how best to go about narrowing down the problem.

Ceeac and Ranran - have either of you altered anything in the commits that went in yesterday that related in any way to an interaction between translation texts and the random number generator?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

Quote from: jamespetts on February 20, 2022, 06:13:12 PMCeeac and Ranran - have either of you altered anything in the commits that went in yesterday that related in any way to an interaction between translation texts and the random number generator?
https://github.com/jamespetts/simutrans-extended/commit/b9175ecc95e26bdad924eb3e74d1d696f19bb7a2
There are some changes related to translation texts. I'm not sure if that will affect it. Indirect effects, if any.

jamespetts

Quote from: Ranran on February 20, 2022, 10:42:58 PM
https://github.com/jamespetts/simutrans-extended/commit/b9175ecc95e26bdad924eb3e74d1d696f19bb7a2
There are some changes related to translation texts. I'm not sure if that will affect it. Indirect effects, if any.

There is nothing obvious in that affecting RNG states - it is mainly multi-language support and translations that appear to be affected; code with which I am not particularly familiar.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

One of the mistakes I noticed in the heavy mode patch is that the version specification in function rdwr() is obviously wrong.
https://github.com/jamespetts/simutrans-extended/blob/36c9cd51899d71719fa440e14df0b2b521f722ee/dataobj/objlist.cc#L1043

I believe that (14,46) and (14,47) are used as revisions to fix max_speed_drive_by_sight_tram_kmh and are irrelevant to it. Probably the revision when the patch started to be created.
After they were added in this commit, the numbers in boden.cc seem to have been fixed, but the ones in objlist.cc seem to remain unchanged.

jamespetts

Quote from: Ranran on February 21, 2022, 10:52:49 AMhttps://github.com/jamespetts/simutrans-extended/blob/36c9cd51899d71719fa440e14df0b2b521f722ee/dataobj/objlist.cc#L1043

Thank you for that. I have now fixed this. However, I doubt that this is the cause of the problem, since, if the problem were faulty load/save code, desynchronisation would happen whether or not en.tab were the same.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran

Pull Request #523 is incorporating from the standard and focuses on symsys.
It seems that the last update was incomplete, and the complement is done. As a result, I hope that the problem of map scrolling will be solved. I would appreciate it if you could confirm it.

prissi

I would strongly suggest to also update simevent.cc, siminteraction.cc and simsys_s2.cc to the latest revision, since the actual scrolling and event processing still had some errors.

Ranran

QuoteI would strongly suggest to also update simevent.cc, siminteraction.cc and simsys_s2.cc
They are also in focus. I lost track of the original thread, so the description was omitted. The patch includes commits up to the 123.0 release. I expected it to be stable as there are blanks from there until those files are updated (For example, there is a gap up to r10344,345,368, which seems to be related to screen scale.), but is it still broken?

prissi

There were still some errors, especially for tablets and draggign dialogues. Maybe nothing so obvious for mouse. (apart from infinite scrolling back for mouse).

jamespetts

Excellent, thank you for this. Apologies for the delay in considering this. I have now tested this, and it does appear to fix the scrolling issue, which makes the game much better to interact with. Now merged.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

Having deployed this in the master branch, a problem has revealed itself: the server announce feature no longer appears to be working. I am able to connect using the net:bridgewater-brunel.me.uk in the load dialogue, and remain connected, but nothing reaches the announce server.

I have tested merging the 2202-some-fix branch and manually redeployed this on the server, but this does not appear to have assisted matters.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Ranran


Ranran

Quote from: Ranran on April 16, 2022, 12:04:24 PMCurrently identified issue:
https://forum.simutrans.com/index.php/topic,21536.msg199838/topicseen.html#msg199838
Pull request #530 is the incorporation and correction of commits related to this. Please confirm.
Since Extended is not Android-compatible and I don't think many people play with touch screens, the default is to offer the same mouse control options as before.
The revision number will increase as more options are added.