News: Z-Net v1.2 Beta and Z-Band

Tuesday, May 21, 2013

As mentioned previously, I released the ZNI v1.2 Beta on IRC. Ever since then I've been waiting for bugs to pile up before I try fixing any of them. This left me with some time to fill. I want to remain interested in working on the project, but doing so is hard when theres nothing to do. So I decided to get a jump start on my Z-Band revamp early. I'll discuss this later.

While I was working on Z-Band, circumstance brought up the topic of security for ZNI again. People abusing/looking for holes in ZNIs protocol hasn't been a problem yet, even now. But I don't want it to ever be. I've tried and failed to learn about implimenting encryption for the protocol messages 2 times before. The problem seemed to be that when encrypting messages, sometimes the characters for "\r", "\n", and "\0" would come up and pose problems. It seems to me that other people don't have these issues and can send those characters over IRC just fine. I don't know how though. Encryption among many things, I'm just not comfortable with, to the point of not even beginning to know how to solve an issue like that. While I have since discarded it, growing fed up with that issue halting progress, I decided to use a character substitution method for those characters. It wasn't a pretty work around, but it did work. I was finally able to move forward.

I soon realized though that encrypting the protocol messages alone wouldn't solve all my security concerns. I guess this is something I couldn't realized until I got to this point. After a lot of thinking I begin to realize what it is I truly wanted to protect. It's not the contents of the messages. It's the validity of the messages, and that's it. What I mean is, it doesn't matter that people know you selected a certain game or whatever if they can see the protocol messages. All I'm concerned with is for people not using ZNI to not be able to generate their own protocol messages, and potentially disrupt legitimate users. My original idea was that I had to hide the protocol messages to conceal their format to accomplish this goal. But I don't.

After more thinking I realized I needed a signature style setup instead. A signature setup being a encrypted code that marks the message as being a valid ZNI message. It took a bit of thinking with my newb brain when it comes to this stuff, but I figured out how I want to do the signature. I won't go into any details about it, but I had to go through several revisions before I felt it was good enough for my goals.

Any security measures I'd take wouldn't be perfect. Even if I wasn't a newb to all of this stuff. But I'm confident enough that my work is good enough for now. Average users won't be able to disrupt things by faking protocol messages. Real hackers, well, who knows. They're slowed down at the least.

I'll need to test things a little more, privately, before releasing this next Beta. I hope it goes well though.

Onto Z-Band. As I mentioned, I decided to work on Z-Band more while I was waiting for ZNI bug reports to pile up. Over the years I've revised the code many times as my skill has grown. But I've never been all that close to 100% happy with it. Z-Band doesn't support every game or version of ZSNES. I have to add such support manually. And with the code the way it was, doing so was a chore as well as messy. I've been wanting to revamp the code to a more generalized core function that requires minimal code additions to add new support. It's kind of difficult to generalize code when different games/emus require different code, but I've mostly done it! Again I won't go into details about the code itself. But after accomplishing that, I decided to test how easy it was to add new games.

Since the latest revamp, I only really had Super Mario Kart working. I worked on other games years ago, like SF2, GWED, and Tetris Attack (I thought I worked on Bust-a-Move but I remembered wrong), but those games weren't working with the new code. After a bit of work I added support to SF2 to the new generalized function. Then support for GWED to it as well. Tetris Attack however was the first game I could easily add due to the work on supporting GWED. It really was quite easy.

Now at 4 supported games, I wanted to see how well this generalized code revamp would work with completely brand new games. So I went at it, and easily added support for 4 more games, each taking maybe 15-30m, if even that long! I won't mention the 4 new games though. I'll save some news for later! =) And I just may not want to support them for some as of yet unknown reason.

Now with 8 games supported, I'm quite happy with the state of Z-Band's client side code for now. Progress with the client side code further puts a need on the server code needing advancment. I still don't feel like working on it though. I really want to leave this project for someone else. But doing that creates a roadblock in ever seeing this released.

So I decided to try an old idea I had for the Z-Band server. A IRC bot. It's not pretty, but it can do something. I already had the code posting results to the channel, for testing. It wasn't much to have this pointing to a IRC bot instead. A IRC bot only needs to confirm and log match results really. I'm quite comfortable with mIRC scripting, so its easy to create a basic bot with it for this. As is, this would just be used for tourneys, and require an official. The official would just review the log and announce round winners and pairings himself. I'm not to happy with this setup. Requiring to much manual attention and adjustment to me kind of seems to defeat the purpose of Z-Band.

As things are with Z-Band now, I'll have think about things more, and make things less manual, one step at a time. But the more I do, the more I'm working on some sort of server code, which I don't like. mIRC scripting or not. I want to stick with client code and that's it.

I don't like the idea of just supporting tourneys though. Z-Band was thought of for the purpose of rankings. I don't like the idea of handling rankings with a IRC bot though. Tourneys are fine, as the IRC bot no longer needs to be there afterwards. But rankings require the bot to be there almost 24/7. And is no different then the issue of requiring a central server, which the ZNI code attempts to resolve. While I am connected almost all of the time, I don't want it to be required for me to always be so in order Z-Band or ZNI to function. For now though, I might have to. Just to see the project move forward. And just require for people to understand that rankings would only change if my bot is present, it may be offline randomly, and they will just have to live with it.

What things I decide on to move forward, I have no idea. Atm I just know I'd prefer to have a php server, but I don't want to maintain it. A IRC bot would be easier for me, but I'd rather not maintain it either. And I know I need a server, period. For the ZNI website/forums, Z-Band php server, a IRC bot, or whatever.

As exhausting as these Z-Band dilemmas are, I'm still happy with the progress with the client code! =)

News: Z-Net v1.2 Beta, and Other Projects

Sunday, May 12, 2013

Yesterday I released the first draft of the Z-Net I v1.2 Beta. I'm so happy it's finally at this point! It's been a long 3 months of work, and every time I thought I was finished, after a break for a few days I'd suddenly come back with more to do. It eventually seemed like this would go on forever and I'd never feel I was truly done. lol.

Looking back, it's funny how I started this next version working on purely the most minor of things. Things I felt wouldn't take much coding, time, or that weren't that big of a difference. I soon found that after my work on my IRC client and ZN3, as messy as the ZNI code was/is it was more comfortable to work with. This was due to it being more familiar and refined already, requiring less hassle to do anything with in part to the familiarity and thanks to my increased skill gained form my IRC client and ZN3.

At this point, it's hard to say how much I've gained this path few months. It's probably more experience than skill. Few things really gave me any amount of challenge or required me to delve outside of my comfort zone. Those cases are when I learn the most. However, with what I've done I've certainly improved in some areas as the most difficult to work with areas of the code from last year, are now a lot less daunting and much easier to understand. In fact, a lot of such code was completely rewritten and of course majorly improved. As things stand now, I don't think I any longer feel that some part of the code is the amount of headache I would have though it was a few months ago.

With my new outlook on the ZNI code, I still can't say what my interest in it will be for the future. I have no idea if this is going to be the last major update or not. I think I can say I'm much more willing to make small updates though to address issues. But it's very likely most of my effort will be going into other projects once ZNI is out of beta.

I still want to work on ZN3. And even with my most basic ideas for it, it will replace ZNI. I only stopped it because the work was so challenging for me, that it was draining my motivation. Well, that more beat me down until I got it to a point were I realized I wanted to completely scrap an idea I had already worked on a lot. It was then that I decided I needed to take a break from it.

Z-Band has been on my mind again like it often is. My work a few months ago on re-adding the Z-Band code to the Z-Net I code was a major step for that project in keeping it accessible. After 3 months of code changes to ZNI, a few days ago I tried to see if the code would still compile for Z-Band, and sure enough with few tweaks it does. As far as I can tell it still works, though atm I cant test it since I don't have the server code setup. Speaking of the server, as usual that's the real issue with that project. I don't want to work on the server code myself. I've really been wanting someone else to join the team and take the reigns on that. Sadly its seeming like that is never going to happen. So I'm realizing more and more all the time that I'm just going to have to push through as much as I can, and work on the server code myself to ever have any chance of the project seeing the light of day. But besides the server code, there's another issue with the server. The server itself. If I ever hope to have the project used publicly, free hosts won't cut it. The websites don't generate enough to pay for a real host, so even if the server code was refined well, I'm always going to have that fact in the way.

Looking forward, after ZNI v1.2 is out of beta, I think Z-Band is what I'll be working on again, for however long. I would like to refine some of the client code. Maybe add a new supported game, or something. I would really like to at least get it to a point were I can demo it, in a video, with select users, or maybe even a release. My thinking is that maybe getting the project out there more, in a more tangible way will help interest in it, maybe spark some server funding, or interest from a potential server dev.

Well, in closing I'll mention the Z-Net I v1.2 Beta again. It's semi public right now. I thought about doing a semi public beta like I did last year, requiring forum membership. But I figured I'd try something a little different. One of the big new features of this version of ZNI is the chat lobby. My hopes is that finally we will be able to start seeing a real community developing around group chatting. While not perfect sense, it makes sense to me that the release of this beta should focus around such a chat community and be released in the IRC channel. I guess my hope is that coming by the IRC chat room will hopefully help further jump start such a community ahead of the full version. I probably should make it a requirement to actually talk, as it's quite rude just to join, type the trigger, download the beta then leave without saying anything. Even more so when I actually catch such users on and say hello, just to be ignored. But such a requirement would be to limiting. It's going to be a delicate balance trying to get enough users who can/will actually help test it, but also limiting it from being used by to many people before its ready to handle them.

Check out my post on the Z-Net website if you want to know more about the beta, how to get it, and help.

Z-Net I v1.2 Beta Info

News: Z-Net I Status and Other Stuff

Tuesday, May 07, 2013

It's been almost 2 months since I've updated this blog. I'm still active on my hobby projects, mainly Z-Net I. Normally I'd have posted progress updates for it here. But I decided that I'd post them on the Z-Net I forums instead to help draw traffic and discussion. Well, that didn't really work out to well, but oh well, I tried.

Since my last news update, it seems I dived more into Z-Net I than I planned. Instead of just adding small things and tweaks, I've gone and changed a whole lot! Z-Net I v1.2 is going to be a big upgrade over v1.1 and zbattle!

I'm not finished with it yet, but I'm not likely to add anything more other than tweaks and fixes. I've begone personally beta testing it more recently and hope to ramp that up as much as I can to iron out as many issues as I can. It's become a release rivaling the scope of the first release, and is now needing about the same quality of testing or more. There's just to damn many changes!

I'm not going to list everything, but here are some of the bigger changes:


Much more modern GUI, consisting of a toolbar, cleaner look, etc.
New window for managing the feature previously named the "Black and White Lists".
Much faster speeds for the Download feature. (Testing shows at least up to 8x faster so far.)
Chat Lobby window. (When turned on by a Moderator.)
Region column and setting.
In client moderation tools. (Means moderation is less of a pain, so more moderators are likely to stick with the job, and actually do it at all.)
In GUI option for toggling UDP/TCP.
Info bubbles for guiding new users through the setup and basic use of Z-Net I.
Chat improvements, like colors, timestamps, logging, copy/pasting, URL hotlinks, etc.
Option presets for game room titles. (For when 1 game isn't enough.)
There's much more in this update, mostly consisting of fixes/tweaks. It should prove to be a much liked improvement over zbattle that people have been waiting years for, or that new users will find much more comfortable. I've gone to great length to keep the project as close to as simple as possible to use as zbattle was. And possibly make it even simpler when I can.

In other news. I'm posting today because its my bday, and normally I'd like to release something, in some form or another. But I just don't have anything ready. Every time I think I'm done with the next ZNI update, I take a break for a few days, then come up with tons more I feel I need to add. ZN3 has been shelved since work resumed on ZNI. The website issues have kept me from getting interested in improving them. I have at least worked hard on improving hits to the Z-Net site and its ranking in search engines. The Z-Net site has almost caught up to this blog now in total hits!

I've recently begone learning 3D modeling again. So far I'm learning better then before, and its actually getting fun. So I hope I can do something with that soon that's worth releasing in some form. Like desktop backgrounds, character or armor models for some game like Skyrim, attractive graphics for these website, or something else entirety.

What else....

I'm moving my main to a different server on WoW next week. Big deal to me. Wow has gotten pretty boring lately. I want to raid, but my server is dead. Recruitment is a pain in the ass, and when you actually do get people in your raid, they usually suck. I'm moving from Baelgun to Hyjal. Hyjal is the #2 PvE Horde dominated server. The number 1 was a different time zone and is overpopulated to the point were it can get server ques. The auction house has cheaper and more stable prices, and trade/general chat is MUCH more active. I'm moving with my guild, and we hope to do recruiting once there.

Thats all for now!

Nerd Time: Goku vs. Superman

Monday, March 11, 2013

I came across a video today about this very topic. Yes, that's right. Hide from any women you ever may want to have sex with in the future. It's time to talk about a classic type of nerd debate!

As a fan, this type of crossover battle has crossed my mind once or twice. Not to the point of coming to any sort of conclusion on who would win or even discussing it, but it did sound cool and interesting. Well, thanks to some guys at ScrewAttack we can see how this battle might play out! Without spoiling the outcome, I can assure you that over the course of the video you will realize that thorough thought and analysis went into this. So it's worth watching based on that, or purely for the entertainment value.

And for fans of DBZ Abridged, there's some TeamFourStar cameo voices in this!

Without further ado, here's the video.




Click read more to read my thoughts on the fight and outcome, and comment yourself.

News: What I've Been Up To

Friday, February 08, 2013

If you've read my blog in the past, you can tell the URL is different now. Sadly I lost access to the old URL, so you probably had to dig up the new one manually. As annoying as this change over has been, the good side is I now have a good, stable, and REAL URL! So from this point on people shouldn't ever have to bookmark anything new for my blog or the Z-Net site.

This may not seem like to big of a deal to some, but it is to me. It's like I've finally taken a step up with my websites, and further legitimized my projects.

Riding this new high, I've done some work on Z-Net I again. Mostly just adding new, but small features. It's nice to be working on a project again thats done to the point that ZNI is, because I can see and use the results of that work better. The Z-Net 3 project is so far away from anything even shareable for alpha testing that theres just little enjoyment out of running it. While the code quality in ZN3 is much more superior, ZNI is a better program at this point. I won't lie, it's ratty code has been a pain to work with after improving my skills since last year, but at least I'm familiar with the code to the point were I don't get stuck or slowed down because I can't figure out how to do something.

Well, after I worked on a few features, and improved some of the code, something dawned on me. Last year before I officially started working on ZNI, when I was waiting on the poll results, I was working on my Z-Band code. It was integrated into the ZNI client at the time, and once I officially stared work on ZNI I backed up the scraps of Z-Band code, and disabled/removed it all. Because of that, I've never tinkered with it since then, and showing anyone of a demo of my work wouldn't be easy. Well, what dawned on me was that I could try integrating the code into ZNI in a way that I could easily have all the Z-Band code disabled/not compiled when I want it, leaving ZNI builds functioning normally. But when I wanted to test or refine the Z-Band code, I could easily enable it all and compile it.

So after a bit of work, I got the Z-Band code running again, and in the most modern version of the ZNI source! From there I've had to make some tweaks after figuring out the state I left the code in, just to get it working properly again. Then I realized it wasn't the most convenient setup to use, because I just made it as a proof of concept. So I've made some changes to make it simpler to understand and use. Before both the client and host had to click a register button at some point before the host presses start. That never felt right, so I've now made check boxes labeled "Play Registered Match". When those are checked, then the host presses the start button, the normal ZSNES launch process will get interrupted while the users get their match registration automatically submitted to the server. Once the match is confirmed with the server, the ZSNES launch process will resume. While technically this requires the same amount of interaction from the users, it just feels easier, and much more proper.

I still need to add a password entry field somewhere (it links up with your forum.z-net.us account, so a password is needed or else people could easily tank your ratings or otherwise impersonate you in tournaments). Also status messages of the registration process could use some work. In some cases it's to spammy, and other cases it's just not informative enough.

Once I tweak those last little bits I'll finish up some work on the normal ZNI code where I've been integrating some small features I've seen requested. I may also try my hand at posting a video of Z-Band in action, since I've never posted a video before that I've created, and I've realized before that Z-Band can't properly be showcased in pics.

News: New Website for Z-Net

Saturday, January 19, 2013

I got around to making a new blog to replace the lost Z-Net website. Just as I said in my last post, I didn't put much time into it. At the moment it's mostly just a copy of the theme and layout I designed for my personal blog. I changed the background and dusted off an old header title banner though, to make it stand out as much as I can.

I would like to restore the image slide show or screenshots at some point. That and the forums are all that's really lost from the old site. Doing so may require more effort then other stuff though, so it will take some time for me to decide on what I'll do.

A link to the new site is back on the left. The old urls at this time, mostly work. The "www.z-net.cu.cc" version of the url works, but "z-net.cu.cc" is still pointing here despite me changing it not to, and giving it some time. The oldest url, "z-net.ne1.net" points there properly too.

So, check things out! Hopefully this all works out to be a positive thing like I think it might be! =)

News: Z-Net Homepage

Monday, January 14, 2013

I'm declaring the Z-Net website officially gone for the foreseeable future. I'm sick of bad free webhosts, as if its not one thing its another causing them to be horrible. I do want a website for the Z-Net projects, especially Z-Net 3. But I'll just have to wait for that.

For now, as some can probably tell, I've reverted my personal blog back to being the home of the Z-Net I project. There's a new simple page available for it in the menu on the left, and the z-net.cu.cc and z-net.ne1.net urls once again point here.

In time I may make a blog specifically dedicated to Z-Net that will remain as the homepage until I can get a good web host to bring back a real website and forums. But if I do it won't be designed very well since I don't want to put much of my time on it.

For now, all that's really lost is the forums. But those weren't used much anyway.

News: Z-Net Website Down

Friday, January 11, 2013

I know about the Z-Net website being offline. This is just further evidence that I badly need a new server. My account with the host got suspended due to false assumptions, and I'm working to get it reactivated. This is sadly what you have to deal with when using free webhosts, something which I'm stuck with until the site and this blog can start generating enough ad revenue to pay for a real one.

For now, here's a link to the backup mirror for the Z-Net I v1.1 download.

Z-Net I v1.1 Download

EDIT: Getting the website back up isn't going well. Responces from the support staff are slow, and when they come, so far are idiotic. So until things are resolved I've changed the z-net.cu.cc and z-net.ne1.net urls to now point o this blog.

Things may take time before the changes are applied completely.

News: Z-Net 3 Progress... Part 3

Tuesday, January 08, 2013

Things really have been going slow. Thanks to the horribly designed recent WoW expansion, the free time that WoW and my coding projects share has mostly been taken up by WoW. It it hasn't been until recently that I've had only little to do on WoW each day so that I could have more time to code. However, I did still find time here and there, but didn't get much done.

Since my last progress update, I tried working on some menubar stuff and hit some roadblocks. That got me sick of custom GUI work altogether for the moment, so I decided to work on building the basic window setup for the client with the goal of being able to plop in my IRC code as soon as possible. I've found that even when I intend to slow my development down, I still need to see results at a better rate then I have been, or else I have a hard time getting interested in working on things. So getting the client running as a crappy IRC client feels more like progress than several development projects I use to work on the different aspects of the final project.

As the project sits right now, it vaguely resembles my basic ideas for the final project. I do now have my IRC code plopped in, and outputting basic RAW IRC messages to a window. Soon I need to finish working on getting the RAW messages properly parsed, and resulting client generated messages outputted to windows instead. Then I need to start setting up the frame work for handling multiple IRC channel windows. If I didn't post it on the Z-Net 3 forum already, unlike Z-Net I, and more like Z-Net 2, I plan to have chat rooms available in ZN3. Not just one, but several. Ideally 1 for each Emu and common language.

Once that's done, I'll start working on the nick name list stuff for the rooms. Then finally it will feel like a project to me, and not just a mish-mash of code. My goal is now to get it into sharable alpha stages asap, even if it looks like crap. If it does something, I'm happy. Such a state for the project would allow me to more freely work on different areas of the project as I lose interest in other areas, unlike right now where I feel a bit more limited. I'll talk about more later, after I'm working on it, because I could theorize what things I'll do after what, all day.

Of note, seeing the way ZNI has gone since 1.1, I've found myself more willing to work on it. I haven't worked on it yet since then, I just realized I'm more willing now. ZN3 is still a priority though. If I do work on it, I would do so only because I'm in need of doing something that moves faster then the coding work on ZN3. What I've been considering doing if I do work on it, is likely some GUI additions/tweaks. Namely setting the recently revealed TCP option as switchable in the host window, moving the disable download option to the host window, and possibly adding a window for setting up the white/black lists. No promises on anything though. If I do make a update, none of those could be added, or perhaps some of those and something else.

Merry Christmas!

Tuesday, December 25, 2012

Just posting to say merry xmas!

Sadly I don't have much to show for a xmas update. But if you're a Z-Net I user, I released a small secret option for it for xmas, over on the Z-Net website.

EDIT: I decided to release another secret Z-Net I option for xmas, since the other shouldn't need to be used much, making kind of worthless to more then enough users. It's edited into the same news post as the other one on the Z-Net website.

Enjoy! Happy holidays!