PDA

View Full Version : Looking for people to help test Maxplayers Mod



TheBerkin
September 22nd, 2010, 01:49 PM
I have recently created an application for altering the maximum players in a server you are hosting to beyond sixteen players. In order to execute an successful test, I need to find a large number of people (around 30), to assist in the test.

Anyone who is interested, please contact me on Skype (grenzatuna), or MSN (grenzatuna@gmail.com). Thanks!

:iamafag:

.Wolf™
September 22nd, 2010, 02:37 PM
Have you tried hosting more than 16 yet? Or do you want to find out if it works?

Donut
September 22nd, 2010, 02:38 PM
have you tested this at all yet? or are signing up for the maiden voyage here?
E: lol ninja'd. but seriously, you might want to post some code or something because if i recall a couple of people have tried this before and it just didnt work. not that i dont believe you, im just saying you should back up your claim here since people havent been able to do this before.

i wouldnt mind helping you test it though.

Skarma
September 22nd, 2010, 03:07 PM
He said on msn he has not yet tested it and it is merely an experiment, but one that I know will fail. He said that clients do not require to run the application. As I recall, clients do store some basic information about ALL players, not just the server -- this means clients need to allocate memory for more than 16 players. When the server sends information about player #17 or above, the client won't know what to do with it or crash or the like since the client does not know about the extension. I say this is a bad idea, the network code is very old and probably wasn't coded for that many connections for a reason. Oh well, we'll see..

Dwood
September 22nd, 2010, 03:17 PM
probably wasn't coded for that many connections for a reason. Oh well, we'll see..

I think it was mainly because they wanted to keep bandwidth down... that and the original xbawx version complied with only 4 other xbawxes , max of 16? coincidence? I think not.

This will fail because clients need to be modified to have more than 16 players too, at minimum. I'm not a major in halo's networking however I bet that we would need to add some new code in there for it to handle the more than 16 players.

TheBerkin
September 22nd, 2010, 03:27 PM
Have you tried hosting more than 16 yet? Or do you want to find out if it works?

The latter.

CrAsHOvErRide
September 22nd, 2010, 03:29 PM
He said on msn he has not yet tested it and it is merely an experiment, but one that I know will fail. He said that clients do not require to run the application. As I recall, clients do store some basic information about ALL players, not just the server -- this means clients need to allocate memory for more than 16 players. When the server sends information about player #17 or above, the client won't know what to do with it or crash or the like since the client does not know about the extension. I say this is a bad idea, the network code is very old and probably wasn't coded for that many connections for a reason. Oh well, we'll see..

Well one thing which would be possible is to occupy 1 player slot with 2 players by swapping them in a fast rate (just having some weird fantasies here) :P

Anyway he prob did some 0x40E563 = 30 which will obviously not work

TheBerkin
September 22nd, 2010, 03:38 PM
Post some code? It's quite a lot, but I suppose I can give a small sample.

This is a small snippet that checks the current game status and alters opcodes to keep your custom value there:




MemoryEditor ed = new MemoryEditor("haloce");
numericUpDown1.Enabled = true;
if (ed.ReadInt32(0x006B72A4) == 0)
{
label4.ForeColor = Color.Red;
label4.Text = "[CE - Idle]";

}
else
{
label4.ForeColor = Color.Green;
label4.Text = "[CE - Hosting]";
}
//NOP-ing below...
//These used to kill my custom value constantly on the server setup screen
ed.Write(0x004A5EC8, new byte[] { 0x90 });
ed.Write(0x004A5EC9, new byte[] { 0x90 });
ed.Write(0x004A5ECA, new byte[] { 0x90 });
ed.Write(0x004A5ECB, new byte[] { 0x90 });
ed.Write(0x004A5ECC, new byte[] { 0x90 });
ed.Write(0x004A5ECD, new byte[] { 0x90 });
ed.Write(0x004A5ECE, new byte[] { 0x90 });
ed.Write(0x004A5ECF, new byte[] { 0x90 });
ed.Write(0x004A5ED0, new byte[] { 0x90 });
ed.Write(0x004A5ED1, new byte[] { 0x90 });

//These used to kill my custom value when I first go to the server setup screen
ed.Write(0x004A5C98, new byte[] { 0x90 });
ed.Write(0x004A5C99, new byte[] { 0x90 });
ed.Write(0x004A5C9A, new byte[] { 0x90 });
ed.Write(0x004A5C9B, new byte[] { 0x90 });
ed.Write(0x004A5C9C, new byte[] { 0x90 });
ed.Write(0x004A5C9D, new byte[] { 0x90 });

//These used to kill my custom value when the server is first started
ed.Write(0x004E7AB6, new byte[] { 0x90 });
ed.Write(0x004E7AB7, new byte[] { 0x90 });
ed.Write(0x004E7AB8, new byte[] { 0x90 });
ed.Write(0x004E7AB9, new byte[] { 0x90 });
ed.Write(0x004E7ABA, new byte[] { 0x90 });
ed.Write(0x004A5E96, new byte[] { 0x90 });
ed.Write(0x004A5E97, new byte[] { 0x90 });
ed.Write(0x004A5E98, new byte[] { 0x90 });
ed.Write(0x004A5E99, new byte[] { 0x90 });
ed.Write(0x004A5E9A, new byte[] { 0x90 });

This is the main part that actually changes the sv_maxplayers value. Taken from the ValueChanged event handler for the adjuster.



MemoryEditor memedit = new MemoryEditor("haloce");
memedit.Write(0x00634B94, BitConverter.GetBytes(Convert.ToInt32(numericUpDow n1.Value)));
memedit.Write(0x006B41C4, BitConverter.GetBytes(memedit.ReadInt32(0x00634B94 ) - 2));

The MemoryEditor class is written by me as well.

To be totally honest, I am not expecting any particular result. I did this out of curiosity.

Kornman00
September 22nd, 2010, 03:41 PM
Increasing the maximum allowable players would require HEAVY fucking engine modifications, namely due to inplace arrays in various game data. Some of that game data is statically stored in the exe's virtual memory too, making things that much more annoying to fix-up.

I doubt anyone even with a year to spare and dedicate to it entirely could muster up a modification for client and server exes.

CrAsHOvErRide
September 22nd, 2010, 04:23 PM
The MemoryEditor class is written by me as well.


Not that I am doubting anything but it looks like the one I released. You don´t need to do any testing. That code won´t suffice.

Vicky
September 22nd, 2010, 04:42 PM
Some tasty conditional loops anyone?

Shock120
September 27th, 2010, 11:43 AM
Damn, the one thing that never changes is the 16 player limit. D: