Jump to content
SubSpace Forum Network

Fatrolls

Member
  • Posts

    10
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    New York
  • Zone
    TW
  • Squad
    Paladen

Fatrolls's Achievements

Newbie

Newbie (1/14)

  1. try WTFast I heard it helps with bad hops and it's one of kind technology, CDN for your internet, but I think it's like a proxy though idk how that makes it faster? lol
  2. Old twister source code: unit submain; { +--------------------------------------------------------------------+ | CyberWare Subspace Twister v.1.34.2, main module | | Copyright (c) 1998 CyberWare, Inc. All Rights Reserved. | | | | -= Written by Alex // cyberware =- | | | | subspace cheat impelemtations submain.pas v1.34.2 | | | | author: voice +7 (095) 550-3599; e-mail: sage386@hotmail.com | |--------------------------------------------------------------------| | Compile this source using: dcc32 subcheat.dpr | 04-Nov-1998 | +--------------------------------------------------------------------+ } interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, syncobjs, registry; {$I subcheat.inc} type TCheatForm = class(TForm) Label1: TLabel; Label2: TLabel; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private param, cheat: string; paramv: integer; locations: TStringList; safe: TCriticalSection; FEquip: longint; // ship equipment table; FTable: longint; { Private declarations } procedure WMCheat(var Msg: TMessage); message WM_CHEAT; procedure ExecuteCheat; function GetShipBase: integer; function GetShipX: integer; function GetShipY: integer; procedure SetShipX(value: integer); procedure SetShipY(value: integer); function GetShipShape: integer; procedure SetShipShape(value: integer); procedure SetSupervisor; procedure SetFlag; procedure SetFlaggerWeaponsUpgrade; procedure RequestGreen; procedure SetupKillMultiplier; procedure UnlimitedWeapons; procedure Unban; procedure SaveLocation; procedure RestoreLocation; procedure JumpRelative; procedure JumpToMap; procedure ChangeShip; // NEW: access to ship equipment function GetShipEquip(index: integer): integer; procedure SetShipEquip(index, value: integer); procedure FillEquip; procedure GetIndexMinMax(index: integer; var aMin, aMax: integer); procedure EquipLoad; public { Public declarations } property ShipX: integer read GetShipX write SetShipX; property ShipY: integer read GetShipY write SetShipY; property ShipShape: integer read GetShipShape write SetShipShape; property ShipEquip[index: integer]: integer read GetShipEquip write SetShipEquip; end; var CheatForm: TCheatForm; procedure RegisterCallback; external 'SUBKEYS'; procedure UnregisterCallback; external 'SUBKEYS'; implementation {$R *.DFM} var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; bloaded: integer; function Min(const a, b: longint): longint; register; assembler; asm cmp eax, edx; jl @@1; mov eax, edx; @@1: end; function Max(const a, b: longint): longint; register; assembler; asm cmp eax, edx; jg @@1; mov eax, edx; @@1: end; function TCheatForm.GetShipBase: integer; var addr1, addr2: integer; begin if (not ReadProcessMemory(ProcessInfo.hProcess, ptr($47C278), @addr1, 4, bloaded)) or (not ReadProcessMemory(ProcessInfo.hProcess, ptr($4AC768), @addr2, 4, bloaded)) or (addr1 <> addr2) then abort; result := addr1; end; function TCheatForm.GetShipX: integer; begin if not ReadProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $96), @result, 4, bloaded) then abort; end; function TCheatForm.GetShipY: integer; begin if not ReadProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $96 + 4), @result, 4, bloaded) then abort; end; function TCheatForm.GetShipShape: integer; var a: byte; begin if not ReadProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $56), @a, 1, bloaded) then abort; result := a; end; procedure TCheatForm.SetShipX(value: integer); begin value := max(0, min(value, $FA0000)); if not WriteProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $96), @value, 4, bloaded) then abort; end; procedure TCheatForm.SetShipY(value: integer); begin value := max(0, min(value, $FA0000)); if not WriteProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $96 + 4), @value, 4, bloaded) then abort; end; procedure TCheatForm.SetShipShape(value: integer); begin value := max(1, min(value, 9)) - 1; if not WriteProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $56), @value, 1, bloaded) then abort; end; // saves current ship location to the 'param' slot procedure TCheatForm.SaveLocation; begin if param = '' then begin // save to file Locations.SaveToFile('subcheat.loc'); end else begin // save to slot Locations.Values[param] := '$' + IntToHex(ShipX, + '$' + IntToHex(ShipY, ; end; end; procedure TCheatForm.SetupKillMultiplier; type KillerRecord = packed record opcode: byte; value: longint; nops: word; end; const DefaultCode1: array[1..7] of byte = ($0F, $BF, $15, $32, $DD, $47, $00); KillersCode1: KillerRecord = (opcode:$BA; value: 0; nops:$9090); DefaultCode2: array[1..7] of byte = ($0F, $BF, $05, $32, $DD, $47, $00); KillersCode2: KillerRecord = (opcode:$B8; value: 0; nops:$9090); var ptr1, ptr2: pointer; begin if param = '' then begin // restore default flagger kill multiplier behavior ptr1 := @DefaultCode1; ptr2 := @DefaultCode2; end else begin // setup new behaviour KillersCode1.value := max(1, min(10000000, StrToInt(param))); KillersCode2.value := KillersCode1.value; ptr1 := @KillersCode1; ptr2 := @KillersCode2; end; WriteProcessMemory(ProcessInfo.hProcess, ptr($416C5B), ptr1, sizeof(DefaultCode1), bloaded); WriteProcessMemory(ProcessInfo.hProcess, ptr($416C6F), ptr2, sizeof(DefaultCode1), bloaded); end; procedure TCheatForm.SetSupervisor; var value: integer; begin value := StrToInt(param); if not WriteProcessMemory(ProcessInfo.hProcess, ptr($4B2174), @value, 4, bloaded) then abort; end; // setup virtual flag, so each kill procedure TCheatForm.SetFlag; begin WriteProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $66), @paramv, 4, bloaded); // Flags; if paramv > 0 then SetFlaggerWeaponsUpgrade; end; procedure TCheatForm.RequestGreen; const DefaultCode: array[1..6] of byte = ($8B, $52, $0C, $8B, $01, $52); FakeCode: array[1..6] of byte = ($8B, $01, $6A, $7F, $90, $90); function check(const lex: string): boolean; // return true if current param string matches specified lexem var len, i: integer; begin result := false; len := min(length(param), length(lex)); for i := 1 to len do if param[i] <> lex[i] then exit; result := true; end; begin if param = '' then begin // restore default green codeflow WriteProcessMemory(ProcessInfo.hProcess, ptr($42EFB5), @DefaultCode, sizeof(DefaultCode), bloaded); end else begin // setup requested green try FakeCode[4] := max(1, min($1C, StrToInt(param))); except param := Uppercase(param); if check('PORTAL') then FakeCode[4] := 28 else if check('ROCKET') then FakeCode[4] := 27 else if check('BRICK') then FakeCode[4] := 26 else if check('WALL') then FakeCode[4] := 26 else if check('MULTIPRIZE') then FakeCode[4] := 25 else if check('PRIZE') then FakeCode[4] := 25 else if check('THOR') then FakeCode[4] := 24 else if check('DECOY') then FakeCode[4] := 23 else if check('BURST') then FakeCode[4] := 22 else if check('REPELLER') then FakeCode[4] := 21 else if check('ANTIWARP') then FakeCode[4] := 20 else if check('SHRAPNEL') then FakeCode[4] := 19 else if check('SHIELDS') then FakeCode[4] := 18 else if check('SUPERPOWER') then FakeCode[4] := 17 else if check('PROXIMITY') then FakeCode[4] := 16 else if check('MULTIFIRE') then FakeCode[4] := 15 else if check('FIRE') then FakeCode[4] := 15 else if check('SHUTDOWN') then FakeCode[4] := 14 else if check('RECHARGE') then FakeCode[4] := 13 else if check('FULLCHARGE') then FakeCode[4] := 13 else if check('SPEED') then FakeCode[4] := 12 else if check('TOPSPEED') then FakeCode[4] := 12 else if check('THRUSTERS') then FakeCode[4] := 11 else if check('BOUNCING') then FakeCode[4] := 10 else if check('BOMBS') then FakeCode[4] := 09 else if check('GUNS') then FakeCode[4] := 08 else if check('WARP') then FakeCode[4] := 07 else if check('RADAR') then FakeCode[4] := 06 else if check('CLOACK') then FakeCode[4] := 05 else if check('STEALTH') then FakeCode[4] := 04 else if check('ROTATION') then FakeCode[4] := 03 else if check('ENERGY') then FakeCode[4] := 02 else if check('MAXENERGY') then FakeCode[4] := 02 else if check('RATE') then FakeCode[4] := 01 else if check('CHARGERATE') then FakeCode[4] := 01 else exit; end; WriteProcessMemory(ProcessInfo.hProcess, ptr($42EFB5), @FakeCode, sizeof(FakeCode), bloaded); end; end; // change flagger bombs upgrade flag procedure TCheatForm.SetFlaggerWeaponsUpgrade; const IncEDX: byte = $42; IncECX: byte = $41; TheNOP: byte = $90; var aptr: pointer; begin aptr := @TheNOP; // bombs if paramv = 0 then aptr := @IncEDX; WriteProcessMemory(ProcessInfo.hProcess, ptr($41101B), aptr, 1, bloaded); // bullets if paramv = 0 then aptr := @IncECX; WriteProcessMemory(ProcessInfo.hProcess, ptr($410D8F), aptr, 1, bloaded); end; // restores ship position from the 'param' slot procedure TCheatForm.RestoreLocation; begin if param = '' then begin // load from file Locations.Clear; Locations.LoadFromFile('subcheat.loc'); end else begin param := Locations.Values[param]; ShipX := StrToInt(copy(param, 1, 9)); ShipY := StrToInt(copy(param, 10, 9)); end; end; procedure TCheatForm.JumpRelative; var delta: integer; begin if length(param) < 2 then abort; delta := StrToInt(copy(param, 2, 255)) * 65535; case upcase(param[1]) of 'U','N': ShipY := ShipY - delta; // up, north 'L','W': ShipX := ShipX - delta; // left, west 'R','E': ShipX := ShipX + delta; // right, east 'D','S': ShipY := ShipY + delta; // down, south end; end; procedure TCheatForm.JumpToMap; var x, y: integer; begin if length(param) < 2 then abort; x := min(19, max(0, byte(upcase(param[1])) - ord('A'))); y := min(19, max(0, StrToInt(copy(param, 2, 255)) - 1)); ShipX := x * 819200 + 409600; ShipY := y * 819200 + 409600; end; procedure TCheatForm.ChangeShip; begin ShipShape := StrToInt(param); end; procedure TCheatForm.ExecuteCheat; begin try safe.Enter; try param := copy(cheat, 2, 255); case upcase(cheat[1]) of 'S': SaveLocation; // stores current ship location 'R': RestoreLocation; // restores ship location '0'..'9': begin // quick position restore param := cheat[1]; RestoreLocation; end; 'J': JumpRelative; // relative jump 'M': JumpToMap; // absolute jump by map coordinates 'C': ChangeShip; // change ship 'V': SetSupervisor; // setup supervisor mode 'E': EquipLoad; // full load equipment; 'G': RequestGreen; // request next green to be.... 'K': SetupKillMultiplier; 'U': UnlimitedWeapons; // Set or clear unlimited thors, walls etc.. 'B': Unban; end; finally Safe.Leave; end; MessageBeep(-1); except // oops, an error encountered MessageBeep(MB_ICONEXCLAMATION); end; end; procedure TCheatForm.UnlimitedWeapons; const SuperPower: word = $FB2B; SuperEnergy: word = $D12B; TheNop: word = $9090; DecESI: byte = $4E; DecEBX: byte = $4B; begin if (param = '') or (StrToInt(param) = 0) then begin // restore default flow // thors WriteProcessMemory(ProcessInfo.hProcess, ptr($412413), @DecESI, 1, bloaded); // decoys WriteProcessMemory(ProcessInfo.hProcess, ptr($412370), @DecESI, 1, bloaded); // burst WriteProcessMemory(ProcessInfo.hProcess, ptr($4123A9), @DecESI, 1, bloaded); // repels WriteProcessMemory(ProcessInfo.hProcess, ptr($4123DF), @DecESI, 1, bloaded); // rockets WriteProcessMemory(ProcessInfo.hProcess, ptr($411A31), @DecESI, 1, bloaded); // walls WriteProcessMemory(ProcessInfo.hProcess, ptr($4119C5), @DecESI, 1, bloaded); // portals WriteProcessMemory(ProcessInfo.hProcess, ptr($411FB7), @DecEBX, 1, bloaded); // super power //WriteProcessMemory(ProcessInfo.hProcess, ptr($42D1B8), @SuperPower, 2, bloaded); // shields power //WriteProcessMemory(ProcessInfo.hProcess, ptr($42D177), @SuperPower, 2, bloaded); // energy level //WriteProcessMemory(ProcessInfo.hProcess, ptr($412542), @SuperEnergy, 2, bloaded); end else begin // setup unlimited weapon config // thors WriteProcessMemory(ProcessInfo.hProcess, ptr($412413), @TheNOP, 1, bloaded); // decoys WriteProcessMemory(ProcessInfo.hProcess, ptr($412370), @TheNOP, 1, bloaded); // burst WriteProcessMemory(ProcessInfo.hProcess, ptr($4123A9), @TheNOP, 1, bloaded); // repels WriteProcessMemory(ProcessInfo.hProcess, ptr($4123DF), @TheNOP, 1, bloaded); // rockets WriteProcessMemory(ProcessInfo.hProcess, ptr($411A31), @TheNOP, 1, bloaded); // walls WriteProcessMemory(ProcessInfo.hProcess, ptr($4119C5), @TheNOP, 1, bloaded); // portals WriteProcessMemory(ProcessInfo.hProcess, ptr($411FB7), @TheNOP, 1, bloaded); // super power //WriteProcessMemory(ProcessInfo.hProcess, ptr($42D1B8), @TheNop, 2, bloaded); // shields power //WriteProcessMemory(ProcessInfo.hProcess, ptr($42D177), @TheNop, 2, bloaded); // energy //WriteProcessMemory(ProcessInfo.hProcess, ptr($412542), @TheNop, 2, bloaded); end; end; procedure TCheatForm.Unban; var Reg: TRegistry; d1, d2: integer; begin reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('Software', false) then begin Randomize; d1 := Random(maxint); d2 := Random(maxint); reg.WriteInteger('D1', d1); reg.WriteInteger('D2', d2); reg.CloseKey; end; // randomize values in memory WriteProcessMemory(ProcessInfo.hProcess, ptr($4AFF38), @d1, 4, bloaded); WriteProcessMemory(ProcessInfo.hProcess, ptr($4AFBA0), @d2, 4, bloaded); finally reg.Free; end; end; procedure TCheatForm.WMCheat; begin case Msg.wParam of // execute entered chear sequence VK_RETURN: if length(cheat) > 0 then begin ExecuteCheat; cheat := ''; end; // abort current cheat sequence VK_ESCAPE, VK_CHEAT: begin MessageBeep(MB_ICONEXCLAMATION); cheat := ''; end; VK_BACK: begin if length(cheat) > 0 then cheat := copy(cheat, 1, pred(length(cheat))); end; VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN, VK_SHIFT, VK_TAB: exit; // ordinal; chanarters, store into cheat string else if length(cheat) < 255 then begin cheat := cheat + char(Msg.wParam); MessageBeep(-1); end; end; end; procedure TCheatForm.FormCreate(Sender: TObject); //var // wnd: hWND; begin cheat := ''; CheatForm.Caption := CHEAT_WINDOW; application.Title := CHEAT_WINDOW; Locations := TStringList.Create; safe := TCriticalSection.Create; FillChar(StartupInfo, sizeof(StartupInfo), 0); StartupInfo.cb := sizeof(StartupInfo); { wnd := FindWindow(nil, SUBSPACE_WINDOW); if dword(wnd) <> 0 then begin // 'Please close subspace and run SUBCHEAT.EXE instead' end else } if CreateProcess(nil, 'subspace.exe', nil, nil, false, 0, nil, nil, StartupInfo, ProcessInfo) then begin RegisterCallback; end; //Label1.Caption := IntToHex(ProcessInfo.hProcess, ; end; procedure TCheatForm.FormClose(Sender: TObject; var Action: TCloseAction); begin UnregisterCallback; Locations.Free; safe.Free; end; // NEW procedure TCheatForm.FillEquip; begin ReadProcessMemory(ProcessInfo.hProcess, ptr(GetShipBase + $92), @FTable, 4, bloaded); ReadProcessMemory(ProcessInfo.hProcess, ptr(FTable + $04), @FEquip, 4, bloaded); end; function TCheatForm.GetShipEquip(index: integer): integer; var FEquipXor: integer; begin FillEquip; ReadProcessMemory(ProcessInfo.hProcess, ptr(FTable + $0c), @FEquipXor, 4, bloaded); ReadProcessMemory(ProcessInfo.hProcess, ptr(FEquip + index), @result, 4, bloaded); result := result xor FEquipXor; end; procedure TCheatForm.SetShipEquip(index, value: integer); var FEquipXor: integer; begin FillEquip; ReadProcessMemory(ProcessInfo.hProcess, ptr(FTable + $0c), @FEquipXor, 4, bloaded); value := value xor FEquipXor; WriteProcessMemory(ProcessInfo.hProcess, ptr(FEquip + index), @value, 4, bloaded); end; procedure TCheatForm.GetIndexMinMax(index: integer; var aMin, aMax: integer); var shp, minadr, maxadr: integer; begin aMin := 0; aMax := 0; case index of $74: begin minadr := $47D864; maxadr := $47d85a; end; $7c: begin minadr := $47D85e; maxadr := $47d854; end; $80: begin minadr := $47D860; maxadr := $47d856; end; $84: begin minadr := $47D862; maxadr := $47d858; end; else exit; end; shp := ShipShape * 9 * 16; ReadProcessMemory(ProcessInfo.hProcess, ptr(minadr + shp), @amin, 2, bloaded); ReadProcessMemory(ProcessInfo.hProcess, ptr(maxadr + shp), @amax, 2, bloaded); end; procedure TCheatForm.EquipLoad; procedure _gun(val: integer); begin ShipEquip[$38] := max(0, min(val, 3)); // Guns; ShipEquip[$24] := byte(val > 0); // multifire bullets end; procedure _bombs(val: integer); // Mines/Bombs; var exists: integer; begin val := max(0, min(val, 3)); exists := byte(val > 0); ShipEquip[$4C] := exists; ShipEquip[$2C] := exists; ShipEquip[$3C] := val; end; procedure _recharger; // Recharge level, Thrusters, Speed, Rotation -- to max; var exists, temp: integer; begin GetIndexMinMax($74, exists, temp); ShipEquip[$74] := temp; GetIndexMinMax($7C, exists, temp); ShipEquip[$7C] := temp; GetIndexMinMax($80, exists, temp); ShipEquip[$80] := temp; GetIndexMinMax($84, exists, temp); ShipEquip[$84] := temp; end; procedure _fullload; begin ShipEquip[$58] := 2; // Burst; + ShipEquip[$64] := 2; // Repels; + ShipEquip[$70] := 2; // Decoys; + ShipEquip[$68] := 2; // Thors; + ShipEquip[$5C] := 2; // Walls; + ShipEquip[$60] := 2; // Rockets; + ShipEquip[$6C] := 2; // Portals; + _gun(3); _bombs(3); _recharger; ShipEquip[$50] := 10000; ShipEquip[$28] := 1; // Bouncing bullets (amount) ShipEquip[$14] := 1; // Steath; ShipEquip[$20] := 1; // Cloak; ShipEquip[$1C] := 1; // Xradar; ShipEquip[$18] := 1; // Antiwarp; end; begin if param = '' then _fullLoad else begin if length(param) < 2 then abort; paramv := StrToInt(copy(param, 2, 255)); case upcase(param[1]) of 'A': ShipEquip[$18] := max(0, min(1, paramv)); // Antiwarp; 'B': ShipEquip[$58] := paramv; // Burst; 'C': ShipEquip[$20] := max(0, min(1, paramv)); // Cloak; 'D': ShipEquip[$70] := paramv; // Decoys; 'E': ShipEquip[$78] := paramv * 1000; // Energy Level; 'F': SetFlag; 'G': _gun(paramv); 'H': ShipEquip[$14] := max(0, min(1, paramv)); // Steath; 'I': _Recharger; //'J': 'K': ShipEquip[$60] := paramv; // Rockets; 'L': ShipEquip[$50] := paramv; // Shields; 'M': _bombs(paramv); 'N': ShipEquip[$40] := paramv; // Shrapnel amount; 'O': ShipEquip[$28] := paramv; // Bouncing bullets (amount) 'P': ShipEquip[$6C] := paramv; // Portals; //'Q': 'R': ShipEquip[$64] := paramv; // Repels; //'S': 'T': ShipEquip[$68] := paramv; // Thors; 'U': ShipEquip[$48] := paramv; // Super time; //'V': 'W': ShipEquip[$5C] := paramv; // Walls; 'X': ShipEquip[$1C] := max(0, min(1, paramv)); // Xradar; 'Y': ShipEquip[$34] := paramv; // Bounty; 'Z': SetFlaggerWeaponsUpgrade; end; end; end; end.
  3. The new DCME map editor is not bad but I still prefer the original SSME. Link:https://www.mediafire.com/?9iz9519knpjrapz Also put it on as forum attachment I patched the EXE a little with a Hex-Editor and OllyDebgger. Now it's able to load illegal tiles (don't think it can save them correctly though). It also bypasses the 256 (8 bit color) palette restriction, although I haven't figured out how to fix this better now the tileset loads up as a blank black tileset. If anyone wants to fix it be my guest I gave up. Here is the log of what I did SSMEpatched.zip
  4. You might do some stuff with ResHack (Resource Hack) http://www.angusj.com/resourcehacker/rh_shot.html it lets you edit the Windows Dialogs and stuff other stuff could be edited like the Tips.dat not much else you can do afaik
  5. Did you try running Continuum.exe Zusing a batch file or command prompt (Start -> Run... -> cmd) this should generate new random encryption tables scrty and scrty1 and just copy/paste those into subgame folder I guess you are using scrty/scrty1 files from Continuum v39 or older or maybe trying to run a older Continuum with newer scrty files. If above doesn't work then also in version1 folder copy paste your Continuum.exe and rename it to subspace.exe
  6. Lol about time someone got mouse aim.
  7. EG's Shark best ship, fastest bombs pretty much a wb in tw, 1 HIT KO TW's Warbird best ship like playing pool, 1 HIT KO SVS you can't tell what ship is good they are all the same haha any ship with emp bombs is pretty much the best there since it gives you a advantage over any other ship there, very hard zone to spree in unless you team mate. DSB pretty much suicide/kami sums it up all ships just kami to get kills can't really spree there unless your opponent is a beginner to continuum, To sum it up pretty much if I get 1 bullet on my enemy first I already know I will kill him no matter what he does can't really escape from opponent there, rotation/thrust is way too fast if we both shoot at each other we both die unless the opponent is a beginner of course. Metal Gear ship 6 or 7 self explanatory = wb in tw, 1 HIT KO Best zone settings I remember was a zone called Survivor I don't know if anyone has a settings backup of that it had very nice basing ship settings. Ship 2 had yellow bullets which could slice through any ship. Ship 6 had red bullets which wasted no energy at all but the damage was very small but prevented the opponents from recharging energy which what no other zone had did before. Don't remember the other ships too well but balanced overall. DragonBall Z zone very fast bullet spam like real DBZ fighters very easy to dodge took tons of patience to aim, fast recharge very hard to kill took lots of skills great zone too. You can't really have a good ship in continuum it's based on what settings your ship has in what zone which you will use they are all equally the same in terms of usage although graphics differ.
  8. I don't have the source to Subbill.exe I patched it with a Hex Editor, I found the location where to patch it by debugging it in OllyDbg.
  9. Use this one for Windows, It's the official one used for Subspace by Virgin Entertainment too. It can support millions of logins over SQL with backups etc http://www.minegoboo...opic.php?t=9715 It doesn't have high CPU Stress / CPU Usage anymore. Plus if you don't use the SQL it's compatible with SSBilling2's dat file's. So all you do is just run a new exe
  10. Use this one for Windows, It's the official one used for Subspace by Virgin Entertainment too. It can support millions of logins over SQL with backups etc http://www.minegoboom.com/forums/viewtopic.php?t=9715 It doesn't have high CPU Stress / CPU Usage anymore. Plus if you don't use the SQL it's compatible with SSBilling2's dat file's. So all you do is just run a new exe
×
×
  • Create New...