History of Oni modding: Difference between revisions

m
→‎Engine patching: adding links to AE:OMNI and AE:EXE
m (→‎Engine patching: adding link to the side story of the Mac betas, fixing other link)
m (→‎Engine patching: adding links to AE:OMNI and AE:EXE)
Line 34: Line 34:
==Engine patching==
==Engine patching==
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User_talk:SFeLi|SFeLi]] documents his discovery in 2006; in examining the binary, he noticed that the list of cheat codes had a gap in it where one code had been removed; that code was for Developer Access. For more history, see [[Daodan DLL#History|here]].]]
[[Image:Sfeli Finds Dev Mode.jpg|thumb|225px|right|[[User_talk:SFeLi|SFeLi]] documents his discovery in 2006; in examining the binary, he noticed that the list of cheat codes had a gap in it where one code had been removed; that code was for Developer Access. For more history, see [[Daodan DLL#History|here]].]]
This ultimate form of modding becomes necessary for modders who want to do things the game's code does not currently allow, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the PC Oni executable directly, but a revolution in this type of modding occurred in 2006 when Developer Mode was finally discovered in retail Oni's code, and a means for unlocking it was needed. The most foolproof method of altering the engine turned out to be a library that Oni loads at runtime. Now known as the [[Daodan DLL]], this library-as-patch can alter many aspects of Oni's behavior.  This allows the fixing of bugs (some of which result from new computers running a {{age|2001|1|28}} year old game), as well as the adding of new features, and is a massive help for modders using Windows.  
This ultimate form of modding becomes necessary for modders who want to do things the game's code does not currently allow, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the PC Oni executable directly, but a revolution in this type of modding occurred in 2006 when Developer Mode was finally discovered in retail Oni's code, and a means for unlocking it was needed. The most foolproof method of altering the engine turned out to be a library that Oni loads at runtime. Now known as the [[Daodan DLL]], this library-as-patch can alter many aspects of Oni's behavior.  This allows the fixing of bugs (some of which result from new computers running a {{age|2001|1|28}} year old game), as well as the adding of new features, and is a massive help for modders using Windows. (All changes made by Daodan are documented [[AE:EXE|here]].)
    
    
Not long after Daodan DLL was released for Windows, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Unlike Windows, the Mac version does not seem to have any libraries that can be exploited for runtime patching, so the changes were simply made with a hex editor, directly modifying the executable. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta|before release]] were still present in the code, and the ones that were needed to allow Macs to run (almost) all scripts written for the PC version were also "unlocked" by [[User:EdT|EdT]] using hex edits. This patched executable is freely [http://edt.oni2.net/files/Oni.zip downloadable] in its altered form, which also corrects various age-related bugs and makes some improvements to the game that mirror what the Daodan DLL does for the Windows version.
Not long after Daodan DLL was released for Windows, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Unlike Windows, the Mac version does not seem to have any libraries that can be exploited for runtime patching, so the changes were simply made with a hex editor, directly modifying the executable. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta|before release]] were still present in the code, and the ones that were needed to allow Macs to run (almost) all scripts written for the PC version were also "unlocked" by [[User:EdT|EdT]] using hex edits. This patched executable is freely [http://edt.oni2.net/files/Oni.zip downloadable] in its altered form, which also corrects various age-related bugs and makes some improvements to the game that mirror what the Daodan DLL does for the Windows version. (All changes made by hex edits are documented [[AE:OMNI|here]].)


Work continues in all areas of modding Oni.  You can add to the effort by looking at [[Modding brainstorms]] and seeing if you have any skills that can help us out.  Even if you don't know how to make something possible, your ideas are welcome!
Work continues in all areas of modding Oni.  You can add to the effort by looking at [[Modding brainstorms]] and seeing if you have any skills that can help us out.  Even if you don't know how to make something possible, your ideas are welcome!