<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Daniel Plas Rivera</title>
    <description>Lead Software Engineer — GenAI, Data Engineering, Reverse Engineering</description>
    <link>https://morphus56k.com</link>
    <atom:link href="https://morphus56k.com/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Mon, 06 Jul 2026 03:55:17 GMT</lastBuildDate>
    
    <item>
      <title><![CDATA[What Does a Trustworthy AI Analyst UI Actually Look Like?]]></title>
      <description><![CDATA[Lessons from shipping a client-ready React 19/TypeScript front end for an AI analyst: SSE streaming with click-to-source citations, constrained tool-calling with stable chart ids, and human accept/reject gates in front of every autofill and export.]]></description>
      <link>https://morphus56k.com/blog/trustworthy-ai-frontend</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/trustworthy-ai-frontend</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>genai</category>
      <category>react</category>
      <category>typescript</category>
      <category>frontend</category>
      <category>human-in-the-loop</category>
      <category>product-engineering</category>
    </item>
    <item>
      <title><![CDATA[How Do You Lift a Classifier's Hardest Level From 4% to 77%?]]></title>
      <description><![CDATA[Fine-tuning a hierarchy of DeBERTa/RoBERTa-family transformers to route records through a 4-level, 137-path taxonomy — and how class-weighted loss, focal loss, and branch oversampling took the deepest level from roughly 4% to 77%+ accuracy.]]></description>
      <link>https://morphus56k.com/blog/hierarchical-classifier-imbalance</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/hierarchical-classifier-imbalance</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>machine-learning</category>
      <category>transformers</category>
      <category>fine-tuning</category>
      <category>classification</category>
      <category>mlops</category>
      <category>huggingface</category>
    </item>
    <item>
      <title><![CDATA[How Do You Pick Which Model to Ship?]]></title>
      <description><![CDATA[Building an offline eval harness that compares frontier and baseline models on latency, token cost, and output quality — with automated hallucination scoring — before any of them touch production.]]></description>
      <link>https://morphus56k.com/blog/llm-eval-harness</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/llm-eval-harness</guid>
      <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>genai</category>
      <category>llm</category>
      <category>evals</category>
      <category>model-evaluation</category>
      <category>hallucination</category>
      <category>platform-engineering</category>
    </item>
    <item>
      <title><![CDATA[How Do You Make an LLM Cite Its Sources — and Prove It?]]></title>
      <description><![CDATA[Provider-native citation grounding as an explainable-AI trust layer: page-anchored source quotes rendered as click-to-source footnotes, claims validated with JSON-LD → RDF and W3C SHACL, and an honest no-evidence state instead of fabricated footnotes.]]></description>
      <link>https://morphus56k.com/blog/grounded-llm-citations</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/grounded-llm-citations</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>genai</category>
      <category>llm</category>
      <category>citations</category>
      <category>explainable-ai</category>
      <category>rag</category>
      <category>platform-engineering</category>
    </item>
    <item>
      <title><![CDATA[How Do You Give an AI Agent 75 Tools Without Wrecking Its Judgment?]]></title>
      <description><![CDATA[A tool-RAG discovery surface — five verbs instead of seventy-five schemas — that lets an agent find, understand, and safely compose a large tool catalog without collapsing its ability to pick the right one.]]></description>
      <link>https://morphus56k.com/blog/agent-tool-rag-discovery</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/agent-tool-rag-discovery</guid>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>genai</category>
      <category>llm</category>
      <category>ai-agents</category>
      <category>mcp</category>
      <category>tool-use</category>
      <category>platform-engineering</category>
    </item>
    <item>
      <title><![CDATA[Production GenAI Series]]></title>
      <description><![CDATA[Complete series index: engineering LLM platforms that survive production — agent tool discovery at scale, grounded citations, eval-driven model selection, fine-tuned classifiers under extreme imbalance, and trustworthy AI front ends]]></description>
      <link>https://morphus56k.com/blog/production-genai-series-index</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/production-genai-series-index</guid>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>genai</category>
      <category>llm</category>
      <category>ai-agents</category>
      <category>mcp</category>
      <category>evals</category>
      <category>platform-engineering</category>
      <category>series-index</category>
    </item>
    <item>
      <title><![CDATA[Can You Bring a Fightcade Player Back? The Complete Memorial Bot Story]]></title>
      <description><![CDATA[The definitive writeup of the alanmargolies88 memorial AI: mining 7,554 recorded matches, reverse-engineering CPS-2 RAM until the bot could truly see, hitting the hard ceiling of imitation, and rebuilding the objective so 'plays like him' lives inside the reward — with every diagram, equation, and honest scoreboard.]]></description>
      <link>https://morphus56k.com/blog/memorial-bot-complete-arc</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/memorial-bot-complete-arc</guid>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>ai-for-good</category>
      <category>machine-learning</category>
      <category>behavioral-cloning</category>
      <category>reinforcement-learning</category>
      <category>memorial-ai</category>
      <category>fighting-games</category>
      <category>marvel-vs-capcom</category>
      <category>fightcade</category>
      <category>imitation-learning</category>
      <category>reverse-engineering</category>
    </item>
    <item>
      <title><![CDATA[Cabinet-Faithful Spectating: Why You Can't Just memcpy a Game State Across Architectures]]></title>
      <description><![CDATA[The sequel to the Arcade1Up protocol RE: disassembling libarcade.so's spectate consumer, discovering the cabinet's blind-apply-and-run model, proving verbatim state resume is impossible cross-architecture, and a debugging saga where the biggest bug was my own screenshot tool swapping red and blue.]]></description>
      <link>https://morphus56k.com/blog/cabinet-parity-spectate</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/cabinet-parity-spectate</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>reverse-engineering</category>
      <category>arcade1up</category>
      <category>cps2</category>
      <category>emulation</category>
      <category>cross-architecture</category>
      <category>fighting-games</category>
      <category>libarcade</category>
      <category>m68000</category>
      <category>fbalpha</category>
      <category>debugging</category>
    </item>
    <item>
      <title><![CDATA[Reverse Engineering Arcade1Up's Online Fighting Protocol]]></title>
      <description><![CDATA[From TCP packet captures to P2P input exchange at 60fps — reverse engineering Arcade1Up's proprietary online multiplayer system for Marvel vs Capcom, building a desktop spectator client and fighting bridge with RetroArch + FBA Alpha]]></description>
      <link>https://morphus56k.com/blog/arcade1up-online-reverse-engineering</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/arcade1up-online-reverse-engineering</guid>
      <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>reverse-engineering</category>
      <category>networking</category>
      <category>arcade1up</category>
      <category>fighting-games</category>
      <category>protocol-analysis</category>
      <category>electron</category>
      <category>python</category>
      <category>retroarch</category>
    </item>
    <item>
      <title><![CDATA[How Do You Add a New Secret Character to a 1998 Fighting Game?]]></title>
      <description><![CDATA[Reverse engineering MvC1's hidden character box system - discovering three table formats, cursor navigation mechanics, and the path to making Armored Spider-Man selectable]]></description>
      <link>https://morphus56k.com/blog/armored-spiderman-hidden-box</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/armored-spiderman-hidden-box</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>reverse-engineering</category>
      <category>rom-hacking</category>
      <category>cps2</category>
      <category>68000</category>
      <category>state-machines</category>
      <category>character-injection</category>
      <category>binary-analysis</category>
    </item>
    <item>
      <title><![CDATA[Binary Forensics: Recovering an Unreleased Character from a 1998 Fighting Game]]></title>
      <description><![CDATA[Systematic binary analysis discovers 85 code references, 4 disabled load points, and 3 distinct table formats for character ID 0x2E -- evidence of an unreleased Armored Spider-Man in MvC1's CPS-2 ROM]]></description>
      <link>https://morphus56k.com/blog/binary-forensics-unreleased-character</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/binary-forensics-unreleased-character</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>binary-forensics</category>
      <category>reverse-engineering</category>
      <category>cps2</category>
      <category>68000</category>
      <category>state-machines</category>
      <category>character-injection</category>
    </item>
    <item>
      <title><![CDATA[What Are the Absolute Hardware Limits of CPS-2 Arcade Boards?]]></title>
      <description><![CDATA[Pushing every ROM type to the theoretical maximum of Capcom's CPS-2 hardware: 128MB graphics, 16MB audio, 4MB program - documented with in-game verification]]></description>
      <link>https://morphus56k.com/blog/cps2-maximum-rom-expansion</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/cps2-maximum-rom-expansion</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>hardware-limits</category>
      <category>cps2</category>
      <category>rom-expansion</category>
      <category>embedded-systems</category>
      <category>arcade-hardware</category>
      <category>systems-engineering</category>
    </item>
    <item>
      <title><![CDATA[CPS-2 Reverse Engineering Series]]></title>
      <description><![CDATA[Complete series index: reverse engineering Capcom's CPS-2 arcade hardware from first principles -- binary forensics, ROM expansion, audio injection, and character restoration]]></description>
      <link>https://morphus56k.com/blog/cps2-series-index</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/cps2-series-index</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>cps2</category>
      <category>reverse-engineering</category>
      <category>series-index</category>
      <category>systems-engineering</category>
    </item>
    <item>
      <title><![CDATA[How Do You Add a Custom Diagnostic Screen to Arcade Hardware?]]></title>
      <description><![CDATA[Engineering a new menu item and 24-line verification screen into CPS-2 arcade firmware using 68000 assembly, jump table extension, and sprite system mastery]]></description>
      <link>https://morphus56k.com/blog/cps2-test-menu-engineering</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/cps2-test-menu-engineering</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>systems-engineering</category>
      <category>assembly</category>
      <category>reverse-engineering</category>
      <category>cps2</category>
      <category>68000</category>
      <category>embedded-systems</category>
      <category>rom-hacking</category>
    </item>
    <item>
      <title><![CDATA[Can You Port a Dreamcast Soundtrack to a 1998 Arcade Board?]]></title>
      <description><![CDATA[Porting MvC2's jazz-fusion soundtrack to MvC1's CPS-2 hardware - from 8-bit PCM injection to multi-bank streaming playback via Z80 ISR-driven bank switching, including the int16_t bug that tripled playback speed]]></description>
      <link>https://morphus56k.com/blog/mvsc2-soundtrack-port</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/mvsc2-soundtrack-port</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>audio-engineering</category>
      <category>cps2</category>
      <category>qsound</category>
      <category>rom-hacking</category>
      <category>arcade-hardware</category>
      <category>embedded-systems</category>
      <category>reverse-engineering</category>
    </item>
    <item>
      <title><![CDATA[Selected Work]]></title>
      <description><![CDATA[Curated engineering case studies: production GenAI/LLM platform engineering, a memorial fighting-game AI, and binary-level systems engineering on CPS-2 arcade hardware]]></description>
      <link>https://morphus56k.com/blog/selected-work</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/selected-work</guid>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>portfolio</category>
      <category>systems-engineering</category>
      <category>reverse-engineering</category>
      <category>cps2</category>
      <category>genai</category>
      <category>machine-learning</category>
    </item>
    <item>
      <title><![CDATA[What Would a Next-Gen Emulator Look Like?]]></title>
      <description><![CDATA[Designing an emulator platform with Metal GPU rendering, AI opponents via CoreML/PyTorch, massively parallel training, and full developer tooling for fighting games]]></description>
      <link>https://morphus56k.com/blog/ai-augmented-developer-tools</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/ai-augmented-developer-tools</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>machine-learning</category>
      <category>systems-architecture</category>
      <category>metal-api</category>
      <category>coreml</category>
      <category>pytorch</category>
      <category>emulation</category>
      <category>fighting-games</category>
    </item>
    <item>
      <title><![CDATA[Binary Forensics: What Hidden Features Exist in Compiled Binaries?]]></title>
      <description><![CDATA[Discovering undocumented characters, secret input codes, and unused entity IDs through systematic binary forensics on MvC1's CPS-2 ROM]]></description>
      <link>https://morphus56k.com/blog/cryptographic-pattern-analysis</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/cryptographic-pattern-analysis</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>binary-forensics</category>
      <category>pattern-analysis</category>
      <category>state-machines</category>
      <category>reverse-engineering</category>
      <category>input-decoding</category>
      <category>cps2</category>
    </item>
    <item>
      <title><![CDATA[Can You Max Out a 1998 Arcade Board's Storage?]]></title>
      <description><![CDATA[Expanding every ROM type on CPS-2 hardware to its theoretical maximum - 128MB graphics, 16MB audio, 4MB program - using Python automation and binary analysis]]></description>
      <link>https://morphus56k.com/blog/memory-management-binary-expansion</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/memory-management-binary-expansion</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>memory-management</category>
      <category>binary-formats</category>
      <category>systems-programming</category>
      <category>python</category>
      <category>embedded-systems</category>
      <category>cps2</category>
    </item>
    <item>
      <title><![CDATA[How Do You Make Reverse Engineering Work Reproducible?]]></title>
      <description><![CDATA[Structuring technical analysis so both humans and AI can execute it - from scattered ROM notes to automated validation pipelines with in-game verification]]></description>
      <link>https://morphus56k.com/blog/reproducible-analysis-workflows</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/reproducible-analysis-workflows</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>reverse-engineering</category>
      <category>documentation</category>
      <category>automation</category>
      <category>reproducibility</category>
      <category>workflows</category>
      <category>cps2</category>
    </item>
    <item>
      <title><![CDATA[What's Really Happening Inside a Binary's UI State Machine?]]></title>
      <description><![CDATA[Reverse engineering MvC1's character select screen - discovering cursor navigation tables, decoding entity ID mappings, and mapping three distinct secret character table formats]]></description>
      <link>https://morphus56k.com/blog/reverse-engineering-entity-systems</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/reverse-engineering-entity-systems</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>reverse-engineering</category>
      <category>binary-analysis</category>
      <category>embedded-systems</category>
      <category>state-machines</category>
      <category>memory-forensics</category>
      <category>cps2</category>
    </item>
    <item>
      <title><![CDATA[Can You Inject New Behaviors into a Binary Without Source Code?]]></title>
      <description><![CDATA[Adding a new secret character to a 1998 arcade game through ROM patching, 68000 assembly injection, palette engineering, and input sequence state machines]]></description>
      <link>https://morphus56k.com/blog/state-machine-injection</link>
      <guid isPermaLink="true">https://morphus56k.com/blog/state-machine-injection</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <author>plasx1987@gmail.com (Daniel Plas Rivera)</author>
      <category>systems-engineering</category>
      <category>binary-analysis</category>
      <category>state-machines</category>
      <category>assembly</category>
      <category>reverse-engineering</category>
      <category>cps2</category>
      <category>68000</category>
    </item>
  </channel>
</rss>