Friday, January 16, 2009

F-Zero VS v1.1 release

So far no bugs have been reported, which is a good sign.

However I have decided to release v1.1, which is just a very minor update. The only change since v1.0 is that a ROM check now occurs when you first start. This ROM check basically warns you if you do not have the correct version of the ROM (just a checksum comparison). Remember the correct version is 'F-Zero (U) [!].smc'.

You can choose to ignore this warning if you know you are using a hacked ROM (with new tracks for example) and are confident it will work. But if it doesn't, it means the code FZVS is supposed to be patching is not at the right locations.


emodel said...

Hi,thanks for the update, a few comments :

- It works great :)

- Having to use .net (which is 40mb installed, and puts hundreds of keys in the registry) for a 1mb server, is overkill, no way to do it another way ? (i use thinstall and it works but still..)

- The snes9x version u use saves things in the registry, which sucks, and makes impossible to save different inputs per emulator.
I think from 1.43 on, it uses ini files.

- Why doesnt snes9x remembers the last used udp and ip ? Very annoying to enter that each time you wanna play.

Congrats again for your amazing work !!!


michael said...

Hi emodel,

Good points!

I wrote the server in C# just for the sake of using C#... at the time I didn't really worry about needing the .NET framework. Truth is, more and more applications are requiring it so I assume a typical Windows PC has it installed. I will release the source code soon so someone can rewrite the code in C++ or whatever, if they see a need for it.

I used snes9x 1.42 which I believe is the last public release of the source code (windows) that works. All versions after this do not build correctly as packaged. (I'm sure there is a 1.43 that works because geiger's debugger uses it..) This is what I determined from the scarce information on the web.. what I will do is build a v1.2 that saves to .ini instead of registry. It won't be the same ini as you could expect from snes9x1.5 but it will work in a way so you can save different inputs per emulator.

I'll also make sure the last used IP address / port is saved too!

Thanks for playing!


emodel said...

Thanks to you !

Sérgio said...

i testeD it with 2players and it works, really cool. But i think i found a bug: when the race ends sometime the server just crash. This dont happens all the time, but its common.
Also i hade an idea for your project: make possible to see the other players in the minimap? that would be cool...

Sérgio said...

DO you like rockn roll racing? It would be cool if someone (you :p) did something like that for RRR. i know its already possible to play it online, but not in 3 or 4 players... if maybe youre interested then please give us a visit here:
Or you can atleast say to us how you did that stuff so someone from our community can try...

michael said...

RRR is a great game, definitely one of the best racers on the SNES. I don't have any time to do the conversion right now but on the main page I go in to detail about how FZVS works, and these principles can be applied to RRR - it's the same concept, just different code.

ps. I can do the map thing, I guess I should add that to v1.2 as well.

Sérgio said...

Also please make it show the correct colors (in 1.1 if youre driving an pink "blue falcon" the map shows it blue, not pink) i hope you can put this in too. :)

Vagelis said...

Congratulations on this.
I just wrote about it in my blog (in Greek though):

I had a similar idea some years ago, regarding Kick off 2 (on the Amiga). What I had in mind was similar to what you did, which you can easily do. Since the game doesn't play on the real hardware, only on its own emulator, the emulator and the PC can cooperate to do more things. The PC can play sounds (of better quality) for example. Or, display everything in a new way, like 3D.
You can even display statistics after the races. You can change everything but the original gameplay.

For 1.2 version though, you can have a text file where the user can add new (valid) checksums :-)
Translations should play correctly, for example.

michael said...

Καλή ιδέα! Ευχαριστώ!

Josh said...

This really is incredibly awesome. I really hope when the source is released that it takes off on a life of it's own with people wanting to extend it - well as much as the existing game can be abused of course.

"About that fifth car AI, who wants to drive the flashing generic car? *grin*" (REVERSE)

Ah yea =)

Josh said...

would there be a way to prevent the screen fading to black on a crash out? It might be somewhat more entertaining for players facing the smoldering pile of their machine as everyone else completes the race =)

michael said...

@Josh, yep I could do that, I didn't though because I wanted to allow people to see their lap times. If they don't press any buttons on their controller though, the screen should stay as it is looking at the crash. Glad you like the hack!

Josh said...

been playing this a lot lately using hamachi =)

Is there a way to pass command line parameters like the server IP and port to the client? If there is someone could probably whip together a front end for this.

Also for the server, we're never sure which interface it's getting the IP from. Most of the time if we set the hamachi adapter first in the winXP "adapter order" it works and it sees the 5.x.x.x IP first.

Well we think anyway, sometime it just won't work at all, and we're not sure what it's saying. I hope that makes some sort of sense?

michael said...

Thanks for the comment Josh. You can't pass command line parameters at the moment to the client but I will add that to my checklist of things to do for v1.3.

I've never used Hamachi before but I just read about it and it sounds interesting, if you like I can make the server print the IP address it is listening on? That being said, it sounds like you want the himachi interface to be the top priority in which case it may be an operating system setting not something to do with FZVS (I could be wrong)

Josh said...

Having it put the IP somewhere would be great for troubleshooting =)

Yea the whole "which IP is first" from what I've read is mostly an OS thing. I've seen some games where you can explicitly specify what IP it "listens" on, but not being a programmer I don't know now hard that is to actually implement.

Josh said...

Would there be a way to toggle between car collision behaviors?

I like how you've changed it for when you want "clean" races. (When you collide with an opponent, you receive what you gave ;)

But for those times where you basically want to have some F-Zero rage sessions, it would be nice to have the old collision behavior back. (Your momentum is added to your opponent's?)

I'm longing for the guilty joy of saving a boost in Port Town to sideswipe an opponent just as they hit the ramp. *evil grin*

- needless to say with the current collision code that behavior... was not rewarded to say the least =(

This is probably since I'm one of the few who actually likes driving the Golden Fox, and being a bastard to the AI (and human opponents!) in car to car combat is my only option.

Okay maybe not, but it's great fun. ;D

michael said...

@josh, I can' tremember why I did it that way but I think it had something to do with the fact you need to know the speeds of all the cars and instead of adding the code for this I just did the lazy thing and worked around it... I will fix it in v1.2 (the list is really growing!)
Thanks for your input :)

Anonymous said...

I just found out about FZVS and I love it. Its great fun to play one of my old favorite games of the SNES.
What are the future plans?
Is there a possible WII Server /Client version coming *wishlist* :D

Great job!

Josh said...

Homebrew Channel here we come ;p

michael said...

I don't have a wii or know anything about homebrew wii stuff.... and is it possible to create homebrew wii servers? If the answer to both these questions is yes then maybe this is the direction this software should take..

Clbrun said...

hi !
even if you tell it wasn t so challenging, i find your work really impressive! :o

i am a member of the super mario kart (also on SNES) community which organizes a tournament each year (yes, with real SNES, with people coming from all the europa to compete!), and we were just phantasming about allowing the same thing for SMK : playing at 4 (or even 8) players in the same time in Grand Prix mode. :D

even if there a few guys in our group who might be able to modify the rom, would you be ready to help us to make our dream come true? we don t know yet how to reward you (except our eternal "gracefullness" of course ;D ), but if you can help us in a way or another, tell me ! :-)

i m Clbrun from (french site), and my mail is clbrun_1 (at) yahoo (dot) com

Congrats for your work, greetings

Josh said...

Sorry been gone for so long. I finally got around to remembering to look more on this ;p

So there is a snes9x port to Wii

But I don't know if this is helpful of not. From my limited understanding the Gamecube (and Wii) are PowerPC architecture, which... I guess was handled by the Snes9x_GX project? Well I suppose iI would have to be, but I have no idea what the toolchain is to compile on Wii.

Also I don't know if they've gotten to the question of interfacing with the network hardware on a Wii or not... plus the huge question of setting up a network infrastructure involved to begin hosting homebrew apps (or even how "normal" Wii games do it yet).

This all assuming you can shoehorn your changes into snes 1.51, let alone on a strange hardware target.

Is this info even useful? I have no idea %P

michael said...

You got me excited about snes9x gx but it seems they do not have support for online play. Which isn't surprising considering the original snes9x code (from which gx is ported) had abandoned network support anyway as they couldn't get it to work reliably. If GX gets multiplayer, perhaps with a wii channel or similar then I'd immediately port FZVS over. Since they are both derived from the snes9x code it should take no time. Thats... if GX had multiplayer support ofcourse ;)

Prvssia said...

Hello :-)

At first, I have to say, that you've done a very good job! Thank you for that!!!

Now, I have a question about an possible enhancement.

Is there anyway to get the AI-vehicles (orange/yellow and the exploding/blinking ones), controlled by the AI, in this Mod?

I hope so.

Nice greets from Dortmund, Germany,

Gino ;-)

TylerDurden said...

Yo man email me at

Lets hack some more roms in a massive revolution where we take all those bomb old games that were only one player and add 2 player functionality, reviving them in their ultimate glory.

Wouldnt you wanna play Castlevania 4 with a friend? Zelda: A Link to the past? Illusion of gaia??Super mario world? the star wars trilogy games? mega man x?

also what could be epic is just adding 2 players on the screen where you walk around to Final fantasy 3(6) and 2(4), then it would make it pretty fun to play with a friend. I know 2 players can already fight the battles, but it sucks waiting and watching your buddy walk around til a battle.

Ive been trying to do this with maximum failure are the one who knows how to do this! we must!

michael said...

prvssia, yeah it is possible to have the AI cars in, I actually took them out because i thought it would disrupt the gameplay. in the next version of fzvs i will add an option to put them back.

tyler, sounds good, i am thinking about doing another game but it has to be something that is considered a "classic" and people still enjoy playing to this day

George said...


This Is An Awsome Game!!!!!!!!!!!!!

I Thank You For Doing This!

I Was Wondering, Can I Post This On my Myspace Site?

michael said...

@george, yes that's fine :)

Josh said...

Just giving a thumbs-up to say interest is still high on this project =)

On an off topic, I've had about zero luck with getting an F-Zero track editor that works. Though that's probably mostly since I can't read anything that Fuzee puts out as errors. I wish someone could translate it =(

Ivan said...

I'm tempted to look into track editing for F-Zero. A while back I got pretty familiar with the workings of Mario Kart on a binary level; I don't know if F-Zero would be harder or not.

That reminds me to ask if we might see source code for F-Zero VS anytime soon. I don't do windows, and I'd like to liberate the project from its Microsoft dependency. ;^)

michael said...

It is really exciting to see new tracks come out for F-Zero, Fuzee is great for that. I haven't used it though, so I can't help there.

ps. I aim to release the source code within 24 hrs!

Mossj32 said...

I keep getting stuck on "Waiting for Players", and nothing happens. Got any ideas?

michael said...

Mossj32, if the ROM you are using is not failing the checksum check, the server isn't being reached on the network. You may have a firewall stopping this communication. Alternatively, have you set the number of players correctly?

topazlink said...

hi, i havent tried ur hack yet but i spose i shud. it sounds great! and readin all the ideas for v1.2 im sure the improvements will make it even better. but, one thing ide like to say is, i have emulator software for my DS (called SNemulDS) and wud like to know if it wud be possible for a different version of this hack be made to allow sum form of multiplayer over DS emulators? i dnt mind if u think it cant be done, i'm just curious.

michael said...

@topazlin, yep it is possible. the same concepts apply

Scott said...

oh wow, cos thatd be really kl. u gna look into doin it? and i suppose itd be good if it was a DS SNES emulator version of the 1.2 release ur werkin on. (this is topazlink btw, incase u wer wonderin)

Koddy said...

I used to spent lots of hours defeating all my folks.
I used to be the fastest behind the Capitan Falkon's wheel.
F-Zero is the meaning of oldskool.
Nowadays I Buy Viagra in order to have another great time!

Bigruss91 said...

This mod is great! I wish you could do it with Super Mario Kart. All though It does have 2 players. But I Want it to be up to 8 when I play online. Keep up the good work though.

Tony said...

Hey Michael, I just wanna say thanks for the multiplayer feature in FZero. You brought back an old classic that me and my bro grew up with as kids. When I showed it to him, he was so happy. We played it that same night for hours and hours, bringing so much memories of our childhood.
So Thank you.
So will you release version 1.2? I would only like to see AI controlled opponents in the game too:)

Michael said...


Hi Tony, thanks for the comment - it really makes the work worthwhile! I'm so glad you played it for hours with your bro.

I stopped working on this project years ago (too much real life work) so unfortunately there won't be a version 1.2 unless someone else wants to take over the project :/

I have been asked to do a Super Mario Kart multiplayer, so when I have some time free I plan on starting that.

Mcstfuerson said...

So, I found out about this just a couple of weeks ago and I think its incredible!! BUT for some reason I can no longer get the client to launch, the IP and Port input screen comes up but after that all I can hear is music, no video output at all. I've tried redownloading everything, clearing all files and registry values containing "FZVS" and the problem continues. Same problem is happening on my brothers computer as well.

I figure there is some file I need to delete or value I need to reset but I have no idea what im looking for.

My computer is running win7x64 my brothers is running win7x86 if that means anything.

Would love to get it back up and running again because my brother and I had an absolute blast playing! We did experience one gameplay glitch though. On big blue it seemed like if both clients were on the water (the light bluish stuff on the track) one client would lock up. Could be a rom version issue?

If you could help me with these problems I would greatly appreciate it! Thank you for making such an awesome mod for this game!!

Michael said...

Hi Mcstfuerson

I'm glad you enjoyed it! I haven't run the code in ages... I can only take a guess that the game is not compatible with Windows 7. Did you try running the client and server in "XP compatibility" mode?

Cole Blount said...

This is seriously the greatest thing I have seen all year, I always wanted the elements of the first F-Zero to be in a multiplayer game, and you gave it to me. I realize that my generation of children can't really appreciate snes games like these, but this does a great job easing them into it. My friends and I have already port forwared and started having tournaments upon seeing this. I really think that this has limitless potential, and you sell yourself short. I wish I could donate, because I would totally pay for this. But anyway great Project.

Nate The Great said...

Hey, I was wondering if anybody will play this with me?

Draken87 said...

Played around with this and ran into a few issues.

-Single player "Stick-in-the-Mud" issue
While racing single player (with the server set to 1 player), if I crash my "car" the race will never end. Seemingly I've noted a lack of a restart rom/application option. This option could work around that minor issue as well as players selecting their cars before the server is ready for them, assuming the server wouldn't crash.

-Save Application Settings to local folder
While running multiple instances of the client on a single machine (each with their own folder), the application will remember the last window closed rather than just keeping track of it's own settings. This could be worked around if the settings for the application would be stored within it's own local folder.

-Sound only works while in focus
The client application will only play sound while it's in focus. There's no way I can find to play audio from four separate instances of the client.

-IP settings must be set each time
Seeing menu options have been added, may the client application please remember the last IP and Port used and have it's own menu item in case it needs to be changed? If this requires the client to be restarted, a popup would suffice upon changing the IP or Port settings as notification. Also if the client needs to be restarted, could there be an option added to restart the client?

-Client Application starting via bat file
There's seemingly no way to start the client application with an IP or Port passed as a parameter from a cmd. If this could be worked in the server could start the clients with settings as needed.

I'm not an expert, but I wouldn't mind getting a hold of the source. The link posted in the source post is broken.