17.2 Version control

Usually associated with programming and more recently big development and at best weakly observed by ROM hackers as far as actual projects as concerned (programming tools is a different matter) there are never the less some things that can be learned from this. As ever it comes with a collection of field specific terms but most of these will usually have been learned by being around software (especially open source software) the last decade or so. Still A Visual Guide to Version Control has a nice explanation of many of the concepts.

There are countless “standards” with some of the big ones being

  • CVS Although this is rapidly falling out of fashion as it is not being developed it is one of the older methods and has a long history.
  • Mecurial A fairly new option in version control but as it offers several nice features it has become fairly popular to the point of starting to catch up with the older methods.
  • svn aka subversion. Been around for quite a while and more or less became the successor to CVS when that stopped being developed although the others mentioned have made big headway into it.
  • GIT Another relative newcomer but rapidly gaining popularity.
  • Fossil Something of a standalone self contained tool if you want it but able to set up web servers (including local ones) with a little wiki and a checkout and more as necessary and can have access fine tuned.
  • Perforce The only paid software on this list (there are many other paid software version control systems) but one quite commonly used in actual game development.

Additionally your translator might wish for a related class of tool to use for this. They are known as CAT (computer assisted translation) tools and are all but mandatory in the professional translation realms and seen as you in the ROM hacking field are going up against them it pays to look at what they did before you but those are covered back in text hacking.

Back on topic you can use it to store specifications you are reverse engineering, artwork and music you need to convert, text you have extracted, custom programs you are making for the editing (quite often you might build a basic program and edit in specifics so being able to jump back for your next program/project is great - remember programming has long been about reuse of existing code and concepts) as well as completed patches as a whole. Done properly it will also allow others to pick up if someone drops out.

It is generally considered mandatory for professional programming projects these days and going back to the developer left extras there are often little files generated by these tools that are left in ROMs that can provide some insight.