diff options
Diffstat (limited to 'micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/index.html')
| -rw-r--r-- | micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/index.html | 574 |
1 files changed, 574 insertions, 0 deletions
diff --git a/micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/index.html b/micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/index.html new file mode 100644 index 0000000..cad48a4 --- /dev/null +++ b/micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/index.html @@ -0,0 +1,574 @@ +<!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>Playlog: April 2026 (No Sleep for Kaname Date, Xenoblade 1 DE, Catherine Full Body) | 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'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! 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'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">Playlog: April 2026 (No Sleep for Kaname Date, Xenoblade 1 DE, Catherine Full Body)</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="2026-04-26T18:20:09-07:00"> + Sunday, April 26, 2026 + </time> + - <a href="https://micro.pinapelz.moe/posts/2026-04-26-12-april-playlog/" class="u-url u-uid" >Permalink</a> + </b></div> + <div class="article-meta"><span class="categories"> + Categories: + + <a href="/categories/games">games</a> + + </span>--<span class="tags"> + Tags: + + #<a href="/tags/playlog" class="p-category">playlog</a> + + </span></div><div class="e-content"> + <p>I’ve gotten quite good at actually making progress on my backlog. Turns out the answer was to just uninstall all social media and get rid of doom scrolling. I invested in a rudimentary capture card as well so that I can have my Switch games show up as an application on my PC rather than having to swap display inputs (which makes it easy to get up and running for a quick session).</p> +<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mirror-switch <span style="color:#f92672">()</span> <span style="color:#f92672">{</span> +</span></span><span style="display:flex;"><span> dev<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>1<span style="color:#66d9ef">:-</span>/dev/video6<span style="color:#e6db74">}</span> +</span></span><span style="display:flex;"><span> nohup ffplay -f v4l2 -framerate <span style="color:#ae81ff">100</span> -video_size 1920x1080 -i <span style="color:#e6db74">"</span>$dev<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\ +</span></span></span><span style="display:flex;"><span> -fflags nobuffer -flags low_delay -framedrop >/dev/null 2>&<span style="color:#ae81ff">1</span> & +</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span> +</span></span></code></pre></div><p>The delay is actually pretty good, I’m able to play something like Fall Guys on it just fine! Now onto the playlog.</p> +<h1 id="no-sleep-for-kaname-date--from-ai-the-somnium-files">No Sleep for Kaname Date – From AI: The Somnium Files</h1> +<p>This is a spin-off game that takes place in between the first and second AI: The Somnium Files game. Its relatively short.</p> +<p> +<figure> + <img src="https://files.catbox.moe/8rhr2j.jpg" alt="" /> +</figure> + + +</p> +<h2 id="1-core-mechanics">1. Core Mechanics</h2> +<p>The game has a similar style to the first and second game, where you enter Sommnium (the dream world) of people to uncover some truth. However, it also introduces an escape room mechanic where you need to solve puzzles to escape a given room. This is essentially the same mechanic as what’s in the “Zero Escape” series, so much so that each escape room opens with the same “Seek a way out” screen.</p> +<p> +<figure> + <img src="https://files.catbox.moe/hz2jxm.img" alt="" /> +</figure> + + +</p> +<p>For the puzzle solving, that’s just entirely dependent on how good you are at reading between the lines. For most of them, once you eventually do figure out how to do it you’ll feel dumb not noticing earlier. The Sommnium exploration segment though is still in my opinion plagued with the issue of where you are sort of just “guessing and checking” based on very loose clues. I suppose that’s intended, but I wish that the correct options to pick become a bit more apparent not just from exploring around Sommnium but also from clues in the real outside world. (+32)</p> +<h2 id="2-structure">2. Structure</h2> +<p>The progression of the story is near identical to the first and second game. You read through the story visual novel style, then jump into Sommnium. Only now it alternates between Sommnium and an escape room. The challenges in both are well designed and interesting, but I personally felt that some of the escape rooms were a bit random? I mean the rooms bared little relevance to the AI The Sommnium world for the most part (which I wish it did). (+20)</p> +<h2 id="3-content">3. Content</h2> +<p>The game follows Kaname Date and AIBA the AI-Ball, who are investigating a new case where Iris Sagan (from the first game) goes missing. A mysterious figure named Akemi tells Iris that she is participating in the “Third Eye Game”.</p> +<p>The story explains some details of what’s been going on between the first and second game. Even the tiny details. The story is pretty self-contained for the most part, and its sorta like a mini-adventure. There is indeed an actual twist like every Uchikoshi game so pay attention to your surroundings. Very enjoyable to play through (+15)</p> +<h2 id="4-technical-execution-15">4. Technical Execution (15)</h2> +<p>No issues here, plays great on the Switch 2. (+15)</p> +<h1 id="5-presentation-15">5. Presentation (15)</h1> +<p>In my opinion, the game is a bit on the short side considering the price point. The content is good though. I’d say grab it if its on sale for 40 USD rather than 50 USD (+13)</p> +<p><strong>92/100</strong></p> +<hr> +<h1 id="xenoblade-1-de">Xenoblade 1: DE</h1> +<p>Covers the base game, not including the DLC.</p> +<p> +<figure> + <img src="https://files.catbox.moe/2hfxo4" alt="" /> +</figure> + + +</p> +<h2 id="1-core-mechanics-1">1. Core Mechanics</h2> +<p>Combat is much more simple than the second game and for me it sorta gets repetitive quick. Found myself avoiding monsters towards the end of the game. I’d say definetly try playing different characters to keep things fresh. The friendship tree thing is kind of useless and confusing, same with the gemstones. It just feels like they aren’t really needed and just add onto the things to do. In my opinion they should’ve kept it to just upgrading gear and obtaining arts. (+28)</p> +<h2 id="2-structure-1">2. Structure</h2> +<p>This game is grindy. Doesn’t matter what people say, you do need to stop and kill stuff as well as do side quests otherwise the enemy level outpaces you fast. This kinda got old for me so what I did was I would grind levels on casual mode and then switch back to normal mode when progressing through the story. Other than that the progression in the game is fairly linear and follows a central plot. The one side quest that may be worth doing is restoring Colony 6 which sorta acts like a big sidequest spanning multiple chapters in the story. Other than just for world building, much of the sidequests are just fetch-quests and are kind of drab. (+15)</p> +<h2 id="3-content-1">3. Content</h2> +<p>I thought the story was just alright for me. It does end up being quite “anime”, I would say it only really ramps up towards the last couple chapters. Before that we’re largely just adventures, adventuring around. It does provide good context for the second game. Shulk as a character definetly has some serious plot armor, even in some cases he just sorta comes back from the dead. Still, I do think the story is worth seeing (+15)</p> +<h2 id="4-technical-execution">4. Technical Execution</h2> +<p>No issues here, plays great on the Switch 2. (+15)</p> +<h1 id="5-presentation">5. Presentation</h1> +<p>The voice acting and dialogue… it certainly leaves something to be desired. Well the second game sorta suffered the same issue. I played on full English though. YMMV. (+10)</p> +<p><strong>83/100</strong></p> +<hr> +<h1 id="catherine-full-body">Catherine Full Body</h1> +<p>It’s a puzzle game. But more erotic.</p> +<p> +<figure> + <img src="https://files.catbox.moe/o1169e.jpg" alt="" /> +</figure> + + +</p> +<h2 id="1-core-mechanics-2">1. Core Mechanics</h2> +<p>Absolutely no qualms here. Its a genius little puzzle game with lots of strategy involved. You’d really have to watch some footage of it to understand how it works. (+35)</p> +<p> +<figure> + <img src="https://files.catbox.moe/7atzn3.png" alt="" /> +</figure> + + +</p> +<h2 id="2-structure-2">2. Structure</h2> +<p>For me, the puzzles aren’t too repetitive. There’s a nice break in between each one, and each night (after a set of puzzles) you get to watch a bit more of the story. Most of the game outside of the puzzle takes place in the “stray sheep” bar, the best way I can describe it is like Persona 3/4/5 “Free Time” where you can go around talking to your friends or others in the bar. Despite the small area there’s a fair amount of extra lore here, since you’ll start noticing that many of the people you talk to are also the ones appearing in your nightmare.</p> +<p>The only thing I didn’t like is that it wasn’t really clear who you had to talk to if you wanted to “progress time”. It may seem a bit confusing, but essentially once you have done everything in the bar, people get up and leave and new people walk in (this effectively progresses the night in free-time). (+23)</p> +<h2 id="3-content-2">3. Content</h2> +<p>The story of the game revolves around the main character <em>Vincent</em>. Its a short game about dealing with societal pressures. I say that but the game is quite funny, and it doesn’t take too long to beat. Vincent himself is a bit of a bozo, most of the game is linear and decided for you up until the very end. Essentially the game has you answer questions that make you reflect on your personal morals, then at the end this decides which ending you get. I don’t think this is a bad thing, but I would’ve liked to see more player agency at different points of the game rather than only at the end. Not a huge deal though (+13).</p> +<h2 id="4-technical-execution-1">4. Technical Execution</h2> +<p>The only thing that annoyed me was that for some reason the spike blocks are kinda laggy on the Switch 2? Not sure why. (+14)</p> +<h2 id="5-presentation-1">5. Presentation</h2> +<p>Based on the start of the game I thought this game would be extremely “goon-bait” but actually it wasn’t. Very fun with lots of replayability (in terms of challenge yourself to puzzles + multiplayer) (+15)</p> +<p>If you see this game on sale, definelty give it a try. Not sure if its worth at full-price but when its on sale for less than 10 bucks its a steal!</p> +<p><strong>95/100</strong></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\/2026-04-26-12-april-playlog\/"; + +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"> + © <a href="https://micro.pinapelz.moe/"><b>micro.pinapelz.moe</b></a>. + </p> +</footer> + +</body> +</html> |
