Jump to content

Megadrifter

Member
  • Posts

    34
  • Joined

  • Last visited

Posts posted by Megadrifter

  1. Hi there. I see you noticed my post about IMG format. So I thought that was the good time to give you some more research I made on GTI.

    /pokemon/ contains data about Pokémon. It contains 7 files which are : experience.bin, experience.ent, grade.bin, grade.ent, pokemon_data_info.bin, type_data_info.bin and waza_data_info.bin. ENT files contains pointers for their namesake.

    experience.bin is the experience table for each level of each Pokémon. There are 100 levels per Pokémon (quite obvious, I know...). Each Pokémon table is 0x4C0 bytes long, with an empty padding of 16 bytes (only 0x00). There are some dummed entries, which contains nonsense experience table. I don't know what to think about them.

    PokemonEntry
    [
    LevelEntry												Starts at level 0. 100 entries per Pokémon.
    [
    	0x00		experience			4			uint32			Amount of maximum experience in the current level (Little Endian). Add 1 to get the experience needed to level up.
    	0x04		addedhp				1			uint8			Added HP when leveling up.
    	0x05		addedatk			1			uint8			Added Attack when leveling up.
    	0x06		addeddef			1			uint8			Added Defense when leveling up.
    	0x07		addedspeatk			1			uint8			Added Special Attack when leveling up.
    	0x08		addedspedef			1			uint8			Added Special Defense when leveling up.
    	0x09		lvlpadding			3			-			Padding between level. Always 0x00.
    ]
    ...
    0x4B0			pkmpadding			16			-			Padding between Pokémon. Always 0x00.
    ]
    ...

    experience.ent contains pointers to each Pokémon experience table. Each pointer is 4 bytes long.

    Don't know what is grade.bin about, but according to grade.ent, there's only 3 entries. First one is 0xA0 bytes long, second one go straight to the end. The last value in grade.ent equals the length of grade.bin.

    pokemon_data_info.bin contains Pokémon informations (wouhou, that's obvious). It has a first empty entry of 0xE0 bytes, so we could think each Pokémon entry is that long. I didn't understand well the structure but I know, thanks to common.bin in /message/ that the Pokémon order is the following (with some unused one between) :

    Pikachu
    Raichu
    Starmie
    Eevee
    Vaporeon
    Jolteon
    Flareon
    Chinchou
    Pichu
    Marill
    Azumarill
    Sunkern
    Wooper
    Quagsire
    Espeon
    Umbreon
    Dunsparce
    Swinub
    Piloswine
    Lugia
    Ho-Oh
    Wingull
    Pelipper
    Azurill
    Kecleon
    Bagon
    Shelgon
    Salamence
    Cranidos
    Rampardos
    Glameow
    Purugly
    Croagunk
    Toxicroak
    Leafeon
    Glaceon
    Mamoswine
    Victini
    Snivy
    Servine
    Serperior
    Tepig
    Pignite
    Emboar
    Oshawott
    Dewott
    Samurott
    Patrat
    Watchog
    Lillipup
    Herdier
    Stoutland
    Pansage
    Simisage
    Pansear
    Simisear
    Panpour
    Simipour
    Munna
    Musharna
    Blitzle
    Zebstrika
    Roggenrola
    Boldore
    Gigalith
    Woobat
    Swoobat
    Drilbur
    Excadrill
    Audino
    Timburr
    Gurdurr
    Conkeldurr
    Tympole
    Palpitoad
    Seismitoad
    Sewaddle
    Swadloon
    Leavanny
    Venipede
    Whirlipede
    Scolipede
    Cottonee
    Whimsicott
    Petilil
    Lilligant
    Sandile
    Krokorok
    Krookodile
    Dwebble
    Crustle
    Scraggy
    Scrafty
    Yamask
    Cofagrigus
    Tirtouga
    Carracosta
    Archen
    Archeops
    Trubbish
    Garbodor
    Zorua
    Zoroark
    Minccino
    Cinccino
    Gothita
    Gothorita
    Gothitelle
    Ducklett
    Swanna
    Emolga
    Foongus
    Amoonguss
    Joltik
    Galvantula
    Klink
    Klang
    Klinklang
    Litwick
    Lampent
    Chandelure
    Axew
    Fraxure
    Haxorus
    Cubchoo
    Beartic
    Cryogonal
    Mienfoo
    Mienshao
    Druddigon
    Golett
    Golurk
    Pawniard
    Bisharp
    Rufflet
    Braviary
    Vullaby
    Mandibuzz
    Deino
    Zweilous
    Hydreigon
    Larvesta
    Volcarona
    Cobalion
    Terrakion
    Virizion
    Tornadus
    Thundurus
    Reshiram
    Zekrom
    Landorus
    Kyurem
    Keldeo
    Meloetta
    Meloetta
    Kyurem
    Kyurem
    Pikachu

    type_data_info.bin contains some Types informations, but I don't know how it works.

    waza_data_info.bin contains Moves data. There's a first empty entry 0x1E bytes, so again, I could confirm that each one is that long. Didn't took the time to study those, but here's the supposed list of Moves to use (it may contain some French names because that was quickly translate) :

    Pound
    Karate Chop
    Double Slap
    Comet Punch
    Mega Punch
    Pay Day
    Fire Punch
    Poinglace
    Thunder Punch
    Scratch
    Vice Grip
    Guillotine
    Razor Wind
    Swords Dance
    Cut
    Gust
    Wing Attack
    Whirlwind
    Flying
    Bind
    Slam
    Vine Whip
    Stomp
    Double Kick
    Mega Kick
    Jump Kick
    Rolling Kick
    Sand Attack
    Headbutt
    Horn Attack
    Fury Attack
    Horn Drill
    Tackle
    Body Slam
    Wrap
    Take Down
    Thrash
    Double-Edge
    Tail Whip
    Poison Sting
    Twineedle
    Pin Missile
    Leer
    Bite
    Growl
    Roar
    Sing
    Supersonic
    Sonic Boom
    Disable
    Acid
    Ember
    Lance-Flamme
    Mist
    Water Gun
    Hydro Pump
    Surf
    Ice Beam
    Blizzard
    Psybeam
    Bubble Beam
    Aurora Beam
    Hyper Beam
    Peck
    Drill Peck
    Submission
    Low Kick
    Counter
    Seismic Toss
    Strength
    Absorb
    Mega Drain
    Leech Seed
    Growth
    Razor Leaf
    Solar Beam
    Poison Powder
    Stun Spore
    Sleep Powder
    Petal Dance
    String Shot
    Dragon Rage
    Danseflamme
    Thunder Shock
    Thunderbolt
    Thunder Wave
    Thunder
    Rock Throw
    Earthquake
    Fissure
    Dig
    Toxic
    Confusion
    Psychic
    Hypnosis
    Meditate
    Agility
    Quick Attack
    Rage
    Teleport
    Dark
    Mimic
    Screech
    Double Team
    Recover
    Harden
    Minimize
    Smokescreen
    Confuse Ray
    Withdraw
    Defense Curl
    Barrier
    Light Screen
    Haze
    Reflect
    Focus Energy
    Bide
    Metronome
    Mirror Move
    Self-Destruct
    Bomb'Ruf
    Lick
    Smog
    Sludge
    Bone Club
    Fire Blast
    Waterfall
    Clamp
    Swift
    Skull Bash
    Spike Cannon
    Constrict
    Amnesia
    Kinesis
    Soft-Boiled
    High Jump Kick
    Intimidate
    Dream Eater
    Poison Gas
    Block
    Leech Life
    Lovely Kiss
    Pique
    Transform
    Bubble
    Dizzy Punch
    Spore
    Flash
    Psywave
    Splash
    Acid Armor
    Crabhammer
    Explosion
    Fury Swipes
    Bonemerang
    Rest
    Rock Slide
    Hyper Fang
    Sharpen
    Adaptation
    Tri Attack
    Super Fang
    Slash
    Substitute
    Struggle
    Sketch
    Triple Kick
    Thief
    Spider Web
    Mind Reader
    Nightmare
    Flame Wheel
    Snore
    Curse
    Flail
    Adaptation
    Aeroblast
    Cotton Spore
    Reversal
    Spite
    Powder Snow
    Protect
    Mach Punch
    Scary Face
    Feint Attack
    Sweet Kiss
    Belly Drum
    Sludge Bomb
    Mud-Slap
    Octazooka
    Spikes
    Zap Cannon
    Foresight
    Prlvt Destin
    Perish Song
    Icy Wind
    Detect
    Bone Rush
    Lock-On
    Outrage
    Tempêtesable
    Giga Drain
    Endure
    Charm
    Rollout
    False Swipe
    Swagger
    Milk Drink
    Spark
    Fury Cutter
    Steel Wing
    Mean Look
    Attract
    Sleep Talk
    Heal Bell
    Return
    Present
    Frustration
    Safeguard
    Pain Split
    Sacred Fire
    Magnitude
    Dynamic Punch
    Megahorn
    Dragon Breath
    Baton Pass
    Encore
    Pursuit
    Rapid Spin
    Sweet Scent
    Iron Tail
    Metal Claw
    Vital Throw
    Morning Sun
    Synthesis
    Moonlight
    Puis. Cachée
    Cross Chop
    Twister
    Rain Dance
    Sunny Day
    Crunch
    Mirror Coat
    Psych Up
    Vit. Extrême
    Pouv. Antique
    Shadow Ball
    Future Sight
    Rock Smash
    Whirlpool
    Beat Up
    Fake Out
    Uproar
    Stockpile
    Spit Up
    Swallow
    Heat Wave
    Hail
    Torment
    Flatter
    Will-O-Wisp
    Memento
    Facade
    Focus Punch
    Smelling Salts
    Follow Me
    Nature Power
    Tackle
    Taunt
    Helping Hand
    Trick
    Role Play
    VSu
    Assist
    Ingrain
    Superpower
    Magic Coat
    Recycle
    Revenge
    Brick Break
    Yawn
    Knock Off
    Endeavor
    Eruption
    Skill Swap
    Imprison
    Refresh
    Grudge
    Snatch
    Secret Power
    Dive
    Arm Thrust
    Camouflage
    Tail Glow
    Luster Purge
    Mist Ball
    Feather Dance
    Teeter Dance
    Blaze Kick
    Mud Sport
    Ice Ball
    Needle Arm
    Slack Off
    Hyper Voice
    Crochetvenin
    Éclategriffe
    Blast Burn
    Hydro Cannon
    Meteor Mash
    Astonish
    Weather Ball
    Aromathérapi
    Fake Tears
    Air Cutter
    Overheat
    Odor Sleuth
    Rock Tomb
    Silver Wind
    Metal Sound
    Grass Whistle
    Tickle
    Cosmic Power
    Water Spout
    Signal Beam
    Shadow Punch
    Extrasensory
    Sky Dizzy Punch
    Sand Tomb
    Sheer Cold
    Muddy Water
    Bullet Seed
    Aerial Ace
    Icicle Spear
    Iron Defense
    Block
    Howl
    Dragon Claw
    Frenzy Plant
    Bulk Up
    Bounce
    Mud Shot
    Poison Tail
    Covet
    Volt Tackle
    Feuillemagik
    Water Sport
    Calm Mind
    Leaf Blade
    Dragon Dance
    Rock Blast
    Shock Wave
    Water Pulse
    Doom Desire
    Psycho Boost
    Roost
    Gravity
    Ril Miracle
    Wake-Up Slap
    Hammer Arm
    Gyro Ball
    VSu Recover
    Brine
    Natural Gift
    Feint
    Pluck
    Tailwind
    Acupressure
    Metal Burst
    U-turn
    Close Combat
    Payback
    Assurance
    Embargo
    Fling
    Psycho Shift
    Trump Card
    Heal Block
    Wring Out
    Power Trick
    Gastro Acid
    Lucky Chant
    Me First
    Copycat
    Power Swap
    Guard Swap
    Punishment
    Dernierecour
    Worry Seed
    Sucker Punch
    Toxic Spikes
    Heart Swap
    Aqua Ring
    Magnet Rise
    Flare Blitz
    Strength Palm
    Aura Sphere
    Rock Polish
    Poison Jab
    Dark Pulse
    Night Slash
    Aqua Tail
    Seed Bomb
    Air Slash
    X-Scissor
    Bug Buzz
    Dragon Pulse
    Dragon Rush
    Power Gem
    Drain Punch
    Vacuum Wave
    Focus Blast
    Energy Ball
    Brave Bird
    Earth Power
    Switcheroo
    Giga Impact
    Nasty Plot
    Bullet Punch
    Avalanche
    Ice Shard
    Shadow Claw
    Thunder Fang
    Ice Fang
    Fire Fang
    Shadow Sneak
    Mud Bomb
    Psycho Cut
    Zen Headbutt
    Mirror Shot
    Flash Cannon
    Rock Climb
    Defog
    Trick Room
    Dragonair Meteor
    Discharge
    Lava Plume
    Tempêteverte
    Power Whip
    Rock Wrecker
    Cross Poison
    Gunk Shot
    Iron Head
    Magnet Bomb
    Stone Edge
    Captivate
    Stealth Rock
    NSud Herbe
    Chatter
    Judgment
    Bug Bite
    Tackle Beam
    Wood Hammer
    Aqua Jet
    Attack Order
    Defend Order
    Heal Order
    Head Smash
    Double Hit
    Roar of Time
    Spacial Rend
    Lunar Dance
    Crush Grip
    Magma Storm
    Dark Void
    Seed Flare
    Ominous Wind
    Shadow Strength
    Hone Claws
    Wide Guard
    Guard Split
    Power Split
    Wonder Room
    Psyshock
    Venoshock
    Autotomize
    PoudreFureur
    Telekinesis
    Magic Room
    Smack Down
    Storm Throw
    Flame Burst
    Sludge Wave
    Quiver Dance
    Heavy Slam
    Synchronoise
    Electro Ball
    Soak
    Flame Tackle
    Coil
    Low Sweep
    Acid Spray
    Foul Play
    Simple Beam
    Entrainment
    After You
    Round
    Echoed Voice
    Chip Away
    Clear Smog
    Stored Power
    Quick Guard
    Ally Switch
    Scald
    Shell Smash
    Heal Pulse
    Hex
    Sky Drop
    Shift Gear
    Circle Throw
    Incinerate
    Quash
    Acrobatics
    Reflect Type
    Retaliate
    Final Gambit
    Bestow
    Inferno
    Water Pledge
    Fire Pledge
    Grass Pledge
    Volt Switch
    Struggle Bug
    Bulldoze
    Frost Breath
    Dragon Tail
    Work Up
    Electroweb
    Wild Tackle
    Drill Run
    Dual Chop
    Crèvecœur
    Horn Leech
    Sacred Sword
    Razor Shell
    Heat Crash
    Leaf Tornado
    Steamroller
    Cotton Guard
    Night Daze
    Psystrike
    Tail Slap
    Hurricane
    Head Tackle
    Gear Grind
    Searing Shot
    Techno Blast
    ChantAntique
    Secret Sword
    ÈreGlaciaire
    ChargeFoudre
    Blue Flare
    Fiery Dance
    Freeze Shock
    Ice Burn
    Snarl
    Icicle Crash
    CoupVictoire
    Fusion Flare
    Fusion Bolt
    Weather Ball
    Weather Ball
    Weather Ball
    Weather Ball
    Dig
    Razor Wind
    Focus Punch
    Pique
    Solar Beam
    Flying
    Dive
    Bounce
    Skull Bash
    Curse
    Snore
    Sleep Talk
    Bide
    Revenge
    Avalanche
    Fusion Flare
    Fusion Bolt
    Sky Drop
    #N/A
    #N/A
    #N/A
    Future Sight
    Attaque
    #N/A
    #N/A
    #N/A
    #N/A
    Slash
    Dragon Claw
    Dragon Tail
    Dragon Breath
    Dragon Breath
    Flying
    Ice Beam
    Ice Beam
    Glaciate
    Glaciate
    Flying
    Blizzard
    Thunder
    Fusion Bolt
    Bolt Strike
    Bolt Strike
    Lance-Flamme
    Lance-Flamme
    Fusion Flare
    Fusion Flare
    Blue Flare
    Blue Flare
    Freeze Shock
    Freeze Shock
    Ice Burn
    Ice Burn
    Pouv. Antique
    Extrasensory
    Light Screen
    Reflect
    Dragon Rush
    Aeroblast
    Aeroblast
    Hydro Pump
    Hydro Pump
    Brave Bird
    Lance-Flamme
    Lance-Flamme
    Sacred Fire
    Sacred Fire
    Flying
    Struggle
    Struggle
    Slash
    Dragon Claw
    Flying
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED
    UNUSED

    At the root of the RomFS, there's a file called item_data.bin. That one contains Items data. Each entry looks to be 0x1C bytes long, with an strange ending one of 0x0C bytes. Don't know the whole structure, but for each entry I know that :

    • 0x00 (uint16) seems to be the "category" of item. Throwable, wears, prices, apples, seeds, donuts, devices, vitamins, secrets, orbs, evolve items, keys, lottery tickets, money, treasures, TM's, gifts, rewards (material for Pokémon Paradise buildings), traps and quest items. Maybe not that precise...
    • 0x02 (uint16) is their Price in Poké or Gold Ingot.

    You can find their order by refering to their names in common.bin text file in your /message_ln/ folder. There's many UNUSED and some dev-only items. TM's don't have any number, so refer to their corresponding move name to know which item it is. You can seek for Stick as the first item, followed by Iron Thorn and Silver Spike.

    Good luck guys, and thanks for working on those games.

    EDIT: Just remenber that I made a tool to view the experience table (I may have done some mistakes but it works). Here it is:

    GTI_Experience_Viewer.zip

    My code is shitty so I don't think that's a good idea to share it, but you can ask for.

    GTI_Experience_Viewer.zip

  2. Got some news for you. I was very busy with some stuff since the last time, but I'm back.

    I converted an original IMG to a BCLIM, and then tested it with png2bclim, to find some matches between File formats... and it worked well. So :

    - 0x02 is RGB8;

    - 0x03 is RGBA8888;

    - 0x04 is ETC1.

    I can't find what is 0x05 format, but there're some clues that it is similar to ETC1. I will edit my first post.

    I'll make a little tool soon to convert directly from IMG to PNG, and much of the code will be from Kaphotics' tool (I'll give you credits for any method I'll take).

    If anyone wants to help with the last file format, I could give him the method I used.

  3. I don't endian swap pixel bytes, only the header bytes. When I import ETC1.dll in my project, it says that it can't find the DLL file.

    I arleady know about the difference between 32bit and 24bit.

    I'm having trouble with the pixel order. When I pass an IMG file through my EXE, it creates a PNG, with 4*4 pixel blocks. But those ones are always separated by white lines. Also, I don't think the order in which the blocks are is good.

    14148341398984im01_01_who.png

    I'll try to dig in the source code you gave me. Keep searching a little today.

  4. Well, I'm working on Mystery Dungeon : Gates to Infinity and I'm currently trying to convert an IMG file to a PNG.

    Firstly, let's talk about those IMG files. You can find them in /bg/ and /image_2d/ folders. Their header seems to always be 0x20 bytes long. All values in header are Little Endian.

    [table=width: 500, class: outer_border, align: left]

    [tr]

    [td]

    Offset

    [/td]

    [td]

    Size

    [/td]

    [td]

    Description

    [/td]

    [/tr]

    [tr]

    [td]0x00[/td]

    [td]4[/td]

    [td]Magic ".cte". { 0x00, 0x63, 0x74, 0x65 }[/td]

    [/tr]

    [tr]

    [td]0x04[/td]

    [td]4[/td]

    [td]File format. Possible values : 0x02 (RGB8), 0x03 (RGBA8888), 0x04 (ETC1) or 0x05 (??).[/td]

    [/tr]

    [tr]

    [td]0x08[/td]

    [td]4[/td]

    [td]Width. Always a multiple of 4.[/td]

    [/tr]

    [tr]

    [td]0x0C[/td]

    [td]4[/td]

    [td]Height. Always a multiple of 4.[/td]

    [/tr]

    [tr]

    [td]0x10[/td]

    [td]4[/td]

    [td]Pixel length in bits. 0x18 : 24bits pixels. 0x20 : 32bits pixels.[/td]

    [/tr]

    [tr]

    [td]0x18[/td]

    [td]4[/td]

    [td]Pixel data start offset. It looks like its value is always 0x80.[/td]

    [/tr]

    [/table]

    The pixel data is Width * Height * Pixel size long. Using the file format as a reference to CLIM file ones, you can convert those IMG into BCLIM files and then use png2clim to create a PNG. You should have to flip the image to obtain the final result.

    img2png : soon...

  5. KazoWAR,

    I got an error while opening a save file. I use A-Save 1.23, trying to open a french Ruby Version save (128kb). The save is at the very start of the game, in the truck at Littleroot Town. Here is the error message :

    System.IndexOutOfRangeException: L'index se trouve en dehors des limites du tableau.
      à Pokesav_Advance.Main.button_Open_Click(Object sender, EventArgs e)
      à System.Windows.Forms.Control.OnClick(EventArgs e)
      à System.Windows.Forms.Button.OnClick(EventArgs e)
      à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
      à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
      à System.Windows.Forms.Control.WndProc(Message& m)
      à System.Windows.Forms.ButtonBase.WndProc(Message& m)
      à System.Windows.Forms.Button.WndProc(Message& m)
      à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
      à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
      à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    I'm playing on VBA-M from the last WinDS Pro update, and the option Real Time Clock is checked. And here is the save file : 001.pkmrubis-debut.SAV

  6. Hi there,

    I was thinking about those who can't use any sav extractor. If they try to put some 3rd gen Pokémon on their 4th gen cartridge. Pal Park has a limitation of 6 Pokémon per day. That's boring to change the console date or more than that, to wait 24h before use it again. So my request is about a code that delete the Pal Park limitation on any 4th gen game.

    Does someone know if it's possible ? And could he, please, create this code ?

  7. I followed Kaphotics decryption process to try to edit a french savefile. There are some things I must talk about.

    Firstly, the offset on the Wiki are not exactly the same on my save. I found a gap of 9C between mines and yours for all of the Item Pockets. Is it relative to the language ?

    Then, trying to modify the quantity of a berry, I turned back the savefile to its original file. But Powersaves software doesn't display the save anymore. Do you know anything about a checksum or something else that could block any kind of mods ?

  8. Much people think it's compatible with any games, but the list of compatibility is on their official website. You can't do more than they let you do. Even in this list, there are some games that don't work.

    Its features are : backup saves from games in the list, insert Powersaves on the cartridge and create your own Powersaves with kind of "codes" you check before you insert it as a Powersaves on your game. I didn't get any opportunity to use the last one, cause I don't have a game they can give us codes for.

    In the list of compatibility, their are games for which you can only backup saves. Not very interesting.

  9. In White 2, I found some values at this address, but I didn't find anything with Black 2. I searched in the RAM of Black 2 from which address there're datas, but it was to far from the one in White 2. I'll continue to search some other possibilities, but I'm not sure of what I do, so I can't say if I'll succeed in something.

×
×
  • Create New...