Page 1 of 1

Header Renamer? (quickbms)

Posted: Sun Oct 02, 2016 1:42 am
by stipo360
.

Re: Header Renamer? (quickbms)

Posted: Sun Oct 02, 2016 2:46 pm
by Gh0stBlade
What game? what platform?

Also, Quickbms can do this, but it might take a few lines. Probably better to do it in C/C++ (would take very few lines of code).

Cheers.

Re: Header Renamer? (quickbms)

Posted: Sun Oct 02, 2016 6:13 pm
by Acewell
stipo360 wrote:So i'm trying to cook up a quickbms / or (some other type of script) that could take my textures header ".XETU" and spit out the file 100% unmodified except i need the header replaced with ".XETV"
i'm working on a simple bms script but i need to see a sample to know exactly what the header is in binary :D
i got the XETU to XETV working, i just need to know what that dot is

the double zero is a place holder until i can see a sample

Code: Select all

idstring "\x00XETU" #".XETU"
get NAME filename
set MEMORY_FILE binary "\x00\x58\x45\x54\x56" #".XETV"
log NAME 0 0x5 MEMORY_FILE
append
get SIZE asize
math OFFSET = 0x5
math SIZE - OFFSET
log NAME OFFSET SIZE

Re: Header Renamer? (quickbms)

Posted: Sun Oct 02, 2016 7:41 pm
by stipo360
.

Re: Header Renamer? (quickbms)

Posted: Sun Oct 02, 2016 9:48 pm
by Acewell
stipo360 wrote:...the reason it needs to be set to "V" is because noesis and other texture viewers are only setup to read ".XETV"
if you have a Noesis script to open these textures i could just modify the type checking in it to accept them, so no need for bms script here :D

I replaced idstring "\x00XETU" with get NAME basename because i have multiple texture headers i need spat out in .XETV,
i don't understand, idstring is just a type check so you don't mistakenly modify the wrong files and basename doesn't grab the extension :)

Re: Header Renamer? (quickbms)

Posted: Mon Oct 03, 2016 5:02 am
by stipo360
.

Re: Header Renamer? (quickbms)

Posted: Mon Oct 03, 2016 5:22 pm
by Acewell
try this, didn't have any of your samples to test it on (:

Code: Select all

get MAGIC long
get VERSION byte
if VERSION == 0x55                               #".XETU"
	get NAME filename
	set MEMORY_FILE binary "\x00\x58\x45\x54\x56" #".XETV"
	log NAME 0 0x5 MEMORY_FILE
	append
	get SIZE asize
	math OFFSET = 0x5
	math SIZE - OFFSET
	log NAME OFFSET SIZE
elif VERSION == 0x48                             #".XETH"
	get NAME filename
	set MEMORY_FILE binary "\x00\x58\x45\x54\x56" #".XETV"
	log NAME 0 0x5 MEMORY_FILE
	append
	get SIZE asize
	math OFFSET = 0x5
	math SIZE - OFFSET
	log NAME OFFSET SIZE
elif VERSION == 0x40                             #".XET@"
	get NAME filename
	set MEMORY_FILE binary "\x00\x58\x45\x54\x56" #".XETV"
	log NAME 0 0x5 MEMORY_FILE
	append
	get SIZE asize
	math OFFSET = 0x5
	math SIZE - OFFSET
	log NAME OFFSET SIZE
else
	get NAME filename
	print "%NAME% is version:%VERSION% which is not supported yet!"
endif
it'd be alot easier if you could just link to the Noesis script you mentioned earlier,
then i could just modify the type checking to support however many versions you have. :)

edit
never mind, it looks like that plugin is compiled into noesis.dll and there is no source :(
if you upload some unaltered texture samples i will make a python script that can be extended.