OZMAV2 showing Kokiri Forest
|Developer(s)||xdaniel, cooliscool, ZZT32, spinout|
|Operating system||Cross platform|
|Website||OZMAV at Google Code.|
The OZMAV series of programs are OpenGL-based map and model viewers for multiple Nintendo 64 games, mainly Zelda: Ocarina of Time and Majora's Mask.
At one point a few years ago, around the time that hackers started to look into and modify model data, xdaniel started working on what would eventually become the Experimental N64 Object Viewer. Based on one of the NeHe OpenGL tutorials, the program was capable of rendering extracted map and object model files from Ocarina of Time - with the author not knowing much about C programming, OpenGL or the Nintendo 64 yet, it was very slow, texturing didn't work right and the program generally was just a silly and badly hacked together proof-of-concept.
The original OZMAV came about as a total rewrite of the former program, being much cleaner, faster and simply better thought out than it. Especially once the program was open-sourced, rendering accuracy - in regards to texturing, rendering modes, etc. - improved from revision to revision. However, it was still a Windows-only piece of code, when multiple coders and hackers in the community alone used Linux. Because of this high dependency on the Windows API, and because the project's source code once again became convoluted and hard to manage, a second total rewrite of the program occured, this time with cross-platform compatibility in mind.
This current codebase, and in turn the program itself, is called OZMAV2.
OZMAV2 is the latest program in the OZMAV series, a map viewer for both Zelda: Ocarina of Time and Majora's Mask and compatible with all known official versions of those games, including certain leaked debug builds. The program uses two programming libraries, specifically written for the purpose of being used in OZMAV2, called libMISAKA and libbadRDP.
libMISAKA is a console and user interface library based on PDCurses, responsible for OZMAV2's console system - including command history, scrollable message log and more - and TUI (or Text User Interface), which manages OZMAV2's dialog boxes. Originally written as a component integrated into the program, it has since been split off into a separate library that has also been used in ex. the Star Fox 64 Toolkit for Star Fox 64/Lylat Wars.
libbadRDP is the culmination of the author's effort to understand and interpret some of the Nintendo 64's different graphic microcodes in regards to simulating them from a ROM hacker's point of view - that is, the library does not strive to be an accurate representation of the N64's hardware's inner workings. The library is, however, still incomplete at this point, lacking support for most of the Fast3D microcode used in ex. Super Mario 64, and is still producing rendering glitches, especially when it comes to ex. texture coordinates and rendering flags in Majora's Mask.