Diamond/Pearl/Platinum hacking Page 61

Started by Hiidoran April 5th, 2007 7:49 PM
  • 415082 views
  • 1952 replies
Seen December 28th, 2011
Posted June 7th, 2009
6 posts
14.8 Years
Thanks! I just need the location in Nitro Explorer of these sprites: The Pokeball throw animation, the Trainer ID picture, and the overworld sprites. I found the icon for the player in the trgra folder, but when I changed it, nothing happened. Could you please help? Thanks!
I´m interested in that facts,too!
I reinsert a new "Trainer Back" but the Sprite of the Trainer changes(to the Original one), when he threw the Pokeball. I used PokeDsPic and edited the "trbgra.narc".
Does anyone know a solution or an alternativ?????Please help
New Twinleaf town(Werdo Town)
Seen April 27th, 2015
Posted November 30th, 2012
58 posts
14.5 Years
Do you mean Crystal Tile? Does it allow you to insert narc files that are a different size than the original?
yes it dose scv,i inserted a bunch of map narc files
Seen January 1st, 2009
Posted December 30th, 2008
3 posts
14.4 Years
Hi, I have been actively viewing this thread for almost all of today. I got an account so i could ask some questions about this. I recently downloaded PokeTEX and I can't get any of the roms to work. I tried a Japanese Diamond ROM and then I replaced the list.txt file with the listus.txt file that was given out on the fourth page here, and it still isn't working. I don't know why. It just shows a warning screen or something, then nothing happens.

And I've tried the ROM's on the Emulator and it works. I've check videos on youtube, and I've read nearly every post here. If I can get PokeTEX to work, then I'm sure I could contribute a lot in this thread!

Please help me out.
Seen January 21st, 2016
Posted November 23rd, 2015
28 posts
15.1 Years
The offsets given in the list.txt in Poketex all start with <b>TEX</b>** now the two *'s after TEX can be a number of things. Im not sure if they represent different types of textures or whatnot. But the texture "types" i found in my hex editor are as follows:

Spoiler:

TEX0d
TEX0h
TEX0l
TEX0p
TEX0t
TEX0x
TEX0D
TEX0H
TEX0L
TEX0P
TEX0T
TEX0X
TEX04
TEX08


i not really sure wether this is actually helpfull or not. :cool:

SCV

DPP Game Researcher

Los Angeles
Seen January 8th, 2015
Posted April 11th, 2010
178 posts
15.4 Years
Thanks! I just need the location in Nitro Explorer of these sprites: The Pokeball throw animation, the Trainer ID picture, and the overworld sprites. I found the icon for the player in the trgra folder, but when I changed it, nothing happened. Could you please help? Thanks!
I don't know where the pokeball throw animation is for DP. In Platinum it is in trbgra.narc but cannot be edited with PokeDSPic.

For overworld sprite use the lists that Trunks(D-Trogh) posted above and PokeTEX.

I´m interested in that facts,too!
I reinsert a new "Trainer Back" but the Sprite of the Trainer changes(to the Original one), when he threw the Pokeball. I used PokeDsPic and edited the "trbgra.narc".
Does anyone know a solution or an alternativ?????Please help
You need to find the Pokeball Throw Sequence for DP.

EDIT:

The Pokeball Throw Sequences for DP are stored in \battle\graphic\batt_obj.narc

If you unpack the narc file then you can find them at files 195-202 and the corresponding palettes in files 47-54.

The offsets in the ROM are:
Start of First Palette:
0x01CEB92C
Start of Last Palette:
0x01CEC844

each palette is 0x228 bytes long.

First Pokeball Throw Sequence:
Hero M: 0x01CF8054
Hero F: 0x01CF9768
Rival: 0x01CFADC4
Cheryl: 0x01CFC308
Riley: 0x01CFDA18
Marley: 0x01CFEF04
Buck: 0x01D00454
Mira: 0x01D017D8

These images are not encrypted so some manipulation with Tile Molester should work.
Age 31
Male
Belgium
Seen December 31st, 2009
Posted December 29th, 2009
439 posts
17.9 Years
The offsets given in the list.txt in Poketex all start with TEX** now the two *'s after TEX can be a number of things. Im not sure if they represent different types of textures or whatnot. But the texture "types" i found in my hex editor are as follows:
Spoiler:

TEX0d
TEX0h
TEX0l
TEX0p
TEX0t
TEX0x
TEX0D
TEX0H
TEX0L
TEX0P
TEX0T
TEX0X
TEX04
TEX08
i not really sure wether this is actually helpfull or not. :cool:
It's not helpful because it's WRONG..
TEX0 is the type-name of the 'file' located at that offset.. ;)
(The offsets point to where the texture files start.)
The next four bytes contain the total size of that TEX0 'file'..

Edit:
SCV, if I read that post before I could've saved you the work to search for them, lol :)
[NTME | WPEDS | HTPE | SGPE | TGPE | PDEDS]
Seen January 21st, 2016
Posted November 23rd, 2015
28 posts
15.1 Years
ok yeah, that makes sense:knockedou anyway if found one texture that is kinda interesting but im not sure were exactly it is in the game.
Spoiler:


Hey Trunks o_0 you can add these to your list they r the UG Pokedoll Textures
*These are for Diamond, for the Pearl offsets add 28 "in hex" to the offset*
Spoiler:
Charmander Doll,2690824
Bulbasaur Doll,2690ca4
Squirtle Doll,2691124
Chikorita Doll,2691a34
Torchic Doll,2692344
Treeko Doll,26927c4
Pikachu Doll,2693e84
Clifary Doll,2694c24
Jigglypuff Doll,26950a4
Wubbofett Doll,2695524
Meowth Doll,26959a4
Glameow Doll,26962b4
Weavile Doll,2696bc4
Munchlax Doll,2697044
Mantyke Doll,2698274
Buizel Doll,26986f4
Manaphy Doll,2699004
Wailord Doll,2699914
Happiny Doll,269a6b4
My user name _ asciii_ +&h1!" lulz
Seen December 2nd, 2013
Posted January 20th, 2013
581 posts
16.3 Years
Gee...thanks for the ehlp guys -_- *No help received.*
You're welcome *No X-Box received for x-mas*


@Are you going to release that OW editor?
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!!!!!!!
Age 30
Female
Seen April 6th, 2019
Posted November 28th, 2010
2,048 posts
15.7 Years
ok yeah, that makes sense:knockedou anyway if found one texture that is kinda interesting but im not sure were exactly it is in the game.
Spoiler:
It's the Dialga/Palkia statue in Eterna City.
Seen November 14th, 2009
Posted June 13th, 2009
40 posts
14.5 Years
i downloaded no$GBA once but i didnt know the controls so i deleted it and i want it again, but my computer wont let me extract .ZIP files.
my other computer will let me but it has no inernet and i lost my memory stick so....
can someone thik up a solution please because i am stuck






i cant think of anything to use as my signatur : (
Age 31
Sinnoh, NY
Seen April 25th, 2009
Posted April 25th, 2009
9 posts
14.4 Years
Hey anyone try the ds emulator for psp?

i have it somewhat working now


THE AURA IS WITH ME!

Name: Lucario
Adopt one yourself! @Pokémon Orphanage
img]http://www.pokeplushies.com/images/adoptables/1267425.gif[/img]
Click here to feed me a Rare Candy!
Get your own at Pokeplushies!
New Twinleaf town(Werdo Town)
Seen April 27th, 2015
Posted November 30th, 2012
58 posts
14.5 Years
Yeah, it totally sucks when people won't just do whatever you want, I can barely stand to think of what a hardship it must have been.
thanks for the sarcasem E-bag,i was wondering how it would take for some good ole' sarcasem.any way i posted a new video on youtube be sure to check it out here:
www:youtube:com/watch?v=AQe6G1z0SE8
(replace : with . i havent gooten 15 postes yet)
in this video i basically edited some textures in jubilife.i could only do one quwadrand because of littlie time.sorry its slow because i had to use a slow computer cause i'm moveing.
i also heard thhat we could edit scripts.how are they in hex i wanted to edit some scripts as proof. any way happy new year

SCV

DPP Game Researcher

Los Angeles
Seen January 8th, 2015
Posted April 11th, 2010
178 posts
15.4 Years
thanks for the sarcasem E-bag,i was wondering how it would take for some good ole' sarcasem.any way i posted a new video on youtube be sure to check it out here:
www:youtube:com/watch?v=AQe6G1z0SE8
(replace : with . i havent gooten 15 postes yet)
in this video i basically edited some textures in jubilife.i could only do one quwadrand because of littlie time.sorry its slow because i had to use a slow computer cause i'm moveing.
i also heard thhat we could edit scripts.how are they in hex i wanted to edit some scripts as proof. any way happy new year
Yes we can edit some scripts. But I think that giving the information as to what you did to edit a certain part is much better than making a video about it. See Pichu2000's guide to hacking DP http://www.pokecommunity.com/showthread.php?t=157092 for some information about scripting. So far its very minimal. I posted how to find and change the trainer battle scripts. But you can change the battles anyways with my editor. So that's not of too much use. Actually it could be, sort of, useful if you add trainers to a route using the info I put about person events and then edit a battle that the game doesn't use and then put the right value to get that battle.

Idea for video: Make it so that there is another trainer in a position near the first trainer such that you get into a double battle. (This cannot be one of the trainers already in the route it must be a completely new trainer).

All the information you need is in the thread I linked to above.

Now I am wondering, do you mind telling us what you did for your map hack videos? Was it just editing the map stuff that Pichu2000 mentioned? Or have you found something new?
New Twinleaf town(Werdo Town)
Seen April 27th, 2015
Posted November 30th, 2012
58 posts
14.5 Years
no i don't mind telling you SCV i'm makeing a modle and texture list for diamond, and i alrready checed out the thread before. any way thanks for the idea i might use it, but i was thinking of makeing some people say some thing different and then walk you around
Australia
Seen January 2nd, 2009
Posted January 2nd, 2009
5 posts
14.7 Years
I Found PokeText!!!!
its to edit the games messages!
attaching now
Check out my post on using poketex to use charmander as a player in diamond/pearl
http://www.pokecommunity.com/showthread.php?p=4193760#post4193760

SCV

DPP Game Researcher

Los Angeles
Seen January 8th, 2015
Posted April 11th, 2010
178 posts
15.4 Years
I Found PokeText!!!!
its to edit the games messages!
attaching now
Yes I used that and the information on the event file structures to make this rom: I did not make the video, just gave fenzo a patch.



no i don't mind telling you SCV i'm makeing a modle and texture list for diamond, and i alrready checed out the thread before. any way thanks for the idea i might use it, but i was thinking of makeing some people say some thing different and then walk you around
It cool that you are making those lists it will be a good contribution. As to the walking you around, we can't do that with scripting yet, that I know of. As far as I know the actual structure of the script files has not been figured out. So we can't insert things, like I did with the event file for the Hall Of Origin for the video above, without causing the game to crash.

SCV

DPP Game Researcher

Los Angeles
Seen January 8th, 2015
Posted April 11th, 2010
178 posts
15.4 Years
first someone has tio figure out how
map<->event<->script<->textfile
are linked


once that is known the script files should not really be a big deal (besides the fact that there are a lot of commands)
Do you mean how they are figured out by the game? Or would a list made by "brute force" be fine.

I have a list for DP of Location <-> Event and put notes that would allow me to make a Location <-> Map <-> Event list.

The way I made it was by going through each event file and guiding myself off of what overworld sprites the event file said were in that place. Also event files are order corresponds very closely to the map order. This also helped, as I was able to use pokesav's Map/coordinate editing and coordinates from the event file to work my way through all of Sinnoh and even find places that I had never been to in the game. Some that did not make it into the game. (Like 3rd and 4th floors of some houses, in one you even get an item from a person laying in a bed.) There seem to be alot more script files but I saw that most of them are pretty empty. For the entries that I have now for Location <-> Script the order is the same as for the Event case. Except the numbers are different because there are so many empty files in between.

I am working on Location <-> Script, thanks to the script handler offset.

Right now I have more entries for the Platinum Location <-> Script, than DP. But I am going back to DP now.

I am not sure if you had this info before. But this morning I identified the structure of the script files. Now its just a matter of looking at individual scripts to try to figure out commands.

So now a video like what Potatomuffin wanted to make is almost possible. (I also have all the necessary movement commands). The telling you something different could be a problem. I have not figured out how to change what people say by linking to a different message. However, I did find out how to edit who said something. Like making the hero or assistant say "What's going on" when you enter lake verity for the first time (instead of the rival saying it).

I am thinking of writing a program that would make it easier for us to play around with editing script files to find out what the commands are. Right now its a hassle to have to repoint everything that need to be repointed withing the script. Then the narc file. I build a small program based on your narcreader class to insert files into any narc. But its very sloppy. I just did it because I wanted to insert something into a script, yesterday. Since I did not know the structure and did not repoint the appropriate things the game crashed. Now I can make a program to repoint within script files. But then we have to use three different programs just to insert something into a script.
Seen September 10th, 2009
Posted September 10th, 2009
39 posts
15.3 Years
as a start normal lists would be fine as a start i assume (although you want to be able to change that sometime in the future & collecting data like that is not my cup of tea, i blame my short attention span ;))

Textfile<->Script would also help a LOT since script references help.

For narc reading/writing I use this python class nowdays (basicly ever since i switched to physton for most of my prototyping stuff) it's also the one used in newpoketext
from struct import *
from array import *

class BTAF:
    def __init__(self, rawdata):
        if len(rawdata)>0:           
            self.magic = rawdata[:4]
            self.header = unpack("II", rawdata[4:12])
            if self.magic != "BTAF":
                raise NameError, "BTAF tag not found"
        else:
            self.magic = "BTAF"
            self.header = (12, 0)
            
        self.table = []
        rawdata=rawdata[12:]
        if len(rawdata)>0:
            for i in range(self.getEntryNum()):            
                self.table.append(unpack("II", rawdata[i*8:i*8+8]))      
    def getSize(self):
        return self.header[0]
    def getEntryNum(self):
        return self.header[1]
    def ToFile(self, f, t):
        f.write(self.magic)
        f.write(pack("II", self.header[0],self.header[1]))
        
        for pair in t:            
            f.write(pack("II", pair[0], pair[1]))
    def addFile(self):
        s, e=self.header
        s += 8
        e += 1
        self.header=s, e
        
               
    
 
    
    
class BTNF:
    def __init__(self, rawdata):
        if len(rawdata)>0:
            self.magic = rawdata[:4]
            self.header = unpack("IIHH", rawdata[4:0x10])
            if self.magic != "BTNF":
                raise NameError, "BTNF tag not found"
        else:
            self.magic = "BTNF"
            self.header = (16, 4, 0, 1)
    def ToFile(self, f):
        f.write(self.magic)
        f.write(pack("IIHH", self.header[0],self.header[1],self.header[2],self.header[3]))          
        

 
class GMIF:
    def __init__(self, rawdata, t):
        if len(rawdata)>0:
            self.magic = rawdata[:4]
            self.size = unpack("I", rawdata[4:8])[0]
            if self.magic != "GMIF":
                raise NameError, "GMIF tag not found"         
        else:
            self.magic = "GMIF"
            self.size = 8

        self.files = []
        for ofs in t:
            self.files.append(rawdata[8+ofs[0]:8+ofs[1]])
            
    def appendFile(raw):
        data += raw
        self.header.size += len(raw)
    def ToFile(self, f):
        f.write(self.magic)
        f.write(pack("I", self.size))
        for d in self.files:
            f.write(d)            
    def addFile(self, data, size):
        self.files.append(data)
        self.size += size        
    def buildIndex(self):
        index = []
        c = 0
        for f in self.files:
            l = len(f)
            index.append((c, c+l))
            c=c+l
        return index
    
    
        

class NARC:
    def __init__(self, rawdata):


        if len(rawdata)>0:
            self.magic = rawdata[:4]
            if self.magic != "NARC":
                raise NameError, "NARC tag not found"
            self.header = unpack("IIHH", rawdata[4:16])
        else:
            self.magic = "NARC"
            self.header = (0x0100FFFE, 0x10+12+8 + 0x10, 0x10, 3)

            
        rawdata= rawdata[16:]
        self.btaf = BTAF(rawdata)
        rawdata= rawdata[self.btaf.getSize():]
        self.btnf = BTNF(rawdata)
        rawdata= rawdata[self.btnf.header[0]:]
        #print rawdata[:10]
        self.gmif = GMIF(rawdata, self.btaf.table)

    def ToFile(self, f):
        f.write(self.magic)
        f.write(pack("IIHH", self.header[0],self.header[1],self.header[2],self.header[3]))
        self.btaf.ToFile(f, self.gmif.buildIndex())
        self.btnf.ToFile(f)
        self.gmif.ToFile(f)
    def addFile(self, s):
        size = len(s)
        mark, narcsz, hdrsize, sect = self.header
        narcsz += (size + 8)
        self.header = (mark, narcsz, hdrsize, sect)
        self.btaf.addFile()
        self.gmif.addFile(s, size)
    def replaceFile(self, index, s):
        newmold = len(s) - len(self.gmif.files[index])
        mark, narcsz, hdrsize, sect = self.header
        narcsz += (newmold)
        self.header = (mark, narcsz, hdrsize, sect)
        self.gmif.size += (newmold)
        self.gmif.files[index] = s