Do I have to install the program?
All you have to do is unzip ALL the contents of the zip-file into a folder, and run Railway.exe; No installation required.
You could run this program from a USB Device if you wanted to, it’s that convenient!
Why does the screen flash so much? and why are some backgrounds transparent?
It is hoped that versions from v2.4.0 Beta will consign these problems to history. Earlier versions had compatibility problems that occurred predominantly with Windows 10. This advice is for users of earlier versions.
Fortunately the issues are easily cured. In Windows Explorer right click the railway.exe file (or the desktop shortcut if you have one), select ‘Properties’, then ‘Compatibility’, and tick the box that says ‘Run this program in compatibility mode for:’ and in the dropdown box under it select ‘Windows 7’. Then lower down tick the box for ‘Reduced colour mode’ and in the dropdown box select ‘8-bit (256) colour’. Then click ‘OK’ and the problems should go away. The setting changes only need to be made once.
The problems with flashing and colour are the main ones, but others have been reported though much less frequently. More information for these less common effects is given in the red box on the ‘Downloads’ page headed ‘Possible Compatibility Issues’.
Why are there compatibility issues?
Version 2.4.0 Beta hopefully solves the compatibility issues. Earlier versions suffered when Windows 8, then 8.1 and now 10 came along. Colour compatibility was the first effect, when the box for track and train information was found to have a transparent background, so text couldn’t be read. I assumed that this was due to the program being compiled on Windows 7 and run on later operating systems, but recently I tried compiling it on Windows 10 on my laptop and guess what? It worked fine on Windows 7 but had exactly the same transparency issue on Windows 10! I assume that was because althought the Embarcadero compiler ran on Windows 10 the code it generated wasn’t yet fully compatible with it. Their later compiler, version 10.3, seems to be fully compatible with Windows 10, so with any luck compatibility won’t be an ongoing problem.
Other issues that have come to light include frequent flashing, and incorrect behaviour with high DPI settings (discovered and cured by Mark Jones – thanks Mark). The latest release – v2.2.0 – cured the colour problem on my Windows 10 laptop, so I hoped it would cure it for all Windows 10 computers, but I think I was overoptimistic.
I fear that the different settings that can be applied when running an operating system can change the behaviour of applications in unexpected ways. I guess all anyone can do when faced with incompatibilities is to experiment with different compatibility settings in the hope of finding one that works. It isn’t satisfactory but how an operating system interacts with a program is very largely outside the programmer’s hands, sadly.
Why does the program pause when a user switches to another application?
This was added because it was found that the program froze on reactivation under some circumstances, including routes being set and points changing, and odd things could happen to the timetable clock.
Forcing a controlled pause on deactivation was felt to be the best way to avoid these situations. Besides what signaller wants to abandon his or her post in the middle of an operating session? Come on now – own up – you’re fired!
Shunt signals aren't flexible enough.
When the game was first published there were only four-aspect signals, which was a bit limiting so at one of the updates I added the others, which I was pleased to find was easier than I had expected. But there remains a problem with shunt signals, in that they are implemented as normal two-aspect signals but with different graphics, so they behave in all respects as normal signals.
This is a real limitation I know, so sadly it isn’t possible to simulate all shunt signal behaviour, which would require a lot more programming. Sorry about that. Maybe one day…
Why can't we have three-way points & slip junctions etc?
I agree these would improve the appearance of a railway but would require the underlying basis of the program to be changed. Each track element has up to eight links: two vertical, two horizontal, and two each for the two diagonals, and can allow up to two routes across it – for points, crossovers and bridges.
To implement the above features would mean increasing the number of routes, which would change so many aspects of the program that it would represent a major rewrite. It isn’t just that the definition of an element would need to be changed, which would be relatively simple, it’s that very many functions operate on the basis that no more than two routes are possible, so all such functions would need to be changed, and testing that all circumstances had been properly accounted for would be all but impossible with any confidence.
The good news is that anything that the above features can achieve can be achieved with the elements provided, though I have to admit that they don’t look as good.
Why can't the timetable be edited during operation?
When the user clicks ‘Load Timetable’ the whole thing is loaded into memory, not as it is written but as a set of machine-readable instructions for every train. It is checked for validity at the same time and if there are errors then it won’t load. On-the-fly editing is therefore not possible.
I don’t think it would be a good idea anyway because changes would need to be validated and errors reported before they became operational, which is a different task to operating the railway and in my view one best done separately.
Changes to train movements can be made during operation of course by invoking signaller control.
Why can't we have random signal and point failures and automatic route setting?
These are a couple of additions that I foresaw as useful for the flood of new programmers to develop when they descended on the source code, eager to make their mark and make the program fly.
We’re all still waiting sadly, so in the meantime you’re stuck with me – a lazy old excuse for a software developer, and getting lazier and older every day that passes. I do a bit now and then as the fancy takes me so please keep the ideas coming.
I don’t promise anything but I do consider all ideas, and any that are (or seem) reasonable I try to program in next time the programming bug bites me, which it does from time to time. I do promise however to give any serious bugs my closest and early attention.
Why won't my timetable validate?
Why can't I set up routes and then load a timetable?
A saved railway file doesn’t store routes, and a session file stores routes and the timetable that was loaded when the file was created. Therefore it isn’t possible within the program to edit or create a timetable when routes are already set. This isn’t normally a problem for small and medium sized railways because automatic signal routes can be set fairly quickly after a new or revised timetable has been loaded. It can be a problem however with big railways, when it can take a long time to set automatic signal routes. Having to wait for these to set each time a timetable is modified is therefore quite time consuming. To work around the problem there is a way to store the track and routes directly from a session file, and load these into a new session file created with a modified timetable. This procedure is described in the ‘File Specifications’ document available under the ‘Download’ tab. The relevant document section is called ‘Changing a timetable in a session file whilst retaining routes.pdf’.
Are there any other programs available that help in building and operating ROS railways?
Several utility programs developed by users are available at https://github.com/Railway-Op-Sim together with railway projects that are in course of construction. The GitHub site was set up and is administered by KR/ZAR (Discord name) to provide a managed location for all types of ROS add-on – railway projects and associated programs. Users are invited to contribute to the projects and to make use of the utilities.
For help in accessing the site please contact KR/ZAR via Discord or for help in using the utilities or in contributing to projects please contact the appropriate author.