DocBrown operation

Marty can be powered on with or without SD card in DocBrown, and the card can be replaced while the console is running. To prevent Marty from booting the 01 image automatically once turned on leave that folder empty and populate the card starting with 02.

When SD card is inserted the ODE will select image 01. To switch to next image on the card press the button beside the card socket. Once the last image on the card is reached the device will jump back to 01. You can also use Marty’s Almanac, see the HOWTO below.

It is possible to play multi-disc games by either storing all the images on the same card and selecting them with the button, or by swapping the cards.

There is a status LED on the DocBrown, it should blink once during power-up and then remain off. If the LED is lit, or starts blinking during gameplay, an internal error has occured. There are many possible causes of that, including SD card data transfer errors. The only way to restart correct operation of the device is to power-cycle the entire console. If the problem persists try a different card brand/size. If nothing else helps file a bug report.

INI file:

A simple text INI file can be put into root folder of the SD card to modify some of the ODE default settings. The file should be named DocBrown.ini.

IMPORTANT: Settings are read during SD card detection phase, so changing the card will result in DocBrown re-reading them again. This way it is possible to have different settings per card. If no INI file is found, the previous values will remain in effect.

Available settings:

  • open_time = N

Where N is natural number in range 150 to 5000, expressed in miliseconds. Defines how long the ODE will idle with “lid open” status presented to the console after image change. Default is 500ms.

  • detect_time = N

Where N is natural number in range 150 to 5000, expressed in miliseconds. Defines how long the ODE will idle with “busy” status presented to the console after image change. Default is 250ms.

  • image_tests = B

Where B is 0 (disabled) or 1 (enabled). If disabled, image integrity tests will be relaxed to allow oversized media. Note that correct operation is not guaranteed with such images. Default is enabled.

  • high_speed = B

Where B is 0 (disabled) or 1 (enabled). If enabled, the device will transfer data from SD card in high speed mode. Note that this is an experimental option and might not work properly. Default is disabled.

  • overclock = N

Where N is natural number in range 0 to 3. DocBrown can time-compress the data bitstream to provide a small performance boost:

0: no boost (default setting)
1: 13% boost
2: 36% boost
3: 60% boost

Note that this is an experimental option and correct operation with settings other than zero is not guaranteed. On the bright side it does not require 1.21 JW to function.

Marty’s Almanac HOWTO:

Marty’s Almanac is a program for FM Towns Marty that will let you select the image you want DocBrown ODE to load through a simple on-screen user interface.

1) You can start with a freshly formatted or already populated SD card but make sure the 01 folder exists and is empty. For performance reasons it’s best to create 01 folder as the first thing on the card but it’s not much of a difference either way.

2) Download the Almanac package, decompress it into 01 folder on the card. Make sure your decompression program preserves folder structure because there should be a “data” subfolder there now with some FM Towns specific files.

3) Do not edit, rename or delete any of the files in 01 folder. Do not add any files there that could be recognized by the ODE as CD-ROM image.

4) If you already have a DocBrown.ini file, add the following line to it:

reset_goto = 1

If not just copy it from 01 folder to the card’s root folder.

5) Populate the card with CD-ROM images, each one in a separate folder. Folder names must be numbers in 02-99, 100-999 range. There is a limit of 999 images but Almanac does not require the numbering to be contiguous – although in that case you won’t be able to reach images beyond the first gap using the PCB button anymore.

6) In each image folder create a text file named title.txt, then edit it and put the program/game name into the first line. Stick to ASCII only for now and limit the name length to 127 characters or less.

7) Once you’re done with all descriptions go back to 01 folder and execute the RunMe.bat file. This will run the title scanner and generate a file for Almanac to use, then build a bootable ISO image.

And that’s it. The menu is very simple, you can move the selection with the up/down buttons. Left/right will jump pages. A button boots the selected title and SELECT will display some basic system information (A or B will return you back to menu). Currently only gamepad can be used for the menu control, keyboard support will be added later. Color customization and optional background image support will also be added later.
Once you’re done playing press Reset button on Marty to boot the Almanac again (that’s assuming you did modify the INI file in step 4).

Few notes about the game title scanner:
– 01 folder is never included in the list
– if there is no title.txt file the folder will be ignored
– there is no check if the folder actually contains a valid CD image

Since the ISO volume names are not always present or sane for FM Towns games, it’s not really possible to use those to automatically generate titles. It should be possible to build a database of known games – but it can’t be based on entire image hash/checksum, that would take too much time to calculate during scanning. So for that to happen I have to first figure out a minimal amount of sector data that would be unique for all games and programs.