I didn't get around to uploading this to AF, but have done now!
So, it has been 2 years since I released v0.85 of CSV2STOS in December 2019, within the STOS Coders fb group page. I have been updating it again recently. I had to, for the next few steps within a new game engine I have been working on.
It is now up to v1.00, it's an ACB file and uses a menu driven system. There were enough features added to warrant using this approach. I advise running the ACB as interpreted code, not compiled for reasons explained later below.
- You can use this program to convert CSV data (exported from the Tiled map editor for PC, Mac OS & Linux, main link is https://www.mapeditor.org/) into Missing Link compatible maps to use with The Missing Link extension and STOS Basic.
- You can also export CSV data out from existing Missing Link World or Landscape maps, TOME extension maps and AGT's *.CCM format. The data can be imported into Tiled with a few additional steps required (explained in the docs). The source code for both TOME2CSV (not publicly released prior) and AGT2STOS has been merged into CSV2STOS.
- There is a "View" menu now, with several options available. The viewer allows you to view world maps, landscape maps, world blocks, landscape blocks, NEO or PI1 image files. It's handy for quickly checking things, or viewing newly created maps for example.
- The batch converter tool is probably the best new feature available. It's now possible to set up and run a batch conversion script. I found that having to manually process and convert more than 3-4 maps at a time got rather tedious. So I figured, why not do the whole lot in one hit? In theory, you could do a whole massive bunch of them at once.
First you set up a *.CSV description file using "Make Batch File", then you use the "Run Batch Converter" menu option. World or Landscape maps can be processed at the same time too.
The description file uses the following format:
map type (world is 1, landscape is 2), map width (in tiles), map height (in tiles), CSV input filename (*.CSV), map output filename (*.MBK)
Example of what is stored within a description file:
1, 60, 110,BEN.CSV,BENWMAP.MBK
2, 20, 60,CAR.CSV,CARLMAP.MBK
1, 200, 25,CARNAGE.CSV,CARNWMAP.MBK
2, 20, 112,DAMAGE.CSV,DMGELMAP.MBK
1, 40, 40,ERIK.CSV,ERIKWMAP.MBK
1, 80, 80,KID.CSV,KIDWMAP.MBK
1, 100, 14,WIGGY.CSV,WIGYWMAP.MBK
The program will read in your description file and run through everything in one go. The map displayer has been disabled for this feature. I have opted to display file information and report how things are progressing instead. Have fun watching it do it's thing!
- Known bugs/issues are mainly anything to do with landscape maps or blocks. To avoid these problems, I recommend running CSV2STOS within the interpreter as the included ACB file. If you compile it to a PRG, you may run into problems later. I have tried my best to provide warning messages, or provide helpful workarounds. It doesn't seem to be possible to automatically read in the "true" landscape block total beyond 256 blocks within the block viewer. If your file contains 386 blocks for example, you will need to enter this total in manually to display everything correctly.
An update regarding block/tile limits, as I spent more time on this. It looks like the limit for world maps is 128 unpatched, 256 with dml's patch applied. For landscape maps it's 256 unpatched, 512 with the patch. I get crashes or "interesting looking" results using anything beyond these numbers.
- For a future release, I will look into adding a sprite and tile/block cutter. So you will be able to load in a NEO file, or a PI1 or two, cut out your sprites or tiles, then save off a sprite bank, bobs, joeys, world blocks, landscape blocks etc. all in one go. I might automate this process using a description file system too, so you can store sprite numbers, image source, x y grab co-ords, etc. to make life easier the next time you want to re-import everything.
If you encounter any issues or have any further suggestions, just report back and let me know.
RAR archive should be attached. Hope somebody finds this useful!

- Mike K.