From e2fb6a88ae6b8dd9dcd285f94c0e126ff590e7ee Mon Sep 17 00:00:00 2001 From: Louis Pearson Date: Wed, 17 Aug 2022 19:23:19 -0600 Subject: [PATCH 1/2] Add wapm files --- README.md | 25 +++++++++++++++++++++++++ wapm.toml | 17 +++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 README.md create mode 100644 wapm.toml diff --git a/README.md b/README.md new file mode 100644 index 0000000..61c3838 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Wired + +A puzzle platformer with wires. + +## Controls + +Left/Right: Move left and right +Up/Down: Look at items above and below +X: Jump +Z: Select + +## Dependencies + +- `zig` to compile the code +- `wasm-opt` to optimize the generated wasm file for release. It is a part of `binaryen` +- `wasm4` to run the generated cart + +## Building + +``` shellsession +git clone --recursive +zig build # makes a debug build +w4 run zig-out/lib/cart.wasm +zig build opt -Drelease-small # optimize cart size for release +``` diff --git a/wapm.toml b/wapm.toml new file mode 100644 index 0000000..7d5cacc --- /dev/null +++ b/wapm.toml @@ -0,0 +1,17 @@ +[package] +name = "desttinghim/wired" +version = "0.2.0" +description = "A puzzle platformer game with wire physics." +readme = "README.md" +repository = "https://github.com/desttinghim/wired" + +[[module]] +name = "wired" +source = "zig-out/lib/cart.wasm" +abi = "wasm4" +interfaces = { wasm4 = "0.0.1" } + +[[command]] +runner = "wasm4@0.0.1" +name = "play" +module = "game" From 8348ff7c4cb88284419cccba0f77daa3c6060ae6 Mon Sep 17 00:00:00 2001 From: Louis Pearson Date: Wed, 17 Aug 2022 19:40:29 -0600 Subject: [PATCH 2/2] Get wapm working --- .gitignore | 2 ++ README.md | 8 ++++---- wapm.toml | 5 +++-- wired.wasm | Bin 0 -> 26687 bytes 4 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 wired.wasm diff --git a/.gitignore b/.gitignore index 6b457db..339043a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /zig-out /src/zig-cache/ /bundle/ + +wapm_packages \ No newline at end of file diff --git a/README.md b/README.md index 61c3838..3882750 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ A puzzle platformer with wires. ## Controls -Left/Right: Move left and right -Up/Down: Look at items above and below -X: Jump -Z: Select +- Left/Right: Move left and right +- Up/Down: Look at items above and below +- X: Jump +- Z: Select ## Dependencies diff --git a/wapm.toml b/wapm.toml index 7d5cacc..715e083 100644 --- a/wapm.toml +++ b/wapm.toml @@ -4,14 +4,15 @@ version = "0.2.0" description = "A puzzle platformer game with wire physics." readme = "README.md" repository = "https://github.com/desttinghim/wired" +license = "ISC" [[module]] name = "wired" -source = "zig-out/lib/cart.wasm" +source = "wired.wasm" abi = "wasm4" interfaces = { wasm4 = "0.0.1" } [[command]] runner = "wasm4@0.0.1" name = "play" -module = "game" +module = "wired" diff --git a/wired.wasm b/wired.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ea5dfe77068c0377c2b65455a7ece416d8d97bfa GIT binary patch literal 26687 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