Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 4/6/10 13:27

wmjdgla
Member
From: Singapore
Registered: 16/3/09

On modding tools and their wiki pages

Hello there, I was reading through the wiki to get a sense of modding the game and I need help in understanding the functions of the tree modding tools - OUP, OME & Onisplit.

First, I'm unsure about the differences among them. Initially when I read through the pages, I was rather confused as it appears that the three tools have a lot of overlaps in functions. Reading through the pages again, as well as the descriptions in the mod depot didn't really help much, especially so for the OUP page since statements like "Extract ONI's data" or "Replace TXMPs with image-files" are rather vague as compared to those from the Onisplit page, e.g. "Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format".

I have to search the forum to find out that OME is now no longer in active development & support (this is not apparent in the wiki). But about OUP and Onisplit? Are they used interchangeably by the community or are the two suited for different purposes? The fact that the "Modding Oni" page lists Onisplit under the "file converting in general" heading while OUP is listed under the "HEX" heading also doesn't really clear things up. And the OUP page talks about level-archives and level-database, what's that?

I would be glad to improve the wiki pages if I'm allowed to and that someone more familiar with the subject provides me with the relevant information. Below are the notes I took when reading through the pages. Please check to see if I got my understanding right.

OUP 0.34b
GUI-based tool for viewing and replacing Oni resources
Complete rebuilding of level-archives out of a database file so you can change just anything
Easy creation of patches for level-archives
Frontend for easily editing any filetype or extracting/reimporting it in case of 3D data
Create level-database based on a .dat/.raw/.sep (adds even more functions later, like adding, deleting files)
Create a .dat/.raw/.sep structure based on a level-database
View, edit, import and export the data of the files in the .dat and .raw (with little helpers as a ValueViewer and the StructureViewer) easily
Extract ONI's data
Preview TXMPs (textures), TXANs (texture animations), TXMBs (big image maps (as far as I know they are only used for the intro/outro splashscreens and the backgrounds in the menus)), PSpcs
Replace TXMPs with image-files
Associate OUP with .dat-files and/or .oldb-files (OUP LevelDataBase) and/or .opf-files (OUP PatchFiles)

Onisplit 0.9.50
extracts & creates textures, 3D and .xml files
conversion between .dat & .oni
conversion between AKEV (level geometry files) & .dae
conversion between .oni & .xml (see wiki for caveats)
management of .oni files
extracts TXMPs (textures) from a .dat/.oni file as DDS/TGA/PNG format
extracts M3GMs, ONWCs & ONCCs as .obj/.dae formats
extracts SNDDs from source .dat/.oni as .aif/.wav formats
extracts SUBTs from source .dat/.oni as .txt format

OME 0.65
view sounds, images, 3d-objects and character models
extracts sounds as .wav/.aif
extracts images as .png
extracts 3D objects & character models as .3ds (without animations and smoothing groops) or as .dae (without animations)

Offline

#2 4/6/10 14:04

TOCS
Member
From: Denmark
Registered: 4/4/07

Re: On modding tools and their wiki pages

Oni Unpacker is kinda past - it hasn't been updated for ages. OniSplit is what most people are using now. For me it seems to be everything we need.

Offline

#3 4/6/10 14:07

Gumby
Member
From: Seattle, WA, USA
Registered: 30/8/07

Re: On modding tools and their wiki pages

Anyone is allowed to edit the wiki, just register.
With that said....Onisplit extracts the gamedata to a format that can be converted into a human readable format (XML) or given to another person to put in their game.


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#4 4/6/10 17:33

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: On modding tools and their wiki pages

It's nice to see someone paying attention to the wiki.  In the past we've spent a lot of time putting information up there, but lately it has been kind of neglected.  I still fully intend to get back to work on it once I'm not so busy, but... yeah.  Obviously I've been busy for a while.  There is actually a planned category for modding tools that breaks them down by "current" and "outdated", I just didn't get to apply it yet.

It's true that OUP is considered an old program.  I love its GUI, but I believe its method of patching game data was less than universally compatible.  The first program to really take the approach of breaking .dat/.raw/.sep files into their universal components (.oni files), and extracting those resources to a standard format, was Neo's OniSplit.  This made possible our current modding methods and the AE itself.

OME also has a nice GUI, but it's actually based upon old code of Neo's (and someone else's even older code from 2001!), so ultimately it's a second-hand, out-of-date, partial Java implementation of a codebase and knowledge base that has continued to be updated since then, in the form of OniSplit.

Your notes look accurate to the best of my understanding, although your note about 'extracting and creating textures, 3D and .xml files' is redundant of other lines there.  OniSplit converts between .dae/.obj and weapon/level/character geometry, both ways.  It also converts both ways between TXMP (textures) and .dds/.tga/.png and between SNDD and .aif/.wav.

Anyway, I appreciate whatever you want to do in terms of correcting/updating the wiki, we've always welcomed people to do that.  In the event that you do make a mistake, someone will just fix it; goodness knows people had to clean up after me when I was new to the wiki smile P.S.: Try to provide edit summaries, they're helpful.


byproducts are fine, but where's the beef?

Offline

#5 6/6/10 13:08

wmjdgla
Member
From: Singapore
Registered: 16/3/09

Re: On modding tools and their wiki pages

Thanks a lot guys! I've now made some changes to the pages, hope they're ok.

@Iritscen: What does it mean by "universally compatible"?

A few new questions:

I've been looking through the wiki & forum on information regarding .oni files and globalization of data but couldn't find much of them. What are the purposes of .oni files and globalizing Oni's data? Are there any relationships between them and how do they relate to .dat/.raw files?

Also what's the relationship between .dat and .raw files? If both contains the game data, why is it split between two files of different formats? I get the sense that .dat is like the address book of .raw...

Offline

#6 6/6/10 14:38

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: On modding tools and their wiki pages

wmjdgla wrote:

@Iritscen: What does it mean by "universally compatible"?

This goes back before my time, but I know there was a question of how to distribute mods.  We couldn't just go around offering whole level files for download after making our changes to them.  But delta-based hex patching wouldn't work because there are different versions of Oni, in different languages, so the resources within the game files varied slightly.  You couldn't expect to find certain data in a certain place.

What OniSplit did was break the .dat/.raw/.sep into their individual resources (called "file types" on the wiki), giving you files like TXMP_CON_PP_WHITE.oni and SNDDap_hit_bdy4.aif.oni.  After modifying these files, we use OniSplit to compile them back into .dat/.raw/.seps.  All we have to do is distribute the .oni files that are new/different, and voila, universal modding!


byproducts are fine, but where's the beef?

Offline

#7 6/6/10 20:33

Gumby
Member
From: Seattle, WA, USA
Registered: 30/8/07

Re: On modding tools and their wiki pages

EAch part of a .dat file's size is set in stone. .dat parts can point to .raw or .sep parts which are dynamically sized.


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#8 8/6/10 22:49

wmjdgla
Member
From: Singapore
Registered: 16/3/09

Re: On modding tools and their wiki pages

I see...so it's the .oni files that are responsible for the updated/new content. Please see if my understanding is correct:
1. Contents to be updated/changed is extracted using Onisplit as editable formats.
2. Contents are edited.
3. Contents are converted to .oni format to be bundled as Oni: AE/mods.
4. .oni files are distributed.
5. Oni: AE/mods are installed through Onisplit recompiling .dat/.raw/.sep files using the .oni files
But I think I'm still missing something - where does globalization come in? And what is it actually?

And I still don't know relationship between .dat and .raw files...so .dat parts point to .raw parts, but what kind of data does each file hold? Are .dat files just a list of pointers to the game data that is stored as .raw files?

Offline

#9 9/6/10 4:01

Alloc
Member
From: Germany -> Darmstadt
Registered: 14/1/07
Website

Re: On modding tools and their wiki pages

wmjdgla wrote:

Please see if my understanding is correct:
1. Contents to be updated/changed is extracted using Onisplit as editable formats.
2. Contents are edited.
3. Contents are converted to .oni format to be bundled as Oni: AE/mods.
4. .oni files are distributed.
5. Oni: AE/mods are installed through Onisplit recompiling .dat/.raw/.sep files using the .oni files

Yup, that's it basicly. Although on the target machine the whole .dat/.raw is converted to .oni (so not only the resource which has to be modified but all of them), then the files which have to be updated are exchanged and the new ones are added and then the whole set of .oni files is compiled into a whole new .dat/.raw.

wmjdgla wrote:

But I think I'm still missing something - where does globalization come in? And what is it actually?

Globalization is used so that common resources are all in level0_final.dat/raw because every resource which is in level0 is available for every level of Oni. So you don't have to duplicate for example character models for every level you want them to be in.

wmjdgla wrote:

And I still don't know relationship between .dat and .raw files...so .dat parts point to .raw parts, but what kind of data does each file hold? Are .dat files just a list of pointers to the game data that is stored as .raw files?

.dat contains mostly staticly sized information which do not have a lot of media data whereas .raw contains the big binary chunks, e.g. images, sounds, level data.
.dat still contains meta-information about this data (like TXMP: in the .dat you got the information about resolution and graphics format whereas the .raw contains the image data itself).
Btw, "size set in stone" is not 100% accurate as the size of some types depends on their contents and are set in the filelist of the .dat-header.

Regards,
Chris


ONI2.net, link to just any important resource-pages about ONI.

Online

Board footer

Powered by FluxBB