|
| 1 | +# DW1ModelConverter |
| 2 | + |
| 3 | +A tool that converts Digimon models from the game "Digimon World 1" into gltf files, complete with texture and animation. |
| 4 | + |
| 5 | +This is a specialist tool and users are expected to have at least an idea of what they're doing. It is not supposed to be user friendly but to get the job done. |
| 6 | + |
| 7 | +# Usage |
| 8 | + |
| 9 | +Run the tool in a command line like this: |
| 10 | + |
| 11 | +``` |
| 12 | +DW1ModelConverter <pathToGameFiles> |
| 13 | +``` |
| 14 | + |
| 15 | +The path must point to a folder containing the contents of the ISO. This can be obtained in a number of ways, for example: |
| 16 | + |
| 17 | +* put the original CD in a CD drive and either pass the path to the drive, or copy the contents into a folder of your choice |
| 18 | + * for CD images, like ISO, you can mount them to a virtual CD drive and do the same |
| 19 | +* extract the ISO using tools like [dumpsxiso](https://github.com/Lameguy64/mkpsxiso/releases) |
| 20 | + |
| 21 | +Any PSX release of the game *should* be supported, but so far only US, JP (Version 1.1) and JP (BonBon) have been tested. |
| 22 | + |
| 23 | +The tool will extract all Digimon models into an `output` folder created in the current working directory. |
| 24 | + |
| 25 | +## Output Caveats |
| 26 | +Not every property of the original TMD files could be translated properly into gltf. As much as possible of that information has been placed into the "extras" fields. |
| 27 | + |
| 28 | +This includes: |
| 29 | +- animation endless loop start time |
| 30 | +- animation sound effects |
| 31 | +- texture animations (e.g. blinking) |
| 32 | +- TMD translucency blend modes |
| 33 | + |
| 34 | +Animations aren't named yet, that may change in future versions. |
| 35 | + |
| 36 | +### Name Mapping |
| 37 | +The created files will use the internal file names of the game. To find the Digimon you want, use the following mapping: |
| 38 | + |
| 39 | +Duplicates marked with (NPC) are typically versions of a model with fewer animations, intended to save on memory. |
| 40 | + |
| 41 | +``` |
| 42 | +BOYS -> Player Character |
| 43 | +BOTA -> Botamon |
| 44 | +KORO -> Koromon |
| 45 | +AGUM -> Agumon |
| 46 | +BETA -> Betamon |
| 47 | +GREY -> Greymon |
| 48 | +DEVI -> Devimon |
| 49 | +AIRD -> Airdramon |
| 50 | +TYRA -> Tyrannomon |
| 51 | +MERA -> Meramon |
| 52 | +SEAD -> Seadramon |
| 53 | +NUME -> Numemon |
| 54 | +MTGR -> MetalGreymon |
| 55 | +MAME -> Mamemon |
| 56 | +MONZ -> Monzaemon |
| 57 | +PUNI -> Punimon |
| 58 | +TUNO -> Tsunomon |
| 59 | +GABU -> Gabumon |
| 60 | +ELEC -> Elecmon |
| 61 | +KABU -> Kabuterimon |
| 62 | +ANGE -> Angemon |
| 63 | +BIRD -> Bidramon |
| 64 | +GARU -> Garurumon |
| 65 | +YUKI -> Frigimon |
| 66 | +HOEE -> Whamon |
| 67 | +VEGI -> Vegiemon |
| 68 | +SKUL -> SkullGreymon |
| 69 | +MTMA -> MetalMamemon |
| 70 | +VEDA -> Vademon |
| 71 | +POYO -> Poyomon |
| 72 | +TOKO -> Tokomon |
| 73 | +PATA -> Patamon |
| 74 | +KUNE -> Kunemon |
| 75 | +UNIM -> Unimon |
| 76 | +OGRE -> Ogremon |
| 77 | +SHEL -> Shellmon |
| 78 | +CENT -> Centarumon |
| 79 | +BAKE -> Bakemon |
| 80 | +DORI -> Drimogemon |
| 81 | +SCUM -> Sukamon |
| 82 | +ANDR -> Andromon |
| 83 | +GIRO -> Giromon |
| 84 | +ETEM -> Etemon |
| 85 | +YURA -> Yuramon |
| 86 | +TANE -> Tanemon |
| 87 | +PIYO -> Biyomon |
| 88 | +PALM -> Palmon |
| 89 | +MONO -> Monochromon |
| 90 | +LEOM -> Leomon |
| 91 | +SIRA -> Coelamon |
| 92 | +COCA -> Kokatorimon |
| 93 | +KUWA -> Kuwagamon |
| 94 | +MOJA -> Mojyamon |
| 95 | +NANI -> Nanimon |
| 96 | +MGDR -> Megadramon |
| 97 | +PICC -> Piximon |
| 98 | +DIGI -> Digitamamon |
| 99 | +PENM -> Penguinmon |
| 100 | +IGAM -> Ninjamon |
| 101 | +HOUO -> Phoenixmon |
| 102 | +HKAB -> H-Kabuterimon |
| 103 | +MGSD -> MegaSeadramon |
| 104 | +PANJ -> Panjyamon |
| 105 | +GGDR -> Gigadramon |
| 106 | +MTET -> MetalEtemon |
| 107 | +VAND -> Myotismon |
| 108 | +YANM -> Yanmamon |
| 109 | +GOTU -> Gotsumon |
| 110 | +FLAR -> Flarizamon |
| 111 | +WARU -> WaruMonzaemon |
| 112 | +YKAG -> SnowAgumon |
| 113 | +HYOG -> Hyogamon |
| 114 | +PCSC -> PlatinumSukamon |
| 115 | +DOKU -> Dokunemon |
| 116 | +SIMA -> ShimaUnimon |
| 117 | +TANK -> Tankmon |
| 118 | +REDV -> RedVegiemon |
| 119 | +JMOJ -> J-Mojyamon |
| 120 | +NISE -> NiseDrimogemon |
| 121 | +GOBR -> Goburimon |
| 122 | +TUTI -> MudFrigimon |
| 123 | +PSYC -> Psychemon |
| 124 | +MODO -> ModokiBetamon |
| 125 | +TOYA -> ToyAgumon |
| 126 | +PIDD -> Piddomon |
| 127 | +ARUR -> Aruramon |
| 128 | +GERE -> Geremon |
| 129 | +VARM -> Vermillimon |
| 130 | +FUGA -> Fugamon |
| 131 | +TKKA -> Tekkamon |
| 132 | +MRIS -> MoriShellmon |
| 133 | +GARD -> Guardromon |
| 134 | +MCHO -> Muchomon |
| 135 | +ICEM -> Icemon |
| 136 | +AKAT -> Akatorimon |
| 137 | +TUKA -> Tsukaimon |
| 138 | +SHAM -> Sharmamon |
| 139 | +CLEA -> ClearAgumon |
| 140 | +ZASS -> Weedmon |
| 141 | +ICDV -> IceDevimon |
| 142 | +DKRZ -> Darkrizamon |
| 143 | +SNDY -> SandYanmamon |
| 144 | +SNGB -> SnowGoburimon |
| 145 | +BLMR -> BlueMeramon |
| 146 | +GRUR -> Gururumon |
| 147 | +SABD -> Saberdramon |
| 148 | +SOUL -> Souldmon |
| 149 | +GOLE -> Rockmon |
| 150 | +OTAM -> Otamamon |
| 151 | +GECO -> Gekomon |
| 152 | +TENT -> Tentomon |
| 153 | +WRSE -> WaruSeadramon |
| 154 | +INSE -> Meteormon |
| 155 | +MUGE -> Machinedramon |
| 156 | +ANLG -> Analogman |
| 157 | +JIJI -> Jijimon |
| 158 | +TENS -> Market Manager |
| 159 | +TONO -> ShogunGekomon |
| 160 | +SCUD -> King Sukamon |
| 161 | +JURE -> Cherrymon |
| 162 | +HAGU -> Hagurumon |
| 163 | +BRIK -> Tinmon |
| 164 | +TIRS -> Master Tyrannomon |
| 165 | +EGOB -> Goburimon (NPC) |
| 166 | +BRAK -> Brachiomon |
| 167 | +PUTI -> DemoMeramon |
| 168 | +EBET -> Betamon (NPC) |
| 169 | +EGRE -> Greymon (NPC) |
| 170 | +EDEV -> Devimon (NPC) |
| 171 | +EAIR -> Airdramon (NPC) |
| 172 | +ETYR -> Tyrannomon (NPC) |
| 173 | +EMER -> Meramon (NPC) |
| 174 | +ESEA -> Seadramon (NPC) |
| 175 | +ENUM -> Numemon (NPC) |
| 176 | +EMTG -> MetalGreymon (NPC) |
| 177 | +EMAM -> Mamemon (NPC) |
| 178 | +EMON -> Monzaemon (NPC) |
| 179 | +EGAB -> Gabumon (NPC) |
| 180 | +EELE -> Elecmon (NPC) |
| 181 | +EKAB -> Kabuterimon (NPC) |
| 182 | +EANG -> Angemon (NPC) |
| 183 | +EBIR -> Bidramon (NPC) |
| 184 | +EGAR -> Garurumon (NPC) |
| 185 | +EYUK -> Frigimon (NPC) |
| 186 | +EHOE -> Whamon (NPC) |
| 187 | +EVEG -> Vegiemon (NPC) |
| 188 | +ESKU -> SkullGreymon (NPC) |
| 189 | +EMTM -> MetalMamemon (NPC) ("MetalGreymon") |
| 190 | +EVED -> Vademon (NPC) |
| 191 | +EPAT -> Patamon (NPC) |
| 192 | +EKUN -> Kunemon (NPC) |
| 193 | +EUNI -> Unimon (NPC) |
| 194 | +EOGR -> Ogremon (NPC) |
| 195 | +ESHE -> Shellmon (NPC) |
| 196 | +ECEN -> Centarumon (NPC) |
| 197 | +EBAK -> Bakemon (NPC) |
| 198 | +EDOR -> Drimogemon (NPC) |
| 199 | +ESCU -> Sukamon (NPC) |
| 200 | +EAND -> Andromon (NPC) |
| 201 | +EGIR -> Giromon (NPC) |
| 202 | +EETE -> Etemon (NPC) |
| 203 | +EPIY -> Biyomon (NPC) |
| 204 | +EPAL -> Palmon (NPC) |
| 205 | +EMNO -> Monochromon (NPC) |
| 206 | +ELEO -> Leomon (NPC) |
| 207 | +ESIR -> Coelamon (NPC) |
| 208 | +ECOC -> Kokatorimon (NPC) |
| 209 | +EKUW -> Kuwagamon (NPC) |
| 210 | +EMOJ -> Mojyamon (NPC) |
| 211 | +ENAN -> Nanimon (NPC) |
| 212 | +EMGD -> Megadramon (NPC) |
| 213 | +EPIC -> Piximon (NPC) |
| 214 | +EDIG -> Digitamamon (NPC) |
| 215 | +EIGA -> Ninjamon (NPC) |
| 216 | +EPEN -> Penguinmon (NPC) |
| 217 | +EVAN -> Myotismon (NPC) |
| 218 | +CEGR -> Greymon (NPC) |
| 219 | +CEMG -> MetalGreymon (NPC) |
| 220 | +``` |
| 221 | + |
| 222 | +# Building |
| 223 | + |
| 224 | +This project uses CMake in combination CPM.cmake for dependency management. |
| 225 | + |
| 226 | +Building the project should be a simple |
| 227 | + |
| 228 | +``` |
| 229 | +$ git clone git@github.com:Operation-Decoded/DW1ModelConverter.git |
| 230 | +$ cd <project dir> |
| 231 | +$ cmake . -DCMAKE_BUILD_TYPE=Release |
| 232 | +$ cmake --build . --config Release |
| 233 | +``` |
| 234 | + |
| 235 | +Or you just open the folder with a CMake enabled IDE like VS Code. |
| 236 | + |
| 237 | +# Contact |
| 238 | + |
| 239 | +* Discord: SydMontague, or in either the [Digimon Modding Community](https://discord.gg/cb5AuxU6su) or [Digimon Discord Community](https://discord.gg/0VODO3ww0zghqOCO) |
| 240 | +* directly on GitHub |
| 241 | +* E-Mail: sydmontague@web.de |
| 242 | +* Reddit: [/u/Sydmontague](https://reddit.com/u/sydmontague) |
| 243 | +* if you find a SydMontague somewhere else chances are high that's me, too. ;) |
0 commit comments