Page 1 of 1

My manasource 0.5 client with all newest libs for Win32

Posted: 11 Dec 2010, 21:50
by BoomerTheKran
I've managed to cobble together a manasource 0.5 client will the current latest libraries for Windows. There are 2 versions in the archive. One is optimized for P4-Prescott(because that's my architecture) and the other is the exe made with no mods, optimizations, anything. I have the settings running it without opengl because the opengl on my computer is quite old and will not run the latest spec. Current updates as of 2010-12-11 to themanaworld.org user client are in there as well. It seems to run much smoother than does the tmw-official client. Try it out and let me know what you think. Link on next line.

On My SkyDrive. Click here

If that link doesn't work, let me know.
If I'm not allowed to post this here, let me know.
If you like it/hate it/want me to bugger off, let me know.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 12 Dec 2010, 20:36
by Frost
Boomer, your link works fine for me. Thanks for posting that.

What performance improvement did you see with the optimized binary? I see the file is about 4MB instead of 24, which is impressive.
(Haven't tested it it on my, erm, Mac.) :)

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 12 Dec 2010, 21:35
by BoomerTheKran
@Frost
On my Pentium Dual-core setup, I noticed about 10% more CPU available.
As is always, YMMV

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 13 Dec 2010, 19:57
by Matt
And how can I be sure that your "optimized" binary won't send my shiny passwords to you?

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 13 Dec 2010, 23:35
by BoomerTheKran
Matt wrote:And how can I be sure that your "optimized" binary won't send my shiny passwords to you?
I suppose you can't. How can you be sure that I would WANT your passwords? :D

I did not put anything like that in there. No point to me. I have enough to worry with in just my character.
If you want to see for sure, there are reverse engineering programs out there. Feel free to use them.
Report back what you find! :)
Also, there's ways to watch the network access. Make a new account using another email address. Make a dumb password, watch the packets flow, capture them, and read the output. Mostly you'll want to check which IP addresses it accesses. I've done that for software I didn't trust before, takes a gawdawful length of time(or did 5 years ago).

Another way to test: run it in a virtual machine, monitoring all packets through that VM.

Yet another: Use windows firewall logging!! http://technet.microsoft.com/en-us/libr ... 57033.aspx

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 07:36
by bigglesworth
Boomer--

Please, if you have the time, give us a step-by-step process to re-create your Windows binary.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 15:05
by Kage
the binary is so small likely because he compiled without debugging symbols, which should be the default for a release.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 15:13
by Crush
Does it really make sense to have debugging symbols enabled in a Windows release? A normal windows user hasn't got GDB installed and thus can't deliver a backtrace anyway.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 16:35
by BoomerTheKran
Kage wrote:the binary is so small likely because he compiled without debugging symbols, which should be the default for a release.
Here are the extra compiler flags I used.

Flag-------------------------- Description
------------------------------ -----------------------------------------------------------------
-s ______________________strip all symbols
-O3 _____________________Optimize fully for speed
-fexpensive-optimizations ___Expensive Optimizations
-fomit-frame-pointer _______Don't keep the frame pointer in a register for functions that don't need one
-march=prescott __________Intel Pentium 4 Prescott (MMX, SSE, SSE2, SSE3)

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 16:36
by BoomerTheKran
Crush wrote:Does it really make sense to have debugging symbols enabled in a Windows release? A normal windows user hasn't got GDB installed and thus can't deliver a backtrace anyway.
Exactly :)

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 14 Dec 2010, 17:11
by BoomerTheKran
bigglesworth wrote:Boomer--

Please, if you have the time, give us a step-by-step process to re-create your Windows binary.
Hmm, OK. Lots of steps, I saved a log of what I did, just for such occasion:

1. Get Code::Blocks 10.05 http://www.codeblocks.org and install. Throughout these steps, do not change any C::B settings except where noted. Changes can, and prolly will, break it.
\\\\\\\\\\\\\\
2. get 0.5 source http://gitorious.org/mana/mana/archive-tarball/0.5 and http://tmw.cetki.com/other/tmw_libs.zip --thanks Crush-- and unpack both to separate directories(aka folders)
\\\\\\\\\\\\\\
3. Start codeblocks, open mana.cbp
\\\\\\\\\\\\\\
4. This is also where you set extra compiler flags in Project->BuildOptions->CompilerSettings->CompilerFlags [see above post]
\\\\\\\\\\\\\\
5. be sure to select Windows from the Build Target dropdown toolbar box
\\\\\\\\\\\\\\
6. Start compiling. You get errors, but you can fix them when they show up.
\\\\\\\\\\\\\\
7. You get errors that include files can't be found. Fix it by adding to
Project->BuildOptions->SearchDirectories->Compiler
H:\tmw_libs\include
H:\tmw_libs\include\SDL
H:\tmw_libs\include\libxml2 (Instead of H:\ put yout path to tmw_lib.)
--OR--
Download and compile each and every library(which I did for most, but is not really required) needed by the client then follow the beginning of this step. IF you do this, be prepared to download bunger-hole loads of things and learn lots of new stuff. Most of these libs compiles are not C::B compatible.
\\\\\\\\\\\\\\
8. remove enet stuff from devpak (tmw_libs). I compressed and then deleted the original files.
\\\\\\\\\\\\\\
9. add Project->BuildOptions->SearchDirectories->Linker: tmw_libs\lib and lib
\\\\\\\\\\\\\\
10. Now you should have EXE in the mana-mana source folder
\\\\\\\\\\\\\\
11. copy portable.xml from the tmw official portable client into the mana-mana src folder to make portable and keep away from any installed versions of tmw and just because I like portable apps, they can run from a flash drive
\\\\\\\\\\\\\\
12. copy DLL files from tmw_libs\DLL into the EXE folder
\\\\\\\\\\\\\\
13. fire that thing up, should run fine. It will be set by default to whatever version of OpenGL is compiled into your libs. I couldn't support that version. My Intel CGA(Crappy Graphics Adapter, I like to call it, hehe) only supports OpenGL v1.4 which is mightily old and hence incompatible. At the least on first run, I had to run from command line with --no-opengl and set to no OpenGL once settings are opened. Also, play with settings, lots of stuff not in the official 0.0.29 client. Some of these(like joystick) have to be turned off, apply, and back on to work. Haven't debugged that yet.

I recommend you save the project on exit, so it's easy to recompile for whatever reason.

Special Thanks to CodyMartin on #mana on freenode on 2010-11-22 for basics, I expounded a bit to make it somewhat easier to repeat.

Best of luck, and remember YMMV! Feel free to tell me what I've missed in these instructions.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 15 Dec 2010, 17:32
by BoomerTheKran
At Big Crunch's request, I said I'd post my libs with headers. I have made a sort of strange boo boo. I can't figure out what I've done with my compiled libs. I don't know what the fook happened, but I can't find my library compiles/sources anywhere! Something very strange here. I remember making them, stress and all, but I don't see them.
Sorry BC and others that wanted this.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 15 Dec 2010, 17:45
by BoomerTheKran
If you're not keen on compiling, I'll make and post a Windows 32-bit binary for whatever architecture you want. Just reply with your instruction sets. you can get this by running siw, get it at http://www.gtopala.com/download/siw.exe.
After running, look at Left Pane, Hardware->CPU Info->Goto Right Pane->Instruction Set and give me the values stored there. This simplifies what I need to do to compile for your specific CPU architecture. I should have no problem building this with the correct architecture info.

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 01 Jan 2011, 13:02
by Rotonen
Usually -O2 runs faster due to smaller usage of CPU pipelines due to not trying to overoptimize for the last bit.

Modern GCCs should support -march=native for autodetecting the full capabilities of your CPU instead of you having to know what exactly you run. A newer GCC will most likely produce better results for you anyway.

Try it out, test/profile what came out and report back? :)

Re: My manasource 0.5 client with all newest libs for Win32

Posted: 01 Jan 2011, 16:09
by Crush
march=native does however optimize very specifically to the local CPU. It takes, for example, things like l1 and l2 cache size into account. march=native should only be used when you don't intent to use the same binary on a different machine.