Q: Who develops uCON64?
A: Written/modified by:
1999 - 2001 NoisyB (Dirk)
       2001 dbjh

Uses code (or at least ideas) from:
Chicken & chp (original ucon)
Silo / BlackBag (APS patcher)
madman (IPS patcher)
The White Knight/ATX (BSL patcher)
Icarus/Paradox (PPF patcher)
WyrmCorp http://wyrmcorp.com (GameGenie "codec")
Marat Fayzullin (some Famicon Disk System routines/PSG player)
Andreas Sterbenz stan@sbox.tu-graz.ac.at (d64 transfer)
m-kami@da2.so-net.ne.jp
http://www.playoffline.com
(NES emulator for Gameboy)
Gilligan/DC-S (show info for Neogeo Pocket)
LaC (N64 makesram)
Jeff Frohwein http://www.devrs.com (Flash Advance Linker)
Omar Kilani gbautil@aurore.net (GameBoy Advance sram routine)
Caz turok2@currantbun.com
http://www.infernal.currantbun.com
(I/O port driver for BeOS)
Cowering hotemu@hotmail.com (BS (Broadcast Satellaview) ROM detection and BS checksum)
Jerremy Koot jkoot@snes9x.com
http://www.snes9x.com
(interleave detection & deinterleave code (SNES))
Gary Henderson gary@snes9x.com
http://www.snes9x.com
(interleave detection & deinterleave code (SNES))
and more...

Q: How can I take part?
A: Install CVS and checkout the latest version from http://ucon64.sourceforge.net. Then make your changes and email noisyb@gmx.net and you will be named in this file and in the sources of course. Just the typical way of open source development.

Q: CVS?
A: For read-only access you must have CVS installed. Continue at How do I connect to CVS as anonymous?

For read/write access you must have CVS and SSH installed and set the environment variable CVS_RSH=ssh. Then contact noisyb@gmx.net and he will add you to the developers.

Q: How do I connect to CVS as anonymous?
A: cvs -d:pserver:anonymous@cvs.ucon64.sourceforge.net:/cvsroot/ucon64 login
<return at password prompt>
cvs -d:pserver:anonymous@cvs.ucon64.sourceforge.net:/cvsroot/ucon64 checkout -PR ucon64

Q: How do I connect to CVS as developer with read/write access?
A: cvs -d:ext:<name>@cvs.ucon64.sourceforge.net:/cvsroot/ucon64 checkout -PR ucon64
<enter password at prompt>

Now it will checkout all files and afterwards you can simply cd into the top level directory and continue by just typing

cvs update -PRd (never forget -P or you will get a lot of crap)
cvs commit -R
cvs add <file>
cvs remove -f <file>

because -d:ext:<name>@cvs.ucon64.sourceforge.net:/cvsroot/ucon64 is stored in the CVS directories then.

Q: How is the source of uCON64 organized?
A: The heart of uCON64 is ucon64.h/struct ucon64_. This struct is designed to hold all information you could get from any ROM.

You start uCON64 with the name of a ROM as argument. ucon64.c/ucon64_flush() will initialize struct ucon64_ with empty strings and NULL's. ucon64.c/ucon64_init() will recurse into all <console>.c/<console>_init() functions which probe if the ROM belongs to their console. If the right console was found struct ucon64_ will be filled with the right values and strings. ucon64.c/ucon64_nfo() displays the values and strings of struct ucon64_. Then ucon64.c will check for further commandline arguments and will probably recurse into <console>/<console>_main() to proceed.