diff --git a/.gitignore b/.gitignore index e108bf9aeb..c959f47f8d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .DS_Store docs/.DS_Store .DS_Store +.venv \ No newline at end of file diff --git a/docs/development/licenses.md b/docs/development/licenses.md index 768de5bc53..f2dc3be34f 100644 --- a/docs/development/licenses.md +++ b/docs/development/licenses.md @@ -134,6 +134,7 @@ See below for a summary of the licenses behind RetroArch and its cores: | [Kronos](../library/kronos.md) | [GPLv2](https://github.com/libretro/yabause/blob/kronos/yabause/COPYING) | | | [LowRES NX](../library/lowres_nx.md) | [zlib](https://github.com/timoinutilis/lowres-nx/blob/master/LICENSE) | | | [Lutro](../library/lutro.md) | [MIT](https://github.com/libretro/libretro-lutro/blob/master/LICENSE) | | +| M2000 | [GPLv3](https://github.com/p2000t/M2000/blob/main/LICENSEE) | | | MAME | [BSD-3-Clause & GNU GPLv2](http://mamedev.org/legal.html) | | | MAME 2000 | [MAME (Non-commercial)](https://github.com/libretro/mame2000-libretro/blob/master/readme.txt) | Non-commercial | | [MAME 2003](../library/mame_2003.md) | [MAME (Non-commercial)](https://github.com/libretro/mame2003-libretro/blob/master/LICENSE.md) | Non-commercial | diff --git a/docs/image/core/m2000/machine.png b/docs/image/core/m2000/machine.png new file mode 100644 index 0000000000..c49bd67aa5 Binary files /dev/null and b/docs/image/core/m2000/machine.png differ diff --git a/docs/library/m2000.md b/docs/library/m2000.md new file mode 100644 index 0000000000..2513697500 --- /dev/null +++ b/docs/library/m2000.md @@ -0,0 +1,142 @@ +# Philips - P2000T (M2000) + +![](../image/core/m2000/machine.png) + +## Background + +The P2000T was Philips' first home computer, before they later switched to manufacturing MSX computers. The P2000T was a Z80-powered machine which launched in 1981 and was built like a tank. It featured an integrated keyboard, power supply, two cartridge slots and a very innovative and fast Mini-Cassette system (MDCR), which was fully automated and used mini tapes that could hold up to 42 kilobytes of data. + +The P2000T was reasonably popular among hobbyists and kids in elementary schools in The Netherlands, as Philips promoted the machine strongly in the science and education sectors. Because of the relatively high introductory price and the fact that its SAA5050 video chip only supported teletext display mode, the P2000T never became the success that Philips hoped for. + +While the system's video and sound capabilities were rather limited, some developers still were able to create remarkably good games, like a Pac-Man clone named "Ghosthunt", a Phoenix clone named "Fraxxon", a Lady Bug clone named "Lazy Bug" and a Breakout clone named "Brick-Wall". + +The P2000T (M2000) emulator core has been authored by: + +- Dion Olsthoorn +- Marcel the Kogel (who wrote the original emulator back in 1997) + +and is licensed under: + +- [GPL3](https://github.com/p2000t/M2000/blob/main/LICENSE) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Extensions + +Content that can be loaded by the M2000 core have the following file extensions: + +- .cas +- .p2000t + +## Features + +Frontend-level settings or features that the M2000 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](../guides/softpatching.md) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +## Directories + +The M2000 core's library name is 'M2000'. + +## Geometry and timing + +- The M2000 core's core provided FPS is `50` +- The M2000 core's core provided sample rate is `30000` +- The M2000 core's base width is `640` +- The M2000 core's base height is `480` +- The M2000 core's max width is `640` +- The M2000 core's max height is `480` +- The M2000 core's core provided aspect ratio is `4/3` + +## Usage + +Playing P2000T games using the M2000 core works best when the core is in **'Game Focus'** mode, which allows it to take precedence in inputs. The reason is that **every** P2000T game relies on keyboard input and even the buttons of the RetroPad controller are internally emulating actual key presses. + +The easiest way to automatically enable 'Game Focus' mode for the M2000 core is in **Settings > Input** where you set the option called **Auto Enable 'Game Focus' Mode** to `Detect`. Or correspondingly in retroarch.cfg set `input_auto_game_focus = "2"`. Be aware that the default hotkey for toggling the **Game Focus** mode is the **Scroll Lock** key, which might not be present on your keyboard. If that's the case, you'll need to remap it - for example to the **Tab** key. + +## User 1 device types + +The M2000 core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +- **RetroKeyboard** - Keyboard. Keyboard inputs are always active. +- RetroPad - Joypad. The buttons are internally mapped to actual key presses (see information below). + +## Joypad + +| RetroPad Inputs | P2000T | +|---------------------------------------------|-----------| +| ![](../image/retropad/retro_a.png) | Space | +| ![](../image/retropad/retro_b.png) | Space | +| ![](../image/retropad/retro_start.png) | < START > | +| ![](../image/retropad/retro_select.png) | < STOP > | +| ![](../image/retropad/retro_dpad_up.png) | Up | +| ![](../image/retropad/retro_dpad_down.png) | Down | +| ![](../image/retropad/retro_dpad_left.png) | Left | +| ![](../image/retropad/retro_dpad_right.png) | Right | + +### Joypad remapping for games that use alternative keys (e.g. Fraxxion) + +Some P2000T games use alternative keys for navigation. An example is Fraxxion, which uses the **Left** and **Up** keys to move the spaceship horizontally, which was probably done for better control on the original P2000T keyboard. +To be able to use the D-pad for horizontal movement in the emulator, you should start Fraxxion, then open the menu and go to **Quick Menu > Controls > Port 1 Controls** and remap **D-Pad Right** to RetroPad **Up**. Now return to **Quick Menu > Controls**, click **Manage Remap Files** and select **Save Game Remap File** to save the remapping for Fraxxion only. + +## Keyboard + +| RetroKeyboard Inputs | P2000T Key | +|------------------------------|---------------------------| +| Keyboard a .. z | a .. z | +| Keyboard 0 .. 9 | 0 .. 9 | +| Keyboard Backspace | Backspace | +| Keyboard Return | Enter | +| Keyboard Space | Space | +| Keyboard Double Quote " | Double Quote " | +| Keyboard Slash / | Slash / | +| Keyboard Question ? | Question ? | +| Keyboard Comma , | Comma , | +| Keyboard Minus - | Minus - | +| Keyboard Period . | Period . | +| Keyboard Underscore _ | Underscore _ | +| Keyboard Backquote ` | < CODE > | +| Keyboard Keypad 0 .. 9 | 0 .. 9 | +| Keyboard Keypad Period . | Period . | +| Keyboard Keypad Enter | Enter | +| Keyboard Up | Up | +| Keyboard Down | Down | +| Keyboard Right | Right | +| Keyboard Left | Left | +| Keyboard F1 | < START > | +| Keyboard F2 | < STOP > | +| Keyboard F3 | < ZOEK > | + +## External Links + +- [Libretro M2000 Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/m2000_libretro.info) +- [Official M2000 Github Repository](https://github.com/p2000t/M2000) +- [Report M2000 Issues Here](https://github.com/p2000t/M2000/issues) +- [Wikipedia page on the Philips P2000T](https://en.wikipedia.org/wiki/Philips_P2000#P2000T) +- [P20000T documentation](https://github.com/p2000t/documentation) +- [P20000T game collection](https://github.com/p2000t/software/tree/master/cassettes/games) diff --git a/docs/library/o2em.md b/docs/library/o2em.md index f0708f9a25..fedd949f0e 100644 --- a/docs/library/o2em.md +++ b/docs/library/o2em.md @@ -1,4 +1,4 @@ -# Magnavox - Odyssey2 / Phillips Videopac+ (O2EM) +# Magnavox - Odyssey2 / Philips Videopac+ (O2EM) @@ -40,7 +40,7 @@ Content that can be loaded by the O2EM core have the following file extensions: RetroArch database(s) that are associated with the O2EM core: - [Magnavox - Odyssey2](https://github.com/libretro/libretro-database/blob/master/rdb/Magnavox%20-%20Odyssey2.rdb) -- [Phillips - Videopac+](https://github.com/libretro/libretro-database/blob/master/rdb/Philips%20-%20Videopac%2B.rdb) +- [Philips - Videopac+](https://github.com/libretro/libretro-database/blob/master/rdb/Philips%20-%20Videopac%2B.rdb) ## Features diff --git a/docs/meta/core-list.md b/docs/meta/core-list.md index 7b76086989..b3f9bad407 100644 --- a/docs/meta/core-list.md +++ b/docs/meta/core-list.md @@ -109,6 +109,7 @@ | Kronos | Sega Saturn/ST-V | A port of the Kronos, which is itself a fork of Yabause emulator | | LowRes NX | Game engine | A port of the LowRes NX fantasy console to libretro | | Lutro | Game engine | An experimental Lua game framework for libretro, based on a subset of the LOVE API | +| M2000 | Philips P2000T | A port of M2000, the portable Philips P2000 emulator to libretro | | MAME (Current) | Arcade/Console/various | Based on MAME development branch. Full list of supported systems: http://adb.arcadeitalia.net/mame.php | | MAME 2000 | Arcade/Console/various | (See MAME note) | | MAME 2003 | Arcade/Console/various | (See MAME note) | @@ -139,7 +140,7 @@ | nSide Balanced | Nintendo SNES/SFC/Game Boy/Color | | | Numero | TI-83 | A TI-83 Emulator for Libretro | | NXEngine | Game engine | An open-source reimplementation of the Cave Story / Doukutsu engine | -| O2EM | Magnavox Odyssey2/Phillips Videopac+ | | +| O2EM | Magnavox Odyssey2/Philips Videopac+ | | | Oberon | Oberon RISC machine | An emulator for the Oberon RISC machine, ported to libretro | | OpenLara | Game engine | A port of the OpenLara free/open re-implementation of the engine used by the original Tomb Raider series | | OpenTyrian | Game | A port of the OpenTyrian clone of the classic Tyrian shmup, ported to libretro | diff --git a/mkdocs.yml b/mkdocs.yml index e64758c068..fdfb6c2dab 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -139,7 +139,7 @@ nav: - 'GCE Emulation': - 'GCE - Vectrex (vecx)': 'library/vecx.md' - 'Magnavox Emulation': - - 'Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)': 'library/o2em.md' + - 'Magnavox - Odyssey2 / Philips Videopac+ (O2EM)': 'library/o2em.md' - 'Mattel Emulation': - 'Mattel - Intellivision (FreeIntv)': 'library/freeintv.md' - 'Microsoft Emulation': @@ -201,8 +201,9 @@ nav: - 'NEC - PC Engine SuperGrafx (Beetle SGX)': 'library/beetle_sgx.md' - 'NEC - PC Engine / CD (Beetle PCE FAST)': 'library/beetle_pce_fast.md' - 'NEC - PC-FX (Beetle PC-FX)': 'library/beetle_pc_fx.md' - - 'Phillips Emulation': - - 'Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)': 'library/o2em.md' + - 'Philips Emulation': + - 'Magnavox - Odyssey2 / Philips Videopac+ (O2EM)': 'library/o2em.md' + - 'Philips - P2000T (M2000)': 'library/m2000.md' - 'RISC-V Emulation': - 'RVVM - RISC-V Virtual Machine': 'library/rvvm.md' - 'SNK Emulation':