{"id":15197129,"url":"https://github.com/prodeveloper0/pyudpbd","last_synced_at":"2026-03-04T21:03:03.951Z","repository":{"id":240417808,"uuid":"802575756","full_name":"prodeveloper0/pyudpbd","owner":"prodeveloper0","description":"UDPBD server implemented by Python","archived":false,"fork":false,"pushed_at":"2024-05-19T08:14:35.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T08:11:58.898Z","etag":null,"topics":["open-ps2-loader","opl","ps2","python","raspberrypi","udpbd"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prodeveloper0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-05-18T17:22:35.000Z","updated_at":"2024-05-19T08:14:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a6d5634-2c53-44a5-b53a-e6047d855358","html_url":"https://github.com/prodeveloper0/pyudpbd","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"75e423830faddadac3713ea80b9e700ee9cf757d"},"previous_names":["prodeveloper0/pyudpbd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodeveloper0%2Fpyudpbd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodeveloper0%2Fpyudpbd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodeveloper0%2Fpyudpbd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodeveloper0%2Fpyudpbd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prodeveloper0","download_url":"https://codeload.github.com/prodeveloper0/pyudpbd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241570920,"owners_count":19984002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["open-ps2-loader","opl","ps2","python","raspberrypi","udpbd"],"created_at":"2024-09-28T00:42:59.492Z","updated_at":"2025-11-28T21:05:15.545Z","avatar_url":"https://github.com/prodeveloper0.png","language":"Python","readme":"# PyUDPBD Server\n\nPython implementation of the UDP-based block device server for the PlayStation 2 with utility scripts make easy to use.\n\n**UDPBD** is developed by [@rickgaiser](https://github.com/rickgaiser)\n\n\n## Requirements\n* Python 3.10 or higher\n* Network connection (recommended direct connection to the PS2)\n* Open PS2 Loader supporting **UDPBD** (v1.2.0 beta 1973 built by @El_isra)\n\n## Usages\n### Standalone\n\n---\nJust type scripts with arguments\n```shell\nsudo python3 server.py --path \u003c\u003cpath\u003e\u003e\n```\nPath can be used with block device or mount point\n\nYou can block writing with `--read-only` option\n```shell\nsudo python3 server.py --path \u003c\u003cpath\u003e\u003e --read-only\n```\n\n### With monitor\n\n---\n**PyUDPBD** provides block device monitor to run the server automatically\n\n```shell\nsudo python3 monitor.py --path \u003c\u003cpath\u003e\u003e --period \u003c\u003cperiod:10\u003e\u003e --flag \u003c\u003cflag:pyudpbd\u003e\u003e\n```\n\nthe monitor will find a flag file each block devices periodically and run the server with the path of the block device first of iteration\n\nIt is useful with SBC (like Raspberry Pi) to serve block device you plugged in\n\n#### PM2 integration with monitor\nPM2 is a process manager for Node.js applications, but it can run Python scripts as well and good for running the monitor when server is started\n\n```shell\nsudo pm2 start monitor.py --interpreter python3 --name pyudpbd-monitor\nsudo pm2 save\nsudo pm2 startup\n```\n⚠️ **PM2** must be started with `sudo` to run the monitor with root permission required to access block devices. ⚠️ \n\n## Limitations\n* Unstable game playing with router connection (may need to change the protocol to send reading **ACK**)\n\n  **Highly recommended to use direct connection to the PS2**\n\n## TODO\n- [ ] Support block device caching\n- [ ] Support multiple clients (required to change both side of server and driver)\n- [ ] Sending reading ACK (required to change both side of server and driver)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprodeveloper0%2Fpyudpbd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprodeveloper0%2Fpyudpbd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprodeveloper0%2Fpyudpbd/lists"}