From e56c6676bcf2af9b6365a4efd7eebc3c1e005a8b Mon Sep 17 00:00:00 2001 From: Ignacio Sanchez Gines <863613+drhelius@users.noreply.github.com> Date: Sun, 25 Oct 2026 12:10:40 +0100 Subject: [PATCH 1/3] Update geartowns docs --- docs/library/geartowns.md | 44 ++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/docs/library/geartowns.md b/docs/library/geartowns.md index 8f2dd5bccd..721b3544b9 100644 --- a/docs/library/geartowns.md +++ b/docs/library/geartowns.md @@ -4,11 +4,12 @@ Geartowns is an open source, cross-platform Fujitsu FM Towns emulator written in C++. -- FM Towns Model 1/2, 1F/2F, 10F/20F, FM Towns II CX, UX, UG and HG, and FM Towns Marty emulation with configurable CPU speed and RAM. +- FM Towns Model 1/2, 1F/2F, 10F/20F, FM Towns II CX, UX, UG, HG and HR, and FM Towns Marty emulation with configurable CPU speed and RAM. - 80386 dynamic recompiler (dynarec) on supported platforms. - CD-ROM drive emulation with `cue/bin`, `iso` and `chd` images, `m3u` disc playlists and disc swapping. - Physical CD-ROM disc support through the frontend. - Two floppy drives with `d77`, `d88`, `hdm`, `xdf`, `img`, HxC `mfm` and raw `bin` images, also inside `zip` archives, `m3u` playlists, blank save disks and persistent disk changes. +- SCSI hard disks on IDs 0-6 with raw `hdd`, `h0`-`h6` and `hdm` images and MAME hard disk CHDs, alone or in `m3u` playlists, with their changes kept in working copies. - Battery-backed CMOS shared by all content, or saved per game. - Controllers: * Original FM Towns gamepad (2 buttons) @@ -57,7 +58,7 @@ The FM Towns II UX needs its own set, MAME's `fmtownsux`, in `geartowns/fmtownsu | fmt_dic.rom | Dictionary ROM - Required | 512 KB | 8fa4e553f28cfc0c30a0a1e589799942 | | mytownsux.rom | Serial ROM - Optional | 32 bytes | 1a15f6c1b58ec7e5f850118610a787a7 | -The FM Towns II HG has no dump of its own. It runs on the FM Towns II HR set, MAME's `fmtownshr`, from the same generation, in `geartowns/fmtownshr/` or as `geartowns/fmtownshr.zip`: +The FM Towns II HR needs its own set, MAME's `fmtownshr`, in `geartowns/fmtownshr/` or as `geartowns/fmtownshr.zip`. The FM Towns II HG, from the same generation, has no dump of its own and runs on it too: | Filename | Description | Size | md5sum | |:-------------:|:------------------------------:|:--------:|:--------------------------------:| @@ -98,11 +99,15 @@ Content that can be loaded by the Geartowns core have the following file extensi - .mfm - .bin - .m3u +- .hdd +- .h0, .h1, .h2, .h3, .h4, .h5, .h6 Geartowns supports `chd`, `iso` and `cue/bin` CD-ROM images. Load the `cue` file, not a `bin` track. CUE audio tracks can use raw BIN, WAV (44.1 kHz, 16-bit stereo) or Ogg Vorbis files. Physical CD-ROM discs can be loaded with the frontend's **Load Disc** option where supported. Floppy disk images can be `d77`, `d88`, `hdm`, `xdf` or `img` files, HxC `mfm` bitstream images such as MAME's copy-protected originals, or `bin` files holding a raw floppy image, also inside `zip` archives. Raw images may carry an `E5` filler tail, and a 2HD image cut short at a track boundary loads with the missing tracks blank. Changes to an `mfm` disk are kept in a `d77` working copy. A `zip` archive with several floppy images, such as MAME's multi-disk sets, lists each one as a separate disk control entry in file name order, like an `m3u` playlist, and starts from the first disk with an FM Towns boot sector. Zipped CD-ROM images are not supported; use `chd` or `cue/bin`. Multi-disk `d77`/`d88` images expose each disk as a separate disk control entry. +Hard disk images are raw 512-byte sectors, the format other FM Towns emulators share. An `h0` to `h6` image goes to that SCSI ID; an `hdd` image, and an `hdm` image over 8 MB, to the first free one. An `hdm` image of 8 MB or less is a floppy disk. MAME hard disk CHDs load too, to the first free ID; a `chd` without hard disk geometry is a CD-ROM. + ## Features Frontend-level settings or features that the Geartowns core respects. @@ -111,7 +116,7 @@ Frontend-level settings or features that the Geartowns core respects. |-------------------|:---------:| | Restart | ✔ | | Screenshots | ✔ | -| Saves | ✔ (CMOS and floppy disks) | +| Saves | ✔ (CMOS, floppy and hard disks) | | States | ✔ | | Rewind | ✔ | | Run-Ahead | ✔ | @@ -141,6 +146,8 @@ Keyboard input is not synchronized in netplay. Netplay peers must start with the States keep the machine and the identity of the inserted disks, but not the contents of the floppy disks. Loading a state or rewinding does not undo what a game wrote to a floppy disk. When a state was made with another disk in a drive, or with a disk in a drive that is now empty, the core inserts that disk from the disk control list and loads the state; if the disk is not in the list, the state does not load. States are about 3 MB with the default 2 MB of RAM and grow with the **Main RAM** option. +Hard disks work differently: loading a state, rewinding or run-ahead takes back what was written to a hard disk since that point, as long as the writes are among the last 32 MB per disk. When they aren't, or the state was made in another session, the state loads and a message says the hard disk changed since. + States saved by the Geartowns desktop application can't be loaded by the core. ## Starting without content @@ -155,7 +162,7 @@ Each drive keeps its own disk. When the selected entry belongs to another drive, When content is opened again, the disk RetroArch remembers is used for CD-ROM entries. Floppy disk content always starts from its first disk. -Load an `m3u` playlist to add several CD-ROM or floppy images to the disk control list. Playlists can mix CD-ROM and floppy images; when they do, the first image of the other media type is also inserted at startup. Enable **Floppy MultiDrive** to also insert the floppy disk that follows the boot floppy into drive 2, wrapping to the start of the list. +Load an `m3u` playlist to add several CD-ROM or floppy images to the disk control list. Playlists can mix CD-ROM and floppy images; when they do, the first image of the other media type is also inserted at startup. Hard disk lines attach the disk to a SCSI ID instead; hard disks aren't in the disk control list and can't be swapped. Enable **Floppy MultiDrive** to also insert the floppy disk that follows the boot floppy into drive 2, wrapping to the start of the list. Custom labels for the disk control list can be set with `DISK_FILE|DISK_LABEL`. A blank label (`DISK_FILE|`) shows only the disk index. A `#SAVEDISK:DiskName` line adds a formatted blank 2HD save disk; `DiskName` is optional and is stored as the D77 disk name, not as a volume label on the disk. Save disks are created in the frontend's save directory as `[M3U_FILE_NAME].save[N].d77` and labelled `Save Disk N`, counting from 0. @@ -174,6 +181,14 @@ Delete the working copy to return to the original disk image. Some software asks for a blank user or save disk. Enable **Save Disk** to add a formatted blank 2HD disk named "Save Disk" to the disk control list, or add a `#SAVEDISK:` line to an `m3u` playlist. Save disks are created in the save directory, and games write to them directly. +## Hard disks + +Load a hard disk image as content to boot from it, or list it in an `m3u` playlist with the CD-ROM a game installs from or runs with. A bootable CD boots before the disk; set **Boot Device** to the disk's SCSI ID to boot it with the CD in the drive. The 1F/2F and later models have a SCSI interface built in; the Model 1/2 gets its SCSI card while a hard disk is loaded, and the Marty has none. With only a hard disk, **Model** on Auto picks the Model 1/2, and **Main RAM** on Auto gives at least 4 MB while a hard disk is loaded, which Towns OS V2.1 needs to start from one. A CD-ROM game the database knows keeps its own RAM instead, unless **Boot Device** is a hard disk or the game runs from one. + +Geartowns never writes to the original hard disk image. The first time the machine writes to it, the image is copied to the save directory as `.save.` (`.save.hdd`, raw, for a CHD), and from then on that working copy is used and updated. Changes are written a few seconds after the machine stops writing and when the content is closed. Delete the working copy to return to the original image. The first write to a large image copies all of it, which takes a moment. + +Towns OS keeps its hard disk drive setup in the CMOS, not on the disk, and only uses the partitions that have a drive letter there. With **Assign Drive Letters** enabled, the default, every power-on and restart gives the partitions of each loaded hard disk that have none the free drive letters from D:, so a disk installed on another model or emulator boots; letters already set are kept. Disabled, such a disk stops with a message that the boot drive is not registered until it is added: boot the Towns OS V2.1 CD with the disk loaded, open Drive Configuration in TownsMENU's Settings menu, click the disk's SCSI ID, choose Add Drive and Execute, then restart without the CD. + ## CMOS The FM Towns keeps its settings in 8 KB of battery-backed CMOS: the boot device, Towns OS settings and the OAK/2 kana-kanji user dictionary. By default the core keeps one CMOS for all content in the save directory, as on the real machine, so settings made by one program are seen by the others. The CMOS is saved a few seconds after it changes, on restart and when the content is closed. Set **CMOS** to *Per Game* to keep a separate CMOS in each content's `.srm` save file instead. @@ -204,12 +219,13 @@ Subfolders and MAME zips there are searched too, and the system directory itself | File | Description | |:---------------------------------:|:------------------------:| -| `.geartowns.cmos` | Shared CMOS, one per model (`model1_2`, `1f_2f`, `10f_20f`, `cx`, `ux`, `ug`, `hg`, `marty`) | +| `.geartowns.cmos` | Shared CMOS, one per model (`model1_2`, `1f_2f`, `10f_20f`, `cx`, `ux`, `ug`, `hg`, `hr`, `marty`) | | *.srm | Per game CMOS | | `..geartowns.d77` | Floppy disk working copy | | `...geartowns.d77` | Working copy of disk N when an earlier disk of the same image is identical | | `.save.d77` | Save disk | | `.save.d77` | Playlist save disk | +| `.save.` | Hard disk working copy | **Frontend's State directory** @@ -304,7 +320,7 @@ Settings marked (restart) take effect after reloading the content. Add a blank 2HD floppy disk to the disk control list for software that asks for a user or save disk. It is stored in the save directory. -- **Model (restart)** [geartowns_model] (**Auto**|FM Towns (Model 1/2) (80386DX 16 MHz)|FM Towns 1F/2F (80386DX 16 MHz)|FM Towns 10F/20F (80386DX 16 MHz)|FM Towns II CX (80386DX 16 MHz)|FM Towns II UX (80386SX 16 MHz)|FM Towns II UG (80386SX 20 MHz)|FM Towns II HG (80386DX 20 MHz)|FM Towns Marty (80386SX 16 MHz)) +- **Model (restart)** [geartowns_model] (**Auto**|FM Towns (Model 1/2) (80386DX 16 MHz)|FM Towns 1F/2F (80386DX 16 MHz)|FM Towns 10F/20F (80386DX 16 MHz)|FM Towns II CX (80386DX 16 MHz)|FM Towns II UX (80386SX 16 MHz)|FM Towns II UG (80386SX 20 MHz)|FM Towns II HG (80386DX 20 MHz)|FM Towns II HR (80486SX 20 MHz)|FM Towns Marty (80386SX 16 MHz)) The FM Towns model to emulate. Auto picks the machine, CPU speed and RAM the game database names for the game, the FM Towns II HG for 1.44 MB floppy disks, and the FM Towns (Model 1/2) for other content. It is recommended to leave this option on Auto. RetroArch's 'Save Game Options' keeps a choice for one game. @@ -312,9 +328,21 @@ Settings marked (restart) take effect after reloading the content. Auto runs the CPU at the model's original clock, or at the speed the game database names when Model is on Auto. Devices keep their real timing at any speed. Some software may not expect a faster CPU. -- **Main RAM (restart)** [geartowns_main_ram] (**Auto**|1 MB|2 MB|4 MB|6 MB|8 MB|10 MB|12 MB|16 MB|20 MB|24 MB|26 MB) +- **Main RAM (restart)** [geartowns_main_ram] (**Auto**|1 MB|2 MB|4 MB|6 MB|8 MB|10 MB|12 MB|16 MB|20 MB|24 MB|26 MB|28 MB) + + Auto uses the model's original RAM, or the RAM the game database names when Model is on Auto. A size the model doesn't offer uses its next size up, or its largest. Some software needs more than 2 MB. Save states grow with it. The RAM size only changes when the content is loaded again; a restart keeps the running size, so achievement and cheat addresses stay valid. + +- **FPU (restart)** [geartowns_fpu] (**Auto**|None|80387 or 487SX) + + The math coprocessor: an 80387 card on the 386 models, a 487SX card on the HR. Auto fits one when the game database names one for the game and Model is on Auto, otherwise it keeps the model's original, none on every emulated model. The UX, UG and Marty have no socket for it. A few games need one, and some run different code with one fitted. + +- **Boot Device (restart)** [geartowns_boot_device] (**Auto**|CD-ROM|Floppy 1|Floppy 2|Hard Disk ID 0|Hard Disk ID 1|Hard Disk ID 2|Hard Disk ID 3|Hard Disk ID 4) + + Holds the system ROM's boot keys at power-on and on every restart: C+D for the CD-ROM, F+0 or F+1 for a floppy drive, H+0 to H+4 for a SCSI hard disk, released at the first read from a disk. The 1F/2F and later models read them; the Model 1/2 and Marty ROMs don't. Auto boots as usual, the CD first, so a hard disk boots with a bootable CD in the drive only when it is chosen here. + +- **Assign Drive Letters (restart)** [geartowns_drive_letters] (**Enabled**|Disabled) - Auto uses the model's original RAM, or the RAM the game database names when Model is on Auto. A size the model doesn't offer uses its next size up, or its largest. Some software needs more than 2 MB. Save states grow with it. + Towns OS keeps hard disk drive letters in the CMOS, not on the disk. When enabled, each restart gives free letters to the partitions the CMOS doesn't list yet, so disks set up elsewhere boot. When disabled, register them yourself in Towns OS. - **Clock Start (restart)** [geartowns_rtc] (**Host time**|Fixed date) From 4e676e538285dd21dfdc9878ac4f47ff751d71b9 Mon Sep 17 00:00:00 2001 From: Ignacio Sanchez Gines <863613+drhelius@users.noreply.github.com> Date: Wed, 28 Oct 2026 14:28:21 +0100 Subject: [PATCH 2/3] Update geartowns docs --- docs/library/geartowns.md | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/docs/library/geartowns.md b/docs/library/geartowns.md index 721b3544b9..e85b3a6da3 100644 --- a/docs/library/geartowns.md +++ b/docs/library/geartowns.md @@ -10,6 +10,7 @@ Geartowns is an open source, cross-platform Fujitsu FM Towns emulator written in - Physical CD-ROM disc support through the frontend. - Two floppy drives with `d77`, `d88`, `hdm`, `xdf`, `img`, HxC `mfm` and raw `bin` images, also inside `zip` archives, `m3u` playlists, blank save disks and persistent disk changes. - SCSI hard disks on IDs 0-6 with raw `hdd`, `h0`-`h6` and `hdm` images and MAME hard disk CHDs, alone or in `m3u` playlists, with their changes kept in working copies. +- An IC memory card per content or shared by all content, kept in the save directory. - Battery-backed CMOS shared by all content, or saved per game. - Controllers: * Original FM Towns gamepad (2 buttons) @@ -116,7 +117,7 @@ Frontend-level settings or features that the Geartowns core respects. |-------------------|:---------:| | Restart | ✔ | | Screenshots | ✔ | -| Saves | ✔ (CMOS, floppy and hard disks) | +| Saves | ✔ (CMOS, floppy, hard disks and IC memory card) | | States | ✔ | | Rewind | ✔ | | Run-Ahead | ✔ | @@ -144,7 +145,7 @@ Keyboard input is not synchronized in netplay. Netplay peers must start with the ## Save states -States keep the machine and the identity of the inserted disks, but not the contents of the floppy disks. Loading a state or rewinding does not undo what a game wrote to a floppy disk. When a state was made with another disk in a drive, or with a disk in a drive that is now empty, the core inserts that disk from the disk control list and loads the state; if the disk is not in the list, the state does not load. States are about 3 MB with the default 2 MB of RAM and grow with the **Main RAM** option. +States keep the machine and the identity of the inserted disks, but not the contents of the floppy disks. Loading a state or rewinding does not undo what a game wrote to a floppy disk. When a state was made with another disk in a drive, or with a disk in a drive that is now empty, the core inserts that disk from the disk control list and loads the state; if the disk is not in the list, the state does not load and the drives stay as they were. A drive that was empty when the state was made is emptied. States are about 3 MB with the default 2 MB of RAM and grow with the **Main RAM** option. Hard disks work differently: loading a state, rewinding or run-ahead takes back what was written to a hard disk since that point, as long as the writes are among the last 32 MB per disk. When they aren't, or the state was made in another session, the state loads and a message says the hard disk changed since. @@ -164,7 +165,7 @@ When content is opened again, the disk RetroArch remembers is used for CD-ROM en Load an `m3u` playlist to add several CD-ROM or floppy images to the disk control list. Playlists can mix CD-ROM and floppy images; when they do, the first image of the other media type is also inserted at startup. Hard disk lines attach the disk to a SCSI ID instead; hard disks aren't in the disk control list and can't be swapped. Enable **Floppy MultiDrive** to also insert the floppy disk that follows the boot floppy into drive 2, wrapping to the start of the list. -Custom labels for the disk control list can be set with `DISK_FILE|DISK_LABEL`. A blank label (`DISK_FILE|`) shows only the disk index. A `#SAVEDISK:DiskName` line adds a formatted blank 2HD save disk; `DiskName` is optional and is stored as the D77 disk name, not as a volume label on the disk. Save disks are created in the frontend's save directory as `[M3U_FILE_NAME].save[N].d77` and labelled `Save Disk N`, counting from 0. +Custom labels for the disk control list can be set with `DISK_FILE|DISK_LABEL`. On a `zip` with several floppy images, each entry shows the label followed by the image name. A blank label (`DISK_FILE|`) shows only the disk index. A `#SAVEDISK:DiskName` line adds a formatted blank 2HD save disk; `DiskName` is optional and is stored as the D77 disk name, not as a volume label on the disk. Save disks are created in the frontend's save directory as `[M3U_FILE_NAME].save[N].d77` and labelled `Save Disk N`, counting from 0. `Game.m3u` ``` @@ -185,10 +186,18 @@ Some software asks for a blank user or save disk. Enable **Save Disk** to add a Load a hard disk image as content to boot from it, or list it in an `m3u` playlist with the CD-ROM a game installs from or runs with. A bootable CD boots before the disk; set **Boot Device** to the disk's SCSI ID to boot it with the CD in the drive. The 1F/2F and later models have a SCSI interface built in; the Model 1/2 gets its SCSI card while a hard disk is loaded, and the Marty has none. With only a hard disk, **Model** on Auto picks the Model 1/2, and **Main RAM** on Auto gives at least 4 MB while a hard disk is loaded, which Towns OS V2.1 needs to start from one. A CD-ROM game the database knows keeps its own RAM instead, unless **Boot Device** is a hard disk or the game runs from one. -Geartowns never writes to the original hard disk image. The first time the machine writes to it, the image is copied to the save directory as `.save.` (`.save.hdd`, raw, for a CHD), and from then on that working copy is used and updated. Changes are written a few seconds after the machine stops writing and when the content is closed. Delete the working copy to return to the original image. The first write to a large image copies all of it, which takes a moment. +Geartowns never writes to the original hard disk image. The first time the machine writes to it, the image is copied to the save directory as `.save.` (`.save.hdd`, raw, for a CHD), and from then on that working copy is used and updated. Changes are written a few seconds after the machine stops writing and when the content is closed. Delete the working copy to return to the original image. The first write to a large image copies all of it, which takes a moment. Two hard disk images with the same name can't be loaded together, and a working copy whose size doesn't match its image is not used; the content doesn't load until it is renamed or deleted. Towns OS keeps its hard disk drive setup in the CMOS, not on the disk, and only uses the partitions that have a drive letter there. With **Assign Drive Letters** enabled, the default, every power-on and restart gives the partitions of each loaded hard disk that have none the free drive letters from D:, so a disk installed on another model or emulator boots; letters already set are kept. Disabled, such a disk stops with a message that the boot drive is not registered until it is added: boot the Towns OS V2.1 CD with the disk loaded, open Drive Configuration in TownsMENU's Settings menu, click the disk's SCSI ID, choose Add Drive and Execute, then restart without the CD. +## IC memory card + +Every model has a slot for a battery-backed SRAM card, which Towns OS uses as a drive. Set **IC Memory Card** to *Per Game* for a card named after the content, `.icm`, or to *Shared* for one card, `geartowns.icm`, for all content. Both are kept in the save directory. A missing card is created blank with **IC Memory Card Size**; an existing card keeps its size. Card images are raw, a whole number of KB up to 64 MB. Changes are written a few seconds after the machine stops writing and when the content is closed. + +To use the card in Towns OS V2.1, add `DEVICE=\SYS\TICM.SYS /U0` to `CONFIG.SYS`; the driver shows the card's drive letter at boot. Format the card with `TICMFMT E: /S1024`, the size in KB. That driver uses at most 8 MB of a card, and on the UX and the Marty cards larger than 2 MB lose data in transfers that cross from their second 1 MB bank into the third. + +A card that starts with an `IPL4` boot sector boots before the CD-ROM on every model. Save states don't hold the card: loading one, rewinding or run-ahead takes back what was written to the card since that point, and a message says when it can't. + ## CMOS The FM Towns keeps its settings in 8 KB of battery-backed CMOS: the boot device, Towns OS settings and the OAK/2 kana-kanji user dictionary. By default the core keeps one CMOS for all content in the save directory, as on the real machine, so settings made by one program are seen by the others. The CMOS is saved a few seconds after it changes, on restart and when the content is closed. Set **CMOS** to *Per Game* to keep a separate CMOS in each content's `.srm` save file instead. @@ -223,9 +232,12 @@ Subfolders and MAME zips there are searched too, and the system directory itself | *.srm | Per game CMOS | | `..geartowns.d77` | Floppy disk working copy | | `...geartowns.d77` | Working copy of disk N when an earlier disk of the same image is identical | +| `....geartowns.d77` | Working copy of disk N of `zip` member M when an earlier member holds the same disk | | `.save.d77` | Save disk | | `.save.d77` | Playlist save disk | | `.save.` | Hard disk working copy | +| `.icm` | Per game IC memory card | +| `geartowns.icm` | Shared IC memory card | **Frontend's State directory** @@ -336,14 +348,22 @@ Settings marked (restart) take effect after reloading the content. The math coprocessor: an 80387 card on the 386 models, a 487SX card on the HR. Auto fits one when the game database names one for the game and Model is on Auto, otherwise it keeps the model's original, none on every emulated model. The UX, UG and Marty have no socket for it. A few games need one, and some run different code with one fitted. -- **Boot Device (restart)** [geartowns_boot_device] (**Auto**|CD-ROM|Floppy 1|Floppy 2|Hard Disk ID 0|Hard Disk ID 1|Hard Disk ID 2|Hard Disk ID 3|Hard Disk ID 4) +- **Boot Device (restart)** [geartowns_boot_device] (**Auto**|CD-ROM|Floppy 1|Floppy 2|Hard Disk ID 0|Hard Disk ID 1|Hard Disk ID 2|Hard Disk ID 3|Hard Disk ID 4|IC Memory Card) - Holds the system ROM's boot keys at power-on and on every restart: C+D for the CD-ROM, F+0 or F+1 for a floppy drive, H+0 to H+4 for a SCSI hard disk, released at the first read from a disk. The 1F/2F and later models read them; the Model 1/2 and Marty ROMs don't. Auto boots as usual, the CD first, so a hard disk boots with a bootable CD in the drive only when it is chosen here. + Holds the system ROM's boot keys at power-on and on every restart: C+D for the CD-ROM, F+0 or F+1 for a floppy drive, H+0 to H+4 for a SCSI hard disk, I+C+M for the IC memory card, released at the first read from a disk. The 1F/2F and later models read them; the Model 1/2 and Marty ROMs don't. Auto boots as usual, the CD first, so a hard disk boots with a bootable CD in the drive only when it is chosen here. A memory card that starts with a boot sector boots ahead of the CD on every model. - **Assign Drive Letters (restart)** [geartowns_drive_letters] (**Enabled**|Disabled) Towns OS keeps hard disk drive letters in the CMOS, not on the disk. When enabled, each restart gives free letters to the partitions the CMOS doesn't list yet, so disks set up elsewhere boot. When disabled, register them yourself in Towns OS. +- **IC Memory Card (restart)** [geartowns_memory_card] (**Off**|Per Game|Shared) + + Puts an IC memory card in the slot, kept in the save directory. 'Per Game' uses a card named after the content, 'Shared' one card for all content. A missing card is created blank with the size below; Towns OS formats it with TICMFMT once CONFIG.SYS loads TICM.SYS. + +- **IC Memory Card Size (restart)** [geartowns_memory_card_size] (64 KB|128 KB|256 KB|512 KB|**1 MB**|2 MB|4 MB|8 MB|16 MB|32 MB|64 MB) + + Size of a new blank IC memory card. An existing card keeps its size. The UG reaches the first 1 MB of a card, the Model 1/2, 1F/2F and 10F/20F the first 16 MB. + - **Clock Start (restart)** [geartowns_rtc] (**Host time**|Fixed date) Start the FM Towns clock from the host time or from a fixed date (January 1, 1990). A fixed date makes netplay and replays independent of each computer's clock. From a11205688951622c668d0afe1def95908b32da83 Mon Sep 17 00:00:00 2001 From: Ignacio Sanchez Gines <863613+drhelius@users.noreply.github.com> Date: Thu, 29 Oct 2026 18:19:42 +0100 Subject: [PATCH 3/3] Update geartowns docs --- docs/library/geartowns.md | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/library/geartowns.md b/docs/library/geartowns.md index e85b3a6da3..ca7796b0d3 100644 --- a/docs/library/geartowns.md +++ b/docs/library/geartowns.md @@ -4,7 +4,7 @@ Geartowns is an open source, cross-platform Fujitsu FM Towns emulator written in C++. -- FM Towns Model 1/2, 1F/2F, 10F/20F, FM Towns II CX, UX, UG, HG and HR, and FM Towns Marty emulation with configurable CPU speed and RAM. +- FM Towns Model 1/2, 1F/2F, 10F/20F, FM Towns II CX, UX, UG, HG, HR, UR, ME and MF/Fresh, and FM Towns Marty emulation with configurable CPU speed and RAM. - 80386 dynamic recompiler (dynarec) on supported platforms. - CD-ROM drive emulation with `cue/bin`, `iso` and `chd` images, `m3u` disc playlists and disc swapping. - Physical CD-ROM disc support through the frontend. @@ -59,7 +59,7 @@ The FM Towns II UX needs its own set, MAME's `fmtownsux`, in `geartowns/fmtownsu | fmt_dic.rom | Dictionary ROM - Required | 512 KB | 8fa4e553f28cfc0c30a0a1e589799942 | | mytownsux.rom | Serial ROM - Optional | 32 bytes | 1a15f6c1b58ec7e5f850118610a787a7 | -The FM Towns II HR needs its own set, MAME's `fmtownshr`, in `geartowns/fmtownshr/` or as `geartowns/fmtownshr.zip`. The FM Towns II HG, from the same generation, has no dump of its own and runs on it too: +The FM Towns II HR needs its own set, MAME's `fmtownshr`, in `geartowns/fmtownshr/` or as `geartowns/fmtownshr.zip`. The FM Towns II HG and UR, from the same generation, have no dump of their own and run on it too: | Filename | Description | Size | md5sum | |:-------------:|:------------------------------:|:--------:|:--------------------------------:| @@ -69,7 +69,7 @@ The FM Towns II HR needs its own set, MAME's `fmtownshr`, in `geartowns/fmtownsh | fmt_dic.rom | Dictionary ROM - Required | 512 KB | 8fa4e553f28cfc0c30a0a1e589799942 | | mytownshr.rom | Serial ROM - Optional | 32 bytes | 72a96dabf0f9e5fe0bb47b08fa456815 | -Without it, the HG runs on the FM Towns II Fresh TV set, MAME's `fmtownsftv`, in `geartowns/fmtownsftv/` or as `geartowns/fmtownsftv.zip`: +The FM Towns II MF/Fresh needs the V10 set, MAME's FM Towns II Fresh TV set `fmtownsftv`, in `geartowns/fmtownsftv/` or as `geartowns/fmtownsftv.zip`. The ME, which has no dump of its own, runs on it too, and so do the HG and UR without the HR set: | Filename | Description | Size | md5sum | |:--------------:|:------------------------------:|:--------:|:--------------------------------:| @@ -80,6 +80,13 @@ Without it, the HG runs on the FM Towns II Fresh TV set, MAME's `fmtownsftv`, in | fmt_f20.rom | 20-dot Font ROM - Optional | 512 KB | ac0c7021e9bf48ca84b51ab651169a88 | | mytownsftv.rom | Serial ROM - Optional | 32 bytes | | +MAME's FM Towns II MX set `fmtownsmx`, in `geartowns/fmtownsmx/` or as `geartowns/fmtownsmx.zip`, holds the same V10 ROMs in one file and is used the same way: + +| Filename | Description | Size | md5sum | +|:-------------------:|:------------------------------------------------------------:|:--------:|:--------------------------------:| +| fmtownsiimxbios.m79 | OS, font, system, 20-dot font and dictionary ROMs - Required | 2 MB | 2f7d2e474054889bd1e7524f06dd0467 | +| mytownsmx.rom | Serial ROM - Optional | 32 bytes | b49dbab8ab2bfa387bf81ad519ea0cdf | + The FM Towns Marty needs its own set: MAME's `fmtmarty` (`mrom.m36` and `mrom.m37`, 2 MB each) in `geartowns/fmtmarty/` or as `geartowns/fmtmarty.zip`, or the Marty 2 files (`fmt_sys.rom`, `fmt_dos.rom`, `fmt_fnt.rom`, `fmt_dic.rom` and `mar_ex0.rom`-`mar_ex3.rom`, the 2 MB extension ROM). Each set is recognized by its system ROM. Modified or unknown ROMs and sets dumped from other FM Towns models also load, but the core shows a warning. The Free FM Towns Project replacement ROMs are recognized. A blank ROM is used if `FMT_F20.ROM` is not found, and a serial ROM is generated if `MYTOWNS.ROM`, `mytownsux.rom`, `mytownshr.rom` or `mytownsftv.rom` is not found. @@ -292,6 +299,10 @@ Settings marked (restart) take effect after reloading the content. Volume of the buzzer that plays system beeps, as a percentage. +- **16-bit PCM Volume** [geartowns_pcm16_volume] (**100**|0-200) + + Volume of the 16-bit PCM of the FM Towns II ME and MF/Fresh, as a percentage. + - **Allow Opposing Directions** [geartowns_up_down_allowed] (**Disabled**|Enabled) Enable this option to press, quickly alternate, or hold both left and right, or up and down, at the same time. @@ -316,9 +327,9 @@ Settings marked (restart) take effect after reloading the content. Preload all CD-ROM tracks into RAM. This increases memory usage but may improve performance. -- **CD-ROM Read Speed** [geartowns_cdrom_speed] (**1x (Original)**|2x|4x|8x) +- **CD-ROM Read Speed** [geartowns_cdrom_speed] (**Auto**|1x|2x|4x|8x) - Speed up how fast the drive reads sectors. Faster speeds reduce loading times, but some software may not expect a faster drive. + How fast the drive reads sectors. Auto reads at the speed of the model's drive: 2x on the FM Towns II ME and MF/Fresh in high-speed mode, 1x on the rest. Faster speeds reduce loading times, but some software may not expect a faster drive. - **Disk Control Floppy Drive** [geartowns_floppy_drive] (**Floppy 1**|Floppy 2) @@ -332,7 +343,7 @@ Settings marked (restart) take effect after reloading the content. Add a blank 2HD floppy disk to the disk control list for software that asks for a user or save disk. It is stored in the save directory. -- **Model (restart)** [geartowns_model] (**Auto**|FM Towns (Model 1/2) (80386DX 16 MHz)|FM Towns 1F/2F (80386DX 16 MHz)|FM Towns 10F/20F (80386DX 16 MHz)|FM Towns II CX (80386DX 16 MHz)|FM Towns II UX (80386SX 16 MHz)|FM Towns II UG (80386SX 20 MHz)|FM Towns II HG (80386DX 20 MHz)|FM Towns II HR (80486SX 20 MHz)|FM Towns Marty (80386SX 16 MHz)) +- **Model (restart)** [geartowns_model] (**Auto**|FM Towns (Model 1/2) (80386DX 16 MHz)|FM Towns 1F/2F (80386DX 16 MHz)|FM Towns 10F/20F (80386DX 16 MHz)|FM Towns II CX (80386DX 16 MHz)|FM Towns II UX (80386SX 16 MHz)|FM Towns II UG (80386SX 20 MHz)|FM Towns II HG (80386DX 20 MHz)|FM Towns II HR (80486SX 20 MHz)|FM Towns II UR (80486SX 20 MHz)|FM Towns II ME (80486SX 25 MHz)|FM Towns II MF / Fresh (80486SX 33 MHz)|FM Towns Marty (80386SX 16 MHz)) The FM Towns model to emulate. Auto picks the machine, CPU speed and RAM the game database names for the game, the FM Towns II HG for 1.44 MB floppy disks, and the FM Towns (Model 1/2) for other content. It is recommended to leave this option on Auto. RetroArch's 'Save Game Options' keeps a choice for one game. @@ -340,13 +351,17 @@ Settings marked (restart) take effect after reloading the content. Auto runs the CPU at the model's original clock, or at the speed the game database names when Model is on Auto. Devices keep their real timing at any speed. Some software may not expect a faster CPU. -- **Main RAM (restart)** [geartowns_main_ram] (**Auto**|1 MB|2 MB|4 MB|6 MB|8 MB|10 MB|12 MB|16 MB|20 MB|24 MB|26 MB|28 MB) +- **Main RAM (restart)** [geartowns_main_ram] (**Auto**|1 MB|2 MB|4 MB|6 MB|8 MB|10 MB|12 MB|16 MB|20 MB|24 MB|26 MB|28 MB|32 MB|48 MB|64 MB|68 MB) Auto uses the model's original RAM, or the RAM the game database names when Model is on Auto. A size the model doesn't offer uses its next size up, or its largest. Some software needs more than 2 MB. Save states grow with it. The RAM size only changes when the content is loaded again; a restart keeps the running size, so achievement and cheat addresses stay valid. - **FPU (restart)** [geartowns_fpu] (**Auto**|None|80387 or 487SX) - The math coprocessor: an 80387 card on the 386 models, a 487SX card on the HR. Auto fits one when the game database names one for the game and Model is on Auto, otherwise it keeps the model's original, none on every emulated model. The UX, UG and Marty have no socket for it. A few games need one, and some run different code with one fitted. + The math coprocessor: an 80387 card on the 386 models, a 487SX card on the HR, ME and MF/Fresh. Auto fits one when the game database names one for the game and Model is on Auto, otherwise it keeps the model's original, none on every emulated model. The UX, UG, UR and Marty have no socket for it. A few games need one, and some run different code with one fitted. + +- **Speed Mode (restart)** [geartowns_speed_mode] (**Auto**|Compatible|High Speed) + + The FM Towns II models, except the UX, run in compatible or high-speed mode. High speed cuts memory waits and turns on the 486 cache and the 2x CD-ROM where fitted. The system ROM sets the mode at reset from the CMOS, where TownsMENU saves it. Auto uses high speed when Model is on Auto and the game database picks a 486 model, otherwise it keeps the CMOS setting, compatible on a new CMOS. Some software misbehaves in high-speed mode. - **Boot Device (restart)** [geartowns_boot_device] (**Auto**|CD-ROM|Floppy 1|Floppy 2|Hard Disk ID 0|Hard Disk ID 1|Hard Disk ID 2|Hard Disk ID 3|Hard Disk ID 4|IC Memory Card)