Yu-gi-oh! World Championship 2011 model ripping

Discussion in 'NDS - ROM Hacking and Translations' started by tysovsky, Mar 11, 2012.

Mar 11, 2012
  1. tysovsky

    Newcomer tysovsky Newbie

    Sep 14, 2009
    I need some models of monsters from this game. I tried printscreen rippers (3DVia printscreen, GameAssassin, GLintercept,OpenGLextractor and other), but none of them worked. So now I am trying to rip them from the rom. But it seems that all models are in one archive called monmodels.pac. Is there a way do decompress this type of archives? Here is the link to the file http://www.mediafire.com/?nufglqm5jx1elvh.

    Thanks in advance.

    Sorry for my bad English.
  2. FAST6191

    Reporter FAST6191 Techromancer

    Nov 21, 2005
    United Kingdom
    .pac is something of a generic extension on the DS and this would appear to be another format with the extension.
    Still I had a look
    No magic stamp ( 0000 05 though)
    Filenames (0d between each name)- 146 0d in total. Some file names have a 60 in front of it which translates as ' and others have 05 again although this corresponds to the "subdirectories" idea below.
    What I guess is an offset and size list
    Subdirectories do seem to exist or at least there are gaps in the names with a full 16 bytes of 00 (which I replaced with and equivalent length of #
    Contained within are a bunch of compressed narc files (type 11 compression)- if the .lz did not give it away the 11 at the start and stuff after would have. Oddly there is a compressed form of narc called carc but it is what it is.

    One list of filenames
    Warning: Spoilers inside!

    offsets and sizes list

    As all the files were compressed on a per file basis (nicer in some ways as the last .pac format was compressed as a whole file). I can at least search for BTAF (one of the strings inside NARC files) and get a rough list
    Wouldn't you know- 146 hits. That might ruin my subdirectories idea though.

    BTAF locations

    I probably could do better but I will stick with that for now (BTAF is always in the same location so it is a simple subtraction to get to the start of a file). Unlike most other .pac formats there does seem to be padding (standard 0000) with each thing starting at a multiple of 200 hex.

    I am lazy this evening so spreadsheet time. Going to want to merge the sizes list, curiously there is 148 entries there (more than the names and less than the extra lines although the extras stand out like a sore thumb)

    A quick snippet of the spreadsheet for the time being
    (location of file, location according to header and size according to header)

    location header size?
    1000	00000000	00015166
    16200	00015200	0001A6A8
    30A00	0002FA00	00016EF9
    47A00	00046A00	000134C5
    5B000	0005A000	0001E572
    79600	00078600	0001A243
    93A00	00092A00	0001B5A7
    AF000	000AE000	0001347D
    C2600	000C1600	00012104
    D4800	000D3800	0001640D
    EAE00	000E9E00	00017436
    102400	00101400	000168AD
    118E00	00117E00	00014FE6
    12DE00	0012CE00	00016BAD
    144A00	00143A00	0001AF3C
    15FA00	0015EA00	0001155C
    171000	00170000	00018127
    189200	00188200	0000E823
    197C00	00196C00	000194E2
    1B1200	001B0200	0001E717
    1CFA00	001CEA00	000168E0
    1E6400	001E5400	000150A2
    1FB600	001FA600	0001755D
    212C00	00211C00	00013DF1
    226A00	00225A00	0001EFDE
    245A00	00244A00	00017862
    25D400	0025C400	00015AA6
    273000	00272000	00017769
    28A800	00289800	00022DAF
    2AD600	002AC600	00015B0B
    2C3200	002C2200	00013746
    2D6A00	002D5A00	00016398
    2ECE00	002EBE00	0001D066
    30A000	00309000	0001D508
    327600	00326600	0001341B
    If I am not mistaken the file location would be 1000hex out which lines up nicely with the start of the first file (having it count from the start of the first file and ignore the header is very common practice) and the next entry would appear to be sizes as well (again note the existence of padding). I do have to worry about the phantom/extra entries but we will spare that for a moment (it does not appear for 64 entries which is odd as it does not line up with the #### entries and again there are only two of them although they are both obvious).

    As much as I enjoy pulling things apart I am here with an intention beyond pulling things apart today so as I felt especially bored this evening I knocked together a very quick and dirty method to grab things for you (anybody wishing to comment on the level of pointless extra work I added to the batch file you might wish to save yourself the time- I only cobbled it together from commands I used for this)
    Make a directory for your monmodel.pac file and put a copy in there
    Go to
    Click projects
    get filecutter
    Extract it to the directory
    Go to http://code.google.c...h2.zip&can=2&q=
    Extract the exe file and stick it in the directory
    Copy and paste the following code section into a batch file (any old text file but with the extension .bat ) and stick it in the directory
    filecutter monmodel.pac	86374 fm8865.narc.lz -s 4096
    filecutter monmodel.pac	108200 om8727.narc.lz -s 90624
    filecutter monmodel.pac	93945 hm4768.narc.lz -s 199168
    filecutter monmodel.pac	79045 lm9264.narc.lz -s 293376
    filecutter monmodel.pac	124274 km9117.narc.lz -s 372736
    filecutter monmodel.pac	107075 bm6166.narc.lz -s 497152
    filecutter monmodel.pac	112039 km8969.narc.lz -s 604672
    filecutter monmodel.pac	78973 hm6308.narc.lz -s 716800
    filecutter monmodel.pac	73988 am8815.narc.lz -s 796160
    filecutter monmodel.pac	91149 dm7969.narc.lz -s 870400
    filecutter monmodel.pac	95286 `m5451.narc.lz -s 962048
    filecutter monmodel.pac	92333 dm5004.narc.lz -s 1057792
    filecutter monmodel.pac	85990 fm4766.narc.lz -s 1150464
    filecutter monmodel.pac	93101 dm9329.narc.lz -s 1236480
    filecutter monmodel.pac	110396 cm8970.narc.lz -s 1329664
    filecutter monmodel.pac	71004 bm6405.narc.lz -s 1440256
    filecutter monmodel.pac	98599 dm8119.narc.lz -s 1511424
    filecutter monmodel.pac	59427 om4068.narc.lz -s 1610240
    filecutter monmodel.pac	103650 bm8917.narc.lz -s 1670144
    filecutter monmodel.pac	124695 em8866.narc.lz -s 1774080
    filecutter monmodel.pac	92384 `m8692.narc.lz -s 1899008
    filecutter monmodel.pac	86178 gm6127.narc.lz -s 1991680
    filecutter monmodel.pac	95581 am5450.narc.lz -s 2078208
    filecutter monmodel.pac	81393 fm8975.narc.lz -s 2173952
    filecutter monmodel.pac	126942 lm9330.narc.lz -s 2255360
    filecutter monmodel.pac	96354 gm8129.narc.lz -s 2382336
    filecutter monmodel.pac	88742 om7085.narc.lz -s 2479104
    filecutter monmodel.pac	96105 nm9266.narc.lz -s 2568192
    filecutter monmodel.pac	142767 em9119.narc.lz -s 2664448
    filecutter monmodel.pac	88843 cm8860.narc.lz -s 2807296
    filecutter monmodel.pac	79686 km4758.narc.lz -s 2896384
    filecutter monmodel.pac	91032 mm9265.narc.lz -s 2976256
    filecutter monmodel.pac	118886 km7548.narc.lz -s 3067392
    filecutter monmodel.pac	120072 mm9331.narc.lz -s 3186688
    filecutter monmodel.pac	78875 cm8916.narc.lz -s 3307008
    filecutter monmodel.pac	105412 fm7712.narc.lz -s 3386368
    filecutter monmodel.pac	107661 `m7893.narc.lz -s 3491840
    filecutter monmodel.pac	113435 cm8817.narc.lz -s 3599872
    filecutter monmodel.pac	59248 im8172.narc.lz -s 3713536
    filecutter monmodel.pac	129930 em8091.narc.lz -s 3772928
    filecutter monmodel.pac	78491 am7443.narc.lz -s 3902976
    filecutter monmodel.pac	89076 km8262.narc.lz -s 3981824
    filecutter monmodel.pac	93386 km6484.narc.lz -s 4070912
    filecutter monmodel.pac	113657 em6565.narc.lz -s 4164608
    filecutter monmodel.pac	100741 fm6410.narc.lz -s 4278272
    filecutter monmodel.pac	92039 im7380.narc.lz -s 4379136
    filecutter monmodel.pac	74532 om8604.narc.lz -s 4471296
    filecutter monmodel.pac	76199 am4088.narc.lz -s 4546048
    filecutter monmodel.pac	63274 hm8137.narc.lz -s 4622336
    filecutter monmodel.pac	113703 mm6835.narc.lz -s 4685824
    filecutter monmodel.pac	81908 em8459.narc.lz -s 4800000
    filecutter monmodel.pac	79586 om8460.narc.lz -s 4881920
    filecutter monmodel.pac	70400 fm8308.narc.lz -s 4961792
    filecutter monmodel.pac	130465 cm7735.narc.lz -s 5032448
    filecutter monmodel.pac	88806 jm4748.narc.lz -s 5163008
    filecutter monmodel.pac	93595 `m5000.narc.lz -s 5252096
    filecutter monmodel.pac	86993 jm6292.narc.lz -s 5345792
    filecutter monmodel.pac	71262 bm7264.narc.lz -s 5432832
    filecutter monmodel.pac	94963 im4998.narc.lz -s 5504512
    filecutter monmodel.pac	59960 dm4041.narc.lz -s 5599744
    filecutter monmodel.pac	94358 bm6540.narc.lz -s 5660160
    filecutter monmodel.pac	83215 fm6467.narc.lz -s 5754880
    filecutter monmodel.pac	83537 gm7599.narc.lz -s 5838336
    filecutter monmodel.pac	104176 gm5502.narc.lz -s 5922304
    filecutter monmodel.pac	50495 lm8331.narc.lz -s 6026752
    filecutter monmodel.pac	107198 `m7615.narc.lz -s 6077440
    filecutter monmodel.pac	84460 em6969.narc.lz -s 6184960
    filecutter monmodel.pac	80090 km8035.narc.lz -s 6269440
    filecutter monmodel.pac	79736 cm6176.narc.lz -s 6349824
    filecutter monmodel.pac	96507 bm6661.narc.lz -s 6429696
    filecutter monmodel.pac	94776 hm5697.narc.lz -s 6526464
    filecutter monmodel.pac	85436 im7964.narc.lz -s 6621696
    filecutter monmodel.pac	62005 km4028.narc.lz -s 6707200
    filecutter monmodel.pac	111794 em7171.narc.lz -s 6769664
    filecutter monmodel.pac	70467 nm8461.narc.lz -s 6881792
    filecutter monmodel.pac	54733 dm7732.narc.lz -s 6952448
    filecutter monmodel.pac	104711 `m7736.narc.lz -s 7007232
    filecutter monmodel.pac	54835 km4749.narc.lz -s 7112192
    filecutter monmodel.pac	92490 om7973.narc.lz -s 7167488
    filecutter monmodel.pac	133291 gm7342.narc.lz -s 7260160
    filecutter monmodel.pac	104809 gm7261.narc.lz -s 7393792
    filecutter monmodel.pac	58506 bm5165.narc.lz -s 7498752
    filecutter monmodel.pac	105204 cm7346.narc.lz -s 7557632
    filecutter monmodel.pac	94396 om7184.narc.lz -s 7663104
    filecutter monmodel.pac	78086 km6293.narc.lz -s 7757824
    filecutter monmodel.pac	90160 dm6777.narc.lz -s 7836160
    filecutter monmodel.pac	97009 hm4999.narc.lz -s 7926784
    filecutter monmodel.pac	103101 km5496.narc.lz -s 8024064
    filecutter monmodel.pac	97741 dm6236.narc.lz -s 8127488
    filecutter monmodel.pac	76312 dm8018.narc.lz -s 8225280
    filecutter monmodel.pac	81443 om6639.narc.lz -s 8302080
    filecutter monmodel.pac	118913 cm6563.narc.lz -s 8384000
    filecutter monmodel.pac	128043 cm7616.narc.lz -s 8503296
    filecutter monmodel.pac	86069 lm4386.narc.lz -s 8631808
    filecutter monmodel.pac	71273 im6648.narc.lz -s 8718336
    filecutter monmodel.pac	104156 hm8036.narc.lz -s 8790016
    filecutter monmodel.pac	102559 cm6734.narc.lz -s 8894464
    filecutter monmodel.pac	90076 cm6653.narc.lz -s 8997376
    filecutter monmodel.pac	96312 om4790.narc.lz -s 9087488
    filecutter monmodel.pac	68663 fm4007.narc.lz -s 9184256
    filecutter monmodel.pac	79014 em7557.narc.lz -s 9253376
    filecutter monmodel.pac	101879 `m7406.narc.lz -s 9332736
    filecutter monmodel.pac	100015 km6833.narc.lz -s 9434624
    filecutter monmodel.pac	91831 om7805.narc.lz -s 9534976
    filecutter monmodel.pac	95657 gm5869.narc.lz -s 9627136
    filecutter monmodel.pac	156071 fm7411.narc.lz -s 9722880
    filecutter monmodel.pac	20740 jm7091.narc.lz -s 9879040
    filecutter monmodel.pac	88944 em7733.narc.lz -s 9900032
    filecutter monmodel.pac	70442 fm5556.narc.lz -s 9989120
    filecutter monmodel.pac	76172 nm7419.narc.lz -s 10059776
    filecutter monmodel.pac	87254 dm7420.narc.lz -s 10136064
    filecutter monmodel.pac	117758 fm7343.narc.lz -s 10223616
    filecutter monmodel.pac	51066 km8475.narc.lz -s 10341376
    filecutter monmodel.pac	88033 dm8090.narc.lz -s 10392576
    filecutter monmodel.pac	62239 jm8171.narc.lz -s 10480640
    filecutter monmodel.pac	103291 lm8414.narc.lz -s 10543104
    filecutter monmodel.pac	115903 km8732.narc.lz -s 10646528
    filecutter monmodel.pac	98600 om8651.narc.lz -s 10762752
    filecutter monmodel.pac	60899 bm4773.narc.lz -s 10861568
    filecutter monmodel.pac	95776 nm6397.narc.lz -s 10922496
    filecutter monmodel.pac	115973 dm6564.narc.lz -s 11018752
    filecutter monmodel.pac	128961 km7854.narc.lz -s 11134976
    filecutter monmodel.pac	103071 km7696.narc.lz -s 11264000
    filecutter monmodel.pac	81074 em6170.narc.lz -s 11367424
    filecutter monmodel.pac	86739 fm6731.narc.lz -s 11448832
    filecutter monmodel.pac	71302 bm6100.narc.lz -s 11535872
    filecutter monmodel.pac	116266 hm6821.narc.lz -s 11607552
    filecutter monmodel.pac	67671 im5292.narc.lz -s 11724288
    filecutter monmodel.pac	89590 jm7392.narc.lz -s 11792384
    filecutter monmodel.pac	86918 bm5222.narc.lz -s 11881984
    filecutter monmodel.pac	76252 em7403.narc.lz -s 11969024
    filecutter monmodel.pac	82615 lm7806.narc.lz -s 12045312
    filecutter monmodel.pac	82504 fm6757.narc.lz -s 12128256
    filecutter monmodel.pac	101663 im7092.narc.lz -s 12211200
    filecutter monmodel.pac	64148 im8307.narc.lz -s 12313088
    filecutter monmodel.pac	128990 bm7734.narc.lz -s 12377600
    filecutter monmodel.pac	104504 mm7096.narc.lz -s 12506624
    filecutter monmodel.pac	88961 mm7971.narc.lz -s 12611584
    filecutter monmodel.pac	101728 nm7738.narc.lz -s 12700672
    filecutter monmodel.pac	164056 km7898.narc.lz -s 12802560
    filecutter monmodel.pac	94012 em7421.narc.lz -s 12966912
    filecutter monmodel.pac	78591 am7344.narc.lz -s 13061120
    filecutter monmodel.pac	116401 jm8007.narc.lz -s 13139968
    filecutter monmodel.pac	116629 nm7590.narc.lz -s 13256704
    filecutter monmodel.pac	107155 jm7833.narc.lz -s 13373440
    filecutter monmodel.pac	89108 dm5501.narc.lz -s 13480960
    mkdir compressed
    move *.lz compressed\
    DSDecmp.exe compressed decompressed
    rename decompressed\fm8865.narc.lz fm8865.narc
    rename decompressed\om8727.narc.lz om8727.narc
    rename decompressed\hm4768.narc.lz hm4768.narc
    rename decompressed\lm9264.narc.lz lm9264.narc
    rename decompressed\km9117.narc.lz km9117.narc
    rename decompressed\bm6166.narc.lz bm6166.narc
    rename decompressed\km8969.narc.lz km8969.narc
    rename decompressed\hm6308.narc.lz hm6308.narc
    rename decompressed\am8815.narc.lz am8815.narc
    rename decompressed\dm7969.narc.lz dm7969.narc
    rename decompressed\`m5451.narc.lz `m5451.narc
    rename decompressed\dm5004.narc.lz dm5004.narc
    rename decompressed\fm4766.narc.lz fm4766.narc
    rename decompressed\dm9329.narc.lz dm9329.narc
    rename decompressed\cm8970.narc.lz cm8970.narc
    rename decompressed\bm6405.narc.lz bm6405.narc
    rename decompressed\dm8119.narc.lz dm8119.narc
    rename decompressed\om4068.narc.lz om4068.narc
    rename decompressed\bm8917.narc.lz bm8917.narc
    rename decompressed\em8866.narc.lz em8866.narc
    rename decompressed\`m8692.narc.lz `m8692.narc
    rename decompressed\gm6127.narc.lz gm6127.narc
    rename decompressed\am5450.narc.lz am5450.narc
    rename decompressed\fm8975.narc.lz fm8975.narc
    rename decompressed\lm9330.narc.lz lm9330.narc
    rename decompressed\gm8129.narc.lz gm8129.narc
    rename decompressed\om7085.narc.lz om7085.narc
    rename decompressed\nm9266.narc.lz nm9266.narc
    rename decompressed\em9119.narc.lz em9119.narc
    rename decompressed\cm8860.narc.lz cm8860.narc
    rename decompressed\km4758.narc.lz km4758.narc
    rename decompressed\mm9265.narc.lz mm9265.narc
    rename decompressed\km7548.narc.lz km7548.narc
    rename decompressed\mm9331.narc.lz mm9331.narc
    rename decompressed\cm8916.narc.lz cm8916.narc
    rename decompressed\fm7712.narc.lz fm7712.narc
    rename decompressed\`m7893.narc.lz `m7893.narc
    rename decompressed\cm8817.narc.lz cm8817.narc
    rename decompressed\im8172.narc.lz im8172.narc
    rename decompressed\em8091.narc.lz em8091.narc
    rename decompressed\am7443.narc.lz am7443.narc
    rename decompressed\km8262.narc.lz km8262.narc
    rename decompressed\km6484.narc.lz km6484.narc
    rename decompressed\em6565.narc.lz em6565.narc
    rename decompressed\fm6410.narc.lz fm6410.narc
    rename decompressed\im7380.narc.lz im7380.narc
    rename decompressed\om8604.narc.lz om8604.narc
    rename decompressed\am4088.narc.lz am4088.narc
    rename decompressed\hm8137.narc.lz hm8137.narc
    rename decompressed\mm6835.narc.lz mm6835.narc
    rename decompressed\em8459.narc.lz em8459.narc
    rename decompressed\om8460.narc.lz om8460.narc
    rename decompressed\fm8308.narc.lz fm8308.narc
    rename decompressed\cm7735.narc.lz cm7735.narc
    rename decompressed\jm4748.narc.lz jm4748.narc
    rename decompressed\`m5000.narc.lz `m5000.narc
    rename decompressed\jm6292.narc.lz jm6292.narc
    rename decompressed\bm7264.narc.lz bm7264.narc
    rename decompressed\im4998.narc.lz im4998.narc
    rename decompressed\dm4041.narc.lz dm4041.narc
    rename decompressed\bm6540.narc.lz bm6540.narc
    rename decompressed\fm6467.narc.lz fm6467.narc
    rename decompressed\gm7599.narc.lz gm7599.narc
    rename decompressed\gm5502.narc.lz gm5502.narc
    rename decompressed\lm8331.narc.lz lm8331.narc
    rename decompressed\`m7615.narc.lz `m7615.narc
    rename decompressed\em6969.narc.lz em6969.narc
    rename decompressed\km8035.narc.lz km8035.narc
    rename decompressed\cm6176.narc.lz cm6176.narc
    rename decompressed\bm6661.narc.lz bm6661.narc
    rename decompressed\hm5697.narc.lz hm5697.narc
    rename decompressed\im7964.narc.lz im7964.narc
    rename decompressed\km4028.narc.lz km4028.narc
    rename decompressed\em7171.narc.lz em7171.narc
    rename decompressed\nm8461.narc.lz nm8461.narc
    rename decompressed\dm7732.narc.lz dm7732.narc
    rename decompressed\`m7736.narc.lz `m7736.narc
    rename decompressed\km4749.narc.lz km4749.narc
    rename decompressed\om7973.narc.lz om7973.narc
    rename decompressed\gm7342.narc.lz gm7342.narc
    rename decompressed\gm7261.narc.lz gm7261.narc
    rename decompressed\bm5165.narc.lz bm5165.narc
    rename decompressed\cm7346.narc.lz cm7346.narc
    rename decompressed\om7184.narc.lz om7184.narc
    rename decompressed\km6293.narc.lz km6293.narc
    rename decompressed\dm6777.narc.lz dm6777.narc
    rename decompressed\hm4999.narc.lz hm4999.narc
    rename decompressed\km5496.narc.lz km5496.narc
    rename decompressed\dm6236.narc.lz dm6236.narc
    rename decompressed\dm8018.narc.lz dm8018.narc
    rename decompressed\om6639.narc.lz om6639.narc
    rename decompressed\cm6563.narc.lz cm6563.narc
    rename decompressed\cm7616.narc.lz cm7616.narc
    rename decompressed\lm4386.narc.lz lm4386.narc
    rename decompressed\im6648.narc.lz im6648.narc
    rename decompressed\hm8036.narc.lz hm8036.narc
    rename decompressed\cm6734.narc.lz cm6734.narc
    rename decompressed\cm6653.narc.lz cm6653.narc
    rename decompressed\om4790.narc.lz om4790.narc
    rename decompressed\fm4007.narc.lz fm4007.narc
    rename decompressed\em7557.narc.lz em7557.narc
    rename decompressed\`m7406.narc.lz `m7406.narc
    rename decompressed\km6833.narc.lz km6833.narc
    rename decompressed\om7805.narc.lz om7805.narc
    rename decompressed\gm5869.narc.lz gm5869.narc
    rename decompressed\fm7411.narc.lz fm7411.narc
    rename decompressed\jm7091.narc.lz jm7091.narc
    rename decompressed\em7733.narc.lz em7733.narc
    rename decompressed\fm5556.narc.lz fm5556.narc
    rename decompressed\nm7419.narc.lz nm7419.narc
    rename decompressed\dm7420.narc.lz dm7420.narc
    rename decompressed\fm7343.narc.lz fm7343.narc
    rename decompressed\km8475.narc.lz km8475.narc
    rename decompressed\dm8090.narc.lz dm8090.narc
    rename decompressed\jm8171.narc.lz jm8171.narc
    rename decompressed\lm8414.narc.lz lm8414.narc
    rename decompressed\km8732.narc.lz km8732.narc
    rename decompressed\om8651.narc.lz om8651.narc
    rename decompressed\bm4773.narc.lz bm4773.narc
    rename decompressed\nm6397.narc.lz nm6397.narc
    rename decompressed\dm6564.narc.lz dm6564.narc
    rename decompressed\km7854.narc.lz km7854.narc
    rename decompressed\km7696.narc.lz km7696.narc
    rename decompressed\em6170.narc.lz em6170.narc
    rename decompressed\fm6731.narc.lz fm6731.narc
    rename decompressed\bm6100.narc.lz bm6100.narc
    rename decompressed\hm6821.narc.lz hm6821.narc
    rename decompressed\im5292.narc.lz im5292.narc
    rename decompressed\jm7392.narc.lz jm7392.narc
    rename decompressed\bm5222.narc.lz bm5222.narc
    rename decompressed\em7403.narc.lz em7403.narc
    rename decompressed\lm7806.narc.lz lm7806.narc
    rename decompressed\fm6757.narc.lz fm6757.narc
    rename decompressed\im7092.narc.lz im7092.narc
    rename decompressed\im8307.narc.lz im8307.narc
    rename decompressed\bm7734.narc.lz bm7734.narc
    rename decompressed\mm7096.narc.lz mm7096.narc
    rename decompressed\mm7971.narc.lz mm7971.narc
    rename decompressed\nm7738.narc.lz nm7738.narc
    rename decompressed\km7898.narc.lz km7898.narc
    rename decompressed\em7421.narc.lz em7421.narc
    rename decompressed\am7344.narc.lz am7344.narc
    rename decompressed\jm8007.narc.lz jm8007.narc
    rename decompressed\nm7590.narc.lz nm7590.narc
    rename decompressed\jm7833.narc.lz jm7833.narc
    rename decompressed\dm5501.narc.lz dm5501.narc
    Run it from the same directory as filecutter and monmodel.pac will spawn a bunch of narc files in a folder called decompressed.

    From here you can run narctool if you so desire, personally I would pack them into a .nds file and let crystaltile2 handle it (although crystaltile2 can handle them directly too if you prefer). I had a quick scan and it seems you might not be dealing with standard 3d model formats.
    Example though representative names from a random narc file ('m7736.narc)

    The NARC files look fairly standard but I actually did not check them properly beyond opening a handful in crystaltile2. I did a strings dump though and the example above netted a few nice things

    0x00000150 0x00000008 lambert1
    0x000001A8 0x00000004 hara
    0x00000210 0x00000007 b_tare1
    0x00000278 0x00000007 b_tare2
    0x000002E0 0x00000005 c_obi
    0x00000348 0x00000007 f_tare1
    0x000003B0 0x00000007 f_tare2
    0x00000418 0x00000004 hosi
    0x00000480 0x00000007 joint13
    0x000004E8 0x00000006 l_momo
    0x00000550 0x00000006 l_sune
    0x000005B8 0x00000007 l_kaato
    0x00000620 0x00000006 l_tuma
    0x00000688 0x00000006 r_momo
    0x000006F0 0x00000006 r_sune
    0x00000758 0x00000008 r_kakato
    0x000007C0 0x00000006 r_tuma
    0x00000828 0x00000005 l_obi
    0x00000890 0x00000004 mune
    0x000008F8 0x00000004 kubi
    0x00000960 0x00000008 l_sakotu
    0x000009C8 0x00000009 l_jyouwan
    0x00000A30 0x00000007 l_kawan
    0x00000A98 0x00000008 l_tekubi
    0x00000B00 0x00000008 r_sakotu
    0x00000B68 0x00000009 r_jyouwan
    0x00000BD0 0x00000007 r_kawan
    0x00000C38 0x00000008 r_tekubi

    On top of this that I saw most had two files in (one m[numbers in the file]_mdl.bin and another m[numbers in the file]_mdlanm.bin) but some had those and m[numbers in the file]_texanm.bin - presumably model, animation and texture animation (if it exists). Good news is there does not appear to be further compression but the bad news is you are dealing with a custom format (it could be a cut down format but I doubt it).

    Afraid I find 3d model format reverse engineering a scary gig at this point on a Sunday evening so I will leave it to you. I had the quickest (truly two minutes with tile editor without any use of a hex editor to direct me) of scans to try and grab some textures but came up short. I might have to return though as I missed out on getting to pull apart NSBMD and would like a 3d format for the docs if nothing else.

    edit- later that evening.

    I got more even more bored and extracted every narc file (turns out the pokemon narctool did not want to work but I have several more versions that did work, crystaltile2 and narcexplorer did admirably though but they are not command line that I can see)- one list of filenames of the resulting mess
    Extracted narc filenames list

    Of special interest is likely to be m6639_visanm.bin (no other "extension" like it) and I also see there is a matanm (material animation?) too with the mdlanm, mdl and texanm.

    Edit another
    Did a bit of looking and m7091_mdl.bin is the smallest model and if the internal names to not deceive me* it contains a handful of various 3d primitives. If this is the case then they have potentially almost handed the format on a silver platter. I do have a sizes list and I did drop the .bin part in favour of the "extensions" there (m9331_mdl.bin is now m9331.mdl and m9331_mdlanm.bin is now m9331.mdlanm and so forth) and if you really want I can share batch files for it all. There are 146 model files, 146 mdlanm and significantly less of the others (26 texanm, 45 matanm and 1 vis)

    * list of the useful results of the string search (after this it is random luck that leads to a string by the looks of things)
    0x00000000 0x00000004 YIMD
    0x00000007 0x00000004 a2Tv
    0x0000000E 0x00000006 xV2211
    0x00000084 0x00000006 blinn1
    0x000000DC 0x00000006 blinn2
    0x00000134 0x00000008 lambert2
    0x0000018C 0x00000008 lambert3
    0x000001E4 0x00000008 lambert5
    0x0000023C 0x00000008 lambert6
    0x00000294 0x00000005 m7091
    0x000002FC 0x0000000A pCylinder1
    0x00000364 0x0000000C pCylinder1_1
    0x000003CC 0x0000000A pCylinder2
    0x00000434 0x0000000C pCylinder2_1
    0x0000049C 0x00000007 pPlane1
    0x00000504 0x00000008 pSphere2
    0x0000056C 0x00000008 pSphere4
    0x000005D4 0x00000008 pSphere5
    0x0000063C 0x0000000C polySurface1
  3. tysovsky

    Newcomer tysovsky Newbie

    Sep 14, 2009
    FAST619 thanks a lot! You really helped me! I'll try this later. And yeah thanks again.

    OK I managed to open narc files with Narc Explore 2.0. Inside these archives are 2, sometimes 3 files - " *archivename*_mdl.bin " - I guess that's geometry, " *archivename*_mdlanm.bin " I guess that this is animation and in some archives are files called " *archivename*_textanim.bin " - I think that this is texture animation ( very few monsters in WC have it, thats why it is not in all the archives).
  4. FAST6191

    Reporter FAST6191 Techromancer

    Nov 21, 2005
    United Kingdom
    Monday morning (edit- apparently it turned afternoon by a bit of a way, oh well) is far nicer for ROM hacking although I still do not like the fomat much. I am now working with the unpacked files (one of the later versions of narctool and another batch file saw to that). Just models for now- animations, colours, textures and such will come later although I might have a look at the animations later as they could give a clue as to the arrangements.

    As a rule of thumb anything demanding of resources on an embedded system of low power like the DS such as sound or 3d will tend to fall close to the hardware ( http://nocash.emubas...tionsbyvertices ) however I see lambert (which I should have picked up on last night) which I hope does not mean use of a lambert function on a matrix and if indeed they can define round objects things get interesting. Lambert however is in many mdl files but not all.
    On top of this for now I will assume Cartesian points (what you use on a standard graph) rather than polar (a distance and an angle from a fixed point) or something. No idea what level/manner of fixed or floating point and signing that might exist in the format.

    Mathematics lesson is not getting it done though so reverse engineering the format.

    It looks like there are at least three header sections.
    Main header
    Sub header (lambert is commmon here). Appears to be composed of end to end entries 58h long.
    Parts header. Section leader and sections following all end to end and all 68h long (with what might be 40h given over to the item name- at least in all I saw the first 40h only had the name and 00 padding).

    What could then be the files themselves (I have not managed to get around to drilling down into these yet or even much of the second and third headers beyond what you see and locating them). At a glance there are two broad types (first fairly dense and random and the latter with a lot of 00 values and with some patterns in numbers) but I am assigning no deeper meaning to that for now.

    Header presumably for the file itself- starts with YIMD and usually runs for about E0h. It is slightly proportional to file size but m7403 has a lot of subfiles but in total is only 83K which is smaller than most of the other models. An apparent pointer is found at 24h and appears to point to the start of the next section.
    The start of the header is always
    00000000 5949 4D44 0000 0B61 3254 7698 3412 7856 YIMD...a2Tv.4.xV
    00000010 3232 3131 0000 0000					 2211....		
    I do not want to call magic stamp other than the YIMD and maybe 2211 as it could be something useful but that does not change in this game.
    After this there is a value like ??** where ?? is anything and ** is 02 03 or 04 with 03 being more common by a good way.
    At 20h there appears to be a value that says how many lambert/blinn/phong sections there are to come unless there are none in which case that number gets somewhat larger. I do not want to call this right now as it does not appear to always hold (sometimes there are extra sections although no lambert or anything).
    At 24h there appears to be a pointer to the first lambert or equivalent.
    At 30h there appears to be a value for the amount of sections in the model names section (that is to say all the models plus the world_root or whatever). However I saw a few that did not follow this.
    At 34h there appears to be a pointer to the start of the item names section.
    At 40h there is something
    At 44h though there is what appears to be the end of the item names section/start of the models or at least something new.
    The next few bytes appear to be somewhat variable in length (although many have the same length) after which we lead into the counting section.

    item names and locations of the names- m9119

    I then looked to see how many sections appeared in the file proper and it appears to account for them. m9119 has 47 (decimal) sections or 2f hex sections and before the lambert part numbers count up to it although that only leaves 30h at most to do anything with before the lambert section (or in this case doutai- a romanisation of a Japanese word for movement/body and similar terms).

    Sub header (where lambert and some other things like doutai, blinn, phong (unknown if this corresponds to blinn and phong the 3d lighting/shading methods) and cha seem to be housed). Usually ends where group? , world_root or the name of the file is put.

    Sections header- names of parts and presumably some data on them plus the overall group name. It might be said the names have 40h assigned to them which is odd but again I am not here to judge. This also means each section appears to be 68h long starting with the name of the item "part".

    In the meantime one handy cut out and keep guide.
    Location (hex) Length (hex) Meaning Header 0 18 Start of file and identical for all 18 4 Unknown (**?? where ?? is 02, 03 or 04 with 03 being the most common) 1c 4 unknown 20 4 Amount of subheader sections (normally) 24 4 Location of subheader 28 4 unknown 2c 4 unknown 30 4 amount of entries in item header (items+1)- normally (occasionally larger)* 34 4 location of item header 38 4 unknown 3c 4 unknown- always 6000 0000 40 4 unknown 44 4 start of model section (or end of item header) 48 variable? unknown Previous See 30 Counting up for every proper item entry (4 bytes per entry) save when 30 is “wrong” Subheader See 24 58 per entry Name and unknown values Item header 68 Section lead name and unknown values (a bit different to proper entries) 68 per entry Name (possibly 40h long) and unknown data File start See 44 *m8817 being a good example

    Edit- looking around this afternoon I found a video of some summon animations.


    Now I have an idea of what I should be seeing in the end. Probably also worth their time porting this 3d engine/custom making it for it as well (NSBMD would not appreciate this sort of thing).
  5. tysovsky

    Newcomer tysovsky Newbie

    Sep 14, 2009
    Thanks for your reply.
    Maybe I'm bit egotistical, but how is your progress? Even though it was my request I really stuck right now, so all I can do is leave it to the profi.
  6. shanes

    Newcomer shanes Newbie

    Apr 24, 2012
    United States
    Hey I'm new to ripping models from games and I loved the Yu-Gi-Oh! tv series when I was younger so I decided to make this my first project!
    Problem is I have nooo idea what I am supposed to do after turned all the files into .bin's The two of you seemed to have gotten it,
    Mind helping me out?
  7. FAST6191

    Reporter FAST6191 Techromancer

    Nov 21, 2005
    United Kingdom
    At this point I am not entirely sure what to do with the bin files- they are a custom format unlike the standard nsbmd format the vast majority of other DS games that use 3d use some version of (and we have several tools to deal with http://www.propl.nl/random/NSBTXExtractor.zip and http://filetrip.net/f28230-nsbmd-tool-1-0.html being the main two and I guess something like MKDS course modifier or lowlines' console tool for when those fall short*).
    Back on topic this means it is reverse engineering time for a custom (and what looks to be quite high level) 3d format including textures and animated textures for them which is a pretty in depth hack and if the hints the strings have given are anything to go by my knowledge of 3d methods and techniques needs to be improved before I tackle it properly.

    *others that are hear via a search for NSBMD and having the tools not do what you want might be interested in http://gbatemp.net/topic/319635-extracting-textures-from-an-nsbmd-file/
  8. tysovsky

    Newcomer tysovsky Newbie

    Sep 14, 2009
    I did nothing, FAST6191 did everything. To rip these models tool that can open those bins is needed. I'm more 3D modeller than programist, so there is no much help from me. But if you want to rip some Yu-gi-oh 3d models you can use Yu-gi-oh! Wheelie Breakers and bbres viewer, or Yu-gi-oh! Falsebound Kingdom + Dolphin + 3D ripper DX. But there are very few of them in these games.
  9. shanes

    Newcomer shanes Newbie

    Apr 24, 2012
    United States
  10. FAST6191

    Reporter FAST6191 Techromancer

    Nov 21, 2005
    United Kingdom
    .bin much like .dat is a generic extension used across computing for countless different formats and concepts. There was originally a bit of tendency to use them for binaries (as in the thing that largely houses code to run on the processor) but there is so much else out there now (like this for instance) I would not even consider it without additional evidence.

    Additionally as mentioned this appears to be a quite high level custom format (blinn phong is a lighting/shader/reflection model that as far as I know and the docs I have read say the DS hardware does not have any hardware level support form and as mentioned above lambert functions can be used to map 3d points) meaning the person that gets to reverse engineer it is probably going to want both high and low level knowledge of 3d graphics, low file reverse engineering abilities, fairly in depth knowledge of the DS 3d hardware and knowledge of how to make high level 3d work on very limited hardware like the DS. Once that is done you still have the animation, textures and texture animations to do as well but those should not be too bad.
  11. 20ekaj

    Newcomer 20ekaj Newbie

    Sep 20, 2016
    has any one found away to open the binary files and get the 3d models out

Share This Page