ROM Hack Model Swapping in Soma Bringer?

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
HOW TO SWAP MODELS

Mod edit. Steps 1 and 2 have been replaced by https://gbatemp.net/threads/soma-bringer-open-translation.78947/ . You can then use ndstool, crystaltile2, tinke, ndsts, mkds course modifier or any tool that can unpack and reassemble (or import) DS ROMs.

1. Go and download DarthNemesis' newest SomaTrans (v1.3 at writing this) located Here (mirror https://web.archive.org/web/20101009153822/http://somatrans.referata.com/wiki/Main_Page )
2. Run it, and click on File -> Import ROM, then import a patched version of Soma Bringer if you want to use the English patch.
3. When it is finished opening the ROM file, go to File -> Unpack IMG Files
4. When that finished, a folder will appear in your SomaTrans folder called IMG, open it.
5. locate the files that are called mdl###, these are where the models are located.
6. Player Characters are located in the following numbers that are in parentheses:
Welt (198)
Idea (199)
Millers (200)
Cadenza (201)
Jadis (202)
Einsatz (203)
Forte (204)
Granada (205)

Welt2 (206)
Idea2 (207)
Millers2 (208)
Cadenza2 (209)
Jadis2 (210)
Einsatz2 (211)
Forte2 (212)
Granada2 (213)

Welt3 (214)
Idea3 (215)
Millers3 (216)
Cadenza3 (217)
Jadis3 (218)
Einsatz3 (219)
Forte3 (220)
Granada3 (221)

Welt4 (222)
Idea4 (223)
Millers4 (224)
Cadenza4 (225)
Jadis4 (226)
Einsatz4 (227)
Forte4 (228)
Granada4 (229)

Welt5 (230)
Idea5 (231)
Millers5 (232)
Cadenza5 (233)
Jadis5 (234)
Einsatz5 (235)
Forte5 (236)
Granada5 (237)

Welt6 (238)
Idea6 (239)
Millers6 (240)
Cadenza6 (241)
Jadis6 (242)
Einsatz6 (243)
Forte6 (244)
Granada6 (245)

Welt7 (246)
Idea7 (247)
Millers7 (248)
Cadenza7 (249)
Jadis7 (250)
Einsatz7 (251)
Forte7 (252)
Granada7 (253)

Welt8 (254)
Idea8 (255)
Millers8 (256)
Cadenza8 (257)
Jadis8 (258)
Einsatz8 (259)
Forte8 (260)
Granada8 (261)

Welt9 (262)
Idea9 (263)
Millers9 (264)
Cadenza9 (265)
Jadis9 (266)
Einsatz9 (267)
Forte9 (268)
Granada9 (269)

Welt10 (270)
Idea10 (271)
Millers10 (272)
Cadenza10 (273)
Jadis10 (274)
Einsatz10 (275)
Forte10 (276)
Granada10 (277)
7. When you have found the location of whichever Player Character you wish to replace, remove the file, and create a copy of one of these files and rename it to the Player Character file you are replacing:
(CURRENTLY 66Characters to choose!)
287.png

287

288.png

288

289.png

289

290.png

290

291.png

291

292.png

292

293.png

293

294.png

294

295.png

295

296.png

296

297.png

297

298.png

298

299.png

299

300.png

300

301.png

301

302.png

302

303.png

303

304.png

304

305.png

305

306.png

306

307.png

307

308.png

308

309.png

309

310.png

310

311.png

311

312.png

312

313.png

313

314.png

314

315.png

315

316.png

316

317.png

317

318.png

318

319.png

319

320.png

320

321.png

321

324.png

324

325.png

325

326.png

326

327.png

327

328.png

328

329.png

329

330.png

330

331.png

331

332.png

332

333.png

333

334.png

334

335.png

335

336.png

336

337.png

337

338.png

338

339.png

339

340.png

340

704.png

704

707.png

707


708-1.png

708

709.png

709

711.png

711

712.png

712

713.png

713

716.png

716

719.png

719

720.png

720

721.png

721

723.png

723

724.png

724

725.png

725
8. Go back to SomaTrans, and go to File -> Pack IMG Files
9. When that is done, go to File -> Export ROM
10. Save, then enjoy!



Thanks to DarthNemesis who has worked on so much stuff for Soma Bringer and helped to find out model locations!
 
Last edited by FAST6191, , Reason: Sorted old HTML formatting.
  • Like
Reactions: Zwataketa

DarthNemesis

Well-Known Member
Member
Joined
Feb 19, 2008
Messages
1,210
Trophies
0
XP
260
Country
United States
CPhantom said:
Well, I was thinking, not sure if it'd work or not, but would it be possible to swap the Models of NPCs with the playable characters? I say this because there are some pretty wicked looking NPC characters versus the main playable characters. I'm not sure if the game would crash or whatnot, but it'd be pretty interesting to see if this would work.


Are the character models located in a certain folder, or packed together into one file? Maybe, if I could find this out, I could mess with it a bit.
I think it could probably be done. The models are stored in mdl\mdl.img. The pointer to the offset for a particular file n is stored in mdl.fat, and is 18 bits starting at offset 0x24+8*n, multiplied by 0x200. These files are in compressed DAD format and can be edited using DADTool, which is linked on the translation wiki.
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
Yeah, I started thinking about it when I started enjoying a lot of the NPCs.

Now, I think that portraits, Names, etc would be fun to change as well, but that'd be a ton of work combined with just this idea. So yeah, just swapping the little character would be cool, haha :]

I'm going to take a peak at files in a clean rom, see if anything is there. If not, then maybe someone can show me the way.


@Darthnemesis: Thank you very much for the help there :] maybe I'll take a peak around here then, see if anything can be done! Hopefully I'm skilled enough though, haha.
 

Hehe Moo

Moo?
Member
Joined
Jul 14, 2008
Messages
1,136
Trophies
0
Age
29
Location
Australia
Website
Visit site
XP
181
Country
DarthNemesis said:
CPhantom said:
Well, I was thinking, not sure if it'd work or not, but would it be possible to swap the Models of NPCs with the playable characters? I say this because there are some pretty wicked looking NPC characters versus the main playable characters. I'm not sure if the game would crash or whatnot, but it'd be pretty interesting to see if this would work.


Are the character models located in a certain folder, or packed together into one file? Maybe, if I could find this out, I could mess with it a bit.
I think it could probably be done. The models are stored in mdl\mdl.img. The pointer to the offset for a particular file n is stored in mdl.fat, and is 18 bits starting at offset 0x28+8*n, multiplied by 0x200. These files are in compressed DAD format and can be edited using DADTool, which is linked on the translation wiki.


Omfg. That is seriously... (no offense) NERD-TALK xD What the heck does that mean?~! "offset 0x28+9" whoa...

Wow. Darth, you are a computer god.
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
Okay, well I found the files, but .img...I have no idea how to extract the DAD files, haha. I am not very computer savvy, but once I get it down, I can usually do it.Haha.
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
WOW, haha! I wasn't expecting you to post an image of you doing it
tongue.gif


care for a short tutorial or something? lol, I'd love to do this myself with something to follow from the great Darth himself :].

That's not entirely sucking up either, you are pretty amazing, haha.
 

DarthNemesis

Well-Known Member
Member
Joined
Feb 19, 2008
Messages
1,210
Trophies
0
XP
260
Country
United States
Alright, I split the .img into separate files using the pointers from the file table, then batch decompressed them using DADTool. I looked at a bunch in a tile editor until I found the NPCs I wanted, then just copied the replacement file over the target file in mdl.img using a hex editor.
 

DarthNemesis

Well-Known Member
Member
Joined
Feb 19, 2008
Messages
1,210
Trophies
0
XP
260
Country
United States
Dominator said:
Darth, I'm glad you manage do to dit, but the combat animation are not make for npc, so i think when you press attack or something like this ythe game would crach or show black screen ?
Nope, these models are just bones and textures. The animations are the same regardless of which character you're using.
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
Hmmm, and how do I split it? See, haha your talk is to heavy for a newbie like myself with this stuff.
wacko.gif

What programs do you use? How'd you find the pointers?

Maybe later on you could show me how to do this a bit more in depth? That way the newbies at this, such as myself, could tinker and choose a neat player character?
unsure.gif
 

Hehe Moo

Moo?
Member
Joined
Jul 14, 2008
Messages
1,136
Trophies
0
Age
29
Location
Australia
Website
Visit site
XP
181
Country
Darth if you manage to patch it, can you post it here for us =] I want to test it xD

Also, if you patch it, will it work on the already English patched rom that you made?
 

DarthNemesis

Well-Known Member
Member
Joined
Feb 19, 2008
Messages
1,210
Trophies
0
XP
260
Country
United States
CPhantom said:
Hmmm, and how do I split it? See, haha your talk is to heavy for a newbie like myself with this stuff.
wacko.gif

What programs do you use? How'd you find the pointers?

Maybe later on you could show me how to do this a bit more in depth? That way the newbies at this, such as myself, could tinker and choose a neat player character?
unsure.gif
Alright...

Jadis = file #202 (0xCA)
Sailor = file #211 (0xD2)

Offset of pointer to Jadis model = 0x24 + 8*0xCA = 0x674
Data in mdl.fat at 0x674 = 20 0F C0 08
First 18 bits = 0x08C00F20 & 0x3FFFF = 0xF20
Offset of Jadis model = 0xF20 * 0x200 = 0x1E4000

Offset of pointer to Sailor model = 0x24 + 8*0xD2 = 0x6BC
Data in mdl.fat at 0x6BC = 5C 10 00 09
First 18 bits = 0x0900105C & 0x3FFFF = 0x105C
Offset of Sailor model = 0x105C * 0x200 = 0x20B800

So in mdl.img, the Jadis model is at offset 0x1E4000 and the Sailor model is at offset 0x20B800.

If the replacement model is smaller than the target model, you can just copy the whole block of data until the next "DAD" and overwrite the target block. If it's larger, you'll have pad out to the next multiple of 0x200 that will contain the file and increase all the pointers after that file by the number of 0x200 blocks you added.

QUOTE(Hehe Moo @ Oct 11 2008, 11:57 PM) Darth if you manage to patch it, can you post it here for us =] I want to test it xD

Also, if you patch it, will it work on the already English patched rom that you made?
Download model replacement demo patch
Apply to an already patched (2008-10-11) file.
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
So, what are you using to find those pointers and such? I only currently have Hex Workshop. I'm sure there is something else that you use though?
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
Wow, haha. Then I must have no idea how you are using it then. As I've said, I'm a newbie to this stuff, haha. I didn't know how the models were thrown in here, and hex editing DS games are totally new to me xD

I honestly don't have much HEX skills either. The only game I ever used hex for was Phantasy Star Online...and that was ages ago, haha. Not much work either.

But I think I've found were to look for offsets and such, so yeah. I'll probably find out here sooner or later, haha.

Your skills in this blows my mind away.



Well, I think I'm going to wave my white flag here. I have no clue how to get this done, haha. I don't understand the pointers, hex, etc. To much for my brain with no knowledge of this stuff. Unless Darth would release a heavily newbie friendly guide, or some program, I have to lean on his shoulder till, haha.

I love you Darth, knowing this game like the back of your hand rocks. xD
 

CPhantom

The Noob :(
OP
Member
Joined
May 14, 2008
Messages
587
Trophies
0
Age
33
Website
Visit site
XP
320
Country
United States
Hmmm, sorry for double posting, but if anyone can make a guide on how to do this, that'd be awesome. I know Darth made a slight guide there, but it is to much for my unskilled mind, haha.

I'd really like to learn how to do this, it'd be fun. I'm sure that once a guide shows up, it'd be a walk in the park. But when numbers start popping up like "0x24 + 8*0xCA = 0x674", my head explodes.
wacko.gif
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    OctoAori20 @ OctoAori20: Nice nice-