{"id":23455177,"url":"https://github.com/john32b/psxmed","last_synced_at":"2026-02-19T10:04:09.079Z","repository":{"id":85199630,"uuid":"159993028","full_name":"john32b/psxmed","owner":"john32b","description":"PS1 games launcher, CLI based , for Mednafen. With some automation functions.","archived":false,"fork":false,"pushed_at":"2021-01-23T10:10:27.000Z","size":487,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-23T02:51:32.680Z","etag":null,"topics":["launcher","mednafen","ps1-games-launcher"],"latest_commit_sha":null,"homepage":"","language":"Haxe","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/john32b.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-12-01T22:30:24.000Z","updated_at":"2021-01-23T10:10:30.000Z","dependencies_parsed_at":"2023-03-11T00:00:35.950Z","dependency_job_id":null,"html_url":"https://github.com/john32b/psxmed","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/john32b/psxmed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2Fpsxmed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2Fpsxmed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2Fpsxmed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2Fpsxmed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/john32b","download_url":"https://codeload.github.com/john32b/psxmed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2Fpsxmed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29609531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["launcher","mednafen","ps1-games-launcher"],"created_at":"2024-12-24T03:29:18.461Z","updated_at":"2026-02-19T10:04:09.044Z","avatar_url":"https://github.com/john32b.png","language":"Haxe","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSXMED, PS1 Game Launcher for MEDNAFEN\n\n**PSXMED**, **Version** : 0.5.2 (*2020-11*), **License** : MIT   \n**Author** : John32B \n\nThis is an **unorthodox** PS1 game launcher for **Mednafen** that comes with some practical features. It is unorthodox in a way that this is built using **NodeJS** and runs on a **terminal**. I guess this is completely obscure, who in the world uses a game launcher running on a terminal ? This whole project started just as a personal tool/helper to quickly launch PS1 games on Mednafen *(my favorite PS1 Emulator)*. \n\n![demo](media/demo3.gif)\n\n## INSTALLING\n\n- Windows Only! *(It can probably be ported to Linux easily, can't bother)*\n- Make sure you have **NodeJS** installed with **NPM** *(NPM is the package manager of NodeJS, should install automatically when installing NodeJS)* :: https://nodejs.org\n- Open a Command Prompt and run :  \n  `npm i https://github.com/john32b/psxmed -g`   \n  This will install PSXMED globally and it can be run from anywhere\n- You should have Mednafen *(version **1.24.3** or above)*, setup ready to go.\n  - For Mednafen to be able to launch PS1 games you need to setup the PS1 BIOS files. *(google around)*\n  - Open `mednafen.cfg` and set proper paths to : ``psx.bios_eu, psx.bios_jp, psx.bios_na` to point to the bios files\n- Before running PSXMED, you need to configure it -\u003e open a terminal and run: `psxmed cfg`  \n  This will open the PSXMED configuration file with your default text editor.  **IF IT DOES NOT OPEN** for some reason, just call `psxmed` by itself, it will tell you that the settings are not set, along with the **path of the .ini file**, so open it in an editor manually.\n- Once you have opened the PSXMED **.ini** file, you need to set:\n  - `mednafen=` , The folder Mednafen is in.\n  - `isos=`, Path of the CD images, It will **deep search** this folder for valid files.\n  - These two are what are needed to run PSXMED. Everything else in there is **optional**.\n- That's it. PSXMED is ready to run now by running `psxmed`  \n  The **easiest way to run** it is to press `WIN+R` to open the windows RUN dialog, and run `psxmed` from there, it should create a new terminal window with PSXMED up and running.\n\n## :tomato: USING PSXMED\n\nPSXMED is a **TUI** *(terminal user interface)* and can only work with a keyboard.\n\n**ARROW KEYS** : Navigate the Cursor Up/Down/Left/Right  \n**TAB** : Switch focus between areas  \n**ENTER** : Make a selection   \n**PAGEUP/PAGEDOWN** : Scroll more elements in the main list  \n**CTRL + C** : QUIT!  \n**ESC / BACKSPACE** : Go Back   \n\nWhile on the Main Game List : **Press a Letter** : Cycle through items starting with that letter.\n\n## :lemon: OPTIONS\n\nPSXMED offers \\*some\\* configuration options for Mednafen. \n\n![demo](media/options.png)\n\nWhen you are on the main Game List, press **TAB** to focus the top bar. There select **OPTIONS** and the options window opens. The first options *(before the divider)* are direct Mednafen parameters. Checkout https://mednafen.github.io/documentation/psx.html for more on what they do. (**TIP**: *Goat is a TV-like shader, and it looks nice*). Don't forget to **SAVE** when you change things. \n\n\u003e It will write the `psx.cfg` file (in Mednafen's directory)  the main `mednafen.cfg` file remains untouched.\n\n**Wide Ratio**: You can stretch the image on the x axis a bit. This can give you an intermediate between a 4:3 ratio and a 16:9 ratio. Only applicable when in windowed mode, or fullscreen with `stretch=0`  \n\n**FullScreen Height** : The true fullscreen resolution Mednafen uses is the Desktop Resolution, but with this you can set the rendered area to be smaller/bigger. **This is only applicable** when `stretch=0` and it also applies the **wide ratio** set above. This is the only way I found to have an image that is slightly stretched on the X axis. Personally I don't like a 4:3 ratio and I find the 16:9 ratio to be too wide. So I use this in combination with a 0.5 Wide Ratio and most games look just fine.  \n\n**Window Height** : Set a custom window height for when in windowed mode. Applies the **wide ratio** set above.\n\n## :blue_book: OPTIONAL : Auto-Mounting and Launching games from Archives.\n\nThere is this tool for Windows : **Pismo File Mount** that can mount archives to virtual folders. So you can keep games in smaller sized archives, rather than raw CUE/BIN files. Also Mednafen supports loading .CUE files with encoded audio in them, so the combination of encoded audio tracks + archive reduces the file size of games by a lot.\n\n- You can get Pismo File Mount from here: http://pismotec.com/download\n\n- PSXMED can use Pismo File Mount *(it must be installed in your system)*, to automatically mount and launch games in archives ( supported : `.zip` `.pfo` `.cfs` )\n\n- I recommend `CFS` archives, they use LZMA compression, which is better than ZIP compression\n\n- I have made a TOOL to convert `.CUE` files to `.CFS` while also encoding the CDDA audio tracks to VORBIS, this is to maximize filesize savings. \n\n  - :fire: **GET IT FROM HERE** : https://github.com/john32b/cuetocfs\n\n- Example: `Rayman (1995).cfs` a game that has many audio tracks is down to just 75MB in `.cfs` format (from 500MB+) ready to be mounted and played. \n\n- **If you make your own archives**, make sure the mountable filename is the same as the `.cue` or `.m3u` that needs to be loaded inside the archive. *(This is mostly for the pushing/pulling saves feature)*\n  \n  \u003e e.g. The file `\"Game - Subtitle (PAL).zip\"` must contain `\"Game - Subtitle (PAL).cue\"`  \n  \u003e or `\"Game - Subtitle (PAL).m3u\"` \n\n## :green_book: OPTIONAL : Alternative Save Folder\n\nThis is a niche feature. You can make Mednafen store savestates/memory card saves at a different folder, and then have it copy those files to the main Mednafen save location. Kind of like a buffer.  \nIf you choose to use this feature, open the `.ini` file and set the `savedir=` key to a folder *(it will be created)*. This will make Mednafen's default save position to this new folder.  \n\nThen from the game selection you can :  \n\n* **Push Saves** : Copy the game saves from Alternative Folder to Mednafen Folder\n* **Pull Saves** : Copy the game saves from Mednafen Folder to the Alternative Folder\n* **Delete Saves** : Some deletion options\n\n**USE CASE** :  Use this to put the Save Folder on a **Ram Drive** and when you are done playing, **PUSH** the save files back to the Mednafen Folder for safe storage. Likewise, you can **PULL** saves so that they are ready to be used *(i.e. after a computer cold boot)*\n\n**Motivation for this feature** : \n\n* Writing savestates all the time can be taxing to an SSD drive especially old ones. So by saving to ramdrive it saves a 2MB write everytime, and if you are like me, you could be using this every 5 seconds. So that is around 1GB of data per hour!\n* Loading a savestate in Mednafen will also overwrite all `.MCR` files (memory card). This could accidentally lead to data loss. Also more re-writes on the SSD drive for no reason.\n* It can be faster to write the savestate on a ramdrive (*possibly*)\n\n## :warning: ​Important notice about OLD savegames \n\nThis concerns you if you already have some savegames with Mednafen!  \nPSXMED **alters** the naming template for savegames. It will read and write the `psx.cfg` file and make the changes upon application start. It will NOT DELETE any of your old saves, rather than change the filename convention of the expected filename, so your old saves will not load.\n\nThe default Mednafen save name convention for saves and states is like this : `GAME NAME.MD5.EXT`  \n *e.g.*  `Gex 3 - Deep Cover Gecko (USA).6b7f1763881380d97c7124f848c0712d.0.mcr`\n\nBut PSXMED needs the save files to be like this : `GAME NAME.EXT`   \n*e.g.*  `Gex 3 - Deep Cover Gecko (USA).0.mcr`  *(Basically the same name without the MD5 portion)* \n\n**If you want to make the old saves to work, just rename them manually**, and delete the MD5 portion.  \nLook into `mednafen/mcs` and `mednafen/sav` for saves. \n\nSorry.:man_shrugging:\n\n## :wrench: ​Building PSXMED from scratch\n\nPSXMED is programmed in HAXE, targeting NodeJS. Some general HAXE knowledge is required if you want to get your hands dirty.\n\n- **Haxe 4.1.3** https://haxe.org\n- **djNode V0.6.0** https://github.com/john32b/djNode -- *Get the tag zip file and install it with haxelib*\n- **djTui V0.2.0** https://github.com/john32b/djTui -- *Get the tag zip file and install it with haxelib*\n- **hxnodejs** `haxelib install hxnodejs`\n\nClone the repo and **use NPM** to build: `npm run build`   This should build the binary `psxlaunch.js` in the bin folder\n\n## :gem: About the Project\n\nThis app was created for personal use. But I decided to make a readme and upload to GitHub just because. **Why is this a thing?** I wanted a simple and quick way to launch Mednafen games, and automate a bunch of actions I was doing by hand. I used tools that I was already comfortable with. Also it was a nice programming practice and application of my [`djTui`](https://github.com/john32b/djTui) library  \n\n**Why NodeJS? and CLI?**  \nI like NodeJS, it's simple, fast, and it does the job. Also it snowballed from something extremely simple just to launching games to having a UI and changing Mednafen settings etc.\n\nThanks for checking this out :smile_cat:,  \nJohn.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn32b%2Fpsxmed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohn32b%2Fpsxmed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn32b%2Fpsxmed/lists"}