Files
ls-2014-source/PATCHES-LosaDev.md

23 KiB

LosaDev changes to the 2014 source

This snapshot is a copy of the 2014 source (178 heroes). Every change against the original tree is listed here. All edits were made byte-safe (the sources are CP949): only the listed text was replaced, line endings were kept, and every other file is byte-identical to the original (checked by SHA-256 on 2026-11-07: 19 671 identical, 530 changed (including the host-name pass below), 0 added apart from the LosaDev files at the root).

1. What was left out of the copy

  • Build output: Debug\, Release\, x64\, Shipping*\, Ship_*\, ipch\, and *.obj, *.pch, *.ipch, *.sdf, *.opensdf, *.suo, *.user, *.ncb, *.aps, *.tlog, *.pdb, *.ilk, *.idb, *.sbr, *.bsc, *.cod, *.lastbuildstate, *.unsuccessfulbuild, *.dmp.
  • The top-level build\ folder (prebuilt executables, .map and .pdb files). Release builds recreate build\Server\... and build\Client\....
  • IDE and VCS folders: .vs\, .svn\, .git\.
  • Personal files: src\src\LSClient\Save\ (saved player settings of two accounts), info\pp*.log and LSAutoUpgrade\info\app.log (runtime logs), and the duplicate extra\LS_NXSoap\*\bin - Copy\ folders.
  • The LSClient\Debug\ folder held a full game client (.iop packs, GameGuard). The client is shared as a separate download, not in Git.

Third-party libraries (src\lib\, src\extra\lib\, src\extra\include\, wxWidgets, Bullet, gperftools, ziparchive, OggVorbis, the anti-cheat SDKs) are kept as they were. Exception: the vendor SDK binaries listed under "Vendor SDK binaries removed" below.

2. Build fixes

File Change Why
src\src\LSClient\Main.cpp #ifdef SHIPPING before the command-line variables (iPortOncmd, szKeyOnCmd, szOptionsOnCmd, szIPOnCmd) became #if !defined( LOCAL_DBG ) The Release configuration defines neither SHIPPING nor LOCAL_DBG, so the variables were never declared (C2065). Now they are declared whenever LOCAL_DBG has not declared them already. Debug and the Ship configurations behave as before.
src\win\projects\ls_loginsvr.vcxproj Release: added /Zm300; Debug: -Zm150 became -Zm300 C1076/C3859 (precompiled header heap limit).
src\win\projects\LogDLL.vcxproj, src\win\projects\FrameTimerDLL.vcxproj Each post-build copy ... ..\..\build\zone_office\<server>\ line now starts with if exist "<that folder>\" The copy failed when the zone_office folders did not exist, which failed the whole build. The DLL itself was always fine.
src\win\projects\ls_gamesvr.vcxproj, ls_mainsvr.vcxproj, ls_relaysvr.vcxproj D:\Development\Library\boost_1_50_0 / boost_1_47_0 became C:\Program Files (x86)\boost\boost_1_50 / boost_1_47 A personal local path; now the same default paths as the other projects (see the wiki's Boost section).
src\src\ioPac\BigPac.cpp Removed the debug line ::MessageBoxA(NULL, szPassword, "CBigPac::OpenBigPac Password", MB_OK); at the start of CBigPac::OpenBigPac (byte patch, file is UTF-8 with BOM, CRLF kept) It showed the pack password in a message box every time the client opened rs.iop/map.iop.
src\extra\lib\LS_NXSoap.lib The SOAP endpoint string 13.250.105.220 (33 times) was replaced with 127.0.0.1:8080 (same length, so the library stays valid) Address of a private server. Matches the source change below.

3. Secrets and personal data replaced

Placeholders: 127.0.0.1 for addresses the code connects to, 192.0.2.1 (a reserved documentation address that never matches a real host) where the code compares the server's own IP against a fixed list, and CHANGE_ME for keys, passwords, tokens and account names. Private network addresses (10.x, 172.16-31.x, 192.168.x) were left as they are: they reveal nothing and some code compares against them.

File Replaced
src/extra/LS_NXSoap/** (129 files: NXSoap.h, soapNexonCashSoapProxy.cpp, gsoap stubs, wsdl samples, Nexoncash.xml) SOAP endpoint 13.250.105.220 -> 127.0.0.1
src/extra/LS_Monitor/LS_Monitor/config.ini 10 public IP(s)
src/extra/LS_Service/bin/server.txt 1 public IP(s)
src/extra/testNXShop/testCode/cTestThread.cpp 1 public IP(s)
src/extra/testNXShop/testCode/testCode.cpp 1 public IP(s)
src/sql/20120504/lostsaga_sp.sql 1 public IP(s)
src/src/BillingRelayServer/billingrelayserverinfo.ini 1 public IP(s)
src/src/BillingRelayServer/Channeling/ioChannelingNodeDaum.cpp 1 public IP(s)
src/src/BillingRelayServer/Channeling/ioChannelingNodeWemadeBuy.cpp 1 public IP(s), billing session value
src/src/BillingRelayServer/ipg/sample/asp/ipg_cli_input.asp e-mail address
src/src/BillingRelayServer/Local/ioLocalIndonesia.cpp 2 public IP(s)
src/src/BillingRelayServer/Local/ioLocalTaiwan.cpp player account id
src/src/BillingRelayServer/Local/ioLocalThailand.cpp 10 public IP(s)
src/src/ErrorDlg/ErrorDlg/ErrorDlg.vcxproj developer user folder (post-build now copies $(TargetPath))
src/src/ErrorDlg/ErrorDlg/HackShield/ioHackShield.cpp 1 public IP(s)
src/src/ls_billingsvr/Channeling/ioChannelingNodeDaum.cpp 1 public IP(s)
src/src/ls_billingsvr/Channeling/ioChannelingNodeWemadeBuy.cpp 1 public IP(s), billing session value
src/src/ls_billingsvr/Channeling/ioChannelingNodeWemadeCashLink.cpp 1 public IP(s), billing session value
src/src/ls_billingsvr/Local/ioLocalEU.cpp 1 public IP(s)
src/src/ls_billingsvr/Local/ioLocalIndonesia.cpp 2 public IP(s)
src/src/ls_billingsvr/Local/ioLocalLatin.cpp 2 public IP(s)
src/src/ls_billingsvr/Local/ioLocalSA.cpp 6 public IP(s)
src/src/ls_billingsvr/Local/ioLocalTaiwan.cpp player account id
src/src/ls_billingsvr/Local/ioLocalThailand.cpp 10 public IP(s)
src/src/ls_billingsvr/Local/ioLocalUS.cpp publisher app id, test account + password
src/src/ls_gamesvr/MainProcess.cpp 2 public IP(s) (2 in address comparisons -> 192.0.2.1)
src/src/ls_gamesvr/NodeInfo/LicenseManager.h 1 public IP(s)
src/src/ls_gamesvr/NodeInfo/User.cpp 5 public IP(s) (4 in address comparisons -> 192.0.2.1)
src/src/ls_gamesvr/Xtrap/XTrap4Server.cpp 3 public IP(s) (1 in address comparisons -> 192.0.2.1)
src/src/ls_mainsvr/MainProcess.cpp 2 public IP(s) (2 in address comparisons -> 192.0.2.1)
src/src/LSAutoUpgrade/_참고/ls.asp SQL connection string (host, login, password)
src/src/LSAutoUpgrade/AutoUpgradeDlg.cpp login token
src/src/LSAutoUpgrade/ioLoginDlg.cpp 1 public IP(s)
src/src/LSAutoUpgrade/Xtrap/ioXtrap.cpp XTrap license id(s)
src/src/LSClient/HackShield/ioHackShield.cpp 3 public IP(s)
src/src/LSClient/ioSteamClient.cpp publisher hash key
src/src/LSClient/Login.cpp login token
src/src/LSClient/XignCode/ioXignCode.cpp XignCode license key
src/src/LSClient/Xtrap/ioXtrap.cpp XTrap license id(s)
src/src/LSClientMT/config/debug_connect.ini login token
src/src/LSClientMT/Login.cpp login token
src/src/LSClientMT/XignCode/ioXignCode.cpp XignCode license key
src/src/LSClientMT/Xtrap/ioXtrap.cpp XTrap license id(s)
src/src/LSMonitor/LSMonitorDlg.cpp LSMonitor login password
src/src/LSWebBroker/_CMD.txt login token
src/src/LSWebBroker/ioLoginDlg.cpp web API key
src/src/LSWebBroker/Local/ioLocalEU.cpp login token
src/src/LSWebBroker/Local/ioLocalLatin.cpp login token
src/src/LSWebBroker/Local/ioLocalUS.cpp login token
src/src/LSWebBrokerOriginal/_CMD.txt login token
src/src/LSWebBrokerOriginal/Local/ioLocalEU.cpp login token
src/src/LSWebBrokerOriginal/Local/ioLocalLatin.cpp login token
src/src/LSWebBrokerOriginal/Local/ioLocalUS.cpp login token
src/src/MainServer/Window.cpp 2 public IP(s) (2 in address comparisons -> 192.0.2.1)
src/src/PatchManager/PatchManager.cpp 1 public IP(s)
src/src/SP2LostSagaGameServer/NodeInfo/LicenseManager.h 1 public IP(s)
src/src/SP2LostSagaGameServer/Window.cpp 1 public IP(s) (1 in address comparisons -> 192.0.2.1)

The anti-cheat license strings (XTrap, XignCode) are only used by the Shipping configurations with those SDKs; Debug and Release do not use them.

4. Left in place on purpose

These are part of the game itself and are needed to read its data or talk to the client:

  • Pack (.iop) passwords per country in src\src\io3DEngine\ioLocalManagerParent.cpp (stored encoded, with the plain text in comments), repeated in the PatchManager, PatchManagerOld, LSAutoUpgrade and ErrorDlg copies of the local managers.
  • WEB_UDP_KEY_VALUE in ls_gamesvr\NodeInfo\UserNodeManager.h and the check key EDEW3940FVDP4950 in the launcher command-line notes.
  • Packet and DB password encoding in iocpSocketDLL and ls_dbagent (ls_dbagent.exe -x).
  • Copyright and author e-mail addresses in third-party code and .rc version blocks.

5. Build test

Copied to a scratch folder and built on 2026-11-07 in Release|Win32 with the v100 toolset (VS2010, via VS2022 MSBuild), the TortoiseSVN pre-build step disabled and static-runtime Boost:

Solution Result
ioINILoader, Log, LogDLL, FrameTimerDLL, iocpSocketDLL, LSLog, SharedContainer, PerfMon, TownPortal, ioFreeType Build
io3DEngine Builds
ls_dbagent, ls_mainsvr, ls_billingsvr, ls_gamesvr, ls_relaysvr, ls_loginsvr, ls_filewritesvr Build
LSClient Builds LostSaga.exe (Release)
ioPac The solution was re-saved in VS2022 and only has x86 platforms: build it with /p:Platform=x86 (builds) or retarget it

Publisher and operator host names (added 2026-11-07)

Owner decision: no real publisher, operator or game-service host names in the repository. Every such host was replaced in text files (same byte-safe method as above, CP949 as Latin-1, UTF-16 .sql only when lossless, line endings kept):

  • a URL scheme://host[:port]/path became http://127.0.0.1/path (the path is kept, the port dropped);
  • a bare host name became example.invalid;
  • e-mail addresses at the developer's and publisher's own domains (@ioenter.com, @nexon.co.kr) became @example.invalid (the part before @ is kept). Files: src/src/BillingRelayServer/Local/ioLocalTaiwan.cpp (10), src/src/BillingRelayServer/Local/ioLocalUS.cpp (10), src/src/ls_billingsvr/Local/ioLocalEU.cpp (9), src/src/ls_billingsvr/Local/ioLocalTaiwan.cpp (10), src/src/ls_billingsvr/Local/ioLocalUS.cpp (9).

2891 replacements in 352 files, 61 hosts. Hosts (number of replacements): nxsoap.nexon.com (2058), testsoap.nexon.com (638), billingws.gamon.net (24), www.lostsaga.com (13), lostsaga.com (12), forum.gemscool.com (11), lostsaga.ogplanet.com (9), www.gamon.net (8), www.gemscool.com (6), www.lostsaga.jp (6), billlosatest.wemade.com (6), lostsaga.gamon.net (5), secure3.asiasoft.co.th (5), nxpay.nexon.com (5), profile.playcybergames.com (4), cdn.lostsaga.z8games.com (4), www.lostsaga.in.th (4), download.lostsaga.com (4), support.z8games.com (4), ls.garena.in.th (4), lostsaga.z8games.com (3), images.z8games.com (3), lostsaga.gemscool.com (3), platform.garena.tw (2), en.lostsaga.nexoneu.com (2), passport.nexoneu.com (2), www.z8games.com (2), cabinet.ogplanet.com (2), patch.lostsaga.com.tw (2), test.bill.daum.net (2), search.daum.net (2), authen.playpark.net (2), games.playpark.com (2), www.nxcreative.co.kr (2), lostsaga.nefficient.co.kr (2), na-qa.launcher.z8games.com (2), www.daum.net (2), aspdll.xonda.net (1), api.z8games.com (1), lostsaga.garena.tw (1), app.z8games.com (1), network.adsmarket.com (1), billing.ogplanet.com (1), apis-test.nexon.com (1), apps.garena.in.th (1), www.playpark.com (1), game.playpark.com (1), api.ogplanet.com (1), my.playpark.com (1), lostsaga.wemadeusa.com (1), alpha.api.bill.naver.com (1), start.tiara.daum.net (1), cdn.lostsaga.com (1), tr.lostsaga.nexoneu.com (1), pl.lostsaga.nexoneu.com (1), service.garena.tw (1), www.softnyx.com (1), de.lostsaga.nexoneu.com (1), support.lostsaga.nexoneu.com (1), it.lostsaga.nexoneu.com (1), fr.lostsaga.nexoneu.com (1).

Folder Files Replacements Hosts
src/extra/LS_NXSoap/LS_NXSoap/ 66 657 nxsoap.nexon.com
src/extra/LS_NXSoap/NEXON_live/ 136 1401 nxsoap.nexon.com
src/extra/LS_NXSoap/NEXON_testnx/ 65 638 testsoap.nexon.com
src/extra/testHTTP/testCode/ 1 1 apis-test.nexon.com
src/src/BillingRelayServer/ 1 3 alpha.api.bill.naver.com, api.ogplanet.com, billing.ogplanet.com
src/src/BillingRelayServer/Channeling/ 2 3 billlosatest.wemade.com, test.bill.daum.net
src/src/BillingRelayServer/Local/ 1 16 billingws.gamon.net, www.gamon.net
src/src/ErrorDlg/ErrorDlg/ 7 8 forum.gemscool.com, games.playpark.com, lostsaga.gamon.net, lostsaga.wemadeusa.com, www.lostsaga.com, www.lostsaga.in.th, www.lostsaga.jp
src/src/ls_billingsvr/Channeling/ 3 5 billlosatest.wemade.com, test.bill.daum.net
src/src/ls_billingsvr/Local/ 3 19 api.z8games.com, app.z8games.com, billingws.gamon.net, network.adsmarket.com, www.gamon.net
src/src/ls_gamesvr/Channeling/ 1 1 nxpay.nexon.com
src/src/LSAutoUpgrade/ 4 23 authen.playpark.net, cdn.lostsaga.com, cdn.lostsaga.z8games.com, game.playpark.com, my.playpark.com, profile.playcybergames.com, search.daum.net, secure3.asiasoft.co.th, start.tiara.daum.net, www.daum.net, www.nxcreative.co.kr, www.playpark.com
src/src/LSAutoUpgrade/_참고/ 2 4 cabinet.ogplanet.com, patch.lostsaga.com.tw
src/src/LSAutoUpgrade/Local/ 10 42 cdn.lostsaga.z8games.com, de.lostsaga.nexoneu.com, en.lostsaga.nexoneu.com, forum.gemscool.com, fr.lostsaga.nexoneu.com, images.z8games.com, it.lostsaga.nexoneu.com, lostsaga.garena.tw, lostsaga.gemscool.com, lostsaga.z8games.com, ls.garena.in.th, passport.nexoneu.com, pl.lostsaga.nexoneu.com, platform.garena.tw, service.garena.tw, support.lostsaga.nexoneu.com, support.z8games.com, tr.lostsaga.nexoneu.com, www.gemscool.com, www.lostsaga.com, www.lostsaga.jp, www.softnyx.com, www.z8games.com
src/src/LSClient/ 4 14 lostsaga.com, lostsaga.z8games.com, nxpay.nexon.com
src/src/LSClient/Local/ 10 10 apps.garena.in.th, forum.gemscool.com, lostsaga.gamon.net, support.z8games.com, www.lostsaga.com, www.lostsaga.jp
src/src/LSClientMT/ 2 2 nxpay.nexon.com
src/src/LSClientMT/Local/ 7 8 forum.gemscool.com, games.playpark.com, lostsaga.gamon.net, lostsaga.ogplanet.com, www.lostsaga.com, www.lostsaga.in.th, www.lostsaga.jp
src/src/LSMonitor/Sms/ 2 2 aspdll.xonda.net, lostsaga.com
src/src/LSWebBroker/ 2 3 download.lostsaga.com, lostsaga.nefficient.co.kr
src/src/LSWebBroker/Local/ 10 12 cdn.lostsaga.z8games.com, forum.gemscool.com, lostsaga.gamon.net, lostsaga.ogplanet.com, na-qa.launcher.z8games.com, www.lostsaga.com, www.lostsaga.in.th, www.lostsaga.jp
src/src/LSWebBrokerOriginal/ 3 7 download.lostsaga.com, lostsaga.nefficient.co.kr, www.lostsaga.com
src/src/LSWebBrokerOriginal/Local/ 10 12 cdn.lostsaga.z8games.com, forum.gemscool.com, lostsaga.gamon.net, lostsaga.ogplanet.com, na-qa.launcher.z8games.com, www.lostsaga.com, www.lostsaga.in.th, www.lostsaga.jp

Binary files, patched only with same-length replacements (nxsoap.nexon.com -> xexample.invalid, testsoap.nexon.com -> xxxexample.invalid, and so on, so sizes and offsets do not change):

  • src\extra\lib\: LS_NXSoapD.lib, LS_NXSoapTEST.lib, LS_NXSoapTESTD.lib (LS_NXSoap.lib had no publisher host left after the earlier IP patch). The SOAP namespace and endpoint strings inside the libraries now use the padded .invalid names.
  • Vendor documents src\src\BillingRelayServer\OGPDocument\1. IOEntertainment.doc, 4. installer package components.doc (OGPlanet hosts) and src\src\LSMonitor\Sms\Xonda_net_SMSWS_v1.0.doc (SMS service host).

The config set next to this repository (server-config\) was changed the same way: 1 584 URLs in six files of ls_gamesvr\config\ (config.ini, sp2_guild.ini, sp2_custom_texture.ini, sp2_channeling_wemade.ini, sp2_shop_item_chr_info.ini, sp2_shop_item_extra1_info.ini; hosts lostsaga-image.cdn.lostsaga.com, lostsaga.id, www.lostsaga.com). Every other config file is byte-identical to before.

Left on purpose (not publisher or game-service hosts): standards and XML namespaces (www.w3.org, schemas.microsoft.com, schemas.xmlsoap.org), homepages and documentation links of third-party libraries and their authors (Bullet, ZipArchive, OPCODE, Lua, TinyXML, Ogg Vorbis, wxWidgets, gperftools, OpenSSL, libcurl and others), copyright lines that name a company without a host (Wellbia, INCA, Bandisoft), api.ipify.org (public IP lookup used by the launcher), www.google-analytics.com (the analytics collector; the tracking id comes from config), the Steam SDK headers (store.steampowered.com, www.steamgames.com), and the vendor addresses inside third-party binaries listed above in section "Left in place on purpose".

Local run fixes (added 2026-11-07)

Found while running this source on one local PC. Byte patches, line endings kept.

File Change Why
src\src\ls_gamesvr\Local\ioLocalParent.cpp, src\src\LSClient\Local\ioLocalParent.cpp IsRightLicense() no longer compares the date (if( iDate >= GetLicenseDate() ) return false; replaced by (void)iDate;) The Indonesia license date (2016-08-06) has passed: the client showed "Your license has com up for renewal." and exited, the game server exited in Indonesia mode with "This program has expired".
src\src\ls_mainsvr\MainProcess.cpp The MessageBox "Local IP Error." became a log line A server started without a window would wait on the dialog for ever.

Bug fixes (added 2026-11-07)

File Change Why
src\src\LSClient\GUI\TradeMainWnd.cpp TradeItemBtn::SetExtraItemInfo(): removed the first of two SetIcon() calls Market crash as soon as a listed item is shown. InventoryIconBtn::SetIcon() frees the old icon first, and both calls passed the same image, so the button kept a freed pointer. The 2019 and 2021 sources make one call.
src\src\LSClient\GUI\TradeMainWnd.cpp TradeItemBtn::OnRender(): the empty slot draws its icon once (scale 0.6) Empty Market slots showed two overlapping "none" icons. Same code as 2019 and 2021.
src\src\LSClient\Setting.cpp LOW_SPEC and MINIMUM_SPEC presets set m_bUse16bitFrameBuffer = false Spec=3 (minimum) asked for a 16-bit full screen device; current Windows refuses it (CreateDevice 8876086c) and the client exited without a window. A failed start also saved Spec=3, so it failed every time.

Database and config fixes (added 2026-11-07)

Files What it fixes
db\losadev\losadev-fixes-and-accounts.sql 2014 servers on the May 2012 scripts: server connection procedure, encode key, test account procedure.
db\losadev\losadev-features-from-2021.sql, losadev-core-procs-from-2021.sql Pets, costumes, missions and other features ran on empty stub procedures: real tables, columns and procedures from the 2021 release (only where the parameters match ls_query.ini).
db\losadev\losadev-first-tournament.sql Faction War / LS Cup showed no dates: nothing creates the first userLeagueListDB row.
server-config\ls_gamesvr\config\sp2_mode_select.ini Plaza with a random map loaded a black screen: entries for maps the client lacks are removed.
Shop, gacha, gear and medal configs in server-config\ls_gamesvr\config Server configs came from another version than the client; the client's files are used where both have the same keys.

Vendor SDK binaries removed (added 2026-11-07)

No vendor SDK binaries are shared in any LosaDev tier. The source code that uses them stays.

Deleted XTrap libraries/DLLs (13): src\src\LSAutoUpgrade\Xtrap\XTrap4Launcher_mt.lib, src\src\LSClient\Xtrap\XTrap4ClientExt1_mtdll.lib, src\src\LSClient\Xtrap\XTrap4Client_ClientPart_mtDll.lib, src\src\LSClient\Xtrap\XTrap4Client_ServerPart_mtDll.lib, src\src\LSClient\Xtrap\XTrap4Client_mtDll.lib, src\src\LSClient\Xtrap\XTrap_Unipher_mtDll.lib, src\src\LSClientMT\Xtrap\XTrap4ClientExt1_mtdll.lib, src\src\LSClientMT\Xtrap\XTrap4Client_ClientPart_mtDll.lib, src\src\LSClientMT\Xtrap\XTrap4Client_ServerPart_mtDll.lib, src\src\LSClientMT\Xtrap\XTrap4Client_mtDll.lib, src\src\LSClientMT\Xtrap\XTrap_Unipher_mtDll.lib, src\src\SP2LostSagaGameServer\Xtrap\XTrap4Server.dll, src\src\ls_gamesvr\Xtrap\XTrap4Server.dll.

Deleted bxIPGClient.dll copies (6): src\lib\bxIPGClient.dll, src\src\BillingRelayServer\JapanDLL\bxIPGClient.dll, src\src\BillingRelayServer\bxIPGClient.dll, src\src\BillingRelayServer\ipg\bin\bxIPGClient.dll, src\src\ls_billingsvr\JapanDLL\bxIPGClient.dll, src\src\ls_billingsvr\ipg\bin\bxIPGClient.dll.

#import "...bxIPGClient.dll" no_namespace needs the DLL at compile time, so it was replaced by #include "...bxIPGClient_stub.h" in:

  • src\src\BillingRelayServer\Local\ioLocalJapan.cpp
  • src\src\ls_billingsvr\Local\ioLocalJapan.cpp

New stand-in headers: src\src\BillingRelayServer\JapanDLL\bxIPGClient_stub.h, src\src\ls_billingsvr\JapanDLL\bxIPGClient_stub.h. They declare only what the code calls (IIPGClient with GetCash, Output, OutputCancel, OutputIPG, and the IIPGClientPtr smart pointer). The COM class is never registered, so CreateInstance fails, the pointer stays empty and the existing catch( _com_error ) paths run: the Japan IPG and Adbill billing calls report an error, nothing else changes.

Verified 2026-11-07: ls_billingsvr Release|Win32 builds with 0 errors with no bxIPGClient.dll present. BillingRelayServer gets the same header but was not build-tested.

The XTrap code is only compiled in Shipping configurations with XTRAP defined. Those configurations no longer link without the vendor SDK; build Debug or Release.

Script: vendor-strip.js (latin1 byte-safe, CRLF kept).

Database setup and one-PC server config (added 2026-11-07)

  • New database\: creates LosaGame, LosaGame_log, LosaLogData and an empty Backup (game_region_backup_* create their own tables in it), the SQL login lstggame, LosaGame_log from the 2021 release (no 2014 script exists), the src\sql\20120504 scripts as UTF-8, the stub procedures, parameter fixes, 2021 features/core procedures and first tournament of the tested local setup, test accounts, backup.sql / restore.sql with .bat wrappers, and setup-db.bat. The encode key is asked for instead of a fixed test value. Tested on SQL Server 2022 Express: only the known messages of the 2012 scripts (22 old procedures, one old view); backup + restore OK.
  • server-config\ is now the tested one-PC set (PW=CHANGE_ME, 192.168.1.10 = your LAN address). The previous content (a modified private server's set) moved to server-config\_original-release\.