{"id":43296589,"url":"https://github.com/pspdev/vfpu-docs","last_synced_at":"2026-02-01T19:09:33.916Z","repository":{"id":152939353,"uuid":"613972859","full_name":"pspdev/vfpu-docs","owner":"pspdev","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-25T23:33:50.000Z","size":641,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-26T00:27:15.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pspdev.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":"2023-03-14T16:27:24.000Z","updated_at":"2025-05-25T23:33:53.000Z","dependencies_parsed_at":"2024-01-15T00:06:50.870Z","dependency_job_id":null,"html_url":"https://github.com/pspdev/vfpu-docs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pspdev/vfpu-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspdev%2Fvfpu-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspdev%2Fvfpu-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspdev%2Fvfpu-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspdev%2Fvfpu-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pspdev","download_url":"https://codeload.github.com/pspdev/vfpu-docs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pspdev%2Fvfpu-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28986752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T18:17:03.387Z","status":"ssl_error","status_checked_at":"2026-02-01T18:16:57.287Z","response_time":56,"last_error":"SSL_read: 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":[],"created_at":"2026-02-01T19:09:33.405Z","updated_at":"2026-02-01T19:09:33.910Z","avatar_url":"https://github.com/pspdev.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nPSP VFPU documentation\n======================\n\nThis is an attempt to a full VFPU documentation for Sony's MIPS Allegrex CPU,\nthe main CPU of Sony's PSP.\n\nLatest docs revision can be found here:\n\n  - [HTML format](https://pspdev.github.io/vfpu-docs/)\n  - [PDF format](https://pspdev.github.io/vfpu-docs/docs.pdf)\n\nCurrent documentation is incomplete, scattered all over the internet (in some\nforums, personal websites, github repos and projects, etc) and, in many cases,\ncontradictory. As opposed to other devices (like the PS2 console) Sony did not\nrelease any public documentation (nor SDK/toolchain) for the Sony PSP. For\nthis reason we've attempted to collect all these documents and distil a usable\nset of documents that can be used by coders, hombrew devs, and anyone\ninterested in writing VFPU assembly.\n\nSince there's some gaps in knowledge as well as contradictions, this\ndocumentation is designed so that it can be verified. All instructions are\ndescribed in `inst-vfpu-desc.yaml`: encoding, operands, valid prefixes,\nprecision, register collisions and, most importantly, functional description.\nFor each of these statements there's a test that can be executed on a PSP\ndevice to validate it. Some tests are manually crafted whereas the majority are\nautogenerated from the YAML description. Major tests exist for:\n\n  - Functional description (pseudo C code)\n  - Prefix compatibility\n  - Register overlap restrictions\n  - Calculation accuracy\n  - Performance (throughput and latency)\n\nWith these tests in place, we can be reasonably sure of the statements\ndescribed in the docs. For convenience and consistency we also generate most\nof the actual documentation from this YAML description, so that any change in\nthe formal description is reflected both in the human-readable docs and the\ntests.\n\nThe main assets created by this repo are the tests (which are mostly for\ninternal consumption) and the documentation itself, in HTML and PDF format.\n\n\nBuilding docs and tests\n-----------------------\n\nYou can generate the docs in HTML and PDF format by running `make docs`. This\nrequires `weasyprint` as well as a few python modules such as `mako`, `pyyaml`,\n`markdown` and `tatsu`.\n\nTo build the tests a recent [PSP toolchain](https://github.com/pspdev/pspdev)\nis required. You will need to follow the SDK instructions (that is, set PSPDEV\nand PATH environment variables before running any make rules). You can just\nrun `make psptests` to get EBOOT.PBP binaries (or, as usual, run\n`make psptests BUILD_PRX=1` to get .prx modules). We recommend running build\nparallel (`-jN`) since tests are pretty big and take a while to build.\n\nSome tests are autogenerated (but also checked-in in the repo), you might\nre-generate them (ie. if you want to update the instruction description) by\nrunning `make tests`. It is recommended to install `clang-format` to produce\nreadable test files. Tests are generally deterministic to avoid random data\nchanging on every build.\n\n\nLicensing clarification\n-----------------------\n\nAll sources and documentation are placed under the GPL 3 license unless\nexplicitely indicated in the file header. If there's any issue or you would\nlike to use certain parts in your project but have some licensing issues,\nfeel free to reach out to the original author(s) and contributor(s).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpspdev%2Fvfpu-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpspdev%2Fvfpu-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpspdev%2Fvfpu-docs/lists"}