Join the premier SNES online gaming community.


Battle against players from around the world.


Challenge your friends with your favorite games.


Choose from many first rate co-operative games.

Make new friends

Find people who share a passion for SNES games like you.

Quick and Easy

Start playing games within minutes after a simple setup.

Z-Net I v1.2.0.2 BETA

Tuesday, May 28, 2013

The previous build has informed me about an issue were sometimes a protocol message would be ignored when it shouldn't be. This is a likely bug to see with the way ZNI now validates protocol messages, since the validation process has to decide if a message is real or fake. The issue is that some messages that should be valid are getting seen as false, and some messages that should be valid are getting created in a way that would cause them to be false. I've done my best and generated theory's as to why this happens. I've concluded the bug happens in 4 forms. I have fixed 2 of them with a reasonable amount of certainty. However the other 2 are still a mystery. My best guess was it is due to some of my IRC code, which since I created it for ZNI I have improved on with other projects. My best attempt at a fix to the remaining 2 versions of the bug was to transplant the code from those projects into ZNI, and hope it fixes the remaining issues.

So you know, the issue happens fairly uncommonly. I'd say even less often then 1/100 protocol transmissions, but its hard to say if more or less really. For me having ZNI messages work 99% of the time isn't enough. I want it at 99.9999% if not 100%.

If you want to know how the issue effects you when it happens, say someone hosts a new room. A protocol message sends out for that event, but its signed with a signature that other clients will see as false. Those other users ZNIs wil ignore that message, and no one will see that users room listed except himself. Or say you're in a room with someone, they select a game, a scan starts on your end, a match is found, a protocol message is sent back to tell the host you have a match, but that message is signed incorrectly. The host will ignore it, and will think the scan on your end is taking forever. Neither side will realize whats going on until a significant amount of time passes causing them to realize somethings up.

As you can tell, this bug can be quite disruptive when it happens. I hope I fixed it, but I'm not going to assume I have until I see otherwise.

This version would be semi-compatible with v1.2.0.1. A change has been made to make things more stable, but would make things even more unstable between different versions. So a upgrade will be forced.

Other then that issue, I fixed a problem with the Download button crashing the Client side when pressed. And I also crammed in a few additions as well. You can find the full change list below.

I'm going to re post a portion of my last post again as it still applies.

Anyone posting about this directly to non-English users, please translate this as well as a copy of the included Rules.txt.

This is a Beta. Feedback about the bugs and issues is the primary goal right now. This is not meant for re-distribution, and should only be made available through www.z-net.us. If you feel you want to link to it, please link to the named website instead. Please also supply translations of the Rules.txt as needed.

That message applies to English speaking users as well. While I've made many strides to better facilitate the use of Z-Net I by users of multiple languages, English speaking users have always been and will always be the target audience. I can not account for all the possible languages, so I won't even attempt to account for any. So it's in the hands of the users to translate anything users need to know if sharing Z-Net I directly with non-English speakers.

 And finally, here's the new beta! =)

Download Z-Net I v1.2.0.2 BETA

Fixed 2 issues with discarding protocol messages.
Attempting to fix 2 issues with discarding messages. Attempting because I'm not certain about the cause.
Fixed a crash with the download feature.
Fixed a issue with Region tags in the the Ignore & Allow lists not loading.
Added a change to not scroll down to the bottom of the chat when a new message is added, if you're scrolled up viewing history.
Fixed being able to type in the input field of the client window while its disabled. Like when the Host closes his end.
Added a message to the Client side window when the Client joins a Host successfully.
Added an optional announcement message in the Chat Lobby for when a user hosts a new room. Default is off. Set announcerooms=1 in the [options] section of your ini to enable this.

Z-Net I v1.2 Beta, Stage 2

Thursday, May 23, 2013

I'm doing this on a whim. I felt I could no longer wait on feedback from IRC Beta testers, and I could no longer wait for the only other private Beta tester to test the recent changes. So I'm starting the 2nd stage of the Beta. What that means is, it's now a public Beta available directly on the website. This is still not a distribution build, so don't host it else where. And don't link directly to it, link to this post or website instead.

For as long as this is in Beta, v1.1 will still be online. Once it's no longer a Beta I may or may not disable v1.1 from working. My hope now is that most users will be using v1.2, and only using v1.1 if there's a serious issue. (UPDATE: I have chosen to disable v1.1 for a day or two to make sure people try to use this instead. It will be online again later before going offline permanently with v1.2 is out of Beta.)

Anyone posting about this directly to non-English users, please translate this as well as a copy of the included Rules.txt.

This is a Beta. Feedback about the bugs and issues is the primary goal right now. This is not meant for re-distribution, and should only be made available through www.z-net.us. If you feel you want to link to it, please link to the named website instead. Please also supply translations of the Rules.txt as needed.

That message applies to English speaking users as well. While I've made many strides to better facilitate the use of Z-Net I by users of multiple languages, English speaking users have always been and will always be the target audience. I can not account for all the possible languages, so I won't even attempt to account for any. So it's in the hands of the users to translate anything users need to know if sharing Z-Net I directly with non-English speakers.

Without further ado, here's the download link!


For a complete list of the changes from v1.1 to 1.2, look at the end of this post.

If you downloaded the previous IRC beta, you will need to re-download this.

For help and the reporting of any issues, please use the forum link below.

Help and Bug Report Forum


I've already discovered a tiny flaw in my protocol message validation code. The flaw will occasionally cause some protocol messages to be ignored. I've uploaded an improvement fix over the last one. It's an improvement, but not perfect and I would still like to address the issue some more. To experience as few issues as possible you should upgrade if you got the previous v1.2.0.1, but it's not absolutely necessary. As soon as I can think of how I want to try fixing it better I'll be posting a update. This is how betas go, so just be prepared to update again at some point.


I've learned of an issue causing the Client to crash when trying to download from the Host. Fixing the issue was easy, but the fix wont be available till the next beta version. I don't want to bombard users with updates to often.
Changelog from 1.1:

Updated to use more modern source libraries.
Added a "Use UDP" option to the Host Window. This option gives access to using TCP, but it was labeled like this and defaults to being enabled to better match up with what people are used to.
Moved the "Disallow downloading" option to the Host Window under the label "Disallow Downloads". It makes more sense there, and it allows the Host to toggle it on and off as he wishes. It won't apply until you select your next game or until someone new joins.
Added a global Chat Lobby window. This Chat Lobby window will only be accessible by the control of mods. Mods can toggle its use on and off for everyone at will. When available it is accessed from a "Chat" option on the "Game" menu.
Made the Host, Client and Chat Lobby windows re-sizable.
Added Hotlink support to the Host, Client and Chat Lobby windows.
Added the ability to Copy highlighted text in the output area of the Host, Client and Chat Lobby windows, with Ctrl + C and a right click popup menu.
The Download option is now up to around 8x faster then before. Resuming incomplete downloads is now supported properly. There's is also now a speed indicator in the File Transfer window title bar.
Removed the File Transfer port range. It's now just 4000 by default.
Added the option to use preset game room names instead of requiring a selected game.
Added popup bubbles that act as a introduction guide for first time users.
Added better security for the Z-Net I protocol communications.
Added a Region option to display a country code with your game room listing.
Added a new window for managing the Ignore & Allow lists, along with menu options to toggle which is in effect.
Updated the Ignore & Allow lists to allow support for Regions. Simply use "[**]" instead of a name, replacing the wildcards with the country code.
Made the Ignore list (but not the Allow list) effect the Chat Lobby window. The Ignore list will be used regardless of what Ignore/Allow mode is toggled on.
Renamed and moved several ini keys. Z-Net I will automatically convert the old keys to the new ones.
Added a "Open Ini" option to the view menu. This should help with advanced settings.
Added an INI option for using timestamps on the messages displayed in the Host/Client Windows. "timestamps=1" under the "[options]" section.
Added an INI option to enable logging the messages of the Host/Client Windows to a text file. "gameroomlog=1" under the "[options]" section. The text file is called "GameRoomLog.txt" and will be located in the install directory.
Added a "debug" key to the "options" section of the ini. 1 turns if on, 0 turns it off.
Added "hidejoins" and "hidequits" keys under the [options] section of the ini, to hide those types of messages.
Added a "openchatlobby" key to the [options] section of the ini, to automatically open the Chat Lobby when its available.
Added a few extra messages for the Host/Client windows, to help cover times were users would be unsure or results of what they are doing.
Added and additional message to show that selecting a game from the create window also loads the selected game, and selecting it again from the host window is pointless. It always has been.
Improved the Hotkey combos. Few users knew they existed. They are now labeled on the menu, and there are even ones for some of the new options.
Updated the UI of the main window to be more modern with a Toolbar, Menubar icons, and color schemes. This comes with a new "View" menu as well.
Upgraded ZNI to using a higher version of Comctl32.dll for the display of controls. It also helps make things look more modern now.
Cleaned up some residue with text strings left over from zbattle cloning, due to feeling they no longer made sense, if they ever did.
Added the ability for your last chosen game and/or preset in the "Create Game Room" window to be saved and used as the defaults the next time you open the window.
Added a "Single-Player" option to the "Game" menu. This prompts you to select a game, and run it in ZSNES for single player gaming while you wait.
Colorized the messages in the Host/Client windows.
Changed the Message Box popup for Notices/Announcements, Kicks and such. This time it's custom made to look similar to the normal API message box, but the major difference's are that it's re-sizable and has hotlink support!
Fixed an issue with using a background image in the game list window not displaying, or looking for the ini file in the wrong location.
Fixed an oversight with selecting a game from the host window, not preforming the same checks as the "Create Game Room" window, like it should have.
Fixed a issue with selecting a zsnesw.exe changing the default directory for selecting a game away from the gamedir.
Removed the use of the generic Z-NetUser## nick name. In all cases when it would have been used, users are instead given an error and redirected to supply a valid name.
Fixed the File Transfer window closing when a user presses enter with it focused.
Fixed long standing, but likely not often occurring oversight that allowed for the possibility of ZNI overwriting a users ROMs. Fixed an issue with being unable to connect to the IRC server that Z-Net I uses, and seeing a socket error.
Fixed/changed many other unannounced things.

Z-Net I v1.2 Beta Progress

Saturday, May 18, 2013

It's now been 1 week since I released the v1.2 Beta on IRC. Such a release has proven effective at keeping its use limited to a smaller number of users, and to users who can actually provide feedback. It's hard to say though if there are to few users for testing. The amount of bugs found since 1 week ago has been small, and most of those were from me. However I'm thankful to say that the feedback on the advancements over v1.1 and zbattle, while limited, has been positive. Of course the additions and refinements should make the program better then it was previously, but you just never know how well something will be received until people tell you.

My original plans were to move to another stage of beta testing today. Forum beta, website beta, I don't know. But those plans have been postponed. But this is due to a late addition to the code that I want to finalize. Yesterday I decided to take my 3rd stab at adding encryption to Z-Net I. Over Z-Net I's life I have made many improvements to its security, and even now it's mostly at a point were someone would have to be actively trying, and under very specific circumstances to disrupt ZNI operations for other users. But still I've never been completely happy with its level of vulnerability due to knowing that encrypting its communications would make it so much more secure.

My 3rd go at adding encryption has yielded results finally! I now have a build of Z-Net I that is working with protocol messages fully encrypting and decrypting properly. To most users this will sound boring and of little reason to care. It's not something like adding a feature like the Ignore & Allow lists, a Chat Lobby, or making the GUI look more apealing. When all is working well, users won't see any difference since it's all behind the scenes stuff. But to me this is a huge step for ZNI, and I've very happy!

What it does mean for users that they might care about though, is just there being less of chance of pathetic trolls with no life being able to disrupt users ability to play, socialize, or whatever. But I guess there's another thing as well. When Z-Net I v1.2 is officially released as a non-beta, and not a moment sooner, I can open up the Chat Lobby to normal IRC clients. This means that the chat room pointed to on the site will change and be shared with the one used by ZNI. So even when you're not using ZNI, you can still socialize with its users. This will be another big step for increasing the community!

However, I may not open up the chat room to everyone right away, or even at all. There are still some things to consider. I won't explain it all, but doing so could damage things. And I also have to consider rules for non-ZNI IRC users too. Either way, I'd rather be able to do something and choose not to, then not be able to and think I might want to. So the situation will be better off.

For now my plan is to do some private testing of addition of encryption, to make sure everything is working correctly. Then I'll have to consider modifying the protocol due to some bits no longer being needed. My hope is to do this soon over the next couple days and roll out a new version to replace the one obtained on IRC. And if all goes well, this time next week will see v1.2 move to the next stage, whatever that may be.

In closing, since I'm bumping the post down now, if you are interested in helping test the beta, if you haven't already done so, read the post below to find out how to download it.

Z-Net I v1.2 Semi-Private Beta

Saturday, May 11, 2013

It's time now! The Z-Net I v1.2 Beta is now available to theoretically everyone. Theoretically because it's not available in the download section of this site. It's being made available only to users who join the IRC channel for now. Anyone can join and get the beta, but that's the only place to get it from.

Simply join and type "!beta" without the quotes. This is done to be more limiting of the amount of people using it until a healthy amount of bugs and issues are ironed out. And also in hope of starting to develop a group chat community in the IRC channel and Chat Lobby.

As usual, for discussing bugs and informing me about them in hopes of me fixing them, the forums are the place for that. Particularly this forum. I should also mention that since this is a beta, feedback/bug reports are the main goal. As such this is even more targeted at English speaking users, as you would need to be able to convey any issues you find in a way that I can understand. Machine translation is not helpful. Sorry. There are no plans to deny non-English speaking users at this time, but that could change if to many users are as such.

I hope to see people using it and enjoying it! =)

Z-Net I v1.2 - Almost Ready!

Friday, May 10, 2013

I'm finally almost finished with v1.2. I've stated it several times before in the dev log post I was maintaining on the forum, but this time it's even more true. So much so that I feel its worth post a news update about.

I have added all the features that I want to for now. I can't think of any more tweaks to make. And I am no longer finding bugs by myself. Stafos has been a big help with testing, but he too is finding little else on his own. And that's our entire roster of beta testers! I had 3 others for the pre v1.0 beta last year, and even then felt that was lacking, so I most certainly do now as well. More so after fixing several bugs now that should have been caught then.

Last year I did an semi-open beta, where the client was released as a beta only available on the forums. The idea is sound and I feel like I'd want to do that again. But the fact is, the community is to small. It can't afford to split users between 2 versions of the client right now. I don't want everyone using the beta, but I do want some people using it. But no one will for long if there's to few people to play with.

This is my dilemma for now. Hopefully soon I'll make up my mind, and make the final sweep with the code.