AURA SERVER + CLIENT, END TO END - SUMMARY FOR ANYONE WHO WANTS TO RUN IT
================================================== =========
(2026-08-24. Full gory history lives in AuraBuildNotes.txt; protocol findings in PROTOCOL_RESEARCH.txt; change list in CHANGELOG.txt.)
-----------------
The last public snapshot of Aura (github.com/eotetb/aura, master @ ea324976, May 2017). The servers run fine as is once built and fed a MariaDB. The CLIENT is the real problem: there is no longer any official or community download that pairs with a 2017 era server. The current live Nexon client cannot connect (nine years of opcode drift + NGM token launch + anti-cheat), and every known archive of period clients turned out dead. A REMANUFACTURED period correct NA v247 client out of three salvage sources and aligned the server's protocol back to meet it. Result: boot -> login -> character creation -> world entry -> movement/chat/logout, all verified working end to end.
WHY NO READY CLIENT COULD BE FOUND
----------------------------------
- Live client via Nexon Launcher installs to C:\Nexon\Library\... and speaks today's protocol behind BlackCipher; useless here, and tampering with it risks your Nexon account.
- The community "right" answer was the elitepvpers thread "Aura January 2017" (v243 client bundle). Its mega.nz link is EXPIRED. Dead end.
- archive.org item "mabinogidownloads032019" mirrors download2.nexon.net: full installers only up to 190R (useless alone - the 19x->219 bridge is missing), plus official incremental patches 219..247 as <from>_to_<to>.txt manifests + split .NNN part files. Patches 248+ exist nowhere public anymore; the old patch FTP is dead (tested).
- KEY FIND: the Auranogi modern-client bundle ships package\ packs - 183_full.pack plus numbered NNN_to_NNN+1 chains up to 381_to_382. MD5 comparison of overlapping packs against OFFICIAL Nexon patch sets matched EXACTLY -> their packs ARE the authentic NA patch lineage. That single observation unlocks complete game data for ANY version >= 183 without needing the vanished downloads.
REMANUFACTURING THE CLIENT (v247)
---------------------------------
Target chosen: v247. Reasoning: the repo's final commits target NA252, but the drift analysis showed only ~14 ops differ between v247-era and NA252, all in non core features and rolling the server back two small commits is trivial next to finding an unobtainable client.
Assembly recipe (output: ~7.7 GB):
1. package: copy 183_full.pack .. 246_to_247.pack (65 packs) from the Auranogi bundle folder
2. Binaries overlaid from officially mirrored patch zips (each set's .NNN parts concatenate IN ORDER into a plain ZIP. Verify each part against the .txt manifest's md5 before use): Client.exe v247 (from 246_to_247 set; md5 e3f513654db27648d2f1a4768adf8cf0)
va.dat v247
BlackCipher v247
NGClient.aes v246 (newest that exists)
CrashReporter.dll v246
3. version.dat: = uint32 LE 0x000000F7 (= 247).
4. data\features.xml: first hand made guess (Generation 18, empty flags) was wrong era. Later extracted the AUTHENTIC compiled feature table from package\246_to_247.pack:
- MPIF pack container: header 544 bytes ("PACK", rev \2\1\0\0, file count @

, fileinfo_size @

), entries = typed-name prefix + 64 byte file_info; file data = zlib AND xor'd with MT19937, seed = (seed<<7)^0xA9C36DE1, ONE genrand_int32() draw PER BYTE, keep low 8 bits.
- compiled features decoding per exectails/Fetitor FeaturesFile.cs; hash -> name map rebuilt with djb2 over Fetitor's features.txt (1254/1297 named, rest kept as Hash="...").
- Result: 1297 flags, settings incl. 'Regular, USA' = Generation 20, Season 2.
5. Leftover modern NGM dlls (nmcogame/nmconew/nexon_api/nxgsm) are kept but unreferenced; NexonGuard excluded. Client.exe itself is PACKED (Themida style) - binary patching is a dead end, all fixes are runtime or server side.
LAUNCH WIRING
-------------
connect_local.bat (elevates, runs launch_mabi.ps1): Client.exe code:1622 ver:247 logip:127.0.0.1 logport:11000 chatip:127.0.0.1 chatport:8002 setting:"file://data/features.xml=Regular, USA"
- Manifest demands admin; every instance runs HIGH integrity.
- An ancient GPU "Attention!" popup appears ~3s after boot; the ps1 watcher enumerates #32770 dialogs owned by the client pid and BM_CLICKs its &Yes within ~50ms (FindWindowW by title fails for it, oddly).
- Dropping the setting: argument entirely = instant exit rc=0xE0000001. Account creation: type new__<name> + password on the login screen (login.conf: new_accounts : yes).
SERVER SIDE - WHAT "PAIRING" ACTUALLY TOOK
------------------------------------------
Servers: build.bat (MSBuild v4.0.30319, no VS needed; global /p:TargetFrameworkVersion=v4.5). DB: MariaDB (NOT MySQL 8 - Aura's ancient connector can't do caching_sha2_password), sql/main.sql + sql/update_*.sql chain, credentials in user/conf/database.conf. Ports: login 11000 (+10999 web API), msgr/chat 8002, channel 11020, web 80. Start via start_all.bat in REAL Windows consoles (WSL pipes crash Console.WindowWidth). ChannelServer needs minutes to compile ~537 scripts when the repo sits on an SMB share.
Protocol pairing - the part nobody warns you about
: the client and server must speak the SAME protocol generation, and that means more than Op.cs. HEAD targeted NA252; the v247 client predates the NA249 op shift. Required state (all UNCOMMITTED local edits):
Op.cs -> a294b702^ (pre-NA249 table)
LoginServer Send.cs -> a294b702 (LoginR without NA252 PutLong)
ItemHelper/QuestHelper -> 0e9c1a82^ (pre NA252 formats)
Skills handlers/Send -> 0f3f4a76^ ...and neutralize the handful of handlers/senders referencing NA249+-only ops (#if false; see CHANGELOG.txt).
THE TRAP that cost days: CreatureHelper.cs (creature/appearance packet builder) still carried TWO NA252 dated PutInt insertions in the COMMON section of every creature packet. With those present the v247 client misparses everything downstream - characters render, world loads, but input is dead forever (client funnels clicks into 0x5412 pings, never sends movement ops). Removed them => movement worked immediately, first time. LESSON: audit EVERY Network/Sending file individually with git diff --ignore-cr-at-eol -w <eraBase> HEAD -- src/*/Network src/Mabi/Network and strip anything marked newer than your client's era, not just Op.cs. Full wire format spec + live op map: PROTOCOL_RESEARCH.txt.
KNOWN QUIRKS / STATUS
---------------------
- New characters spawn at Tir Chonaill square, by the bank (region 1, x=12800, y=38100 hardcoded defaults). No Nao intro, soul stream is bypassed because v247 clients deadlock inside it.
- Logout uses the drifted v247 slot (0xAC25 -> answer 0xAC26).
- Wishlist (cosmetic): windowed mode default; unidentified CJK text in the character creation box (client side asset, unsent by server).
- Verified working 2026-08-24: login, char select/create, world entry, movement, NPC interaction, chat, quests window, logout/save.