Jump to content

Pokemon Super Mystery Dungeon And PMD:GTI Research And Utilities


Recommended Posts

in short sir0 is an game configuration container, so that why each sir0 file is have different structure. FARC file is have 3 main part : Header, SIR0 (as FAT), and DAT , SIR0 in here used as FAT, which is have 2 type of them, 0x4 and 0x5. i already test my tool for most farc file on SMD, is working fine to find correct offset for each file. idk if is have more than 2 type SIRO FAT on it ... but i will check it later.

here for SIR0 / FARC or related on it structure :

0x0 - FARC (Magic Header)

0x20 - Type of FAT SIR0*

0x24 - first SIR0 Offset as FAT

0x28 - first SIR0 Length as FAT

0x2C - first DAT offset

0x30 - first DAT Length (with first SIR0 last padding)

each volume used 0x20 byte

0x0 : SIR0 magic header

0x4 : game config header offset

0x8 : pointer offset (is related on 3DS Virtual Memory)

0x0 : start Offset

0x4 : file count

0x8 : file name flag (0: with name, 1 : without name)

0x0 : filename offset

0x4 : data offset

0x8 : data lenght

0xc : 0x0

0x0 : filename offset

0x4 : data offset

0x8 : data lenght

well i try encode file on message.bin (packed with FARC container). well too much character is used as code xD

0x0 : file offset

0x4 : file name offset (is not file lenght)

0x8 : ?? (i think is attribute on text ...)

SNAG_0014.png

here for tools : https://dl.dropboxusercontent.com/u/3122097/SIR0Reader.7z is still WIP, common FARC is can be extracted as raw file. but not working to read SIR0 Message on debug_message file since this tools used static method for read file offset on SIR0, not dynamic one (used Pointer Data).

Edited by Andibad
Link to comment
Share on other sites

in short sir0 is an game configuration container, so that why each sir0 file is have different structure. FARC file is have 3 main part : Header, SIR0 (as FAT), and DAT , SIR0 in here used as FAT, which is have 2 type of them, 0x4 and 0x5. i already test my tool for most farc file on SMD, is working fine to find correct offset for each file. idk if is have more than 2 type SIRO FAT on it ... but i will check it later.

I seriously doubt that SIR0 is only for configuration though.

I've seen plenty of images, archives, compressed stats data, and etc that were wrapped into a SIR0 for no apparent reasons in the past. Especially in PMD:Explorers of Sky. It seems to me like its just a way to load any constant data structures at runtime directly into the 3ds's memory, and have the code use it as-is from an arbitrary memory position.

(And its really easy to crash the game and writing in a lot of places you're not supposed to with that file format xD A single error in the encoded pointer list is enough to corrupt most pointers after they're translated, and thus write pretty much anywhere in the allocated user space memory. I made a mistake once, and the game began writing into the OAM, or maybe even the video memory, and things started looking pretty crazy on-screen xD )

And about the different types of FAT, 2 types sounds about right. I've only seen 2 variations so far. (for models files at least)

But it depends on what you want to do. Are you writing a FARC extractor, or something else ? Because, there are probably a lot of variations of the SIR0's content around.

here for SIR0 / FARC or related on it structure :

well i try encode file on message.bin (packed with FARC container). well too much character is used as code xD

SNAG_0014.png

here for tools : https://dl.dropboxusercontent.com/u/3122097/SIR0Reader.7z is still WIP, common FARC is can be extracted as raw file. but not working to read SIR0 Message on debug_message file since this tools used static method for read file offset on SIR0, not dynamic one (used Pointer Data).

Nice work with those FARC files !

Interestingly, the message_debug.bin archive seems to contain many "string database" files that were used in GTI. They all seem to match my notes : https://dl.dropboxusercontent.com/u/13343993/my_pmd_research_files/PMD_GTI/FileFormats/string_database.txt

But the message.bin seems to contain those too, only the strings that each pointers refer to isn't in the SIR0 container itself.. I wonder what this means.. (I only got the Japanese ROM right now though )

What's even more intriguing is that, the function used to load the game strings for menus still refers to the "message" directory, which is missing in PSMD.

MENU:LoadMenuTextPool("message/staff.bin")

So, I'd guess, they modified that to pull text from somewhere else ? Possibly involving that message.bin file ?

EDIT:

Also, nvm about the strings missing from the string files within the message.bin file.. Its a bit too early for me to say I guess.. There's a possibility that UTF characters don't show up properly in my hex edtior, and well, I think I'll have an easier time once I can dump my NA rom.. ^^;

And the message.lst file seems to contain the file names for the "string database" files within the message.bin file ! Or at least, that's what I'm assuming.

Link to comment
Share on other sites

debug message is used 8 byte on header FAT, i just suspect pointer table is just table of length each file on header FAT. common.bin is have 0xc length each file which is filenameoffset, dataoffset and file lenght, on pointer table say 0xc too and pointer table length fit with file count (-1).

SIR0 Pointer table on common.bin :

04 04 9C 84 14 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C [end with 0x10 0x00]

i suspect 0x0c is not padding, but is seems length of header FAT on each file. italic one is seems an flag .. but i still not sure. sir0 on FARC is have 0x20 on it without 0xXX padding value. since i only have SMD us on my PC, maybe i need to extract GI too (us/jp version).

Link to comment
Share on other sites

debug message is used 8 byte on header FAT, i just suspect pointer table is just table of length each file on header FAT. common.bin is have 0xc length each file which is filenameoffset, dataoffset and file lenght, on pointer table say 0xc too and pointer table length fit with file count (-1).

SIR0 Pointer table on common.bin :

04 04 9C 84 14 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C [end with 0x10 0x00]

i suspect 0x0c is not padding, but is seems length of header FAT on each file. italic one is seems an flag .. but i still not sure. sir0 on FARC is have 0x20 on it without 0xXX padding value. since i only have SMD us on my PC, maybe i need to extract GI too (us/jp version).

The encoded pointer list must end on a 0. It will keep going until it hits one.

So, yep, that's not padding. All those 0xC are actually offsets to pointers within the SIR0 container.

http://projectpokemon.org/wiki/Pmd2_SIR0#Pointer_Offsets_List

Link to comment
Share on other sites

Also, nvm about the strings missing from the string files within the message.bin file.. Its a bit too early for me to say I guess.. There's a possibility that UTF characters don't show up properly in my hex edtior, and well, I think I'll have an easier time once I can dump my NA rom.. ^^;

And the message.lst file seems to contain the file names for the "string database" files within the message.bin file ! Or at least, that's what I'm assuming.

i was think is just an id for script for get an string or icon (type,item,etc). so is have weird unicode on it, so i advice just look it on hex on sir0 content (not converted text one, it might not correct to convert them).

example :

Use it to teach the move \x65533{591}. But you can't use it on a Pokémon that has already learned or can't learn the move.

\x65533{0} is for call move string list with single value.

http://pastebin.com/Pp2DbNFE

  1. Pound
  2. Karate Chop
  3. Double Slap
  4. Comet Punch
  5. Mega Punch
  6. Pay Day
  7. Fire Punch
  8. Ice Punch
  9. Thunder Punch
  10. Scratch
  11. Vice Grip
  12. Guillotine
  13. Razor Wind
  14. Swords Dance
  15. Cut
  16. Gust
  17. Wing Attack
  18. Whirlwind
  19. Fly
  20. Bind
  21. Slam
  22. Vine Whip
  23. Stomp
  24. Double Kick
  25. Mega Kick
  26. Jump Kick
  27. Rolling Kick
  28. Sand Attack
  29. Headbutt
  30. Horn Attack
  31. Fury Attack
  32. Horn Drill
  33. Tackle
  34. Body Slam
  35. Wrap
  36. Take Down
  37. Thrash
  38. Double-Edge
  39. Tail Whip
  40. Poison Sting
  41. Twineedle
  42. Pin Missile
  43. Leer
  44. Bite
  45. Growl
  46. Roar
  47. Sing
  48. Supersonic
  49. Sonic Boom
  50. Disable
  51. Acid
  52. Ember
  53. Flamethrower
  54. Mist
  55. Water Gun
  56. Hydro Pump
  57. Surf
  58. Ice Beam
  59. Blizzard
  60. Psybeam
  61. Bubble Beam
  62. Aurora Beam
  63. Hyper Beam
  64. Peck
  65. Drill Peck
  66. Submission
  67. Low Kick
  68. Counter
  69. Seismic Toss
  70. Strength
  71. Absorb
  72. Mega Drain
  73. Leech Seed
  74. Growth
  75. Razor Leaf
  76. Solar Beam
  77. Poison Powder
  78. Stun Spore
  79. Sleep Powder
  80. Petal Dance
  81. String Shot
  82. Dragon Rage
  83. Fire Spin
  84. Thunder Shock
  85. Thunderbolt
  86. Thunder Wave
  87. Thunder
  88. Rock Throw
  89. Earthquake
  90. Fissure
  91. Dig
  92. Toxic
  93. Confusion
  94. Psychic
  95. Hypnosis
  96. Meditate
  97. Agility
  98. Quick Attack
  99. Rage
  100. Teleport
  101. Night Shade
  102. Mimic
  103. Screech
  104. Double Team
  105. Recover
  106. Harden
  107. Minimize
  108. Smokescreen
  109. Confuse Ray
  110. Withdraw
  111. Defense Curl
  112. Barrier
  113. Light Screen
  114. Haze
  115. Reflect
  116. Focus Energy
  117. Bide
  118. Metronome
  119. Mirror Move
  120. Self-Destruct
  121. Egg Bomb
  122. Lick
  123. Smog
  124. Sludge
  125. Bone Club
  126. Fire Blast
  127. Waterfall
  128. Clamp
  129. Swift
  130. Skull Bash
  131. Spike Cannon
  132. Constrict
  133. Amnesia
  134. Kinesis
  135. Soft-Boiled
  136. High Jump Kick
  137. Glare
  138. Dream Eater
  139. Poison Gas
  140. Barrage
  141. Leech Life
  142. Lovely Kiss
  143. Sky Attack
  144. Transform
  145. Bubble
  146. Dizzy Punch
  147. Spore
  148. Flash
  149. Psywave
  150. Splash
  151. Acid Armor
  152. Crabhammer
  153. Explosion
  154. Fury Swipes
  155. Bonemerang
  156. Rest
  157. Rock Slide
  158. Hyper Fang
  159. Sharpen
  160. Conversion
  161. Tri Attack
  162. Super Fang
  163. Slash
  164. Substitute
  165. Struggle
  166. Sketch
  167. Triple Kick
  168. Thief
  169. Spider Web
  170. Mind Reader
  171. Nightmare
  172. Flame Wheel
  173. Snore
  174. Curse
  175. Flail
  176. Conversion 2
  177. Aeroblast
  178. Cotton Spore
  179. Reversal
  180. Spite
  181. Powder Snow
  182. Protect
  183. Mach Punch
  184. Scary Face
  185. Feint Attack
  186. Sweet Kiss
  187. Belly Drum
  188. Sludge Bomb
  189. Mud-Slap
  190. Octazooka
  191. Spikes
  192. Zap Cannon
  193. Foresight
  194. Destiny Bond
  195. Perish Song
  196. Icy Wind
  197. Detect
  198. Bone Rush
  199. Lock-On
  200. Outrage
  201. Sandstorm
  202. Giga Drain
  203. Endure
  204. Charm
  205. Rollout
  206. False Swipe
  207. Swagger
  208. Milk Drink
  209. Spark
  210. Fury Cutter
  211. Steel Wing
  212. Mean Look
  213. Attract
  214. Sleep Talk
  215. Heal Bell
  216. Return
  217. Present
  218. Frustration
  219. Safeguard
  220. Pain Split
  221. Sacred Fire
  222. Magnitude
  223. Dynamic Punch
  224. Megahorn
  225. Dragon Breath
  226. Baton Pass
  227. Encore
  228. Pursuit
  229. Rapid Spin
  230. Sweet Scent
  231. Iron Tail
  232. Metal Claw
  233. Vital Throw
  234. Morning Sun
  235. Synthesis
  236. Moonlight
  237. Hidden Power
  238. Cross Chop
  239. Twister
  240. Rain Dance
  241. Sunny Day
  242. Crunch
  243. Mirror Coat
  244. Psych Up
  245. Extreme Speed
  246. Ancient Power
  247. Shadow Ball
  248. Future Sight
  249. Rock Smash
  250. Whirlpool
  251. Beat Up
  252. Fake Out
  253. Uproar
  254. Stockpile
  255. Spit Up
  256. Swallow
  257. Heat Wave
  258. Hail
  259. Torment
  260. Flatter
  261. Will-O-Wisp
  262. Memento
  263. Facade
  264. Focus Punch
  265. Smelling Salts
  266. Follow Me
  267. Nature Power
  268. Charge
  269. Taunt
  270. Helping Hand
  271. Trick
  272. Role Play
  273. Wish
  274. Assist
  275. Ingrain
  276. Superpower
  277. Magic Coat
  278. Recycle
  279. Revenge
  280. Brick Break
  281. Yawn
  282. Knock Off
  283. Endeavor
  284. Eruption
  285. Skill Swap
  286. Imprison
  287. Refresh
  288. Grudge
  289. Snatch
  290. Secret Power
  291. Dive
  292. Arm Thrust
  293. Camouflage
  294. Tail Glow
  295. Luster Purge
  296. Mist Ball
  297. Feather Dance
  298. Teeter Dance
  299. Blaze Kick
  300. Mud Sport
  301. Ice Ball
  302. Needle Arm
  303. Slack Off
  304. Hyper Voice
  305. Poison Fang
  306. Crush Claw
  307. Blast Burn
  308. Hydro Cannon
  309. Meteor Mash
  310. Astonish
  311. Weather Ball
  312. Aromatherapy
  313. Fake Tears
  314. Air Cutter
  315. Overheat
  316. Odor Sleuth
  317. Rock Tomb
  318. Silver Wind
  319. Metal Sound
  320. Grass Whistle
  321. Tickle
  322. Cosmic Power
  323. Water Spout
  324. Signal Beam
  325. Shadow Punch
  326. Extrasensory
  327. Sky Uppercut
  328. Sand Tomb
  329. Sheer Cold
  330. Muddy Water
  331. Bullet Seed
  332. Aerial Ace
  333. Icicle Spear
  334. Iron Defense
  335. Block
  336. Howl
  337. Dragon Claw
  338. Frenzy Plant
  339. Bulk Up
  340. Bounce
  341. Mud Shot
  342. Poison Tail
  343. Covet
  344. Volt Tackle
  345. Magical Leaf
  346. Water Sport
  347. Calm Mind
  348. Leaf Blade
  349. Dragon Dance
  350. Rock Blast
  351. Shock Wave
  352. Water Pulse
  353. Doom Desire
  354. Psycho Boost
  355. Roost
  356. Gravity
  357. Miracle Eye
  358. Wake-Up Slap
  359. Hammer Arm
  360. Gyro Ball
  361. Healing Wish
  362. Brine
  363. Natural Gift
  364. Feint
  365. Pluck
  366. Tailwind
  367. Acupressure
  368. Metal Burst
  369. U-turn
  370. Close Combat
  371. Payback
  372. Assurance
  373. Embargo
  374. Fling
  375. Psycho Shift
  376. Trump Card
  377. Heal Block
  378. Wring Out
  379. Power Trick
  380. Gastro Acid
  381. Lucky Chant
  382. Me First
  383. Copycat
  384. Power Swap
  385. Guard Swap
  386. Punishment
  387. Last Resort
  388. Worry Seed
  389. Sucker Punch
  390. Toxic Spikes
  391. Heart Swap
  392. Aqua Ring
  393. Magnet Rise
  394. Flare Blitz
  395. Force Palm
  396. Aura Sphere
  397. Rock Polish
  398. Poison Jab
  399. Dark Pulse
  400. Night Slash
  401. Aqua Tail
  402. Seed Bomb
  403. Air Slash
  404. X-Scissor
  405. Bug Buzz
  406. Dragon Pulse
  407. Dragon Rush
  408. Power Gem
  409. Drain Punch
  410. Vacuum Wave
  411. Focus Blast
  412. Energy Ball
  413. Brave Bird
  414. Earth Power
  415. Switcheroo
  416. Giga Impact
  417. Nasty Plot
  418. Bullet Punch
  419. Avalanche
  420. Ice Shard
  421. Shadow Claw
  422. Thunder Fang
  423. Ice Fang
  424. Fire Fang
  425. Shadow Sneak
  426. Mud Bomb
  427. Psycho Cut
  428. Zen Headbutt
  429. Mirror Shot
  430. Flash Cannon
  431. Rock Climb
  432. Defog
  433. Trick Room
  434. Draco Meteor
  435. Discharge
  436. Lava Plume
  437. Leaf Storm
  438. Power Whip
  439. Rock Wrecker
  440. Cross Poison
  441. Gunk Shot
  442. Iron Head
  443. Magnet Bomb
  444. Stone Edge
  445. Captivate
  446. Stealth Rock
  447. Grass Knot
  448. Chatter
  449. Judgment
  450. Bug Bite
  451. Charge Beam
  452. Wood Hammer
  453. Aqua Jet
  454. Attack Order
  455. Defend Order
  456. Heal Order
  457. Head Smash
  458. Double Hit
  459. Roar of Time
  460. Spacial Rend
  461. Lunar Dance
  462. Crush Grip
  463. Magma Storm
  464. Dark Void
  465. Seed Flare
  466. Ominous Wind
  467. Shadow Force
  468. Hone Claws
  469. Wide Guard
  470. Guard Split
  471. Power Split
  472. Wonder Room
  473. Psyshock
  474. Venoshock
  475. Autotomize
  476. Rage Powder
  477. Telekinesis
  478. Magic Room
  479. Smack Down
  480. Storm Throw
  481. Flame Burst
  482. Sludge Wave
  483. Quiver Dance
  484. Heavy Slam
  485. Synchronoise
  486. Electro Ball
  487. Soak
  488. Flame Charge
  489. Coil
  490. Low Sweep
  491. Acid Spray
  492. Foul Play
  493. Simple Beam
  494. Entrainment
  495. After You
  496. Round
  497. Echoed Voice
  498. Chip Away
  499. Clear Smog
  500. Stored Power
  501. Quick Guard
  502. Ally Switch
  503. Scald
  504. Shell Smash
  505. Heal Pulse
  506. Hex
  507. Sky Drop
  508. Shift Gear
  509. Circle Throw
  510. Incinerate
  511. Quash
  512. Acrobatics
  513. Reflect Type
  514. Retaliate
  515. Final Gambit
  516. Bestow
  517. Inferno
  518. Water Pledge
  519. Fire Pledge
  520. Grass Pledge
  521. Volt Switch
  522. Struggle Bug
  523. Bulldoze
  524. Frost Breath
  525. Dragon Tail
  526. Work Up
  527. Electroweb
  528. Wild Charge
  529. Drill Run
  530. Dual Chop
  531. Heart Stamp
  532. Horn Leech
  533. Sacred Sword
  534. Razor Shell
  535. Heat Crash
  536. Leaf Tornado
  537. Steamroller
  538. Cotton Guard
  539. Night Daze
  540. Psystrike
  541. Tail Slap
  542. Hurricane
  543. Head Charge
  544. Gear Grind
  545. Searing Shot
  546. Techno Blast
  547. Relic Song
  548. Secret Sword
  549. Glaciate
  550. Bolt Strike
  551. Blue Flare
  552. Fiery Dance
  553. Freeze Shock
  554. Ice Burn
  555. Snarl
  556. Icicle Crash
  557. Fusion Flare
  558. Fusion Bolt
  559. Flying Press
  560. Mat Block
  561. Belch
  562. Rototiller
  563. Sticky Web
  564. Fell Stinger
  565. Phantom Force
  566. Trick-or-Treat
  567. Noble Roar
  568. Ion Deluge
  569. Parabolic Charge
  570. Forest's Curse
  571. Petal Blizzard
  572. Freeze-Dry
  573. Disarming Voice
  574. Parting Shot
  575. Topsy-Turvy
  576. Draining Kiss
  577. Crafty Shield
  578. Flower Shield
  579. Grassy Terrain
  580. Misty Terrain
  581. Electrify
  582. Play Rough
  583. Fairy Wind
  584. Moonblast
  585. Boomburst
  586. Fairy Lock
  587. King's Shield
  588. Play Nice
  589. Confide
  590. Water Shuriken
  591. Mystical Fire
  592. Spiky Shield
  593. Aromatic Mist
  594. Eerie Impulse
  595. Venom Drench
  596. Powder
  597. Geomancy
  598. Magnetic Flux
  599. Electric Terrain
  600. Dazzling Gleam
  601. Baby-Doll Eyes
  602. Nuzzle
  603. Infestation
  604. Power-Up Punch
  605. Oblivion Wing
  606. Land's Wrath
  607. Origin Pulse
  608. Precipice Blades
  609. Dragon Ascent
  610. Hyperspace Fury
  611. Shadow Headbutt
  612. Drain
  613. Peripheral Attack
  614. Mow Down
  615. Shadow Casting
  616. Charging Start N
  617. Charging Start F
  618. Diamond Storm
  619. Hyperspace Hole
  620. WAZA_YOBI_03
  621. Attack
  622. Attack
  623. Weather Ball
  624. Weather Ball
  625. Weather Ball
  626. Weather Ball
  627. Dig
  628. Razor Wind
  629. Focus Punch
  630. Sky Attack
  631. Solar Beam
  632. Fly
  633. Dive
  634. Bounce
  635. Skull Bash
  636. Curse
  637. Snore
  638. Sleep Talk
  639. Bide
  640. Revenge
  641. Avalanche
  642. Sky Drop
  643. Future Sight
  644. Doom Desire
  645. Techno Blast
  646. Techno Blast
  647. Techno Blast
  648. Techno Blast
  649. Shadow Force
  650. Freeze Shock
  651. Ice Burn
  652. Phantom Force
  653. Geomancy
  654. Charging (Near)
  655. Charging (Floor)
  656. Dig
  657. Dig
  658. Hydro Pump
  659. Hyper Beam
  660. Aeroblast
  661. Sacred Fire
  662. Water Spout
  663. Eruption
  664. Outrage
  665. Roar of Time
  666. Spacial Rend
  667. Crush Grip
  668. Shadow Force
  669. Shadow Force
  670. Judgment
  671. Fusion Flare
  672. Fusion Bolt
  673. Bolt Strike
  674. Blue Flare
  675. Glaciate
  676. Ice Burn
  677. Ice Burn
  678. Freeze Shock
  679. Freeze Shock
  680. Geomancy
  681. Geomancy
  682. Oblivion Wing
  683. Land's Wrath
  684. Extra Big Spare 13
  685. Extra Big Spare 14
  686. Extra Big Spare 15
  687. Extra Big Spare 16
  688. Extra Big Spare 17
  689. Extra Big Spare 18
  690. Extra Big Spare 19
  691. Extra Big Spare 20
  692. Extra Big Spare 21
  693. Extra Big Spare 22
  694. Extra Big Spare 23
  695. Extra Big Spare 24
  696. Extra Big Spare 25
  697. Extra Big Spare 26
  698. Extra Big Spare 27
  699. Extra Big Spare 28
  700. Extra Big Spare 29
  701. Extra Big Spare 30
  702. Extra Big Spare 31
  703. Extra Big Spare 32
  704. Extra Big Spare 33
  705. Extra Big Spare 34

is need more them to indexed all of them (also play this game too for make sure what string is...) xD or you will see a lot weird character (or code) on it. like adventure results window screen if you finish the dungeon ...

SNAG_0015.png

The encoded pointer list must end on a 0. It will keep going until it hits one.

So, yep, that's not padding. All those 0xC are actually offsets to pointers within the SIR0 container.

http://projectpokemon.org/wiki/Pmd2_SIR0#Pointer_Offsets_List

sometimes it filled by padding on sir0 used as FAT on FARC (type:5), and sometimes is have multiple set (ex: hint_database.bin). so far i found, is have filename set, data set, configuration set, other thing is depend on structure or none.

Pointer table :

04 04 D2 1C 04 04 30 04 04 30 04 04 30 04 04 30

[A]

header structure :

48 4E 54 00 24 29 00 00 B0 00 00 00 (sometimes [magic header] offset - count [ex attribute], or [magic header] count - offset [ex attribute]

recalculated [A] must same as (offset). (how to encode that just look on wiki). bold one is an magic header. i already done with calculate pointer stuff...

EDIT: after i see on EoT/EoD/EoS, 0xAA is padding, but on 3ds sir0 is used 0x0 as padding. but is not related to pointer table. always ending with 0x0 or 0x10 ...

Edited by Andibad
Link to comment
Share on other sites

hi guys, i extracted the contents of pokemon_graphic.bin using the SIR0 reader in this thread (may wanna put that in the first post?), and got a lot of BIN files, most of which are BCH files (with some BGRS files interspersed which i believe ties the separated animation BCH files together with the models?). i wrote a little code to infer the name of the BCH files of pokemon models: http://pastebin.com/mmdZtU9k

looks like the numbers at the end indicate [form][gender difference]. starters get 0x and 1x (without/with scarf), and some has x0 and x1 for different genders (male/female) with some exceptions.

mg2L7rw.png

put the exe in the same folder as the BINs, pipe the output to some text file so that you can see what gets renamed to what. i hope this can be used somehow!

rNHpdmC.png

Examples (Archen is the first portrait in the list for some reasons..):

when looking at the file names i realized that it's because Archen is "aaken" in japanese. since GTI lacks Ekans (aabo) and Arbok (aabokku), Archen gets to be first =p

Edited by Silverhawke
Link to comment
Share on other sites

hi guys, i extracted the contents of pokemon_graphic.bin using the SIR0 reader in this thread (may wanna put that in the first post?), and got a lot of BIN files, most of which are BCH files (with some BGRS files interspersed which i believe ties the separated animation BCH files together with the models?). i wrote a little code to infer the name of the BCH files of pokemon models: http://pastebin.com/mmdZtU9k

looks like the numbers at the end indicate [form][gender difference]. starters get 0x and 1x (without/with scarf), and some has x0 and x1 for different genders (male/female) with some exceptions.

put the exe in the same folder as the BINs, pipe the output to some text file so that you can see what gets renamed to what. i hope this can be used somehow!

rNHpdmC.png

filename of model are stored on pokemon_graphics_database.bin with header container 0x4 0x4 0x4c [filename_offset][?] [file_identification] and pokemon_motion_database.bin with header 0xc 0x4 0x4 0x4 [file_identification] ? ? ?. sir0 with own magicheader, [magic_header][offset][file_count] and must read pointer table to read them.

Link to comment
Share on other sites

filename of model are stored on pokemon_graphics_database.bin with header container 0x4 0x4 0x4c [filename_offset][?] [file_identification] and pokemon_motion_database.bin with header 0xc 0x4 0x4 0x4 [file_identification] ? ? ?. sir0 with own magicheader, [magic_header][offset][file_count] and must read pointer table to read them.

I'm a bit confused. How does the offsets in these three files tie together? Is there already a tool to do this?

Link to comment
Share on other sites

So, I was able to rip my own cartridge of the game today, and I ran winmerge with the japanese rom and mine on the content, and then on the script. Here are the reports :

Its interesting that more than expected changed!

Especially the scripts.

I'm going to work on investigating the scripts and actor and placement data for now I think.

hi guys, i extracted the contents of pokemon_graphic.bin using the SIR0 reader in this thread (may wanna put that in the first post?), and got a lot of BIN files, most of which are BCH files (with some BGRS files interspersed which i believe ties the separated animation BCH files together with the models?). i wrote a little code to infer the name of the BCH files of pokemon models: http://pastebin.com/mmdZtU9k

looks like the numbers at the end indicate [form][gender difference]. starters get 0x and 1x (without/with scarf), and some has x0 and x1 for different genders (male/female) with some exceptions.

mg2L7rw.png

put the exe in the same folder as the BINs, pipe the output to some text file so that you can see what gets renamed to what. i hope this can be used somehow!

rNHpdmC.png

when looking at the file names i realized that it's because Archen is "aaken" in japanese. since GTI lacks Ekans (aabo) and Arbok (aabokku), Archen gets to be first =p

Which SIR0 reader ? There are 3 of them I think ^^;

Also, I'll only add something to the first post if the author ask me to.

And I don't think anyone seems to really know what BGRS files are for. At least it seems like that. How can you tell they're for animations ?

And that seems to make sense.

I guess that's possible its because the files were in alphabetical order xD

i was think is just an id for script for get an string or icon (type,item,etc). so is have weird unicode on it, so i advice just look it on hex on sir0 content (not converted text one, it might not correct to convert them).

example :

\x65533{0} is for call move string list with single value.

http://pastebin.com/Pp2DbNFE

  1. Pound
  2. Karate Chop
  3. Double Slap
  4. Comet Punch
  5. Mega Punch
  6. Pay Day
  7. Fire Punch
  8. Ice Punch
  9. Thunder Punch
  10. Scratch
  11. Vice Grip
  12. Guillotine
  13. Razor Wind
  14. Swords Dance
  15. Cut
  16. Gust
  17. Wing Attack
  18. Whirlwind
  19. Fly
  20. Bind
  21. Slam
  22. Vine Whip
  23. Stomp
  24. Double Kick
  25. Mega Kick
  26. Jump Kick
  27. Rolling Kick
  28. Sand Attack
  29. Headbutt
  30. Horn Attack
  31. Fury Attack
  32. Horn Drill
  33. Tackle
  34. Body Slam
  35. Wrap
  36. Take Down
  37. Thrash
  38. Double-Edge
  39. Tail Whip
  40. Poison Sting
  41. Twineedle
  42. Pin Missile
  43. Leer
  44. Bite
  45. Growl
  46. Roar
  47. Sing
  48. Supersonic
  49. Sonic Boom
  50. Disable
  51. Acid
  52. Ember
  53. Flamethrower
  54. Mist
  55. Water Gun
  56. Hydro Pump
  57. Surf
  58. Ice Beam
  59. Blizzard
  60. Psybeam
  61. Bubble Beam
  62. Aurora Beam
  63. Hyper Beam
  64. Peck
  65. Drill Peck
  66. Submission
  67. Low Kick
  68. Counter
  69. Seismic Toss
  70. Strength
  71. Absorb
  72. Mega Drain
  73. Leech Seed
  74. Growth
  75. Razor Leaf
  76. Solar Beam
  77. Poison Powder
  78. Stun Spore
  79. Sleep Powder
  80. Petal Dance
  81. String Shot
  82. Dragon Rage
  83. Fire Spin
  84. Thunder Shock
  85. Thunderbolt
  86. Thunder Wave
  87. Thunder
  88. Rock Throw
  89. Earthquake
  90. Fissure
  91. Dig
  92. Toxic
  93. Confusion
  94. Psychic
  95. Hypnosis
  96. Meditate
  97. Agility
  98. Quick Attack
  99. Rage
  100. Teleport
  101. Night Shade
  102. Mimic
  103. Screech
  104. Double Team
  105. Recover
  106. Harden
  107. Minimize
  108. Smokescreen
  109. Confuse Ray
  110. Withdraw
  111. Defense Curl
  112. Barrier
  113. Light Screen
  114. Haze
  115. Reflect
  116. Focus Energy
  117. Bide
  118. Metronome
  119. Mirror Move
  120. Self-Destruct
  121. Egg Bomb
  122. Lick
  123. Smog
  124. Sludge
  125. Bone Club
  126. Fire Blast
  127. Waterfall
  128. Clamp
  129. Swift
  130. Skull Bash
  131. Spike Cannon
  132. Constrict
  133. Amnesia
  134. Kinesis
  135. Soft-Boiled
  136. High Jump Kick
  137. Glare
  138. Dream Eater
  139. Poison Gas
  140. Barrage
  141. Leech Life
  142. Lovely Kiss
  143. Sky Attack
  144. Transform
  145. Bubble
  146. Dizzy Punch
  147. Spore
  148. Flash
  149. Psywave
  150. Splash
  151. Acid Armor
  152. Crabhammer
  153. Explosion
  154. Fury Swipes
  155. Bonemerang
  156. Rest
  157. Rock Slide
  158. Hyper Fang
  159. Sharpen
  160. Conversion
  161. Tri Attack
  162. Super Fang
  163. Slash
  164. Substitute
  165. Struggle
  166. Sketch
  167. Triple Kick
  168. Thief
  169. Spider Web
  170. Mind Reader
  171. Nightmare
  172. Flame Wheel
  173. Snore
  174. Curse
  175. Flail
  176. Conversion 2
  177. Aeroblast
  178. Cotton Spore
  179. Reversal
  180. Spite
  181. Powder Snow
  182. Protect
  183. Mach Punch
  184. Scary Face
  185. Feint Attack
  186. Sweet Kiss
  187. Belly Drum
  188. Sludge Bomb
  189. Mud-Slap
  190. Octazooka
  191. Spikes
  192. Zap Cannon
  193. Foresight
  194. Destiny Bond
  195. Perish Song
  196. Icy Wind
  197. Detect
  198. Bone Rush
  199. Lock-On
  200. Outrage
  201. Sandstorm
  202. Giga Drain
  203. Endure
  204. Charm
  205. Rollout
  206. False Swipe
  207. Swagger
  208. Milk Drink
  209. Spark
  210. Fury Cutter
  211. Steel Wing
  212. Mean Look
  213. Attract
  214. Sleep Talk
  215. Heal Bell
  216. Return
  217. Present
  218. Frustration
  219. Safeguard
  220. Pain Split
  221. Sacred Fire
  222. Magnitude
  223. Dynamic Punch
  224. Megahorn
  225. Dragon Breath
  226. Baton Pass
  227. Encore
  228. Pursuit
  229. Rapid Spin
  230. Sweet Scent
  231. Iron Tail
  232. Metal Claw
  233. Vital Throw
  234. Morning Sun
  235. Synthesis
  236. Moonlight
  237. Hidden Power
  238. Cross Chop
  239. Twister
  240. Rain Dance
  241. Sunny Day
  242. Crunch
  243. Mirror Coat
  244. Psych Up
  245. Extreme Speed
  246. Ancient Power
  247. Shadow Ball
  248. Future Sight
  249. Rock Smash
  250. Whirlpool
  251. Beat Up
  252. Fake Out
  253. Uproar
  254. Stockpile
  255. Spit Up
  256. Swallow
  257. Heat Wave
  258. Hail
  259. Torment
  260. Flatter
  261. Will-O-Wisp
  262. Memento
  263. Facade
  264. Focus Punch
  265. Smelling Salts
  266. Follow Me
  267. Nature Power
  268. Charge
  269. Taunt
  270. Helping Hand
  271. Trick
  272. Role Play
  273. Wish
  274. Assist
  275. Ingrain
  276. Superpower
  277. Magic Coat
  278. Recycle
  279. Revenge
  280. Brick Break
  281. Yawn
  282. Knock Off
  283. Endeavor
  284. Eruption
  285. Skill Swap
  286. Imprison
  287. Refresh
  288. Grudge
  289. Snatch
  290. Secret Power
  291. Dive
  292. Arm Thrust
  293. Camouflage
  294. Tail Glow
  295. Luster Purge
  296. Mist Ball
  297. Feather Dance
  298. Teeter Dance
  299. Blaze Kick
  300. Mud Sport
  301. Ice Ball
  302. Needle Arm
  303. Slack Off
  304. Hyper Voice
  305. Poison Fang
  306. Crush Claw
  307. Blast Burn
  308. Hydro Cannon
  309. Meteor Mash
  310. Astonish
  311. Weather Ball
  312. Aromatherapy
  313. Fake Tears
  314. Air Cutter
  315. Overheat
  316. Odor Sleuth
  317. Rock Tomb
  318. Silver Wind
  319. Metal Sound
  320. Grass Whistle
  321. Tickle
  322. Cosmic Power
  323. Water Spout
  324. Signal Beam
  325. Shadow Punch
  326. Extrasensory
  327. Sky Uppercut
  328. Sand Tomb
  329. Sheer Cold
  330. Muddy Water
  331. Bullet Seed
  332. Aerial Ace
  333. Icicle Spear
  334. Iron Defense
  335. Block
  336. Howl
  337. Dragon Claw
  338. Frenzy Plant
  339. Bulk Up
  340. Bounce
  341. Mud Shot
  342. Poison Tail
  343. Covet
  344. Volt Tackle
  345. Magical Leaf
  346. Water Sport
  347. Calm Mind
  348. Leaf Blade
  349. Dragon Dance
  350. Rock Blast
  351. Shock Wave
  352. Water Pulse
  353. Doom Desire
  354. Psycho Boost
  355. Roost
  356. Gravity
  357. Miracle Eye
  358. Wake-Up Slap
  359. Hammer Arm
  360. Gyro Ball
  361. Healing Wish
  362. Brine
  363. Natural Gift
  364. Feint
  365. Pluck
  366. Tailwind
  367. Acupressure
  368. Metal Burst
  369. U-turn
  370. Close Combat
  371. Payback
  372. Assurance
  373. Embargo
  374. Fling
  375. Psycho Shift
  376. Trump Card
  377. Heal Block
  378. Wring Out
  379. Power Trick
  380. Gastro Acid
  381. Lucky Chant
  382. Me First
  383. Copycat
  384. Power Swap
  385. Guard Swap
  386. Punishment
  387. Last Resort
  388. Worry Seed
  389. Sucker Punch
  390. Toxic Spikes
  391. Heart Swap
  392. Aqua Ring
  393. Magnet Rise
  394. Flare Blitz
  395. Force Palm
  396. Aura Sphere
  397. Rock Polish
  398. Poison Jab
  399. Dark Pulse
  400. Night Slash
  401. Aqua Tail
  402. Seed Bomb
  403. Air Slash
  404. X-Scissor
  405. Bug Buzz
  406. Dragon Pulse
  407. Dragon Rush
  408. Power Gem
  409. Drain Punch
  410. Vacuum Wave
  411. Focus Blast
  412. Energy Ball
  413. Brave Bird
  414. Earth Power
  415. Switcheroo
  416. Giga Impact
  417. Nasty Plot
  418. Bullet Punch
  419. Avalanche
  420. Ice Shard
  421. Shadow Claw
  422. Thunder Fang
  423. Ice Fang
  424. Fire Fang
  425. Shadow Sneak
  426. Mud Bomb
  427. Psycho Cut
  428. Zen Headbutt
  429. Mirror Shot
  430. Flash Cannon
  431. Rock Climb
  432. Defog
  433. Trick Room
  434. Draco Meteor
  435. Discharge
  436. Lava Plume
  437. Leaf Storm
  438. Power Whip
  439. Rock Wrecker
  440. Cross Poison
  441. Gunk Shot
  442. Iron Head
  443. Magnet Bomb
  444. Stone Edge
  445. Captivate
  446. Stealth Rock
  447. Grass Knot
  448. Chatter
  449. Judgment
  450. Bug Bite
  451. Charge Beam
  452. Wood Hammer
  453. Aqua Jet
  454. Attack Order
  455. Defend Order
  456. Heal Order
  457. Head Smash
  458. Double Hit
  459. Roar of Time
  460. Spacial Rend
  461. Lunar Dance
  462. Crush Grip
  463. Magma Storm
  464. Dark Void
  465. Seed Flare
  466. Ominous Wind
  467. Shadow Force
  468. Hone Claws
  469. Wide Guard
  470. Guard Split
  471. Power Split
  472. Wonder Room
  473. Psyshock
  474. Venoshock
  475. Autotomize
  476. Rage Powder
  477. Telekinesis
  478. Magic Room
  479. Smack Down
  480. Storm Throw
  481. Flame Burst
  482. Sludge Wave
  483. Quiver Dance
  484. Heavy Slam
  485. Synchronoise
  486. Electro Ball
  487. Soak
  488. Flame Charge
  489. Coil
  490. Low Sweep
  491. Acid Spray
  492. Foul Play
  493. Simple Beam
  494. Entrainment
  495. After You
  496. Round
  497. Echoed Voice
  498. Chip Away
  499. Clear Smog
  500. Stored Power
  501. Quick Guard
  502. Ally Switch
  503. Scald
  504. Shell Smash
  505. Heal Pulse
  506. Hex
  507. Sky Drop
  508. Shift Gear
  509. Circle Throw
  510. Incinerate
  511. Quash
  512. Acrobatics
  513. Reflect Type
  514. Retaliate
  515. Final Gambit
  516. Bestow
  517. Inferno
  518. Water Pledge
  519. Fire Pledge
  520. Grass Pledge
  521. Volt Switch
  522. Struggle Bug
  523. Bulldoze
  524. Frost Breath
  525. Dragon Tail
  526. Work Up
  527. Electroweb
  528. Wild Charge
  529. Drill Run
  530. Dual Chop
  531. Heart Stamp
  532. Horn Leech
  533. Sacred Sword
  534. Razor Shell
  535. Heat Crash
  536. Leaf Tornado
  537. Steamroller
  538. Cotton Guard
  539. Night Daze
  540. Psystrike
  541. Tail Slap
  542. Hurricane
  543. Head Charge
  544. Gear Grind
  545. Searing Shot
  546. Techno Blast
  547. Relic Song
  548. Secret Sword
  549. Glaciate
  550. Bolt Strike
  551. Blue Flare
  552. Fiery Dance
  553. Freeze Shock
  554. Ice Burn
  555. Snarl
  556. Icicle Crash
  557. Fusion Flare
  558. Fusion Bolt
  559. Flying Press
  560. Mat Block
  561. Belch
  562. Rototiller
  563. Sticky Web
  564. Fell Stinger
  565. Phantom Force
  566. Trick-or-Treat
  567. Noble Roar
  568. Ion Deluge
  569. Parabolic Charge
  570. Forest's Curse
  571. Petal Blizzard
  572. Freeze-Dry
  573. Disarming Voice
  574. Parting Shot
  575. Topsy-Turvy
  576. Draining Kiss
  577. Crafty Shield
  578. Flower Shield
  579. Grassy Terrain
  580. Misty Terrain
  581. Electrify
  582. Play Rough
  583. Fairy Wind
  584. Moonblast
  585. Boomburst
  586. Fairy Lock
  587. King's Shield
  588. Play Nice
  589. Confide
  590. Water Shuriken
  591. Mystical Fire
  592. Spiky Shield
  593. Aromatic Mist
  594. Eerie Impulse
  595. Venom Drench
  596. Powder
  597. Geomancy
  598. Magnetic Flux
  599. Electric Terrain
  600. Dazzling Gleam
  601. Baby-Doll Eyes
  602. Nuzzle
  603. Infestation
  604. Power-Up Punch
  605. Oblivion Wing
  606. Land's Wrath
  607. Origin Pulse
  608. Precipice Blades
  609. Dragon Ascent
  610. Hyperspace Fury
  611. Shadow Headbutt
  612. Drain
  613. Peripheral Attack
  614. Mow Down
  615. Shadow Casting
  616. Charging Start N
  617. Charging Start F
  618. Diamond Storm
  619. Hyperspace Hole
  620. WAZA_YOBI_03
  621. Attack
  622. Attack
  623. Weather Ball
  624. Weather Ball
  625. Weather Ball
  626. Weather Ball
  627. Dig
  628. Razor Wind
  629. Focus Punch
  630. Sky Attack
  631. Solar Beam
  632. Fly
  633. Dive
  634. Bounce
  635. Skull Bash
  636. Curse
  637. Snore
  638. Sleep Talk
  639. Bide
  640. Revenge
  641. Avalanche
  642. Sky Drop
  643. Future Sight
  644. Doom Desire
  645. Techno Blast
  646. Techno Blast
  647. Techno Blast
  648. Techno Blast
  649. Shadow Force
  650. Freeze Shock
  651. Ice Burn
  652. Phantom Force
  653. Geomancy
  654. Charging (Near)
  655. Charging (Floor)
  656. Dig
  657. Dig
  658. Hydro Pump
  659. Hyper Beam
  660. Aeroblast
  661. Sacred Fire
  662. Water Spout
  663. Eruption
  664. Outrage
  665. Roar of Time
  666. Spacial Rend
  667. Crush Grip
  668. Shadow Force
  669. Shadow Force
  670. Judgment
  671. Fusion Flare
  672. Fusion Bolt
  673. Bolt Strike
  674. Blue Flare
  675. Glaciate
  676. Ice Burn
  677. Ice Burn
  678. Freeze Shock
  679. Freeze Shock
  680. Geomancy
  681. Geomancy
  682. Oblivion Wing
  683. Land's Wrath
  684. Extra Big Spare 13
  685. Extra Big Spare 14
  686. Extra Big Spare 15
  687. Extra Big Spare 16
  688. Extra Big Spare 17
  689. Extra Big Spare 18
  690. Extra Big Spare 19
  691. Extra Big Spare 20
  692. Extra Big Spare 21
  693. Extra Big Spare 22
  694. Extra Big Spare 23
  695. Extra Big Spare 24
  696. Extra Big Spare 25
  697. Extra Big Spare 26
  698. Extra Big Spare 27
  699. Extra Big Spare 28
  700. Extra Big Spare 29
  701. Extra Big Spare 30
  702. Extra Big Spare 31
  703. Extra Big Spare 32
  704. Extra Big Spare 33
  705. Extra Big Spare 34

is need more them to indexed all of them (also play this game too for make sure what string is...) xD or you will see a lot weird character (or code) on it. like adventure results window screen if you finish the dungeon ...

SNAG_0015.png

I'm not really sure what you're trying to say here :/ And the image is too small to see anything.

EDIT: after i see on EoT/EoD/EoS, 0xAA is padding, but on 3ds sir0 is used 0x0 as padding. but is not related to pointer table. always ending with 0x0 or 0x10 ...

Yeah, the padding bytes change from game to game. But I'm not sure what that has to do with this? :/

Link to comment
Share on other sites

Its interesting that more than expected changed!

Especially the scripts.

I'd imagine that the parts of the scripts that changed are references to text items, the IDs of which are most likely generated when the scripts are compiled.

I think that because the placement data looks like it's the same, and there's only so much the scripts can do alone.

Link to comment
Share on other sites

Which SIR0 reader ? There are 3 of them I think ^^;

Also, I'll only add something to the first post if the author ask me to.

And I don't think anyone seems to really know what BGRS files are for. At least it seems like that. How can you tell they're for animations ?

And that seems to make sense.

I guess that's possible its because the files were in alphabetical order xD

ah, I have one which I think was provided by Andibad, i better look through the thread again.

that is only a guess though, since the BGRS files has plaintext in them that seems to refer to name of animations each model has. it also has the names of vertex points in the model (you can see this if you open the BCH file using Ohana3DS, exporting as SMD and opening it up in Blender)

Qo474hD.png

then again my filenames are guesses :P

for Andibad's adventure result screen, here's one result screen to help with understanding what the markers mean. a lot of those are formatting markers, apparently.

WVW69ipK2goVKa4IlO

just a quick look at the text files outputted by the SIR0 reader (in UTF-8 encoding) and i noticed that it uses 0x0A for new line within the dialogue box, 0xED 0x84 0x80 0x20 (aka 턀) for player's name, \x60160 for a pause mid-dialogue (y'know where you gotta press A and the text goes on again on the same dialogue), and 0xEC 0x88 0x80 (aka 숀) for centering formatting.

sorry if this is already known before ><

EDIT: updated program to rename files in pokemon_graphic.bin since i dunno how the database bin and the actual data ties together. now it renames all files! https://dl.dropboxusercontent.com/u/40407085/Stuff/binbchren_2.zip

Edited by Silverhawke
Link to comment
Share on other sites

I'd imagine that the parts of the scripts that changed are references to text items, the IDs of which are most likely generated when the scripts are compiled.

I think that because the placement data looks like it's the same, and there's only so much the scripts can do alone.

Well, it seems only a part of the decompiled scripts differs. And it would kinda defeat the purpose of using IDs if you'd need to change them with a different language. That's why I changed my mind on them being hashes a while ago.

After looking at the changed scripts, its just some things like using a localized sprite instead of another, and function name changes. All the strings IDs stayed the same.

Also, I'm making some progress messing with the game's internals. I got this messing with actors data :

[ATTACH=CONFIG]12796[/ATTACH]

( I'm so predictable xD )

It seems changing starters isn't as easy as it was in GTI though. But I got a good lead. Its just really annoying to have to rebuild the entire rom and copy it each times you change 3 tiny files.. Hopefully hans gets updated one day to work like game patches..

@Silverhawke:

Those animation names seems to match those in the scripts.

And those special utf characters are interesting. In previous games, the codes for doing that were between square brackets. Its strange to see they've changed their approach xD

And yet they're still using SIR0, ever since Red Rescue Team.. xD

Link to comment
Share on other sites

And those special utf characters are interesting. In previous games, the codes for doing that were between square brackets. Its strange to see they've changed their approach xD

And yet they're still using SIR0, ever since Red Rescue Team.. xD

unique code id is have 1 byte long, other byte is used as attribute. like Font Color started 0xC101 - 0xC10E, 0xC10F as close tag. text alignment like center (C200) per line (until 0x10 code inserted), icon replacement id (A1xx), linked page (CA00), menus, paragraph, and etc. some code is need more attribute on it like call an value like pokemon id, etc. and also in SMD still used square brackets code lol

Link to comment
Share on other sites

could you please show a tutorial of how you changed your starter?

Well, its not ready yet. That image looks good, but, the game is stuck in an infinite loop past that point.. xD

The personality test keeps popping back, which is the game's way of crashing. It did something similar in GTI.

I just have to find out what's going on.. It might have something to do with reloading the models, or maybe something else entirely..

unique code id is have 1 byte long, other byte is used as attribute. like Font Color started 0xC101 - 0xC10E, 0xC10F as close tag. text alignment like center (C200) per line (until 0x10 code inserted), icon replacement id (A1xx), linked page (CA00), menus, paragraph, and etc. some code is need more attribute on it like call an value like pokemon id, etc. and also in SMD still used square brackets code lol

Good to know ! xD

And sorry for not understanding what you meant earlier ^^;

Link to comment
Share on other sites

Well, its not ready yet. That image looks good, but, the game is stuck in an infinite loop past that point.. xD

The personality test keeps popping back, which is the game's way of crashing. It did something similar in GTI.

I just have to find out what's going on.. It might have something to do with reloading the models, or maybe something else entirely..

Good to know ! xD

And sorry for not understanding what you meant earlier ^^;

Thank you for responding, I really appreciate it. But would it be possible to change your species once your already in the game? Like changing some bits of code in the save file?

Link to comment
Share on other sites

I was able to find the correct fork of ctrtool to decompress the exefs's code.bin in PSMD !

And I ran strings on it.

And its like christmas morning! :P

https://dl.dropboxusercontent.com/u/13343993/my_pmd_research_files/PSMD/PSMD_codebin_strings.txt

So much info in there ! Its like they left debug symbols ! I can see they're using the boost c++ libs, and also that jenkins is a very sloppy employe xD

I wonder how I can get radare2 to properly use those.. Any arm binary experts around here ?

There's also a lot of lua code inside strings literals xD

Thank you for responding, I really appreciate it. But would it be possible to change your species once your already in the game? Like changing some bits of code in the save file?

Possibly with a mod. But for save game stuff, you'll have to ask evandixon.

EDIT: Turns out, jenkins might just be an automated build server software :

https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Edited by psy_commando
Link to comment
Share on other sites

I managed to change the starter correctly this time ! :D

[ATTACH=CONFIG]12797[/ATTACH]

[ATTACH=CONFIG]12798[/ATTACH]

[ATTACH=CONFIG]12799[/ATTACH]

[ATTACH=CONFIG]12800[/ATTACH]

The move set is all wrong though.. And I'm not sure where the game gets the movesets it give each pokes..

[ATTACH=CONFIG]12802[/ATTACH]

And because of the really stupid way they're handling cutscenes, we may need a new cutscene actor for each new starters. Or maybe we can just re-use the same actor for any new starters.. We'll see..

EDIT:

Spotted some more weirdness:

[ATTACH=CONFIG]12803[/ATTACH]

The ability was also set to something else than it should be.

It seems like the level-up move list is working as expected though.

Edited by psy_commando
Link to comment
Share on other sites

If no one minds my asking, would all of this editing happen to involve some sort of browser exploit? Or would some kind of tool be released to decrypt and modify the save file from an SD Card or PowerSaves file, assuming all of this goes that far.

This is research about editing the ROM, so no save editing for now. Once we've solidified things some more, you'll need a Gateway, CFW, or Homebrew (with Hans) to edit the ROM. If you have access to the browser exploit, you can install cfw and homebrew.

Link to comment
Share on other sites

This is research about editing the ROM, so no save editing for now. Once we've solidified things some more, you'll need a Gateway, CFW, or Homebrew (with Hans) to edit the ROM. If you have access to the browser exploit, you can install cfw and homebrew.

You can also get ocarina of time 3d and powersave, and install oot3d hax by simply uploading a hacked save game directly into the oot3d cart using powersave. It worked flawlessly for me, with no dumb browser hax.

Link to comment
Share on other sites

You can also get ocarina of time 3d and powersave, and install oot3d hax by simply uploading a hacked save game directly into the oot3d cart using powersave. It worked flawlessly for me, with no dumb browser hax.

Yes, I have access to OOT3dHAX. I suppose the only thing I can do now is wait, yes? And thanks for answering.

Link to comment
Share on other sites

maybe this tool useful for someone for unpacking file from farc file, is still same as my first tool i share on here but with GUI. i will added source code on github later.

https://dl.dropboxusercontent.com/u/3122097/unFARC_build_2.7z for temporary build for testing.

for now can extract as RAW, Message Text (debug, non debug, and with code [you can add some definition on msg_code.json file, i will added it later]), potrait picture on SMD

i just wondering pokemon portrait is have a text on it O.o

961.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...