Hello all. After several years of blood, sweat, and tears I have decided to share with you a piece of my project: the UltraNet network adapter for Super Nintendo.
What is the UltraNet?
The UltraNet is a project to bring online game play to the SNES. Original hardware support was planned from the beginning, but as development proceeded it became obvious an emulated version of the hardware would be necessary for debugging. After completing emulator support for UltraNet it became easier to find and fix hardware and software bugs, expediting development of the device.
A recording of our live stream can be viewed here (3:30-19:30 F-Zero Final VS, 28:00+ Metal Warriors Head to Head)https://www.youtube.com/watch?v=GJ1-LpBFhvg
Keep in mind that this is a prototype meant to test the concepts of networking SNES games. I have many more plans for the hardware, including full networking support and online match making.
While I am not sharing the final hardware designs or source code, I have decided that it would be in the best interest of the project and the community at large if I release a preview of my work. Attached you will find the resources necessary to try the project, a custom version of BSNES, and the Metal Warriors Head to Head bps patch. I have several more games prepared for the system, including F-Zero Final VS (http://www.romhacking.net/forum/index.php?topic=26750.0
) and Super Mario Kart Fullscreen VS (http://www.romhacking.net/forum/index.php?topic=27843.0
). Depending on the response this receives, I hope to eventually release these games as well.
UltraNet preview build:https://github.com/originalgrego/ultranet-preview
UltraNet BSNES source:https://github.com/originalgrego/bsnes-plus
To use UltraNet you will first need to patch your Metal Warriors USA ROM CRC32(0xF2AB92D4) using Floating IPS and the provided Metal_Warriors_H2H.bps patch file. Then start two copies of BSNES as administrator on the same Windows machine and select the UltraNet option in the "Settings" menu. Load up Metal_Warriors_H2H.sfc on both systems and enjoy!
I apologize for needing administrator access, but currently the simplest way to properly emulate the UltraNet is to use a memory backed page file to connect the BSNES instances. This requires admin access. If you are uncomfortable with this, I encourage you to reference the BSNES source code from the above link to verify no foul play, or to build your own from source (Windows only due to page file use). I'd like to take a moment to remind anyone looking at the source that this was intended to debug prototyping issues, and not final software in any way. Also 10 points to anyone that figures out why FatFifo is so fat.
I would like to open up my work to the greater community, including libraries I've written that assist in adding network functionality to new games. I am nowhere near finished with what I set out to accomplish. However, the overwhelming financial requirements of hardware development are a significant roadblock to bringing this project to completion. Hopefully the excellence of this project will convince you that its merits outweigh its risks. Greatness dies in the dark, it is my hope that releasing something will show the dream is true.
Please, if you can assist in any way to see this project grow, contact me.