• Content count

  • Joined

  • Last visited

Community Reputation

11 Good

About Andibad

  • Rank
    Silent Siren Farm
  • Birthday 02/06/93
  1. you can see this old source code for cte image format (*.img) or use my unFARC tool for extracting cte image from FARC file. For additional information for pixel format supported by cte file format (*.img) : bclim/bflim/cte tool already supported all of discovered pixel format used by SMD 3DS game, but some of them are not supported by my unFARC tool. so far i know unFARC tool can convert most img file on Gate of infinity or Super.
  2. yeah, but is little bit slow to access some pages.
  3. so far is not posted in here , today got much free time and poking around PMDS Font. is using pretty simple format where img file is cte format (LA4 as texture format), and dic file as pointing font image on font sheet image just like bitmap font. here for dic format on PMDS font : Header MagicHeader - 4 byte - KAND 0x4B414E44 u1 - 4 byte - always 0x0 CharacterCount - 4 byte - u2 - 4 byte - always 0x0 Character Data (20 byte) Character Code (Unicode) - 2 byte Position X - 2 byte Position Y - 2 byte Line Feed Width - 2 byte Line Feed Height (?) - 2 byte Right Space Width - 2 byte Right Space Height (?) - 2 byte Glyph Width - 2 byte Glyph Heigth - 2 byte ? - 2 byte
  4. download button is on green button not red one, you should install ad blocker. you still can't see what different ads download trap button with true download button? lol.
  5. on my github account ... is still not complete yet, since no emulator for 3ds on PC (on playable state ...), i just lazy copy paste huge size of file to memory card.
  6. you can see my post on this page, i already update with my current note ...(is almost done on most view-able data). right now i still looking for break wall flag and primary effect on it >.>
  7. Move data (on SMD) stored on waza_data_info.bin (act index information) and act_data_info.bin (move information). You can see move list on SMD here (include unused, named xl move, unnamed combination move and unnamed xl moves). waza_data_info.bin Containing index for move data (act_data_info.bin) and effect (act_effect_data_info.bin), 18 byte/entry. [TABLE=class: grid, width: 600] [TR] [TD=align: center]offset (0x) [/TD] [TD=align: center]size (byte)[/TD] [TD=align: center]comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x0[/TD] [TD]2[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x2[/TD] [TD]2[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x4[/TD] [TD]2[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x6[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x7[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x8[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0x9[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0xA[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0xB[/TD] [TD]1[/TD] [TD]constant 0x0*[/TD] [TD][/TD] [/TR] [TR] [TD]0xC[/TD] [TD]2[/TD] [TD]act_data_info index (uint)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0xE[/TD] [TD]1[/TD] [TD]?[/TD] [TD][/TD] [/TR] [TR] [TD]0xF[/TD] [TD]1[/TD] [TD]?[/TD] [TD][/TD] [/TR] [TR] [TD]0x10[/TD] [TD]1[/TD] [TD]constant 0x1[/TD] [TD][/TD] [/TR] [TR] [TD]0x11[/TD] [TD]1[/TD] [TD]constant 0x64[/TD] [TD][/TD] [/TR] [/TABLE] * only on Dragon Rage not 0x0 act_data_info.bin Containing move data. 160 byte/entry Section (start from 0x0 until 0x0f) *unknown Primary Effect Moves (start from 0x10 until 0x27) 0x10 ~ 0x23 - ??? 0x24 - 2 byte - (num)(uint) Type effectiveness (even is immune 0x or not effective 0.5/0.25x to make them damage 1x) 0x26 - 2 byte - (0x00) unused Secondary Effect Moves (start from 0x28 until 0x57) [TABLE=class: grid, width: 600] [TR] [TD=align: center]Offset (0x0) [/TD] [TD=align: center]Size (Byte) [/TD] [TD=align: center]Comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x28[/TD] [TD]2[/TD] [TD]Effect Rate Value (0 - no effect, 1~100)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x2A[/TD] [TD]2[/TD] [TD]HP/Belly Change's Value[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x2C[/TD] [TD]2[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x2E[/TD] [TD]2[/TD] [TD]Trap Flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x30[/TD] [TD]2[/TD] [TD]Status Change's (sleep, confused, poisoned, etc)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x32[/TD] [TD]2[/TD] [TD]Stat Change's (index)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x34[/TD] [TD]2[/TD] [TD]Type Change's (0 - no effect, 1 - normal, 19 - NoType)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x36[/TD] [TD]2[/TD] [TD]Terrain Change's[/TD] [TD]uint[/TD] [/TR] [/TABLE] *it will repeated until 0x57 (3 Effect) Status List : 0 None 1 nightmare 2 sleepless 3 sleep 4 yawning 5 napping 6 7 burn 8 poisoned 9 badly poisoned 10 paralysis 11 frozen 12 stuck 13 Ingrain 14 petrified 15 bound 16 Fire Spin 17 Sand Tomb 18 Clamp 19 Whirlpool 20 Magma Storm 21 Infestation 22 flinch 23 truant 24 confused 25 recoil 26 lethargic 27 infatuated 28 taunted 29 encore 30 discord 31 Bide 32 Solar Beam 33 Focus Punch 34 flying 35 bouncing 36 digging 37 Future Sight 38 Sky Drop 39 Suspended 40 charging 41 enraged 42 Round 43 Razor Wind 44 Sky Attack 45 Skull Bash 46 Doom Desire 47 Dive 48 Shadow Force 49 Phantom Force 50 Ice Burn 51 Freeze Shock 52 Geomancy 53 Reflect 54 Safeguard 55 Light Screen 56 Counter 57 protect 58 Quick Guard 59 Wide Guard 60 Mat Block 61 Crafty Shield 62 King's Shield 63 Spiky Shield 64 Mirror Coat 65 enduring 66 mist 67 healthy 68 Aqua Ring 69 Lucky Chant 70 Metal Burst 71 Magic Coat 72 Snatch 73 cursed 74 substitute 75 decoy 76 Gastro Acid 77 Heal Block 78 embargo 79 Leech Seed 80 Destiny Bond 81 Sure Shot 82 Focus Energy 83 encouraged 84 pierce 85 blinker 86 Eyedrops 87 mobile 88 trained 89 stockpiling 90 radar 91 scanning 92 grudge 93 exposed 94 Miracle Eye 95 terrified 96 grounded 97 Magnet Rise 98 telekinesis 99 autotomize 100 sealed 101 Perish Song 102 wish 103 transform 104 electrify 105 powder 106 puppet 107 awakened 108 berserk 109 110 self-destruct 111 explosion 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 fainted 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 rainbow 161 swamp 162 sea of fire Terrain List : 0 None 1 Clear 2 Sunny 3 Rain 4 Hail 5 Sandstorm 6 Mud Sport 7 Water Sport 8 Defused 9 Thief Alert 10 Trick Room 11 Magic Room 12 Monster House 13 Shop 14 Nullified 15 Luminous 16 17 heavy rain 18 harsh sunlight 19 strong winds 20 ineffective weather 21 gravity 22 Wonder Room 23 Ion Deluge 24 Grassy Terrain 25 Misty Terrain 26 Electric Terrain 27 Happy Hour 28 apathetic 29 Enemy Discord 30 disabled Accurate Section (start from 0x57 until 0x5b) [TABLE=class: grid, width: 600] [TR] [TD=align: center]Offset (0x0) [/TD] [TD=align: center]Size (Byte) [/TD] [TD=align: center]Comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x58[/TD] [TD]1[/TD] [TD]Base Accurate Value (0~100, 101 : sure shoot)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x5A[/TD] [TD]1[/TD] [TD]Maximum Accurate Value (0~100, 101 : sure shoot)[/TD] [TD]uint[/TD] [/TR] [/TABLE] Section (start from 0x5c until 0x7b) *is seems related to accurate related like critical, etc, is have 4 group Move Damage, PP, Range, Counter Section (start from 0x7c until 0x93) [TABLE=class: grid, width: 600] [TR] [TD=align: center]Offset (0x0) [/TD] [TD=align: center]Size (Byte) [/TD] [TD=align: center]Comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x7C[/TD] [TD]1[/TD] [TD]Size Type Move (size of pokemon or move combination)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x7D[/TD] [TD]1[/TD] [TD]Type Move (1 - normal, 19 - NoType)[/TD] [TD]uint [/TD] [/TR] [TR] [TD]0x7E[/TD] [TD]1[/TD] [TD]Attribute[/TD] [TD]uint [/TD] [/TR] [TR] [TD]0x7F[/TD] [TD]1[/TD] [TD]Damage / ATK Base Value[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x80[/TD] [TD]1[/TD] [TD]? Damage Max [/TD] [TD][/TD] [/TR] [TR] [TD]0x81[/TD] [TD]1[/TD] [TD]PP Base Value [/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x82[/TD] [TD]1[/TD] [TD]? PP Max [/TD] [TD][/TD] [/TR] [TR] [TD]0x83[/TD] [TD]1[/TD] [TD]Constant 0xFF[/TD] [TD][/TD] [/TR] [TR] [TD]0x84[/TD] [TD]1[/TD] [TD]Cut Corner Flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x85[/TD] [TD]1[/TD] [TD]more time to attack Flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x86[/TD] [TD]1[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x87[/TD] [TD]1[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x88[/TD] [TD]1[/TD] [TD]Tiles Count[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x89[/TD] [TD]1[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x8A[/TD] [TD]1[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x8B[/TD] [TD]1[/TD] [TD][/TD] [TD][/TD] [/TR] [TR] [TD]0x8C[/TD] [TD]1[/TD] [TD]Range[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x8D[/TD] [TD]1[/TD] [TD]Target[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x8E[/TD] [TD]1[/TD] [TD]Piercing ATK flag[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x8F[/TD] [TD]1[/TD] [TD]Sleep ATK flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x90[/TD] [TD]1[/TD] [TD]Faint ATK flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x91[/TD] [TD]1[/TD] [TD]Constant 0x1[/TD] [TD][/TD] [/TR] [TR] [TD]0x92[/TD] [TD]1[/TD] [TD]Nearby damage flag[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x93[/TD] [TD]1[/TD] [TD]Hit Counter Index (act_hit_count_table_data_info.bin)[/TD] [TD]uint[/TD] [/TR] [/TABLE] Section (start from 0x94 until 0x9f) *unknown act_xlwaza.bin Containing id for xl moves. for move data, see on act_data_info.bin. 8 byte/entry. [TABLE=class: grid, width: 600] [TR] [TD=align: center]Offset (0x0) [/TD] [TD=align: center]Size (Byte) [/TD] [TD=align: center]Comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x0[/TD] [TD]2[/TD] [TD]Move Action Index[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x2[/TD] [TD]2[/TD] [TD]Move Action Index Taget[/TD] [TD]uint[/TD] [/TR] [/TABLE] act_hit_count_table_data_info.bin Data for hit counter for act_data_info.bin (0x93). 16 byte/entry. [TABLE=class: grid, width: 600] [TR] [TD=align: center]Offset (0x0) [/TD] [TD=align: center]Size (Byte) [/TD] [TD=align: center]Comment [/TD] [TD=align: center][/TD] [/TR] [TR] [TD]0x0[/TD] [TD]1[/TD] [TD]Repeat until move miss to target (bool, 1 for true, 0 for false)[/TD] [TD]bool[/TD] [/TR] [TR] [TD]0x1[/TD] [TD]1[/TD] [TD]hit count minimum (min 2)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x2[/TD] [TD]1[/TD] [TD]hit count maximum (max 5, min 2, if same it will count as 1 hit)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x3[/TD] [TD]1[/TD] [TD]constant 0x0[/TD] [TD][/TD] [/TR] [TR] [TD]0x4[/TD] [TD]2[/TD] [TD]2 hit chance rate (min 0, max 100)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x6[/TD] [TD]2[/TD] [TD]3 hit chance rate (min 0, max 100)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0x8[/TD] [TD]2[/TD] [TD]4 hit chance rate (min 0, max 100)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0xA[/TD] [TD]2[/TD] [TD]5 hit chance rate (min 0, max 100)[/TD] [TD]uint[/TD] [/TR] [TR] [TD]0xC[/TD] [TD]4[/TD] [TD]constant 0x0[/TD] [TD][/TD] [/TR] [/TABLE] act_param_data_info.bin only have 1 byte/entry, i think is store single value. maybe used on act_data_info.bin act_effect_data_info.bin have 68 byte/entry. i was thing is related to animation.
  8. i was think is an unique id (on integer value or on hexadecimal value). look this hoopa dialog on dungeon script : function Dungeon_OnTalkedFuupa(tokihanatareta) ... if DUNGEON_MENU:IsFuupaLegendSummoned() then WINDOW:Talk_Fuupa(1157317309) else WINDOW:Talk_Fuupa(1576943368) WINDOW:SelectChain(1227155743, 2) WINDOW:SelectChain(-2106081020, 0) WINDOW:DefaultCursor(1) ret = WINDOW:SelectEndTalk(MENU_SELECT_MODE.ENABLE_CANCEL) ... end end see on WINDOW:Talk_Fuupa(1157317309), 1157317309 is refer to message unique id (u1). and i got this message :
  9. i just wondering how to get face graphic offset on the game, so far on lua script folder is only defined pokemon id like this one : function Dungeon_OnTalkedFuupa(tokihanatareta) if tokihanatareta == 0 then WINDOW:DrawFaceFromPokemonIndex(20, 88, 926, false, FACE_TYPE.NORMAL) else WINDOW:DrawFaceFromPokemonIndex(20, 88, 927, false, FACE_TYPE.NORMAL) end or call actor function ... to get pokemon id. hoppa id in there is 926 (pokemon id list). and also is have 16 (+16 special expression, not all pokemon have this) kind of expression face ... here for list of them : NORMAL HAPPY PAIN ANGRY THINK SAD WEEP SHOUT TEARS DECIDE GLADNESS EMOTION SURPRISE FAINT RELEIF CATCHBREATH SPECIAL01~16 special expression is have number on it like this one : on FARC type 0x5, when not mark as has filename, filenameoffset field used as unique id? <.<, and also on sir0 message (on smd, not debug), unknown value is used as unique id? >.> since on lua script file is have negative id for calling an dialog text ... EDIT: I was think SMD use zlib compression on gyu files and save files, i will check it later.
  10. i made mistake on parsing sir0 message on my tools , my bad. here for fix one. this build also can extract cte image with support most pixel format, little bit tweak on extension renaming and add some example message code on msg_code.json. and i notice GYU0 file is an compressed format, need poking exefs maybe i get something >.> EDIT : uploaded project on github done :
  11. 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. 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
  12. 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
  13. 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.
  14. 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. is need more them to indexed all of them (also play this game too for make sure what string is...) or you will see a lot weird character (or code) on it. like adventure results window screen if you finish the dungeon ... 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 ...
  15. 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).