aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-05 20:19:56 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-05 20:19:56 +0200
commit52971b9a2180ca3a54eb25ab49773e818cb8ae15 (patch)
treef6645d767661f6d953679456e3bd3348c915e5c8
parente5381daf8cfa640494aaedaa99541eb58ec651f4 (diff)
more debugging fiddled messages being ignored
-rw-r--r--.gitignore2
-rw-r--r--assets/draw-area.svg3
-rw-r--r--docs/figs.drawio159
-rw-r--r--docs/notes.md13
-rw-r--r--docs/time.txt1
-rw-r--r--experiments/conv/makefile5
-rwxr-xr-xexperiments/conv/png2pc7
m---------melonDS0
8 files changed, 186 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index b5424e0..ef45c97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@
roms/
copyright/
+# drawio
+.$*.bkp
diff --git a/assets/draw-area.svg b/assets/draw-area.svg
new file mode 100644
index 0000000..8839997
--- /dev/null
+++ b/assets/draw-area.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="305px" height="160px" viewBox="-0.5 -0.5 305 160" style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="U3h8rfvwRMaaIss59gVv-44"><g><rect x="8" y="40" width="256" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-2"><g><rect x="8" y="40" width="24" height="80" fill="#000000" stroke="none" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-3"><g><rect x="32" y="40" width="55" height="16" fill="#000000" stroke="none" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-4"><g><rect x="260" y="40" width="4" height="80" fill="#000000" stroke="none" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-8"><g><path d="M 32 56 L 87 56 L 87 40 L 260 40 L 260 120 L 32 120 Z" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 226px; height: 1px; padding-top: 80px; margin-left: 33px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">draw area</div></div></div></foreignObject><text x="146" y="84" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">draw area</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-13"><g><path d="M 264 20 L 264 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-14"><g><path d="M 260 20 L 260 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-15"><g><path d="M 240 30 L 253.63 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 258.88 30 L 251.88 33.5 L 253.63 30 L 251.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-16"><g><path d="M 284 30 L 270.37 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 265.12 30 L 272.12 26.5 L 270.37 30 L 272.12 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-18"><g><path d="M 32 20 L 32 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-19"><g><path d="M 8 20 L 8 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-21"><g><path d="M 25.63 30 L 14.37 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 30.88 30 L 23.88 33.5 L 25.63 30 L 23.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 9.12 30 L 16.12 26.5 L 14.37 30 L 16.12 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-22"><g><rect x="8" y="0" width="24" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 22px; height: 1px; padding-top: 10px; margin-left: 9px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">24</div></div></div></foreignObject><text x="20" y="14" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">24</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-23"><g><path d="M 264 120 L 264 140" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-24"><g><path d="M 8 120 L 8 140" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-25"><g><path d="M 257.63 130 L 14.37 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 262.88 130 L 255.88 133.5 L 257.63 130 L 255.88 126.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 9.12 130 L 16.12 126.5 L 14.37 130 L 16.12 133.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-27"><g><path d="M 264 40 L 284 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-29"><g><path d="M 274 46.37 L 274 113.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 274 41.12 L 277.5 48.12 L 274 46.37 L 270.5 48.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 118.88 L 270.5 111.88 L 274 113.63 L 277.5 111.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-30"><g><rect x="284" y="40" width="20" height="80" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 80px; margin-left: 285px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">80</div></div></div></foreignObject><text x="294" y="84" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">80</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-31"><g><path d="M 264 119.67 L 284 119.67" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-32"><g><path d="M 87 20 L 87 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-33"><g><path d="M 80.63 30 L 38.37 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 85.88 30 L 78.88 33.5 L 80.63 30 L 78.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 33.12 30 L 40.12 26.5 L 38.37 30 L 40.12 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-34"><g><rect x="32" y="0" width="55" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 53px; height: 1px; padding-top: 10px; margin-left: 33px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">55</div></div></div></foreignObject><text x="60" y="14" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">55</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-35"><g><path d="M 87 40 L 107 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-38"><g><path d="M 87 56 L 107 56" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-40"><g><path d="M 97 76 L 97 62.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 97 57.12 L 100.5 64.12 L 97 62.37 L 93.5 64.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-41"><g><path d="M 97 20 L 97 33.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 97 38.88 L 93.5 31.88 L 97 33.63 L 100.5 31.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-42"><g><rect x="87" y="0" width="20" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 10px; margin-left: 88px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">16</div></div></div></foreignObject><text x="97" y="14" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">16</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-43"><g><rect x="252" y="0" width="20" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 10px; margin-left: 253px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">4</div></div></div></foreignObject><text x="262" y="14" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">4</text></switch></g></g></g><g data-cell-id="U3h8rfvwRMaaIss59gVv-45"><g><rect x="8" y="140" width="256" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 254px; height: 1px; padding-top: 150px; margin-left: 9px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Inter; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">256</div></div></div></foreignObject><text x="136" y="154" fill="rgb(0, 0, 0)" font-family="&quot;Inter&quot;" font-size="12px" text-anchor="middle">256</text></switch></g></g></g></g></g></g></svg> \ No newline at end of file
diff --git a/docs/figs.drawio b/docs/figs.drawio
new file mode 100644
index 0000000..5bb64a2
--- /dev/null
+++ b/docs/figs.drawio
@@ -0,0 +1,159 @@
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.5 Chrome/126.0.6478.183 Electron/31.3.0 Safari/537.36" version="24.7.5">
+ <diagram name="draw-area" id="ag9XaxWigHyrzHp_qmMW">
+ <mxGraphModel dx="1416" dy="1447" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="U3h8rfvwRMaaIss59gVv-44" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry width="256" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-2" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillStyle=auto;fillColor=#000000;strokeColor=none;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry width="24" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-3" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=#000000;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="24" width="55" height="16" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;strokeColor=none;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="252" width="4" height="80" as="geometry" />
+ </mxCell>
+ <object label="draw area" placeholders="1" id="U3h8rfvwRMaaIss59gVv-8">
+ <mxCell style="shape=stencil(rVLhDoIgGHwa/hOs5t9G9R6kn8kkcUBpbx/waas53XJujO3uPu4YHOHCVbIFwmhF+IkwltGwBdghDARi6VrIPZKl6qFA2nlrauhU4YfzqqnAKh9Vfib0GGbi4uIq8/pmzaMpfoRRbmV0mAijfDfPeMkeQ4Y7vhDtDggJuyw4aNV8Oez3W1vQ/x0+j7udRbbCg65wyLVxMDvFReAnP5rYmRpwURoLC/0oldZYtoXU2YEUPUlILPY/EW8=);whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;fillStyle=cross-hatch;gradientColor=none;labelBackgroundColor=none;spacing=2;spacingTop=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="24" width="228" height="80" as="geometry" />
+ </mxCell>
+ </object>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-13" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1" target="U3h8rfvwRMaaIss59gVv-4">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" y="-20" as="sourcePoint" />
+ <mxPoint x="240" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-14" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1" target="U3h8rfvwRMaaIss59gVv-4">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="252" y="-20" as="sourcePoint" />
+ <mxPoint x="252" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-15" value="" style="endArrow=classic;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="232" y="-10" as="sourcePoint" />
+ <mxPoint x="252" y="-10" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-16" value="" style="endArrow=classic;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="276" y="-10" as="sourcePoint" />
+ <mxPoint x="256" y="-10" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-18" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="24" y="-20" as="sourcePoint" />
+ <mxPoint x="24" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-19" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint y="-20" as="sourcePoint" />
+ <mxPoint as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-21" value="" style="endArrow=classic;html=1;rounded=0;startArrow=classic;startFill=1;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="24" y="-10" as="sourcePoint" />
+ <mxPoint y="-10" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-22" value="24" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry y="-40" width="24" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-23" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" y="80" as="sourcePoint" />
+ <mxPoint x="256" y="100" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-24" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint y="80" as="sourcePoint" />
+ <mxPoint y="100" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-25" value="" style="endArrow=classic;html=1;rounded=0;startArrow=classic;startFill=1;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" y="90" as="sourcePoint" />
+ <mxPoint y="90" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-27" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" as="sourcePoint" />
+ <mxPoint x="276" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-29" value="" style="endArrow=classic;html=1;rounded=0;startArrow=classic;startFill=1;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="266" as="sourcePoint" />
+ <mxPoint x="266" y="80" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-30" value="80" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="276" width="20" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-31" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="256" y="79.67000000000002" as="sourcePoint" />
+ <mxPoint x="276" y="79.67000000000002" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-32" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="79" y="-20" as="sourcePoint" />
+ <mxPoint x="79" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-33" value="" style="endArrow=classic;html=1;rounded=0;startArrow=classic;startFill=1;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="79" y="-10" as="sourcePoint" />
+ <mxPoint x="24" y="-10" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-34" value="55" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="24" y="-40" width="55" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-35" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="79" as="sourcePoint" />
+ <mxPoint x="99" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-38" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="79" y="16.000000000000014" as="sourcePoint" />
+ <mxPoint x="99" y="16.000000000000014" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-40" value="" style="endArrow=classic;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="89" y="36" as="sourcePoint" />
+ <mxPoint x="89" y="16" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-41" value="" style="endArrow=classic;html=1;rounded=0;fontFamily=Inter;" edge="1" parent="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="89" y="-20" as="sourcePoint" />
+ <mxPoint x="89" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-42" value="16" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="79" y="-40" width="20" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-43" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry x="244" y="-40" width="20" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="U3h8rfvwRMaaIss59gVv-45" value="256" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Inter;" vertex="1" parent="1">
+ <mxGeometry y="100" width="256" height="20" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>
diff --git a/docs/notes.md b/docs/notes.md
index acc9067..fc7c43c 100644
--- a/docs/notes.md
+++ b/docs/notes.md
@@ -142,8 +142,17 @@ source: <https://git.pipeframe.xyz/fork/melonDS>
screen become visible again in the edit field. This includes the bottom row
of pixels, as well as the two rows of pixels shown in the single line
message picture.
- - The **apparent** drawable area (including obstructed top-left corner) is
- 228x80 pixels.
+ - The drawable area (including obstructed top-left corner) is 228x80 pixels,
+ while the entire message is actually 256x80 pixels:
+
+ ![](../assets/draw-area.svg)
+
+ The above figure illustrates the area which is 'drawable' (i.e. the area in
+ which the pen tool works). Fiddled messages that go outside this area are
+ received normally, but masked slightly differently when re-sent (chunk left
+ of username label appears to be masked). The actual image data is
+ unmodified even after being forwarded by normal systems (non-fiddling
+ systems).
Observed package counts (no resends) for messages of different sizes:
|draw area|display height|packet#|
diff --git a/docs/time.txt b/docs/time.txt
index dac4bea..5c9ec3e 100644
--- a/docs/time.txt
+++ b/docs/time.txt
@@ -27,3 +27,4 @@
2024-08-31 2h35m: packet decoder
2024-09-01 1h50m: homebrew ds toolchain hello world
2024-10-04 2h10m: reverse message serialization
+2024-10-05 1h50m: debugging fiddled messages being ignored
diff --git a/experiments/conv/makefile b/experiments/conv/makefile
index ae2f70d..2a513c0 100644
--- a/experiments/conv/makefile
+++ b/experiments/conv/makefile
@@ -1,5 +1,8 @@
%.png: %.bin
- ./pc2png $<
+ venv/bin/python3 pc2png $<
+
+%.bin: %.png
+ venv/bin/python3 png2pc $<
%.h: %.bin
./bin2h $< > $@
diff --git a/experiments/conv/png2pc b/experiments/conv/png2pc
index d1eaab8..21b3b29 100755
--- a/experiments/conv/png2pc
+++ b/experiments/conv/png2pc
@@ -1,7 +1,7 @@
#!/bin/python3
import itertools
import io
-from PIL import Image
+from PIL import Image, ImageDraw
from consts import *
from shared import main
@@ -37,6 +37,11 @@ def png2pc(data):
img = img.convert('RGB')
img = img.quantize(palette=palette_img)
+ draw = ImageDraw.Draw(img)
+ draw.rectangle(((0, 0), (24, img.height)), fill=0)
+ draw.rectangle(((252, 0), (256, img.height)), fill=0)
+ draw.rectangle(((24, 0), (79, 16)), fill=0)
+
output = b""
for tile_idx in range(tile_count):
tile = (
diff --git a/melonDS b/melonDS
-Subproject e361a4510b59b1ab85e2eb98203743b2017246d
+Subproject 1609ecbe1e217c48189e377060b4068de90c594