{"id":13571910,"url":"https://github.com/aduros/wasm4","last_synced_at":"2025-10-07T00:14:38.621Z","repository":{"id":37992193,"uuid":"393196822","full_name":"aduros/wasm4","owner":"aduros","description":"Build retro games using WebAssembly for a fantasy console.","archived":false,"fork":false,"pushed_at":"2025-02-11T18:43:38.000Z","size":5755,"stargazers_count":1306,"open_issues_count":117,"forks_count":181,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-03T08:03:45.474Z","etag":null,"topics":["2d-game-engine","assemblyscript","d","dlang","emscripten","fantasy-computer","fantasy-console","game-development","gamedev","go","golang","nelua","nim","odin","retrogaming","rust","typescript","wasm","webassembly","zig"],"latest_commit_sha":null,"homepage":"https://wasm4.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aduros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2021-08-05T23:48:23.000Z","updated_at":"2025-04-02T13:06:03.000Z","dependencies_parsed_at":"2023-12-29T23:27:35.403Z","dependency_job_id":"580b9e99-67fb-4c99-ad89-dd44d3bbc83c","html_url":"https://github.com/aduros/wasm4","commit_stats":{"total_commits":1338,"total_committers":129,"mean_commits":"10.372093023255815","dds":0.6113602391629298,"last_synced_commit":"888905fb4a744c905785877ef894c91cd49b4aa5"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduros%2Fwasm4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduros%2Fwasm4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduros%2Fwasm4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduros%2Fwasm4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aduros","download_url":"https://codeload.github.com/aduros/wasm4/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225487,"owners_count":21068078,"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":["2d-game-engine","assemblyscript","d","dlang","emscripten","fantasy-computer","fantasy-console","game-development","gamedev","go","golang","nelua","nim","odin","retrogaming","rust","typescript","wasm","webassembly","zig"],"created_at":"2024-08-01T14:01:08.215Z","updated_at":"2025-10-07T00:14:38.540Z","avatar_url":"https://github.com/aduros.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://wasm4.org\"\u003e\u003cimg src=\"https://wasm4.org/img/logo.svg\" alt=\"WASM-4 Logo\" width=\"200\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  WASM-4\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eBuild retro games using WebAssembly for a fantasy console\u003c/h3\u003e\n\n\u003ch4 align=\"center\"\u003e\n  \u003ca href=\"https://wasm4.org\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://wasm4.org/play\"\u003eShowcase\u003c/a\u003e •\n  \u003ca href=\"https://wasm4.org/docs\"\u003eDocs\u003c/a\u003e •\n  \u003ca href=\"https://github.com/aduros/wasm4/discussions\"\u003eDiscussions\u003c/a\u003e\n\u003c/h4\u003e\n\n## About\n\n**WASM-4** is a low-level fantasy game console for building small games with WebAssembly. Game\ncartridges (ROMs) are small, self-contained `.wasm` files that can be built with any programming\nlanguage that compiles to WebAssembly.\n\n## Key Features\n\n* **No Glue Code**: If you've ever tried to write even a simple \"Hello World\"\n  with WebAssembly before, you'll know it usually involves writing a bunch of\n  JS and HTML glue. WASM-4 removes all of that, games interface directly with\n  the system through a small API.\n\n* **Minimalist**: Fantasy consoles force developers to work with limited resources.\n  This makes them simple to learn, and easier to focus on finishing your game.\n\n* **Language Agnostic**: Use any programming language, as long as it can compile to WebAssembly. Out\n  of the box we currently support: AssemblyScript, C/C++, D, Go, Nelua, Nim, Odin, Rust, WAT, and\n  Zig.\n\n* **Portable**: WASM-4 is designed to run on any device that can execute WebAssembly, even outside\n  of the web! It includes a lightweight runtime written in C that runs even [low-powered microcontrollers](https://twitter.com/alvaroviebrantz/status/1518343016011943939)\n  and [obsolete hardware](https://twitter.com/wasm4_org/status/1483140582943956992).\n\n* **Netplay**: Instant online multiplayer, featuring rollback netcode. All games that support local\n  multiplayer automatically support netplay. WASM-4 handles syncing controller inputs over the\n  Internet.\n\n## 🚀 60 Second Quickstart\n\n```shell\n# Install the w4 command\nnpm install -g wasm4\n\n# Create a project\nw4 new --assemblyscript hello-world\n\n# Setup toolchain\ncd hello-world\nnpm install\n\n# Build and run your game!\nnpm run build\nw4 run build/cart.wasm\n```\n\nFor more info and guides, check the [full documentation](https://wasm4.org/docs).\n\n## 🎮 Hardware Specs\n\n- Display: 160x160 pixels, 4 customizable colors, updated at 60 Hz.\n- Memory: 64 KB linear RAM, memory-mapped I/O, save states.\n- Cartridge Size Limit: 64 KB.\n- Input: Keyboard, mouse, touchscreen, up to 4 gamepads.\n- Audio: 2 pulse wave channels, 1 triangle wave channel, 1 noise channel.\n- Disk Storage: 1024 bytes.\n\n## 🙏 Contributing\n\nContributions are welcome! Here are just a few ways to help:\n\n- **Build a game or experiment, we'll feature it on wasm4.org!**\n- Improve our documentation or write a tutorial.\n- Submit a bug report or feature request on Github.\n- Answer questions on the discussions forum.\n- Implement support for a new tool or language.\n- Give the project a star on Github for visibility.\n","funding_links":[],"categories":["TypeScript","Libraries","zig"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faduros%2Fwasm4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faduros%2Fwasm4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faduros%2Fwasm4/lists"}