Linux x86_64
JAPS1ME v0.2.1
SHA-256
a59f866237571f1a464f839d21e51236801926c0619864798baca8dd68aae68cVerify: sha256sum JAPS1ME-v0.2.1-Linux-x86_64.tar.gz
PS1 · DexDrive .gme · RetroArch .srm / DuckStation .mcd
A fast Rust CLI for managing PlayStation 1 memory-card saves for RetroArch and DuckStation. Convert whole cards, browse saves, import, delete, copy, and install — with staged, validated writes.
Early development: commands and output may change. Back up your saves before use.
Prefer source? View on GitHub →
$
SLOT SAVE NAME BLOCKS SIZE
1 BESLES-03946PES-OPT 2 16.0 KiB
3 BESLES-03946PES-D2A 2 16.0 KiB
5 BESLES-03946PES-D1A 2 16.0 KiB
Free: 9 of 15 slots
Single-game card — .srm / .mcd basename matches the game
v0.2.1 — early development
Download the v0.2.1 Linux or Windows x86_64 binary below. Verify its SHA-256 checksum before running.
Linux x86_64
SHA-256
a59f866237571f1a464f839d21e51236801926c0619864798baca8dd68aae68cVerify: sha256sum JAPS1ME-v0.2.1-Linux-x86_64.tar.gz
Windows x86_64
SHA-256
d97c0de7d4dd059d21d59cafb78f19bc97e225d100002b56cbc36b3817e30d26Verify: certutil -hashfile JAPS1ME-v0.2.1-Windows-x86_64.zip SHA256
DuckStation support for equivalent raw memory-card files.
Copy and install support DuckStation .mcd cards as well as RetroArch .srm; both extensions contain the same raw image.
The configured path's memcards or duckstation component selects DuckStation; other paths use RetroArch. No emulator prompt.
Matching by game basename lets a workspace .srm source select the corresponding DuckStation .mcd card.
install --new creates a card using the configured emulator's naming convention and converts .srm/.mcd names as needed. Multi-disc RetroArch installs remind you to copy and rename for the next disc; DuckStation shares one card between discs.
Six commands. No GUI, no surprises.
Validate a DexDrive .gme (including headerless variants) and write its raw 131072-byte payload as .srm. Never overwrites; raw inputs are told to copy instead.
Browse .gme and raw .srm cards: slot, save name, Shift-JIS title, region, blocks, payload size, free slots.
Copy one named save from .gme (or a raw card misnamed .gme) into .srm. Duplicate + free-space checks, staged + re-validated replace.
Delete by slot number or exact save name. Slots reset to formatted with fresh checksums.
Pull an emulator .srm or .mcd into this workspace for JAPS1ME work. Bare names and prefixes resolve in the saves dir; asks before overwriting.
Install into RetroArch or DuckStation. The configured directory determines .srm versus .mcd; --new creates a convention-named per-game card, while overwrites are backed up.
Read-only listing and checksums. Convert refuses to overwrite. Import/delete stage to temp files first.
Pick a command, copy the example.
List saves and free slots. Accepts .gme and raw images, detected by size + MC signature.
japs1me list save-games/pro-evolution-soccer-2.22507.gmeConvert DexDrive .gme to a raw card image such as RetroArch .srm or DuckStation .mcd. Refuses to overwrite an existing output.
japs1me convert save-games/pro-evolution-soccer-2.22507.gme pes2.srmImport one save by exact name from .gme (or a raw card misnamed .gme) into .srm. Prompts y/n on duplicates (interactive terminals only).
japs1me import pes2.srm save-games/pro-evolution-soccer-2.22507.gme BESLES-03946PES-OPTDelete by 1-based slot number or exact save name. .srm targets only.
japs1me delete pes2.srm BESLES-03946PES-OPTPull an emulator .srm or .mcd into this workspace for JAPS1ME work. Bare names and prefixes resolve in the configured saves dir; asks y/n before overwriting.
japs1me copy "ISS Pro Evolution (USA).srm" work.srmInstall into the configured RetroArch or DuckStation directory. Path detection selects .srm or .mcd; matching basenames skip the picker. Use --new (or choose n) to create a convention-named card; an existing target is backed up before overwrite.
japs1me install pes2.srm.srm if you intend to replace it.<card>.<ext>.japs1me-bak first; the extension reflects the emulator card.Prefer building from source? You need git plus a Rust toolchain with Cargo. Four steps, copy-paste friendly.
git clone https://github.com/MARKMENTAL/JAPS1MEcd JAPS1MEcargo build --release — binary lands at target/release/japs1me.target/release/japs1me --version — expect 0.2.1.target/release/japs1me list save-games/pro-evolution-soccer-2.22507.gme$ git clone https://github.com/MARKMENTAL/JAPS1ME
$ cd JAPS1ME
$ cargo build --release
$ target/release/japs1me --version
Full usage, checks, and tests in the README on GitHub.
list reads .gme + raw. convert takes .gme only. import copies .gme (or raw misnamed .gme) into a raw card. delete edits raw cards. copy pulls .srm or .mcd into the workspace.
RetroArch and DuckStation use one card per game, with .srm and .mcd respectively. JAPS1ME infers the emulator from the configured directory, matches by game basename, and replaces contents in place so the filename stays correct.
MemcardRex is a full GUI editor — per-frame browser, VGS/VMP/MCX support, card formatting, comment editing, hardware support. JAPS1ME is a Linux-first, CLI-driven Rust utility for RetroArch and DuckStation: .gme conversion, save listing, single-save import, delete, copy, and install, with staged, validated writes.
Accepted with a warning — the documented exception. Length, MC signature, and checksums are otherwise strictly validated.
Deliberate. JAPS1ME follows the Unix philosophy: small, composable commands (list, convert, import, delete, copy, install) focused on one task, done well with the least ceremony. Plain-text output pipes and scripts cleanly; a GUI would add bulk without helping the per-game card workflow.
DuckStation support adds .mcd copy/install alongside RetroArch .srm. The configured directory path identifies the emulator and matching uses the game basename across extensions. See New in v0.2.1.