summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-12-31 22:11:55 -0800
committerPinapelz <yukais@pinapelz.com>2025-12-31 22:11:55 -0800
commite55140f547edfa9ef04459763bbdea0fac8c5965 (patch)
tree838b4967872ca94bf576cdcfc2971dfc791f085e
parent8a4627255b3e0caa81e522ec139b22f866bb753c (diff)
09 dbox seats
-rw-r--r--indieweb-micro/content/posts/09-dbox-review.md22
-rw-r--r--micro.pinapelz.moe/categories/default/index.html15
-rw-r--r--micro.pinapelz.moe/categories/default/index.xml25
-rw-r--r--micro.pinapelz.moe/categories/games/index.html8
-rw-r--r--micro.pinapelz.moe/categories/games/index.xml20
-rw-r--r--micro.pinapelz.moe/categories/index.html8
-rw-r--r--micro.pinapelz.moe/categories/index.xml32
-rw-r--r--micro.pinapelz.moe/categories/life/index.html8
-rw-r--r--micro.pinapelz.moe/categories/life/index.xml10
-rw-r--r--micro.pinapelz.moe/categories/tools/index.html8
-rw-r--r--micro.pinapelz.moe/categories/tools/index.xml8
-rw-r--r--micro.pinapelz.moe/index.html60
-rw-r--r--micro.pinapelz.moe/index.xml55
-rw-r--r--micro.pinapelz.moe/indie/follows/index.html8
-rw-r--r--micro.pinapelz.moe/indie/index.html10
-rw-r--r--micro.pinapelz.moe/indie/index.xml8
-rw-r--r--micro.pinapelz.moe/indie/page/1/index.html6
-rw-r--r--micro.pinapelz.moe/page/1/index.html6
-rw-r--r--micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html12
-rw-r--r--micro.pinapelz.moe/posts/2025-12-02-china-town-fair/index.html12
-rw-r--r--micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/index.html12
-rw-r--r--micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/index.html12
-rw-r--r--micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/index.html12
-rw-r--r--micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/index.html14
-rw-r--r--micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/index.html14
-rw-r--r--micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/index.html14
-rw-r--r--micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/index.html497
-rw-r--r--micro.pinapelz.moe/posts/index.html77
-rw-r--r--micro.pinapelz.moe/posts/index.xml51
-rw-r--r--micro.pinapelz.moe/posts/page/1/index.html6
-rw-r--r--micro.pinapelz.moe/sitemap.xml67
-rw-r--r--micro.pinapelz.moe/tags/anime/index.html8
-rw-r--r--micro.pinapelz.moe/tags/anime/index.xml8
-rw-r--r--micro.pinapelz.moe/tags/arcade/index.html8
-rw-r--r--micro.pinapelz.moe/tags/arcade/index.xml20
-rw-r--r--micro.pinapelz.moe/tags/code/index.html8
-rw-r--r--micro.pinapelz.moe/tags/code/index.xml8
-rw-r--r--micro.pinapelz.moe/tags/default/index.html15
-rw-r--r--micro.pinapelz.moe/tags/default/index.xml21
-rw-r--r--micro.pinapelz.moe/tags/index.html8
-rw-r--r--micro.pinapelz.moe/tags/index.xml40
-rw-r--r--micro.pinapelz.moe/tags/nintendo/index.html8
-rw-r--r--micro.pinapelz.moe/tags/nintendo/index.xml8
-rw-r--r--micro.pinapelz.moe/tags/playlog/index.html8
-rw-r--r--micro.pinapelz.moe/tags/playlog/index.xml10
45 files changed, 960 insertions, 335 deletions
diff --git a/indieweb-micro/content/posts/09-dbox-review.md b/indieweb-micro/content/posts/09-dbox-review.md
new file mode 100644
index 0000000..6f49fdb
--- /dev/null
+++ b/indieweb-micro/content/posts/09-dbox-review.md
@@ -0,0 +1,22 @@
+---
+title: "DBOX Movie Seats"
+date: 2025-12-31T22:03:51-08:00
+slug: 2025-12-31-09-dbox-review
+type: posts
+draft: false
+categories:
+ - default
+tags:
+ - default
+---
+There's a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.
+
+I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn't a bad experience but given the markup, I don't think its worth it:
+
+- First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble
+- However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying
+- For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I'd much rather just go to a theater that has the big comfy recliner seats
+- I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you're really looking forward to
+- Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?
+
+Generally, though... I think I'll live without them.
diff --git a/micro.pinapelz.moe/categories/default/index.html b/micro.pinapelz.moe/categories/default/index.html
index ee5aaed..a541070 100644
--- a/micro.pinapelz.moe/categories/default/index.html
+++ b/micro.pinapelz.moe/categories/default/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Default
- <a href="http://localhost:1313/categories/default/index.xml">
+ <a href="https://micro.pinapelz.moe/categories/default/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -79,6 +79,13 @@
<ul>
<li>
+ <time class="date dt-published" datetime="2025-12-31T22:03:51-08:00">2025-12-31</time>
+ <a href="/posts/2025-12-31-09-dbox-review/">DBOX Movie Seats</a>
+ </li>
+
+
+
+ <li>
<time class="date dt-published" datetime="2025-12-03T19:38:52-08:00">2025-12-03</time>
<a href="/posts/2025-12-03-04-yt-music-rewind/">YouTube Music Recap 2025</a>
</li>
@@ -112,7 +119,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/categories/default/index.xml b/micro.pinapelz.moe/categories/default/index.xml
index 2d6ff9c..9d38da4 100644
--- a/micro.pinapelz.moe/categories/default/index.xml
+++ b/micro.pinapelz.moe/categories/default/index.xml
@@ -2,33 +2,40 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Default on micro.pinapelz.moe</title>
- <link>http://localhost:1313/categories/default/</link>
+ <link>https://micro.pinapelz.moe/categories/default/</link>
<description>Recent content in Default on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Wed, 03 Dec 2025 19:38:52 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/categories/default/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/categories/default/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>DBOX Movie Seats</title>
+ <link>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</guid>
+ <description>&lt;p&gt;There&amp;rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.&lt;/p&gt;&#xA;&lt;p&gt;I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&amp;rsquo;t a bad experience but given the markup, I don&amp;rsquo;t think its worth it:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble&lt;/li&gt;&#xA;&lt;li&gt;However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying&lt;/li&gt;&#xA;&lt;li&gt;For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&amp;rsquo;d much rather just go to a theater that has the big comfy recliner seats&lt;/li&gt;&#xA;&lt;li&gt;I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&amp;rsquo;re really looking forward to&lt;/li&gt;&#xA;&lt;li&gt;Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generally, though&amp;hellip; I think I&amp;rsquo;ll live without them.&lt;/p&gt;</description>
+ </item>
<item>
<title>YouTube Music Recap 2025</title>
- <link>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</link>
<pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</guid>
<description>&lt;p&gt;Its all Bandori. At least 75% of that MyGO!!!!! listening time was probably Haruhikage since I came back to Bandori and had to catch up before watching Ave Mujica anime.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://files.catbox.moe/tsquqc.jpg&#34;&#xA; alt=&#34;YouTube Music Recap Top 5 Artists In Order: MyGO!!!!!, Yumenokessho, Ave Mujica, KMNZ, Roselia&#34; width=&#34;300&#34;&gt;&#xA;&lt;/figure&gt;</description>
</item>
<item>
<title>INIU Power Bank Gets Recall</title>
- <link>http://localhost:1313/posts/2025-12-02-power-bank-recall/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</link>
<pubDate>Tue, 02 Dec 2025 19:45:01 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-power-bank-recall/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</guid>
<description>&lt;p&gt;It would seem that I, along with what seems like the entirety of &lt;a href=&#34;https://www.reddit.com/r/amazonprime/comments/1pcq5ug/how_to_get_customer_support_for_recall_iniu/&#34;&gt;Reddit&lt;/a&gt; bought the same cheap 10000mAh power bank and now its getting recalled.&lt;/p&gt;&#xA;&lt;p&gt;I wonder if it has anything to do with the poor quality they found in that viral &lt;a href=&#34;https://www.lumafield.com/first-article/posts/whats-hiding-inside-haribos-power-bank-and-headphones&#34;&gt;Haribo Powerbank&lt;/a&gt;. Not sure since I&amp;rsquo;ve had this one for a long time. I guess I really got what I paid for, shame cause it really is super slim and works well.&lt;/p&gt;</description>
</item>
<item>
<title>Hello World - Why This</title>
- <link>http://localhost:1313/posts/2025-12-01-hello-world/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</link>
<pubDate>Mon, 01 Dec 2025 20:11:57 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-01-hello-world/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</guid>
<description>&lt;p&gt;I think having control of your own data is great. The same is true for decentralized social media. I&amp;rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &amp;ldquo;decentralized&amp;rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &amp;ldquo;social media&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;twitterx&#34;&gt;Twitter/X&lt;/h2&gt;&#xA;&lt;p&gt;This is fairly self explanatory. The rebranding of Twitter to X and Musk&amp;rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&amp;rsquo;t a particular fan of. You can&amp;rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&amp;rsquo;s just a lot of &amp;ldquo;features&amp;rdquo; here I&amp;rsquo;m not a fan of. Needless to say, there&amp;rsquo;s a lot of reasons to not post stuff there.&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/categories/games/index.html b/micro.pinapelz.moe/categories/games/index.html
index 23832ff..f3fad84 100644
--- a/micro.pinapelz.moe/categories/games/index.html
+++ b/micro.pinapelz.moe/categories/games/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Games
- <a href="http://localhost:1313/categories/games/index.xml">
+ <a href="https://micro.pinapelz.moe/categories/games/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -112,7 +112,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/categories/games/index.xml b/micro.pinapelz.moe/categories/games/index.xml
index 7d7a557..960fe31 100644
--- a/micro.pinapelz.moe/categories/games/index.xml
+++ b/micro.pinapelz.moe/categories/games/index.xml
@@ -2,34 +2,34 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Games on micro.pinapelz.moe</title>
- <link>http://localhost:1313/categories/games/</link>
+ <link>https://micro.pinapelz.moe/categories/games/</link>
<description>Recent content in Games on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/categories/games/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/categories/games/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</title>
- <link>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
- <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
+ <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
</item>
<item>
<title>Arcade Monsters</title>
- <link>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</link>
<pubDate>Thu, 18 Dec 2025 21:38:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</guid>
<description>&lt;p&gt;If you live in Socal and are also into arcade gaming (both retro and modern), one of the great weekend day-trips I&amp;rsquo;ve found is taking the Pacific Surfliner train down to San Diego.&lt;/p&gt;&#xA;&lt;h1 id=&#34;getting-there&#34;&gt;Getting There&lt;/h1&gt;&#xA;&lt;p&gt;There are a number of departures in the morning, and while not as fast as a car when there&amp;rsquo;s no traffic, you can save your energy and do other stuff on the train. The timetable also works nicely since you can pretty much get there around opening if you want to beat the crowds.&lt;/p&gt;</description>
</item>
<item>
<title>First MXM 18 Cleared!</title>
- <link>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</link>
<pubDate>Sat, 06 Dec 2025 22:33:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</guid>
- <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</guid>
+ <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
</item>
</channel>
</rss>
diff --git a/micro.pinapelz.moe/categories/index.html b/micro.pinapelz.moe/categories/index.html
index 8a2dbf4..b44b7a8 100644
--- a/micro.pinapelz.moe/categories/index.html
+++ b/micro.pinapelz.moe/categories/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Categories
- <a href="http://localhost:1313/categories/index.xml">
+ <a href="https://micro.pinapelz.moe/categories/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -93,7 +93,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/categories/index.xml b/micro.pinapelz.moe/categories/index.xml
index ab78266..79e9153 100644
--- a/micro.pinapelz.moe/categories/index.xml
+++ b/micro.pinapelz.moe/categories/index.xml
@@ -2,40 +2,40 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on micro.pinapelz.moe</title>
- <link>http://localhost:1313/categories/</link>
+ <link>https://micro.pinapelz.moe/categories/</link>
<description>Recent content in Categories on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/categories/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>Default</title>
+ <link>https://micro.pinapelz.moe/categories/default/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/categories/default/</guid>
+ <description></description>
+ </item>
<item>
<title>Games</title>
- <link>http://localhost:1313/categories/games/</link>
+ <link>https://micro.pinapelz.moe/categories/games/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/categories/games/</guid>
+ <guid>https://micro.pinapelz.moe/categories/games/</guid>
<description></description>
</item>
<item>
<title>Tools</title>
- <link>http://localhost:1313/categories/tools/</link>
+ <link>https://micro.pinapelz.moe/categories/tools/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/categories/tools/</guid>
- <description></description>
- </item>
- <item>
- <title>Default</title>
- <link>http://localhost:1313/categories/default/</link>
- <pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/categories/default/</guid>
+ <guid>https://micro.pinapelz.moe/categories/tools/</guid>
<description></description>
</item>
<item>
<title>Life</title>
- <link>http://localhost:1313/categories/life/</link>
+ <link>https://micro.pinapelz.moe/categories/life/</link>
<pubDate>Tue, 02 Dec 2025 00:22:32 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/categories/life/</guid>
+ <guid>https://micro.pinapelz.moe/categories/life/</guid>
<description></description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/categories/life/index.html b/micro.pinapelz.moe/categories/life/index.html
index eed59a6..774fe28 100644
--- a/micro.pinapelz.moe/categories/life/index.html
+++ b/micro.pinapelz.moe/categories/life/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Life
- <a href="http://localhost:1313/categories/life/index.xml">
+ <a href="https://micro.pinapelz.moe/categories/life/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/categories/life/index.xml b/micro.pinapelz.moe/categories/life/index.xml
index ae01e81..c7e231b 100644
--- a/micro.pinapelz.moe/categories/life/index.xml
+++ b/micro.pinapelz.moe/categories/life/index.xml
@@ -2,20 +2,20 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Life on micro.pinapelz.moe</title>
- <link>http://localhost:1313/categories/life/</link>
+ <link>https://micro.pinapelz.moe/categories/life/</link>
<description>Recent content in Life on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Tue, 02 Dec 2025 00:22:32 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/categories/life/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/categories/life/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>China Town Fair</title>
- <link>http://localhost:1313/posts/2025-12-02-china-town-fair/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</link>
<pubDate>Tue, 02 Dec 2025 00:22:32 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-china-town-fair/</guid>
- <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</guid>
+ <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
</item>
</channel>
</rss>
diff --git a/micro.pinapelz.moe/categories/tools/index.html b/micro.pinapelz.moe/categories/tools/index.html
index 97eca35..b3d0968 100644
--- a/micro.pinapelz.moe/categories/tools/index.html
+++ b/micro.pinapelz.moe/categories/tools/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Tools
- <a href="http://localhost:1313/categories/tools/index.xml">
+ <a href="https://micro.pinapelz.moe/categories/tools/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/categories/tools/index.xml b/micro.pinapelz.moe/categories/tools/index.xml
index cb9c551..0c4c761 100644
--- a/micro.pinapelz.moe/categories/tools/index.xml
+++ b/micro.pinapelz.moe/categories/tools/index.xml
@@ -2,19 +2,19 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tools on micro.pinapelz.moe</title>
- <link>http://localhost:1313/categories/tools/</link>
+ <link>https://micro.pinapelz.moe/categories/tools/</link>
<description>Recent content in Tools on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Thu, 04 Dec 2025 23:19:29 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/categories/tools/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/categories/tools/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Enable HID Mode on Nintendo Pro Controller 2</title>
- <link>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</guid>
<description>&lt;p&gt;Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&amp;rsquo;t work out of box on PC (Linux) for me like it&amp;rsquo;s predacessor. Until there&amp;rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&amp;rsquo;s a hacky Python script to initialize HID-mode on the controller&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# I only tested this script on Linux w/ Steam but in theory it shoud work on Windows?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.core &lt;span style=&#34;color:#75715e&#34;&gt;# install pyusb first: pip install pyusb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.util&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x057E&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_IDS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2066&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (L)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2067&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (R)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2069&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pro Controller&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2073&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GCN Controller&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USB_INTERFACE_NUMBER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INIT_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0d&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x07 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x16&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REQUEST_CONTROLLER_MAC &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0e&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LTK_REQUEST &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x15_ARG_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x09 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x02 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x0A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x14&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x35&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x46&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x04 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENABLE_HAPTICS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x10 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x01 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x0A_ALT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_usb_data&lt;/span&gt;(ep_out, ep_in, data, description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(data)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ep_in&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read(&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;, timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; hex_resp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; response])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Response: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;hex_resp&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;errno &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;110&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] No response (Timeout)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Read Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Write Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;set_player_leds&lt;/span&gt;(ep_out, ep_in, led_mask):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; command &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; led_mask,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, bytes(command), &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Set LED Mask: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;led_mask&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;connect_usb&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Searching for Nintendo Switch Controllers...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;match_device&lt;/span&gt;(dev):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idVendor &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; PRODUCT_IDS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find(custom_match&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;match_device)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Device not found&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; product_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PRODUCT_IDS&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown Device&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;product_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (ID: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;04x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;is_kernel_driver_active(USB_INTERFACE_NUMBER):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Detaching kernel driver...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;detach_kernel_driver(USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not detach kernel driver: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;set_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Configuration set.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error setting configuration: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;claim_interface(dev, USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Interface &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;USB_INTERFACE_NUMBER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; claimed.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not claim interface: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; cfg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_active_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cfg[(USB_INTERFACE_NUMBER,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_OUT)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_in &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_IN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; ep_out:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not find OUT endpoint&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found Endpoint OUT: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Starting Initialization Sequence...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, INIT_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Init 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x07, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x07&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x16, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x16&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, REQUEST_CONTROLLER_MAC, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req MAC&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, LTK_REQUEST, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req LTK&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x15_ARG_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x15&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x09, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x09&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x02, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x02&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x11, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x11&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x0A, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x0A&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x04, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x04&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, ENABLE_HAPTICS, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enable Haptics&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x10, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x10&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x01, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x01&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x0A_ALT, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x0A Alt&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; set_player_leds(ep_out, ep_in, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0F&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Controller initialization sequence complete! All LEDs should be on.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error during sequence: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; connect_usb()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unexpected error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/index.html b/micro.pinapelz.moe/index.html
index 5598782..11da0f3 100644
--- a/micro.pinapelz.moe/index.html
+++ b/micro.pinapelz.moe/index.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
- <meta name="generator" content="Hugo 0.153.1"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+ <meta name="generator" content="Hugo 0.153.1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -40,7 +40,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -76,13 +76,35 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/">Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/">DBOX Movie Seats</a></h1>
+ <b><time>Wednesday, December 31, 2025</time></b>
+
+ <a href="/tags/default">default</a>
+
+ <div>
+ <p>There&rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.</p>
+<p>I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&rsquo;t a bad experience but given the markup, I don&rsquo;t think its worth it:</p>
+<ul>
+<li>First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble</li>
+<li>However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying</li>
+<li>For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&rsquo;d much rather just go to a theater that has the big comfy recliner seats</li>
+<li>I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&rsquo;re really looking forward to</li>
+<li>Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?</li>
+</ul>
+<p>Generally, though&hellip; I think I&rsquo;ll live without them.</p>
+
+ </div>
+</article>
+
+
+ <article>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/">Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</a></h1>
<b><time>Friday, December 19, 2025</time></b>
<a href="/tags/playlog">playlog</a>
@@ -119,14 +141,14 @@
</ul>
-<a href="http://localhost:1313//tags/ffxiv" class="p-category">#ffxiv</a>
+<a href="https://micro.pinapelz.moe//tags/ffxiv" class="p-category">#ffxiv</a>
</div>
</article>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/">Arcade Monsters</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/">Arcade Monsters</a></h1>
<b><time>Thursday, December 18, 2025</time></b>
<a href="/tags/arcade">arcade</a>
@@ -136,14 +158,14 @@
<h1 id="getting-there">Getting There</h1>
<p>There are a number of departures in the morning, and while not as fast as a car when there&rsquo;s no traffic, you can save your energy and do other stuff on the train. The timetable also works nicely since you can pretty much get there around opening if you want to beat the crowds.</p>
- <a href="http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/">Read more...</a>
+ <a href="https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/">Read more...</a>
</div>
</article>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-06-first-sdvx-18/">First MXM 18 Cleared!</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/">First MXM 18 Cleared!</a></h1>
<b><time>Saturday, December 6, 2025</time></b>
<a href="/tags/arcade">arcade</a>
@@ -151,7 +173,7 @@
<div>
<p>Cleared my first 18 difficulty chart in
-<a href="http://localhost:1313//tags/sdvx" class="p-category">#sdvx</a>
+<a href="https://micro.pinapelz.moe//tags/sdvx" class="p-category">#sdvx</a>
</p>
<p>Albeit its not a very difficult one, but I think I&rsquo;m finally starting to chip away at the 17-18 difficulty wall.
<figure><img src="/posts/2025-12-06-first-sdvx-18/18.webp"
@@ -164,7 +186,7 @@
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-04-procon2-hid-tool/">Enable HID Mode on Nintendo Pro Controller 2</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/">Enable HID Mode on Nintendo Pro Controller 2</a></h1>
<b><time>Thursday, December 4, 2025</time></b>
<a href="/tags/code">code</a>
@@ -175,14 +197,14 @@
<p>Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&rsquo;t work out of box on PC (Linux) for me like it&rsquo;s predacessor. Until there&rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&rsquo;s a hacky Python script to initialize HID-mode on the controller</p>
<p><strong>Steps</strong></p>
- <a href="http://localhost:1313/posts/2025-12-04-procon2-hid-tool/">Read more...</a>
+ <a href="https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/">Read more...</a>
</div>
</article>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/">YouTube Music Recap 2025</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/">YouTube Music Recap 2025</a></h1>
<b><time>Wednesday, December 3, 2025</time></b>
<a href="/tags/anime">anime</a>
@@ -198,7 +220,7 @@
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-02-power-bank-recall/">INIU Power Bank Gets Recall</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/">INIU Power Bank Gets Recall</a></h1>
<b><time>Tuesday, December 2, 2025</time></b>
<a href="/tags/default">default</a>
@@ -207,14 +229,14 @@
<p>It would seem that I, along with what seems like the entirety of <a href="https://www.reddit.com/r/amazonprime/comments/1pcq5ug/how_to_get_customer_support_for_recall_iniu/">Reddit</a> bought the same cheap 10000mAh power bank and now its getting recalled.</p>
<p>I wonder if it has anything to do with the poor quality they found in that viral <a href="https://www.lumafield.com/first-article/posts/whats-hiding-inside-haribos-power-bank-and-headphones">Haribo Powerbank</a>. Not sure since I&rsquo;ve had this one for a long time. I guess I really got what I paid for, shame cause it really is super slim and works well.</p>
- <a href="http://localhost:1313/posts/2025-12-02-power-bank-recall/">Read more...</a>
+ <a href="https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/">Read more...</a>
</div>
</article>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-02-china-town-fair/">China Town Fair</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/">China Town Fair</a></h1>
<b><time>Tuesday, December 2, 2025</time></b>
<a href="/tags/arcade">arcade</a>
@@ -228,14 +250,14 @@
<p>Also yep you&rsquo;re reading that right, it indeed once home to a <a href="https://davidpotorti.substack.com/p/the-dancing-chicken">dancing chicken as well as one that played tic tac toe</a>.</p>
<p>But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.</p>
- <a href="http://localhost:1313/posts/2025-12-02-china-town-fair/">Read more...</a>
+ <a href="https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/">Read more...</a>
</div>
</article>
<article>
- <h1><a href="http://localhost:1313/posts/2025-12-01-hello-world/">Hello World - Why This</a></h1>
+ <h1><a href="https://micro.pinapelz.moe/posts/2025-12-01-hello-world/">Hello World - Why This</a></h1>
<b><time>Monday, December 1, 2025</time></b>
<a href="/tags/default">default</a>
@@ -245,7 +267,7 @@
<h2 id="twitterx">Twitter/X</h2>
<p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p>
- <a href="http://localhost:1313/posts/2025-12-01-hello-world/">Read more...</a>
+ <a href="https://micro.pinapelz.moe/posts/2025-12-01-hello-world/">Read more...</a>
</div>
</article>
@@ -269,7 +291,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/index.xml b/micro.pinapelz.moe/index.xml
index b03fe18..686f36a 100644
--- a/micro.pinapelz.moe/index.xml
+++ b/micro.pinapelz.moe/index.xml
@@ -2,75 +2,82 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>micro.pinapelz.moe</title>
- <link>http://localhost:1313/</link>
+ <link>https://micro.pinapelz.moe/</link>
<description>Recent content on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>DBOX Movie Seats</title>
+ <link>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</guid>
+ <description>&lt;p&gt;There&amp;rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.&lt;/p&gt;&#xA;&lt;p&gt;I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&amp;rsquo;t a bad experience but given the markup, I don&amp;rsquo;t think its worth it:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble&lt;/li&gt;&#xA;&lt;li&gt;However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying&lt;/li&gt;&#xA;&lt;li&gt;For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&amp;rsquo;d much rather just go to a theater that has the big comfy recliner seats&lt;/li&gt;&#xA;&lt;li&gt;I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&amp;rsquo;re really looking forward to&lt;/li&gt;&#xA;&lt;li&gt;Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generally, though&amp;hellip; I think I&amp;rsquo;ll live without them.&lt;/p&gt;</description>
+ </item>
<item>
<title>Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</title>
- <link>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
- <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
+ <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
</item>
<item>
<title>Arcade Monsters</title>
- <link>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</link>
<pubDate>Thu, 18 Dec 2025 21:38:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</guid>
<description>&lt;p&gt;If you live in Socal and are also into arcade gaming (both retro and modern), one of the great weekend day-trips I&amp;rsquo;ve found is taking the Pacific Surfliner train down to San Diego.&lt;/p&gt;&#xA;&lt;h1 id=&#34;getting-there&#34;&gt;Getting There&lt;/h1&gt;&#xA;&lt;p&gt;There are a number of departures in the morning, and while not as fast as a car when there&amp;rsquo;s no traffic, you can save your energy and do other stuff on the train. The timetable also works nicely since you can pretty much get there around opening if you want to beat the crowds.&lt;/p&gt;</description>
</item>
<item>
<title>First MXM 18 Cleared!</title>
- <link>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</link>
<pubDate>Sat, 06 Dec 2025 22:33:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</guid>
- <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</guid>
+ <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
</item>
<item>
<title>Enable HID Mode on Nintendo Pro Controller 2</title>
- <link>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</guid>
<description>&lt;p&gt;Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&amp;rsquo;t work out of box on PC (Linux) for me like it&amp;rsquo;s predacessor. Until there&amp;rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&amp;rsquo;s a hacky Python script to initialize HID-mode on the controller&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# I only tested this script on Linux w/ Steam but in theory it shoud work on Windows?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.core &lt;span style=&#34;color:#75715e&#34;&gt;# install pyusb first: pip install pyusb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.util&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x057E&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_IDS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2066&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (L)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2067&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (R)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2069&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pro Controller&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2073&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GCN Controller&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USB_INTERFACE_NUMBER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INIT_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0d&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x07 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x16&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REQUEST_CONTROLLER_MAC &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0e&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LTK_REQUEST &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x15_ARG_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x09 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x02 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x0A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x14&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x35&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x46&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x04 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENABLE_HAPTICS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x10 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x01 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x0A_ALT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_usb_data&lt;/span&gt;(ep_out, ep_in, data, description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(data)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ep_in&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read(&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;, timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; hex_resp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; response])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Response: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;hex_resp&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;errno &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;110&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] No response (Timeout)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Read Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Write Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;set_player_leds&lt;/span&gt;(ep_out, ep_in, led_mask):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; command &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; led_mask,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, bytes(command), &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Set LED Mask: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;led_mask&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;connect_usb&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Searching for Nintendo Switch Controllers...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;match_device&lt;/span&gt;(dev):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idVendor &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; PRODUCT_IDS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find(custom_match&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;match_device)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Device not found&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; product_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PRODUCT_IDS&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown Device&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;product_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (ID: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;04x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;is_kernel_driver_active(USB_INTERFACE_NUMBER):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Detaching kernel driver...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;detach_kernel_driver(USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not detach kernel driver: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;set_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Configuration set.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error setting configuration: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;claim_interface(dev, USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Interface &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;USB_INTERFACE_NUMBER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; claimed.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not claim interface: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; cfg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_active_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cfg[(USB_INTERFACE_NUMBER,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_OUT)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_in &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_IN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; ep_out:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not find OUT endpoint&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found Endpoint OUT: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Starting Initialization Sequence...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, INIT_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Init 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x07, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x07&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x16, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x16&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, REQUEST_CONTROLLER_MAC, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req MAC&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, LTK_REQUEST, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req LTK&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x15_ARG_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x15&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x09, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x09&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x02, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x02&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x11, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x11&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x0A, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x0A&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x04, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x04&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, ENABLE_HAPTICS, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enable Haptics&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x10, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x10&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x01, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x01&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x0A_ALT, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x0A Alt&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; set_player_leds(ep_out, ep_in, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0F&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Controller initialization sequence complete! All LEDs should be on.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error during sequence: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; connect_usb()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unexpected error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;/p&gt;</description>
</item>
<item>
<title>YouTube Music Recap 2025</title>
- <link>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</link>
<pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</guid>
<description>&lt;p&gt;Its all Bandori. At least 75% of that MyGO!!!!! listening time was probably Haruhikage since I came back to Bandori and had to catch up before watching Ave Mujica anime.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://files.catbox.moe/tsquqc.jpg&#34;&#xA; alt=&#34;YouTube Music Recap Top 5 Artists In Order: MyGO!!!!!, Yumenokessho, Ave Mujica, KMNZ, Roselia&#34; width=&#34;300&#34;&gt;&#xA;&lt;/figure&gt;</description>
</item>
<item>
<title>Follows</title>
- <link>http://localhost:1313/indie/follows/</link>
+ <link>https://micro.pinapelz.moe/indie/follows/</link>
<pubDate>Wed, 03 Dec 2025 01:17:39 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/indie/follows/</guid>
+ <guid>https://micro.pinapelz.moe/indie/follows/</guid>
<description>&lt;p&gt;Here are all the pages/accounts I follow.&lt;/p&gt;&#xA;&lt;p&gt;This is mostly here for pages that can receive &lt;a href=&#34;https://indieweb.org/webmention&#34;&gt;Webmentions&lt;/a&gt; and the &lt;a href=&#34;https://fed.brid.gy&#34;&gt;Bridgy Fed&lt;/a&gt; service.&lt;/p&gt;&#xA;&lt;h2 id=&#34;fediverse&#34;&gt;Fediverse&lt;/h2&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@Mofumatic&#34;&gt;&#xA; https://sakurajima.moe/@Mofumatic&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mathstodon.xyz/@tao&#34;&gt;&#xA; https://mathstodon.xyz/@tao&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@chikorita157&#34;&gt;&#xA; https://sakurajima.moe/@chikorita157&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@sakurajima&#34;&gt;&#xA; https://sakurajima.moe/@sakurajima&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://floss.social/@kde&#34;&gt;&#xA; https://floss.social/@kde&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mastodon.social/@gamingonlinux&#34;&gt;&#xA; https://mastodon.social/@gamingonlinux&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://threads.net/@nintendeal&#34;&gt;&#xA; https://threads.net/@nintendeal&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mastodon.social/@Mastodon&#34;&gt;&#xA; https://mastodon.social/@Mastodon&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://jvns.ca/@b0rk&#34;&gt;&#xA; https://jvns.ca/@b0rk&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://tippy.rabbithouse.garden/@serebii&#34;&gt;&#xA; https://tippy.rabbithouse.garden/@serebii&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://retro.pizza/@outofprintarchive&#34;&gt;&#xA; https://retro.pizza/@outofprintarchive&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://peoplemaking.games/@nindiespotlight&#34;&gt;&#xA; https://peoplemaking.games/@nindiespotlight&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;bluesky&#34;&gt;Bluesky&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://bsky.app/profile/anew.social&#34;&gt;&#xA; https://bsky.app/profile/anew.social&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Learn more about the &lt;a href=&#34;https://indieweb.org&#34;&gt;Indieweb&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>INIU Power Bank Gets Recall</title>
- <link>http://localhost:1313/posts/2025-12-02-power-bank-recall/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</link>
<pubDate>Tue, 02 Dec 2025 19:45:01 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-power-bank-recall/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</guid>
<description>&lt;p&gt;It would seem that I, along with what seems like the entirety of &lt;a href=&#34;https://www.reddit.com/r/amazonprime/comments/1pcq5ug/how_to_get_customer_support_for_recall_iniu/&#34;&gt;Reddit&lt;/a&gt; bought the same cheap 10000mAh power bank and now its getting recalled.&lt;/p&gt;&#xA;&lt;p&gt;I wonder if it has anything to do with the poor quality they found in that viral &lt;a href=&#34;https://www.lumafield.com/first-article/posts/whats-hiding-inside-haribos-power-bank-and-headphones&#34;&gt;Haribo Powerbank&lt;/a&gt;. Not sure since I&amp;rsquo;ve had this one for a long time. I guess I really got what I paid for, shame cause it really is super slim and works well.&lt;/p&gt;</description>
</item>
<item>
<title>China Town Fair</title>
- <link>http://localhost:1313/posts/2025-12-02-china-town-fair/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</link>
<pubDate>Tue, 02 Dec 2025 00:22:32 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-china-town-fair/</guid>
- <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</guid>
+ <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
</item>
<item>
<title>Hello World - Why This</title>
- <link>http://localhost:1313/posts/2025-12-01-hello-world/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</link>
<pubDate>Mon, 01 Dec 2025 20:11:57 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-01-hello-world/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</guid>
<description>&lt;p&gt;I think having control of your own data is great. The same is true for decentralized social media. I&amp;rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &amp;ldquo;decentralized&amp;rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &amp;ldquo;social media&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;twitterx&#34;&gt;Twitter/X&lt;/h2&gt;&#xA;&lt;p&gt;This is fairly self explanatory. The rebranding of Twitter to X and Musk&amp;rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&amp;rsquo;t a particular fan of. You can&amp;rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&amp;rsquo;s just a lot of &amp;ldquo;features&amp;rdquo; here I&amp;rsquo;m not a fan of. Needless to say, there&amp;rsquo;s a lot of reasons to not post stuff there.&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/indie/follows/index.html b/micro.pinapelz.moe/indie/follows/index.html
index 3949616..a2d2502 100644
--- a/micro.pinapelz.moe/indie/follows/index.html
+++ b/micro.pinapelz.moe/indie/follows/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div><div class="e-content">
@@ -280,7 +280,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/indie/index.html b/micro.pinapelz.moe/indie/index.html
index fcb91c9..6f09757 100644
--- a/micro.pinapelz.moe/indie/index.html
+++ b/micro.pinapelz.moe/indie/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -111,7 +111,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -119,7 +119,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-03T01:17:39-08:00">03</time>:
- <a href="http://localhost:1313/indie/follows/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/indie/follows/" class="u-url p-name title">
Follows
</a>
</div>
@@ -150,7 +150,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/indie/index.xml b/micro.pinapelz.moe/indie/index.xml
index fb3a1ab..e338b2d 100644
--- a/micro.pinapelz.moe/indie/index.xml
+++ b/micro.pinapelz.moe/indie/index.xml
@@ -2,19 +2,19 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Indies on micro.pinapelz.moe</title>
- <link>http://localhost:1313/indie/</link>
+ <link>https://micro.pinapelz.moe/indie/</link>
<description>Recent content in Indies on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Wed, 03 Dec 2025 01:17:39 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/indie/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/indie/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Follows</title>
- <link>http://localhost:1313/indie/follows/</link>
+ <link>https://micro.pinapelz.moe/indie/follows/</link>
<pubDate>Wed, 03 Dec 2025 01:17:39 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/indie/follows/</guid>
+ <guid>https://micro.pinapelz.moe/indie/follows/</guid>
<description>&lt;p&gt;Here are all the pages/accounts I follow.&lt;/p&gt;&#xA;&lt;p&gt;This is mostly here for pages that can receive &lt;a href=&#34;https://indieweb.org/webmention&#34;&gt;Webmentions&lt;/a&gt; and the &lt;a href=&#34;https://fed.brid.gy&#34;&gt;Bridgy Fed&lt;/a&gt; service.&lt;/p&gt;&#xA;&lt;h2 id=&#34;fediverse&#34;&gt;Fediverse&lt;/h2&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@Mofumatic&#34;&gt;&#xA; https://sakurajima.moe/@Mofumatic&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mathstodon.xyz/@tao&#34;&gt;&#xA; https://mathstodon.xyz/@tao&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@chikorita157&#34;&gt;&#xA; https://sakurajima.moe/@chikorita157&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://sakurajima.moe/@sakurajima&#34;&gt;&#xA; https://sakurajima.moe/@sakurajima&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://floss.social/@kde&#34;&gt;&#xA; https://floss.social/@kde&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mastodon.social/@gamingonlinux&#34;&gt;&#xA; https://mastodon.social/@gamingonlinux&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://threads.net/@nintendeal&#34;&gt;&#xA; https://threads.net/@nintendeal&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://mastodon.social/@Mastodon&#34;&gt;&#xA; https://mastodon.social/@Mastodon&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://jvns.ca/@b0rk&#34;&gt;&#xA; https://jvns.ca/@b0rk&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://tippy.rabbithouse.garden/@serebii&#34;&gt;&#xA; https://tippy.rabbithouse.garden/@serebii&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://retro.pizza/@outofprintarchive&#34;&gt;&#xA; https://retro.pizza/@outofprintarchive&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://peoplemaking.games/@nindiespotlight&#34;&gt;&#xA; https://peoplemaking.games/@nindiespotlight&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-04T00:00:00Z&#34;&gt;&#xA; 2025-12-04&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;bluesky&#34;&gt;Bluesky&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;follow-card&#34;&gt;&#xA; &lt;a class=&#34;follow-target u-follow-of&#34; href=&#34;https://bsky.app/profile/anew.social&#34;&gt;&#xA; https://bsky.app/profile/anew.social&#xA; &lt;/a&gt;&#xA;&#xA; &lt;time class=&#34;follow-date dt-published&#34; datetime=&#34;2025-12-03T00:00:00Z&#34;&gt;&#xA; 2025-12-03&#xA; &lt;/time&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Learn more about the &lt;a href=&#34;https://indieweb.org&#34;&gt;Indieweb&lt;/a&gt;&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/indie/page/1/index.html b/micro.pinapelz.moe/indie/page/1/index.html
index b68162d..cdf2090 100644
--- a/micro.pinapelz.moe/indie/page/1/index.html
+++ b/micro.pinapelz.moe/indie/page/1/index.html
@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
- <title>http://localhost:1313/indie/</title>
- <link rel="canonical" href="http://localhost:1313/indie/">
+ <title>https://micro.pinapelz.moe/indie/</title>
+ <link rel="canonical" href="https://micro.pinapelz.moe/indie/">
<meta charset="utf-8">
- <meta http-equiv="refresh" content="0; url=http://localhost:1313/indie/">
+ <meta http-equiv="refresh" content="0; url=https://micro.pinapelz.moe/indie/">
</head>
</html>
diff --git a/micro.pinapelz.moe/page/1/index.html b/micro.pinapelz.moe/page/1/index.html
index 62d71f4..cc34fa8 100644
--- a/micro.pinapelz.moe/page/1/index.html
+++ b/micro.pinapelz.moe/page/1/index.html
@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
- <title>http://localhost:1313/</title>
- <link rel="canonical" href="http://localhost:1313/">
+ <title>https://micro.pinapelz.moe/</title>
+ <link rel="canonical" href="https://micro.pinapelz.moe/">
<meta charset="utf-8">
- <meta http-equiv="refresh" content="0; url=http://localhost:1313/">
+ <meta http-equiv="refresh" content="0; url=https://micro.pinapelz.moe/">
</head>
</html>
diff --git a/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html b/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html
index de1a8dc..779d6dd 100644
--- a/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-01T20:11:57-08:00">
Monday, December 1, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-01-hello-world/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-01-hello-world/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -303,7 +303,7 @@ AtProto allows you to host a <code>PDS (Personal Data Server)</code> which store
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-01-hello-world\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-01-hello-world\/";
async function loadMentions() {
const url =
@@ -493,7 +493,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-02-china-town-fair/index.html b/micro.pinapelz.moe/posts/2025-12-02-china-town-fair/index.html
index c0c42b8..d19c277 100644
--- a/micro.pinapelz.moe/posts/2025-12-02-china-town-fair/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-02-china-town-fair/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-02T00:22:32-08:00">
Tuesday, December 2, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-02-china-town-fair/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -308,7 +308,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-02-china-town-fair\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-02-china-town-fair\/";
async function loadMentions() {
const url =
@@ -498,7 +498,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/index.html b/micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/index.html
index c6d1874..d2d503f 100644
--- a/micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-02T19:45:01-08:00">
Tuesday, December 2, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-02-power-bank-recall/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -301,7 +301,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-02-power-bank-recall\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-02-power-bank-recall\/";
async function loadMentions() {
const url =
@@ -491,7 +491,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/index.html b/micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/index.html
index 1a8e735..1d1e1a0 100644
--- a/micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-03T19:38:52-08:00">
Wednesday, December 3, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -294,7 +294,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-03-04-yt-music-rewind\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-03-04-yt-music-rewind\/";
async function loadMentions() {
const url =
@@ -484,7 +484,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/index.html b/micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/index.html
index e790aae..137cf9a 100644
--- a/micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-04T23:19:29-08:00">
Thursday, December 4, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-04-procon2-hid-tool/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -436,7 +436,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-04-procon2-hid-tool\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-04-procon2-hid-tool\/";
async function loadMentions() {
const url =
@@ -626,7 +626,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/index.html b/micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/index.html
index e82cb61..f566c15 100644
--- a/micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-06T22:33:23-08:00">
Saturday, December 6, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-06-first-sdvx-18/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -103,7 +103,7 @@
</span></div><div class="e-content">
<p>Cleared my first 18 difficulty chart in
-<a href="http://localhost:1313//tags/sdvx" class="p-category">#sdvx</a>
+<a href="https://micro.pinapelz.moe//tags/sdvx" class="p-category">#sdvx</a>
</p>
<p>Albeit its not a very difficult one, but I think I&rsquo;m finally starting to chip away at the 17-18 difficulty wall.
<figure><img src="/posts/2025-12-06-first-sdvx-18/18.webp"
@@ -298,7 +298,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-06-first-sdvx-18\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-06-first-sdvx-18\/";
async function loadMentions() {
const url =
@@ -488,7 +488,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/index.html b/micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/index.html
index 8f2200f..8fcdded 100644
--- a/micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-18T21:38:23-08:00">
Thursday, December 18, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -149,7 +149,7 @@
-<a href="http://localhost:1313//tags/arcade" class="p-category">#arcade</a>
+<a href="https://micro.pinapelz.moe//tags/arcade" class="p-category">#arcade</a>
</div>
@@ -339,7 +339,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-18-07-arcade-monsters-sd\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-18-07-arcade-monsters-sd\/";
async function loadMentions() {
const url =
@@ -529,7 +529,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/index.html b/micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/index.html
index 7351ba8..7db18f5 100644
--- a/micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/index.html
+++ b/micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -78,7 +78,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
</div>
@@ -88,7 +88,7 @@
<time class="dt-published" datetime="2025-12-19T22:15:50-08:00">
Friday, December 19, 2025
</time>
- - <a href="http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/" class="u-url u-uid" >Permalink</a>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/" class="u-url u-uid" >Permalink</a>
</b></div>
<div class="article-meta"><span class="categories">
Categories:
@@ -132,7 +132,7 @@
</ul>
-<a href="http://localhost:1313//tags/ffxiv" class="p-category">#ffxiv</a>
+<a href="https://micro.pinapelz.moe//tags/ffxiv" class="p-category">#ffxiv</a>
</div>
@@ -322,7 +322,7 @@
</style>
<script>
-const PAGE_URL = "http:\/\/localhost:1313\/posts\/2025-12-19-08-ffxiv-patch-7-4\/";
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-19-08-ffxiv-patch-7-4\/";
async function loadMentions() {
const url =
@@ -512,7 +512,7 @@ loadMentions();
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/index.html b/micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/index.html
new file mode 100644
index 0000000..f2578f3
--- /dev/null
+++ b/micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/index.html
@@ -0,0 +1,497 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <style type=text/css>body{font-family:monospace;}</style>
+ <title>DBOX Movie Seats | micro.pinapelz.moe</title>
+
+ <meta name="author" content="map[avatar:https://files.catbox.moe/5r1pue.jpg banner:https://files.pinapelz.com/pso2ngs-2232-collab.png bio:yo! and he&#39;s more than a cover he&#39;s a quilt&lt;br/&gt;
+ General arcade rhythm game enjoyer (SDVX, IIDX, CHUNITHM)&lt;br/&gt;
+ Mostly play MMOs (FFXIV, OSRS), JRPGs, and VNs (anything with a good story)&lt;br/&gt;
+ I Watch only slice of life (and Bandori)&lt;br/&gt;
+ Arch Linux &#43; Hyprland user (btw)&lt;br/&gt;
+ Hi from the &lt;a href=&#34;https://indieweb.org/&#34;&gt;indieweb&lt;/a&gt;, if you are seeing me bridged elsewhere! email:yukais@pinapelz.com name:Pinapelz]">
+ <link rel="stylesheet" href="/css/style.css">
+
+
+
+ <link rel="me" href="https://github.com/pinapelz" />
+ <link rel="me" href="mailto:yukais@pinapelz.com" />
+ <link rel="me" href="https://sakurajima.social/@pinapelz" />
+ <link rel="me" href="https://bsky.app/profile/pinapelz.moe" /><link rel="pgpkey" href="https://pinapelz.com/Yukai_Shan.asc">
+ <link
+ rel="authorization_endpoint"
+ href="https://indieauth.com/auth"
+ />
+ <link
+ rel="token_endpoint"
+ href="https://tokens.indieauth.com/token"
+ />
+ <link rel="webmention" href="https://webmention.io/micro.pinapelz.moe/webmention" />
+
+
+
+</head>
+<body>
+ <header>
+ <div style="display:flex;flex-flow:row wrap;justify-content:space-between">
+ <div style="align-self:flex-start;">
+ ==============<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
+ ==============
+ </div>
+ <div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
+ </div>
+ <nav style="margin: 1rem auto;">
+
+
+ <a href="/posts/"><b>Posts</b></a>.
+
+ <a href="/categories/"><b>Categories</b></a>.
+
+ <a href="/tags/"><b>Tags</b></a>.
+
+
+ </nav>
+</header>
+
+
+
+ <main>
+ <article class="h-entry">
+ <a class="u-bridgy-fed" href="https://fed.brid.gy/" hidden="from-humans"></a>
+ <h1 class="p-name">DBOX Movie Seats</h1>
+ <div hidden><div class="h-card p-author bio-card" style="text-align:center;">
+
+ <div class="banner" style="margin-bottom: 1rem; position: relative;">
+ <img class="u-featured" src="https://files.pinapelz.com/pso2ngs-2232-collab.png" alt="Banner" style="width: 100%; max-width: 400px; height: auto; border-radius: 8px; opacity: 0.6;">
+ <img class="u-photo avatar" src="https://files.catbox.moe/5r1pue.jpg" alt="Pinapelz's avatar" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
+ </div>
+
+ <div class="bio">
+ <p class="p-note">yo! and he's more than a cover he's a quilt<br/>
+ General arcade rhythm game enjoyer (SDVX, IIDX, CHUNITHM)<br/>
+ Mostly play MMOs (FFXIV, OSRS), JRPGs, and VNs (anything with a good story)<br/>
+ I Watch only slice of life (and Bandori)<br/>
+ Arch Linux + Hyprland user (btw)<br/>
+ Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
+ </div>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+</div>
+<hr/>
+</div>
+
+
+ <div><b>
+ <time class="dt-published" datetime="2025-12-31T22:03:51-08:00">
+ Wednesday, December 31, 2025
+ </time>
+ - <a href="https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/" class="u-url u-uid" >Permalink</a>
+ </b></div>
+ <div class="article-meta"><span class="categories">
+ Categories:
+
+ <a href="/categories/default">default</a>
+
+ </span>--<span class="tags">
+ Tags:
+
+ #<a href="/tags/default" class="p-category">default</a>
+
+ </span></div><div class="e-content">
+ <p>There&rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.</p>
+<p>I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&rsquo;t a bad experience but given the markup, I don&rsquo;t think its worth it:</p>
+<ul>
+<li>First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble</li>
+<li>However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying</li>
+<li>For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&rsquo;d much rather just go to a theater that has the big comfy recliner seats</li>
+<li>I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&rsquo;re really looking forward to</li>
+<li>Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?</li>
+</ul>
+<p>Generally, though&hellip; I think I&rsquo;ll live without them.</p>
+
+ </div>
+
+
+
+
+
+
+ <section id="comments" class="webmentions">
+ <h2 class="wm-title">Webmentions</h2>
+ <div id="mentions" class="wm-list">Loading…</div>
+</section>
+
+<style>
+.webmentions {
+ margin-top: 2.5rem;
+ padding-top: 1rem;
+ border-top: 2px dashed var(--hrcolor);
+}
+
+.webmentions .wm-title {
+ color: var(--titlecolor);
+ margin-bottom: 1rem;
+}
+
+.wm-list {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+}
+
+
+.wm-reactions {
+ margin-bottom: 1.5rem;
+}
+
+.wm-reaction-group {
+ margin-bottom: 1rem;
+}
+
+.wm-reaction-title {
+ font-size: 1.1rem;
+ font-weight: 600;
+ color: var(--titlecolor);
+ margin-bottom: 0.5rem;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+.wm-avatar-grid {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px;
+ align-items: center;
+}
+
+.wm-avatar {
+ position: relative;
+ display: inline-block;
+}
+
+.wm-avatar img {
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ border: 2px solid var(--hrcolor);
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
+}
+
+.wm-avatar:hover img {
+ transform: scale(1.1);
+ box-shadow: 0 4px 12px rgba(255, 140, 200, 0.4);
+}
+
+.wm-avatar-tooltip {
+ position: absolute;
+ bottom: 120%;
+ left: 50%;
+ transform: translateX(-50%);
+ background: var(--blockquotecolor);
+ color: var(--titlecolor);
+ padding: 4px 8px;
+ border-radius: 4px;
+ font-size: 0.8rem;
+ white-space: nowrap;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 0.2s ease;
+ z-index: 10;
+ border: 1px solid var(--hrcolor);
+}
+
+.wm-avatar:hover .wm-avatar-tooltip {
+ opacity: 1;
+}
+
+
+.wm-comments-header {
+ font-size: 1.1rem;
+ font-weight: 600;
+ color: var(--titlecolor);
+ margin-bottom: 0.5rem;
+ margin-top: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+
+.wm-regular {
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+
+.wm {
+ display: flex;
+ gap: 0.6rem;
+ padding: 0.6rem 0.75rem;
+ border-radius: 10px;
+ background: var(--alertbgcolor);
+ border: 1px solid var(--hrcolor);
+ box-shadow: 0 0 6px rgba(255, 180, 220, 0.22);
+}
+
+.wm-author img {
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ box-shadow: 0 0 4px rgba(255, 140, 200, 0.35);
+}
+
+.wm-body {
+ flex: 1;
+ font-size: 0.9rem;
+}
+
+.wm-author-name a {
+ font-weight: 600;
+ color: var(--linkcolor);
+}
+
+.wm-type {
+ font-size: 0.8rem;
+ margin-top: 2px;
+ color: var(--titlecolor);
+}
+
+.wm-content {
+ margin-top: 4px;
+ padding: 6px 8px;
+ font-size: 0.9rem;
+ background: var(--blockquotecolor);
+ border-left: 3px solid var(--hrcolor);
+ border-radius: 6px;
+}
+
+.wm-meta {
+ margin-top: 3px;
+ font-size: 0.75rem;
+ opacity: 0.7;
+}
+
+.wm-meta a {
+ color: var(--linkcolor);
+}
+
+
+@media (max-width: 600px) {
+ .wm-avatar img {
+ width: 32px;
+ height: 32px;
+ }
+
+ .wm-avatar-grid {
+ gap: 3px;
+ }
+
+ .wm-reaction-title {
+ font-size: 1rem;
+ }
+
+ .wm-comments-header {
+ font-size: 1rem;
+ }
+}
+</style>
+
+<script>
+const PAGE_URL = "https:\/\/micro.pinapelz.moe\/posts\/2025-12-31-09-dbox-review\/";
+
+async function loadMentions() {
+ const url =
+ "https://webmention.io/api/mentions.jf2?domain=micro.pinapelz.moe&token=hdjQAqlZwgJmSuPSiU8h8w";
+
+ const res = await fetch(url);
+ const data = await res.json();
+
+ const container = document.getElementById("mentions");
+ container.innerHTML = "";
+
+
+ const mentions = data.children.filter(m => {
+ const t = m["wm-target"];
+ const inReply = m["in-reply-to"];
+ const likeOf = m["like-of"];
+ const repostOf = m["repost-of"];
+ const mentionOf = m["mention-of"];
+
+ return (
+ t === PAGE_URL ||
+ inReply === PAGE_URL ||
+ likeOf === PAGE_URL ||
+ repostOf === PAGE_URL ||
+ mentionOf === PAGE_URL
+ );
+ });
+
+ if (!mentions.length) {
+ container.innerHTML = "<p>No webmentions yet.</p>";
+ return;
+ }
+
+
+ const likes = mentions.filter(m => m["wm-property"] === "like-of");
+ const reposts = mentions.filter(m => m["wm-property"] === "repost-of");
+ const replies = mentions.filter(m => m["wm-property"] === "in-reply-to");
+ const regularMentions = mentions.filter(m =>
+ !["like-of", "repost-of", "in-reply-to"].includes(m["wm-property"])
+ );
+
+
+ const reactionsDiv = document.createElement("div");
+ reactionsDiv.className = "wm-reactions";
+
+
+ if (reposts.length > 0) {
+ const repostGroup = document.createElement("div");
+ repostGroup.className = "wm-reaction-group";
+
+ const repostTitle = document.createElement("div");
+ repostTitle.className = "wm-reaction-title";
+ repostTitle.textContent = `${reposts.length} Repost${reposts.length !== 1 ? 's' : ''}`;
+
+ const repostGrid = document.createElement("div");
+ repostGrid.className = "wm-avatar-grid";
+
+ reposts.forEach(mention => {
+ const author = mention.author || {};
+ const avatarDiv = document.createElement("div");
+ avatarDiv.className = "wm-avatar";
+
+ avatarDiv.innerHTML = `
+ <a href="${author.url || "#"}" target="_blank">
+ <img src="${author.photo || ""}" alt="${author.name || 'Unknown'}" />
+ </a>
+ <div class="wm-avatar-tooltip">${author.name || 'Unknown'}</div>
+ `;
+
+ repostGrid.appendChild(avatarDiv);
+ });
+
+ repostGroup.appendChild(repostTitle);
+ repostGroup.appendChild(repostGrid);
+ reactionsDiv.appendChild(repostGroup);
+ }
+
+
+ if (likes.length > 0) {
+ const likeGroup = document.createElement("div");
+ likeGroup.className = "wm-reaction-group";
+
+ const likeTitle = document.createElement("div");
+ likeTitle.className = "wm-reaction-title";
+ likeTitle.textContent = `${likes.length} Like${likes.length !== 1 ? 's' : ''}`;
+
+ const likeGrid = document.createElement("div");
+ likeGrid.className = "wm-avatar-grid";
+
+ likes.forEach(mention => {
+ const author = mention.author || {};
+ const avatarDiv = document.createElement("div");
+ avatarDiv.className = "wm-avatar";
+
+ avatarDiv.innerHTML = `
+ <a href="${author.url || "#"}" target="_blank">
+ <img src="${author.photo || ""}" alt="${author.name || 'Unknown'}" />
+ </a>
+ <div class="wm-avatar-tooltip">${author.name || 'Unknown'}</div>
+ `;
+
+ likeGrid.appendChild(avatarDiv);
+ });
+
+ likeGroup.appendChild(likeTitle);
+ likeGroup.appendChild(likeGrid);
+ reactionsDiv.appendChild(likeGroup);
+ }
+
+
+ if (reactionsDiv.children.length > 0) {
+ container.appendChild(reactionsDiv);
+ }
+
+
+ const regularMentionsToShow = [...replies, ...regularMentions];
+
+ if (regularMentionsToShow.length > 0) {
+
+ const commentsHeader = document.createElement("div");
+ commentsHeader.className = "wm-comments-header";
+ commentsHeader.textContent = "Comments";
+ container.appendChild(commentsHeader);
+
+ const regularDiv = document.createElement("div");
+ regularDiv.className = "wm-regular";
+
+ regularMentionsToShow.forEach(m => {
+ const div = document.createElement("div");
+ div.className = "wm";
+
+ const author = m.author || {};
+ const content = m.content || {};
+ const type =
+ m["wm-property"] === "in-reply-to" ? "replied 💬" :
+ "mentioned this";
+
+ div.innerHTML = `
+ <div class="wm-author">
+ <img src="${author.photo || ""}" alt="${author.name || 'Unknown'}">
+ </div>
+
+ <div class="wm-body">
+ <div class="wm-author-name">
+ <a href="${author.url || "#"}" target="_blank">
+ ${author.name || "Unknown"}
+ </a>
+ </div>
+
+ <div class="wm-type">${type}</div>
+
+ ${content.text ? `<div class="wm-content">${content.text}</div>` : ""}
+
+ <div class="wm-meta">
+ <a href="${m.url}" target="_blank">source</a> •
+ ${m["wm-received"]
+ ? new Date(m["wm-received"]).toLocaleString()
+ : ""}
+ </div>
+ </div>
+ `;
+ regularDiv.appendChild(div);
+ });
+
+ container.appendChild(regularDiv);
+ }
+
+
+ if (container.children.length === 0) {
+ container.innerHTML = "<p>No webmentions yet.</p>";
+ }
+}
+
+loadMentions();
+</script>
+
+ </article>
+ </main>
+
+ <hr />
+<footer>
+ <p>
+ <a href="https://github.com/pinapelz"><b>Github</b></a>.
+ <a href="https://pinapelz.moe"><b>pinapelz.moe</b></a>.
+ </p>
+
+
+
+ <p style="text-align: center" class="copyright">
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
+ </p>
+</footer>
+
+</body>
+</html>
diff --git a/micro.pinapelz.moe/posts/index.html b/micro.pinapelz.moe/posts/index.html
index abc0ca4..55777f9 100644
--- a/micro.pinapelz.moe/posts/index.html
+++ b/micro.pinapelz.moe/posts/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -111,7 +111,46 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+</div>
+<hr/>
+
+ </div>
+ <div class="post-title">
+ <time class="date dt-published" datetime="2025-12-31T22:03:51-08:00">31</time>:
+
+ <a href="https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/" class="u-url p-name title">
+ DBOX Movie Seats
+ </a>
+ </div>
+ </li>
+
+
+
+
+
+
+
+
+
+ <li class="h-entry">
+ <div hidden>
+ <div class="h-card p-author bio-card" style="text-align:center;">
+
+ <div class="banner" style="margin-bottom: 1rem; position: relative;">
+ <img class="u-featured" src="https://files.pinapelz.com/pso2ngs-2232-collab.png" alt="Banner" style="width: 100%; max-width: 400px; height: auto; border-radius: 8px; opacity: 0.6;">
+ <img class="u-photo avatar" src="https://files.catbox.moe/5r1pue.jpg" alt="Pinapelz's avatar" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
+ </div>
+
+ <div class="bio">
+ <p class="p-note">yo! and he's more than a cover he's a quilt<br/>
+ General arcade rhythm game enjoyer (SDVX, IIDX, CHUNITHM)<br/>
+ Mostly play MMOs (FFXIV, OSRS), JRPGs, and VNs (anything with a good story)<br/>
+ I Watch only slice of life (and Bandori)<br/>
+ Arch Linux + Hyprland user (btw)<br/>
+ Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
+ </div>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -119,7 +158,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-19T22:15:50-08:00">19</time>:
- <a href="http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/" class="u-url p-name title">
Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)
</a>
</div>
@@ -150,7 +189,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -158,7 +197,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-18T21:38:23-08:00">18</time>:
- <a href="http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/" class="u-url p-name title">
Arcade Monsters
</a>
</div>
@@ -189,7 +228,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -197,7 +236,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-06T22:33:23-08:00">06</time>:
- <a href="http://localhost:1313/posts/2025-12-06-first-sdvx-18/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/" class="u-url p-name title">
First MXM 18 Cleared!
</a>
</div>
@@ -228,7 +267,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -236,7 +275,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-04T23:19:29-08:00">04</time>:
- <a href="http://localhost:1313/posts/2025-12-04-procon2-hid-tool/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/" class="u-url p-name title">
Enable HID Mode on Nintendo Pro Controller 2
</a>
</div>
@@ -267,7 +306,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -275,7 +314,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-03T19:38:52-08:00">03</time>:
- <a href="http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/" class="u-url p-name title">
YouTube Music Recap 2025
</a>
</div>
@@ -306,7 +345,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -314,7 +353,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-02T19:45:01-08:00">02</time>:
- <a href="http://localhost:1313/posts/2025-12-02-power-bank-recall/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/" class="u-url p-name title">
INIU Power Bank Gets Recall
</a>
</div>
@@ -345,7 +384,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -353,7 +392,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-02T00:22:32-08:00">02</time>:
- <a href="http://localhost:1313/posts/2025-12-02-china-town-fair/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/" class="u-url p-name title">
China Town Fair
</a>
</div>
@@ -384,7 +423,7 @@
Arch Linux + Hyprland user (btw)<br/>
Hi from the <a href="https://indieweb.org/">indieweb</a>, if you are seeing me bridged elsewhere!</p>
</div>
- <p class="bio-name"><a href="http://localhost:1313/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
+ <p class="bio-name"><a href="https://micro.pinapelz.moe/" rel="me" class="p-nickname p-name u-url">Pinapelz</a></p>
</div>
<hr/>
@@ -392,7 +431,7 @@
<div class="post-title">
<time class="date dt-published" datetime="2025-12-01T20:11:57-08:00">01</time>:
- <a href="http://localhost:1313/posts/2025-12-01-hello-world/" class="u-url p-name title">
+ <a href="https://micro.pinapelz.moe/posts/2025-12-01-hello-world/" class="u-url p-name title">
Hello World - Why This
</a>
</div>
@@ -423,7 +462,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/posts/index.xml b/micro.pinapelz.moe/posts/index.xml
index d122e52..5ef4720 100644
--- a/micro.pinapelz.moe/posts/index.xml
+++ b/micro.pinapelz.moe/posts/index.xml
@@ -2,68 +2,75 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Posts on micro.pinapelz.moe</title>
- <link>http://localhost:1313/posts/</link>
+ <link>https://micro.pinapelz.moe/posts/</link>
<description>Recent content in Posts on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/posts/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>DBOX Movie Seats</title>
+ <link>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</guid>
+ <description>&lt;p&gt;There&amp;rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.&lt;/p&gt;&#xA;&lt;p&gt;I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&amp;rsquo;t a bad experience but given the markup, I don&amp;rsquo;t think its worth it:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble&lt;/li&gt;&#xA;&lt;li&gt;However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying&lt;/li&gt;&#xA;&lt;li&gt;For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&amp;rsquo;d much rather just go to a theater that has the big comfy recliner seats&lt;/li&gt;&#xA;&lt;li&gt;I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&amp;rsquo;re really looking forward to&lt;/li&gt;&#xA;&lt;li&gt;Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generally, though&amp;hellip; I think I&amp;rsquo;ll live without them.&lt;/p&gt;</description>
+ </item>
<item>
<title>Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</title>
- <link>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
- <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
+ <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
</item>
<item>
<title>Arcade Monsters</title>
- <link>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</link>
<pubDate>Thu, 18 Dec 2025 21:38:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</guid>
<description>&lt;p&gt;If you live in Socal and are also into arcade gaming (both retro and modern), one of the great weekend day-trips I&amp;rsquo;ve found is taking the Pacific Surfliner train down to San Diego.&lt;/p&gt;&#xA;&lt;h1 id=&#34;getting-there&#34;&gt;Getting There&lt;/h1&gt;&#xA;&lt;p&gt;There are a number of departures in the morning, and while not as fast as a car when there&amp;rsquo;s no traffic, you can save your energy and do other stuff on the train. The timetable also works nicely since you can pretty much get there around opening if you want to beat the crowds.&lt;/p&gt;</description>
</item>
<item>
<title>First MXM 18 Cleared!</title>
- <link>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</link>
<pubDate>Sat, 06 Dec 2025 22:33:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</guid>
- <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</guid>
+ <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
</item>
<item>
<title>Enable HID Mode on Nintendo Pro Controller 2</title>
- <link>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</guid>
<description>&lt;p&gt;Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&amp;rsquo;t work out of box on PC (Linux) for me like it&amp;rsquo;s predacessor. Until there&amp;rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&amp;rsquo;s a hacky Python script to initialize HID-mode on the controller&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# I only tested this script on Linux w/ Steam but in theory it shoud work on Windows?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.core &lt;span style=&#34;color:#75715e&#34;&gt;# install pyusb first: pip install pyusb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.util&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x057E&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_IDS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2066&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (L)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2067&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (R)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2069&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pro Controller&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2073&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GCN Controller&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USB_INTERFACE_NUMBER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INIT_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0d&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x07 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x16&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REQUEST_CONTROLLER_MAC &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0e&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LTK_REQUEST &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x15_ARG_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x09 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x02 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x0A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x14&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x35&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x46&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x04 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENABLE_HAPTICS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x10 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x01 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x0A_ALT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_usb_data&lt;/span&gt;(ep_out, ep_in, data, description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(data)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ep_in&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read(&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;, timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; hex_resp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; response])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Response: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;hex_resp&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;errno &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;110&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] No response (Timeout)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Read Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Write Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;set_player_leds&lt;/span&gt;(ep_out, ep_in, led_mask):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; command &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; led_mask,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, bytes(command), &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Set LED Mask: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;led_mask&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;connect_usb&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Searching for Nintendo Switch Controllers...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;match_device&lt;/span&gt;(dev):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idVendor &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; PRODUCT_IDS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find(custom_match&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;match_device)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Device not found&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; product_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PRODUCT_IDS&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown Device&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;product_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (ID: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;04x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;is_kernel_driver_active(USB_INTERFACE_NUMBER):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Detaching kernel driver...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;detach_kernel_driver(USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not detach kernel driver: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;set_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Configuration set.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error setting configuration: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;claim_interface(dev, USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Interface &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;USB_INTERFACE_NUMBER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; claimed.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not claim interface: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; cfg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_active_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cfg[(USB_INTERFACE_NUMBER,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_OUT)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_in &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_IN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; ep_out:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not find OUT endpoint&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found Endpoint OUT: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Starting Initialization Sequence...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, INIT_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Init 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x07, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x07&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x16, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x16&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, REQUEST_CONTROLLER_MAC, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req MAC&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, LTK_REQUEST, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req LTK&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x15_ARG_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x15&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x09, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x09&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x02, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x02&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x11, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x11&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x0A, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x0A&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x04, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x04&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, ENABLE_HAPTICS, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enable Haptics&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x10, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x10&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x01, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x01&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x0A_ALT, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x0A Alt&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; set_player_leds(ep_out, ep_in, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0F&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Controller initialization sequence complete! All LEDs should be on.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error during sequence: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; connect_usb()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unexpected error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;/p&gt;</description>
</item>
<item>
<title>YouTube Music Recap 2025</title>
- <link>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</link>
<pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</guid>
<description>&lt;p&gt;Its all Bandori. At least 75% of that MyGO!!!!! listening time was probably Haruhikage since I came back to Bandori and had to catch up before watching Ave Mujica anime.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://files.catbox.moe/tsquqc.jpg&#34;&#xA; alt=&#34;YouTube Music Recap Top 5 Artists In Order: MyGO!!!!!, Yumenokessho, Ave Mujica, KMNZ, Roselia&#34; width=&#34;300&#34;&gt;&#xA;&lt;/figure&gt;</description>
</item>
<item>
<title>INIU Power Bank Gets Recall</title>
- <link>http://localhost:1313/posts/2025-12-02-power-bank-recall/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</link>
<pubDate>Tue, 02 Dec 2025 19:45:01 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-power-bank-recall/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</guid>
<description>&lt;p&gt;It would seem that I, along with what seems like the entirety of &lt;a href=&#34;https://www.reddit.com/r/amazonprime/comments/1pcq5ug/how_to_get_customer_support_for_recall_iniu/&#34;&gt;Reddit&lt;/a&gt; bought the same cheap 10000mAh power bank and now its getting recalled.&lt;/p&gt;&#xA;&lt;p&gt;I wonder if it has anything to do with the poor quality they found in that viral &lt;a href=&#34;https://www.lumafield.com/first-article/posts/whats-hiding-inside-haribos-power-bank-and-headphones&#34;&gt;Haribo Powerbank&lt;/a&gt;. Not sure since I&amp;rsquo;ve had this one for a long time. I guess I really got what I paid for, shame cause it really is super slim and works well.&lt;/p&gt;</description>
</item>
<item>
<title>China Town Fair</title>
- <link>http://localhost:1313/posts/2025-12-02-china-town-fair/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</link>
<pubDate>Tue, 02 Dec 2025 00:22:32 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-china-town-fair/</guid>
- <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</guid>
+ <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
</item>
<item>
<title>Hello World - Why This</title>
- <link>http://localhost:1313/posts/2025-12-01-hello-world/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</link>
<pubDate>Mon, 01 Dec 2025 20:11:57 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-01-hello-world/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</guid>
<description>&lt;p&gt;I think having control of your own data is great. The same is true for decentralized social media. I&amp;rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &amp;ldquo;decentralized&amp;rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &amp;ldquo;social media&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;twitterx&#34;&gt;Twitter/X&lt;/h2&gt;&#xA;&lt;p&gt;This is fairly self explanatory. The rebranding of Twitter to X and Musk&amp;rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&amp;rsquo;t a particular fan of. You can&amp;rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&amp;rsquo;s just a lot of &amp;ldquo;features&amp;rdquo; here I&amp;rsquo;m not a fan of. Needless to say, there&amp;rsquo;s a lot of reasons to not post stuff there.&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/posts/page/1/index.html b/micro.pinapelz.moe/posts/page/1/index.html
index d88ccc2..1c21f92 100644
--- a/micro.pinapelz.moe/posts/page/1/index.html
+++ b/micro.pinapelz.moe/posts/page/1/index.html
@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
- <title>http://localhost:1313/posts/</title>
- <link rel="canonical" href="http://localhost:1313/posts/">
+ <title>https://micro.pinapelz.moe/posts/</title>
+ <link rel="canonical" href="https://micro.pinapelz.moe/posts/">
<meta charset="utf-8">
- <meta http-equiv="refresh" content="0; url=http://localhost:1313/posts/">
+ <meta http-equiv="refresh" content="0; url=https://micro.pinapelz.moe/posts/">
</head>
</html>
diff --git a/micro.pinapelz.moe/sitemap.xml b/micro.pinapelz.moe/sitemap.xml
index 5ca9d98..d54987a 100644
--- a/micro.pinapelz.moe/sitemap.xml
+++ b/micro.pinapelz.moe/sitemap.xml
@@ -2,76 +2,79 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
- <loc>http://localhost:1313/categories/</loc>
- <lastmod>2025-12-19T22:15:50-08:00</lastmod>
+ <loc>https://micro.pinapelz.moe/categories/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/categories/games/</loc>
- <lastmod>2025-12-19T22:15:50-08:00</lastmod>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/</loc>
- <lastmod>2025-12-19T22:15:50-08:00</lastmod>
+ <loc>https://micro.pinapelz.moe/categories/default/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/playlog/</loc>
- <lastmod>2025-12-19T22:15:50-08:00</lastmod>
+ <loc>https://micro.pinapelz.moe/tags/default/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
+ </url><url>
+ <loc>https://micro.pinapelz.moe/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
+ </url><url>
+ <loc>https://micro.pinapelz.moe/posts/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</loc>
+ <loc>https://micro.pinapelz.moe/tags/</loc>
+ <lastmod>2025-12-31T22:03:51-08:00</lastmod>
+ </url><url>
+ <loc>https://micro.pinapelz.moe/categories/games/</loc>
<lastmod>2025-12-19T22:15:50-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/</loc>
+ <loc>https://micro.pinapelz.moe/tags/playlog/</loc>
<lastmod>2025-12-19T22:15:50-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</loc>
<lastmod>2025-12-19T22:15:50-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/arcade/</loc>
+ <loc>https://micro.pinapelz.moe/tags/arcade/</loc>
<lastmod>2025-12-18T21:38:23-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</loc>
<lastmod>2025-12-18T21:38:23-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</loc>
<lastmod>2025-12-06T22:33:23-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/code/</loc>
+ <loc>https://micro.pinapelz.moe/tags/code/</loc>
<lastmod>2025-12-04T23:19:29-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</loc>
<lastmod>2025-12-04T23:19:29-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/nintendo/</loc>
+ <loc>https://micro.pinapelz.moe/tags/nintendo/</loc>
<lastmod>2025-12-04T23:19:29-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/categories/tools/</loc>
+ <loc>https://micro.pinapelz.moe/categories/tools/</loc>
<lastmod>2025-12-04T23:19:29-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/anime/</loc>
- <lastmod>2025-12-03T19:38:52-08:00</lastmod>
- </url><url>
- <loc>http://localhost:1313/categories/default/</loc>
+ <loc>https://micro.pinapelz.moe/tags/anime/</loc>
<lastmod>2025-12-03T19:38:52-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</loc>
<lastmod>2025-12-03T19:38:52-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/indie/follows/</loc>
+ <loc>https://micro.pinapelz.moe/indie/follows/</loc>
<lastmod>2025-12-03T01:17:39-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/indie/</loc>
+ <loc>https://micro.pinapelz.moe/indie/</loc>
<lastmod>2025-12-03T01:17:39-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/tags/default/</loc>
- <lastmod>2025-12-02T19:45:01-08:00</lastmod>
- </url><url>
- <loc>http://localhost:1313/posts/2025-12-02-power-bank-recall/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</loc>
<lastmod>2025-12-02T19:45:01-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-02-china-town-fair/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</loc>
<lastmod>2025-12-02T00:22:32-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/categories/life/</loc>
+ <loc>https://micro.pinapelz.moe/categories/life/</loc>
<lastmod>2025-12-02T00:22:32-08:00</lastmod>
</url><url>
- <loc>http://localhost:1313/posts/2025-12-01-hello-world/</loc>
+ <loc>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</loc>
<lastmod>2025-12-01T20:11:57-08:00</lastmod>
</url>
</urlset>
diff --git a/micro.pinapelz.moe/tags/anime/index.html b/micro.pinapelz.moe/tags/anime/index.html
index a7d9554..3d22213 100644
--- a/micro.pinapelz.moe/tags/anime/index.html
+++ b/micro.pinapelz.moe/tags/anime/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Anime
- <a href="http://localhost:1313/tags/anime/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/anime/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/anime/index.xml b/micro.pinapelz.moe/tags/anime/index.xml
index df7c58d..66a1547 100644
--- a/micro.pinapelz.moe/tags/anime/index.xml
+++ b/micro.pinapelz.moe/tags/anime/index.xml
@@ -2,19 +2,19 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Anime on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/anime/</link>
+ <link>https://micro.pinapelz.moe/tags/anime/</link>
<description>Recent content in Anime on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Wed, 03 Dec 2025 19:38:52 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/anime/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/tags/anime/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>YouTube Music Recap 2025</title>
- <link>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</link>
<pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-03-04-yt-music-rewind/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-03-04-yt-music-rewind/</guid>
<description>&lt;p&gt;Its all Bandori. At least 75% of that MyGO!!!!! listening time was probably Haruhikage since I came back to Bandori and had to catch up before watching Ave Mujica anime.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://files.catbox.moe/tsquqc.jpg&#34;&#xA; alt=&#34;YouTube Music Recap Top 5 Artists In Order: MyGO!!!!!, Yumenokessho, Ave Mujica, KMNZ, Roselia&#34; width=&#34;300&#34;&gt;&#xA;&lt;/figure&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/tags/arcade/index.html b/micro.pinapelz.moe/tags/arcade/index.html
index 835dfdc..1c2374f 100644
--- a/micro.pinapelz.moe/tags/arcade/index.html
+++ b/micro.pinapelz.moe/tags/arcade/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Arcade
- <a href="http://localhost:1313/tags/arcade/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/arcade/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -112,7 +112,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/arcade/index.xml b/micro.pinapelz.moe/tags/arcade/index.xml
index 3d39456..0845666 100644
--- a/micro.pinapelz.moe/tags/arcade/index.xml
+++ b/micro.pinapelz.moe/tags/arcade/index.xml
@@ -2,34 +2,34 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Arcade on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/arcade/</link>
+ <link>https://micro.pinapelz.moe/tags/arcade/</link>
<description>Recent content in Arcade on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Thu, 18 Dec 2025 21:38:23 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/arcade/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/tags/arcade/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Arcade Monsters</title>
- <link>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</link>
<pubDate>Thu, 18 Dec 2025 21:38:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-18-07-arcade-monsters-sd/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-18-07-arcade-monsters-sd/</guid>
<description>&lt;p&gt;If you live in Socal and are also into arcade gaming (both retro and modern), one of the great weekend day-trips I&amp;rsquo;ve found is taking the Pacific Surfliner train down to San Diego.&lt;/p&gt;&#xA;&lt;h1 id=&#34;getting-there&#34;&gt;Getting There&lt;/h1&gt;&#xA;&lt;p&gt;There are a number of departures in the morning, and while not as fast as a car when there&amp;rsquo;s no traffic, you can save your energy and do other stuff on the train. The timetable also works nicely since you can pretty much get there around opening if you want to beat the crowds.&lt;/p&gt;</description>
</item>
<item>
<title>First MXM 18 Cleared!</title>
- <link>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</link>
<pubDate>Sat, 06 Dec 2025 22:33:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-06-first-sdvx-18/</guid>
- <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/</guid>
+ <description>&lt;p&gt;Cleared my first 18 difficulty chart in &#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/sdvx&#34; class=&#34;p-category&#34;&gt;#sdvx&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Albeit its not a very difficult one, but I think I&amp;rsquo;m finally starting to chip away at the 17-18 difficulty wall.&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-06-first-sdvx-18/18.webp&#34;&#xA; alt=&#34;Sound Voltex Enchant 6 Clear&#34; width=&#34;500&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
</item>
<item>
<title>China Town Fair</title>
- <link>http://localhost:1313/posts/2025-12-02-china-town-fair/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</link>
<pubDate>Tue, 02 Dec 2025 00:22:32 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-china-town-fair/</guid>
- <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;http://localhost:1313/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/</guid>
+ <description>&lt;p&gt;Visited New York during the Thanksgiving break and had a chance to stopped by one of the most legendary landmarks North American arcade gaming history.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://micro.pinapelz.moe/posts/2025-12-02-china-town-fair/outside-ctf.webp&#34;&#xA; alt=&#34;China Town Fair Outside&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Also yep you&amp;rsquo;re reading that right, it indeed once home to a &lt;a href=&#34;https://davidpotorti.substack.com/p/the-dancing-chicken&#34;&gt;dancing chicken as well as one that played tic tac toe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But apart from just being an old arcade, it was also home to one of the largest competitive arcade game fighting scene (Marvel vs Capcom, Street Fighter, etc.). Many of NAs top players frequented this arcade. However, as we all already know video arcades began to die down during the early 2000s and China Town Fair was no exception having closed in 2011.&lt;/p&gt;</description>
</item>
</channel>
</rss>
diff --git a/micro.pinapelz.moe/tags/code/index.html b/micro.pinapelz.moe/tags/code/index.html
index 1e05a88..364c5f4 100644
--- a/micro.pinapelz.moe/tags/code/index.html
+++ b/micro.pinapelz.moe/tags/code/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Code
- <a href="http://localhost:1313/tags/code/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/code/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/code/index.xml b/micro.pinapelz.moe/tags/code/index.xml
index 7b1c46a..a8b7d04 100644
--- a/micro.pinapelz.moe/tags/code/index.xml
+++ b/micro.pinapelz.moe/tags/code/index.xml
@@ -2,19 +2,19 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Code on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/code/</link>
+ <link>https://micro.pinapelz.moe/tags/code/</link>
<description>Recent content in Code on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Thu, 04 Dec 2025 23:19:29 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/code/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/tags/code/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Enable HID Mode on Nintendo Pro Controller 2</title>
- <link>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</guid>
<description>&lt;p&gt;Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&amp;rsquo;t work out of box on PC (Linux) for me like it&amp;rsquo;s predacessor. Until there&amp;rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&amp;rsquo;s a hacky Python script to initialize HID-mode on the controller&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# I only tested this script on Linux w/ Steam but in theory it shoud work on Windows?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.core &lt;span style=&#34;color:#75715e&#34;&gt;# install pyusb first: pip install pyusb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.util&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x057E&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_IDS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2066&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (L)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2067&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (R)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2069&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pro Controller&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2073&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GCN Controller&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USB_INTERFACE_NUMBER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INIT_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0d&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x07 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x16&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REQUEST_CONTROLLER_MAC &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0e&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LTK_REQUEST &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x15_ARG_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x09 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x02 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x0A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x14&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x35&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x46&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x04 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENABLE_HAPTICS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x10 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x01 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x0A_ALT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_usb_data&lt;/span&gt;(ep_out, ep_in, data, description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(data)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ep_in&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read(&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;, timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; hex_resp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; response])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Response: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;hex_resp&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;errno &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;110&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] No response (Timeout)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Read Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Write Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;set_player_leds&lt;/span&gt;(ep_out, ep_in, led_mask):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; command &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; led_mask,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, bytes(command), &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Set LED Mask: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;led_mask&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;connect_usb&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Searching for Nintendo Switch Controllers...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;match_device&lt;/span&gt;(dev):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idVendor &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; PRODUCT_IDS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find(custom_match&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;match_device)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Device not found&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; product_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PRODUCT_IDS&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown Device&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;product_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (ID: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;04x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;is_kernel_driver_active(USB_INTERFACE_NUMBER):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Detaching kernel driver...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;detach_kernel_driver(USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not detach kernel driver: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;set_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Configuration set.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error setting configuration: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;claim_interface(dev, USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Interface &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;USB_INTERFACE_NUMBER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; claimed.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not claim interface: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; cfg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_active_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cfg[(USB_INTERFACE_NUMBER,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_OUT)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_in &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_IN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; ep_out:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not find OUT endpoint&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found Endpoint OUT: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Starting Initialization Sequence...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, INIT_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Init 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x07, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x07&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x16, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x16&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, REQUEST_CONTROLLER_MAC, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req MAC&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, LTK_REQUEST, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req LTK&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x15_ARG_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x15&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x09, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x09&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x02, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x02&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x11, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x11&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x0A, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x0A&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x04, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x04&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, ENABLE_HAPTICS, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enable Haptics&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x10, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x10&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x01, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x01&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x0A_ALT, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x0A Alt&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; set_player_leds(ep_out, ep_in, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0F&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Controller initialization sequence complete! All LEDs should be on.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error during sequence: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; connect_usb()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unexpected error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/tags/default/index.html b/micro.pinapelz.moe/tags/default/index.html
index 14cd454..deb66e6 100644
--- a/micro.pinapelz.moe/tags/default/index.html
+++ b/micro.pinapelz.moe/tags/default/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Default
- <a href="http://localhost:1313/tags/default/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/default/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -79,6 +79,13 @@
<ul>
<li>
+ <time class="date dt-published" datetime="2025-12-31T22:03:51-08:00">2025-12-31</time>
+ <a href="/posts/2025-12-31-09-dbox-review/">DBOX Movie Seats</a>
+ </li>
+
+
+
+ <li>
<time class="date dt-published" datetime="2025-12-02T19:45:01-08:00">2025-12-02</time>
<a href="/posts/2025-12-02-power-bank-recall/">INIU Power Bank Gets Recall</a>
</li>
@@ -105,7 +112,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/default/index.xml b/micro.pinapelz.moe/tags/default/index.xml
index 5a7cf4c..c740756 100644
--- a/micro.pinapelz.moe/tags/default/index.xml
+++ b/micro.pinapelz.moe/tags/default/index.xml
@@ -2,26 +2,33 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Default on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/default/</link>
+ <link>https://micro.pinapelz.moe/tags/default/</link>
<description>Recent content in Default on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Tue, 02 Dec 2025 19:45:01 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/default/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/tags/default/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>DBOX Movie Seats</title>
+ <link>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-31-09-dbox-review/</guid>
+ <description>&lt;p&gt;There&amp;rsquo;s a thing here in Canada where certain theaters have these special seats that rumble and move in motion with whats happening on screen.&lt;/p&gt;&#xA;&lt;p&gt;I recently saw the new Avatar (Fire and Ash) in one of these seats. It wasn&amp;rsquo;t a bad experience but given the markup, I don&amp;rsquo;t think its worth it:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First it is fun (sometimes). For example when they were flying through the air, the seat would tilt in the motion of them flying. Or when there was an explosion/gunfire, the seat would rumble&lt;/li&gt;&#xA;&lt;li&gt;However, for me I think they overdid it at times, literately the seat would move and rumble for the smallest things. So it was kind of like a constant thing throughout the whole film. For me its a bit annoying&lt;/li&gt;&#xA;&lt;li&gt;For the $10-15 extra (I think I paid a bit more cause the movie was also in 3D), I&amp;rsquo;d much rather just go to a theater that has the big comfy recliner seats&lt;/li&gt;&#xA;&lt;li&gt;I think for the right movie (maybe something heavy on action or horror) this could be a solid purchase if its a movie you&amp;rsquo;re really looking forward to&lt;/li&gt;&#xA;&lt;li&gt;Or I also know that some people see movies multiple times, so maybe this can be a good option for a 2nd viewing?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generally, though&amp;hellip; I think I&amp;rsquo;ll live without them.&lt;/p&gt;</description>
+ </item>
<item>
<title>INIU Power Bank Gets Recall</title>
- <link>http://localhost:1313/posts/2025-12-02-power-bank-recall/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</link>
<pubDate>Tue, 02 Dec 2025 19:45:01 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-02-power-bank-recall/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-02-power-bank-recall/</guid>
<description>&lt;p&gt;It would seem that I, along with what seems like the entirety of &lt;a href=&#34;https://www.reddit.com/r/amazonprime/comments/1pcq5ug/how_to_get_customer_support_for_recall_iniu/&#34;&gt;Reddit&lt;/a&gt; bought the same cheap 10000mAh power bank and now its getting recalled.&lt;/p&gt;&#xA;&lt;p&gt;I wonder if it has anything to do with the poor quality they found in that viral &lt;a href=&#34;https://www.lumafield.com/first-article/posts/whats-hiding-inside-haribos-power-bank-and-headphones&#34;&gt;Haribo Powerbank&lt;/a&gt;. Not sure since I&amp;rsquo;ve had this one for a long time. I guess I really got what I paid for, shame cause it really is super slim and works well.&lt;/p&gt;</description>
</item>
<item>
<title>Hello World - Why This</title>
- <link>http://localhost:1313/posts/2025-12-01-hello-world/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</link>
<pubDate>Mon, 01 Dec 2025 20:11:57 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-01-hello-world/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-01-hello-world/</guid>
<description>&lt;p&gt;I think having control of your own data is great. The same is true for decentralized social media. I&amp;rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &amp;ldquo;decentralized&amp;rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &amp;ldquo;social media&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;twitterx&#34;&gt;Twitter/X&lt;/h2&gt;&#xA;&lt;p&gt;This is fairly self explanatory. The rebranding of Twitter to X and Musk&amp;rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&amp;rsquo;t a particular fan of. You can&amp;rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&amp;rsquo;s just a lot of &amp;ldquo;features&amp;rdquo; here I&amp;rsquo;m not a fan of. Needless to say, there&amp;rsquo;s a lot of reasons to not post stuff there.&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/tags/index.html b/micro.pinapelz.moe/tags/index.html
index 11fe827..a384a4d 100644
--- a/micro.pinapelz.moe/tags/index.html
+++ b/micro.pinapelz.moe/tags/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Tags
- <a href="http://localhost:1313/tags/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -97,7 +97,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/index.xml b/micro.pinapelz.moe/tags/index.xml
index 448582e..9766647 100644
--- a/micro.pinapelz.moe/tags/index.xml
+++ b/micro.pinapelz.moe/tags/index.xml
@@ -2,54 +2,54 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/</link>
+ <link>https://micro.pinapelz.moe/tags/</link>
<description>Recent content in Tags on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
- <lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 31 Dec 2025 22:03:51 -0800</lastBuildDate>
+ <atom:link href="https://micro.pinapelz.moe/tags/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>Default</title>
+ <link>https://micro.pinapelz.moe/tags/default/</link>
+ <pubDate>Wed, 31 Dec 2025 22:03:51 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
+ <guid>https://micro.pinapelz.moe/tags/default/</guid>
+ <description></description>
+ </item>
<item>
<title>Playlog</title>
- <link>http://localhost:1313/tags/playlog/</link>
+ <link>https://micro.pinapelz.moe/tags/playlog/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/playlog/</guid>
+ <guid>https://micro.pinapelz.moe/tags/playlog/</guid>
<description></description>
</item>
<item>
<title>Arcade</title>
- <link>http://localhost:1313/tags/arcade/</link>
+ <link>https://micro.pinapelz.moe/tags/arcade/</link>
<pubDate>Thu, 18 Dec 2025 21:38:23 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/arcade/</guid>
+ <guid>https://micro.pinapelz.moe/tags/arcade/</guid>
<description></description>
</item>
<item>
<title>Code</title>
- <link>http://localhost:1313/tags/code/</link>
+ <link>https://micro.pinapelz.moe/tags/code/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/code/</guid>
+ <guid>https://micro.pinapelz.moe/tags/code/</guid>
<description></description>
</item>
<item>
<title>Nintendo</title>
- <link>http://localhost:1313/tags/nintendo/</link>
+ <link>https://micro.pinapelz.moe/tags/nintendo/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/nintendo/</guid>
+ <guid>https://micro.pinapelz.moe/tags/nintendo/</guid>
<description></description>
</item>
<item>
<title>Anime</title>
- <link>http://localhost:1313/tags/anime/</link>
+ <link>https://micro.pinapelz.moe/tags/anime/</link>
<pubDate>Wed, 03 Dec 2025 19:38:52 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/anime/</guid>
- <description></description>
- </item>
- <item>
- <title>Default</title>
- <link>http://localhost:1313/tags/default/</link>
- <pubDate>Tue, 02 Dec 2025 19:45:01 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/tags/default/</guid>
+ <guid>https://micro.pinapelz.moe/tags/anime/</guid>
<description></description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/tags/nintendo/index.html b/micro.pinapelz.moe/tags/nintendo/index.html
index 45ed88a..3680dcf 100644
--- a/micro.pinapelz.moe/tags/nintendo/index.html
+++ b/micro.pinapelz.moe/tags/nintendo/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Nintendo
- <a href="http://localhost:1313/tags/nintendo/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/nintendo/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/nintendo/index.xml b/micro.pinapelz.moe/tags/nintendo/index.xml
index e2b3426..75a6acd 100644
--- a/micro.pinapelz.moe/tags/nintendo/index.xml
+++ b/micro.pinapelz.moe/tags/nintendo/index.xml
@@ -2,19 +2,19 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Nintendo on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/nintendo/</link>
+ <link>https://micro.pinapelz.moe/tags/nintendo/</link>
<description>Recent content in Nintendo on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Thu, 04 Dec 2025 23:19:29 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/nintendo/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/tags/nintendo/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Enable HID Mode on Nintendo Pro Controller 2</title>
- <link>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</link>
<pubDate>Thu, 04 Dec 2025 23:19:29 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-04-procon2-hid-tool/</guid>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-04-procon2-hid-tool/</guid>
<description>&lt;p&gt;Switch 2 Pro Controller is very comfy in my hands, but unfortunately it didn&amp;rsquo;t work out of box on PC (Linux) for me like it&amp;rsquo;s predacessor. Until there&amp;rsquo;s actual better driver support for this thing in the kernel (or Valve does something), here&amp;rsquo;s a hacky Python script to initialize HID-mode on the controller&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# I only tested this script on Linux w/ Steam but in theory it shoud work on Windows?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.core &lt;span style=&#34;color:#75715e&#34;&gt;# install pyusb first: pip install pyusb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; usb.util&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; sys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x057E&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_IDS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2066&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (L)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2067&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Joy-Con (R)&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2069&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pro Controller&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x2073&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GCN Controller&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USB_INTERFACE_NUMBER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INIT_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0d&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x07 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x16&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REQUEST_CONTROLLER_MAC &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0e&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LTK_REQUEST &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xFF&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x15_ARG_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x15&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x09 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x02 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x11&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;UNKNOWN_COMMAND_0x0A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x14&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0xff&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x35&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x46&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IMU_COMMAND_0x04 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x27&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENABLE_HAPTICS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x10 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x01 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0c&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x03 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OUT_UNKNOWN_COMMAND_0x0A_ALT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bytes([&lt;span style=&#34;color:#ae81ff&#34;&gt;0x0a&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x02&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x04&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_usb_data&lt;/span&gt;(ep_out, ep_in, data, description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(data)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; time&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ep_in&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;read(&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;, timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; hex_resp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; response])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Response: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;hex_resp&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;errno &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;110&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] No response (Timeout)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Read Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;description&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;] Write Error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;set_player_leds&lt;/span&gt;(ep_out, ep_in, led_mask):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; command &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x09&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x91&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x07&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x08&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; led_mask,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x00&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, bytes(command), &lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Set LED Mask: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;led_mask&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;connect_usb&lt;/span&gt;():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Searching for Nintendo Switch Controllers...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;match_device&lt;/span&gt;(dev):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idVendor &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; VENDOR_ID &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; PRODUCT_IDS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find(custom_match&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;match_device)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev &lt;span style=&#34;color:#f92672&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;raise&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Device not found&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; product_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PRODUCT_IDS&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown Device&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;product_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (ID: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;idProduct&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;04x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;)&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;is_kernel_driver_active(USB_INTERFACE_NUMBER):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Detaching kernel driver...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;detach_kernel_driver(USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not detach kernel driver: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;set_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Configuration set.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error setting configuration: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;claim_interface(dev, USB_INTERFACE_NUMBER)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Interface &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;USB_INTERFACE_NUMBER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; claimed.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;USBError &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not claim interface: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; cfg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dev&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_active_configuration()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; cfg[(USB_INTERFACE_NUMBER,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_out &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_OUT)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; ep_in &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;find_descriptor(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; intf,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; custom_match &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;lambda&lt;/span&gt; e: usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;endpoint_direction(e&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; usb&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;util&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ENDPOINT_IN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; ep_out:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sys&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;exit(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Could not find OUT endpoint&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Found Endpoint OUT: 0x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;ep_out&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bEndpointAddress&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;02x&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Starting Initialization Sequence...&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, INIT_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Init 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x07, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x07&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x16, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x16&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, REQUEST_CONTROLLER_MAC, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req MAC&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, LTK_REQUEST, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Req LTK&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x15_ARG_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x15&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x09, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x09&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x02, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x02&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x11, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x11&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, UNKNOWN_COMMAND_0x0A, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown 0x0A&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, IMU_COMMAND_0x04, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMU 0x04&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, ENABLE_HAPTICS, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enable Haptics&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x10, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x10&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x01, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x01&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x03, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x03&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; send_usb_data(ep_out, ep_in, OUT_UNKNOWN_COMMAND_0x0A_ALT, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;OUT Unknown 0x0A Alt&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; set_player_leds(ep_out, ep_in, &lt;span style=&#34;color:#ae81ff&#34;&gt;0x0F&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Controller initialization sequence complete! All LEDs should be on.&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Error during sequence: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; connect_usb()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ValueError&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Exception&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; e:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unexpected error: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;e&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;/p&gt;</description>
</item>
</channel>
diff --git a/micro.pinapelz.moe/tags/playlog/index.html b/micro.pinapelz.moe/tags/playlog/index.html
index 206eebe..70babd6 100644
--- a/micro.pinapelz.moe/tags/playlog/index.html
+++ b/micro.pinapelz.moe/tags/playlog/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en-us">
-<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -39,7 +39,7 @@
<div style="display:flex;flex-flow:row wrap;justify-content:space-between">
<div style="align-self:flex-start;">
==============<br>
- == <a href="http://localhost:1313/">Pinapelz</a> ==<br>
+ == <a href="https://micro.pinapelz.moe/">Pinapelz</a> ==<br>
==============
</div>
<div style="align-self:center;">check it out. I&#39;m in the house like carpet</div>
@@ -63,7 +63,7 @@
<div>
<h1>
Playlog
- <a href="http://localhost:1313/tags/playlog/index.xml">
+ <a href="https://micro.pinapelz.moe/tags/playlog/index.xml">
<img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" />
</a>
</h1>
@@ -98,7 +98,7 @@
<p style="text-align: center" class="copyright">
- &copy; <a href="http://localhost:1313/"><b>micro.pinapelz.moe</b></a>.
+ &copy; <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>.
</p>
</footer>
diff --git a/micro.pinapelz.moe/tags/playlog/index.xml b/micro.pinapelz.moe/tags/playlog/index.xml
index 151d5a3..192675c 100644
--- a/micro.pinapelz.moe/tags/playlog/index.xml
+++ b/micro.pinapelz.moe/tags/playlog/index.xml
@@ -2,20 +2,20 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Playlog on micro.pinapelz.moe</title>
- <link>http://localhost:1313/tags/playlog/</link>
+ <link>https://micro.pinapelz.moe/tags/playlog/</link>
<description>Recent content in Playlog on micro.pinapelz.moe</description>
<generator>Hugo</generator>
<language>en-us</language>
<managingEditor>yukais@pinapelz.com (Pinapelz)</managingEditor>
<webMaster>yukais@pinapelz.com (Pinapelz)</webMaster>
<lastBuildDate>Fri, 19 Dec 2025 22:15:50 -0800</lastBuildDate>
- <atom:link href="http://localhost:1313/tags/playlog/index.xml" rel="self" type="application/rss+xml" />
+ <atom:link href="https://micro.pinapelz.moe/tags/playlog/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Playlog: FFXIV Dawntrail Patch 7.4 Thoughts (spoilers)</title>
- <link>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
+ <link>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</link>
<pubDate>Fri, 19 Dec 2025 22:15:50 -0800</pubDate><author>yukais@pinapelz.com (Pinapelz)</author>
- <guid>http://localhost:1313/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
- <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;http://localhost:1313//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
+ <guid>https://micro.pinapelz.moe/posts/2025-12-19-08-ffxiv-patch-7-4/</guid>
+ <description>&lt;p&gt;&lt;em&gt;This is primarily focused on the content of the patch, not so much the features they&amp;rsquo;ve added.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;story&#34;&gt;Story&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mistwake Dungeon was a good difficulty. Although I&amp;rsquo;m not a fan of the electricity star AOEs, very hard to read for no apparent reason. Please just stick with the old one.&lt;/li&gt;&#xA;&lt;li&gt;Cutscene quality def. got better. As in animations and uniqueness.&lt;/li&gt;&#xA;&lt;li&gt;Love the look and feel (Treno). There&amp;rsquo;s a ton of good spots for &amp;ldquo;gpose-ing&amp;rdquo;. Music is nice too.&lt;/li&gt;&#xA;&lt;li&gt;Seriously Krile? You parents were the ones who dropped you into the Source. I don&amp;rsquo;t think they&amp;rsquo;d care if you wanted to stay in the Source (just make up your mind) -&amp;gt; well glad that got sorted out&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;Hell on Rails&amp;rdquo; Trial (Doomtrain) is very nicely designed. Its got some nice unique mechanics, the &amp;ldquo;sucking&amp;rdquo; mechanic definetly trips you up the first time because the distance to move back + timing has been tuned so that you need to pre-position for it.&lt;/li&gt;&#xA;&lt;li&gt;The transition from inside the engine to outside was really cool!!! This is probably one of my top normal trials now.&lt;/li&gt;&#xA;&lt;li&gt;The instance battle was well done too. The roleplaying part was on point, and when it was finally time to fight a real boss you get to play as yourelf (I think this is the best flow). Love the idea using the spriggan to avoid Behemoth&amp;rsquo;s meteor.&lt;/li&gt;&#xA;&lt;li&gt;Cool so we just get to keep the key. If this were any bit realistic, we&amp;rsquo;ve surely learned that no one this powerful should be allowed to keep the key on themsleves 24/7. Because surely the WoL being the most powerful being will never run rogue with a interdimensional travel capable tool. Then again, seeing how stuff gets stolen all the time in the story&amp;hellip; Well I guess it can go either way.&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m guessing this key is gonna be how the writers justify being able to travel to new worlds for post-Zodiark/Hydaelyn story. Its fine I guess, but a little disappointing it isn&amp;rsquo;t something more unique.&lt;/li&gt;&#xA;&lt;li&gt;And what do you know. Ascians. I hope we get something unqiue for 8.0&amp;hellip; I guess thats fine but please lets not have it just be SHB all over again.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;raid&#34;&gt;Raid&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Feral Fandom&amp;rdquo; -&amp;gt; Yep thats FF14 NA playerbase for you.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 1 (Vamp Fatale) Raid was cool and unique, but a bit too flashy imo. That Half Moon is needlessly large, wish we&amp;rsquo;d stop with mechanics that are designed to trick people even when read correctly.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 2 (Xtremes) I take it back, this is the one with the blinding effects MY EYES. Fire and water one after another. This is a pretty hard normal fight actually (the first time you run it blind). Really punishing for bad AOE placement positions since you can effectively be cut off from the team.&lt;/li&gt;&#xA;&lt;li&gt;Holy wow these cutscenes are in serious need of voice acting. Its a good story but so dry and awkward without it.&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 3 (Tyrant). Really? Behemoth again, double dipping from the instance battle. There&amp;rsquo;s so many other cool FF monsters. I like the arena, it fits the guy well, all about history of the Arcadion/tradition. Fight is underwhelming and too easy imo, apart from 1 single trick mechanic that can cause a wipe&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Heavyweight 4 (Lindwurm). EVERYTHING BURNS. This fight was honestly too easy, zero deaths everything can be read. 2nd phase was underhelming.&lt;/li&gt;&#xA;&lt;li&gt;Overall the story here while not as in depth and relevant to the story as Endwalker raids, still had a nice little twist at the end I def did not expect. Enjoyed it!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;misc&#34;&gt;Misc&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The new Frontline map is &amp;ldquo;dangerous&amp;rdquo;. Overall the new capturing point system is far better than a non-interruptable interact like in Onsal Hakir. The snowman and aurora events are also good, and I think they come in right when they&amp;rsquo;re needed too (to spice things up/allow for a turning point).&lt;/li&gt;&#xA;&lt;li&gt;The map design however is far too complex, all these bridges and everywhere and invisible walls. It does add a lot of chokepoints but also makes it difficult to navigate from point A -&amp;gt; B (but partially I guess this is done cause the map does feel smaller than Onsal).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://micro.pinapelz.moe//tags/ffxiv&#34; class=&#34;p-category&#34;&gt;#ffxiv&lt;/a&gt;</description>
</item>
</channel>
</rss>
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage