Modified executable to allow more than 300 balls in the corporation

You are viewing a static copy of the old 2DBoy forum, which closed in 2010. It is preserved here for historical interest, but it is not possible to reply to topics. For more recent discussion about World of Goo, visit our new forum.
Modified executable to allow more than 300 balls in the corporationichifish12/29/2008 - 07:57

Hi everyone, first a huge thanks to 2D Boy for making such an awesome game.

Secondly, I've altered world of goo's executable to allow for more than 300 balls in the corporation. The limit now seems to be somewhere between 3000 and 5000, over that the game crashes.

Also note that gameplay becomes laggy rather quickly after going above about 700 or so (at least on my macine) so it may be wise to limit yourself.

Download it at http://ccgi.ichifish.plus.com/WorldOfGoo_modified.exe.

For anyone technically minded who's interested in how I did this, I'll try to give a short explanation. World of goo isn't open source (the programming code it was written in isn't publically available) so the only option for reverse engineering it is to look through the codes it talks directly to the machine in (known as assembly language). To do this one needs a disassembler which translates the numbers which form the program to human readable codes. A good disassembler which I use is IDA http://www.hex-rays.com/idapro/. In IDA, once the executable has been loaded and analysed, I used the search for immediate value function and looked for anything which did operations involving the number 300. Once it had brought up a list of these, I looked through them for any compare operations involving 300 (since it'll have to check if the number of balls collected is greater than 300). There was 1 with the right syntax, 'cmp dword ptr [esi+50h], 12Ch' (this tells the CPU to compare the value of whatever's at the address esi+0x50 to 12C (300 in base 16, which is denoted by the h). A few instructions down from that is the code to do something if the value was greater than 300, 'jge loc_44B704' (jump to the instructions at address 0x44B704. Since this is what I wanted to erase (so that nothing happens if the number of balls is more thatn 300), I got the address of that instruction, opened the executable in a hex editor and replaced the bytes containing that instruction with 0x90 (which tells the CPU to simply to do nothing). If anyone's interested in learning more about assembly language, I recommend programing from the ground up http://savannah.nongnu.org/projects/pgubook/.

Happy gooing!  ;)

Edit: one more thing. There's currently an entry in the most balls leaderboard for ~2,000,000 balls. Sorry about this, something went wrong when I was testing and it seemed to send its score before it crashed. I didn't actually manage to get 2,000,000 balls working  ;).

Edit2: yet one more thing. It's just occurred to me that I should probably put some sort of disclaimer here. I can't be held responsible if this does bad things to your computer. I've only tested it on my computer which runs 32-bit Windows XP. It may well not work on other platforms. It may be advisable to not have anything important open while running this.


Last modified Mon, 12/29/2008 - 08:04 by ichifish
Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 08:47

now we need just a level where you can collect so many of them that you can always build the highest tower. im already working on it. the first level with about 300 - 400 goos  :D

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 09:02

okay
here it is: http://uploaded.to/?id=p1csau
the first level "going up" with about 300 goos.
readme is included in the file youve downloaded.

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 09:07

first level with 1000 goos? reply and i will make it! ;D

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 09:27

okay,bad idea!
the first level with 500 goos is very laggy.after you click on continue it loads about 30 sec!  :o
my system: C2D E6750 @ 2x3.00 GHz  ::)

Re: Modified executable to allow more than 300 balls in the corporationichifish12/29/2008 - 09:41

I just used tsearch to directly edit how many exta balls it thought I had collected. I wonder if there's any way to tone down the quality of the physics simulations so it runs smoother...

Re: Modified executable to allow more than 300 balls in the corporationtair00112/29/2008 - 09:48

...am I the only one thinking that this is just going to encourage more cheating on the leaderboards? It's bad enough as it is with people modifying their pers2.dat files, but with modified .exe's as well...have you taken the time to disable score uploading in the modified .exe?

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 09:57

no he didnt --->  ;D 8) :-* ;)  xD

Re: Modified executable to allow more than 300 balls in the corporationichifish12/29/2008 - 09:59

No, I'm afraid I haven't - it's just something I did relatively quickly as a learning exercise. I'll give it a go now.

Edit: in fact I've disabled access to it before I can fix it. I request no one who may have already downloaded it share it in its current form.


Last modified Mon, 12/29/2008 - 10:03 by ichifish
Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 10:01

now working on a 750 goo map ! be prepared for some system crashes! xD

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 10:21

okay 750 goos map is done, but minimum 8fps  :-\ and loadtime after clicking on continue is about 2 minutes xD. ill try another map with about 500 goos. thats better for my system!

Re: Modified executable to allow more than 300 balls in the corporationichifish12/29/2008 - 14:09

Alright, it's back up, and with networking support disabled.

The solution is quite stupid but it works and it's better than spending several days going through code to see where program flow goes  ;)

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 14:29

but whats with the people like me having the executable with network support enabled?
for me its just fun^^ xD
have a tower with 1513 goos XDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

Re: Modified executable to allow more than 300 balls in the corporationichifish12/29/2008 - 14:38

It's fine for people who honestly just use it for fun, but as Tair points out, there is the potential for messing up the leaderborads with this. It's probably better this way  :)

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/29/2008 - 15:40

one question: is there an easier way to get more goos in the corporation than creating new maps and filling them with goos? it takes a long time to place all goos and my finger hurts already.... :-[

Re: Modified executable to allow more than 300 balls in the corporationBioran2312/29/2008 - 20:50

I will only use this if networking-support is indeed disabled. Don't want to mess up the leaderboard...

Re: Modified executable to allow more than 300 balls in the corporationichifish12/30/2008 - 02:56

Golle88: yeah, there is, use a cheat program like tsearch http://www.timsvault.com/cheattools/tsearch.htm to make the game think you've collected huge numbers of balls.

Bioran23: networking support is definitely disabled. As I said, the method I used is a bit stupid but it definitely works.

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/30/2008 - 05:22

Hey Ichifish!
could you tell me the address for the wog modified executable to change my number of goos? i can't find it! or could you tell me the type of the address?

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/30/2008 - 05:37

is it 8BECC40 ???

Re: Modified executable to allow more than 300 balls in the corporationGolle8812/30/2008 - 05:57

okay it works! thanks!

Re: Modified executable to allow more than 300 balls in the corporationGooOnYou02/03/2009 - 20:56

Why arent more people interested in this topic?, It's the only thing fun left in the game, Build a TOWERING pyramid of goo... Also why is your download gone?

I also downloaded  IDA Pro Advanced, Even found your string you mentioned when I searched "300", but how do you edit it? I dont get it... Could you fill me in, im highly computer literate but I cant figure this out(New to dissasemblers binary stuff etc.)... Any help would be appreciated.. I want more then 300 friggen goo balls LOL!!!... I used all 300 and its no fun anymore....Now that I think of it, it might work because I changed(Atleast I think lol) the cmd 12c 50  to x90....I dont think so though...ARGH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :o

Re: Modified executable to allow more than 300 balls in the corporationEak02/04/2009 - 06:00

I'm sorry, but I find this to be a very very bad idea.

Re: Modified executable to allow more than 300 balls in the corporationGoo_Master02/04/2009 - 06:52

I'll try that for fun, but it's not fair having more than 300 balls!

Re: Modified executable to allow more than 300 balls in the corporationSoultaker02/04/2009 - 10:31

As far as I know the game has no hard limit for the number of balls in a level; why don't you guys just create a big custom level with one or two thousand goo balls in it? That way, you can play as much as you like without messing up the leader board or risk being called cheaters.