Interview with SMR for Mac OSX developers


The developers from Feral Interactive were kind enough to answer some of my questions. Both gamers and map makers should enjoy their responses!

In SMR for Mac can tunnel & bridge prices be configured on a per
map basis?

Overall, the Mac functionality in-game is the same as for the PC version of the game, so
you can’t customise any aspect of the Mac game that you couldn’t in the PC version. This
means you can’t configure tunnel and bridge prices on a per-map basis.

What made you decide to port SMR?
We’re big strategy fans here at Feral, and in recent years we’ve released business
simulation games such as Tropico 3 and The Movies as well as RTS and turn-based
strategy games like Empire: Total War and Rome: Total War. We ported Sid Meier’s
Pirates! to the Mac in 2008, and it did well, so Sid Meier’s Railroads! was a logical choice.
On a more personal level, there’s something really timeless about the game, it really
captures the joy of playing with train sets. On top of that it has the business simulator
edge, which as you know is highly addictive!

Do you have a favorite map?
I think everyone who worked on it has their favourite maps. Because we’re based in
London we are particularly fond of Great Britain, it’s like a fantasy of what it would be like if
our rail networks ran on time…

Have you tried any custom maps?
We did test a number of custom maps and found a number of bugs in the
PC scenario editor which caused crashes. Although we don’t support the editor officially (it
was also unsupported on the PC), we did fix a number of bugs to help modders
who decide to use the editor.

Did you ever figure out how to make a train go in a circular route?
Some things are a mystery to even us. Maybe Sid Meier knows?

As you know back in 2006 SMR was very crash prone, now in 2012
with SMR for Mac what would you say about stability?

The Mac is based on the final PC patched version, so everything that was fixed in that
version is fixed in the Mac version. In addition, we also fixed a number of logic bugs and
crashes on the Mac version.

No software is ever perfect (apart from perhaps “Hello World” written in BASIC), but Sid
Meier’s Railroads! on the Mac is very stable and fun to play. If users do find a crash, they
should contact our support team and we can add the details to our bug tracking system for
a potential future patch.

Have you added any maps to SMR for Mac?
We didn’t create any new maps, but we did include the “Lapland” map, which as we’re
sure you know, features the delivery of cookies across the frozen wastes of Father
Christmas’ homeland.

What was the most fun aspect of developing SMR for Mac?
Testing the multiplayer! Our QA team all work in the same room, so when they tested
four-player online multiplayer we could hear their shouts of delight… or despair. We also
learned a lot about the history of the railroads, particularly the documentation team, who
spent many happy hours proof-reading the manual. They now win the “transport” round of
every pub quiz.

Are there any easter eggs for us to find?
There aren’t any Easter Eggs, but we did fix some issues that were present in the PC
version, especially when it came to modding and custom scenarios.

Are there any other interesting features in the Mac version?

The first thing is that it supports Apple’s Game Center, which is Apple’s online gaming
platform that was released on Macs this summer as a feature of OS X 10.8 Mountain
Lion (though it had been around on iOS for a bit longer). Because it was released not
long afterwards, Railroads! would have been one of the first games to use Game Center’s
features as an online matching service. Additionally, we added new, Mac-specific features
that we add to all our games, such as automatically-filed screenshots and a custom front-
end panel. In Railroads!, this panel lets you customise your iTunes options and control
whether the Terrain Editor is displayed in game, for example.

Probably the most interesting feature is the music though; due to licensing issues we
were unable to use the original music for the game, which meant we had to record our
own! That means that almost all the music you hear in game was written and recorded
especially for the Mac version. It’s now high-quality stereo recordings instead of the low-bit
rate mono recordings in the original release.

We also created a dedicated area for the Mac version of the game on our support site,
where we list FAQs for the game and will list any future patched. We also created a
minisite that contains a potted history of the Railroad Tycoon series.

Does SMR for Mac alter SMR’s asset loading behaviour?
No, to maintain compatibility between the versions (for modding etc) the engine code is the

Does SMR for Mac support more than 4GB of RAM?
The game is a 32bit title (like almost all games and applications). If an application is 32bit,
it can only address 4GB of RAM for its own exclusive use. However, as the OS is 64bit
(as are the OS libraries) then the 4GB can be used exclusively by the application while the
rest of the OS and the graphics drivers (etc) use their own memory allocation, which is not
part of that 4GB limit.

It is very rare that a game needs more than 4GB of allocated memory, and rewriting the
entire game engine in 64 bit was not feasible due to the limited benefit it would have.

I want to thank Feral Interactive for taking the time to answer my questions and I hope you’ve enjoyed reading their responses.

23 thoughts on “Interview with SMR for Mac OSX developers

  1. Dan

    Thanks for the interesting article, but I’ve noticed now that I can’t get into the Wiki part of the website. Clicking on those links just redirect me back to this article. 🙁

  2. princeofcups

    In terms of custom maps, I have found 4 that are stable on the Mac. They are: Australia, SanFran, Shanghai, UKLargeMP. Two of these have custom assets, and they still work fine. Any map with custom tunnels will crash. I’m still trying to figure out what needs to be “removed” from a crashing map to make it playable.

  3. TMiller

    princeofcups, Custom music might also be a problem on a Mac because in the interview with the developer he said they changed the way the game handles music. Someone posted that my Arabia map crashes at startup and it has no custom bridges or tunnels. My Gone With the Wind map has no custom music, bridges or tunnels, so trying both on the Mac might show if music is a problem (i.e. if Gone With the Wind plays OK and Arabia does not). The map works fine on a PC. I don’t have a Mac or I would try it myself.

  4. princeofcups

    Gone_With_The_Wind_Main crashes on load. Everything I’ve tested that has a WarehouseN folder crashes. None of the maps that play fine have custom sounds, so that’s a good bet. I’m pretty sure about tunnels, since I have found one map that loads fine but crashes as soon a tunnel appears. Anyway, I’ve tested 36+ maps and: 6 do not crash, 5 crash mid-late game, 14 load fine but crash early, and 11 crash on load.

    The good maps so far are: Australia, Cadiz, Europe, SanFran, Shanghai, and UKLargeMP.

    Maybe I’ll try pulling the sound mods out of the xml’s on one that crashes and see what happens. I’ve not had much luck editing the xml files by hand though. Is the DTD specified anywhere?

  5. princeofcups

    I’ve tested pretty much every map here on OSX, and the ones that worked without crashing for me were:

    You may have to unpack the fpk into an assets folder, but I made no other modifications.

  6. princeofcups

    Good news. I successfully fix a broken map. Alternate_UK crashes on load. If you replace the XML pointers for bridges, quayle, and tunnels with the defaults, the map loads fine and plays without crashing.

    Edit RRT_Scenario_Alternate_UK.xml with your favorite text editor. Replace the RRT_Bridges_UK.xml with RRT_Bridges.xml, that is, delete the 3 characters _UK. With the _UK it points to the included xml file. Without the _UK it points to the default xml file.

    This method should work with a lot of the simpler maps.

  7. Karsten

    Hi Prince! Our fundamental advice is that you clean out the Usermaps AND CustomAssets folders before loading a new custom map in the Usermaps folder. The CustomAssets folder needs to be empty always. Only one map at at time into the Usermaps folder.
    The reason is that everything in those folders is loaded and this creates conflicts which crash the game.


    HI prince! I do not have not so many problems with my maps, but also have some maps that crash.
    I created an automator function to clean out the CustomAsset and UserMap folders. Copy FPK to CustomerAsset and the MAP to the UserMAP.
    35 maps that are loading OK. 7 Maps crashed on loading Compared 2 maps by the same author (1 good and 1 crashed) and commented out the nonstandard items. After that the game that crashed started up ok. Basically I had the default folder as you described. Subsequently I uncommented 1 by 1 the nonstandard items and try too load the came again and after everything uncommented the game still startup again with no alterations to the files at all.

    What I am doing now is using Xcode to load the xml files of a crashing map and save them again with no editing at all and the game start up.

    Fixed ACWR
    Gone with the wind.

    So I presume it has something to do how xml files are structured or read by the OSX . I am a bit puzzled how as I compare 2 files (non_saved and saved ) and there are no discripancies.

  9. princeofcups

    RE Karsten: Only one map is in UserMaps, and CustomAssets is empty. Since I can get some maps with custom assets to load and run fine (with custom events, coal tender models, etc. show up fine), then I believe that the issue is related to specific maps, not the way that I am copying them.

    RE JR_MAC_SMR: I am making a lot of guesses here, since the crash dumps are not very useful (which library call panics does me no good), and I don’t have any proper debugging tools. I’d like a way to figure out what it is loading (which asset), or what it is configuring (setting up town, setting up events, etc.), but without a debug version of the game, it’s difficult. There seems to be a sound file issue, one of the things that changed so much that files make for the PC version will not work on the Mac version. But that aside, the Mac version may be a bit tighter on interpreting the xml. I’ve tried a few things like cutting out the events section in Scenario_Users and replacing it with one that works, but that’s not working too well. Any change that I make to the XML may be wrong in some way, which is why I’d love to have the DTD to check against. Oh well, I’m not getting paid for this, so I’m only willing to spend so much time screwing around. BTW, the list of maps that I working is now:


  10. Jr_Mac_SMR

    RE Princeofcups:
    Well also did have a look at the crash dumps and agree there not useful. I also enabled logging but that does not provide anything either.
    Trying to figure out what is the real cause might be rather difficult, the problem appears to be in the xml files. I looked inside the application itself and there seem to be no reference in the xml files to a DTD. Only this reference is found
    I have created an automator/applescript workflow to open all the xml files and save them again using “TextEdit”without editing and that seems to solve the problem and that is mine preferred method. If not there’s also a possibility that the game crash when a train or other item is loaded later on.

    Maps that are working for me now using the above method are
    Canadian Pacific. (not released yet) got it from (hookedonrailroads) and these maps are full of customisation.


  11. TMiller

    Princeofcups, It makes sense that if the program cannot read any one of the xml files it will crash on startup. I used to have this problem months ago, but not recently. On the top line of all xml files in my maps is the line . This line tells the program reading it the type of encoding used – in this case ANSI. I write and edit all my xml files using a program called “XML Notepad”. One disadvantage of using this program is that all saved files are encoded in UTF-8 not ANSI. The top line then reads meaning it is encoded in UTF-8. I then have to open the file in “Notepad” (different from XML Notepad) and delete everything after the “1.0” stopping at the last ?> then save the program changing the format from UTF-8 to ANSI. To change the encoding I have to click on the menu at the bottom of the “Save” menu and scroll down from UTF-F to ANSI. I have even seen xml files that have no top line giving the version encoding message. In this case it is up the program to determine the encoding used in order to read the file. It may be that a Mac needs the file to be encoded in ANSI or UTF-8 and/or it needs the appropriate first line indicating how it is encoded, or maybe it works better with no line at all. Notepad is an old and very simple text editor predating many word processing programs. Some of the original xml files were created by SMR using this program using simple ANSI code. Jr_Mac_SMR’s trick of loading every xml file in “TextEdit” and resaving it before trying to run the game may somehow be altering the file encoding so that it is compatible with Mac expectations. Just Food for Thought. Good Luck. P.S. There are a number of different programs for reading xml files. I have used 3: Notepad, XML Notepad, and XML Editor. Each one displays the file in a different structure, some more convenient for reading, but only Notepad shows the entire file as it really is, including the top encoding line. If even one symbol like < or ? is missing the file cannot be read.

  12. TMiller

    In the second sentence of my last post the web site did not accept the encoding line. I will try again with an extra space between each symbol: for ANSI code:
    In sentence 6 for UTF-8 code: I typed these in in the post but it deleted them.

  13. TMiller

    Sorry, It still didn’t work. Look for the top line in your editing program. For ANSI it is a less than sign followed by a question mark then version equals 1, another question mark and a greater than sign. For UTF-8 code it is the first part from above followed by encoding equals utf-8, a question mark and a greater than sign.

  14. Jr_Mac_SMR

    TMiller, Did have a look at 3 editors, the encoding that the mac uses for new documents is UTF-8. I tried to compare 2 different files previously and on 1 occasion it gave me a discrepancy CRLF (windows) and UTF-8 while the mac uses LF. The preferences of TextEdit for HTML documents is encoding UTF-8 on save. The other editors are also referring to UTF-8.

    Another thing I discovered that files saved by the Terraineditor are saved in UTF-8 format. I added the code below


  15. TMiller

    Jr_Mac_SMR, Interesting. The Terrain Editor on my PC saves xml files in ANSI. I carefully checked this in all 3 editors. This may be one of the differences between SMR operation on the PC (ANSI)vs the Mac (UTF-8). I opened the RRT_Scenario_User_mapname.xml with XML Notepad and resaved it. The encoding changed from ANSI to UTF-8. When I tried to run the map it crashed on startup. Changed it back to ANSI and it ran fine. Oddly, when I changed only the RRT_Trains_mapname.xml file to UTF-8, it worked OK in the game. Strange! The RRT_Scenario file is the first one the program has to read to set up the map and game conditions, so maybe it is key. Another thing – when opening an xml file and saving it without changes, different editors behave differently. In Notepad using “save as”, it defaults to saving the program with the same encoding as the original. You have to instruct it to change encoding. While XML Notepad automatically changes the encoding to UTF-8. Maybe “TestEdit” works the same way. Another thing I noticed is that my Terrain Editor places no top line in the file indicating the encoding, but when viewed with “XML Edit” it shows ANSI encoding. I remember this encoding issue being a big problem when I first started making my own maps, especially due to the different behavior of the xml editors. Why don’t you look at the encoding on the RRT_Scenario_User_mapname.xml file for one of the maps that will not run on your Mac. See if it is ANSI. If so, change it to UTF-8 and see if it runs. You may have to change all the xml files to UTF-8 or maybe not. Who Knows!! Very frustrating. Good Luck.

  16. princeofcups

    Of the non-crashing maps, two have the xml version 1.0 line, and the rest don’t. That doesn’t seem to make a difference. Every xml file that I’ve looked at (spot check), working or not working, is UTF-8, CRLF. I don’t know if the unzip built into OSX does any text conversion. It’s interesting you got some maps working that still crash for me. Is there any way to post/make available the xml files for those 5 maps? I wonder if your conversion did any xml cleanup when you weren’t looking.

  17. princeofcups

    Using your textedit method open and save method on the xml files, I got Japan to load. Haven’t played it yet. Under OSX 10.7.5, I have file versioning enabled, so textedit had to “unlock” the file before saving. The files are still UTF-8 CRLF, so it’s confusing as to what is really going on here.

  18. princeofcups

    Using the method above, I know have working: ChicagoToTheRockies, Japan3, Northern Germany, and Wisconsin. It did not work with UK_Lower; still crashes on load. So what’s different about UK_Lower…??

  19. Jr_Mac_SMR

    Well, had the same problem but I think I fixed it.
    There is a problem with the RRT_Industrie_UK_Lower.xml file
    RRT_Industrie_UK_Lower I commented out



    These 2 cities don’t exist in Names_UK_Lower and RRT_Cities_UK_Lower

    After the change it loads without the save trick.

    I also wander if it crashes under windows.

  20. Warll

    Since the comments are formatting out some of the unicode and xml may I suggest pastebin?

    You paste the text you want to show and then link to resulting pastebin.

  21. CalmDragon

    Glad SanFran is working. Long Beach and Sosaria should too then since they were made the same way without custom content. May have to buy the Mac version just to play and enjoy the game again…

Leave a Reply

Your email address will not be published. Required fields are marked *