customized n02 kailleraclient

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#1
Original description for release 1:
Hello smash64 community. Do you play p2p? Do you usually play with 3 frames of delay but are stuck getting 5? Sick of doing the "ping trick"? I am too, so now those days are over.

I saw the n02 kailleraclient source code for the first time today, so I decided to add a little tweak for fun. I added a simple box where you can enter the exact number of frames of delay you want to play with. Please note that if you choose a frame delay that is too small for your internet connection, the game will lag badly. This feature is mainly designed for people who KNOW that they can safely play with a certain number of frames of lag but are currently getting more than desired. If you do not enter a custom frame delay, it just computes the delay as it normally would.

Finally, I would like to add that the HOST's frame delay overrides the client's frame delay. This means that the custom frame delay only works if you are the host.

EXAMPLE: Player1 and Player2 p2p regularly with each other. When they launch a game, sometimes they get 3 frames, sometimes they get 4 frames, and sometimes they get 5 frames. However, whenever they get 3 frames, the gameplay is smooth and playable. Therefore, they want to ensure that they are playing with 3 frames of lag. The p2p host types 3 in the little box, and all is right with the world. Without this new feature, people would usually have to spam launching the game and dropping the game until they got the number of frames that they wanted. This feature I added simply takes the randomness out of this whole process.
Since release 1, this has turned into a fully customized kailleraclient in which all of the ideas came from you - the smash64 community.


**Much credit goes to the original creators of the n02 p2p + kaillera client. Thank you very much for providing an open-source project.**

Release 18: http://www.megaupload.com/?d=4OF3QBX1

Source Code v17: http://rapidshare.com/files/402367135/OwnaClient_v17.zip

Enjoy,
Owna

Release 18: (06/08/11)
- **completely removed "<-- is ping spoofing" message due to popular demand**
- patched up a fewe security holes
--- fixed a potental crash bug that could happen while sending a PM
--- fixed a potential crash bug involving the username and the quit message
- **The IP copy feature is now working once again!**
--- It had stopped working due to a change in the functionality of the website "whatismyip.com"
- join/leave messages are now individually toggleable both for the server window and the game window
- improved replay functionality
--- You can now stop all replays with the brand new "Stop" button :)

Release 17:
- **Newer games should now always go to the top!**
- The waiting games list now appears quickly again but does not ping a server unless you right click on it.
--- It turns out that the reason why my client would bug in the waiting games list and why supraclient also bugs in the waiting games list is a failure of the protocol itself. I can't do anything about it. For those who are technical, the data fields are delemitited by pipe characters, and so the glitch occurs when a server name has a pipe character in the middle of it. The glitch will occur any time a server with a pipe character in its name or description is hosting a game. With that said, I implemented a hack of sorts that should get around it for the time being.
--- If the above paragraph made no sense to you, it essentially means waiting games list stability increased and shouldn't mess up the data like supraclient does occasionally! (but it can never be perfect unless the protocol uses a different delimiter or disallows servers and their descriptions to have pipe characters) >_>
- **New feature: The "create" button now becomes a "swap" button that allows you to toggle between the in-game interface and the waiting games interface!
- Ping spoof adjustments!
--- Bug fix: it now only attempts to ping spoof if the ping is set in the range [0, 1000)
--- **Due to popular demand, the --FakePing suffix has been removed!
--- Instead, it the server now anounces (with an emote) that you are ping spoofing whenever someone joins a game you are in.
- **Options menu reworked:
- Fixed bug with the window flashing and beeping settings
--- Timestamps can now be turned on and off
----- Timestamps now are based on a 12-hour time instead of a 24-hour time
--- Join / leave messages can now be turned on and off (one option to control them both)

Release 16:
- **Ping spoofing on kaillera servers is now possible!** HUGE thanks to Fireblaster for helping me realize why my original method wasn't working. [idea: smasher] (Apparently in the kaillera protocol you need to send 4 ping responses instead of just 1 :p)
--- You should see a box to enter an arbitrary ping at the server select window.
--- While ping spoofing, your name will be changed to indicate that your ping (and the cake) is a lie.
--- The ping spoofer will *attempt* to get you the suggested ping, but results will vary slightly. There is nothing I can do about inherrently unpredictable network traffic that might boost or lower your ping at that exact moment.
--- IMPORTANT: Just like with the p2p frame delay override, improper use of ping spoofing will negatively effect your framerate (and then nobody will play with you)! If you don't understand why this feature might be useful, or if you've tried reducing the number of frames you get but see a lower framerate, please for everyone's sake don't use this feature while gaming!!!!!
--- Spoofing your ping to be *higher* does not seem to affect your frames of delay, but spoofing your ping to be lower definitely has an effect.
- Did more work on the waiting games list:
--- Made the "Stop" button in the waiting games list actually do something
--- The Waiting games list finally pings the servers! (though perhaps a bit slowly)
--- The games will be automatically sorted by ping but not until the list is done refreshing. For now, only after the list is done refreshing can you re-sort the waiting games list.
--- Warning: as with the last release, the waiting games list is unfortunately still unstable :(
- All kaillera chat messages now have timestamps! [idea: firo]
- "word" IPs should work now! (original coders had the right idea but a silly one-line mistake inhibited this from working correctly) [idea: malva]

Release 15b:
- fixed bugs
- the "change mode" box has focus after most window transitions

Release 15:
- **The previously-disabled waiting games button taunting you for the last two releases is finally enabled!** [idea: malva]
--- The pinging of these servers is not implemented yet sadly (the built-in data pinging structures are whack IMO). I'll probably end up crafting my own ping packets eventually. Sorry for the inconvenience :(
--- This feature is not 100% stable yet.
--- The Galaxy often shows incorrect information. This is true on supraclient too and is not a problem with my client.
- The "change mode" box now has initial focus for all 3 modes: p2p, kaillera, and playback [idea: malva]
- Settings are automatically saved sooner so that crashes are less likely to "erase" newly-entered settings [idea: NeoKronos]
- Options menu reworked:
--- New option: enable or disable taskbar window flashing when a user joins your room. The default is OFF. [idea: A$]
--- New option: enable or disable beep when a user joins your room. The default is ON. [idea: malva]
--- Added an OK and Cancel button. Pressing OK will save and activate the new settings. Pressing cancel or "X"ing out of the window will disgard the settings. [idea: firo]
--- If you are an admin, you can no longer overwrite the host's settings by accident using the options menu. [idea: firo]
- Removed the "optons" button in the kaillera server select window, which did absolutely nothing anyhow [idea: malva]
- Modified the "About" window to include my name [idea: firo]
- Finally labeled the box where you can enter the custom join message
- Created a game advertise button [idea: streak, message formatting by asylum]

Release 14:
- More work has been done to the server lists:
--- pressing <enter> in the master server list, anti3d server list, or waiting games list now joins the selected server instead of refreshing (or cancelling the refreshing of) the list [idea: dandan]
--- fixed a bug where the server/game list would not disappear if you joined using the connect button
--- fixed a bug where hitting enter before selecting a kaillera server would close the current window and make it so eventually you could not close p64k without the aid of the task manager
- changed the server connect timeout period from 15 seconds to 2 seconds (nobody plays with a ping over 1000 anyway I hope... amirite?) [idea: originally malva and recently smasher]
- significantly reduced file size (should have been in the last release's patch notes)
--- the file for this release would have been about 160kb but is now in the 90kb range
- fixed a bug where after p2p'ing, you sometimes could not close p64k without the aid of the task manager
- **There has been another major stability increase!** P64k should crash far less often, and if it does, please let me know what you were doing when it crashed so I can make it even more stable. The only time I've seen it crash since this fix is very rarely in the kaillera server upon closing.

Release 13:
- fixed bug where if you cleared your custom join message, it would not save [idea: Streak]
- re-worked the master server list:
--- closing and re-opening the master server list (if you wait a second) will now cause it to re-refresh automatically
--- fixed a bug where the master server list would occasionally sort by highest ping instead of by lowest ping
--- **Added a button to access the anti3d server list!** [idea: Smasher]
- MIGHT have fixed the xx0EleMenT0xx / ShootingStar bug, though I really think the problem is on their end with either not having the latest .NET framework or not having the latest VC++ runtime.
- NOTE: The waiting games list button, which is currently disabled, should be functional in the next release or two.

Release 12:
- master server list now sorts by ping [idea: dandan]
- pinging a favorited kaillera server no longer overwrites the ip of the server [idea: asylum]
- **New feature: options menu! [idea: malva / A$]** Features include:
--- A place to specify maxplayers
--- A place to specify maxping
--- A place to specify if you want to enable samedelay [idea: nixxxon]

Release 11:
- **p2p client is now resizable just like the kaillera client!** [idea: various]
- **There is now a place to specify a message that is automatically sent out when somebody joins your game!** [idea: Asylum]
--- The box currently has no label, but this will be fixed eventually.
- Fixed a bug that occured if you tried to PM someone while people were joining and leaving the server
- Fixed a bug where you could edit the text of the in-game chat window

Release 10:
- **The kaillera window is now resizable!** [idea: various]
--- (The p2p window will be resizable in the next release)
--- The aesthetics might be redone at some point, but I'm just happy it works.
- **Both p2p and Kaillera Window placements and sizes are now saved!** [idea: Asylum]
- Fixed a bug where the create button could become greyed out if you try and fail and join a game. [idea: Asylum, I think, although his bug might be something different]
- Increased stability by fixing one crashing bug. There are, however, still plenty more to be found and fixed.

Release 9:
- New feature!: You can now send private messages to users by double clicking on their name in the users list. Alternatively, you can do right click --> Send PM in the users list.

Release 8:
- renamed "My IP?" button to "Copy IP + port to clipboard"
---The new name indicates its new function :) [requested by various, thanks to dandan] (and for the first time in my life I wish I had the java libraries for this socket crap)
- playback crashing bug has been fixed! [idea: malva] ---Also, the delete button did absolutely nothing when pressed, so I fixed that too. Recoded the time format to be in "mm/dd/yyyy" instead of "mm-1/dd" (may was showing up as "04", etc. and changed to american format cause I'm american >_>)
- "start" and "kick" buttons are now clickable even if you're not the host. this way, admins can start the game and/or kick players from the game if they want to. [idea: firo]
- fixed a bug where you could add kaillera servers with no name or ip, so the entry would be invisible unless you clicked on it. however, this bug can still occur if you fill the server name or ip with whitespace (tabs, spaces, etc.) [idea:firo]
- partially fixed auto-scrolling kaillera windows: [idea: various]
--- it only seems to stop the auto-scrolling if the cursor is not in the chat window
--- it does not ever highlight the new things said by people like it used to if the cursor was in the chat window
--- highlighting text in the chat window should now work properly
--- I will try to make a complete fix in the future, but right now, this is the best i can do
- create game button is now disabled a user joins or start a games to prevent a possible bug where you become locked out of games unless you relog into the server [idea: agent]

Release 7:
- master server list behavior improved [idea: malva00]
--- if you join a server from the master server list, leaving brings you back to the master server list
--- if you join a server before the master server list is done refreshing, it continues its refresh silently in the background so that when you eventually go back to the list, the list is complete
- game IDs added to game list interface [idea: firo + agent21]
- fixed bug where users could not be sorted by connection type for some reason (LOL!)
- shows users' pings next to their names when they join, including yourself (Nov 09 behavior) [idea: pretty much everyone]
- fixed spelling error (Excelent -> Excellent) [idea: LULZ]
- fixed colors again (please give feedback about this!)
--- the light grey *join and *leave color has been replaced with a slight blue tint
--- in-game *join and *leave messages are now the same color as they are in the normal chat
- **Important**: Fixed bug in Windows Vista where settings would not save. This occured because the .ini file that sotred the settings was located in the root of your drive, such as C:\n02.ini. This file has now been moved to the local p64k directory, so if you don't want to have to reload all of your settings, simply copy or move the C:\n02.ini to <path to p64k folder>\n02.ini [bug originally discovered by: Nixxxon and possibly ShootingStar]

Release 6:
- made the green text slightly greener to better distinguish it from the black font
- added some color to the in-game chat (it was always all black)
- **added new "My IP?" button in the p2p client.** clicking this button brings the user to www.whatismyip.com (which is my favorite way to check my global ip)
- added user IDs to the user list
- **Right click on any user for the following options:**
--- Finduser
--- Ignore / Unignore
and for admins:
--- Silence
--- Ban
--- Kick
--- Tempelevate
--- Tempadmin

Release 5:
- fixed p2p chat box not having initial focus [idea: Ownasaurus]
- fixed bug with p2p minimizing as client [idea: Ownasaurus]
- improved window appearence by making the window elements have defined borders [idea: A$]
- added beeps on user join to mimic Nov 07 client behavior [idea: malva00]
- fixed spelling error in p2p client [idea: firo]
- fixed invisible button bug found in certain versions of windows [idea: A$]
- hyperlinks work on kaillera and p2p [idea: Agent 21]
- "/refresh" or "/clear" will clear the individual chat windows (client-side) on kaillera [idea: Lordsmash]

Release 4:
- Added a lagstat button
- Added a lagreset button
- Added a right click --> finduser command
- Only one kailleraclient window is open at a time!
- Windows are now able to be minimized!

Release 3:
- Fixed a few of the chat box focus problems
- Added "Create" button next to the "Chat" button as requested. Please use double-click to join games.
- Minor text tweaks:
--- Changed french words to english
--- Changed "P2P" to "1. P2P" etc. to match the Nov 07 release style

Release 2:
- Master server list behaves like Nov 07 release

Release 1:
- Added a manual override (host-side) for frame delay
 

Agent_21

Smash Apprentice
Joined
May 15, 2010
Messages
131
Location
Your mom's house.
#2
Hello smash64 community. Do you play p2p? Do you usually play with 3 frames of delay but are stuck getting 5? Sick of doing the "ping trick"? I am too, so now those days are over.

I saw the n02 kailleraclient source code for the first time today, so I decided to add a little tweak for fun. I added a simple box where you can enter the exact number of frames of delay you want to play with. Please note that if you choose a frame delay that is too small for your internet connection, the game will lag badly. This feature is mainly designed for people who KNOW that they can safely play with a certain number of frames of lag but are currently getting more than desired. If you do not enter a custom frame delay, it just computes the delay as it normally would.

Finally, I would like to add that the HOST's frame delay overrides the client's frame delay. This means that the custom frame delay only works if you are the host.


**As this was a very small hack, 99% of the credits go to the original creators of the n02 p2p + kaillera client. Thank you very much for providing an open-source project.**

http://rapidshare.com/files/391613151/kailleraclient.dll

Enjoy,
Owna

Nice and goodjob! The smash community loves you!
 

Untrust Us

Smash Journeyman
Joined
Jun 5, 2009
Messages
294
#4
which kailleraclient source is it actually? is it nov 2007? sept 15 2007?

just asking in case you took the source of an old kailleraclient and added that cool feature in it but is still outdated
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#6
What's the difference? Is it that outdated? I'll certainly add the feature to a newer version if it's a problem.
 

Untrust Us

Smash Journeyman
Joined
Jun 5, 2009
Messages
294
#7
I'm not sure, it might be 'under the hood' type of stuff that got updated. I think a couple of GUI updates were done too.

I'll be using this when you have it using the nov 2007 source
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#9
I just don't want to waste my time if differences between September and November are insignificant. However, if enough people want it on the Nov version I'll try to do it later on in the week. :)
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#15
http://sourceforge.net/projects/okai/files/

There is only publicly available source code for the Sept 07 version and the Mar 08 version, and I don't think anyone uses the Mar 08 version. What significant differences are there aside from the automatic master server list refresh? (Don't you just use favorites anyway?) I might be able to manually fix the differences....

And yes technically you can edit a .dll but that's really hacking and is significantly more challenging (or else people wouldn't need the source code for anything).
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#17
november 1st client is superior, it loads the client list automatically when you go to master server list
OK, I released a 2nd version.
The new version auto-fetches the master server exactly like the Nov 07 client does.

Original post has been updated updated with the new link.

Enjoy,
Owna
 
Joined
Jun 11, 2008
Messages
62
Location
Germany
#18
i dont really get this, ive downloaded it and replaced with the old kaillera file. but now when i join into a server i dont have a create or join button... WTF ??? oh and also my favourite server list disappeared but thats not the big problem. p2p works
 

NixxxoN

Smash Master
Joined
Jun 16, 2008
Messages
3,726
Location
Barcelona
#19
whats the different between higher delay and 60 FPS and lower delay and 40 FPS? Plz someone tell me because I think you dont solve anything and its still bad.
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#21
MadFigher, I think the answer to your question is that you double click a game to join and right click to create. It seems the right click choices are not in english atm for some reason (LOL) , so I'll fix that later today. It's funny that the available source code would have everything except 2 random words in english :p. "Créer" = create, and "Rejoindre" = join (French).

For anyone who still doesn't get the purpose of this, don't use it. I really don't understand what's so confusing though about the usage though. It's not so you can try to play 1 frame with everyone cause your connection probably isn't good enough for that if you don't live in the same location. I'll give one more example to help make this clear.

Player1 and Player2 p2p regularly with each other. When they launch a game, sometimes they get 3 frames, sometimes they get 4 frames, and sometimes they get 5 frames. However, whenever they get 3 frames, the gameplay is smooth and playable. Therefore, they want to ensure that they are playing with 3 frames of lag. The p2p host types 3 in the little box, and all is right with the world. Without this new feature, people would usually have to spam launching the game and dropping the game until they got the number of frames that they wanted. This feature I added simply takes the randomness out of this whole process.

I hope this helps.

- Owna

P.S. The purpose of this project wasn't to rewrite a whole new interface but simply add a useful feature to an arbitrary functional p2p client. Even if this isn't your favorite p2p client, it certainly gets the job done. However, I'll do some UI tweaks to make people happy if there are enough requests for it. (Ex: adding a create game button for those who do not like to right click for some reason)
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#22
Release 3 is done, will be hosted later tonight. The OP will be edited with the updated link.

Changes:
- Fixed a few of the chat box focus problems
- Added "Create" button next to the "Chat" button. Please use double-click to join games.
- Minor text tweaks:
--- Changed french words to english
--- Changed "P2P" to "1. P2P" etc. to match the Nov 07 release style

EDIT: Link posted.
 
Joined
Jan 28, 2008
Messages
2,366
Location
Northern VA, USA
#23
If you want a project to work on, you should add all the features Supraclient has to the P2P client. :)

Right now I use Supraclient for playing on the server, and obv. the P2P one for P2Ping.
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#24
If you want a project to work on, you should add all the features Supraclient has to the P2P client. :)

Right now I use Supraclient for playing on the server, and obv. the P2P one for P2Ping.
What features does it have? Firo told me he enjoys the easy of sending people private messages via the right click menu. What else is there? Is the supraclient open source? The main reason i use the n02 client is because it's simple, functional, and supports both p2p and kaillera without dll swapping.
 

Lordsmash

Smash Apprentice
Joined
May 16, 2010
Messages
76
#25
Making the refresh ping as game starts has already been done by Morph back in 08.

Nothing new. Just laggy p2p gameplay.
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#27
Release 4 is done. The OP will be edited with the updated link.

Changes:
- Added a lagstat button
- Added a lagreset button
- Added a right click --> finduser command
- Only one kailleraclient window is open at a time!
- Windows are now able to be minimized!

I know many of these changes are taking supraclient features and implementing it in the n02 client, but I really like n02 as a base due to the fact that it has kaillera and p2p features in one dll.

Keep the suggestions coming in, since apparently I've ended up doing many of them!

Enjoy,
Owna
 

Lordsmash

Smash Apprentice
Joined
May 16, 2010
Messages
76
#28
Request-

Spoof ping (only to spoof it to next 2 frames lower or so)
customizable kaillera window (change size)
Anti3D's master server list (**** kaillera slow one)
/ignore button
/unignore button
custom /refresh command to clear kaillera main chat box. This makes it seem cleaner.
Delete Bad, Avg, and good.


This is anti3D's master server list: http://master.anti3d.com/raw_server_list2.php
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#29
Request-

Spoof ping (only to spoof it to next 2 frames lower or so)
customizable kaillera window (change size)
Anti3D's master server list (**** kaillera slow one)
/ignore button
/unignore button
custom /refresh command to clear kaillera main chat box. This makes it seem cleaner.
Delete Bad, Avg, and good.


This is anti3D's master server list: http://master.anti3d.com/raw_server_list2.php
ignore and unignore will probably be implemented in each users' right click menu

/refresh sounds good

customizable window size would be amazing. i really want to implement this, but i might do some non-aesthetic changes first

bad avg and good will always stay for compatibility reasons

Anti3D and ping spoofing might get implemented but they'll be lower priority (esp if i have to make an http request every time i want the anti3d server list... that doesn't sound fun to code :p) ... or is that list static?
 
Joined
Nov 6, 2007
Messages
9,681
#31
When I set this as Project64k's kaillera client, PJ fails to open =[

"The application failed to initialize properly (0xc0150002). Click on OK to terminate the application."

With Mupen64k, if I press on the "Kaillera" option, nothing happens.
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#34
When I set this as Project64k's kaillera client, PJ fails to open =[

"The application failed to initialize properly (0xc0150002). Click on OK to terminate the application."

With Mupen64k, if I press on the "Kaillera" option, nothing happens.
What version of windows are you running? Is it older than XP?

NixxoN, like supraclient's format?

Lordsmash, thanks. I read up on how to construct a http packet, so I might be able to do it at some point.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
#35
Yeah custom window size would be too cool. I've played on 800x600 resolution for far too long. :p
You can change the actual PJ64k playing window to any size in the graphics config options (I think it's there for most if not all plugins). What I suggested to Owna and would like to see is a re-sizable and customizable kaillera window to make bigger/smaller/maximize and adjust the allocation for each component (chat, gamelist, userlist, etc.). Of course I appreciate any and all time Owna and anyone else is putting into this.
 
Joined
Jan 28, 2008
Messages
2,366
Location
Northern VA, USA
#36
You can change the actual PJ64k playing window to any size in the graphics config options (I think it's there for most if not all plugins). What I suggested to Owna and would like to see is a re-sizable and customizable kaillera window to make bigger/smaller/maximize and adjust the allocation for each component (chat, gamelist, userlist, etc.). Of course I appreciate any and all time Owna and anyone else is putting into this.
Of course I know that, but my primary monitor is 20" 1600x1200, and the Kaillera window is a about 800x600 (little smaller). I don't want any overlap, so I just run SSB at 800x600. However, if the Kaillera window becomes smaller, then I'll be able to increase the resolution that I play at.
 
Joined
Aug 12, 2009
Messages
832
Location
Melbourne
#37
im in windows 7 64 bit and this dll gives me a blank screen whenever i try to load a rom for netplay/offline
<<edit>>
just fixed itself..
 

Ownasaurus

Smash Journeyman
Joined
Aug 8, 2006
Messages
307
Location
NY
#38
im in windows 7 64 bit and this dll gives me a blank screen whenever i try to load a rom for netplay/offline
<<edit>>
just fixed itself..
Yeah... I think that was just a coincidence. Especially since this plugin isn't even loaded for offline play :p

Three IS, however, a bug with some buttons in windows 7 64 bit. The fix has already been made though and will be released with a bunch of other changes this afternoon / evening (including chat hyperlink support).
 
Top