What’s going on?

It’s taking a really, really long time isn’t it? There are several reasons. But let’s first look at the history of our server tool project.

In the beginning it took me a long time just to get the very basics working. I remember searching weeks, even months, just to get a very basic tool working in VB.NET (it was getting read/write-processmemory to work). But it did work in the end, and I was able to write a very basic chat logger. But it had several flaws:

* It constantly had to read the memory of the server to see if there was a new chat message. Sometimes chat messages were even ‘lost’.
* It wasn’t stable. Leave the programming running for a long time and I would crash. And a server needs to be able to run for a long time!
* It’s hard to install. You would have to start a second program next to the halo server. If you rent a dedicated server, it would be almost impossible to get it running on your server.

Then I moved to C#.NET. It was a bit more stable, but still had the same problems. And there’s another thing that makes VB and C# not good for the job: no inline assembler. You first have to modify the haloded.exe, and you can only do it in pure assembler. Then you have to program the C# part. It’s annoying, bugs are hard to fix, and it just wasn’t fun to work like this.

So I moved to another language: C. This is of course the best option (maybe C++ too). You can force haloded to load a .dll file, and program that dll in C. You only have to modify the haloded.exe a bit, that is still easy. And in C you can use inline assembler, and that makes life a lot easier!


juni 20, 2011 at 3:14 am Plaats een reactie

New Website

This blog is old. Please visit us at http://home.scarlet.be/mathy/gandanur.html

augustus 11, 2007 at 2:27 pm Plaats een reactie

Halo Lobby

Time for an update!

I’ve been working on iMega a while now. At the moment I’m organizing everything I found about the halo server into a simple document. Once this is done, it should be a lot easier to start with the first version that will be released. But it could still take a while though.

Now to explain the title of this post. “Halo Lobby” is another program I’m making. It’s a tool to get the halo server list with very advanced filters, player search, “wait untill playerslot is available” option, etc. Here’s a little screenshot:

Halo Lobby

Oh and the next update should have something you can download πŸ˜‰

juli 19, 2007 at 11:32 pm 1 reactie

Halo 2 Vista

No updates on iMega. At least nothing that I can say at the moment. And you’re probably wondering: “Will it ever be finished/released?”. Of course it will. I have summer vacation soon.

In the beginning I wanted to release it before halo 2 was released on PC. But I didn’t have the time/motivation. Anyway, so far halo 2 vista doesn’t look that special. I’ve heard more negative than positive things about it. And I also haven’t heard of many new server side functions … apart from the random mapcycle and probably a command similar to sv_say. iMega beats that. So if you really want to play halo 2 vista, be sure to come back to halo 1 pc for a day. Just to test it. πŸ˜‰

Maybe it’ll end up in more than a day …

mei 30, 2007 at 9:29 pm 3 reacties

An update

It’s not done yet. That’s because I’m going to add one more option before I’m going to release it. It will be scripting.

You wil be able to make your own scripts that the server will run. A lot of the commands are similar to the haloce scripting functions. But unlike haloce, you can make scripts that will work with all the maps. And you will have more server specific functions that you can use!

I can’t say much more about it, a lot still needs to be made. But once it’s finished iMega will give the user a lot of control.

mei 20, 2007 at 11:56 am Plaats een reactie

Version 0.8a is working!

For an iMega demo, watch this movie! Also, the forum is up and running! But let me first explain everything a bit more.

How did the project start?

A long time ago I wanted to make a server tool for halopc. But unlike haloce, it doesn’t have functions like sv_say or chatlog. And it’s quite hard to make a decent server tool without those 2 functions. So the big question at that time was: “How do include these functions in halopc?”. But I knew that was too difficult for me at that time. And instead of asking “omg lolz how does I make thez functionz1!!11!?” on a random forum, I started reading tutorials.

Anyway, after learning enough about Assembly, DMA, RE, etc. and switching from VB.NET to C#.NET I was able to make a chat logger. After that just kept learning and trying.

What is Halo Server Explorations (HSE)?

I think it would be good to create a small group of people who all know much about the halo server and know enough about C#, RE, etc. This way we could all work together, share information and make the halo server a lot better. Although I think that I’m still a “newb” at C# and RE, it would be great to work with smart people :-). You can call that group HSE, and they make tools like iMega.

What is iMega?

It’s a server tool for halo1pc. At the moment the features are (of version 0.8a):

  • Chat logger
  • sv_say command:
    • Currently iMega hijacks a playerslot to send the message. So unlike haloce it doesn’t prefix the messages with something like β€œ**** SERVER ****”. It will just look like a message of a normal player. But the messages itself are prefixed with β€œ[iMega]”. So you get something like β€œIFE eggor: [iMega] Vote for next map!”.
  • Admin control based on cd key hashes
  • Chat based commands for admins:
    • See the iMega section for a list with commands.
  • Chat commands for players:
    • /adminlist: Shows the current admins in the server.
    • /vote option: Vote for a map option (used in the vote for next map system)
    • Hidden command: try to find it! It also starts with a “/”. (Hint: being a bit emo can help.)
  • Vote for next map

It’s an application that runs next to the halo server. Most of the programming is done in C#. But to make functions like the sv_say command, it was also needed to modify the haloded.exe itself. This means that if you only want to use the sv_say command, the only thing you need to do is replace the haloded.exe with our modified haloded.exe. For other functions you will need to run the iMega program (requires .NET framework 1.1).

Vote for next map system

When I was testing the map vote system on my server, someone joined right before I typed the sv_map_next command. Anyway, the PCR comes up, and iMega shows all the voting options by hijacking my name (for someone who knows nothing about iMega, it seems like I can type super fast). During voting chat is disabled so he couldn’t say a thing. Once the vote was over and the next map was loaded, he asked me if I was a robot.

Moral of the story: You need to know how the system works before you can use it (And no, I’m not a robot):

  1. When the “Escape = quit” text comes up, iMega will ‘disable’ chat and send all the options:
    Votemap - Options
  2. As you can see, that’s a lot of information in 3 lines. The first line says what you should do, but not as detialed as this tutorial :P. The second and third line show the options. Because chat message can’t be long, the map name is abbreviated to 2 letters and, if needed, the gametype is abbreviated to 7 letters.
  3. Read the options. Choose the next map and gametype you want.
  4. Now it’s time to vote. Do what line one says you to do: type “/vote <number>”. In this example we are going to vote for “RR cslayer” (RatRace classic_slayer):
    Votemap - vote 2
  5. If you typed it correctly, iMega should say for what option you voted:
    Votemap - voted option 2
  6. Once the voting time is over, it should say what the next map will be:
    Votemap - next map is

iMega Version 0.8a

At the moment the main functions of iMega are working. But many things still need to improve. Anyway, version 0.8a will be the first version that will run on a public server. It will run on the server A big thanks goes to jonsen of demonhost.co.uk for letting us run iMega on his server. Probably iMega will start to run on that server on Monday (9 april).

And for an iMega demo, watch this movie! Also, the forum is up and running!

april 5, 2007 at 11:31 pm Plaats een reactie

Little update


As you may have already noticed, one week already passed. But it’s not finished yet. I had a few unexpected problems with reading/writing to xml files. But those are solved now. Anyway, the main chat functions are working. And at the moment I’m working on the “vote for next map” system. Once that’s finished it’s time to add some functionality to the interface (after all, it’s always nice that you can actually control a program πŸ™‚ )

So at the moment it all looks good. And if there are no big problems, I should be able to finish it this week!

april 2, 2007 at 11:52 pm 1 reactie

Oudere berichten