jakcron / nstool

General purpose read/extract tool for Nintendo Switch file formats.
MIT License
449 stars 43 forks source link

Error while extracting NCA file #83

Closed rsa16 closed 1 year ago

rsa16 commented 2 years ago

I first extracted the contents of an NSP file, and then I tried to extract the archive which contained the program itself. However, nstool had extracted 5 files before throwing an error.

This was the command I ran: nstool --tik "0100ec800800c0000000000000000004.tik" -x "./narutoprogram" -k "prod.keys" aaeb87f6434beb2f253400f62bc63b54.nca

And this was the output of the command: [ContentArchive/Extract] Saving .\narutoprogram\0\main... Saving .\narutoprogram\0\main.npdm... Saving .\narutoprogram\0\rtld... Saving .\narutoprogram\0\sdk... Saving .\narutoprogram\1\narutoNext123_Release_NX64.nspd_root... [tc::io::VirtualFileSystem::openFile() ERROR] File does not exist.

jakcron commented 2 years ago

Hi @rsa16 thanks for creating this issue.

Can you please confirm some details for me, to help me resolve this issue:

rsa16 commented 2 years ago

I'm using NSTool v1.6.5 along with Windows 11. I'm not sure what the version of the game I'm trying to extract is, though I believe it's 1.0.0.

And the output of the file tree command:

[NCA Header]
  Format Type:     NCA3
  Dist. Type:      Download
  Content Type:    Program
  Key Generation:  4
  Sig. Generation: 0
  Kaek Index:      Application (0)
  Size:            0x468770000
  ProgID:          0x0100ec800800c000
  Content Index:   0
  SdkAddon Ver.:   4.4.0 (v67371008)
  RightsId:        0100EC800800C0000000000000000004
[ContentArchive/Tree]
 program:/
  0/
   main
   main.npdm
   rtld
   sdk
  1/
   narutoNext123_Release_NX64.nspd_root
   data/
    error64x64.dds
    sprite.eft
    sprite.fx
    content_info/
     SWITCH/
      JP/
       content_info.xfbin
      NA/
       content_info.xfbin
    interface/
     menu123.xml
     title_autosave.xfbin
     title_logo.xfbin
     title_menu_bar.xfbin
     title_menu_bg.xfbin
     title_menu_image.xfbin
     title_menu_logo.xfbin
     EU/
      title_menu_bar_text1.xfbin
      title_menu_bar_text2.xfbin
      title_menu_bar_text3.xfbin
      title_menu_image.xfbin
      title_menu_logo.xfbin
     JP/
      title_menu_bar_text1.xfbin
      title_menu_bar_text2.xfbin
      title_menu_bar_text3.xfbin
      title_menu_image.xfbin
      title_menu_logo.xfbin
     NA/
      title_menu_bar_text1.xfbin
      title_menu_bar_text2.xfbin
      title_menu_bar_text3.xfbin
      title_menu_image.xfbin
      title_menu_logo.xfbin
    message/
     SWITCH/
      eng/
       messageInfo.bin.xfbin
      fre/
       messageInfo.bin.xfbin
      ger/
       messageInfo.bin.xfbin
      ita/
       messageInfo.bin.xfbin
      pol/
       messageInfo.bin.xfbin
      por/
       messageInfo.bin.xfbin
      rus/
       messageInfo.bin.xfbin
      spa/
       messageInfo.bin.xfbin
    out/
     compute_morphingCSMainMorphing3.nvn
     compute_morphingCSMainMorphing3_Once.nvn
     compute_morphingCSMainMorphing3and4.nvn
     compute_morphingCSMainMorphing3and4_Once.nvn
     compute_morphingCSMainMorphing4.nvn
     compute_morphingCSMainMorphing4_Once.nvn
     compute_morphingCSMainMorphingBase3.nvn
     compute_morphingCSMainMorphingBase3_Once.nvn
     compute_morphingCSMainMorphingBase3and4.nvn
     compute_morphingCSMainMorphingBase3and4_Once.nvn
     compute_morphingCSMainMorphingBase4.nvn
     compute_morphingCSMainMorphingBase4_Once.nvn
     compute_skinningCSMainSkinning3.nvn
     compute_skinningCSMainSkinning3EX.nvn
     compute_skinningCSMainSkinning3EX_Once.nvn
     compute_skinningCSMainSkinning3_Once.nvn
     compute_skinningCSMainSkinning3and4.nvn
     compute_skinningCSMainSkinning3and4EX.nvn
     compute_skinningCSMainSkinning3and4EX_Once.nvn
     compute_skinningCSMainSkinning3and4_Once.nvn
     compute_skinningCSMainSkinning4.nvn
     compute_skinningCSMainSkinning4EX.nvn
     compute_skinningCSMainSkinning4EX_Once.nvn
     compute_skinningCSMainSkinning4_Once.nvn
     compute_spritebatchCSSpriteBatch3D.nvn
     linePS.nvn
     lineVS_2D.nvn
     lineVS_3D.nvn
     model_samplePS.nvn
     model_sampleVS.nvn
     spritePS.nvn
     spriteVS_2D.nvn
     spriteVS_3D.nvn
     spriteVS_BATCH2D.nvn
     spriteVS_PART2D.nvn
     spriteVS_PART3D.nvn
     spriteVS_POLY2D.nvn
     spriteVS_POLY3D.nvn
     systemPS.nvn
     systemPS_ERROR.nvn
     systemPS_QUAD.nvn
     systemVS.nvn
     systemVS_ERROR.nvn
     systemVS_QUAD.nvn
     systemVS_SKIN.nvn
    shader/
     system.eft
     system.fx
    sound/
     config.nus3conf
     SWITCH/
      bgm.acb
      bgm.awb
      common.xfbin
      storm3.acf
    system/
     AreaTexDX10.tex.xfbin
     SearchTex.tex.xfbin
     celshade.tex.xfbin
     content_info.xfbin
     grd00.tex.xfbin
     nml00.tex.xfbin
     nuccMaterial_nx.nsh
     nuccPostEffect_nx.nsh
     xftool.fnt.xfbin
    ui/
     cmn/
      xcmn00.xfbin
      SWITCH/
       cmn_button00.xfbin
       xcmn_button00.xfbin
      eng/
       xcmn_text00.xfbin
      fre/
       xcmn_text00.xfbin
      ger/
       xcmn_text00.xfbin
      ita/
       xcmn_text00.xfbin
      por/
       xcmn_text00.xfbin
      rus/
       xcmn_text00.xfbin
      spa/
       xcmn_text00.xfbin
     font/
      font_chi.xfbin
      xf123_staffroll.fnt.xfbin
      xfgame_cmn.fnt.xfbin
      SWITCH/
       iconfontParam.bin.xfbin
      rus/
       xfgame_cmn.fnt.xfbin
     option/
      option_board.xfbin
      option_button.xfbin
      option_cmn.xfbin
      option_cursor.xfbin
      option_line.xfbin
      option_scrbar.xfbin
      SWITCH/
       option_button.xfbin
     staff_roll/
      SWITCH/
       eur/
        staffRollData_Storm123.xfbin
       rus/
        staffRollData_Storm123.xfbin
       usa/
        staffRollData_Storm123.xfbin
   data_ns1/
    error64x64.dds
    sprite.eft
    disc/
     adx2.cpk
     dataRegion.cpk
     movie.cpk
    out/
     compute_morphingCSMainMorphing3.nvn
     compute_morphingCSMainMorphing3_Once.nvn
     compute_morphingCSMainMorphing3and4.nvn
     compute_morphingCSMainMorphing3and4_Once.nvn
     compute_morphingCSMainMorphing4.nvn
     compute_morphingCSMainMorphing4_Once.nvn
     compute_morphingCSMainMorphingBase3.nvn
     compute_morphingCSMainMorphingBase3_Once.nvn
     compute_morphingCSMainMorphingBase3and4.nvn
     compute_morphingCSMainMorphingBase3and4_Once.nvn
     compute_morphingCSMainMorphingBase4.nvn
     compute_morphingCSMainMorphingBase4_Once.nvn
     compute_skinningCSMainSkinning3.nvn
     compute_skinningCSMainSkinning3EX.nvn
     compute_skinningCSMainSkinning3EX_Once.nvn
     compute_skinningCSMainSkinning3_Once.nvn
     compute_skinningCSMainSkinning3and4.nvn
     compute_skinningCSMainSkinning3and4EX.nvn
     compute_skinningCSMainSkinning3and4EX_Once.nvn
     compute_skinningCSMainSkinning3and4_Once.nvn
     compute_skinningCSMainSkinning4.nvn
     compute_skinningCSMainSkinning4EX.nvn
     compute_skinningCSMainSkinning4EX_Once.nvn
     compute_skinningCSMainSkinning4_Once.nvn
     compute_spritebatchCSSpriteBatch3D.nvn
     linePS.nvn
     lineVS_2D.nvn
     lineVS_3D.nvn
     model_samplePS.nvn
     model_sampleVS.nvn
     spritePS.nvn
     spriteVS_2D.nvn
     spriteVS_3D.nvn
     spriteVS_BATCH2D.nvn
     spriteVS_PART2D.nvn
     spriteVS_PART3D.nvn
     spriteVS_POLY2D.nvn
     spriteVS_POLY3D.nvn
     systemPS.nvn
     systemPS_ERROR.nvn
     systemPS_QUAD.nvn
     systemVS.nvn
     systemVS_ERROR.nvn
     systemVS_QUAD.nvn
     systemVS_SKIN.nvn
    sim/
     data.cpk
     sound.cpk
     stage.cpk
    sound/
     config.nus3conf
    stream/
     d01_20.strm.xfbin
     d01_20.xml
     d01_20e.xfbin
     d01_25.strm.xfbin
     d01_25.xml
     d01_2k.xfbin
     d02_20.strm.xfbin
     d02_20.xml
     d02_20e.xfbin
     d02_25.strm.xfbin
     d02_25.xml
     d02_2k.xfbin
     d03_10.strm.xfbin
     d03_10.xml
     d03_10e.xfbin
     d03_15.strm.xfbin
     d03_15.xml
     d03_1k.xfbin
     d04_10.strm.xfbin
     d04_10.xml
     d04_10e.xfbin
     d04_15.strm.xfbin
     d04_15.xml
     d04_1k.xfbin
     d05_10.strm.xfbin
     d05_10.xml
     d05_10e.xfbin
     d05_15.strm.xfbin
     d05_15.xml
     d05_1k.xfbin
     d06_10.strm.xfbin
     d06_10.xml
     d06_10e.xfbin
     d06_15.strm.xfbin
     d06_15.xml
     d06_1k.xfbin
     d07_10.strm.xfbin
     d07_10.xml
     d07_10e.xfbin
     d07_15.strm.xfbin
     d07_15.xml
     d07_1k.xfbin
     d08_10.strm.xfbin
     d08_10.xml
     d08_10e.xfbin
     d08_15.strm.xfbin
     d08_15.xml
     d08_1k.xfbin
     d09_10.strm.xfbin
     d09_10.xml
     d09_10e.xfbin
     d09_15.strm.xfbin
     d09_15.xml
     d09_1k.xfbin
     d10_10.strm.xfbin
     d10_10.xml
     d10_10e.xfbin
     d10_15.strm.xfbin
     d10_15.xml
     d10_1k.xfbin
     d11_10.strm.xfbin
     d11_10.xml
     d11_10e.xfbin
     d11_15.strm.xfbin
     d11_15.xml
     d11_1k.xfbin
     d12_10.strm.xfbin
     d12_10.xml
     d12_10e.xfbin
     d12_11.strm.xfbin
     d12_11.xml
     d12_15.strm.xfbin
     d12_15.xml
     d12_1k.xfbin
     d13_10.strm.xfbin
     d13_10.xml
     d13_10e.xfbin
     d13_15.strm.xfbin
     d13_15.xml
     d13_1k.xfbin
     d14_10.strm.xfbin
     d14_10.xml
     d14_10e.xfbin
     d14_15.strm.xfbin
     d14_15.xml
     d14_1k.xfbin
     d15_10.strm.xfbin
     d15_10.xml
     d15_10e.xfbin
     d15_15.strm.xfbin
     d15_15.xml
     d15_1k.xfbin
     d16_10.strm.xfbin
     d16_10.xml
     d16_10e.xfbin
     d16_15.strm.xfbin
     d16_15.xml
     d16_1k.xfbin
     d17_10.strm.xfbin
     d17_10.xml
     d17_10e.xfbin
     d17_10e_JP.xfbin
     d17_11.strm.xfbin
     d17_11.xml
     d17_15.strm.xfbin
     d17_15.xml
     d17_1k.xfbin
     d18_10.strm.xfbin
     d18_10.xml
     d18_10e.xfbin
     d18_15.strm.xfbin
     d18_15.xml
     d18_1k.xfbin
     d19_10.strm.xfbin
     d19_10.xml
     d19_10e.xfbin
     d19_15.strm.xfbin
     d19_15.xml
     d19_1k.xfbin
     d20_10.strm.xfbin
     d20_10.xml
     d20_10e.xfbin
     d20_15.strm.xfbin
     d20_15.xml
     d20_1k.xfbin
     d21_10.strm.xfbin
     d21_10.xml
     d21_10e.xfbin
     d21_15.strm.xfbin
     d21_15.xml
     d21_1k.xfbin
     d22_10.strm.xfbin
     d22_10.xml
     d22_10e.xfbin
     d22_15.strm.xfbin
     d22_15.xml
     d22_1k.xfbin
     d23_10.strm.xfbin
     d23_10.xml
     d23_10e.xfbin
     d23_15.strm.xfbin
     d23_15.xml
     d23_1k.xfbin
     d24_10.strm.xfbin
     d24_10.xml
     d24_10e.xfbin
     d24_15.strm.xfbin
     d24_15.xml
     d24_1k.xfbin
     d25_10.strm.xfbin
     d25_10.xml
     d25_10e.xfbin
     d25_15.strm.xfbin
     d25_15.xml
     d25_1k.xfbin
     d26_10.strm.xfbin
     d26_10.xml
     d26_10e.xfbin
     d26_15.strm.xfbin
     d26_15.xml
     d26_1k.xfbin
     d27_10.strm.xfbin
     d27_10.xml
     d27_10e.xfbin
     d27_15.strm.xfbin
     d27_15.xml
     d27_1k.xfbin
     d28_10.strm.xfbin
     d28_10.xml
     d28_10e.xfbin
     d28_15.strm.xfbin
     d28_15.xml
     d28_1k.xfbin
     d29_10.strm.xfbin
     d29_10.xml
     d29_10e.xfbin
     d29_15.strm.xfbin
     d29_15.xml
     d29_1k.xfbin
     d30_10.strm.xfbin
     d30_10.xml
     d30_10e.xfbin
     d30_15.strm.xfbin
     d30_15.xml
     d30_1k.xfbin
     d31_20.strm.xfbin
     d31_20.xml
     d31_20e.xfbin
     d31_25.strm.xfbin
     d31_25.xml
     d32_20.strm.xfbin
     d32_20.xml
     d32_20e.xfbin
     d32_25.strm.xfbin
     d32_25.xml
     d32_2k.xfbin
     d33_10.strm.xfbin
     d33_10.xml
     d33_10e.xfbin
     d33_15.strm.xfbin
     d33_15.xml
     d34_10.strm.xfbin
     d34_10.xml
     d34_10e.xfbin
     d34_15.strm.xfbin
     d34_15.xml
     d35_10.strm.xfbin
     d35_10.xml
     d35_10e.xfbin
     d35_15.strm.xfbin
     d35_15.xml
     d36_10.strm.xfbin
     d36_10.xml
     d36_10e.xfbin
     d36_15.strm.xfbin
     d36_15.xml
    system/
     AreaTexDX10.tex.xfbin
     SearchTex.tex.xfbin
     celshade.tex.xfbin
     grd00.tex.xfbin
     nml00.tex.xfbin
     nuccMaterial_nx.nsh
     nuccPostEffect_nx.nsh
     outlinePatch.xml
     xftool.fnt.xfbin
   data_ns2/
    error64x64.dds
    sprite.eft
    disc/
     adx2.cpk
     dataRegion.cpk
     movie.cpk
    out/
     compute_morphingCSMainMorphing3.nvn
     compute_morphingCSMainMorphing3_Once.nvn
     compute_morphingCSMainMorphing3and4.nvn
     compute_morphingCSMainMorphing3and4_Once.nvn
     compute_morphingCSMainMorphing4.nvn
     compute_morphingCSMainMorphing4_Once.nvn
     compute_morphingCSMainMorphingBase3.nvn
     compute_morphingCSMainMorphingBase3_Once.nvn
     compute_morphingCSMainMorphingBase3and4.nvn
     compute_morphingCSMainMorphingBase3and4_Once.nvn
     compute_morphingCSMainMorphingBase4.nvn
     compute_morphingCSMainMorphingBase4_Once.nvn
     compute_skinningCSMainSkinning3.nvn
     compute_skinningCSMainSkinning3EX.nvn
     compute_skinningCSMainSkinning3EX_Once.nvn
     compute_skinningCSMainSkinning3_Once.nvn
     compute_skinningCSMainSkinning3and4.nvn
     compute_skinningCSMainSkinning3and4EX.nvn
     compute_skinningCSMainSkinning3and4EX_Once.nvn
     compute_skinningCSMainSkinning3and4_Once.nvn
     compute_skinningCSMainSkinning4.nvn
     compute_skinningCSMainSkinning4EX.nvn
     compute_skinningCSMainSkinning4EX_Once.nvn
     compute_skinningCSMainSkinning4_Once.nvn
     compute_spritebatchCSSpriteBatch3D.nvn
     linePS.nvn
     lineVS_2D.nvn
     lineVS_3D.nvn
     model_samplePS.nvn
     model_sampleVS.nvn
     spritePS.nvn
     spriteVS_2D.nvn
     spriteVS_3D.nvn
     spriteVS_BATCH2D.nvn
     spriteVS_PART2D.nvn
     spriteVS_PART3D.nvn
     spriteVS_POLY2D.nvn
     spriteVS_POLY3D.nvn
     systemPS.nvn
     systemPS_ERROR.nvn
     systemPS_QUAD.nvn
     systemVS.nvn
     systemVS_ERROR.nvn
     systemVS_QUAD.nvn
     systemVS_SKIN.nvn
    sim/
     data.cpk
     sound.cpk
     stage.cpk
    sound/
     config.nus3conf
    system/
     ACChunkList.bin.xfbin
     AreaTexDX10.tex.xfbin
     SearchTex.tex.xfbin
     ccAdjustParam.xfbin
     ccAdjustParamTUI.xfbin
     celshade.tex.xfbin
     grd00.tex.xfbin
     nml00.tex.xfbin
     nuccMaterial_nx.nsh
     nuccPostEffect_nx.nsh
     xftool.fnt.xfbin
     SWITCH/
      ccAdjustParamAT_Data.xfbin
      ccAdjustParamPG_Data.xfbin
   data_ns3/
    error64x64.dds
    sprite.eft
    disc/
     adx2.cpk
     dataRegion.cpk
     dlc.cpk
     movie.cpk
    out/
     compute_morphingCSMainMorphing3.nvn
     compute_morphingCSMainMorphing3_Once.nvn
     compute_morphingCSMainMorphing3and4.nvn
     compute_morphingCSMainMorphing3and4_Once.nvn
     compute_morphingCSMainMorphing4.nvn
     compute_morphingCSMainMorphing4_Once.nvn
     compute_morphingCSMainMorphingBase3.nvn
     compute_morphingCSMainMorphingBase3_Once.nvn
     compute_morphingCSMainMorphingBase3and4.nvn
     compute_morphingCSMainMorphingBase3and4_Once.nvn
     compute_morphingCSMainMorphingBase4.nvn
     compute_morphingCSMainMorphingBase4_Once.nvn
     compute_skinningCSMainSkinning3.nvn
     compute_skinningCSMainSkinning3EX.nvn
     compute_skinningCSMainSkinning3EX_Once.nvn
     compute_skinningCSMainSkinning3_Once.nvn
     compute_skinningCSMainSkinning3and4.nvn
     compute_skinningCSMainSkinning3and4EX.nvn
     compute_skinningCSMainSkinning3and4EX_Once.nvn
     compute_skinningCSMainSkinning3and4_Once.nvn
     compute_skinningCSMainSkinning4.nvn
     compute_skinningCSMainSkinning4EX.nvn
     compute_skinningCSMainSkinning4EX_Once.nvn
     compute_skinningCSMainSkinning4_Once.nvn
     compute_spritebatchCSSpriteBatch3D.nvn
     linePS.nvn
     lineVS_2D.nvn
     lineVS_3D.nvn
     model_samplePS.nvn
     model_sampleVS.nvn
     spritePS.nvn
     spriteVS_2D.nvn
     spriteVS_3D.nvn
     spriteVS_BATCH2D.nvn
     spriteVS_PART2D.nvn
     spriteVS_PART3D.nvn
     spriteVS_POLY2D.nvn
     spriteVS_POLY3D.nvn
     systemPS.nvn
     systemPS_ERROR.nvn
     systemPS_QUAD.nvn
     systemVS.nvn
     systemVS_ERROR.nvn
     systemVS_QUAD.nvn
     systemVS_SKIN.nvn
    sim/
     data.cpk
     sound.cpk
     stage.cpk
    sound/
     config.nus3conf
    system/
     AreaTexDX10.tex.xfbin
     SearchTex.tex.xfbin
     celshade.tex.xfbin
     grd00.tex.xfbin
     nml00.tex.xfbin
     nuccMaterial_nx.nsh
     nuccPostEffect_nx.nsh
     xftool.fnt.xfbin
  2/
   NintendoLogo.png
   StartupMovie.gif
jakcron commented 2 years ago

This looks like a bug in how empty files are handled. I'm quite busy at the moment. I'm not sure when I'll fix it.

Thank you for reporting though 😁

jakcron commented 1 year ago

@rsa16 Thank you for your patience.

Please try NSTool v1.7.0 (https://github.com/jakcron/nstool/releases/tag/v1.7.0-r2)