<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zenaria Dev Blog]]></title><description><![CDATA[Zenaria Dev Blog]]></description><link>https://zenaria-x40.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 05 Nov 2026 04:19:33 GMT</lastBuildDate><atom:link href="https://zenaria-x40.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How we ship a native macOS client for classic MU Online Season 6 (Zenaria x40)]]></title><description><![CDATA[MU Online has always been Windows-only. On a Mac people tried CrossOver (CodeWeavers lists MU as "Installs, Will Not Run") or a Parallels VM that lags on…]]></description><link>https://zenaria-x40.hashnode.dev/how-we-ship-a-native-macos-client-for-classic-mu-online-season-6-zenaria-x40</link><guid isPermaLink="true">https://zenaria-x40.hashnode.dev/how-we-ship-a-native-macos-client-for-classic-mu-online-season-6-zenaria-x40</guid><category><![CDATA[GameDev]]></category><category><![CDATA[macOS]]></category><category><![CDATA[MMORPG]]></category><dc:creator><![CDATA[Zenaria]]></dc:creator><pubDate>Sat, 17 Oct 2026 08:13:50 GMT</pubDate><content:encoded><![CDATA[<p>MU Online has always been Windows-only. On a Mac people tried CrossOver (CodeWeavers lists MU as "Installs, Will Not Run") or a Parallels VM that lags on Apple Silicon. I run a classic Season 6 server, Zenaria, and we ship a native macOS client for it. Short version of how.</p>
<p><em>Disclosure: this is my own project, the server is Zenaria x40.</em></p>
<h2>Not from scratch</h2>
<p>The base is MuMain, the open-source Season 5.2 client the community has been polishing toward Season 6 for years. Its renderer runs on SDL GPU (DirectX 12 on Windows, Metal on macOS), with shaders written once and compiled to several formats. That is what makes a native Apple Silicon build possible. Networking is a C# (.NET) library compiled to native code.</p>
<h2>What I built on top</h2>
<ul>
<li><strong>Small app, data separate:</strong> about 14 MB .dmg; the ~1.3 GB world lives in Application Support and downloads on first launch.</li>
<li><strong>Own updater:</strong> reads a signed file list from the server, downloads only changed files, verifies checksums, and refuses a bad signature.</li>
<li><strong>Mac-specific fixes:</strong> a number format that only Windows understood broke the XP line, Cyrillic text needed work, F12 now minimizes to the Dock, icon refresh after updates.</li>
<li><strong>Crash reports:</strong> a signal handler writes the stack and the last 64 actions and packets to a log.</li>
<li><strong>Game speed:</strong> MU is tuned for 25 FPS, and on 60–120 Hz displays some effects flew several times too fast, so particle speeds were recalculated.</li>
</ul>
<h2>Result and caveats</h2>
<p>Download the .dmg, drag to Applications, launch. M1 and newer, macOS 12+. Same account as the Windows client. Not signed with a paid Apple certificate yet, so allow it once in System Settings → Privacy &amp; Security → "Open Anyway". No Intel Macs.</p>
<p>Most of the hard renderer work belongs to the MuMain and OpenMU authors and contributors. Thank you.</p>
<h2>The server</h2>
<p>Zenaria x40: classic Season 6, EXP x40, Master x20, opened October 16, 2026 at 19:00 MSK, Happy Hours 20:00–21:00 MSK daily. Windows and native Mac client. I would love feedback from different Macs.</p>
<p>Website: <a href="https://zenaria.ru/?lang=en&amp;utm_source=hashnode&amp;utm_medium=listing&amp;utm_campaign=x40">https://zenaria.ru/?lang=en&amp;utm_source=hashnode&amp;utm_medium=listing&amp;utm_campaign=x40</a></p>
<p>Mac client: <a href="https://zenaria.ru/mac?lang=en&amp;utm_source=hashnode&amp;utm_medium=listing&amp;utm_campaign=x40">https://zenaria.ru/mac?lang=en&amp;utm_source=hashnode&amp;utm_medium=listing&amp;utm_campaign=x40</a></p>
]]></content:encoded></item></channel></rss>