Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Spotlight: Señor Casaroja's Noesis

General game file tools that are useful for more than one game
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

I finally sat down and did all the shit on my Noesis 3.73 todo list at once.

Code: Select all

 -3.73 - Added rpgSetStripEnder/rpgGetStripEnder to specify (or get) the value which ends/resets triangle strips mid-buffer. For most console games this should be set to 0xFFFF, but it can differ per title.
 -3.73 - rapi.createProceduralAnim is now available in Python, with a new NoeProceduralAnim object for specifying procedural animation parts. See the commented out example in the Bullet Witch script.
 -3.73 - Added a readline method to the NoeBitStream at the request of chrrox.
 -3.73 - Exposed and tested loadTexByHandler in Python. Example use:
	def proxyLoadRGBA(data, texList):
		f = open("c:\\other\\somefile.jpg", "rb")
		tex = rapi.loadTexByHandler(f.read(), ".jpg")
		f.close()
		if tex is not None:
			texList.append(tex)
			return 1
		return 0
 -3.73 - Now resetting the bit pointer in the stream container when doing a byte-level seek.
 -3.73 - Updated BVH plugin to use the new bone name string limit.
 -3.73 - Fixed a bug causing validateListType to sometimes raise its exception in the wrong place.
 -3.73 - Added support for ATI1 (BC4) DXT compression. ATI2/BC5 has already been supported for a while.
 -3.73 - Added support for Dead Rising 1 360 .tex files.
 -3.73 - Fixed MVC3 360 spec maps not being handled correctly.
 -3.73 - Added support for 360 DMC4/RE5/LP .tex files. PS3 files are not supported.
 -3.73 - Added support for 360 DMC/RE5 .mod files. PS3 files are untested and probably don't work.
 -3.73 - Added support for 360 LP/DR1 .mod files. Not well-tested, but works on the files I've tried.
 -3.73 - Fixed certain material properties not being obeyed in the preview render with externally-loaded textures.
 -3.73 - Fixed a potential crash when loading external textures without extensions on a wide-character path.
No new formats unless you count Dead Rising 1 and console versions of a couple of the Capcom .mod formats. I'll probably finally be tackling FF12 shortly, if I can get motivated enough to sit down and start digging through it.
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

Also, now that more people are making plugins and scripts for Noesis, I'd be interested in seeing them all tracked and provided in a central place. That's kind of what the plugins section of the Noesis site is for, but because I can tend to drop off the face of the earth for a week or 2 at a time occasionally, I'd really rather have someone else managing a plugin collective in the form of a thread here in the forums or something. Let me know if you're interested in taking responsibility and I can help you get everything together that's been released so far. (which includes various native plugins from revelation, some scripts from chrrox, the OGRE native plugin, some scripts from finale00, and...I think that may be it? I'm not sure honestly)
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

I like the new texture reading method. Made everything so much easier.
Now to make sure this is how things work to apply materials properly (cause I still have to figure out how to parse the data in such a way that I would have material information available to me before drawing triangles...):

1: parse materials and assign texture names to material
2: call rpgSetMaterial(matName)
3: call rpgCommitTriangles so that they will be created with the specified material

And then it should automatically know, from the material name, which texture should be applied?

For plugins...a thread would work, where people can post their plugins and someone just updates the first post every once in a while.
Or maybe making a page on the wiki to give it more exposure.

When I was writing parsers for my python scripts I thought of directly importing them into Blender since both were conveniently written in python and required little effort to accomplish (besides figuring out their API, and then just copy pasting it into their plugins folder). In the end it sort of worked but I couldn't figure out the API so all I got were texture-less triangles.

Was wondering whether it would be possible to create some sort of "noesis" plugin for python such that noesis would be used for all the parsing and stuff (automatically provides support for dozens of formats, and additional plugins would likely be written for noesis rather than a blender plugin), and then just send the data to blender. Don't know whether there is any advantage to doing something like that over just exporting it and then importing it, but then more people would probably know about noesis.

Even a "ya it could be done, just do something like this" and maybe someone familiar with blender will take up the challenge.
fantaseb
Banned
Posts: 3
Joined: Thu Dec 15, 2011 6:31 pm
Been thanked: 1 time

Re: Señor Casaroja's Noesis

Post by fantaseb »

Hello, great editor, but my question - I am trying to open Red Dead Redemptions .RPF X360 Version or PS3 version, and I can't seem to open it I have the latest version of Noesis, and it does not display any .RPF extension's, and there is no plugin for it either. can someone please help me with this, or even upload the "rage_engine.dll" so that I can view the contents in the .rpf thanks. Anyone who knows anything about this feel free to comment and help, cheers.
lUIGUIPIETRO
veteran
Posts: 87
Joined: Sat Mar 13, 2010 3:59 pm
Has thanked: 44 times
Been thanked: 2 times

Re: Señor Casaroja's Noesis

Post by lUIGUIPIETRO »

fantaseb wrote:Hello, great editor, but my question - I am trying to open Red Dead Redemptions .RPF X360 Version or PS3 version, and I can't seem to open it I have the latest version of Noesis, and it does not display any .RPF extension's, and there is no plugin for it either. can someone please help me with this, or even upload the "rage_engine.dll" so that I can view the contents in the .rpf thanks. Anyone who knows anything about this feel free to comment and help, cheers.
viewtopic.php?p=61224#p61224
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

Well, Noesis gives you the ability to not only write Python scripts but also create native plugins, so you can really do whatever the hell you want there. You could even go so far as writing a plugin that uses some form of IPC (I'd go with sockets) to pipe data directly over to blender upon export or something. Although you could just as easily make a custom format featuring every piece of data Noesis supports and write a Blender importer for that.

Regarding materials, the only place order matters is in setting the material name with rpgSetMaterial before you actually commit triangles with the rpg interface. It doesn't matter if you create materials before or after that, so long as they end up attached to the final model at some point. Noesis will load textures based on the material's texture name(s) if possible, or it will try to load textures under the name of the material itself if you haven't given it any texture map names.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

OH, so something like this would work just as well

1: read indices into buffer
2: read material name
3: rpgSetMaterial
4: commit triangles
5: parse material section and assign texture name to material

As long as I have a name it should be fine.

Actually, if my material list is just going to be [Mat0, Mat1, Mat2, ...] would I be able to use indices to reference them when setting material? But more importantly, is there any advantage of disadvantage to doing things like that.
fantaseb
Banned
Posts: 3
Joined: Thu Dec 15, 2011 6:31 pm
Been thanked: 1 time

Re: Señor Casaroja's Noesis

Post by fantaseb »

lUIGUIPIETRO wrote:
fantaseb wrote:Hello, great editor, but my question - I am trying to open Red Dead Redemptions .RPF X360 Version or PS3 version, and I can't seem to open it I have the latest version of Noesis, and it does not display any .RPF extension's, and there is no plugin for it either. can someone please help me with this, or even upload the "rage_engine.dll" so that I can view the contents in the .rpf thanks. Anyone who knows anything about this feel free to comment and help, cheers.
viewtopic.php?p=61224#p61224

Placed that in the Plugin Dir, and I still can't view contents in X360 got a quick tut?
lUIGUIPIETRO
veteran
Posts: 87
Joined: Sat Mar 13, 2010 3:59 pm
Has thanked: 44 times
Been thanked: 2 times

Re: Señor Casaroja's Noesis

Post by lUIGUIPIETRO »

fantaseb wrote: Placed that in the Plugin Dir, and I still can't view contents in X360 got a quick tut?
1º: You need to extract the RPF of a game ISO. You can use Xbox Backup Creator v2.7.0.265 or similar. This program can create backup from your original game, hope it's not illegal to write this.
2º: In Noesis, the plugin go in this folder http://imageshack.us/f/535/noesis0.png/ I use the 36.2 version but all serve.
3ª:I associative files: http://imageshack.us/f/824/noesis1.png/ and http://imageshack.us/f/842/noesis2.png/
4ª:and works perfectly http://imageshack.us/f/585/noesis3.png/
When you try to open the RPF, the program tells you that I can not open but you can export. Give OK and you can go for a walk because it takes several hours, ...
Once unpacked, you can now navigate through folders and be watching the terrain files, models and textures. There are still unpacking things but I think Revelation continues to work on them. When you extract the textures, you have to do it in TGA format. It seems that the textures are packed and can only be removed if you export all TGA format. I hope you understand me because I use Google translator, ...
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

Think I found a type issue.
I'm doing something like

Code: Select all

#n is an int
numFace = n / 6
for i in range(numFace)
    ...
But then it says

"TypeError: 'float' object cannot be interpreted as an integer"

When I printed out type(numFace) it was int though since python interpreted it as integer division.

Now the odd thing is if I write

Code: Select all

numFace = int(n / 6)
The same piece of code then works o.O

Oh, and here is a bmp file that I can load using paint and other common tools, but noesis doesn't seem to recognize it.
EDIT: lol wait does noesis support reading bmp?
You do not have the required permissions to view the files attached to this post.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Señor Casaroja's Noesis

Post by chrrox »

When you divide in python it returns a flaot
faces / 4 is a float
if you do
faces // 4 its an int
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

lol they really changed a lot in 3.x...
I have to read the documentation.

I have some model formats stored in plain XML.
Does noesis come with python's XML module?
Last edited by finale00 on Sat Dec 17, 2011 2:45 am, edited 4 times in total.
Satoh
mega-veteran
mega-veteran
Posts: 194
Joined: Sat May 09, 2009 3:07 pm
Has thanked: 13 times
Been thanked: 38 times

Re: Señor Casaroja's Noesis

Post by Satoh »

The contents of this post was deleted because of possible forum rules violation.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

I've come to realize that the way I'm doing my interface is wrong; the NoeBitStream object should be directly accessible and additional methods written only to make certain things "easier" (meaning, for myself), rather than completely hiding it away. The only reason for that was in case you changed the API itself (for NoeBitStream), which probably won't happen very often (if at all) anyways. So now I'm using the API as it should be used lol

But while changing all of the "read_long" and "read_float" methods to just call read normally, I found myself typing this a lot

Code: Select all

#hardcoded index?
numVerts = self.inFile.read('L')[0]
Can you make it so that if I am only reading one value, that it just returns that value rather than a tuple containing a single value?

For now I've changed the read method to check the size of the tuple before returning the data since it seems like the easiest way to do it, so it is not a priority item.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Señor Casaroja's Noesis

Post by chrrox »

just make a new function that reads one value and return tuple[0]
Post Reply