{"id":50719048,"url":"https://github.com/dmang-dev/pspdev-win","last_synced_at":"2026-06-09T22:01:14.843Z","repository":{"id":358186597,"uuid":"1239372358","full_name":"dmang-dev/pspdev-win","owner":"dmang-dev","description":"Build the pspdev PSP homebrew toolchain natively on Windows under MSYS2 - one PowerShell command from clean Windows to a working psp-gcc.","archived":false,"fork":false,"pushed_at":"2026-06-09T07:09:59.000Z","size":83,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T09:13:25.746Z","etag":null,"topics":["cross-compiler","gcc","homebrew","mips","msys2","playstation-portable","psp","pspdev","toolchain","windows"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmang-dev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T03:08:01.000Z","updated_at":"2026-05-19T08:16:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dmang-dev/pspdev-win","commit_stats":null,"previous_names":["dmang-dev/pspdev-win"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmang-dev/pspdev-win","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmang-dev%2Fpspdev-win","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmang-dev%2Fpspdev-win/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmang-dev%2Fpspdev-win/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmang-dev%2Fpspdev-win/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmang-dev","download_url":"https://codeload.github.com/dmang-dev/pspdev-win/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmang-dev%2Fpspdev-win/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34127345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cross-compiler","gcc","homebrew","mips","msys2","playstation-portable","psp","pspdev","toolchain","windows"],"created_at":"2026-06-09T22:01:14.292Z","updated_at":"2026-06-09T22:01:14.823Z","avatar_url":"https://github.com/dmang-dev.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pspdev-win\n\n[![Latest release](https://img.shields.io/github/v/release/dmang-dev/pspdev-win?label=release)](https://github.com/dmang-dev/pspdev-win/releases/latest)\n[![Toolchain](https://img.shields.io/badge/psp--gcc-15.2.0-blue)](https://github.com/dmang-dev/pspdev-win/releases/tag/v1)\n[![Libraries](https://img.shields.io/badge/Tier_1_libs-16_included-success)](https://github.com/dmang-dev/pspdev-win/releases/tag/libs-v1)\n\nPSP homebrew toolchain for **Windows**, native MSYS2-hosted — no WSL, no\nDocker, no Linux VM. `psp-gcc 15.2.0` (C + C++), the full pspsdk, all the\nstandard host tools (`psp-prxgen`, `pack-pbp`, `mksfoex`, …), `psp-pacman`,\nand 16 Tier 1 libraries (SDL2, freetype, libpng, …) — packaged as a\n**122 MB prebuilt zip**.\n\n---\n\n## Install in 5 minutes\n\n### 1. Install MSYS2\n\nDownload from \u003chttps://www.msys2.org\u003e and install to `C:\\msys64` (the default).\nThe toolchain produces Cygwin-hosted binaries that depend on `msys-2.0.dll`\nat runtime; nothing else from MSYS2 is needed.\n\n\u003e Already have MSYS2 somewhere else? Just substitute its path everywhere\n\u003e you see `C:\\msys64` below.\n\n### 2. Download and extract the toolchain\n\n```powershell\nInvoke-WebRequest `\n  -Uri https://github.com/dmang-dev/pspdev-win/releases/download/v1/pspdev-win-15.2.0-v1.zip `\n  -OutFile pspdev-win.zip\nExpand-Archive pspdev-win.zip -DestinationPath C:\\pspdev\n```\n\nThat's the toolchain (`psp-gcc`, pspsdk, 30+ host tools) **plus** all 16 Tier 1\nlibraries — one download, one extract.\n\n### 3. Add to PATH\n\n**Permanent (recommended):**\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"PSPDEV\", \"C:\\pspdev\", \"User\")\n$existing = [Environment]::GetEnvironmentVariable(\"Path\", \"User\")\n[Environment]::SetEnvironmentVariable(\n  \"Path\", \"C:\\pspdev\\bin;C:\\msys64\\usr\\bin;$existing\", \"User\"\n)\n# Restart your shell after this.\n```\n\n**Just this shell:**\n\n```powershell\n$env:PSPDEV = \"C:\\pspdev\"\n$env:Path = \"$env:PSPDEV\\bin;C:\\msys64\\usr\\bin;$env:Path\"\n```\n\n### 4. Verify\n\n```powershell\npsp-gcc --version\n# psp-gcc (GCC) 15.2.0\n```\n\n### 5. Compile hello world\n\nSave these two files into an empty directory:\n\n```c\n// hello.c\n#include \u003cpspkernel.h\u003e\n#include \u003cpspdebug.h\u003e\n\nPSP_MODULE_INFO(\"hello\", 0, 1, 0);\nPSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);\n\nint main(void) {\n    pspDebugScreenInit();\n    pspDebugScreenPrintf(\"Hello from a Windows-built PSP binary.\\n\");\n    sceKernelSleepThread();\n    return 0;\n}\n```\n\n```makefile\n# Makefile\nTARGET   = hello\nOBJS     = hello.o\nCFLAGS   = -O2 -G0 -Wall\nLIBS     = -lpspdebug -lpspdisplay -lpspge -lpspctrl\n\nEXTRA_TARGETS   = EBOOT.PBP\nPSP_EBOOT_TITLE = Hello\n\nPSPSDK = $(shell psp-config --pspsdk-path)\ninclude $(PSPSDK)/lib/build.mak\n```\n\nBuild it from an MSYS2 shell (or any shell with the PATH set above):\n\n```bash\nmake\n# psp-gcc ... -c -o hello.o hello.c\n# psp-gcc ... -o hello.elf hello.o ...\n# psp-fixup-imports hello.elf\n# mksfoex -d MEMSIZE=1 'Hello' PARAM.SFO\n# psp-strip hello.elf -o hello_strip.elf\n# pack-pbp EBOOT.PBP PARAM.SFO ...\n```\n\nYou now have **`EBOOT.PBP`** — drop it on a memory stick at\n`/PSP/GAME/hello/EBOOT.PBP` and launch from the XMB, or open it in\n[PPSSPP](https://www.ppsspp.org/) to test on desktop.\n\n\u003e **Real-world examples** built with this exact toolchain:\n\u003e [hash-bench-psp](https://github.com/dmang-dev/hash-bench-psp) (32-algorithm\n\u003e crypto benchmark),\n\u003e [totp-psp](https://github.com/dmang-dev/totp-psp) (RFC 6238 TOTP\n\u003e authenticator),\n\u003e [btc-miner-psp](https://github.com/dmang-dev/btc-miner-psp) (Bitcoin\n\u003e Stratum-v1 pool miner with TLS).\n\n---\n\n## Releases\n\n| Release | Size | What's in it |\n|---|---:|---|\n| **[`v1`](https://github.com/dmang-dev/pspdev-win/releases/tag/v1)** *(recommended)* | 122 MB | Toolchain + 16 Tier 1 libraries (everything you need) |\n| [`libs-v1`](https://github.com/dmang-dev/pspdev-win/releases/tag/libs-v1) | 8.9 MB | Just the 16 libraries (overlay on top of an existing pspdev install) |\n\n`v1` is what 90 % of users want. `libs-v1` exists for the case where you already\nhave a working pspdev install (Linux, macOS, WSL, or a previous Windows build)\nand just need the prebuilt libraries.\n\n---\n\n## Status — verified working\n\nBuilt and verified end-to-end on standalone MSYS2 (`MSYS_NT-10.0`, GCC 15.2.0\nhost — both locally on `C:\\msys64` and in CI via `msys2/setup-msys2@v2`).\n`psp-gcc` compiles and links a real `ELF32 / MIPS R3000` PSP executable.\n\n| Component | State | Notes |\n|---|---|---|\n| `prepare.sh` (host deps) | ✅ builds | MSYS2/MINGW/UCRT detection + `pacman` install list |\n| `psptoolchain-allegrex` — binutils, gcc (C + C++), newlib, pthread-embedded | ✅ builds \u0026 installs | the cross compiler; ~30–90 min |\n| `psptoolchain-extra` — `psp-pkg-config`, `psp-cmake` | ✅ builds \u0026 installs | wrapper tools into `$PSPDEV/bin` |\n| `pspsdk` | ✅ builds \u0026 installs | all `libpsp*.a`, headers, samples, host tools (`psp-prxgen`, `pack-pbp`, `mksfoex`, …) |\n| `psplinkusb` — `libpsplink`, `psplink_boot.prx` | ✅ builds \u0026 installs | the on-PSP debug stub |\n| `ebootsigner` | ✅ builds \u0026 installs | EBOOT signing tool |\n| `psp-pacman` | ✅ builds, installs, syncs, installs packages | verified `psp-pacman -S sdl2` end-to-end on vanilla MSYS2 |\n| `psp-packages` | ✅ via `psp-pacman -S` *or* bundle | bundle (`tools/build-library-bundle.sh`, see [LIBRARIES.md](LIBRARIES.md)) is recommended for end users; `psp-pacman -S` is fine for dev iteration |\n| `psplinkusb` — `pspsh`, `usbhostfs_pc` | ⏭️ skipped | USB host-link debug tools — see [Roadmap](#whats-skipped-and-why) |\n\nThe result is a complete PSP homebrew toolchain: C and C++ cross-compiler,\nnewlib, libstdc++, the full pspsdk, and the standard host build tools — enough\nto build essentially any PSP homebrew that doesn't depend on the prebuilt\n`psp-packages` binaries or USB host-link debugging.\n\n\u003e [!IMPORTANT]\n\u003e **This is an MSYS2-hosted toolchain — the same architecture native PSP dev\n\u003e on Windows has always used.** The produced `psp-gcc.exe` \u0026 friends are\n\u003e `x86_64-pc-cygwin` binaries that depend on `msys-2.0.dll`; they run from\n\u003e any shell with both `\u003cPSPDEV\u003e\\bin` **and** the MSYS2 `usr\\bin` on `PATH`.\n\u003e Michael Grigorev / NVStat Team's **PSPDEV for Windows** shipped this same\n\u003e Cygwin-hosted approach from 2008–2016 (with GCC 4.3.2); we're just doing\n\u003e it again with GCC 15.2.0. A fully self-contained MINGW-hosted build, if\n\u003e anyone ever wants one, would be a separate effort.\n\n---\n\n## Build from source\n\n\u003e **Most users don't need this.** The [`v1` release](https://github.com/dmang-dev/pspdev-win/releases/tag/v1)\n\u003e is byte-identical to what this section produces, just without the 30-90\n\u003e minute wait. Use the build-from-source path when you want a different\n\u003e psp-gcc version, are hacking on the pspdev fork itself, or want to\n\u003e verify reproducibility.\n\n### Requirements\n\n- **Windows 10/11 x64**\n- **Standalone MSYS2** from \u003chttps://www.msys2.org/\u003e (extract\n  `msys2-base-x86_64-*.tar.xz` to `C:\\`, or run the installer). Default\n  location is `C:\\msys64`.\n- **Git** (Git for Windows is fine — the project clones itself with this)\n- **~5 GB** free disk for the build\n\n`bootstrap-windows.ps1` auto-detects MSYS2 at `C:\\msys64` or `C:\\msys2`.\nOverride with `-Msys2Root \u003cpath\u003e` if installed elsewhere (e.g. on a\nnon-C: drive).\n\n\u003e [!NOTE]\n\u003e **Why not devkitPro's bundled MSYS2?** Older versions of this README\n\u003e listed devkitPro's MSYS2 at `C:\\devkitPro\\msys2` as an option. It's not\n\u003e supported anymore — devkitPro ships a filtered MSYS2 package namespace\n\u003e (missing `libusb`, `libgpgme`, and others we need), its `ensurepip` is\n\u003e broken, and its `/opt/devkitpro/` path layout caused subtle issues\n\u003e during local builds. Standalone MSYS2 is the single supported path.\n\u003e Installing standalone MSYS2 alongside an existing devkitPro install\n\u003e works fine — they don't conflict.\n\n### Run the bootstrap\n\n```powershell\ngit clone https://github.com/dmang-dev/pspdev-win.git\ncd pspdev-win\n\n# 1. Install host build dependencies first (fast — fail early on package issues)\n.\\bootstrap-windows.ps1 -PrepareOnly\n\n# 2. Full build (30-90 min: binutils -\u003e gcc -\u003e newlib -\u003e gcc stage 2 -\u003e pspsdk -\u003e ...)\n.\\bootstrap-windows.ps1\n```\n\nThe bootstrap script clones the patched pspdev fork\n([`dmang-dev/pspdev`](https://github.com/dmang-dev/pspdev), `windows-port`\nbranch) into `pspdev/` next to itself, then drives the build inside MSYS2.\nThe toolchain installs to `.\\install` by default — point `PSPDEV` and PATH\nat that directory the same way the install section above describes (just\nsubstitute `$PWD\\install` for `C:\\pspdev`).\n\n### Options\n\n| Flag | Effect |\n|---|---|\n| `-PrepareOnly` | Run only `prepare.sh` (install host deps) and stop. |\n| `-Resume` | Skip the expensive core toolchain rebuild; resume from `psptoolchain-extra` onward. Use after a full build got the cross compiler installed but failed in a later stage. |\n| `-PspDev \u003cpath\u003e` | Install location. Absolute, **no spaces, Latin chars only** (pspdev's own constraint). Default: `.\\install`. |\n| `-Msys2Root \u003cpath\u003e` | Override MSYS2 auto-detection. |\n| `-LocalPackageBuild` | Build `psp-packages` from source instead of skipping it (slow, fragile, see roadmap). |\n\nThe exact same script runs in CI via the\n[`Build release bundles`](.github/workflows/build-libraries.yml) workflow,\nwhich produces both the toolchain+libs zip and the libraries-only zip and\nattaches them to a unified `vN` release. Trigger it from the Actions tab\nwhen you want to cut a new release.\n\n---\n\n## What's partial / skipped\n\n### `psp-pacman` — fully working on Windows\n\nUpstream pacman's `meson.build` does\n`mkdir -p \"$DESTDIR/\u003cabs-path\u003e\"` in its install step. When `DESTDIR` is\nempty (the typical case), MSYS2 sees `//\u003cabs-path\u003e` and interprets the\nleading `//` as a UNC share prefix, failing with\n`cannot create directory '//i': Read-only file system`. Linux's `mkdir`\ntreats `//` like `/` so the bug never surfaces there. The `windows-port`\nbranch of our pspdev fork ships a one-character patch\n(`patches/psp-pacman/fix-destdir-double-slash.patch`) that drops the slash\nbetween `$DESTDIR` and the absolute path — the standard Autotools\n`$(DESTDIR)$(prefix)` pattern, identical on Linux/macOS, correct on MSYS2.\n\nThe fork also installs `libgpgme-devel` and `libcurl-devel` via\n`prepare.sh`. Without these, pacman is built with `HAVE_LIBCURL` and\n`HAVE_LIBGPGME` both `#undef`'d, which makes `pacman -Sy` fail with\n`error invoking external downloader` (no libcurl → libalpm has no\ninternal HTTP path) and the default `pacman.conf` rejected because\n`SigLevel = Optional TrustAll` is invalid without compiled-in signature\nsupport.\n\n**Verified end-to-end on standalone MSYS2**:\n\n```\npsp-pacman -Sy            -\u003e syncs https://pspdev.github.io/psp-packages/pspdev.db\npsp-pacman -Ss sdl2       -\u003e lists sdl2, sdl2-image, sdl2-mixer, sdl2-ttf, ...\npsp-pacman -S sdl2        -\u003e downloads + installs sdl2 + pspgl + libpspvram (~1.2 MiB)\npsp-pacman -Q             -\u003e sdl2 2.32.8-3, pspgl r12-6, libpspvram r11.885fd3f-5\n```\n\n`libSDL2.a`, `libGL.a`, headers land in `$PSPDEV/psp/{lib,include}/`.\n\nOne minor cosmetic follow-up: pacman's `Hook Dirs` listing duplicates the\nprefix at runtime (`$PSPDEV/$PSPDEV/share/libalpm/hooks/`). This is a\n`RootDir`-vs-`HookDir` interaction in pacman when prefix isn't the system\nroot. Doesn't block `-S` (the unduplicated path is also in the list); a\ncleaner fix is a future patch.\n\nFor shipping libraries **to users**, this repo still defaults to a\n**single prebuilt bundle** (`tools/build-library-bundle.sh`, see\n[LIBRARIES.md](LIBRARIES.md)) rather than asking users to run\n`psp-pacman -S` themselves. The bundle path is simpler (one zip extracted\nover `$PSPDEV`, done) and matches the historical MinPSPW model. But for\ndevelopers iterating on the toolchain, `psp-pacman -S \u003cpkg\u003e` now works as\na real alternative.\n\n### `pspsh` + `usbhostfs_pc` — USB host-link debugging\n\nThe PSPLink PC-side tools: `usbhostfs_pc` shares a PC folder to the PSP over\nUSB; `pspsh` is a shell to load/run/debug homebrew on real hardware with\nhost-side `printf` output.\n\n- **You lose:** the fast USB hardware debug loop.\n- **You keep:** building homebrew; `libpsplink` + `psplink_boot.prx` (the\n  *on-PSP* side) do build; and **PPSSPP** — how most PSP homebrew is tested\n  today — needs none of this.\n- **Fixable.** These were originally skipped because we hit them while\n  testing on devkitPro's filtered MSYS2 (which doesn't ship `libusb`).\n  Standalone MSYS2 *does* ship `libusb` — `pacman -S libusb` plus\n  flipping our skip in `004-psplinkusb-extra.sh` is the obvious starting\n  point. PSPDEV for Windows bundled `libusb-win32` for years, so this\n  isn't novel territory; open follow-up.\n\n---\n\n## How the port works\n\nAll Windows-specific changes live on the **`windows-port`** branch of the\n[`dmang-dev/pspdev`](https://github.com/dmang-dev/pspdev/tree/windows-port)\nfork. Every change is gated behind OS detection, so it does not affect Linux\nor macOS builds. The diff against upstream is small:\n\n| File | Change |\n|---|---|\n| `prepare.sh` | Detect `MSYS_NT*` / `MINGW*` / `UCRT64*`; install host deps via `pacman` (correct package names, `--overwrite` for the autoconf `.info` conflict, `python3`/`pip3` symlink fallback, `libgpg-error-devel`, `libgpgme-devel`, `libcurl-devel`). |\n| `scripts/001-psptoolchain.sh` | On Windows, build the allegrex toolchain; clone `psp-pacman` directly, inject our destdir patch, run `pacman.sh`; then build `psptoolchain-extra` steps 2+3 (pkg-config + cmake). |\n| `patches/psp-pacman/fix-destdir-double-slash.patch` | One-character meson.build patch that fixes the `$DESTDIR/\u003cabs\u003e` → `//\u003cabs\u003e` UNC bug breaking `ninja install` on MSYS2. |\n| `scripts/004-psplinkusb-extra.sh` | Widen the host-tools skip from `MINGW*` only to `MINGW*` / `MSYS_*` / `UCRT64*` (upstream's check missed the MSYS shell's `uname`). |\n| `scripts/003-psp-packages.sh` | Cleanly skip on MSYS2 with a clear message; `-LocalPackageBuild` escape hatch preserved. |\n| `depends/check-dependencies.sh` | Skip the `gpgme-tool` check on MSYS2 (not packaged there; only used by the skipped `psp-pacman`). |\n\nThis repo (`pspdev-win`) is just the **Windows entry point**:\n\n- `bootstrap-windows.ps1` — PowerShell launcher: finds MSYS2, clones the fork,\n  hands off to bash.\n- `build-msys2.sh` — the MSYS2-side driver: normalizes line endings, runs\n  `prepare.sh`, then `build-all.sh` (or the resume path).\n\n---\n\n## Troubleshooting\n\n### Installing the prebuilt release\n\n- **`psp-gcc: command not found`** — `C:\\pspdev\\bin` isn't on PATH. Re-run\n  step 3 in [Install](#install-in-5-minutes), and if you used the permanent\n  variant, restart your shell so the new PATH is picked up.\n- **`msys-2.0.dll was not found`** — MSYS2 isn't installed, or `C:\\msys64\\usr\\bin`\n  isn't on PATH. The toolchain produces Cygwin-hosted binaries; they need the\n  MSYS2 runtime DLL even though they don't use anything else from MSYS2.\n- **Different MSYS2 location** — if you installed MSYS2 to `C:\\msys2` or\n  another drive, substitute that path everywhere `C:\\msys64` appears in the\n  install instructions.\n- **`make: command not found`** when building hello world — `make` is from\n  MSYS2's `usr/bin`; same PATH fix as `msys-2.0.dll` above.\n\n### Building from source\n\n- **`bash\\r: command not found` / `\\r` errors** — CRLF line endings. The\n  driver auto-normalizes the `pspdev/` clone, but not the sub-clones the build\n  downloads itself. If it bites, inside MSYS2:\n  `find pspdev/build -name '*.sh' -print0 | xargs -0 sed -i 's/\\r$//'`\n- **A late stage failed but the cross compiler is already built** — re-run with\n  `-Resume` to skip the ~30–90 min toolchain rebuild.\n- **`pacman` file conflict on `autoconf` / `automake`** — handled\n  automatically (`--overwrite='/usr/share/info/*'`); if you see it, your MSYS2\n  is mid-upgrade — run `pacman -Syu` once and retry.\n- **A clean rebuild** — delete `install/` and `pspdev/build/`, then re-run\n  `.\\bootstrap-windows.ps1`. Everything is reproducible from scratch.\n\n---\n\n## Credits\n\n- [**pspdev**](https://github.com/pspdev/pspdev) and the PSP Homebrew\n  Development team — the actual toolchain. This project is a thin Windows\n  enablement layer on top of their work.\n- [**MSYS2**](https://www.msys2.org/) — the POSIX build environment that\n  makes this possible.\n\n### Prior art\n\n**PSPDEV for Windows** (a.k.a. Minimalist PSPSDK / MinPSPW) by\n**Michael Grigorev / NVStat Team** — the Cygwin-hosted Windows port of\nPSPSDK that served the community from ~2008 to 2016, bundling GCC 4.3.2,\nPSPSDK build 2443, and ~30 prebuilt PSP libraries (SDL, SDL_mixer, SDL_ttf,\nfreetype, libpng, libvorbis, lua, ode, TinyGL, …) in a single installer.\nThat project established the architecture this repo uses today: a\nCygwin/MSYS-hosted toolchain with libraries delivered as one prebuilt set,\nnot via a package manager. Site:\n\u003chttp://novell.chel.ru/start.php?dir=plugin/psp/dev\u0026app=sdk\u0026lng=english\u003e\n(intermittently available).\n\n## License\n\nMIT — see [LICENSE](LICENSE). The patched files on the `windows-port` branch\nof the fork remain under upstream pspdev's MIT license; this wrapper repo is\nMIT as well, so the whole thing is consistently MIT and friction-free to\nupstream.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmang-dev%2Fpspdev-win","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmang-dev%2Fpspdev-win","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmang-dev%2Fpspdev-win/lists"}