Old News

(2-24-99 to 2-25-99)
- Once Mike H. got his hands on the code, interface components started to appear. :-)
We still have work ahead of us, but it's nice to know the network code is integrated and working with the latest sources. I think everyone can look forward to something interesting in the future...
I'd also like to thank the folks who have sent encouraging email.
- Wooo Hooo! I fixed the remaining bugs, and network games seem to work again. All the interface code (which was unfinished anyway) has been ripped out, and netowrk support is only available from the command line at present. We'll do more testing tonight, and I'll package the code up and send it to the MAME developers list and to the MAME32 guys. I'm sure Mike already has tons of cool ideas for the interface... :-)
- Wow... has it really been 4 months since I last updated the page?
Good news! Although we've been busy with work related stuff, we haven't forgotten about MAMEnet. In fact, I've been in email contact with Mike Haaland of the MAME32 team, and he's very interested in integrating the network code into MAME32. With the release of MAME 0.35b3 and MAME32 following closely after, I decided to merge the network code back into the latest sources. A lot of things have changed in the code, but I managed to get everything merged in and compiling tonight. I can't get a network game going yet -- need to squash some bugs...
- MAMEnet has been set aside for a little while. We hope to crack open the code soon and eventually get it into the official MAME releases. Due to the long waits between MAME and MAME32 releases, we are considering using DOS as our main test and development platform. So much to do, so little time...
- Whoah... It's been a while since the last update. Unfortunately, we have all been busy at work, and unable to work on MAMEnet. Peter said he might work on fixing some of the connection bugs this weekend, and I plan to rewrite the interface code for MAMEnet tomorrow. Once the code stabilizes again, we might release a public beta so you all can play those dreaded NeoGeo games over the network... :-)
- MAME32 (baseline) 0.33 binary and sources released! Check out the great interface changes!
- Our next goal is to merge our network code with this new baseline source. Time permitting, we should have this done in a few days. A public release may be forthcoming...
- MAMEnet 0.33b6 BPR (Beta Preview Release) made available to MAME developer's list!!
- Hear what the MAME guys have to say!
(8-7-98 to 8-9-98)
- Eric Totel releases his own (independent) network source code for XMAME. (We're in contact with Eric now, and he'll be handling the XMAME port of MAMEnet.)
- This was the final push we needed to get us to release something! :-) (Thanks Eric!).
(8-2-98 to 8-6-98)
- Still busy at work... We've been added to the MAME development list (thanks guys!) and Christopher Kirmse has passed along the latest MAME32 code to us. My next goal is to merge our network code into the new MAME32 sources. The user interface has been changed, and MAME32 looks (and feels) even better now! It should be easier to integrate the MAMEnet interface stuff into MAME32 now...
(7-29-98 to 8-1-98)
- Michael: Fixes to the analog control handling and input swapping.
- Peter: Better error handling in network code, especially when dropping out of a game.
- Still busy at work, but I (Michael) spent some time on the code tonight. I've successfully implemented a player control mapping option. This means you can choose to map the player one keys (and most importantly the MOUSE) to player 2 (or 3, 4...). You won't need to change your key configurations this way, and both players will be able to use the mouse (needed in Heavy Barrel, etc.)
(7-14-98 to 7-27-98)
- MAMEnet had to be put on hold. All of us are busy with stuff at work. We're still planning to have a release ASAP.
(7-11-98 to 7-13-98)
- Making progress, slowly but surely... We are almost ready for a beta release to the MAME team. It's not going to be as full featured as we would have liked, but all games should be supported, and it will have a 'useable' interface... :)
(7-8-98 to 7-10-98)
- Couldn't update the page because Tripod was doing some kind of maintenance. Bryan has made good progress with the analog inputs. Looks like we'll be able to support analog and non-analog games (ie. ALL of them) for the first release. Peter continues to improve the network code (in-game joining is almost ready) and Michael is still working with save-states. Michael damaged his car after a late night MAME coding session. Doh!
(7-4-98 to 7-7-98)
- Making progess... Trying to finish up save game for weird cases, asynchronous network communication for chat-mode and in-game joining in preparation for a beta release. Special thanks to Kurt Wulf for his save state code from version 0.15 of MAME!
- To those concerned about playing MAME over a dial-up connection:

We're currently ruling out MAME functioning well over standard modem dial-up connections. We don't have much time to play test over dial-up much less add special code to support it. So for now we'll concentrate on making the network support functional and playable over a LAN. Then we'll come back to the problems of making dial-up support work. Based on our experiments and discussions with other developers this is a non-trivial problem.

- To those interested in the technical considerations for why making MAME work over a dial-up connection is difficult:

Roughly 300 of the 350+ machines that MAME supports run at ~60fps. This means the screen is refreshed 60 times a second. (Roughly every 16ms.) MAME also checks input (ignoring analog for a moment) during the vblank that happens when the screen is updated. So you need to be able to send your input to your peers and receive from them every 16ms. Network bandwidth is not the problem here, network latency is. To get a rough idea of the latency of your connection ping the host you'd be likely to play with. (or just ping the web site of your ISP) On our 10Mbps Ethernet lan round-trip ping times are consistently <10ms enabling 60fps (barely). Over 28.8 and 33.6 modems where round-trip ping times range from 100ms to 180ms you're lucky to get 6-7fps which is what we've seen. Yes, we'll look at synchronizing data less often, later. (After we've released some working code.)

- Taking a break. We're going to spend a lot of time on the code tomorrow.
- Peter broke the network code; I still haven't got the save state feature working properly. Sometimes you have to take a few steps back and then a few steps forward...
- AEHowTo online. I didn't expect Dave to mention this on his page, and I've been receiving a lot of email about it. It's old, but here it is: AEHowTo 0.40. Feel free to distribute it on other pages...
- We have received quite a few positive emails and this page has been getting a lot of traffic! We don't have time to answer all the email we received, but we'd like to say thanks to everyone for your support! Sounds like there is an interest in MAME network play after all... :)
- Webpage is now online.
- Cleaning up code. Next on the list is to improve the way connections are handled and get the chat/game selection window working. We tried a modem game of Gauntlet II tonight and found it unplayable (7 FPS) at 38,400bps. I guess we are sending data too often to make modem play practical. MAMEnet will have to be played on a LAN or possibly IDSN or cable modem...
(6-29-98 to 6-30-98)
- Michael adds chat window (doesn't do much yet) and moves network settings to a new 'Network Play' tab. Peter finishes up the rewrite. Highscores in network games are treated the same way they are treated in record/playback mode. Now the games share the same highscore data, sync issues for problem games go away. Michael adds (buggy) save/load game state support. (The video display isn't updated correctly when you load...)
(6-22-98 to 6-28-98)
- Peter returns! MAMEnet code is put under source control after we have a slight accident. Michael merges the MAMEnet code into MAME32 0.33.b6. (Now we can play more games over the network!) We agree the current code is a bit sloppy, so Peter starts to rewrite the network code, pushing only what is absolutely necessary into the OS dependent code. (We want to share as much as possible between platforms.) Multiple (3+) player support working better.
(6-15-98 to 6-21-98)
- Peter is at PC Expo. Michael picks up the code and implements the input syncing idea. It works great but analog inputs won't work in network games. Buggy support added for more than 2 player connection. Some games are not in sync due to random game behavior. Network settings added to the 'default options' -- these get saved/loaded from registry.
- Peter gets the network connection working between two machines. We play around with a few games (Atari Tetris, Galaga) and realize that trying to keep the CPUs in sync is a *bad* idea. It's too slow. New idea -- move the sync code to the point where input data get swapped.
- Peter wants to try to add network support to MAME. :)

is about to die!!

(Intro .midi and our little friend above are taken from Atari's Gauntlet. This game kicks ass over the network!)