ROM Hack How to extract .Bin files of Resident Evil: Deadly Silence?

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
I want to extract the 3D model characters and its textures of Resident Evil: Deadly Silence, but i think those are stored in cpac_models.bin, and i can't extract that .bin file
What should I do?
 

Attachments

  • Screenshot (173).png
    Screenshot (173).png
    108.8 KB · Views: 408

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Can you have a shot from it open in a hex editor? As a general rule .bin is the basic "just need an extension" that programmers pick, and there are thousands of variations on the theme throughout the DS (indeed if you go one or two folders up then chances are you will see something arm9.bin which I will wager serious money on being a radically different format despite the extension), and millions across general computing history.

All the major ROM hacking tools will have one (crystaltile2 http://filetrip.net/f23649-CrystalTile2-2010-09-06.html and https://github.com/pleonex/tinke being the bit ones for most ) but if you just want a basic one https://mh-nexus.de/en/hxd/ , https://www.portablefreeware.com/index.php?id=2504 or http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm are the main three general purpose ones we suggest ROM hackers have if they are not going to get something like 010 editor or hex workshop.

If in the ASCCI (text) part of the screen you see something like BMD in the first line or so it is probably the main format for DS 3d called NSBMD, which has a few options to do things with. If it is not there then it might be something custom or a packing/archive format.
 

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
Can you have a shot from it open in a hex editor? As a general rule .bin is the basic "just need an extension" that programmers pick, and there are thousands of variations on the theme throughout the DS (indeed if you go one or two folders up then chances are you will see something arm9.bin which I will wager serious money on being a radically different format despite the extension), and millions across general computing history.

If in the ASCCI (text) part of the screen you see something like BMD in the first line or so it is probably the main format for DS 3d called NSBMD, which has a few options to do things with. If it is not there then it might be something custom or a packing/archive format.


This is the screenshot of the cpac_models.bin opened in Hex Editor.
Is possible to extract the content?
 

Attachments

  • Screenshot (178).png
    Screenshot (178).png
    464.4 KB · Views: 425

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
YEKB and TADBP rings a bell, though not for anything 3d (could well still be 3d related).

The lists of bytes following make it seem like an archive format as well (all the 0080 spaced equally apart, with the other numbers counting up).

If you scroll down some does the list change form?
 

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
YEKB and TADBP rings a bell, though not for anything 3d (could well still be 3d related).

The lists of bytes following make it seem like an archive format as well (all the 0080 spaced equally apart, with the other numbers counting up).

If you scroll down some does the list change form?


Yes, it changes after a few scroll, in the archives there are a folder called 3D, but only have the first person camera doors and its textures, those 3D models can be opened with Tinke, but the 3D models which i'm looking for are the characters and creatures, to try to port it to PC version; the other folder "demo" there are only 3 files with 2 or 1 kb; in fact the folder "movies" contains the FMV, cpac_2d.bin should contains the textures, cpac_eff.bin maybe contains the animations, then cpac_stage***.bin i think contains the pre rendered backgrounds. So i think that cpac_models.bin contains 3D models of characters and monsters...
 

Attachments

  • Screenshot (179).png
    Screenshot (179).png
    506.1 KB · Views: 306
  • Screenshot (180).png
    Screenshot (180).png
    191.8 KB · Views: 308
  • Screenshot (181).png
    Screenshot (181).png
    148.3 KB · Views: 283

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
I see BMD0 and MDL0 in there -- both things I expect to see in the NSBMD format. Looks like you have an archive format on your hands.

At 0E60 is 10 in the hex window which is a sign of compression (common for 3d models).

B4FB is after that which is typically part of the size.
Back to the first image.

After YEKB is 500E which flips to 0E50 and thus could be the size of the section. None of the following numbers leap out at me as anything here (could either be sizes or offsets, the repeated numbers making me wonder if it is sizes).
 

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
I see BMD0 and MDL0 in there -- both things I expect to see in the NSBMD format. Looks like you have an archive format on your hands.

At 0E60 is 10 in the hex window which is a sign of compression (common for 3d models).

B4FB is after that which is typically part of the size.
Back to the first image.

After YEKB is 500E which flips to 0E50 and thus could be the size of the section. None of the following numbers leap out at me as anything here (could either be sizes or offsets, the repeated numbers making me wonder if it is sizes).


So, is there any program to edit NSBMD? look this picture, it's a link to download the Hex of cpac_models.bin in .txt

--------------------- MERGED ---------------------------

I see BMD0 and MDL0 in there -- both things I expect to see in the NSBMD format. Looks like you have an archive format on your hands.

At 0E60 is 10 in the hex window which is a sign of compression (common for 3d models).

B4FB is after that which is typically part of the size.
Back to the first image.

After YEKB is 500E which flips to 0E50 and thus could be the size of the section. None of the following numbers leap out at me as anything here (could either be sizes or offsets, the repeated numbers making me wonder if it is sizes).


Sorry, the first link is broken, this one is better...
 

Attachments

  • Sin título-1.png
    Sin título-1.png
    14.1 KB · Views: 283

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
I have not got my full ROM hacking setup with me right now but I will give it a look.

Text is an odd choice but OK.
453 matches for BMD (case sensitive) in the file.
The initial in the TADB section appears to be 227 lines long so possibly 2 files per line how you have it there, or 8 bytes per entry which is in line with a lot of things seen on the DS. Sadly that will mean no names unless you want to use the file location numbers as names (I don't suggest size values for this as two files could well share a size).

Anyway grabbing a couple of lines from that
682C0100 386E0080
A09A0100 888A0080
Flipped becomes
00012C68 80006E38
00019AA0 80008A88

I have no idea what the 8 means right now (some archives use such things as indicators of files, folders, compression and more besides). It is also the top bit in the top number so that does leave you all the others to play with.

Anyway
012C68+ 006E38
=
019AA0

Looks like you have some kind of offset and size based thing.

So I went to 019AA0 in the file. Nothing of interest to this.
Adding E60 gets me 1A900
Going there
Code:
0001A900  10 34 DA 00 00 42 4D 44 30 FF FE 02 00 00 34 DA  .4Ú..BMD0ÿþ...4Ú
Bingo.

To spell it out though then up to 0E60 in the file is the archive header (I guess we will call it the YEKB format) and file location/size table for the archive. Flipped as per standard DS files. This particular offset will likely vary between the different .bin files there so figure out where it ends (the stuff earlier about it being written after the TADB thing probably being a good choice).
From there 8 bytes is given over to the location (counting from E60) and the size, 4 bytes to each. For the size value then for some reason the top bit is set so you will want to lose that when generating values for size.

Normally as I am too lazy to program anything proper for stuff like this I would make a spreadsheet here to fiddle the numbers (flipping would be done in a hex editor but you would still need to add the E60 value to the location column, and remove the 8 from the size), make a batch file from the spreadsheet to use filecutter ( http://min.midco.net/cracker/filecutter.zip which is a nice little command line tool which will copy bytes of a given length from a given offset in a file) and rip everything. To get rid of the 8 parts from the size you can do something fancy with a hex editor's mask or something, or just subtract 800000000 hex from the size column in your editor).


Compared to a lot of other systems then not much has been made to handle NSBMD in ways that people find terribly useful, though https://github.com/scurest/apicula might be worth a try (I have not properly toyed with it). Tinke has some things, there are a few older tools as well ( https://gbatemp.net/download/nsbmd-tool.28230/ being the main one). MKDS course modifier is not just for mario kart, though I have not checked it out in a while. The pokemon people might have something but pokemon tends to have strange tweaks and the pokemon people play to that.

Most such tools will handle compression but if you want one anyway then I recommend Cue's GBA/DS compressors https://www.romhacking.net/utilities/826/ Being command line you can even chuck it in the batch file if you made one.
 

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
I have not got my full ROM hacking setup with me right now but I will give it a look.

Text is an odd choice but OK.
453 matches for BMD (case sensitive) in the file.
The initial in the TADB section appears to be 227 lines long so possibly 2 files per line how you have it there, or 8 bytes per entry which is in line with a lot of things seen on the DS. Sadly that will mean no names unless you want to use the file location numbers as names (I don't suggest size values for this as two files could well share a size).

Anyway grabbing a couple of lines from that
682C0100 386E0080
A09A0100 888A0080
Flipped becomes
00012C68 80006E38
00019AA0 80008A88

I have no idea what the 8 means right now (some archives use such things as indicators of files, folders, compression and more besides). It is also the top bit in the top number so that does leave you all the others to play with.

Anyway
012C68+ 006E38
=
019AA0

Looks like you have some kind of offset and size based thing.

So I went to 019AA0 in the file. Nothing of interest to this.
Adding E60 gets me 1A900
Going there
Code:
0001A900  10 34 DA 00 00 42 4D 44 30 FF FE 02 00 00 34 DA  .4Ú..BMD0ÿþ...4Ú
Bingo.

To spell it out though then up to 0E60 in the file is the archive header (I guess we will call it the YEKB format) and file location/size table for the archive. Flipped as per standard DS files. This particular offset will likely vary between the different .bin files there so figure out where it ends (the stuff earlier about it being written after the TADB thing probably being a good choice).
From there 8 bytes is given over to the location (counting from E60) and the size, 4 bytes to each. For the size value then for some reason the top bit is set so you will want to lose that when generating values for size.

Normally as I am too lazy to program anything proper for stuff like this I would make a spreadsheet here to fiddle the numbers (flipping would be done in a hex editor but you would still need to add the E60 value to the location column, and remove the 8 from the size), make a batch file from the spreadsheet to use filecutter ( which is a nice little command line tool which will copy bytes of a given length from a given offset in a file) and rip everything. To get rid of the 8 parts from the size you can do something fancy with a hex editor's mask or something, or just subtract 800000000 hex from the size column in your editor).


Compared to a lot of other systems then not much has been made to handle NSBMD in ways that people find terribly useful, though might be worth a try (I have not properly toyed with it). Tinke has some things, there are a few older tools as well ( being the main one). MKDS course modifier is not just for mario kart, though I have not checked it out in a while. The pokemon people might have something but pokemon tends to have strange tweaks and the pokemon people play to that.

Most such tools will handle compression but if you want one anyway then I recommend Cue's GBA/DS compressors Being command line you can even chuck it in the batch file if you made one.


Let me understand, the 0E60 is the offset? I'm sorry, i'm very new in Hex Edition, please, can you tell me again but in simpler way?
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
0E60 is where the files actually start.
Everything before it in this file is the section detailing where the files are set to appear, and some other data about the file..
It might be different in other files, however it looks like you can figure it out easily enough if you look at the TADB section and find the value immediately after it (will probably be 10h less but that is easy to deal with).

The section detailing where the files set to appear has two entries per file (each 4 bytes).
First entry is the location of the file relative to the start of the file section (0E60, or if you prefer add 0E60 to the flipped location value to get where it is) and the second entry is the size, but with that weird 8 in there for some reason I don't know at this point*


*if you are only set to rip them for conversion later then don't need to worry about it other than to remove it from a batch file if you are going that way. Even if you weren't then every section has it so make sure it is in there and you should be good.

Basic pointers because why not.
Pointers are things which tell you where things are. There are three types we normally see in DS ROM hacking.
1) Normal pointers. Will be the location if you start counting from the start of the file.
2) Offset pointers. Not offset in the sense we were talking about above (offset there is the location within the file) but offset as in the value is offset by this much. Used for various reasons (simpler maths in some ways, simpler editing of the archive file later)
3) Relative. If the above thing was relative then each pointer would be 8 bytes ahead of the next. This would mean if you read them out then each new pointer would be 8 bytes further away than the last one. In a sense relative to the current location it is this value. You could have a relative offset but you don't see those terribly often as they gain very little.


Anyway I had a bit of time so I made a script. Have not tested it but it should do what you want (if not then I will upload my batch file if you want that).

Copy the code section below into a notepad window and save as .bat (I don't know if you are familiar with batch files already, apologies if you are -- if nothing else I try to make these so someone in your position in 10 years can come along and hopefully get something from it).
Grab the filecutter program from before ( https://web.archive.org/web/20170218180937/http://min.midco.net/cracker/filecutter.zip ) into a blank directory.
Copy the batch file into the directory.
Copy the cpac_models.bin file into the same directory as the filecutter program and the batch file you made.
Double click the batch file and in a few seconds it will hopefully spit out 142 shiny new nsbmd files you can view in whatever you found you like to use for that sort of thing. Looking at the sizes I imagine it is going to be the sort of model information I expect in a game like this (about the right number, about the right complexity).

Code:
filecutter cpac_models.bin 38964 00000000.nsbmd -s 3680
filecutter cpac_models.bin 28216 00012C68.nsbmd -s 80584
filecutter cpac_models.bin 39236 00022528.nsbmd -s 144264
filecutter cpac_models.bin 39192 00035378.nsbmd -s 221656
filecutter cpac_models.bin 36376 00041684.nsbmd -s 271588
filecutter cpac_models.bin 10940 0004CBE4.nsbmd -s 318020
filecutter cpac_models.bin 9864 000552E4.nsbmd -s 352580
filecutter cpac_models.bin 44664 0005A478.nsbmd -s 373464
filecutter cpac_models.bin 19816 0006A0BC.nsbmd -s 438044
filecutter cpac_models.bin 50672 0007B098.nsbmd -s 507640
filecutter cpac_models.bin 12892 00089490.nsbmd -s 566000
filecutter cpac_models.bin 37988 0008C898.nsbmd -s 579320
filecutter cpac_models.bin 22252 0009BE68.nsbmd -s 642248
filecutter cpac_models.bin 22384 000A648C.nsbmd -s 684780
filecutter cpac_models.bin 22012 000B188C.nsbmd -s 730860
filecutter cpac_models.bin 21908 000BC1D4.nsbmd -s 774196
filecutter cpac_models.bin 35032 000C69C0.nsbmd -s 817184
filecutter cpac_models.bin 36052 000D78E8.nsbmd -s 886600
filecutter cpac_models.bin 42016 000EB084.nsbmd -s 966372
filecutter cpac_models.bin 37264 000FF620.nsbmd -s 1049728
filecutter cpac_models.bin 41432 00111370.nsbmd -s 1122768
filecutter cpac_models.bin 37172 001250FC.nsbmd -s 1204060
filecutter cpac_models.bin 37980 00136720.nsbmd -s 1275264
filecutter cpac_models.bin 35404 00149338.nsbmd -s 1352088
filecutter cpac_models.bin 33976 00159EAC.nsbmd -s 1420556
filecutter cpac_models.bin 40188 0016A9C4.nsbmd -s 1488932
filecutter cpac_models.bin 38336 0017E320.nsbmd -s 1569152
filecutter cpac_models.bin 40388 00190E6C.nsbmd -s 1645772
filecutter cpac_models.bin 41104 001A47E4.nsbmd -s 1726020
filecutter cpac_models.bin 41400 001B8950.nsbmd -s 1808304
filecutter cpac_models.bin 41668 001CCD50.nsbmd -s 1891248
filecutter cpac_models.bin 39868 001E1354.nsbmd -s 1974708
filecutter cpac_models.bin 38196 001F4B7C.nsbmd -s 2054620
filecutter cpac_models.bin 37776 002076B8.nsbmd -s 2131224
filecutter cpac_models.bin 35712 00219E44.nsbmd -s 2206884
filecutter cpac_models.bin 37136 0022B4E4.nsbmd -s 2278212
filecutter cpac_models.bin 42352 0023D720.nsbmd -s 2352512
filecutter cpac_models.bin 37144 00252118.nsbmd -s 2436984
filecutter cpac_models.bin 34488 00264418.nsbmd -s 2511480
filecutter cpac_models.bin 11604 00275138.nsbmd -s 2580376
filecutter cpac_models.bin 1472 0028296C.nsbmd -s 2635724
filecutter cpac_models.bin 1432 00283534.nsbmd -s 2638740
filecutter cpac_models.bin 1400 002840D0.nsbmd -s 2641712
filecutter cpac_models.bin 1524 00284C34.nsbmd -s 2644628
filecutter cpac_models.bin 820 002856F8.nsbmd -s 2647384
filecutter cpac_models.bin 1496 00291030.nsbmd -s 2694800
filecutter cpac_models.bin 1476 00291BCC.nsbmd -s 2697772
filecutter cpac_models.bin 1428 00292764.nsbmd -s 2700740
filecutter cpac_models.bin 1492 00293294.nsbmd -s 2703604
filecutter cpac_models.bin 816 00293D34.nsbmd -s 2706324
filecutter cpac_models.bin 17100 00295D5C.nsbmd -s 2714556
filecutter cpac_models.bin 15688 0029E300.nsbmd -s 2748768
filecutter cpac_models.bin 440 002A5D8C.nsbmd -s 2780140
filecutter cpac_models.bin 1116 002A6210.nsbmd -s 2781296
filecutter cpac_models.bin 1544 002A6D08.nsbmd -s 2784104
filecutter cpac_models.bin 1072 002A78A4.nsbmd -s 2787076
filecutter cpac_models.bin 1572 002A8290.nsbmd -s 2789616
filecutter cpac_models.bin 1088 002A8D54.nsbmd -s 2792372
filecutter cpac_models.bin 1116 002A981C.nsbmd -s 2795132
filecutter cpac_models.bin 1572 002AA338.nsbmd -s 2797976
filecutter cpac_models.bin 1104 002AAEF0.nsbmd -s 2800976
filecutter cpac_models.bin 1584 002AB998.nsbmd -s 2803704
filecutter cpac_models.bin 1680 002AC478.nsbmd -s 2806488
filecutter cpac_models.bin 1680 002ACF60.nsbmd -s 2809280
filecutter cpac_models.bin 1412 002ADBE8.nsbmd -s 2812488
filecutter cpac_models.bin 1480 002AE578.nsbmd -s 2814936
filecutter cpac_models.bin 1152 002AF144.nsbmd -s 2817956
filecutter cpac_models.bin 1728 002AFA20.nsbmd -s 2820224
filecutter cpac_models.bin 1428 002B0704.nsbmd -s 2823524
filecutter cpac_models.bin 1624 002B10E8.nsbmd -s 2826056
filecutter cpac_models.bin 1200 002B1D70.nsbmd -s 2829264
filecutter cpac_models.bin 37940 00009834.nsbmd -s 42644
filecutter cpac_models.bin 35464 00019AA0.nsbmd -s 108800
filecutter cpac_models.bin 38156 0002BE6C.nsbmd -s 183500
filecutter cpac_models.bin 10740 0003EC90.nsbmd -s 260848
filecutter cpac_models.bin 10056 0004A49C.nsbmd -s 307964
filecutter cpac_models.bin 23620 0004F6A0.nsbmd -s 328960
filecutter cpac_models.bin 11020 0005796C.nsbmd -s 362444
filecutter cpac_models.bin 19916 000652F0.nsbmd -s 418128
filecutter cpac_models.bin 49780 0006EE24.nsbmd -s 457860
filecutter cpac_models.bin 7688 00087688.nsbmd -s 558312
filecutter cpac_models.bin 428 0008C6EC.nsbmd -s 578892
filecutter cpac_models.bin 24940 00095CFC.nsbmd -s 617308
filecutter cpac_models.bin 20280 000A1554.nsbmd -s 664500
filecutter cpac_models.bin 23696 000ABBFC.nsbmd -s 707164
filecutter cpac_models.bin 21324 000B6E88.nsbmd -s 752872
filecutter cpac_models.bin 21080 000C1768.nsbmd -s 796104
filecutter cpac_models.bin 34384 000CF298.nsbmd -s 852216
filecutter cpac_models.bin 43720 000E05BC.nsbmd -s 922652
filecutter cpac_models.bin 41340 000F54A4.nsbmd -s 1008388
filecutter cpac_models.bin 35776 001087B0.nsbmd -s 1086992
filecutter cpac_models.bin 39860 0011B548.nsbmd -s 1164200
filecutter cpac_models.bin 34032 0012E230.nsbmd -s 1241232
filecutter cpac_models.bin 38844 0013FB7C.nsbmd -s 1313244
filecutter cpac_models.bin 33064 00151D84.nsbmd -s 1387492
filecutter cpac_models.bin 34400 00162364.nsbmd -s 1454532
filecutter cpac_models.bin 40032 001746C0.nsbmd -s 1529120
filecutter cpac_models.bin 38284 001878E0.nsbmd -s 1607488
filecutter cpac_models.bin 39860 0019AC30.nsbmd -s 1686160
filecutter cpac_models.bin 41180 001AE874.nsbmd -s 1767124
filecutter cpac_models.bin 41544 001C2B08.nsbmd -s 1849704
filecutter cpac_models.bin 41792 001D7014.nsbmd -s 1932916
filecutter cpac_models.bin 40044 001EAF10.nsbmd -s 2014576
filecutter cpac_models.bin 38408 001FE0B0.nsbmd -s 2092816
filecutter cpac_models.bin 37884 00210A48.nsbmd -s 2169000
filecutter cpac_models.bin 35616 002229C4.nsbmd -s 2242596
filecutter cpac_models.bin 37164 002345F4.nsbmd -s 2315348
filecutter cpac_models.bin 42120 00247C90.nsbmd -s 2394864
filecutter cpac_models.bin 37352 0025B230.nsbmd -s 2474128
filecutter cpac_models.bin 34408 0026CAD0.nsbmd -s 2545968
filecutter cpac_models.bin 43744 00277E8C.nsbmd -s 2591980
filecutter cpac_models.bin 1544 00282F2C.nsbmd -s 2637196
filecutter cpac_models.bin 1540 00283ACC.nsbmd -s 2640172
filecutter cpac_models.bin 1516 00284648.nsbmd -s 2643112
filecutter cpac_models.bin 1232 00285228.nsbmd -s 2646152
filecutter cpac_models.bin 46596 00285A2C.nsbmd -s 2648204
filecutter cpac_models.bin 1476 00291608.nsbmd -s 2696296
filecutter cpac_models.bin 1492 00292190.nsbmd -s 2699248
filecutter cpac_models.bin 1436 00292CF8.nsbmd -s 2702168
filecutter cpac_models.bin 1228 00293868.nsbmd -s 2705096
filecutter cpac_models.bin 7416 00294064.nsbmd -s 2707140
filecutter cpac_models.bin 17112 0029A028.nsbmd -s 2731656
filecutter cpac_models.bin 15684 002A2048.nsbmd -s 2764456
filecutter cpac_models.bin 716 002A5F44.nsbmd -s 2780580
filecutter cpac_models.bin 1692 002A666C.nsbmd -s 2782412
filecutter cpac_models.bin 1428 002A7310.nsbmd -s 2785648
filecutter cpac_models.bin 1468 002A7CD4.nsbmd -s 2788148
filecutter cpac_models.bin 1184 002A88B4.nsbmd -s 2791188
filecutter cpac_models.bin 1672 002A9194.nsbmd -s 2793460
filecutter cpac_models.bin 1728 002A9C78.nsbmd -s 2796248
filecutter cpac_models.bin 1428 002AA95C.nsbmd -s 2799548
filecutter cpac_models.bin 1624 002AB340.nsbmd -s 2802080
filecutter cpac_models.bin 1200 002ABFC8.nsbmd -s 2805288
filecutter cpac_models.bin 1112 002ACB08.nsbmd -s 2808168
filecutter cpac_models.bin 1528 002AD5F0.nsbmd -s 2810960
filecutter cpac_models.bin 1036 002AE16C.nsbmd -s 2813900
filecutter cpac_models.bin 1540 002AEB40.nsbmd -s 2816416
filecutter cpac_models.bin 1116 002AF5C4.nsbmd -s 2819108
filecutter cpac_models.bin 1572 002B00E0.nsbmd -s 2821952
filecutter cpac_models.bin 1104 002B0C98.nsbmd -s 2824952
filecutter cpac_models.bin 1584 002B1740.nsbmd -s 2827680
filecutter cpac_models.bin 2916 002B2220.nsbmd -s 2830464
 
Last edited by FAST6191, , Reason: Changed filecutter download to working link

Alkimical

Member
OP
Newcomer
Joined
Feb 10, 2019
Messages
6
Trophies
0
XP
65
Country
United States
Good news, I extracted the .bin file, there are a very hide tool called QuickBMS which can extract the .bin file; then with MKDS i exported the 3D model to editable 3D max file, .obj; the 3D models are the .bmg files; i dont know what .nsbca are,
Anyway, if i want to port those files to PC i need to learn to use Hex Editor

--------------------- MERGED ---------------------------

0E60 is where the files actually start.
Everything before it in this file is the section detailing where the files are set to appear, and some other data about the file..
It might be different in other files, however it looks like you can figure it out easily enough if you look at the TADB section and find the value immediately after it (will probably be 10h less but that is easy to deal with).

The section detailing where the files set to appear has two entries per file (each 4 bytes).
First entry is the location of the file relative to the start of the file section (0E60, or if you prefer add 0E60 to the flipped location value to get where it is) and the second entry is the size, but with that weird 8 in there for some reason I don't know at this point*


*if you are only set to rip them for conversion later then don't need to worry about it other than to remove it from a batch file if you are going that way. Even if you weren't then every section has it so make sure it is in there and you should be good.

Basic pointers because why not.
Pointers are things which tell you where things are. There are three types we normally see in DS ROM hacking.
1) Normal pointers. Will be the location if you start counting from the start of the file.
2) Offset pointers. Not offset in the sense we were talking about above (offset there is the location within the file) but offset as in the value is offset by this much. Used for various reasons (simpler maths in some ways, simpler editing of the archive file later)
3) Relative. If the above thing was relative then each pointer would be 8 bytes ahead of the next. This would mean if you read them out then each new pointer would be 8 bytes further away than the last one. In a sense relative to the current location it is this value. You could have a relative offset but you don't see those terribly often as they gain very little.


Anyway I had a bit of time so I made a script. Have not tested it but it should do what you want (if not then I will upload my batch file if you want that).

Copy the code section below into a notepad window and save as .bat (I don't know if you are familiar with batch files already, apologies if you are -- if nothing else I try to make these so someone in your position in 10 years can come along and hopefully get something from it).
Grab the filecutter program from before ( http://min.midco.net/cracker/filecutter.zip ) into a blank directory.
Copy the batch file into the directory.
Copy the cpac_models.bin file into the same directory as the filecutter program and the batch file you made.
Double click the batch file and in a few seconds it will hopefully spit out 142 shiny new nsbmd files you can view in whatever you found you like to use for that sort of thing. Looking at the sizes I imagine it is going to be the sort of model information I expect in a game like this (about the right number, about the right complexity).

Code:
filecutter cpac_models.bin 38964 00000000.nsbmd -s 3680
filecutter cpac_models.bin 28216 00012C68.nsbmd -s 80584
filecutter cpac_models.bin 39236 00022528.nsbmd -s 144264
filecutter cpac_models.bin 39192 00035378.nsbmd -s 221656
filecutter cpac_models.bin 36376 00041684.nsbmd -s 271588
filecutter cpac_models.bin 10940 0004CBE4.nsbmd -s 318020
filecutter cpac_models.bin 9864 000552E4.nsbmd -s 352580
filecutter cpac_models.bin 44664 0005A478.nsbmd -s 373464
filecutter cpac_models.bin 19816 0006A0BC.nsbmd -s 438044
filecutter cpac_models.bin 50672 0007B098.nsbmd -s 507640
filecutter cpac_models.bin 12892 00089490.nsbmd -s 566000
filecutter cpac_models.bin 37988 0008C898.nsbmd -s 579320
filecutter cpac_models.bin 22252 0009BE68.nsbmd -s 642248
filecutter cpac_models.bin 22384 000A648C.nsbmd -s 684780
filecutter cpac_models.bin 22012 000B188C.nsbmd -s 730860
filecutter cpac_models.bin 21908 000BC1D4.nsbmd -s 774196
filecutter cpac_models.bin 35032 000C69C0.nsbmd -s 817184
filecutter cpac_models.bin 36052 000D78E8.nsbmd -s 886600
filecutter cpac_models.bin 42016 000EB084.nsbmd -s 966372
filecutter cpac_models.bin 37264 000FF620.nsbmd -s 1049728
filecutter cpac_models.bin 41432 00111370.nsbmd -s 1122768
filecutter cpac_models.bin 37172 001250FC.nsbmd -s 1204060
filecutter cpac_models.bin 37980 00136720.nsbmd -s 1275264
filecutter cpac_models.bin 35404 00149338.nsbmd -s 1352088
filecutter cpac_models.bin 33976 00159EAC.nsbmd -s 1420556
filecutter cpac_models.bin 40188 0016A9C4.nsbmd -s 1488932
filecutter cpac_models.bin 38336 0017E320.nsbmd -s 1569152
filecutter cpac_models.bin 40388 00190E6C.nsbmd -s 1645772
filecutter cpac_models.bin 41104 001A47E4.nsbmd -s 1726020
filecutter cpac_models.bin 41400 001B8950.nsbmd -s 1808304
filecutter cpac_models.bin 41668 001CCD50.nsbmd -s 1891248
filecutter cpac_models.bin 39868 001E1354.nsbmd -s 1974708
filecutter cpac_models.bin 38196 001F4B7C.nsbmd -s 2054620
filecutter cpac_models.bin 37776 002076B8.nsbmd -s 2131224
filecutter cpac_models.bin 35712 00219E44.nsbmd -s 2206884
filecutter cpac_models.bin 37136 0022B4E4.nsbmd -s 2278212
filecutter cpac_models.bin 42352 0023D720.nsbmd -s 2352512
filecutter cpac_models.bin 37144 00252118.nsbmd -s 2436984
filecutter cpac_models.bin 34488 00264418.nsbmd -s 2511480
filecutter cpac_models.bin 11604 00275138.nsbmd -s 2580376
filecutter cpac_models.bin 1472 0028296C.nsbmd -s 2635724
filecutter cpac_models.bin 1432 00283534.nsbmd -s 2638740
filecutter cpac_models.bin 1400 002840D0.nsbmd -s 2641712
filecutter cpac_models.bin 1524 00284C34.nsbmd -s 2644628
filecutter cpac_models.bin 820 002856F8.nsbmd -s 2647384
filecutter cpac_models.bin 1496 00291030.nsbmd -s 2694800
filecutter cpac_models.bin 1476 00291BCC.nsbmd -s 2697772
filecutter cpac_models.bin 1428 00292764.nsbmd -s 2700740
filecutter cpac_models.bin 1492 00293294.nsbmd -s 2703604
filecutter cpac_models.bin 816 00293D34.nsbmd -s 2706324
filecutter cpac_models.bin 17100 00295D5C.nsbmd -s 2714556
filecutter cpac_models.bin 15688 0029E300.nsbmd -s 2748768
filecutter cpac_models.bin 440 002A5D8C.nsbmd -s 2780140
filecutter cpac_models.bin 1116 002A6210.nsbmd -s 2781296
filecutter cpac_models.bin 1544 002A6D08.nsbmd -s 2784104
filecutter cpac_models.bin 1072 002A78A4.nsbmd -s 2787076
filecutter cpac_models.bin 1572 002A8290.nsbmd -s 2789616
filecutter cpac_models.bin 1088 002A8D54.nsbmd -s 2792372
filecutter cpac_models.bin 1116 002A981C.nsbmd -s 2795132
filecutter cpac_models.bin 1572 002AA338.nsbmd -s 2797976
filecutter cpac_models.bin 1104 002AAEF0.nsbmd -s 2800976
filecutter cpac_models.bin 1584 002AB998.nsbmd -s 2803704
filecutter cpac_models.bin 1680 002AC478.nsbmd -s 2806488
filecutter cpac_models.bin 1680 002ACF60.nsbmd -s 2809280
filecutter cpac_models.bin 1412 002ADBE8.nsbmd -s 2812488
filecutter cpac_models.bin 1480 002AE578.nsbmd -s 2814936
filecutter cpac_models.bin 1152 002AF144.nsbmd -s 2817956
filecutter cpac_models.bin 1728 002AFA20.nsbmd -s 2820224
filecutter cpac_models.bin 1428 002B0704.nsbmd -s 2823524
filecutter cpac_models.bin 1624 002B10E8.nsbmd -s 2826056
filecutter cpac_models.bin 1200 002B1D70.nsbmd -s 2829264
filecutter cpac_models.bin 37940 00009834.nsbmd -s 42644
filecutter cpac_models.bin 35464 00019AA0.nsbmd -s 108800
filecutter cpac_models.bin 38156 0002BE6C.nsbmd -s 183500
filecutter cpac_models.bin 10740 0003EC90.nsbmd -s 260848
filecutter cpac_models.bin 10056 0004A49C.nsbmd -s 307964
filecutter cpac_models.bin 23620 0004F6A0.nsbmd -s 328960
filecutter cpac_models.bin 11020 0005796C.nsbmd -s 362444
filecutter cpac_models.bin 19916 000652F0.nsbmd -s 418128
filecutter cpac_models.bin 49780 0006EE24.nsbmd -s 457860
filecutter cpac_models.bin 7688 00087688.nsbmd -s 558312
filecutter cpac_models.bin 428 0008C6EC.nsbmd -s 578892
filecutter cpac_models.bin 24940 00095CFC.nsbmd -s 617308
filecutter cpac_models.bin 20280 000A1554.nsbmd -s 664500
filecutter cpac_models.bin 23696 000ABBFC.nsbmd -s 707164
filecutter cpac_models.bin 21324 000B6E88.nsbmd -s 752872
filecutter cpac_models.bin 21080 000C1768.nsbmd -s 796104
filecutter cpac_models.bin 34384 000CF298.nsbmd -s 852216
filecutter cpac_models.bin 43720 000E05BC.nsbmd -s 922652
filecutter cpac_models.bin 41340 000F54A4.nsbmd -s 1008388
filecutter cpac_models.bin 35776 001087B0.nsbmd -s 1086992
filecutter cpac_models.bin 39860 0011B548.nsbmd -s 1164200
filecutter cpac_models.bin 34032 0012E230.nsbmd -s 1241232
filecutter cpac_models.bin 38844 0013FB7C.nsbmd -s 1313244
filecutter cpac_models.bin 33064 00151D84.nsbmd -s 1387492
filecutter cpac_models.bin 34400 00162364.nsbmd -s 1454532
filecutter cpac_models.bin 40032 001746C0.nsbmd -s 1529120
filecutter cpac_models.bin 38284 001878E0.nsbmd -s 1607488
filecutter cpac_models.bin 39860 0019AC30.nsbmd -s 1686160
filecutter cpac_models.bin 41180 001AE874.nsbmd -s 1767124
filecutter cpac_models.bin 41544 001C2B08.nsbmd -s 1849704
filecutter cpac_models.bin 41792 001D7014.nsbmd -s 1932916
filecutter cpac_models.bin 40044 001EAF10.nsbmd -s 2014576
filecutter cpac_models.bin 38408 001FE0B0.nsbmd -s 2092816
filecutter cpac_models.bin 37884 00210A48.nsbmd -s 2169000
filecutter cpac_models.bin 35616 002229C4.nsbmd -s 2242596
filecutter cpac_models.bin 37164 002345F4.nsbmd -s 2315348
filecutter cpac_models.bin 42120 00247C90.nsbmd -s 2394864
filecutter cpac_models.bin 37352 0025B230.nsbmd -s 2474128
filecutter cpac_models.bin 34408 0026CAD0.nsbmd -s 2545968
filecutter cpac_models.bin 43744 00277E8C.nsbmd -s 2591980
filecutter cpac_models.bin 1544 00282F2C.nsbmd -s 2637196
filecutter cpac_models.bin 1540 00283ACC.nsbmd -s 2640172
filecutter cpac_models.bin 1516 00284648.nsbmd -s 2643112
filecutter cpac_models.bin 1232 00285228.nsbmd -s 2646152
filecutter cpac_models.bin 46596 00285A2C.nsbmd -s 2648204
filecutter cpac_models.bin 1476 00291608.nsbmd -s 2696296
filecutter cpac_models.bin 1492 00292190.nsbmd -s 2699248
filecutter cpac_models.bin 1436 00292CF8.nsbmd -s 2702168
filecutter cpac_models.bin 1228 00293868.nsbmd -s 2705096
filecutter cpac_models.bin 7416 00294064.nsbmd -s 2707140
filecutter cpac_models.bin 17112 0029A028.nsbmd -s 2731656
filecutter cpac_models.bin 15684 002A2048.nsbmd -s 2764456
filecutter cpac_models.bin 716 002A5F44.nsbmd -s 2780580
filecutter cpac_models.bin 1692 002A666C.nsbmd -s 2782412
filecutter cpac_models.bin 1428 002A7310.nsbmd -s 2785648
filecutter cpac_models.bin 1468 002A7CD4.nsbmd -s 2788148
filecutter cpac_models.bin 1184 002A88B4.nsbmd -s 2791188
filecutter cpac_models.bin 1672 002A9194.nsbmd -s 2793460
filecutter cpac_models.bin 1728 002A9C78.nsbmd -s 2796248
filecutter cpac_models.bin 1428 002AA95C.nsbmd -s 2799548
filecutter cpac_models.bin 1624 002AB340.nsbmd -s 2802080
filecutter cpac_models.bin 1200 002ABFC8.nsbmd -s 2805288
filecutter cpac_models.bin 1112 002ACB08.nsbmd -s 2808168
filecutter cpac_models.bin 1528 002AD5F0.nsbmd -s 2810960
filecutter cpac_models.bin 1036 002AE16C.nsbmd -s 2813900
filecutter cpac_models.bin 1540 002AEB40.nsbmd -s 2816416
filecutter cpac_models.bin 1116 002AF5C4.nsbmd -s 2819108
filecutter cpac_models.bin 1572 002B00E0.nsbmd -s 2821952
filecutter cpac_models.bin 1104 002B0C98.nsbmd -s 2824952
filecutter cpac_models.bin 1584 002B1740.nsbmd -s 2827680
filecutter cpac_models.bin 2916 002B2220.nsbmd -s 2830464
 

Attachments

  • Screenshot (184).png
    Screenshot (184).png
    565.2 KB · Views: 494
  • Screenshot (185).png
    Screenshot (185).png
    260.7 KB · Views: 361
  • Like
Reactions: Melquia

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
NSBMD = Model
NSBTC = Texture
NSBCA = Animation

Glad you found a script that worked -- it is quite rare for such a thing to happen.

As far as hex editors go then please don't think they are anything special. They are good for viewing files, copy and pasting parts of files, some minor operations, searching for things, basic find and replace and editing to the level where you can type it essentially from memory (big changes want proper tools). Some hex editors might indeed feature fancy functionality but those are mostly for people doing other things (things like memory viewers, or hard drive viewers most prominently), or because they can.

Their general operation is for most you will ever see then on the left side of the screen will be the address, in the middle (usually biggest) section will be the data itself and on the right will be the text decode (usually ASCII but occasionally you might set another mode, ROM hacking specific hex editors will tend to also support tables), below it all might also be a readout of any search all type things, or a section with various decodings of the selection above or the cursor. Click on the hex section and it will also put a cursor in the text decode section, and vice versa. If you can operate a word processor you can operate a hex editor. Some hex editors will allow you to resize the viewing section inside the program by clicking and dragging, some might be an option somewhere, others will want you to resize the whole window and might be limited in one way or another. This can be useful to see greater patterns in the program -- in your case above there are file entries per line, starting on the line too which is a happy coincidence (or maybe not). Other times I will have to resize the window or delete/insert things in the file to get it to all line up for me.

Until you can argue otherwise then go with the above.
 
  • Like
Reactions: Melquia

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Possible? I guess it could be.

At all easy or likely to be done by a ROM hacker within the next 10 years? I am going with no. It is not one of those only theoretically possible things (the game supports many zombies on screen so another player character + game over if one dies + forcing people to be near the same door to exit + shared inventory and game state would not be too hard) but it would be a lot of work. The slightly easier way would be to hook up two emulators together as transferring memory contents there is far easier but you would be limited to either custom emulators or specific versions of emulators that a custom program goes between.
 
  • Like
Reactions: Melquia

Melquia

New Member
Newbie
Joined
Sep 3, 2019
Messages
2
Trophies
0
Age
24
XP
49
Country
Antigua and Barbuda
Hi. Actually playing cooperative mode in 2 emulators can be done. It is what you usually do; the problem is that the character of the other player as such does not appear; sale only shows by a triangle or star ...

(attached images)

... thus removing grace from the cooperative mode. I don't know what the developers will have thought.

And, well, just seeing the friend's post, I thought I would be changing those triangles for characters to play as well as in the video in the cooperative mode.
 

Attachments

  • multi-all.jpg
    multi-all.jpg
    180 KB · Views: 503
  • NDS_ResidentEvilDeadlySilence_08.bmp
    288.1 KB · Views: 287

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
I don't know if I have seen any games get such things added yet but triggering a few seconds of rumble (itself usually a matter of twiddling a hardware address or register -- http://problemkaputt.de/gbatek.htm#dscartrumblepak ) in response to an action within the game (which likely already has consequences ranging from sounds* to visual to underlying mechanics) is well within reason.

I don't know if any of the various DS rumble supporting devices have ever particularly done anything worth noting in this but that is somewhat besides the point, and there could be some future device that rumbles hard enough to induce carpal tunnel like all good takes on the concept.

*option two would be to tap the audio out of the DS and wire it into such a device a la those old vibrating cushions you got from catalogues and sell me junk TV channels. There are some easier to do in the modern world things to make them slightly better than that, and ways to say add a signal to the game that it could interpret (far easier to edit the average gunshot sample file to play something the rumble looks for than to mess around with assembly if you are not already used to the concept), but meh.
 

nelson2236

Member
Newcomer
Joined
Jun 2, 2022
Messages
18
Trophies
0
Age
37
Location
ecuador
XP
111
Country
Ecuador
saludos cordiales perdon que me meta pero es el unico lugar donde ablan de resident evil y busco la manera de cambiar el video del intro con el de color de ps me darian una mano
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
This is an English speaking forum and most won't understand if you speak Spanish so at least fire it through a machine translation (can still leave the original in the post in the event such things fail/remove nuance).

Anyway sounds like you want to recolour the intro video to be closer to that of the PS1 version (will have to look to see what the differences are).

This can be tricky as for the most part* your only option is to redo it and video encoders are few and far between for the DS/games in general leaving you to either write such an encoder for the format used here, or convert the game to one you do have an encoder for (the DS having no onboard video support so that is generally the harder path). You might also want to use a better source than a PS1 version as that is probably too low res and framerate so if there is a later PC version or something then you can tweak that to more resemble things.

*having still not checked then I doubt this is a simple matter of putting a coloured filter on top of the video to tint it a given way or reduce saturation. People have done similar things to do things like subtitles on videos. I would not want to do any kind of real time tweaking on the DS either as video decoding alone pushes it to its limits and nothing really to spare for that.

If it was an in game cutscene then that is one thing but this is the sort of thing most skip after the first view which means a lot of effort to do something that has little material impact on the game.
 
  • Like
Reactions: nelson2236

nelson2236

Member
Newcomer
Joined
Jun 2, 2022
Messages
18
Trophies
0
Age
37
Location
ecuador
XP
111
Country
Ecuador
Este es un foro de habla inglesa y la mayoría no entenderá si hablas español, así que al menos envíalo a través de una traducción automática (todavía puedes dejar el original en la publicación en caso de que tales cosas fallen/eliminen los matices).

De todos modos, parece que quieres volver a colorear el video de introducción para que sea más parecido al de la versión de PS1 (habrá que mirar para ver cuáles son las diferencias).

Esto puede ser complicado, ya que en su mayor parte * su única opción es rehacerlo y los codificadores de video son pocos y distantes entre sí para DS/juegos en general, lo que le permite escribir dicho codificador para el formato utilizado aquí o convertir el juego. a uno para el que tiene un codificador (el DS no tiene soporte de video integrado, por lo que generalmente es el camino más difícil). También es posible que desee utilizar una fuente mejor que una versión de PS1, ya que probablemente tenga una resolución y una velocidad de fotogramas demasiado bajas, por lo que si hay una versión posterior para PC o algo así, puede modificarla para que se parezca más a las cosas.

* Habiendo aún no verificado, dudo que esto sea una simple cuestión de colocar un filtro de color encima del video para teñirlo de una manera determinada o reducir la saturación. La gente ha hecho cosas similares para hacer cosas como subtítulos en videos. No me gustaría hacer ningún tipo de ajuste en tiempo real en el DS, ya que la decodificación de video por sí sola lo lleva al límite y realmente no hay nada de sobra para eso.

Si se trataba de una escena del juego, eso es una cosa, pero este es el tipo de cosa que la mayoría omite después de la primera vista, lo que significa mucho esfuerzo para hacer algo que tiene poco impacto material en el juego.
Gracias por responder. Realmente aprecio la pregunta. ¿Es posible cambiar el video de inicio del juego por otro como el de ps o pc? Tal vez haya un reproductor de video ds o al menos una herramienta para cambiar el video o transformarlo al formato ds
disculpe estoy usando un traductor
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: I have a number of geriatric relatives.