Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/development/licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
| [PCSX ReARMed](../library/pcsx_rearmed.md) | [GPLv2](https://github.com/libretro/pcsx_rearmed/blob/master/COPYING) | |
| PCSX ReARMed [Interpreter] | [GPLv2](https://github.com/libretro/pcsx_rearmed/blob/master/COPYING) | |
| [PD777](../library/pd777.md) | [MIT](https://github.com/mittonk/PD777/blob/main/LICENSE) | |
| [Picocomputer 6502](../library/rp6502.md) | [BSD-3-Clause](https://github.com/picocomputer/rp6502/blob/main/LICENSE) | |
| [PicoDrive](../library/picodrive.md) | [MAME (Non-commercial)](https://github.com/libretro/picodrive/blob/master/COPYING) | Non-commercial |
| [PocketCDG](../library/pocketcdg.md) | [MIT](https://github.com/libretro/libretro-pocketcdg/blob/master/LICENSE) | |
| [PokeMini](../library/pokemini.md) | [GPLv3](https://github.com/libretro/PokeMini/blob/master/LICENSE) | |
Expand Down
1 change: 1 addition & 0 deletions docs/guides/core-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
| PCem | IBM PC | |
| [PCSX ReARMed](https://docs.libretro.com/library/pcsx_rearmed/) | Sony PlayStation | |
| [PD777](../library/pd777.md) | Epoch Cassette Vision | |
| [Picocomputer 6502](../library/rp6502.md) | Picocomputer 6502 | An open source 8-bit computer you can build |
| PicoDrive | Sega MS/GG/MD/CD/32X | |
| Play! | Sony PlayStation 2 | |
| Pocket CDG | Karaoke player | A karaoke music player, ported to libretro |
Expand Down
46 changes: 46 additions & 0 deletions docs/library/rp6502.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Picocomputer 6502

## Background

The Picocomputer 6502 is a real 8-bit computer you can build yourself, from a WDC 65C02, a couple of Raspberry Pi Picos, and very little else. It has 64 KB of RAM and 64 KB of XRAM, no ROM, nothing reserved, and a 6502 that runs from 0.1 to 8.0 MHz cycle accurate. Video is three planes of tiles, bitmaps, and sprites in RGB555, programmable per scanline. Software is distributed as `.rp6502` ROM files.

The primary documentation for the Picocomputer 6502 is at [https://picocomputer.github.io/](https://picocomputer.github.io/), which covers the machine down to the register, along with the SDK and the operating system.

## Controllers

The Picocomputer 6502 core supports the following device types in all four ports, the bolded device type is the default:

- **Gamepad** - Joypad
- Gamepad (Analog) - Analog
- Lightgun - Lightgun - The Picocomputer's tablet. See [Mouse and tablet](#mouse-and-tablet).

## Save states and netplay

Save states are supported and are deterministic, so rewind, run-ahead, and netplay all work.

## Quirks

The Picocomputer is a gaming-centric computer, with keyboard, mouse, tablet, and gamepad support. libretro was built for consoles, with gamepads. What follows are limitations of libretro, not of the Picocomputer, and a core cannot work around them. Desktop users may prefer a [native emulator](https://picocomputer.github.io/emu.html) where one is available.

### Keyboard

The keyboard defaults to gamepad emulation. RetroArch binds your keys to a virtual RetroPad and to its own hotkeys, so typing does nothing useful until you enable Game Focus, which is the Scroll Lock key by default.

There is no way for a core to tell libretro that it wants the keyboard to be a keyboard. The core cannot turn Game Focus on, and it cannot ask whether Game Focus is on. All it can do is put a message on screen the first time a program asks for the keyboard.

You can change the default in **Settings > Input > Auto Enable 'Game Focus' Mode**. Setting it to **Detect** turns Game Focus on whenever this core is loaded, because the core always asks for keyboard input. That is usually what you want, but Game Focus also captures the mouse, which can cause some confusion. See below.

See [RetroArch's direct keyboard input guidance](../guides/input-and-controls.md#cores-with-direct-keyboard-input) for more on Game Focus and frontend hotkeys.

### Mouse and tablet

The Picocomputer communicates the pointer shape in both directions. A program asks the host for an arrow, a crosshair, an I-beam, or no cursor at all, and the host tells the program whether it has a cursor to lend. libretro has no channel for any of this, so the core always reports that there is no host cursor and the program draws its own.

With Game Focus off, RetroArch keeps its own cursor, and you may see two of them — the frontend's and the program's. With Game Focus on, RetroArch captures the mouse, and reaching the edges of the screen is difficult.

The Picocomputer's tablet is an absolute pointing device, and libretro's absolute pointing device is a lightgun. Set a port's device type to **Lightgun** to use one.

## External Links

- [Official Picocomputer 6502 Documentation](https://picocomputer.github.io/)
- [Report Picocomputer 6502 Core Issues Here](https://github.com/picocomputer/rp6502/issues)
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ nav:
- 'Philips Emulation':
- 'Magnavox - Odyssey2 / Philips Videopac+ (O2EM)': 'library/o2em.md'
- 'Philips - P2000T (M2000)': 'library/m2000.md'
- 'Picocomputer Emulation':
- 'Rumbledethumps - Picocomputer 6502 (RP6502)': 'library/rp6502.md'
- 'RISC-V Emulation':
- 'RVVM - RISC-V Virtual Machine': 'library/rvvm.md'
- 'SNK Emulation':
Expand Down