diff --git a/sim.c b/sim.c
index ce7ea54..129388e 100644
--- a/sim.c
+++ b/sim.c
@@ -2,6 +2,16 @@
 #include "mark.h"
 #include "sim.h"
 
+#if 0
+ORCA_FORCE_STATIC_INLINE void stupid_memcpy(char* restrict dest,
+                                            char* restrict src, size_t sz) {
+  for (size_t i = 0; i < sz; ++i) {
+    dest[i] = src[i];
+  }
+}
+#define ORCA_MEMCPY(_dest, _src, _sz) memcpy(_dest, _src, _sz)
+#endif
+
 //////// Utilities
 
 static Glyph const indexed_glyphs[] = {
@@ -508,9 +518,15 @@ BEGIN_DUAL_PHASE_1(loop)
     Glyph buff[15];
     Glyph* gs = gbuffer + y * width + x + 1;
     Glyph hopped = *gs;
-    memcpy(buff, gs + 1, len - 1);
+    // ORCA_MEMCPY(buff, gs + 1, len - 1);
+    for (Usz i = 0; i < len - 1; ++i) {
+      buff[i] = gs[i + 1];
+    }
     buff[len - 1] = hopped;
-    memcpy(gs, buff, len);
+    // ORCA_MEMCPY(gs, buff, len);
+    for (Usz i = 0; i < len; ++i) {
+      gs[i] = buff[i];
+    }
     for (Usz i = 0; i < len; ++i) {
       STUN(0, (Isz)i + 1);
     }