From daf2a02cd89ad490c78299b11b02190c82c46788 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Mon, 23 Jan 2023 23:21:45 +0100 Subject: [PATCH] fix sndGes name & add missing auto-import --- examples/include/microw8-api.cwa | 1 + examples/include/microw8-api.wat | 1 + platform/Cargo.lock | 2 +- platform/bin/loader.wasm | Bin 1262 -> 1269 bytes platform/bin/platform.uw8 | Bin 3887 -> 3887 bytes platform/src/ges.cwa | 2 +- src/run-web.html | 2 +- src/run_native.rs | 2 +- uw8-tool/src/base_module.rs | 1 + web/src/audiolet.js | 2 +- 10 files changed, 8 insertions(+), 5 deletions(-) diff --git a/examples/include/microw8-api.cwa b/examples/include/microw8-api.cwa index ff74ebb..c537642 100644 --- a/examples/include/microw8-api.cwa +++ b/examples/include/microw8-api.cwa @@ -34,6 +34,7 @@ import "env.rectangle_outline" fn rectangle_outline(f32, f32, f32, f32, i32); import "env.circle_outline" fn circle_outline(f32, f32, f32, i32); import "env.exp" fn exp(f32) -> f32; import "env.playNote" fn playNote(i32, i32); +import "env.sndGes" fn sndGes(i32) -> f32; const TIME_MS = 0x40; const GAMEPAD = 0x44; diff --git a/examples/include/microw8-api.wat b/examples/include/microw8-api.wat index 116b669..04bd403 100644 --- a/examples/include/microw8-api.wat +++ b/examples/include/microw8-api.wat @@ -34,6 +34,7 @@ (import "env" "circle_outline" (func $circle_outline (param f32) (param f32) (param f32) (param i32))) (import "env" "exp" (func $exp (param f32) (result f32))) (import "env" "playNote" (func $playNote (param i32) (param i32))) +(import "env" "sndGes" (func $sndGes (param i32) (result f32))) ;; to use defines, include this file with a preprocessor ;; like gpp (https://logological.org/gpp). diff --git a/platform/Cargo.lock b/platform/Cargo.lock index 1c85d8a..981983f 100644 --- a/platform/Cargo.lock +++ b/platform/Cargo.lock @@ -391,7 +391,7 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "upkr" version = "0.1.0" -source = "git+https://github.com/exoticorn/upkr.git?rev=2e7983fc#2e7983fc650788d98da2eecef2d16f63e849e4a0" +source = "git+https://github.com/exoticorn/upkr.git?rev=d93aec186c9fb91d962c488682a2db125c61306c#d93aec186c9fb91d962c488682a2db125c61306c" dependencies = [ "anyhow", "cdivsufsort", diff --git a/platform/bin/loader.wasm b/platform/bin/loader.wasm index e5a4279099438a472186787cd308f3511c22eaf7..83425e2095c469579b1e332e8906775cf66e5800 100644 GIT binary patch delta 433 zcmV;i0Z#tz3H1rE4Fd?~0|5X*01Mxf6$3|q0965Uj$#1NtK3+5Mx0)6JNzsF7lI6V z%V)o}iyDWGs)bix7oYF6(XzaU_Il~OF=Aa|_|Oaa2z1Wf;!2}ltd8Z;0}jb6e>~w% z-WBk5qaemv`s1fn8B))LbQ>~+M1b7OA%idC08~?;tN9%eVlC|q1HRYIDe5ojlDLb_iG8*crKhx7%7#D$dclexswntT<|56dXaVo8_biVA+04;fr;g-z zcXVei-h9mF^Gn;1InMINrq_ZoJK3YZbOdj7Grc4rG6=Bw-sx7c+7wPmQAt!B;DGR( b2v4&>(v1U3GNB74Fd?@0|5X*01McY6$3|q2OVcku}&l!xMms*RAhueZ=y@JZ;;C6 z$Og*|Hd4Gb427kSXgpim72JfA(Rimy=~N+Ew&{ds{l1rIh>*HlXT!MEzsLwo%mOT{ll zyynkegbHSdLoP+GdMk!4%qF6auGhRxvl+P4!C;-S#e!G?_Wy$Y781l9j zEXljqk#hNwe{iUV=8gNVxnhv#@~ISme*#oQX^jXQ&f^-Mun7|i{j#Na{>V^~2g~z{ zpRj`862P(j)|tjVa0=Ga_KF1}R diff --git a/platform/bin/platform.uw8 b/platform/bin/platform.uw8 index b267807ae8a9848c7783f8a9ca748afbec118b9b..444038bbb98851718bbc68115748d9e020634ca0 100644 GIT binary patch delta 3663 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 f32 { +export fn sndGes(t: i32) -> f32 { let baseAddr = 0!0x12c78; if !(t & 127) { let i: i32; diff --git a/src/run-web.html b/src/run-web.html index db404df..1d91e90 100644 --- a/src/run-web.html +++ b/src/run-web.html @@ -1 +1 @@ -uw8-run
\ No newline at end of file +uw8-run
\ No newline at end of file diff --git a/src/run_native.rs b/src/run_native.rs index 1a028f2..4cbf2bc 100644 --- a/src/run_native.rs +++ b/src/run_native.rs @@ -314,7 +314,7 @@ fn init_sound( let snd = instance .get_typed_func::<(i32,), f32, _>(&mut store, "snd") - .or_else(|_| platform_instance.get_typed_func::<(i32,), f32, _>(&mut store, "gesSnd"))?; + .or_else(|_| platform_instance.get_typed_func::<(i32,), f32, _>(&mut store, "sndGes"))?; let host = cpal::default_host(); let device = host diff --git a/uw8-tool/src/base_module.rs b/uw8-tool/src/base_module.rs index f6e0816..abb2ad3 100644 --- a/uw8-tool/src/base_module.rs +++ b/uw8-tool/src/base_module.rs @@ -167,6 +167,7 @@ impl BaseModule { add_function(&mut functions, &type_map, "exp", &[F32], Some(F32)); add_function(&mut functions, &type_map, "playNote", &[I32, I32], None); + add_function(&mut functions, &type_map, "sndGes", &[I32], Some(F32)); for i in functions.len()..64 { add_function( diff --git a/web/src/audiolet.js b/web/src/audiolet.js index e794277..797d0c7 100644 --- a/web/src/audiolet.js +++ b/web/src/audiolet.js @@ -63,7 +63,7 @@ class APU extends AudioWorkletProcessor { this.memory = memory; - this.snd = instance.exports.snd || platform_instance.exports.gesSnd; + this.snd = instance.exports.snd || platform_instance.exports.sndGes; this.port.postMessage(2); }