Select Page

Please note that earlier versions (as far back as v0.4b) are available for download if required at

Only significant changes listed (latest changes first)

Version 2.5.1 (24/09/20)

This is a relatively minor ‘tidy up’ release.  It adds a few features that improve usability and operation, and corrects a couple of bugs.

Functional changes:

When a train changes direction under timetable control at a location other than at buffers there is usually a redundant route left in the original direction. The program now removes these unwanted routes automatically up to the next facing signal.

All types of finish event are now permitted immediately after a new train is declared (‘Snt’) apart from Fns-sh & Frh-sh.

Facing signals can now be allowed next to bridges if the user chooses it – this is useful for working on old railways without having to change them or for new densely packed railways. A warning is given that such signals can’t be used as route truncate points, but it is now up to the user to decide whether or not that risk matters.

The distance/speed selection warning that all track lengths will be set to the specified value is now only given once.

A few timetable error messages have been clarified.

Bug fixes:

For distance/speed setting the selected track length should show in magenta for easy identification, but prior to this release it was overridden by the normal colour when set.

Track information showed when the mouse was positioned over the timetable editor, this has now been corrected.

Version 2.5.0 (04/09/20)

Functional changes:

Timetable conflict analysis added. This is too complex to explain here but it is described in detail in section 5.12 of the user manual and on-screen help.

The warning that a session file hasn’t been saved when a session is ended or the application closed is now only given if the timetable clock time is 5 minutes or more later than the last session save or later than a new session start time

Signals immediately before bridges are now disallowed for new railways because the bridge prevents a route from being truncated to the signal (a bridge as a truncate point is ambiguous as it may contain two routes and is therefore not permitted). Existing railways with signals next to bridges will still work as normal, but if any changes are made to the layout then the restriction will apply.

An option has been added to ‘not show again’ the warning when changing the timetable clock.

Information is now provided for follow-on services in both the train status and timetable information windows when hovering the mouse over a train. It includes changes of direction, splits and joins, and departure times. This information helps in decision making for trains at and due to arrive at locations, especially in route setting for departures and platform selection for arrivals.

The ‘Actions Due’ panel now shows trains requiring attention before operation is resumed when a session file is loaded. This only applies for sessions saved after operating the railway, it doesn’t apply for pre-start sessions. This allows the state of play to be assessed before operation, and trains requiring the most urgent attention can be located ready for routes to be set as soon as operation begins.

The ability to right-click the first letter of text to delete it has been re-established in ‘AddText’ mode. From v2.1.0 it was overridden by the screen move routine, but now text deletion takes precedence.

In the timetable editor the selected entry following a cut or delete action is now the entry before the deleted entry rather than after it. This makes it easier to insert a new entry in place of the deleted entry.

The keyboard shortcut keys for AddMins & SubMins in the timetable editor have been removed because when these are to be used the edit box has focus and a keypress is interpreted as a text entry rather than as a command to simulate a button click.

Bug fixes:

It was noticed that the response to timetable editor keyboard shortcut keys didn’t match button click behaviour accurately in all respects. The keys worked as they should but sometimes the selected entry reverted to the top of the list making it necessary to scroll down again for long timetables. This has now been corrected.

An error discovered by Albie Vowles and reported via email on 14/08/20 was corrected. It was a fault that was present from the beginning involving locked routes, where all elements in the route normally stay locked until they time out at 2 minutes. In Albie’s case a train ran past the signal at danger (with the locked route ahead of it) and cancelled two elements, leaving it shorter than it originally was. Periodically the program rebuilds the entire railway, for example when the viewpoint changes, but in rebuilding this locked route it assumed it was longer than it was, and when it came to the end sooner than expected the program crashed and generated an error file. Fortunately it was easily fixed. The program now checks whether the actual length of the locked route is shorter than expected, and if it is then the rebuilding stops when it reaches the real endpoint.

An error discovered by JKWok and reported via discord on 9/7/20 was corrected. If separate locations were joined together by a new platform or concourse not all the earlier separate names were deleted. It was due to not ensuring that all elements had the chance to have an existing name erased, but now they do.

Version 2.4.3 (01/08/20)

This is purely a bug-fix release to correct an error reported by Isglassen05 on 31/07/20. When using ‘Delete’ in the edit menu in a railway that included one or more user graphics, where the selected area for deletion didn’t include any graphics, the program would fail. It was due to the variable used to search for included graphics being set wrongly. This version corrects the error. It is surprising that it hadn’t been reported before as it was present from v2.4.0 onwards.

Version 2.4.2 (07/07/20)

Changes in this version are as follows:

Text is now plotted after station platforms and concourse and non-station named locations so platform numbers can be placed over named location elements instead of being hidden by them. In fact this was added for version 2.4.0 but mention of it was overlooked.

Many more keyboard shortcut keys have been added so that most buttons now have a shortcut. The button hint (shown when the mouse hovers over a button) indicates the shortcut.

The user manual & on-screen help have been updated in line with these additions.

[Bug fix] A points check has been added in the check for a train entering a route in the wrong direction. Thanks are due to Xeon for reporting this error.

[Bug fix] A SPAD error could occur when trains entered at a continuation with zero or very low speed. This was a new fault introduced during the development of train failures and has been corrected in this release. Thanks are due to Micke (Commuterpop) for reporting this.

Version 2.4.1 Beta (30/05/20)

Version 2.4.1 Beta is a small ‘bug-fix’ update on version 2.4.0 Beta. 

The ‘Set mean time between failures’ menu option under the ‘Mode’ tag had been left in by mistake during development but did nothing.  This version removes it.  Thanks to Mark for reporting it.

Inactive track elements such as concourses couldn’t be erased in v2.4.0 due to an error in the code which this version corrects.  Thanks to Krizar for reporting it.

Mark sent in an error file generated when a train left at a continuation.  The file made it clear that just as the train left it had zero speed, which caused an arithmetic error that crashed the program.  This version ensures that the program won’t crash if the same thing happens again – but why it happened remains a mystery.

Version 2.4.0 Beta (27/05/20)

Version 2.4.0 Beta incorporates several features, some of which have required significant code modification, so it is released as a ‘Beta’ because even after a lot of testing there may well remain some teething problems that will need early attention. It has been compiled using Embarcadero’s latest C++ compiler version 10.3, which is based on Windows 10 and generates code that doesn’t need any changes to the compatibility mode, at least for normal Windows 10 settings. A very welcome and surprising outcome was that the program also works on earlier Windows versions without the need for any changes to the settings. It has been tested on an ancient notebook computer that runs Windows XP and it worked perfectly straight out of the box – that was really unexpected! It should therefore work on any Windows operating system later than XP.

New features include:

– Random train failures.

– The ability to add user-defined graphics (note that files saved with failures or user graphics won’t load in earlier versions).

– Rotation by 90 degrees.

– All pastes are now with attributes, although ‘Copy’ won’t copy location names because these can’t be duplicated.

– Timetable listings can be sorted into alphabetical order for easier service location.

– More keyboard shortcuts have been added.

– All session files should load regardless of which decimal point character was used when saved (different countries use different characters) – thanks to Micke for helping me with this.

– Platforms can now be any length equal to or greater than 20m, which is the minimum length for any track element. Formerly they were fixed at 100m to prevent unrealistic scaling, but user pressure forced a rethink, especially when Discord member Xander with an X pointed out that ERTMS requires short platfrom lengths in order to display several train locations at each platform.

– A number of error messages have been clarified.

Bug fixes:

– The ‘Submins’ (subtract minutes) box had disappeared from the timetable editor in version 2.3.1. It’s a bit too easy to move buttons and other program features inadvertently when changing the user interface, and I must have moved that button behind one of the panels without realising it so it couldn’t be used. No-one reported it so it must not have been missed, but it’s back now.

– If there was an exit signal next to a level crossing and an autosignals route was set from that signal the train crashed into the crossing. The reason was that as a train approached the crossing the single route element on the crossing was removed ahead of the train and the crossing started to close, causing the train to crash. Exit signals now can’t be placed next to a level crossing. Thanks to Krizar for reporting it.

– If the ‘Actions due’ panel was clicked before trains were listed, or a train was clicked after it had been removed by the signaller but before the panel updated then the program crashed. This has now been fixed. Thanks to Rokas and LiWinDom for reporting these errors.

– The wrong colours were displayed for underpass lengths and speed limits. These have now been fixed. Thanks to Xeon for reporting it.

– There was a lockup condition when the ‘Actions due’ panel was open and a train was in a loop. This has been fixed. Thanks again to Xeon for reporting it.

Version 2.3.1 (05/02/20)

This is a relatively minor change, the main aspect of which is the addition of underpasses, also serving as surface-level foot crossings.  These function exactly the same as footbridges and are added to improve accuracy rather than functionality.  You will see that for these the track lies over the crossing rather than underneath it. The only restriction to be aware of during construction is that an underpass element won’t link to a footbridge element.  On the track build panel the new elements are located next to the existing footbridges.  Note that railways and sessions that include underpasses won’t load in program versions earlier than v2.3.1.

Some of the more obscure warning messages have been expanded to improve clarity.

The only other change is a bug fix where the program crashed when very large numbers were entered for timetable repeat values.  Thanks to Albie Vowles for finding and reporting this error.

Version 2.3.0 (02/01/20)

Signals can now be displayed on the right hand side as well as the left hand side of the track. The setting is made before any railway is loaded so existing railways can be loaded with right hand signals where appropriate. Other than in appearance the signals work as before.

Timetable clock speeds have been extended to include 1/8 and 1/16 real time. This is to make operation of very large railways easier. Also the time taken for points and level crossing barrier changing and route setting have been kept at their normal values for slower clock speeds, to prevent long waiting times for slower speed operation. At higher clock speeds these durations shorten in proportion.

The ‘Actions Due’ panel has been modified to prevent track and train information from being displayed when they lie behind the panel (Thanks to Xeon for spotting and reporting this error).

An error in the user manual and help files has been corrected.  ‘Paste with attributes’ was claimed to retain preferred directions as well as track properties. In fact it doesn’t retain preferred directions as they are not stored as track properties, and keeping them would be a difficult programming task. Re-establishing them for a moved section of track is normally quite quick.

The user manual and help files have been updated in line with the above changes and the timetable error messages document has also been updated to correct a few errors and to make some explanations clearer.

Changes have been made to text and graphics handling functions to make memory usage more efficient. There had been failures when loading very large session files, especially those containing very many trains. These changes provide a bit more memory space for such files.

Version 2.2.0 (03/10/19)

A new ‘actions due’ panel has been added.  This makes operation easier for railways that extend over several screens when many trains are out of sight. The panel contains a list of train headcodes with times to act in timetable minutes, in ascending time order. This panel is displayed by left clicking a new button with an hourglass icon. Left clicking a headcode brings the train selected (or the entry point for trains not yet running) to the centre of the display, with the mouse hovering over it and displaying status and timetable information when these are selected. The user manual and online help have a new section ‘Actions due’ that explains how the feature works in more detail.

A new ‘paste with attributes’ feature has been added.  This facilitates modification of the layout of a railway so that it fits better on a screen with a different resolution to that on which it was developed. When using the normal cut and paste functions all preferred directions, track lengths, speed limits and location names are lost. This new feature retains all these attributes so they don’t have to be re-entered. Any new track elements needed to link to the repositioned area will need appropriate new attributes setting, and if the cut area includes any train entry points then the timetable will need to be altered to reflect the changed element identifiers.

The ‘End’ key on the numeric keypad can now be used to toggle the zoom function on and off, providing Numlock isn’t on.

The earlier letter keys ‘w’, ‘s’, ‘a’ and ‘d’ that could be used to move the display up, down, left or right well as the keyboard arrow keys have been dropped. The arrow keys still work as before, but conflicts arose with the hotkeys introduced in the last version. No-one reported this so we assume that they weren’t generally used, and keyboard movement is much less necessary since the ability to drag the display using the right mouse button was introduced.

The need to set 256 compatibility mode for Windows 10 may have been solved – by setting solid colours instead of the default Windows colours. These defaults became transparent in Windows 10 obscuring the text that was incorporated, especially on the floating panel used for track and train information.

Performance scores for excess level crossing barrier down times weren’t being saved in session files. This omission has now been corrected.

Version 2.1.0 (10/03/18)

User interface improvements:

Icons have been added to many of the menu items and buttons.

Speed and distance conversion facilities now work both ways.

‘Hotkeys’ have been added for frequently used functions.

A website link has been added to the help menu.

Presentation has been improved in terms of clarity and ease of use. 

Functional improvements:

The railway can be repositioned by dragging with the right-hand mouse button in both zoom-in and zoom-out modes.

The screen can be resized and still retain full functionality.  Xeon recently mentioned this limitation when not in full screen mode and Albert promised to add scrollbars at the next release, but full function resizing is much better than the inconvenience of scrollbars.  Interestingly he had thought that scrollbars were available but after Xeon contacted him found that v2.0.0 didn’t have them.  Further investigation revealed that they were available in v1.3.2 and earlier, but disappeared for some unknown reason in v2.0.0!

Routes can be cancelled when they are occupied by trains with a ‘route locking’ warning as given for trains approaching signals.  Albert had earlier thought that route cancellation when occupied should be disallowed as SPADs are more likely in these circumstances, but it meant that long automatic signal routes couldn’t be removed when there was heavy traffic and the route was never free of trains.  One user, Brian Clancy, commented on this back in 2016, pointing out that it is allowed in real railway operation when circumstances require it, which it has to be to avoid a no-way-out situation.  This change therefore brings operation more into line with real railway operation.

More information has been added for trains that have yet to enter at continuations, including repeat number, entry speed and timetable, to allow better planning for when the train arrives together with earlier route setting.

The help manual and on-screen help have been updated to reflect the latest changes.

Errors corrected:

The timetable screen caption now reads correctly when creating or editing timetables.  Formerly the earlier loaded timetable name remained in the caption in error.

Signal behaviour on locked automatic signal routes exiting at a continuation when a train has exited has been corrected.  Before, signals continued to clear in sequence in spite of the route being locked.  All now remain at red.

There was a potential error when pre-setting automatic signal routes, in that a pre-set route could be set across a diagonal that was fouled by an adjacent track that cut across it.  Now such situations can’t arise when pre-setting routes, though they can still be created by the user during operation if required.

Version 2.0.0 Beta (23/08/17)

The major change here is compilation using Embarcadero’s new (free) C++ Builder compiler version 10.2.  It’s released as an experimental version because although I’ve tested it quite thoroughly there may well be things that I’ve missed that will only come to light during operation.  Please let me know of any problems or unexpected behaviour.

Some minor changes have also been introduced as follows:

Railway file loading:  The dropdown box has been removed.  I and others found this a bit tedious so now all railways are displayed together whether .dev or .rly files, making loading quicker and easier.  Just be sure to select the one you want!

Timetable change:  ‘Fjo’ (finish join other train) has been added as an option immediately after ‘Snt’ to allow empty stock to be picked up.  Richard Gaede asked about this some time ago and I hadn’t until then realised that it wasn’t possible.

Help system:  This is now up to date using .chm files.  The earlier Windows Help system has been discontinued and wouldn’t work on newer operating systems.

Train information:  ‘Show status’ and ‘Show timetable’ are now active on startup so they don’t have to be selected.  I always keep these active during operation and I suspect others do too, so it seems sensible for them to be available immediately.  If the aren’t wanted then they can be hidden in the normal way

Version 1.3.2 (04/07/15)

A few fairly obscure errors have been reported and discovered since the last version over two years ago and these are corrected in this version.

Fault reported by Glenn Mitchell 14/04/13.  Failure occurs when try to set automatic signal routes prior to operation if there exists a junction where there’s a preferred direction set on the through track but not on the diverging track, and where the diverging track links to a signal.  Corrected by disallowing an automatic route in these circumstances.

Found that could set a route across a fouled diagonal (i.e. where a route is already set on the diagonal track) if the route start element is adjacent to the diagonal.  This was because fouled diagonal checks were not made for first element, but these are now included.

Fault reported by Ian Walker 18/04/13.  Timetable edit screen stays up when click cancel on file open dialogue panel – should go back to base mode. Now corrected.

Fault reported by John Phillipson 09/04/15 relating to a train split.  This was traced to a program error where an area of memory could be overwritten after the new train was added following a split under some circumstances.  The functions requiring changes were quite extensive so as well as local testing they were compiled as a  pre-release beta version that John kindly tested over the following weeks without any new problems coming to light.

Fault reported by Carwyn Thomas 24/05/15.  An incorrect SPAD was given when a train passed the last signal before a continuation, and when he tried to remove the train under signaller control an error was generated.  There were two faults involved, one relating to the train removal – due to the front of the train having passed out of the continuation and the program trying to access the front element, which of course no longer existed.  Corrections were made to the relevant functions.  The SPAD error was found to be due to two trains exiting the same continuation in quick succession, when the second train passed a signal facing in the opposite direction when the last signal before the exit was still in course of changing back to green after the first train had exited. This was also corrected following investigation.

Version 1.3.1 (30/03/13)

A number of errors have been fixed in this version as follows:

  1. Letter keys (‘a’, ‘d’, ‘w’, & ‘s’) entered in distance/speed boxes were also found to move the screen viewpoint which was not required in these circumstances.
  2. The miles/chains & speed conversion boxes stayed on screen after distance setting when another button was clicked in Build/Modify mode.
  3. The program locked up if points were in course of changing when it was deactivated by another program becoming active. Changing points are now cancelled when the program deactivates.
  4. A train’s maximum running speed is set to a joining train’s maximum speed if it is less than the current train’s maximum speed, but if the joining train is a service continuation then its maximum speed is zero until it appears on screen, and in this situation the maximum speed of the joined train is set to the minimum value which is 10km/h, which is not what is required.  This version corrects this error, which came to light during development of Ian Walker’s Chiltern Railway.  Hence when that railway is published this latest version will be required to operate that railway properly.
Version 1.3.0 (28/10/12)

This version corrects a number of obscure faults and includes keyboard navigation using either the cursor (arrow) keys or, for left hand use, ‘w’ (up), ‘s’ (down), ‘a’ (left) and ‘d’ (right).  My thanks are due to an anonymous user for suggesting navigation using the keyboard.

The faults corrected are:

  1. If a train was removed by the signaller when occupying an automatic signals route then the signals stayed as they were when the train was present. This version resets the signals.
  2. If a train entered the start of an automatic signals route under signaller control and stopped when occupying one or two elements, then changed direction and moved back out again, the first signal stayed at red.  This version resets the signal.
  3. Train status information has been changed to show speeds in whole numbers of km/h rather than including the first decimal point.  This has been found to reduce (slightly) the flickering that occurs when this information is visible.  The flickering is due to the screen refresh processes that are part of the Windows operating system and there seems to be little that can be done in the application software – I’ve tried but with only limited success!
Version 1.2.0 Beta (24/06/12)

The main new feature from the users’ perspective is the addition of a ‘Preset automatic signal routes’ button that is available when ‘Operate railway’ is selected and ‘Pre-start’ mode is entered. This was added in response to a recent suggestion by Keith Hazelton (GoonerKeith) and because I was already making other significant changes to the routing functions as described below. The new button appears as in place of the ‘Call-on’ button which isn’t needed in pre-start mode. The call-on button now appears when the ‘Run’ button is clicked. When the new button is clicked automatic signal routes are set on all track sections without points, crossovers, ground signals or level crossings that have single preferred directions set and that lie between non-ground signals or between continuations and non-ground signals. Hopefully this feature will save a lot of time in setting up these routes manually. The new button is available providing there are no existing routes present.

Other changes were made to correct a number of errors involving diagonal crossovers that I had noticed and I am sure others had too although though no-one had complained. These all relate to situations where there are crossing diagonals, i.e. diagonal track elements that cross other diagonals. There are lots of combinations of these – for example :-

The significant thing here is that routes and trains that cross at these points never occupy the same track element at the same time, as they do if they cross at a normal single-element crossover. I had taken account of these situations when setting routes – checks are made for an existing route at a crossing diagonal, but had completely overlooked related situations, i.e. that trains should crash if they meet at such a crossing; a route shouldn’t be settable through a train that is using such a crossing; and an existing route should be cancelled if a train crosses it at such a crossing. All these omissions came to light while playing with the simple Mile Oak railway that is used in the timetable tutorials. You can imagine I’m sure how I groaned when I made the discovery.

At the same time I decided to change a number of things that had been annoying me, and I’m sure you too. The first was to keep the existing train and track information settings (show or hide) when new session files are loaded. Previously they reverted to ‘hide’, and had to be reset to ‘show’ each time. Now they start off as hidden when the program is first started, then remain as set by the user until the program is terminated. The second was to allow an unrestricted route to be created into an occupied platform for a train waiting at a signal and still allow it to be called on. Previously all points into the platform had to be set manually, and any route (apart from an automatic signals route) , would prevent the call-on being offered. Now it’s much easier to create the route and have that set all the points. Third was to prevent an automatic signal route from being created from buffers – otherwise there’d be no way of allowing a train to reach the buffers! This now matches the corresponding restriction of preventing such a route being set into buffers which was present before. Why I didn’t prevent both at the same time I don’t know. I also noticed that if the ‘About’ box was displayed in pre-start mode, then when it was removed the mode reverted to paused mode. Now the mode stays the same as it was before the box is shown.

As you can see there have been many changes, and hence the ‘beta’ version. I have done a lot of testing of the changes and new functions, but as ever I can’t test exhaustively, so there may well be errors still present that I hope you will tell me about if you find them – thanks.

Version 1.1.4 (23/04/12)

This version corrects two errors and makes one minor change. 1. Location name error corrected: in earlier versions if a named location consisted of a single element, and the name was erased or changed, the text of the original name remained on screen and had to be erased separately. 2. Performance log error corrected: in earlier versions if one or more trains crashed or derailed then the filed performace summary stated that no score could be allocated because there had been no arrivals or departures, whether or not there had been. 3. Minor change: if the ‘NEW HOME’ button is clicked in zoomed-in mode the program now advises that a change has been made before exiting, to allow the railway to be resaved. This saves the amended home position.

Version 1.1.3 (24/12/11)

This introduces a new check that prevents railways being operated with two adjacent level crossing on the same track. Earlier versions had permitted this but very strange things happened during operation when routes were set and trains attempted to go across the crossings. If a railway is loaded into this version that has two adjacent level crossings saved by an earlier version, then a message will be given saying that the railway will be loaded as a new railway. The ‘link track’ button will reveal the offending crossings so that they can be removed. My thanks to Bjorn Verzijlbergh for notifying me of this error.

Version 1.1.2 (04/07/11)

Two errors have been corrected in this version – both notified to me by Matt Blades – many thanks Matt:-

Firstly a fault prevented automatic or preferred direction signal routes being set in certain fairly unusual circumstances – due to an internal program test giving a false positive.  The test has now been corrected.

Secondly Matt noticed that if the window was changed while a route was being set, then on returning to railway.exe the program froze.  The deactivation detection routine in the program has now been improved to detect this situation and to cancel the route being set.

Version 1.1.1 (27/04/11)

An error has been corrected whereby a session that had been saved with a regional setting (Control Panel – Regional and Language Options) that used commas for decimal points rather than full stops would fail to load.  Thanks for Jorge for notifying me of this error.  A correction has been made so that a session file should always load correctly with the same regional setting that was used when saving it.  Note though that a session file saved on a computer with a regional setting different to that on which it is to be loaded will fail on loading if it uses a different decimal point character.  In this case first change the regional setting to the country of origin of the session file, load the file, then change the setting back to normal and immediately resave the session.  The newly saved version should then load normally.

It had been noticed that level crossings displayed as always open horizontally on saved bitmap railway images regardless of track direction.  That has been corrected in this version.

Version 1.1.0 (13/04/11)

The main change in this version is the addition of level crossings.  Details of their operation are given in the user manual in section 3.1.1 on page 8, and in program help in section 3.1.1.  Note that if earlier versions of the program try to load railways or sessions containing level crossings, the load will fail.

Other minor changes are as follows:-

Routes may now be cancelled without route locking if the first train on the section is stopped.

It was noticed that the screen grid did not expand for resolutions higher than 1024 x 768, now it does.

Location naming functions have been tidied up – earlier, when combining two named locations the second name stayed on screen, now it is deleted; and earlier it was possible to give a timetabled location the same name as a continuation, now it isn’t.

The appearance of diagonal ground signals has been improved as the sloping top didn’t stand out well enough.

Version 1.0.0 (02/03/11)

The program is judged to be stable enough now after almost a year of beta testing to be released as a production version.  The GNU version numbering system ‘a.b.c’ is used where ‘a’ represents the major version number, ‘b’ a minor version number, and ‘c’ a minor patch or bug fix.

The only change from beta v0.6c is a change to the performance scoring system, after I realised that I had failed to penalise incorrect exits, unexpected exits, and missed events other than missed stops.  These are all now incorporated, so a session file loaded and then immediately resaved will be seen to give a different (and lower) performance score if any of these events had occurred during the session.

Version beta 0.6c (20/02/11)

In the last version (0.6b) the revised headcode validity checker was left in an incorrect state.  In effect it failed to discriminate between a time and a headcode, with the result that chronological timetables (created when exporting timetables) became completely corrupted.  This version corrects the error.

Version beta 0.6b (13/02/11)

There are three enhancements, two changes, and two error corrections in this version.

Enhancements: 1) Train headcodes are now much less restricted.  Any alphanumeric character (upper or lower case letters or digits) may appear in any of the four headcode positions.  The only condition is that repeating services that have headcode digit increases between repeats must have digits as the last two characters of the headcode.  This change is because there are increasing numbers of railways being developed that don’t use the standard British ‘digit letter digit digit’ format.  Note that timetables that use this feature will fail to load into earlier versions of railway.exe.  Note that the earlier requirement to add “;0000” after the timetable start time to allow (slightly) less restricted headcodes is no longer necessary.  2) The train status floating window now includes, for repeating services, information about the repeat number.  This takes the form of ‘First service’, or Repeat service no. 1′, Repeat service no. 2′ etc.  This has been included because trains that join must have corresponding (i.e. the same) repeat numbers, as well as the correct headcodes, and this feature allows any discrepancy to be seen.  3) Performance scoring has been added at the end of the performance log.  Points are deducted for late running based on overall lateness, and increasingly severe deductions are made for missed stops, SPAD risks, actual SPADs, derailments and crashes.  A percentage score is given along with a rating, which runs from ‘Perfect’ to ‘Abysmal’, or, if there has been a crash, to ‘Catastrophic’.

Changes: 1) Formerly when a timetable had been loaded for operation, and then a timetable was loaded into the timetable editor, the loaded timetable stayed in place.  However changes made to the editing timetable also affected the loaded timetable, which could cause problems in some cases.  Therefore, now, whenever a timetable is loaded into the timetable editor any other loaded timetable is removed, and to resume operation a timetable must be loaded again.  2) During timetable editing, when pasting entries, the current (highlighted) entry remained at the same position as before the paste.  Now the current entry changes to the pasted entry (as it does when new entries are inserted).

Corrections: 1) Glenn had reported problems with trains failing to join correctly when operating Plenwell IECC.  The reason was found to be failure on my part to update the ‘Running’ status of trains that were continuation services from earlier services.  In fact the ‘Running’ status was only correct for trains that were created using codes ‘Snt’ or ‘Snt-sh’, all other start codes continued to use ‘Not started’ as the status, which was clearly incorrect.  I fear that others will have found this error but probably blamed their timetables when they should have blamed me!  My apologies to all that have been affected by this error, and my thanks to Glenn for reporting it.  2) An error log file was sent in by Rander of the UKTrainSim forum, which occurred during timetable development.  This was traced to a failure on my part to update the current entry pointer correctly after a new entry insertion.  In most cases there would be no error, but in some cases, when the array of entries in memory becomes too big for its current location the program moves the entire array to a different area of memory.  In these cases the current pointer would point to some random place that had nothing to do with the entry array, and an error would be the result.  This has now been corrected – thanks Rander.  Again I suspect that others may well have been frustrated by this error during timetable dveleopment, so again I offer my apologies to those affected.

Version beta 0.6a (31/01/11)

The program now adapts the displayed railway size to the screen resolution for resolutions higher than 1024 x 768.

Corrects an error discovered by NajamUddin (my thanks again to him for reporting this) on calling a train on.  If the platform element where the train was to arrive was a set of points, then the program could fail due to a coding error.

Version beta 0.6 (27/01/11)

Incorporated two and three-aspect signals and ground signals.  Note that railways saved in earlier versions will load in this version with all signals four-aspect, and railways with two and three-aspect or ground signals saved in this version and then loaded into earlier program versions will have all signals shown as four-aspect.

Incorporated a variable speed timetable clock feature and the ability to increment the clock.

The user manual and help files have been updated to explain these new features.

Added a HP/KW converter to the timetable create/edit screen.

Corrected an error that could occur when a train was created on a route that was in course of building – thanks to NajamUddin for bringing this to my attention.

Corrected a rounding error in the performance log whereby hours could display one too high when near the end of the hour (e.g. 07:59 could display as 08:59).

Set a minimum track element speed limit of 10km/h, and also set the lowest value for a train’s maximum speed of 10km/h.  With lower values a ‘divide by zero’ error sometimes occurred during the train speed calculation due to approximations made in that calculation.  Note that on loading railways saved in earlier program versions any speed limit that is less than 10km/h will be set to 10km/h, and on loading earlier timetables any maximum train speed that is less than 10km/h will be set to 10km/h.

It was noticed that speed limits and track lengths for diverging point legs were ignored by the program, this version corrects those errors.

It was noticed that after a train had passed under a bridge when the top track had a route set, the route colour was redisplayed incorrectly.  This version corrects that error.

Version beta 0.5 (08/01/11)

Added distance and speed converters from imperial units to metric units to facilitate track element length and speed limit entries during track building, and train speed entries during timetable compilation.

Corrected a fault that could occur when creating formatted timetables.  Hour entries could be too low in some circumstances (e.g. could read 07:00 when should read 08:00).  This was due to a failure to round correctly when converting from floating point to integer values.

Improved preferred direction and route searching to ensure that all possible directions from the starting element are searched properly.  Formerly, when there were many possible routes in one direction from a given starting element the search could fail, and other – probably better – directions would then not be searched.

Version beta 0.4e (16/12/10)

Added the ability to move the screen viewpoint by larger amounts by holding the Shift key down when clicking the navigation buttons.  This will reduce the number of clicks needed when navigating large railways.  The user manual and help files have also been updated accordingly.

Version beta 0.4d (29/11/10)

Corrects a fault that prevents routes and preferred directions being set across widely separated gaps.  Thanks to Mark for notifying me of this error.

Also corrects a fault where if zoom out when moving to a follow-on preferred direction element the program stops with a ‘can’t set focus’ error when click to zoom back in again.

Section 6 of user manual & help file changed slightly to add that trains will stop for trains in front if they are at a timetabled stop location.

Version beta 0.4c

Corrects a fault whereby when two or more trains exited the railway within the same clock cycle (50mSec) one or more of the trains would still register as present on the last track element but would not exist in the train list.  If the mouse then hovered over that track element with train information enabled an error would occur and the program would stop.  My thanks to Craig for bringing this error to my attention.

Updated my email address to in the quick start guide.

Information added to point 5 in section 5.11 of the help file and the user manual relating to the behaviour of signaller controlled trains.

Version beta 0.4b (26/07/10)

All this does is change the email address in the program’s error message from ‘’ to ‘’, so there is no real need for existing users to download it.

Version beta 0.4a (20/07/10)

The program is now released under the GNU General Public License version 3 [note American spelling for consistency].  This is in preparation for publication of the source files which should be within a week or two.  On first loading the program a message to this effect is given.

In v0.4 when I made non-station named location (blue square) lengths 100m I overlooked the fact that these could be placed without track being present, and placing in this way then caused a fault (as did pasting areas of railway that included such locations after cutting or copying).  That fault has now been corrected.  [I wish I could correct a fault without creating a new one – or two!]

Problems had been reported where session files failed to pass the integrity check on subsequent attempts to load.  This was due to the stored temporary timetable file being incompatible with stored train information and is thought to be due to a single ‘timetable.tmp’ file being created for all timetable loads, rather than a unique timetable file for each timetable load.  The current version creates unique files of the form ‘TmpTT<n>.tmp’ where ‘<n>’ is a number, and these should be deleted automatically when the program ends.

Version beta 0.4 (11/07/10)

Corrected a fault in the train split function – could receive a false linking error with the original code.

Version 0.3 introduced an automatic cancel of routes consisting of a single element.  However another fault was discovered with this process in that if such a single element was selected for the start of a new route, and was cancelled before the new route was completed, then on the subsequent attempt to complete the new route a failure would occur.  This has now been corrected.

The zoom-out screen navigation has been changed to 60 elements from 30.  This makes for faster review of large railways in zoom-out mode.

The calling-on function has been improved in that checks are now made for any existing routes elements or conflicting routes before the call-on is offered, and when accepted an unrestricted route is set into the platform.

The route setting functions have been changed to search first in the direction of ‘set’ leading points.  This means that if there are two or more possible routes between the start and end points, or a route cannot be found by the program because the search would take too long, then one or more sets of points can be changed to link track elements along the desired route.

It was found that named location track lengths were not fixed at 100m (as platforms are), though the distance calculation treated them as though they were 100m.  These are now fixed at 100m.

The help file and user manual have been updated to reflect and explain the above changes.

Version beta 0.3a (27/06/10)

The last release introduced an automatic cancel of routes consisting of a single element.  However if such a single element route was in course of being extended when it was cancelled, the route extension failed and the program raised an error.  I had overlooked this possibility at the time of the first modification.  The effect was again found by Richard – my thanks go again to him for the discovery.

A couple of errors were also found in the timetable reload function.  I had failed to update it when the normal timetable load function was modified some time earlier.

Version beta 0.3 (21/06/10)

It was discovered that after a train had been introduced into the railway at a position that was already on a non-automatic signal route and it then moved forwards and left a gap in the route, if an attempt was made to extend the route the program crashed – thanks to Richard for notifying me of this fault.  The program now cancels any non-automatic signal route that lies behind a newly introduced train if the train starts on the route.

Another change is that the program automatically removes any routes that just consist of a single element – these are left when a train stops at a signal that ends a route.  This is tidier as sometimes the train changes direction and moves away, leaving the single route element isolated.

Another error was discovered in that if a complete loop of routes was attempted to be created consisting of mixed automatic signal routes and other types, then the program locked up as it went into an endless loop trying to set signals but never reaching the end of the route.  A check is now included to prevent this happening.

The help files and the user manual have also been updated to clarify a number of complex timetable functions, and also some errors have been corrected.

Version beta 0.2e (13/06/10)

I discovered that if a railway was saved using menu items ‘File’ then ‘Save railway’ (rather than by using the ‘save railway’ button with the blue disk icon) the saved file would fail an integrity check on attempting to reload and therefore be unusable.  No-one had reported this error so perhaps everyone uses the button rather than the menu.  However if anyone has such unusable railways please send them to me at and I’ll fix them and return them to you.

Also added is the ability to move the viewpoint by 2 elements at a time by holding down the control (Ctrl) key when a ‘move viewpoint’ button is clicked.  This allows much finer control of the railway position on the screen.  Corresponding changes have been made to the user manual and the help file.

Version beta 0.2d (29/05/10)

When a train tries to move under timetable control when facing buffers, a message should be given via the performance log to advise the user that it can’t move.  Instead an error was generated because an internal check had been missed out.  This version corrects the error.  By coincidence this error was reported by two different people in the same week – thanks to both James and Matt.  At the same time I changed the gap flashing behaviour (right click on a gap it and both it and its matching gap flash red and green respectively) so that gaps won’t flash when a train is present on either gap.  This was altered because the flashing interfered with the train display.

Version beta 0.2c (15/05/10)

Corrections made to the image generation functions.  In some circumstances earlier versions generated distorted images.

Version beta 0.2b (13/05/10)

Timetable validation errors corrected – thanks to Colin for notifying me of these.
User manual and help files updated to clarify the timetable requirements.

Version beta 0.2a

In making the change to the timetable and clock times I used a different function to generate the time display, and also used this function in filenames for session and operating images.  Unfortunately they included the colon (:) character, which isn’t permitted in filenames and these saves therefore failed.  These have now been changed to use the stop (.) character and the saves succeed.

Version beta 0.2

Train found to jump forward for signaller command step-forward-one-element.  Corrected to accelerate and brake smoothly.

More detailed checks added prior to file loading.

It had been possible to add multiple non-station named location elements at the same location (for example by a sensitive mouse that delivered two or more clicks when it should only have delivered one).  The effect was not visible on screen but it would cause subsequent railway file load failures.  This has now been corrected, and files that would not load previously because of this problem will now load, because duplicate entries are ignored.  Thanks to Michael for bringing this error to my attention.

The timetable clock now displays from 00:00:00 to 95:59:59, i.e four full days, before resetting to 00:00:00, in order to make it clearer when the time has run past midnight on the first day.  Time entries in the timetable are also now correspondingly valid from 00:00 to 95:59.

Sections 3.3 and 5 of the help file and user manual updated to add more information relating to non-station named locations and to reflect the above timetable time changes.

Version beta 0.1d

Time displays used the Windows regional setting, which was correct for ‘English (UK)’ but not for other settings.  On computers having non UK regional settings the timetable clock did not display correctly, and, worse, performance logfiles and session files could not be saved or loaded.  Thanks to Simon for bringing this error to my attention.

Help file and user manual section 6.3 updated to include a warning about running two railway.exe programs at the same time, which could cause session files to be saved incorrectly.

Pin It on Pinterest

Share This