Nomidos HQ Textures in Moghouse, Furnishing and Effect GuideIf you see something that needs improvement please tell me. ;) What is this guide for? You want to put a HQ texture on something that doesn't have a header if you import it into VRS? This guide tells you how you can do that. What do you need to win the battle against evil "You-will-never-HQ-me"-DATs? +Knowledge about the tools that follow. +A Hexeditor. I will use Hex Workshop in this guide. +Changetex +The DAT ROM\1\20.DAT (if I remember right it is the moghouse) +A Backup of the DAT ROM\1\20.DAT >;P Chapters: +How can I change the texturesize in the DAT? +Hexdatalist for the most common sizes +The 2 ways to a custom texturesize How can I change the texturesize in the DAT? Before we go to the shocking Hexediting open the DAT ROM\1\20.DAT with Changetex. It should look like this: Do you see our texture "model yuka00"? We will turn this baby into a 1024x1024 high quality texture. Here comes an information bomb about what we are going to change in the dat. I colored the parts that need attention. Do you feel shocked, confused, lost? Good, then I have your attention. Find your inner peace because now we will start to do it step by step(no not THAT! :P). Open the DAT ROM\1\20.DAT with your hexeditor it should look like this: It doesn't look like this? Try to use these in your preferneces. Now use the Goto function under Edit. This Window should pop up: "Why should I write 32685 hex there?" This is where the Data of the texture begins. I marked that point pink in the informationbombpicture that scared you to death. "How do I know that number?" Look at the dat with Changetex and look what number under "Addr" stands at our model yuka00. Yes you read right 00032685 in hexadecimal. If you took the right Goto-way into the dat you are here. (If you followed the white light after your shock of the second picture... you are dead. :P) If you scroll a bit up it should look like this. Yes, you just jumped to the screenshot of the shockingpicture. You are now looking at what i call the header of the texture. Ok, we want to HQ the texture to 256x256. So we start with erasing the texture data. Your Cursor should still be at the address 32685. If not go back to that address with the Goto function or by hand. Now choose select Block. This window should pop up: "Why should I write 16384 dec there?" This is the size of the texturedata. We will send it to an endless sleep. XD "How do I know that number?" Look at the dat with Changetex again and look what number under "Data Size" stands at our model yuka00. BINGOOO it is 16384 in decimal. ;) I copied the begin and the end of the selected block into one picture to show you how it looks if you did all right and selected the right data. ^^ Ok, if you are 100 percent sure you selected the right block hit delete and erase it. If you are not 100 percent sure hit delete anyway. You can only destroy the dat and start new. So no problem because of your backup. If you did it right it will look like this in the hex editor and Changetex: Now select insert and stay focused, this is a guide and not THAT sort of game. :P After you clicked on insert this window will pop up: I can hear the questions growing in you... "The number 65536. Why should I write it there?" We are adding the new size of the texturedata. "Where is the secret of this value hidden?" I wrote:"Ok, we want to HQ the texture to 256x256." Calculate: 256x256= 65536 -> Tadaaa, thats how you can get this value. Just multipy the formats. "Why write FF there?" Because it works. I always write FF there. It will create a black dds. You can see where it starts and ends with ease. If you prefer something else then try it out. I take no responsibility for killed DATS. :P If all went right you should be sitting before a window that looks like this: No change in Changetex. ;D Now go back to the header at address 32685. Now we start changing the following things written in red: Save and open it in Changetex. It should look like this: You have done it an made that texture a bit more high qualitiy. Now you can exchange it with the texture you want to use. If not you messed up somewhere. :P Hexdatalist for the most common sizes Format =Datasize =Sizeamount =Size Part 1 x Size Part 2 = Mysterious Value 64x64 =4096 dez =00 10 00 00 00 01 00 00 =40 00 x 40 00 = 83 00 00 128x64 =8192 dez =00 20 00 00 00 02 00 00 =80 00 x 40 00 = 03 01 00 128x128 =16384 dez =00 40 00 00 00 02 00 00 =80 00 x 80 00 = 03 02 00 128x256 =32768 dez =00 80 00 00 00 02 00 00 =80 00 x 00 01 = 03 04 00 256x128 =32768 dez =00 80 00 00 00 04 00 00 =00 01 x 80 00 = 03 04 00 256x256 =65536 dez =00 00 01 00 00 04 00 00 =00 01 x 00 01 = 03 08 00 512x256 =131072 dez =00 00 02 00 00 08 00 00 =00 02 x 00 01 = 03 10 00 512x512 =262144 dez =00 00 04 00 00 08 00 00 =00 02 x 00 02 = 03 20 00 512x1024 =524288 dez =00 00 08 00 00 08 00 00 =00 02 x 00 04 = 03 40 00 1024x1024 = 1048576 dez =00 00 10 00 00 10 00 00 =00 04 x 00 04 = 03 80 00 1024x2048 = 2097152 dez =00 00 20 00 00 10 00 00 =00 08 x 00 08 = 03 00 01 Here pictures how they look in a dat: The 2 ways to a custom texturesize The way Nr.1 is easy just open any DAT that has a bitmap with the size you want to use. Use Changetex to find out where the texture begins ,jump there and discover the values you need. :) Hmm... Yes, Dats with imported textures and added textures created from VRS (0,7,5,2 Build 1466 and later) can also be used for stealing the values we need. Our way Nr2 is to calculate all the values and guess the Mysterious Value until it fits in and works. No, up to now I don't know how to calculate this Value. It wouldn't be mysterious if I could. XD Here are my methods. I use the Windows Caclulator in sience viewmode for these calculations. Lets say we want to get the values of 128x256... NO, we don't get 90x60x90. This is no textureformat! :P Datazize: 128x256 = 32768 You need to multiply the values of the texturesize. Sizeamount: 32768 dec = 8000 hex and also 128x4 = 512 dec = 200 hex You need to transform the Datasize to its hexadecimal value. You also have to multiply the first value of the Texturesize by 4 and then also transform it to its hexadecimal value. Now you have 2 hexadecimal values: 8000 hex and 200 hex Time to fill in some zeros before our numbers to get 16 digits like this: 00008000 00000200 <-- each value should now have 8 digits Now lets seperate them a bit like this: 00 00 80 00 00 00 02 00 Ok, now you can see we get near to the look of our Sizeamount in the dat but something is missing. Lets invert our 2 hex values. 00 80 00 00 00 02 00 00 <--- TADAA, you got your Sizeamount. Same invertstep with a pure fictional value to show you what I just did: 12 34 56 78 98 76 54 32 <- seperated value 78 56 34 12 32 54 76 98 <- inverted value As you can see I only invert each group of 8 digits for themself and I always take 2 digits a a whole. Why? Because they like eachother and their love makes the texture work. :P Size Part 1 x Size Part 2: 128x256 dec = 80 x 100 hex Transform the textureformat to hexadecimal values. Now lets add some zeros as we did before at the sizeamount. We should get 4 digits each: 0080 0100 Now lets seperate them: 00 80 01 00 Time to invert: 80 00 00 01 <-- Tadaa, Size Part 1 and Size Part 2 ready for use. Mysterious Value: If anybody of you finds out how to calculate this, please tell me. Until then you can only guess and use the "Try and Error" method for this.^^' |