History of Oni modding: Difference between revisions

m
m (let's try this instead)
Line 15: Line 15:
==Binary resources==
==Binary resources==


[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson was probably the most influential early binary hacker, and his trail-blazing program [[OniTools]] for the Mac was quickly ported to Windows.  It had support for "CMPO" delta patches, and the earliest binary mods were probably based on this method.]]
[[Image:OniTools.jpg|thumb|225px|right|Ian Patterson was probably the most influential early binary hacker, and his trail-blazing program [[OniTools]] for the Mac was quickly ported to Windows.  It had support for delta patches, and the earliest binary mods were probably based on this method.]]
Fans with some expertise in parsing files with hex editors found that the binary data (i.e., the files ending in .dat and .raw, not to be confused with "binary" as a term for an application) held four-letter codes, indicating the start of each resource within that file. Within a week of the street date for Oni, the community had its first resource modding tool. While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to think in hexadecimal. It also supported user-friendly replacement of texture maps and allowed in-line viewing of the game's 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple mods such as texture replacements, no doubt due to the lack of a complete understanding of how Oni's 65 resource types were inter-related.
Fans with some expertise in parsing files with hex editors found that the binary data (i.e., the files ending in .dat and .raw, not to be confused with "binary" as a term for an application) held four-letter codes, indicating the start of each resource within that file. Within a week of the street date for Oni, the community had its first resource modding tool, OniTools (pictured, right). While the author did not yet know how all the data worked, his program could at least parse it, and allow the modder to more easily edit each resource without having to count in hexadecimal. It also supported user-friendly replacement of texture maps and allowed in-line viewing of the game's 3D models. There seems to be little evidence that this knowledge was put to use in modding the game resources beyond simple mods such as texture replacements, no doubt due to the lack of a complete understanding of how Oni's 65 resource types were inter-related.


This did not stop one intrepid programmer named Pierre from deciding to write his own game engine from scratch, using data from Oni to test its abilities. Called [[Konoko Payne]], it is a long-term project which currently takes the form of (1) an underlying engine, and (2) a short scenario for it that resembles a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in "reverse engineering" the game's resources, although his acquired knowledge remained private for some time, as his work predated the community's organized public attempts at gathering this information.
This did not stop one intrepid programmer named Pierre from deciding to import data from Oni into the game engine that he was writing from scratch. Called [[Konoko Payne]], it is a long-term project which currently takes the form of (1) an underlying engine, and (2) a short scenario for it that resembles a sequel to Oni. In order to extract models and animations from Oni and recreate them precisely in his project, Pierre became one of the early pioneers in "reverse engineering" the game's resources, although his acquired knowledge remained largely private, as his work predated the community's organized public attempts at gathering this information.


Efforts in "hacking" the binary data began, as far as the modern community is concerned, in the fall of 2004 when [[User_talk:Ssg|Ssg]] started a site on the newly-opened [http://www.oni2.net Oni2.net], a domain run by [[User:Admin|Alloc]] (carrying over and translating information that he had originally placed on another site in his native German). A year later, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its [[OBD|current home]] on the wiki to allow collaboration; at this point, [[User_talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats.  Today at least 90% of the binary resource formats are documented byte for byte thanks to their hard work.
Efforts in "hacking" the binary data began, as far as the modern community is concerned, in the fall of 2004 when [[User_talk:Ssg|Ssg]] started a site on the newly-opened [http://www.oni2.net Oni2.net], a domain run by [[User:Admin|Alloc]] (carrying over and translating information that he had originally placed on another site in his native German). A year later, this pool of knowledge was painstakingly moved by [[User:Geyser|geyser]] and Ssg to its [[OBD|current home]] on the wiki to allow collaboration; at this point, [[User_talk:Neo|Neo]] appeared on the scene, adding his own knowledge that he had been acquiring independently until then, and collaborating on further investigations into the resource formats.  Today at least 90% of the binary resource formats are documented byte for byte thanks to their hard work.
Line 24: Line 24:
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, with a massively reshuffled Warehouse. Loser's Warehouse mod included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.
Originally, modders had to alter these binary resources manually with hex editors to adapt them to their scripts. [[User:Loser|Loser]] was the first modder to manually edit the game data to go along with his scripting, with a massively reshuffled Warehouse. Loser's Warehouse mod included a global component (modified level0_Final), level-specific binary modifications, and a set of customized scripts that took full advantage of the modified binaries.
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]
[[Image:OUP_txmpreplace.jpg|thumb|225px|right|OniUnPacker by Alloc, premiering in fall of 2005, provided a simple interface for finding the resource you wanted and displaying it, as well as replacing it.]]
Minor binary modding had already occurred before Loser's Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko's combos were unlocked). Still, it was the Warehouse mod which first showed the "full" potential of binary modding. It inspired a short-lived initiative called the [[OBD:BIP|Binary Improvement Project]], aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final. BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game, and was promptly put on standby.
Minor binary modding had already occurred before Loser's Warehouse (thus, while compiling the [[OBD]] database, Ssg had released a version of level0_Final in which all of Konoko's combos were unlocked). Still, it was the Warehouse mod which first showed the "full" potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]], aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final. BIP was hindered by large upload/download sizes as well as by the potential legal issues involved in distributing entire files from the game, and was promptly put on standby.


An equally short-lived alternative to supplying whole levels was developed in the form of [[OUP|OniUnPacker]]-based patches and was termed [[AE:ONK|Oni ni Kanabô]]. The modder would edit his DAT/RAW files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation of DAT resources and the offsets of RAW data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.
An equally short-lived alternative to supplying whole levels was developed in the form of [[OUP|OniUnPacker]]-based patches and was termed [[AE:ONK|Oni ni Kanabô]]. The modder would edit his DAT/RAW files in OUP, and then release a single binary resource patch. This was both bandwidth-efficient and more legal-friendly, but suffered from one major limitation: the indexation of DAT resources and the offsets of RAW data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the ability to import new resources alongside existing ones.