For my railway hobby I have written a program that can simulate and also control my trains. It uses my own developed hardware.
The hardware is based on Atmel microcontrollers. Meanly the ATmega8 or the old AT90S2333 is used. This microcontoller offered the most dense and price worthy alternative. One microcontroller can control 6 track segments.
Want to give version 2012-01-27 a try? It is offered under GPL license. It is running using 32 bit ubuntu 10.04LTS and fltk2.0. I used to have it running under windows as well but the scheduling of the program is much better under linux. When I introduced dynamic link libraries for programming your own track I decided to leave the windows platform completely.
baan.tar.gz
Here is an example output of a simple round track. Which is available in the doc directory.