From 62efb13d14b2ccd1e5fc542cf46199c88f5af519 Mon Sep 17 00:00:00 2001
From: kub <derkub@gmail.com>
Date: Wed, 5 Feb 2025 22:32:28 +0100
Subject: [PATCH] update readme for kbd+tape

---
 README.md                    | 23 +++++++++++++++++++++++
 platform/libretro/libretro.c |  2 +-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 233daa3e..98fc54d1 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,29 @@ if the pen is used on the storyware or pad. Details about how to correctly name
 the pages can be found in the *How to run Sega Pico games* section in
 `platform/base_readme.txt`.
 
+### Sega Pico and SC-3000 Keyboards
+
+PicoDrive provides support for the Pico and SC-3000 keyboards. This can be
+enabled in the `Controls` configuration menu. Once enabled, keyboard input may
+be activated via the `Keyboard` emulator hotkey.
+
+Both physical keyboard support and a virtual keyboard overlay are available.
+Physical keyboards are assigned a default key mapping corresponding to an
+American PC layout, but the mapping can be redefined in the `Controls`
+configuration menu. Note that only 'unmodified' physical key presses can be
+mapped to emulated keyboard input; special characters entered via 'shift'
+key combinations may not match the emulated keyboard layout.
+
+### Sega SC-3000 Cassette Drive
+
+In addition to keyboard support, PicoDrive emulates the SC-3000 cassette tape
+drive which may be used in conjunction with BASIC cartridges. Tape emulation
+includes an automatic start/stop feature, where the tape is only advanced when
+it is accessed by the SC-3000; manual pausing of the tape is unnecessary for
+multi-part loading or saving.
+
+PicoDrive supports tape files in `WAV` and `bitstream` format.
+
 ### Gallery
 
 Some images of demos and homebrew software:
diff --git a/platform/libretro/libretro.c b/platform/libretro/libretro.c
index 82fae8a9..a6f2bf6f 100644
--- a/platform/libretro/libretro.c
+++ b/platform/libretro/libretro.c
@@ -1683,7 +1683,7 @@ void *retro_get_memory_data(unsigned type)
          if ((PicoIn.AHW & PAHW_MCD) && Pico.romsize == 0 &&
                !(PicoIn.opt & POPT_EN_MCD_RAMCART))
             data = Pico_mcd->bram;
-         else
+         else // TODO: handle copying to/from bram somewhere
             data = Pico.sv.data;
          break;
       case RETRO_MEMORY_SYSTEM_RAM:
-- 
2.39.5