Introduction

This method of forcing the textures to load in any map works for both PTDE and Remastered. Doing this is not necessary for certain important objects that exist in multiple maps, such as bonfires or corpses, but is usually necessary for objects that appear in only one map. We are essentially going to mimic the setup of those types of objects but with an object that usually grabs textures from the map rather than its own bnd. This method is a little tedious so bear that in mind before continuing.


What You Will Need

  1. Yabber
  2. Flver Editor (for viewing)
  3. Unpacked game


Tutorial

  1. Locate the .objbnd of the object that you want from inside the \obj\ folder in the unpacked game files.
  2. Unpack it with yabber and locate the .flver model file for the object inside the unpacked folder.
  3. Open the .flver file with the Flver Editor. In the FLVER Bones window click on "Material".
  4. Go to the material in the first index [0] and click "Edit". The material quick editor window will appear.
  5. Inside you will usually see 3 paths to 3 different textures for the material. One is diffuse, one is specular (_s), and one is bumpmap (_n). The paths will indicate which map folder the textures are in at the part that says \m10\, \m11\, etc.
  6. Go to the \map\ folder in the unpacked game files, and find the folder for the map you are getting the textures from. (I am getting textures for o1321, which are in m10)
  7. The textures can be in any of the .tpfbhd's that are labelled mXX_000X.tpfbhd. I usually unpack all of them.
  8. Look through each unpacked folder of the .tpfbhd for the 3 files that are referenced at the end of the paths for the material, only they will .tpf files and not .tga files. Unpack each of them.
  9. Repeat steps 4-8 for each other index of materials that appear on the model. (this step can take some time)
  10. Once all tpf files are extracted, make a copy of the extracted folder for one of them (any works). Its good to name this folder after your object to keep track of it.
  11. For each other extracted folder, copy and paste the .dds file within it into the new .tpf folder you created. Also open the _yabber-tpf.xml file in each folder, copy the segment of it which starts with <texture> and ends with </texture>, and paste that segment into the .xml file of your new .tpf folder inside the part that starts with <textures> and ends with </textures>, just after the last texture that was put in.
  12. Here is an example of what your _yabber-tpf.xml file may look like after all these steps are completed (dcx will be in the name if done on DS:R):
<?xml version="1.0" encoding="utf-8"?>
<tpf>
  <filename>o1321.tpf.dcx</filename>
  <compression>DarkSouls1</compression>
  <encoding>0x02</encoding>
  <flag2>0x03</flag2>
  <textures>
    <texture>
      <name>m10_01_wood_02.dds</name>
      <format>0x01</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
    <texture>
      <name>m10_01_wood_02_s.dds</name>
      <format>0x01</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
    <texture>
      <name>m10_01_wood_02_n.dds</name>
      <format>0x24</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
    <texture>
      <name>m10_01_arrow_01.dds</name>
      <format>0x01</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
    <texture>
      <name>m10_01_arrow_01_s.dds</name>
      <format>0x01</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
    <texture>
      <name>m10_01_arrow_01_n.dds</name>
      <format>0x24</format>
      <flags1>0x00</flags1>
      <flags2>0x00000000</flags2>
    </texture>
  </textures>
</tpf>

13. Move your new .tpf folder with the .xml file and all the .dds files in it into the .objbnd folder beside the .flver model file. Use yabber on the folder to repack it into either a .tpf or .tpf.dcx
14. (REMASTERED ONLY) Use Yabber DCX to turn the .tpf.dcx into just a .tpf
15. Edit the _yabber-bnd3.xml for the objbnd by adding the new .tpf file to it. MAKE SURE that the ID for the new .tpf file is 100. It will only work if the ID is 100.
16. Use yabber to repack the .objbnd file and test it in game. Voila! It should work in any map now.