ile aralarında borderlands
sürümünden sonra iyiden iyiye bir husumet oluşan kral scene
grubudur. reloaded borderlands'in sürümünü yaptıktan sonra razor1911 bu sürümü "nuke
" ilan edip kendi "proper
" sürümünü yapmıstır. konuyla ilgili olarak reloaded ise geçenlerde yayınladığı "universal safedisc and safecast loader" ekine şöyle bir not iliştirmiş.
we would like to take this opportunity to state our case against the recent unnecessary propers by razor.
from the nfo of borderlands_proper-razor1911:
razor claims that our release "wasts [sic] 1gb more space".
fact: our release is smaller. installed, both are the same in size.
razor claims that our release is a "self made iso", implying that it is not retail.
fact: we stated clearly in our nfo that our release was from trymedia, which is an official retail* distributor. it uses another installer that installs faster, and every installed file is byte-identical to their version, except for the exe.
razor claims that we "removed" the delay import directory entry.
fact: this entry was not available in the original executable. besides, a "delay import" table does exactly what it implies: it delays the execution of dlls. if there is no "delay import" table, as in our executable, the inits of the dlls will not be delayed, but loaded before ep as every other dll. razor's implication that our version lacks physx in any way is absolutely incorrect (see technical proof below).
of all the outright lies, razor claims that their releases are somehow more "retail" than our borderlands release (trymedia), and also recently skidrow's raven squad (steam) release, is the most bizarre.
let's refer to the merriam-webster definition of retail:
main entry: re'tail
date: 15th century
1 : to sell in small quantities directly to the ultimate consumer
the online distributable versions of games are the same product, the same files, but sold by an online retailer with an official distribution deal with the publisher and sold directly to the ultimate customer. what exactly is less than retail about that? the "retail" rule was always meant as a way to distinguish the final version of a game from unfinished betas and review copies. it was never meant to limit releases to physical boxed store copies. especially in a time and age where digital distribution is becoming more and more regular and some titles (for instance saw) are exclusively distributed on digital platforms, it seems outdated to disallow releasing such titles altogether. and we know that razor knows this, because they too have released titles from such sources.
in the case of borderlands the only difference with the razor "retail" version and our version is that the razor version, ironically, requires you to allow the installer to go online during installation. if the securom internet date-check at the end of the installation fails, it uninstalls the game. the installer also launches the game, and if the disc-check fails (which it will due to razor's "self made" iso), it will also roll back the installation. razor tried to 'fix' this, by creating a fake executable that should be copied over during the installation to prevent the installer from automatically uninstalling the game. how "retail" is that solution ?
another example is the release of a-train 8. here a downloaded installer placed on a "self made iso" was good enough for razor. and in the ultimate act of hypocrisy, they nuked a legitimate proper that pointed out that their release crashed due to badly copied code from a trial version of the game, something they regularly accuse others of.
as it looks, the reasons for razor's odd behaviour and unneeded propers may be an overinflated sense of entitlement and frustration over the recent
inability to win releases in an honorable fashion.
00aad33b push borderla.01b2b7c8
; unicode "physxlocal/physxloader.dll"
00aad340 call dword ptr ds:[<&kernel32.loadlibraryw>]
00aad346 jmp short borderla.00aad364
00aad348 mov esi,dword ptr ds:[<&kernel32.loadlibraryw>]
00aad34e push borderla.01b2b800
; unicode "physxloader.dll"
00aad353 call esi
00aad355 test eax,eax
00aad357 jnz borderla.00aad3e3
00aad35d push borderla.01b2b820
; unicode "physxlocal/physxloader.dll"
00aad362 call esi
as physxloader.dll gets loaded the physx subsystem gets inited.
017f6086 mov eax,borderla.01ef13f8
017f608b jmp borderla.017f6090
017f6090 push ecx
017f6091 push edx
017f6092 push eax
017f6093 push borderla.01e863ec
017f6098 call borderla.01892882
017f609d pop edx
017f609e pop ecx
017f609f jmp eax
017f60a1 mov eax,borderla.01ef13e4
017f60a6 jmp borderla.017f6090
017f60ab mov eax,borderla.01ef13e8
017f60b0 jmp borderla.017f6090
017f60b5 mov eax,borderla.01ef13ec
017f60ba jmp borderla.017f6090
017f60bf mov eax,borderla.01ef13f0
017f60c4 jmp borderla.017f6090
and the above gamecode fills the delayed iat-address with its corresponding physxloader apis. these apis will be called whenever the game calls physx sdk calls. an example of this:
00aad51f |. call dword ptr ds:[1ef13ec] ; borderla.017f60b5
00aad51f |. call dword ptr ds:[1ef13ec] ; physxloa.nxcreatephysicssdk