From daa8639afa12e28e0fcf10f6b2be227b61f0a3ab Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Fri, 27 Apr 2018 13:46:55 +0100 Subject: [PATCH 1/6] Add core documentation for Theodore --- docs/library/theodore.md | 127 +++++++++++++++++++++++++++++++++++++++ docs/meta/core_list.md | 3 +- docs/meta/todo.md | 10 +++ docs/tech/licenses.md | 1 + mkdocs.yml | 1 + 5 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 docs/library/theodore.md diff --git a/docs/library/theodore.md b/docs/library/theodore.md new file mode 100644 index 00000000..6378d22d --- /dev/null +++ b/docs/library/theodore.md @@ -0,0 +1,127 @@ +# Thomson - TO8D (Theodore) + +## Background + +Theodore is a Thomson TO8D system emulator based on the Daniel Coulom's DCTO8D emulator. The Thomson TO8 is a home computer introduced by French company Thomson SA in 1986. The Thomson TO8D is an improved version that includes a built-in 3.5" floppy drive. + +### Author/License + +The Theodore core has been authored by + +- Daniel Coulom + +The Theodore core is licensed under + +- [GPLv3](https://github.com/Zlika/theodore/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). + +## Extensions + +Content that can be loaded by the Theodore core have the following file extensions: + +- .fd (floppy disk) +- .k7 (tape) +- .rom (cartridge) + +## BIOS + +| Filename | Description | md5sum | +|:--------:|:-------------------------:|:--------------------------------:| +| to8d.rom | Boot Image - Required | 2091a2de4f663c48b580811f56e02c25 | + +## Features + +Frontend-level settings or features that the Theodore core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ? | +| Screenshots | ? | +| Saves | ? | +| States | ? | +| Rewind | ? | +| Netplay | ? | +| Core Options | ? | +| RetroAchievements | ? | +| RetroArch Cheats | ? | +| Native Cheats | ? | +| Controls | ? | +| Remapping | ? | +| Multi-Mouse | ? | +| Rumble | ? | +| Sensors | ? | +| Camera | ? | +| Location | ? | +| Subsystem | ? | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ? | +| Disk Control | ? | +| Username | ? | +| Language | ? | +| Crop Overscan | ? | +| LEDs | ? | + +### Directories + +The Theodore core's internal core name is 'theodore' + +The Theodore core saves/loads to/from these directories. + +**Frontend's System directory** + +- theodore.cfg (Theodore Config file) + +## Core options + +None + +## Controllers + +The Theodore core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +### User 1 device types + +- None - Input disabled +- **RetroPad** - Joypad + +### Other controllers + +Mouse - The Theodore core can emulate mouse inputs. + +### Controller tables + +#### Gamepad + +| User 1 Remap descriptors | RetroPad Inputs | +|-----------------------------|----------------------------------------| +| "Fire" button | ![](../image/retropad/retro_a.png) | +| Start button | ![](../image/retropad/retro_b.png) | +| Virtual keyboard: go up | ![](../image/retropad/retro_x.png) | +| Virtual keyboard: go down | ![](../image/retropad/retro_y.png) | +| Virtual keyboard: keystroke | ![](../image/retropad/retro_start.png) | + +On controllers without Y/X keys, select can also be used to roll the virtual keyboard up. The order of the keys in the virtual keyboard is: digits (0->9) then letters (A->Z) then "Enter". + +#### Keyboard + +| Thomson keyboard | PC keyboard | +|------------------|-------------| +|STOP | TAB | +|CNT | CTRL | +|CAPSLOCK | CAPSLOCK | +|ACC | ALT | +|HOME | HOME | +|Arrows | Arrows | +|INS | INSERT | +|EFF | DEL | +|F1-F5 | F1-F5 | +|F6-F10 | SHIFT+F1-F5 | + + +## External Links + +- [Official DCTO8D Website](http://dcto8.free.fr/) +- [Official DCTO8D Downloads](http://dcto8.free.fr/dcto8d.2009/dcto8d_fr.html) +- [Libretro Theodore Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/theodore_libretro.info) +- [Libretro Theodore Github Repository](https://github.com/Zlika/theodore) +- [Report Libretro Theodore Core Issues Here](https://github.com/Zlika/theodore/issues) diff --git a/docs/meta/core_list.md b/docs/meta/core_list.md index 8686b977..a9822610 100644 --- a/docs/meta/core_list.md +++ b/docs/meta/core_list.md @@ -120,6 +120,7 @@ - TempGBA - TGB Dual - The Powder Toy +- Theodore - TyrQuake - UME 2014 - Uzem @@ -134,4 +135,4 @@ - Video Processor - Virtual Jaguar - XRick -- Yabause \ No newline at end of file +- Yabause diff --git a/docs/meta/todo.md b/docs/meta/todo.md index 1bc80475..f64b1c14 100644 --- a/docs/meta/todo.md +++ b/docs/meta/todo.md @@ -580,6 +580,16 @@ Add core max height - Add core max height - Add core provided aspect ratio. +### [〰️] Theodore + +- Quickstart for non french speakers +- Populate the features table +- Add core base width +- Add core base height +- Add core max width +- Add core max height +- Add core provided aspect ratio + ### [〰️] TyrQuake - Complete expansion pack section. diff --git a/docs/tech/licenses.md b/docs/tech/licenses.md index c646df8f..4769dab5 100644 --- a/docs/tech/licenses.md +++ b/docs/tech/licenses.md @@ -177,6 +177,7 @@ See below for a summary of the licenses behind RetroArch and its cores: | TempGBA | [GPLv2](https://github.com/libretro/TempGBA-libretro/blob/master/copyright) | | | [TGB Dual](../library/tgb_dual.md) | [GPLv2](https://github.com/libretro/tgbdual-libretro/blob/master/docs/COPYING-2.0.txt) | | | [The Powder Toy](../library/the_powder_toy.md) | [GPLv3](https://github.com/libretro/ThePowderToy/blob/master/LICENSE) | | +| [Theodore](../library/theodore.md) | [GPLv3](https://github.com/Zlika/theodore/blob/master/LICENSE) | | | [TyrQuake](../library/tyrquake.md) | [GPLv2](https://github.com/libretro/tyrquake/blob/master/gnu.txt) | | | UME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial | | [Uzem](../library/uzem.md) | [GPLv3](https://github.com/Uzebox/uzebox/blob/master/gpl-3.0.txt) | | diff --git a/mkdocs.yml b/mkdocs.yml index 080879a2..7c4c6f4d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -88,6 +88,7 @@ pages: - 'Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)': 'library/o2em.md' - 'Sharp - X68000 (PX68k)': 'library/px68k.md' - 'ScummVM': 'library/scummvm.md' + - 'Thomson - TO8D (Theodore)': 'library/theodore.md' - 'Uzebox (Uzem)': 'library/uzem.md' - 'GCE - Vectrex (vecx)': 'library/vecx.md' - 'Bandai - WonderSwan/Color (Beetle Cygne)': 'library/beetle_cygne.md' From 41dc8c87877fb4155edab22353ec490a0ded42c4 Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Fri, 27 Apr 2018 15:58:26 +0100 Subject: [PATCH 2/6] Changes requested by Core's author --- docs/library/theodore.md | 29 ++++++++++++++++------------- docs/meta/todo.md | 2 -- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/library/theodore.md b/docs/library/theodore.md index 6378d22d..7685ce0b 100644 --- a/docs/library/theodore.md +++ b/docs/library/theodore.md @@ -8,7 +8,7 @@ Theodore is a Thomson TO8D system emulator based on the Daniel Coulom's DCTO8D e The Theodore core has been authored by -- Daniel Coulom +- Thomas Lorblanchès The Theodore core is licensed under @@ -24,12 +24,6 @@ Content that can be loaded by the Theodore core have the following file extensio - .k7 (tape) - .rom (cartridge) -## BIOS - -| Filename | Description | md5sum | -|:--------:|:-------------------------:|:--------------------------------:| -| to8d.rom | Boot Image - Required | 2091a2de4f663c48b580811f56e02c25 | - ## Features Frontend-level settings or features that the Theodore core respects. @@ -71,9 +65,20 @@ The Theodore core saves/loads to/from these directories. - theodore.cfg (Theodore Config file) +### Geometry and timing + +- The Theodore core's base width is 672 pixels +- The Theodore core's base height is 432 pixels + ## Core options -None +The Theodore core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +- **Floppy write protection** [theodore_floppy_write_protect] (disabled|**enabled**) + +- **Tape write protection** [theodore_tape_write_protect] (disabled|**enabled**) + +- **Dump printer data to file** [theodore_printer_emulation] (**disabled**|enabled) ## Controllers @@ -86,7 +91,7 @@ The Theodore core supports the following device type(s) in the controls menu, bo ### Other controllers -Mouse - The Theodore core can emulate mouse inputs. +Mouse - The Theodore core emulates the TO8D light pen. ### Controller tables @@ -117,11 +122,9 @@ On controllers without Y/X keys, select can also be used to roll the virtual key |F1-F5 | F1-F5 | |F6-F10 | SHIFT+F1-F5 | - ## External Links -- [Official DCTO8D Website](http://dcto8.free.fr/) -- [Official DCTO8D Downloads](http://dcto8.free.fr/dcto8d.2009/dcto8d_fr.html) -- [Libretro Theodore Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/theodore_libretro.info) - [Libretro Theodore Github Repository](https://github.com/Zlika/theodore) - [Report Libretro Theodore Core Issues Here](https://github.com/Zlika/theodore/issues) +- [Libretro Theodore Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/theodore_libretro.info) +- [Official DCTO8D Website](http://dcto8.free.fr/) diff --git a/docs/meta/todo.md b/docs/meta/todo.md index f64b1c14..f2a08ae6 100644 --- a/docs/meta/todo.md +++ b/docs/meta/todo.md @@ -584,8 +584,6 @@ Add core max height - Quickstart for non french speakers - Populate the features table -- Add core base width -- Add core base height - Add core max width - Add core max height - Add core provided aspect ratio From c781656a8ba774f483cc5764400ba2d4c1bbdda8 Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Mon, 30 Apr 2018 12:23:46 +0100 Subject: [PATCH 3/6] Conform to core's template --- docs/library/theodore.md | 138 +++++++++++++++++++++++---------------- docs/meta/todo.md | 8 +-- 2 files changed, 83 insertions(+), 63 deletions(-) diff --git a/docs/library/theodore.md b/docs/library/theodore.md index 7685ce0b..2b239b1a 100644 --- a/docs/library/theodore.md +++ b/docs/library/theodore.md @@ -4,11 +4,9 @@ Theodore is a Thomson TO8D system emulator based on the Daniel Coulom's DCTO8D emulator. The Thomson TO8 is a home computer introduced by French company Thomson SA in 1986. The Thomson TO8D is an improved version that includes a built-in 3.5" floppy drive. -### Author/License - The Theodore core has been authored by -- Thomas Lorblanchès +- T. Lorblanchès The Theodore core is licensed under @@ -16,13 +14,23 @@ The Theodore core is licensed under A summary of the licenses behind RetroArch and its cores have found [here](https://docs.libretro.com/tech/licenses/). +## Requirements + +None + +## BIOS + +The Theodore core does not feature BIOS use. + ## Extensions Content that can be loaded by the Theodore core have the following file extensions: - .fd (floppy disk) +- .sap (floppy disk) - .k7 (tape) - .rom (cartridge) +- .m7 (MEMO7 cartridge) ## Features @@ -30,40 +38,39 @@ Frontend-level settings or features that the Theodore core respects. | Feature | Supported | |-------------------|:---------:| -| Restart | ? | -| Screenshots | ? | -| Saves | ? | -| States | ? | -| Rewind | ? | -| Netplay | ? | -| Core Options | ? | -| RetroAchievements | ? | -| RetroArch Cheats | ? | -| Native Cheats | ? | -| Controls | ? | -| Remapping | ? | -| Multi-Mouse | ? | -| Rumble | ? | -| Sensors | ? | -| Camera | ? | -| Location | ? | -| Subsystem | ? | -| [Softpatching](https://docs.libretro.com/guides/softpatching/) | ? | -| Disk Control | ? | -| Username | ? | -| Language | ? | -| Crop Overscan | ? | -| LEDs | ? | +| Restart | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | - | +| Core Options | ✔ | +| RetroAchievements | - | +| RetroArch Cheats | - | +| Native Cheats | - | +| Controls | - | +| Remapping | - | +| Multi-Mouse | - | +| Rumble | - | +| Sensors | - | +| Camera | - | +| Location | - | +| Subsystem | - | +| [Softpatching](https://docs.libretro.com/guides/softpatching/) | - | +| Disk Control | - | +| Username | - | +| Language | - | +| Crop Overscan | - | +| LEDs | - | ### Directories The Theodore core's internal core name is 'theodore' -The Theodore core saves/loads to/from these directories. - **Frontend's System directory** -- theodore.cfg (Theodore Config file) +| File | Description | +|:------------:|:-----------:| +| theodore.cfg | Config file | ### Geometry and timing @@ -80,47 +87,62 @@ The Theodore core has the following option(s) that can be tweaked from the core - **Dump printer data to file** [theodore_printer_emulation] (**disabled**|enabled) -## Controllers +## User 1 device types The Theodore core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): -### User 1 device types - - None - Input disabled - **RetroPad** - Joypad +- RetroPad w/ Analog - Joypad -### Other controllers +## Other devices -Mouse - The Theodore core emulates the TO8D light pen. +- Light pen - The TO8 light pen inputs are mapped to the mouse -### Controller tables +## Joypad -#### Gamepad - -| User 1 Remap descriptors | RetroPad Inputs | -|-----------------------------|----------------------------------------| -| "Fire" button | ![](../image/retropad/retro_a.png) | -| Start button | ![](../image/retropad/retro_b.png) | -| Virtual keyboard: go up | ![](../image/retropad/retro_x.png) | -| Virtual keyboard: go down | ![](../image/retropad/retro_y.png) | -| Virtual keyboard: keystroke | ![](../image/retropad/retro_start.png) | +| RetroPad Inputs | User 1 input descriptors | +|----------------------------------------|-----------------------------| +| ![](../image/retropad/retro_a.png) | "Fire" button | +| ![](../image/retropad/retro_b.png) | Start button | +| ![](../image/retropad/retro_x.png) | Virtual keyboard: go up | +| ![](../image/retropad/retro_y.png) | Virtual keyboard: go down | +| ![](../image/retropad/retro_start.png) | Virtual keyboard: keystroke | On controllers without Y/X keys, select can also be used to roll the virtual keyboard up. The order of the keys in the virtual keyboard is: digits (0->9) then letters (A->Z) then "Enter". -#### Keyboard +## Keyboard -| Thomson keyboard | PC keyboard | -|------------------|-------------| -|STOP | TAB | -|CNT | CTRL | -|CAPSLOCK | CAPSLOCK | -|ACC | ALT | -|HOME | HOME | -|Arrows | Arrows | -|INS | INSERT | -|EFF | DEL | -|F1-F5 | F1-F5 | -|F6-F10 | SHIFT+F1-F5 | +| RetroKeyboard Inputs | Theodore Inputs | +|------------------------------|---------------------------| +| Keyboard Tab | STOP | +| Keyboard Left Control | CNT | +| Keyboard Caps Lock | CAPSLOCK | +| Keyboard Left Alt | ACC | +| Keyboard Home | HOME | +| Keyboard Up | UP | +| Keyboard Down | DOWN | +| Keyboard Right | RIGHT | +| Keyboard Left | LEFT | +| Keyboard Insert | INS | +| Keyboard Delete | DEL | +| Keyboard F1 | F1 | +| Keyboard F2 | F2 | +| Keyboard F3 | F3 | +| Keyboard F4 | F4 | +| Keyboard F5 | F5 | +| Keyboard F6 | Shift + F1 | +| Keyboard F7 | Shift + F2 | +| Keyboard F8 | Shift + F3 | +| Keyboard F9 | Shift + F4 | +| Keyboard F10 | Shift + F5 | + +## Mouse + +| RetroMouse Inputs | (Device name) Inputs | +|-------------------------------------------------------|---------------------------| +| ![](../image/retromouse/retro_mouse.png) Mouse Cursor | Light pen cursor | +| ![](../image/retromouse/retro_left.png) Mouse 1 | Selection | ## External Links diff --git a/docs/meta/todo.md b/docs/meta/todo.md index f2a08ae6..39bf8608 100644 --- a/docs/meta/todo.md +++ b/docs/meta/todo.md @@ -582,11 +582,9 @@ Add core max height ### [〰️] Theodore -- Quickstart for non french speakers -- Populate the features table -- Add core max width -- Add core max height -- Add core provided aspect ratio +- Feature: more tests required +- Geometry/timing: FPS, sample rate, aspect ratio, max width/weight +- Usage: Quickstart for non french speakers ### [〰️] TyrQuake From 9ba15180e86300ae2a22be55855ac9ab3b152a7b Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Mon, 30 Apr 2018 13:31:57 +0100 Subject: [PATCH 4/6] Fix an empty field --- docs/library/theodore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/library/theodore.md b/docs/library/theodore.md index 2b239b1a..8a492ee7 100644 --- a/docs/library/theodore.md +++ b/docs/library/theodore.md @@ -139,7 +139,7 @@ On controllers without Y/X keys, select can also be used to roll the virtual key ## Mouse -| RetroMouse Inputs | (Device name) Inputs | +| RetroMouse Inputs | Theodore Inputs | |-------------------------------------------------------|---------------------------| | ![](../image/retromouse/retro_mouse.png) Mouse Cursor | Light pen cursor | | ![](../image/retromouse/retro_left.png) Mouse 1 | Selection | From f15be1c314da970e7ab459432112fa6a5c07be21 Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Mon, 30 Apr 2018 16:39:52 +0100 Subject: [PATCH 5/6] Add a mini howto --- docs/image/core/theodore/to8d_os.jpg | Bin 0 -> 42447 bytes docs/library/theodore.md | 10 ++++++++-- docs/meta/todo.md | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 docs/image/core/theodore/to8d_os.jpg diff --git a/docs/image/core/theodore/to8d_os.jpg b/docs/image/core/theodore/to8d_os.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d375eb2bbae63edec9de43e9e3f03d6affbaddf GIT binary patch literal 42447 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 literal 0 HcmV?d00001 diff --git a/docs/library/theodore.md b/docs/library/theodore.md index 8a492ee7..f578dd3d 100644 --- a/docs/library/theodore.md +++ b/docs/library/theodore.md @@ -6,7 +6,7 @@ Theodore is a Thomson TO8D system emulator based on the Daniel Coulom's DCTO8D e The Theodore core has been authored by -- T. Lorblanchès +- Thomas Lorblanchès The Theodore core is licensed under @@ -30,7 +30,7 @@ Content that can be loaded by the Theodore core have the following file extensio - .sap (floppy disk) - .k7 (tape) - .rom (cartridge) -- .m7 (MEMO7 cartridge) +- .m7 (cartridge) ## Features @@ -77,6 +77,12 @@ The Theodore core's internal core name is 'theodore' - The Theodore core's base width is 672 pixels - The Theodore core's base height is 432 pixels +## Usage + +![](../image/core/theodore/to8d_os.jpg) + +Click the top yellow rectangle on the right-hand side. + ## Core options The Theodore core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. diff --git a/docs/meta/todo.md b/docs/meta/todo.md index 39bf8608..458ef16d 100644 --- a/docs/meta/todo.md +++ b/docs/meta/todo.md @@ -584,7 +584,6 @@ Add core max height - Feature: more tests required - Geometry/timing: FPS, sample rate, aspect ratio, max width/weight -- Usage: Quickstart for non french speakers ### [〰️] TyrQuake From 6fac509eb6069bce2f3768072f339dece6c5a762 Mon Sep 17 00:00:00 2001 From: Benoit Felix Date: Mon, 30 Apr 2018 17:10:04 +0100 Subject: [PATCH 6/6] Add keyboard pic --- docs/image/core/theodore/to8d_keyboard.jpg | Bin 0 -> 31205 bytes docs/library/theodore.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/image/core/theodore/to8d_keyboard.jpg diff --git a/docs/image/core/theodore/to8d_keyboard.jpg b/docs/image/core/theodore/to8d_keyboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c01005ac1b9cb0fa7ab7078401d70e687727110 GIT binary patch literal 31205 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 literal 0 HcmV?d00001 diff --git a/docs/library/theodore.md b/docs/library/theodore.md index f578dd3d..368e74ea 100644 --- a/docs/library/theodore.md +++ b/docs/library/theodore.md @@ -119,6 +119,8 @@ On controllers without Y/X keys, select can also be used to roll the virtual key ## Keyboard +![](../image/core/theodore/to8d_keyboard.jpg) + | RetroKeyboard Inputs | Theodore Inputs | |------------------------------|---------------------------| | Keyboard Tab | STOP |