SWOS Scene: WWW.SENSIMAN.NET, Sensible Manager (SM) - manager SWOS on-line; 10 lig, gramy od 2000 roku!
Languages: pl

SWOS Competition Patcher

Utworzenie 2-poziomów Ligi Polskiej starą metodą zamiany z Holandią może być odstawione na boczny tor od 2016r. Zlokalizowanie struktur w pliku SWS.exe dało wiele nowych możliwości. Pierwsza zawiera wskaźniki (wg. team nr) na drugą, w której znajdują się 2 lub 3 wskaźniki na ligę, puchar i ew. puchar ligi.

W pliku SWS.exe pod adresem: 0x14D91C rozpoczyna się pierwsza struktura wskaźników 0x2090000 Albania ... 0x30900000 ... itd. Te liczby w pamięci (oglądanej np. przez CheatEngine proces to dosbox.exe) wyglądają inaczej np. 0x20A02c. Po uruchomieniu patcha podaje on adres struktury w pamięci jako Begin of Competitions Pointers.
Adresy w tej strukturze czyta się jako 0x2cA020 ... (little-endian) i do nich trzeba dodać wskaźnik początku procesu sws w dosboxie w patchu SWOS General Pointer.
Wtedy trafimy na drugą strukturę w pliku sws.exe znajduje się ona poniżej od ok. 0x14dd30 (plus/minus) dokładną wartość adresu kraju wg. wzoru powyżej i to jest właśnie druga struktura, zwiera ona kolejno:
Adres ligi kraju, wartość 0xfeffffff, adres pucharu kraju, (*)0xfffffff
* w przypadku Anglii po adresie pucharu kraju jest puchar ligi.
Te adresy wskazują już na znaną strukturę ligi/pucharu. Tu postępujemy analogicznie wskaźnik w pamięci odczytany od tyłu (np. 0x2C8F8A dla polski + SWOS General Pointer)(w pliku 0x8A7F0000). To właśnie te adresy modyfikuje patcher ustawiając je na wolną przestrzeń w pamięci. A 0x81360000 to wskaźnik na nazwę "PLAY-OFFS". Liczy się ją dodając do 0x1464F8 (w pliku).

Mając na celu utworzenie III ligi nie powinno być z tym problemu. Zmieniamy DivNr z 2 na 3 i dodajemy kolejny wpis [PolDiv2] analogicznie jak dla poprzednich i edytujemy plik z drużynami (TEAM.028) tak by się zgadzały ilości klubów dla poszczególnych lig.

Autor: Anoxic; Data: 25.10.2016r

Autor: Bliszka, Data: 28.10.2016