PS3 pkg_custom 1.4

I had a little fun with your bat file @lmn7 :) Now, if you put the files you want to make a PKG with into a folder named "imput", it will make the appropriate folder in custom folder and copy the file into it. The known files are those listed here (except the CEX/DEX settings).

Code:
@ECHO OFF
title make_package_custom
if not exist custom md custom

rem Coldboot
if exist imput\coldboot.raf md custom\dev_blind\vsh\resource & copy imput\coldboot.raf custom\dev_blind\vsh\resource
if exist imput\coldboot_multi.ac3 md custom\dev_blind\vsh\resource & copy imput\coldboot_multi.ac3 custom\dev_blind\vsh\resource
if exist imput\coldboot_stereo.ac3 md custom\dev_blind\vsh\resource & copy imput\coldboot_stereo.ac3 custom\dev_blind\vsh\resource

rem RCO
if exist imput\*.rco md custom\dev_blind\vsh\resource & copy imput\*.rco custom\dev_blind\vsh\resource

rem TTF-Fonts
if exist imput\*.TTF md custom\dev_blind\data\font & copy imput\*.TTF custom\dev_blind\data\font

rem ttf-Fonts
if exist imput\*.ttf md custom\dev_blind\data\font\SONY-CC & copy imput\*.ttf custom\dev_blind\data\font\SONY-CC

rem SELF (Main VSH Module Directory)
if exist imput\cellftp.self md custom\dev_blind\vsh\module & copy imput\cellftp.self custom\dev_blind\vsh\module
if exist imput\ftpd.self md custom\dev_blind\vsh\module & copy imput\ftpd.self custom\dev_blind\vsh\module
if exist imput\mcore.self md custom\dev_blind\vsh\module & copy imput\mcore.self custom\dev_blind\vsh\module
if exist imput\mcore_tk.self md custom\dev_blind\vsh\module & copy imput\mcore_tk.self custom\dev_blind\vsh\module
if exist imput\mgvideo.self md custom\dev_blind\vsh\module & copy imput\mgvideo.self custom\dev_blind\vsh\module
if exist imput\onicore_child.self md custom\dev_blind\vsh\module & copy imput\onicore_child.self custom\dev_blind\vsh\module
if exist imput\SacModule.spu.isoself md custom\dev_blind\vsh\module & copy imput\SacModule.spu.isoself custom\dev_blind\vsh\module
if exist imput\swagner.self md custom\dev_blind\vsh\module & copy imput\swagner.self custom\dev_blind\vsh\module
if exist imput\swreset.self md custom\dev_blind\vsh\module & copy imput\swreset.self custom\dev_blind\vsh\module

rem SELF (PS1 Emulator)
if exist imput\ps1_emu.self md custom\dev_blind\ps1emu & copy imput\ps1_emu.self custom\dev_blind\ps1emu
if exist imput\ps1_netemu.self md custom\dev_blind\ps1emu & copy imput\ps1_netemu.self custom\dev_blind\ps1emu
if exist imput\ps1_newemu.self md custom\dev_blind\ps1emu & copy imput\ps1_newemu.self custom\dev_blind\ps1emu
if exist imput\ps1_rom.bin md custom\dev_blind\ps1emu & copy imput\ps1_rom.bin custom\dev_blind\ps1emu

rem SELF (PS2 Emulator)
if exist imput\ps2_emu.self md custom\dev_blind\ps2emu & copy imput\ps2_emu.self custom\dev_blind\ps2emu
if exist imput\ps2_gxemu.self md custom\dev_blind\ps2emu & copy imput\ps2_gxemu.self custom\dev_blind\ps2emu
if exist imput\ps2_netemu.self md custom\dev_blind\ps2emu & copy imput\ps2_netemu.self custom\dev_blind\ps2emu

rem SELF (PSP Emulator)
if exist imput\psp_emulator.self md custom\dev_blind\pspemu & copy imput\psp_emulator.self custom\dev_blind\pspemu
if exist imput\psp_translator.self md custom\dev_blind\pspemu & copy imput\psp_translator.self custom\dev_blind\pspemu

rem SELF (BD Player)
if exist imput\bdj.self md custom\dev_blind\bdplayer & copy imput\bdj.self custom\dev_blind\bdplayer
if exist imput\bdp_BDMV.self md custom\dev_blind\bdplayer & copy imput\bdp_BDMV.self custom\dev_blind\bdplayer
if exist imput\bdp_BDVD.self md custom\dev_blind\bdplayer & copy imput\bdp_BDVD.self custom\dev_blind\bdplayer
if exist imput\CprmModule.spu.isoself md custom\dev_blind\bdplayer & copy imput\CprmModule.spu.isoself custom\dev_blind\bdplayer
if exist imput\CssModule.spu.isoself md custom\dev_blind\bdplayer & copy imput\CssModule.spu.isoself custom\dev_blind\bdplayer

rem SPRX (VSH Modules)
if exist imput\ap_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ap_plugin.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin_dummy.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin_dummy.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin_mini.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin_mini.sprx custom\dev_blind\vsh\module
if exist imput\auth_plugin.sprx md custom\dev_blind\vsh\module & copy imput\auth_plugin.sprx custom\dev_blind\vsh\module
if exist imput\autodownload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\autodownload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\autoupdateconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\autoupdateconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc_util.sprx md custom\dev_blind\vsh\module & copy imput\avc_util.sprx custom\dev_blind\vsh\module
if exist imput\avc2_game_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_game_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc2_game_video_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_game_video_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc2_text_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_text_plugin.sprx custom\dev_blind\vsh\module
if exist imput\basic_plugins.sprx md custom\dev_blind\vsh\module & copy imput\basic_plugins.sprx custom\dev_blind\vsh\module
if exist imput\bdp_disccheck_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_disccheck_plugin.sprx custom\dev_blind\vsh\module
if exist imput\bdp_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_plugin.sprx custom\dev_blind\vsh\module
if exist imput\bdp_storage_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_storage_plugin.sprx custom\dev_blind\vsh\module
if exist imput\campaign_plugin.sprx md custom\dev_blind\vsh\module & copy imput\campaign_plugin.sprx custom\dev_blind\vsh\module
if exist imput\category_setting_plugin.sprx md custom\dev_blind\vsh\module & copy imput\category_setting_plugin.sprx custom\dev_blind\vsh\module
if exist imput\checker_plugin.sprx md custom\dev_blind\vsh\module & copy imput\checker_plugin.sprx custom\dev_blind\vsh\module
if exist imput\closedcaption_config_plugin.sprx md custom\dev_blind\vsh\module & copy imput\closedcaption_config_plugin.sprx custom\dev_blind\vsh\module
if exist imput\comboplay_plugin.sprx md custom\dev_blind\vsh\module & copy imput\comboplay_plugin.sprx custom\dev_blind\vsh\module
if exist imput\custom_render_plugin.sprx md custom\dev_blind\vsh\module & copy imput\custom_render_plugin.sprx custom\dev_blind\vsh\module
if exist imput\data_copy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\data_copy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\deviceconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\deviceconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\divxdrm.sprx md custom\dev_blind\vsh\module & copy imput\divxdrm.sprx custom\dev_blind\vsh\module
if exist imput\dlna_plugin.sprx md custom\dev_blind\vsh\module & copy imput\dlna_plugin.sprx custom\dev_blind\vsh\module
if exist imput\download_plugin.sprx md custom\dev_blind\vsh\module & copy imput\download_plugin.sprx custom\dev_blind\vsh\module
if exist imput\dtcpip_util.sprx md custom\dev_blind\vsh\module & copy imput\dtcpip_util.sprx custom\dev_blind\vsh\module
if exist imput\edy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\edy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\esehttp.sprx md custom\dev_blind\vsh\module & copy imput\esehttp.sprx custom\dev_blind\vsh\module
if exist imput\eseibrd.sprx md custom\dev_blind\vsh\module & copy imput\eseibrd.sprx custom\dev_blind\vsh\module
if exist imput\eseidle.sprx md custom\dev_blind\vsh\module & copy imput\eseidle.sprx custom\dev_blind\vsh\module
if exist imput\eselock.sprx md custom\dev_blind\vsh\module & copy imput\eselock.sprx custom\dev_blind\vsh\module
if exist imput\eula_cddb_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_cddb_plugin.sprx custom\dev_blind\vsh\module
if exist imput\eula_hcopy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_hcopy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\eula_net_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_net_plugin.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_friend.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_friend.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_game.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_game.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_music.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_music.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_network.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_network.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_photo.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_photo.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_psn.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_psn.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_sysconf.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_sysconf.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_tv.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_tv.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_user.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_user.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_video.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_video.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_ft.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_ft.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_game.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_game.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_np.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_np.sprx custom\dev_blind\vsh\module
if exist imput\faust_widget.sprx md custom\dev_blind\vsh\module & copy imput\faust_widget.sprx custom\dev_blind\vsh\module
if exist imput\filecopy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\filecopy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendim_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendim_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendml_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendml_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendtrophy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendtrophy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\game_ext_plugin.sprx md custom\dev_blind\vsh\module & copy imput\game_ext_plugin.sprx custom\dev_blind\vsh\module
if exist imput\game_indicator_plugin.sprx md custom\dev_blind\vsh\module & copy imput\game_indicator_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gamedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gamedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gamelib_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gamelib_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gameupdate_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gameupdate_plugin.sprx custom\dev_blind\vsh\module
if exist imput\hknw_plugin.sprx md custom\dev_blind\vsh\module & copy imput\hknw_plugin.sprx custom\dev_blind\vsh\module
if exist imput\idle_plugin.sprx md custom\dev_blind\vsh\module & copy imput\idle_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ime.sprx md custom\dev_blind\vsh\module & copy imput\ime.sprx custom\dev_blind\vsh\module
if exist imput\ime_atok.sprx md custom\dev_blind\vsh\module & copy imput\ime_atok.sprx custom\dev_blind\vsh\module
if exist imput\ime_zi.sprx md custom\dev_blind\vsh\module & copy imput\ime_zi.sprx custom\dev_blind\vsh\module
if exist imput\ingame_manual_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ingame_manual_plugin.sprx custom\dev_blind\vsh\module
if exist imput\kensaku_plugin.sprx md custom\dev_blind\vsh\module & copy imput\kensaku_plugin.sprx custom\dev_blind\vsh\module
if exist imput\libmtp.sprx md custom\dev_blind\vsh\module & copy imput\libmtp.sprx custom\dev_blind\vsh\module
if exist imput\libps2hdd.sprx md custom\dev_blind\vsh\module & copy imput\libps2hdd.sprx custom\dev_blind\vsh\module
if exist imput\libvideoSubsystem.sprx md custom\dev_blind\vsh\module & copy imput\libvideoSubsystem.sprx custom\dev_blind\vsh\module
if exist imput\micon_lock_plugin.sprx md custom\dev_blind\vsh\module & copy imput\micon_lock_plugin.sprx custom\dev_blind\vsh\module
if exist imput\mintx_client.sprx md custom\dev_blind\vsh\module & copy imput\mintx_client.sprx custom\dev_blind\vsh\module
if exist imput\mintx_client_upload.sprx md custom\dev_blind\vsh\module & copy imput\mintx_client_upload.sprx custom\dev_blind\vsh\module
if exist imput\mms.sprx md custom\dev_blind\vsh\module & copy imput\mms.sprx custom\dev_blind\vsh\module
if exist imput\mms_cls.sprx md custom\dev_blind\vsh\module & copy imput\mms_cls.sprx custom\dev_blind\vsh\module
if exist imput\mms_db_full.sprx md custom\dev_blind\vsh\module & copy imput\mms_db_full.sprx custom\dev_blind\vsh\module
if exist imput\mms_ext_full.sprx md custom\dev_blind\vsh\module & copy imput\mms_ext_full.sprx custom\dev_blind\vsh\module
if exist imput\mms_ext_mini.sprx md custom\dev_blind\vsh\module & copy imput\mms_ext_mini.sprx custom\dev_blind\vsh\module
if exist imput\mms_maintenance.sprx md custom\dev_blind\vsh\module & copy imput\mms_maintenance.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_avi.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_avi.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_bmp.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_bmp.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_gamehdd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_gamehdd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_npachive.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_npachive.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_ps3savedata.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_ps3savedata.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_gif.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_gif.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_jpeg.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_jpeg.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_bdvd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_bdvd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_cdda.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_cdda.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_cdrom.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_cdrom.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_gamedisc.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_gamedisc.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_hdd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_hdd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_sacd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_sacd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_usbmass.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_usbmass.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp3.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp3.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp4aac.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp4aac.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp4video.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp4video.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mpeg.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mpeg.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mpo.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mpo.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_msv.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_msv.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_music_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_music_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_photo_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_photo_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_png.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_png.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_riff.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_riff.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_tiff.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_tiff.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_video_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_video_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_schema.sprx md custom\dev_blind\vsh\module & copy imput\mms_schema.sprx custom\dev_blind\vsh\module
if exist imput\mouse_plugin.sprx md custom\dev_blind\vsh\module & copy imput\mouse_plugin.sprx custom\dev_blind\vsh\module
if exist imput\msmw1.sprx md custom\dev_blind\vsh\module & copy imput\msmw1.sprx custom\dev_blind\vsh\module
if exist imput\msmw1_aaconly.sprx md custom\dev_blind\vsh\module & copy imput\msmw1_aaconly.sprx custom\dev_blind\vsh\module
if exist imput\msmw1_atraconly.sprx md custom\dev_blind\vsh\module & copy imput\msmw1_atraconly.sprx custom\dev_blind\vsh\module
if exist imput\msmw2.sprx md custom\dev_blind\vsh\module & copy imput\msmw2.sprx custom\dev_blind\vsh\module
if exist imput\msmw3_senvuabs_only.sprx md custom\dev_blind\vsh\module & copy imput\msmw3_senvuabs_only.sprx custom\dev_blind\vsh\module
if exist imput\mtpinitiator_plugin.sprx md custom\dev_blind\vsh\module & copy imput\mtpinitiator_plugin.sprx custom\dev_blind\vsh\module
if exist imput\musicbrowser_plugin.sprx md custom\dev_blind\vsh\module & copy imput\musicbrowser_plugin.sprx custom\dev_blind\vsh\module
if exist imput\nas_plugin.sprx md custom\dev_blind\vsh\module & copy imput\nas_plugin.sprx custom\dev_blind\vsh\module
if exist imput\netconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\netconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\newstore_effect.sprx md custom\dev_blind\vsh\module & copy imput\newstore_effect.sprx custom\dev_blind\vsh\module
if exist imput\newstore_plugin.sprx md custom\dev_blind\vsh\module & copy imput\newstore_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_eula_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_eula_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_matching_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_matching_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_multisignin_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_multisignin_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_oauth.sprx md custom\dev_blind\vsh\module & copy imput\np_oauth.sprx custom\dev_blind\vsh\module
if exist imput\np_sns_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_sns_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_ingame.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_ingame.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_util.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_util.sprx custom\dev_blind\vsh\module
if exist imput\npsignin_plugin.sprx md custom\dev_blind\vsh\module & copy imput\npsignin_plugin.sprx custom\dev_blind\vsh\module
if exist imput\onicore_child.sprx md custom\dev_blind\vsh\module & copy imput\onicore_child.sprx custom\dev_blind\vsh\module
if exist imput\osk_plugin.sprx md custom\dev_blind\vsh\module & copy imput\osk_plugin.sprx custom\dev_blind\vsh\module
if exist imput\oskfullkeypanel_plugin.sprx md custom\dev_blind\vsh\module & copy imput\oskfullkeypanel_plugin.sprx custom\dev_blind\vsh\module
if exist imput\oskpanel_plugin.sprx md custom\dev_blind\vsh\module & copy imput\oskpanel_plugin.sprx custom\dev_blind\vsh\module
if exist imput\paf_ext.sprx md custom\dev_blind\vsh\module & copy imput\paf_ext.sprx custom\dev_blind\vsh\module
if exist imput\paf_psjs.sprx md custom\dev_blind\vsh\module & copy imput\paf_psjs.sprx custom\dev_blind\vsh\module
if exist imput\paf_web.sprx md custom\dev_blind\vsh\module & copy imput\paf_web.sprx custom\dev_blind\vsh\module
if exist imput\pesm_plugin.sprx md custom\dev_blind\vsh\module & copy imput\pesm_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photo_network_sharing_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photo_network_sharing_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photolist_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photolist_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photoupload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photoupload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photoviewer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photoviewer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\playlist_plugin.sprx md custom\dev_blind\vsh\module & copy imput\playlist_plugin.sprx custom\dev_blind\vsh\module
if exist imput\podl_plugin.sprx md custom\dev_blind\vsh\module & copy imput\podl_plugin.sprx custom\dev_blind\vsh\module
if exist imput\post_nr.sprx md custom\dev_blind\vsh\module & copy imput\post_nr.sprx custom\dev_blind\vsh\module
if exist imput\poweroff_plugin.sprx md custom\dev_blind\vsh\module & copy imput\poweroff_plugin.sprx custom\dev_blind\vsh\module
if exist imput\premo_game_plugin.sprx md custom\dev_blind\vsh\module & copy imput\premo_game_plugin.sprx custom\dev_blind\vsh\module
if exist imput\premo_plugin.sprx md custom\dev_blind\vsh\module & copy imput\premo_plugin.sprx custom\dev_blind\vsh\module
if exist imput\print_canon_library.sprx md custom\dev_blind\vsh\module & copy imput\print_canon_library.sprx custom\dev_blind\vsh\module
if exist imput\print_dlna_library.sprx md custom\dev_blind\vsh\module & copy imput\print_dlna_library.sprx custom\dev_blind\vsh\module
if exist imput\print_epson_library.sprx md custom\dev_blind\vsh\module & copy imput\print_epson_library.sprx custom\dev_blind\vsh\module
if exist imput\print_plugin.sprx md custom\dev_blind\vsh\module & copy imput\print_plugin.sprx custom\dev_blind\vsh\module
if exist imput\profile_plugin.sprx md custom\dev_blind\vsh\module & copy imput\profile_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_game.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_game.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_game_mini.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_game_mini.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_psp.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_psp.sprx custom\dev_blind\vsh\module
if exist imput\qgl_canyon_app.sprx md custom\dev_blind\vsh\module & copy imput\qgl_canyon_app.sprx custom\dev_blind\vsh\module
if exist imput\qgl_gaia_app.sprx md custom\dev_blind\vsh\module & copy imput\qgl_gaia_app.sprx custom\dev_blind\vsh\module
if exist imput\qglbase.sprx md custom\dev_blind\vsh\module & copy imput\qglbase.sprx custom\dev_blind\vsh\module
if exist imput\raf.sprx md custom\dev_blind\vsh\module & copy imput\raf.sprx custom\dev_blind\vsh\module
if exist imput\rec_plugin.sprx md custom\dev_blind\vsh\module & copy imput\rec_plugin.sprx custom\dev_blind\vsh\module
if exist imput\regcam_plugin.sprx md custom\dev_blind\vsh\module & copy imput\regcam_plugin.sprx custom\dev_blind\vsh\module
if exist imput\remotedownload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\remotedownload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sacd.sprx md custom\dev_blind\vsh\module & copy imput\sacd.sprx custom\dev_blind\vsh\module
if exist imput\sacd_plugin.sprx md custom\dev_blind\vsh\module & copy imput\sacd_plugin.sprx custom\dev_blind\vsh\module
if exist imput\saflashplayer.sprx md custom\dev_blind\vsh\module & copy imput\saflashplayer.sprx custom\dev_blind\vsh\module
if exist imput\scenefolder_plugin.sprx md custom\dev_blind\vsh\module & copy imput\scenefolder_plugin.sprx custom\dev_blind\vsh\module
if exist imput\screenshot_plugin.sprx md custom\dev_blind\vsh\module & copy imput\screenshot_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sdk.sprx md custom\dev_blind\vsh\module & copy imput\sdk.sprx custom\dev_blind\vsh\module
if exist imput\sdk_full.sprx md custom\dev_blind\vsh\module & copy imput\sdk_full.sprx custom\dev_blind\vsh\module
if exist imput\silk.sprx md custom\dev_blind\vsh\module & copy imput\silk.sprx custom\dev_blind\vsh\module
if exist imput\silk_base.sprx md custom\dev_blind\vsh\module & copy imput\silk_base.sprx custom\dev_blind\vsh\module
if exist imput\silk_mrcommon.sprx md custom\dev_blind\vsh\module & copy imput\silk_mrcommon.sprx custom\dev_blind\vsh\module
if exist imput\silk_mrserver.sprx md custom\dev_blind\vsh\module & copy imput\silk_mrserver.sprx custom\dev_blind\vsh\module
if exist imput\silk_nas.sprx md custom\dev_blind\vsh\module & copy imput\silk_nas.sprx custom\dev_blind\vsh\module
if exist imput\silk_npflashplayer.sprx md custom\dev_blind\vsh\module & copy imput\silk_npflashplayer.sprx custom\dev_blind\vsh\module
if exist imput\silk_npflashplayer9.sprx md custom\dev_blind\vsh\module & copy imput\silk_npflashplayer9.sprx custom\dev_blind\vsh\module
if exist imput\silk_webkit.sprx md custom\dev_blind\vsh\module & copy imput\silk_webkit.sprx custom\dev_blind\vsh\module
if exist imput\silk_wk.sprx md custom\dev_blind\vsh\module & copy imput\silk_wk.sprx custom\dev_blind\vsh\module
if exist imput\simple_music2_decode_plugin.sprx md custom\dev_blind\vsh\module & copy imput\simple_music2_decode_plugin.sprx custom\dev_blind\vsh\module
if exist imput\software_update_plugin.sprx md custom\dev_blind\vsh\module & copy imput\software_update_plugin.sprx custom\dev_blind\vsh\module
if exist imput\soundvisualizer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\soundvisualizer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\strviewer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\strviewer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sysconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\sysconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\thumthum_plugin.sprx md custom\dev_blind\vsh\module & copy imput\thumthum_plugin.sprx custom\dev_blind\vsh\module
if exist imput\upload_util.sprx md custom\dev_blind\vsh\module & copy imput\upload_util.sprx custom\dev_blind\vsh\module
if exist imput\user_info_plugin.sprx md custom\dev_blind\vsh\module & copy imput\user_info_plugin.sprx custom\dev_blind\vsh\module
if exist imput\user_plugin.sprx md custom\dev_blind\vsh\module & copy imput\user_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoeditor_plugin.sprx md custom\dev_blind\vsh\module & copy imput\videoeditor_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoplayer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\videoplayer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoplayer_util.sprx md custom\dev_blind\vsh\module & copy imput\videoplayer_util.sprx custom\dev_blind\vsh\module
if exist imput\videorec.sprx md custom\dev_blind\vsh\module & copy imput\videorec.sprx custom\dev_blind\vsh\module
if exist imput\vmc_savedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\vmc_savedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\vmclib.sprx md custom\dev_blind\vsh\module & copy imput\vmclib.sprx custom\dev_blind\vsh\module
if exist imput\vshatdl.sprx md custom\dev_blind\vsh\module & copy imput\vshatdl.sprx custom\dev_blind\vsh\module
if exist imput\vshmain_ext.sprx md custom\dev_blind\vsh\module & copy imput\vshmain_ext.sprx custom\dev_blind\vsh\module
if exist imput\vshmain_util.sprx md custom\dev_blind\vsh\module & copy imput\vshmain_util.sprx custom\dev_blind\vsh\module
if exist imput\vshpodl.sprx md custom\dev_blind\vsh\module & copy imput\vshpodl.sprx custom\dev_blind\vsh\module
if exist imput\wboard_plugin.sprx md custom\dev_blind\vsh\module & copy imput\wboard_plugin.sprx custom\dev_blind\vsh\module
if exist imput\webbrowser_plugin.sprx md custom\dev_blind\vsh\module & copy imput\webbrowser_plugin.sprx custom\dev_blind\vsh\module
if exist imput\webbrowser_service.sprx md custom\dev_blind\vsh\module & copy imput\webbrowser_service.sprx custom\dev_blind\vsh\module
if exist imput\webftp_server.sprx md custom\dev_blind\vsh\module & copy imput\webftp_server.sprx custom\dev_blind\vsh\module
if exist imput\webrender_plugin.sprx md custom\dev_blind\vsh\module & copy imput\webrender_plugin.sprx custom\dev_blind\vsh\module
if exist imput\x3_amgsdk.sprx md custom\dev_blind\vsh\module & copy imput\x3_amgsdk.sprx custom\dev_blind\vsh\module
if exist imput\x3_gntoc.sprx md custom\dev_blind\vsh\module & copy imput\x3_gntoc.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp1.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp1.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp2.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp2.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp3.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp3.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp4.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp4.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp5.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp5.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp6.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp6.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp7.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp7.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp8.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp8.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp9.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp9.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp10.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp10.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp11.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp11.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp12.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp12.sprx custom\dev_blind\vsh\module
if exist imput\xai_plugin.sprx md custom\dev_blind\vsh\module & copy imput\xai_plugin.sprx custom\dev_blind\vsh\module
if exist imput\xcbcontentop.sprx md custom\dev_blind\vsh\module & copy imput\xcbcontentop.sprx custom\dev_blind\vsh\module
if exist imput\xcbplugin1.sprx md custom\dev_blind\vsh\module & copy imput\xcbplugin1.sprx custom\dev_blind\vsh\module
if exist imput\xmb_ingame.sprx md custom\dev_blind\vsh\module & copy imput\xmb_ingame.sprx custom\dev_blind\vsh\module
if exist imput\xmb_plugin.sprx md custom\dev_blind\vsh\module & copy imput\xmb_plugin.sprx custom\dev_blind\vsh\module
if exist imput\xsetting.sprx md custom\dev_blind\vsh\module & copy imput\xsetting.sprx custom\dev_blind\vsh\module
if exist imput\ycon_manual_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ycon_manual_plugin.sprx custom\dev_blind\vsh\module

rem SPRX (Internal Library)
if exist imput\libapostsrc.sprx md custom\dev_blind\sys\internal & copy imput\libapostsrc.sprx custom\dev_blind\sys\internal
if exist imput\libapostsrc_eqalc.sprx md custom\dev_blind\sys\internal & copy imput\libapostsrc_eqalc.sprx custom\dev_blind\sys\internal
if exist imput\libasfparser.sprx md custom\dev_blind\sys\internal & copy imput\libasfparser.sprx custom\dev_blind\sys\internal
if exist imput\libasfparser2.sprx md custom\dev_blind\sys\internal & copy imput\libasfparser2.sprx custom\dev_blind\sys\internal
if exist imput\libat3enc.sprx md custom\dev_blind\sys\internal & copy imput\libat3enc.sprx custom\dev_blind\sys\internal
if exist imput\libat3enc_spurs.sprx md custom\dev_blind\sys\internal & copy imput\libat3enc_spurs.sprx custom\dev_blind\sys\internal
if exist imput\libatxdecmod.sprx md custom\dev_blind\sys\internal & copy imput\libatxdecmod.sprx custom\dev_blind\sys\internal
if exist imput\libatxenc.sprx md custom\dev_blind\sys\internal & copy imput\libatxenc.sprx custom\dev_blind\sys\internal
if exist imput\libchnnlsv.sprx md custom\dev_blind\sys\internal & copy imput\libchnnlsv.sprx custom\dev_blind\sys\internal
if exist imput\libddlenc2.sprx md custom\dev_blind\sys\internal & copy imput\libddlenc2.sprx custom\dev_blind\sys\internal
if exist imput\libdivx311dec.sprx md custom\dev_blind\sys\internal & copy imput\libdivx311dec.sprx custom\dev_blind\sys\internal
if exist imput\libdsee.sprx md custom\dev_blind\sys\internal & copy imput\libdsee.sprx custom\dev_blind\sys\internal
if exist imput\libdtsenc2.sprx md custom\dev_blind\sys\internal & copy imput\libdtsenc2.sprx custom\dev_blind\sys\internal
if exist imput\libdtshddec.sprx md custom\dev_blind\sys\internal & copy imput\libdtshddec.sprx custom\dev_blind\sys\internal
if exist imput\libdtslbrdec.sprx md custom\dev_blind\sys\internal & copy imput\libdtslbrdec.sprx custom\dev_blind\sys\internal
if exist imput\libexif.sprx md custom\dev_blind\sys\internal & copy imput\libexif.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility_full.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility_full.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility_init.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility_init.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility2.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility2.sprx custom\dev_blind\sys\internal
if exist imput\libft2d.sprx md custom\dev_blind\sys\internal & copy imput\libft2d.sprx custom\dev_blind\sys\internal
if exist imput\libm2aacdec.sprx md custom\dev_blind\sys\internal & copy imput\libm2aacdec.sprx custom\dev_blind\sys\internal
if exist imput\libm4aacdec2chmod.sprx md custom\dev_blind\sys\internal & copy imput\libm4aacdec2chmod.sprx custom\dev_blind\sys\internal
if exist imput\libm4aacdec2chmod2.sprx md custom\dev_blind\sys\internal & copy imput\libm4aacdec2chmod2.sprx custom\dev_blind\sys\internal
if exist imput\libmcadpt.sprx md custom\dev_blind\sys\internal & copy imput\libmcadpt.sprx custom\dev_blind\sys\internal
if exist imput\libmp3enc.sprx md custom\dev_blind\sys\internal & copy imput\libmp3enc.sprx custom\dev_blind\sys\internal
if exist imput\libmp3sdec.sprx md custom\dev_blind\sys\internal & copy imput\libmp3sdec.sprx custom\dev_blind\sys\internal
if exist imput\libsysutil_game_ps1emu.sprx md custom\dev_blind\sys\internal & copy imput\libsysutil_game_ps1emu.sprx custom\dev_blind\sys\internal
if exist imput\libsysutil_sysconf_ps1emu.sprx md custom\dev_blind\sys\internal & copy imput\libsysutil_sysconf_ps1emu.sprx custom\dev_blind\sys\internal
if exist imput\libtiffdec.sprx md custom\dev_blind\sys\internal & copy imput\libtiffdec.sprx custom\dev_blind\sys\internal
if exist imput\libtrhddec.sprx md custom\dev_blind\sys\internal & copy imput\libtrhddec.sprx custom\dev_blind\sys\internal
if exist imput\libvoice_internal.sprx md custom\dev_blind\sys\internal & copy imput\libvoice_internal.sprx custom\dev_blind\sys\internal
if exist imput\libvpost.sprx md custom\dev_blind\sys\internal & copy imput\libvpost.sprx custom\dev_blind\sys\internal
if exist imput\sys_audio.sprx md custom\dev_blind\sys\internal & copy imput\sys_audio.sprx custom\dev_blind\sys\internal
if exist imput\sysvoice_modules.sprx md custom\dev_blind\sys\internal & copy imput\sysvoice_modules.sprx custom\dev_blind\sys\internal

rem SPRX (External Library)
if exist imput\libaacenc.sprx md custom\dev_blind\sys\external & copy imput\libaacenc.sprx custom\dev_blind\sys\external
if exist imput\libaacenc_spurs.sprx md custom\dev_blind\sys\external & copy imput\libaacenc_spurs.sprx custom\dev_blind\sys\external
if exist imput\libac3dec.sprx md custom\dev_blind\sys\external & copy imput\libac3dec.sprx custom\dev_blind\sys\external
if exist imput\libac3dec2.sprx md custom\dev_blind\sys\external & copy imput\libac3dec2.sprx custom\dev_blind\sys\external
if exist imput\libad_async.sprx md custom\dev_blind\sys\external & copy imput\libad_async.sprx custom\dev_blind\sys\external
if exist imput\libad_billboard_util.sprx md custom\dev_blind\sys\external & copy imput\libad_billboard_util.sprx custom\dev_blind\sys\external
if exist imput\libad_core.sprx md custom\dev_blind\sys\external & copy imput\libad_core.sprx custom\dev_blind\sys\external
if exist imput\libadec.sprx md custom\dev_blind\sys\external & copy imput\libadec.sprx custom\dev_blind\sys\external
if exist imput\libadec_internal.sprx md custom\dev_blind\sys\external & copy imput\libadec_internal.sprx custom\dev_blind\sys\external
if exist imput\libadec2.sprx md custom\dev_blind\sys\external & copy imput\libadec2.sprx custom\dev_blind\sys\external
if exist imput\libapostsrc_mini.sprx md custom\dev_blind\sys\external & copy imput\libapostsrc_mini.sprx custom\dev_blind\sys\external
if exist imput\libasfparser2_astd.sprx md custom\dev_blind\sys\external & copy imput\libasfparser2_astd.sprx custom\dev_blind\sys\external
if exist imput\libat3dec.sprx md custom\dev_blind\sys\external & copy imput\libat3dec.sprx custom\dev_blind\sys\external
if exist imput\libat3multidec.sprx md custom\dev_blind\sys\external & copy imput\libat3multidec.sprx custom\dev_blind\sys\external
if exist imput\libatrac3multi.sprx md custom\dev_blind\sys\external & copy imput\libatrac3multi.sprx custom\dev_blind\sys\external
if exist imput\libatrac3plus.sprx md custom\dev_blind\sys\external & copy imput\libatrac3plus.sprx custom\dev_blind\sys\external
if exist imput\libatxdec.sprx md custom\dev_blind\sys\external & copy imput\libatxdec.sprx custom\dev_blind\sys\external
if exist imput\libatxdec2.sprx md custom\dev_blind\sys\external & copy imput\libatxdec2.sprx custom\dev_blind\sys\external
if exist imput\libaudio.sprx md custom\dev_blind\sys\external & copy imput\libaudio.sprx custom\dev_blind\sys\external
if exist imput\libavcdec.sprx md custom\dev_blind\sys\external & copy imput\libavcdec.sprx custom\dev_blind\sys\external
if exist imput\libavcenc.sprx md custom\dev_blind\sys\external & copy imput\libavcenc.sprx custom\dev_blind\sys\external
if exist imput\libavcenc_small.sprx md custom\dev_blind\sys\external & copy imput\libavcenc_small.sprx custom\dev_blind\sys\external
if exist imput\libavchatjpgdec.sprx md custom\dev_blind\sys\external & copy imput\libavchatjpgdec.sprx custom\dev_blind\sys\external
if exist imput\libbeisobmf.sprx md custom\dev_blind\sys\external & copy imput\libbeisobmf.sprx custom\dev_blind\sys\external
if exist imput\libbemp2sys.sprx md custom\dev_blind\sys\external & copy imput\libbemp2sys.sprx custom\dev_blind\sys\external
if exist imput\libcamera.sprx md custom\dev_blind\sys\external & copy imput\libcamera.sprx custom\dev_blind\sys\external
if exist imput\libcelp8dec.sprx md custom\dev_blind\sys\external & copy imput\libcelp8dec.sprx custom\dev_blind\sys\external
if exist imput\libcelp8enc.sprx md custom\dev_blind\sys\external & copy imput\libcelp8enc.sprx custom\dev_blind\sys\external
if exist imput\libcelpdec.sprx md custom\dev_blind\sys\external & copy imput\libcelpdec.sprx custom\dev_blind\sys\external
if exist imput\libcelpenc.sprx md custom\dev_blind\sys\external & copy imput\libcelpenc.sprx custom\dev_blind\sys\external
if exist imput\libddpdec.sprx md custom\dev_blind\sys\external & copy imput\libddpdec.sprx custom\dev_blind\sys\external
if exist imput\libdivxdec.sprx md custom\dev_blind\sys\external & copy imput\libdivxdec.sprx custom\dev_blind\sys\external
if exist imput\libdmux.sprx md custom\dev_blind\sys\external & copy imput\libdmux.sprx custom\dev_blind\sys\external
if exist imput\libdmuxpamf.sprx md custom\dev_blind\sys\external & copy imput\libdmuxpamf.sprx custom\dev_blind\sys\external
if exist imput\libdtslbrdec.sprx md custom\dev_blind\sys\external & copy imput\libdtslbrdec.sprx custom\dev_blind\sys\external
if exist imput\libfiber.sprx md custom\dev_blind\sys\external & copy imput\libfiber.sprx custom\dev_blind\sys\external
if exist imput\libfont.sprx md custom\dev_blind\sys\external & copy imput\libfont.sprx custom\dev_blind\sys\external
if exist imput\libfontFT.sprx md custom\dev_blind\sys\external & copy imput\libfontFT.sprx custom\dev_blind\sys\external
if exist imput\libfreetype.sprx md custom\dev_blind\sys\external & copy imput\libfreetype.sprx custom\dev_blind\sys\external
if exist imput\libfreetypeTT.sprx md custom\dev_blind\sys\external & copy imput\libfreetypeTT.sprx custom\dev_blind\sys\external
if exist imput\libfs.sprx md custom\dev_blind\sys\external & copy imput\libfs.sprx custom\dev_blind\sys\external
if exist imput\libfs_155.sprx md custom\dev_blind\sys\external & copy imput\libfs_155.sprx custom\dev_blind\sys\external
if exist imput\libgcm_sys.sprx md custom\dev_blind\sys\external & copy imput\libgcm_sys.sprx custom\dev_blind\sys\external
if exist imput\libgem.sprx md custom\dev_blind\sys\external & copy imput\libgem.sprx custom\dev_blind\sys\external
if exist imput\libgifdec.sprx md custom\dev_blind\sys\external & copy imput\libgifdec.sprx custom\dev_blind\sys\external
if exist imput\libhttp.sprx md custom\dev_blind\sys\external & copy imput\libhttp.sprx custom\dev_blind\sys\external
if exist imput\libio.sprx md custom\dev_blind\sys\external & copy imput\libio.sprx custom\dev_blind\sys\external
if exist imput\libjpgdec.sprx md custom\dev_blind\sys\external & copy imput\libjpgdec.sprx custom\dev_blind\sys\external
if exist imput\libjpgenc.sprx md custom\dev_blind\sys\external & copy imput\libjpgenc.sprx custom\dev_blind\sys\external
if exist imput\libkey2char.sprx md custom\dev_blind\sys\external & copy imput\libkey2char.sprx custom\dev_blind\sys\external
if exist imput\libl10n.sprx md custom\dev_blind\sys\external & copy imput\libl10n.sprx custom\dev_blind\sys\external
if exist imput\liblv2.sprx md custom\dev_blind\sys\external & copy imput\liblv2.sprx custom\dev_blind\sys\external
if exist imput\liblv2coredump.sprx md custom\dev_blind\sys\external & copy imput\liblv2coredump.sprx custom\dev_blind\sys\external
if exist imput\liblv2dbg_for_cex.sprx md custom\dev_blind\sys\external & copy imput\liblv2dbg_for_cex.sprx custom\dev_blind\sys\external
if exist imput\libm2bcdec.sprx md custom\dev_blind\sys\external & copy imput\libm2bcdec.sprx custom\dev_blind\sys\external
if exist imput\libm4aacdec.sprx md custom\dev_blind\sys\external & copy imput\libm4aacdec.sprx custom\dev_blind\sys\external
if exist imput\libm4aacdec2ch.sprx md custom\dev_blind\sys\external & copy imput\libm4aacdec2ch.sprx custom\dev_blind\sys\external
if exist imput\libm4hdenc.sprx md custom\dev_blind\sys\external & copy imput\libm4hdenc.sprx custom\dev_blind\sys\external
if exist imput\libm4venc.sprx md custom\dev_blind\sys\external & copy imput\libm4venc.sprx custom\dev_blind\sys\external
if exist imput\libmedi.sprx md custom\dev_blind\sys\external & copy imput\libmedi.sprx custom\dev_blind\sys\external
if exist imput\libmic.sprx md custom\dev_blind\sys\external & copy imput\libmic.sprx custom\dev_blind\sys\external
if exist imput\libmp3dec.sprx md custom\dev_blind\sys\external & copy imput\libmp3dec.sprx custom\dev_blind\sys\external
if exist imput\libmp4.sprx md custom\dev_blind\sys\external & copy imput\libmp4.sprx custom\dev_blind\sys\external
if exist imput\libmpl1dec.sprx md custom\dev_blind\sys\external & copy imput\libmpl1dec.sprx custom\dev_blind\sys\external
if exist imput\libmvcdec.sprx md custom\dev_blind\sys\external & copy imput\libmvcdec.sprx custom\dev_blind\sys\external
if exist imput\libnet.sprx md custom\dev_blind\sys\external & copy imput\libnet.sprx custom\dev_blind\sys\external
if exist imput\libnetctl.sprx md custom\dev_blind\sys\external & copy imput\libnetctl.sprx custom\dev_blind\sys\external
if exist imput\libpamf.sprx md custom\dev_blind\sys\external & copy imput\libpamf.sprx custom\dev_blind\sys\external
if exist imput\libpngdec.sprx md custom\dev_blind\sys\external & copy imput\libpngdec.sprx custom\dev_blind\sys\external
if exist imput\libpngenc.sprx md custom\dev_blind\sys\external & copy imput\libpngenc.sprx custom\dev_blind\sys\external
if exist imput\libresc.sprx md custom\dev_blind\sys\external & copy imput\libresc.sprx custom\dev_blind\sys\external
if exist imput\librtc.sprx md custom\dev_blind\sys\external & copy imput\librtc.sprx custom\dev_blind\sys\external
if exist imput\librudp.sprx md custom\dev_blind\sys\external & copy imput\librudp.sprx custom\dev_blind\sys\external
if exist imput\libsail.sprx md custom\dev_blind\sys\external & copy imput\libsail.sprx custom\dev_blind\sys\external
if exist imput\libsail_avi.sprx md custom\dev_blind\sys\external & copy imput\libsail_avi.sprx custom\dev_blind\sys\external
if exist imput\libsail_rec.sprx md custom\dev_blind\sys\external & copy imput\libsail_rec.sprx custom\dev_blind\sys\external
if exist imput\libsjvtd.sprx md custom\dev_blind\sys\external & copy imput\libsjvtd.sprx custom\dev_blind\sys\external
if exist imput\libsmvd2.sprx md custom\dev_blind\sys\external & copy imput\libsmvd2.sprx custom\dev_blind\sys\external
if exist imput\libsmvd4.sprx md custom\dev_blind\sys\external & copy imput\libsmvd4.sprx custom\dev_blind\sys\external
if exist imput\libspurs_jq.sprx md custom\dev_blind\sys\external & copy imput\libspurs_jq.sprx custom\dev_blind\sys\external
if exist imput\libsre.sprx md custom\dev_blind\sys\external & copy imput\libsre.sprx custom\dev_blind\sys\external
if exist imput\libssl.sprx md custom\dev_blind\sys\external & copy imput\libssl.sprx custom\dev_blind\sys\external
if exist imput\libsvc1d.sprx md custom\dev_blind\sys\external & copy imput\libsvc1d.sprx custom\dev_blind\sys\external
if exist imput\libsync2.sprx md custom\dev_blind\sys\external & copy imput\libsync2.sprx custom\dev_blind\sys\external
if exist imput\libsysmodule.sprx md custom\dev_blind\sys\external & copy imput\libsysmodule.sprx custom\dev_blind\sys\external
if exist imput\libsysutil.sprx md custom\dev_blind\sys\external & copy imput\libsysutil.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_ap.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_ap.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_authdialog.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_authdialog.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avc_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avc_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avc2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avc2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avconf_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avconf_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_bgdl.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_bgdl.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_cross_controller.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_cross_controller.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_dec_psnvideo.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_dec_psnvideo.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_dtcp_ip.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_dtcp_ip.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_game.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_game.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_game_exec.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_game_exec.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_imejp.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_imejp.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_misc.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_misc.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music_decode.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music_decode.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_clans.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_clans.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_commerce2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_commerce2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_eula.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_eula.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_installer.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_installer.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_sns.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_sns.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_trophy.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_trophy.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_tus.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_tus.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_util.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_util.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_oskdialog_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_oskdialog_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_pesm.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_pesm.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_decode.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_decode.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_export2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_export2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_import.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_import.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_network_sharing.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_network_sharing.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_print.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_print.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_rec.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_rec.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_remoteplay.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_remoteplay.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_rtcalarm.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_rtcalarm.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_savedata.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_savedata.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_savedata_psp.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_savedata_psp.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_screenshot.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_screenshot.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_search.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_search.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_storagedata.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_storagedata.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_subdisplay.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_subdisplay.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_syschat.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_syschat.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_sysconf_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_sysconf_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_userinfo.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_userinfo.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_player.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_player.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_upload.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_upload.sprx custom\dev_blind\sys\external
if exist imput\libusbd.sprx md custom\dev_blind\sys\external & copy imput\libusbd.sprx custom\dev_blind\sys\external
if exist imput\libusbpspcm.sprx md custom\dev_blind\sys\external & copy imput\libusbpspcm.sprx custom\dev_blind\sys\external
if exist imput\libvdec.sprx md custom\dev_blind\sys\external & copy imput\libvdec.sprx custom\dev_blind\sys\external
if exist imput\libvoice.sprx md custom\dev_blind\sys\external & copy imput\libvoice.sprx custom\dev_blind\sys\external
if exist imput\libvpost.sprx md custom\dev_blind\sys\external & copy imput\libvpost.sprx custom\dev_blind\sys\external
if exist imput\libvpost2.sprx md custom\dev_blind\sys\external & copy imput\libvpost2.sprx custom\dev_blind\sys\external
if exist imput\libwmadec.sprx md custom\dev_blind\sys\external & copy imput\libwmadec.sprx custom\dev_blind\sys\external

rem SSL Cert
if exist imput\*.cer md custom\dev_blind\data\cert & copy imput\*.cer custom\dev_blind\data\cert

rem XMB Wave
if exist imput\lines.qrc md custom\dev_blind\vsh\resource\qgl & copy imput\lines.qrc custom\dev_blind\vsh\resource\qgl

rem XML (XMB Layout)
if exist imput\*.xml md custom\dev_blind\vsh\resource\explore\xmb & copy imput\*.xml custom\dev_blind\vsh\resource\explore\xmb

:: ----------------------------------------------
:: Simple script to build a PKG (by CaptainCPS-X)
:: ----------------------------------------------

:: Change these for your application / manual...
set CID=CUSTOM-INSTALLER_00-0000000000000000
set PKG_DIR=./custom/
set PKG_NAME=custom.pkg

make_package_custom.exe --contentid %CID% %PKG_DIR% %PKG_NAME%

pause
so we just need to put the files in the imput directory and it will automatically create a folder for each file?
 
I had a little fun with your bat file @lmn7 :) Now, if you put the files you want to make a PKG with into a folder named "imput", it will make the appropriate folder in custom folder and copy the file into it. The known files are those listed here (except the CEX/DEX settings).

Code:
@ECHO OFF
title make_package_custom
if not exist custom md custom

rem Coldboot
if exist imput\coldboot.raf md custom\dev_blind\vsh\resource & copy imput\coldboot.raf custom\dev_blind\vsh\resource
if exist imput\coldboot_multi.ac3 md custom\dev_blind\vsh\resource & copy imput\coldboot_multi.ac3 custom\dev_blind\vsh\resource
if exist imput\coldboot_stereo.ac3 md custom\dev_blind\vsh\resource & copy imput\coldboot_stereo.ac3 custom\dev_blind\vsh\resource

rem RCO
if exist imput\*.rco md custom\dev_blind\vsh\resource & copy imput\*.rco custom\dev_blind\vsh\resource

rem TTF-Fonts
if exist imput\*.TTF md custom\dev_blind\data\font & copy imput\*.TTF custom\dev_blind\data\font

rem ttf-Fonts
if exist imput\*.ttf md custom\dev_blind\data\font\SONY-CC & copy imput\*.ttf custom\dev_blind\data\font\SONY-CC

rem SELF (Main VSH Module Directory)
if exist imput\cellftp.self md custom\dev_blind\vsh\module & copy imput\cellftp.self custom\dev_blind\vsh\module
if exist imput\ftpd.self md custom\dev_blind\vsh\module & copy imput\ftpd.self custom\dev_blind\vsh\module
if exist imput\mcore.self md custom\dev_blind\vsh\module & copy imput\mcore.self custom\dev_blind\vsh\module
if exist imput\mcore_tk.self md custom\dev_blind\vsh\module & copy imput\mcore_tk.self custom\dev_blind\vsh\module
if exist imput\mgvideo.self md custom\dev_blind\vsh\module & copy imput\mgvideo.self custom\dev_blind\vsh\module
if exist imput\onicore_child.self md custom\dev_blind\vsh\module & copy imput\onicore_child.self custom\dev_blind\vsh\module
if exist imput\SacModule.spu.isoself md custom\dev_blind\vsh\module & copy imput\SacModule.spu.isoself custom\dev_blind\vsh\module
if exist imput\swagner.self md custom\dev_blind\vsh\module & copy imput\swagner.self custom\dev_blind\vsh\module
if exist imput\swreset.self md custom\dev_blind\vsh\module & copy imput\swreset.self custom\dev_blind\vsh\module

rem SELF (PS1 Emulator)
if exist imput\ps1_emu.self md custom\dev_blind\ps1emu & copy imput\ps1_emu.self custom\dev_blind\ps1emu
if exist imput\ps1_netemu.self md custom\dev_blind\ps1emu & copy imput\ps1_netemu.self custom\dev_blind\ps1emu
if exist imput\ps1_newemu.self md custom\dev_blind\ps1emu & copy imput\ps1_newemu.self custom\dev_blind\ps1emu
if exist imput\ps1_rom.bin md custom\dev_blind\ps1emu & copy imput\ps1_rom.bin custom\dev_blind\ps1emu

rem SELF (PS2 Emulator)
if exist imput\ps2_emu.self md custom\dev_blind\ps2emu & copy imput\ps2_emu.self custom\dev_blind\ps2emu
if exist imput\ps2_gxemu.self md custom\dev_blind\ps2emu & copy imput\ps2_gxemu.self custom\dev_blind\ps2emu
if exist imput\ps2_netemu.self md custom\dev_blind\ps2emu & copy imput\ps2_netemu.self custom\dev_blind\ps2emu

rem SELF (PSP Emulator)
if exist imput\psp_emulator.self md custom\dev_blind\pspemu & copy imput\psp_emulator.self custom\dev_blind\pspemu
if exist imput\psp_translator.self md custom\dev_blind\pspemu & copy imput\psp_translator.self custom\dev_blind\pspemu

rem SELF (BD Player)
if exist imput\bdj.self md custom\dev_blind\bdplayer & copy imput\bdj.self custom\dev_blind\bdplayer
if exist imput\bdp_BDMV.self md custom\dev_blind\bdplayer & copy imput\bdp_BDMV.self custom\dev_blind\bdplayer
if exist imput\bdp_BDVD.self md custom\dev_blind\bdplayer & copy imput\bdp_BDVD.self custom\dev_blind\bdplayer
if exist imput\CprmModule.spu.isoself md custom\dev_blind\bdplayer & copy imput\CprmModule.spu.isoself custom\dev_blind\bdplayer
if exist imput\CssModule.spu.isoself md custom\dev_blind\bdplayer & copy imput\CssModule.spu.isoself custom\dev_blind\bdplayer

rem SPRX (VSH Modules)
if exist imput\ap_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ap_plugin.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin_dummy.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin_dummy.sprx custom\dev_blind\vsh\module
if exist imput\audioplayer_plugin_mini.sprx md custom\dev_blind\vsh\module & copy imput\audioplayer_plugin_mini.sprx custom\dev_blind\vsh\module
if exist imput\auth_plugin.sprx md custom\dev_blind\vsh\module & copy imput\auth_plugin.sprx custom\dev_blind\vsh\module
if exist imput\autodownload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\autodownload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\autoupdateconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\autoupdateconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc_util.sprx md custom\dev_blind\vsh\module & copy imput\avc_util.sprx custom\dev_blind\vsh\module
if exist imput\avc2_game_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_game_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc2_game_video_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_game_video_plugin.sprx custom\dev_blind\vsh\module
if exist imput\avc2_text_plugin.sprx md custom\dev_blind\vsh\module & copy imput\avc2_text_plugin.sprx custom\dev_blind\vsh\module
if exist imput\basic_plugins.sprx md custom\dev_blind\vsh\module & copy imput\basic_plugins.sprx custom\dev_blind\vsh\module
if exist imput\bdp_disccheck_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_disccheck_plugin.sprx custom\dev_blind\vsh\module
if exist imput\bdp_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_plugin.sprx custom\dev_blind\vsh\module
if exist imput\bdp_storage_plugin.sprx md custom\dev_blind\vsh\module & copy imput\bdp_storage_plugin.sprx custom\dev_blind\vsh\module
if exist imput\campaign_plugin.sprx md custom\dev_blind\vsh\module & copy imput\campaign_plugin.sprx custom\dev_blind\vsh\module
if exist imput\category_setting_plugin.sprx md custom\dev_blind\vsh\module & copy imput\category_setting_plugin.sprx custom\dev_blind\vsh\module
if exist imput\checker_plugin.sprx md custom\dev_blind\vsh\module & copy imput\checker_plugin.sprx custom\dev_blind\vsh\module
if exist imput\closedcaption_config_plugin.sprx md custom\dev_blind\vsh\module & copy imput\closedcaption_config_plugin.sprx custom\dev_blind\vsh\module
if exist imput\comboplay_plugin.sprx md custom\dev_blind\vsh\module & copy imput\comboplay_plugin.sprx custom\dev_blind\vsh\module
if exist imput\custom_render_plugin.sprx md custom\dev_blind\vsh\module & copy imput\custom_render_plugin.sprx custom\dev_blind\vsh\module
if exist imput\data_copy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\data_copy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\deviceconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\deviceconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\divxdrm.sprx md custom\dev_blind\vsh\module & copy imput\divxdrm.sprx custom\dev_blind\vsh\module
if exist imput\dlna_plugin.sprx md custom\dev_blind\vsh\module & copy imput\dlna_plugin.sprx custom\dev_blind\vsh\module
if exist imput\download_plugin.sprx md custom\dev_blind\vsh\module & copy imput\download_plugin.sprx custom\dev_blind\vsh\module
if exist imput\dtcpip_util.sprx md custom\dev_blind\vsh\module & copy imput\dtcpip_util.sprx custom\dev_blind\vsh\module
if exist imput\edy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\edy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\esehttp.sprx md custom\dev_blind\vsh\module & copy imput\esehttp.sprx custom\dev_blind\vsh\module
if exist imput\eseibrd.sprx md custom\dev_blind\vsh\module & copy imput\eseibrd.sprx custom\dev_blind\vsh\module
if exist imput\eseidle.sprx md custom\dev_blind\vsh\module & copy imput\eseidle.sprx custom\dev_blind\vsh\module
if exist imput\eselock.sprx md custom\dev_blind\vsh\module & copy imput\eselock.sprx custom\dev_blind\vsh\module
if exist imput\eula_cddb_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_cddb_plugin.sprx custom\dev_blind\vsh\module
if exist imput\eula_hcopy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_hcopy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\eula_net_plugin.sprx md custom\dev_blind\vsh\module & copy imput\eula_net_plugin.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_friend.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_friend.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_game.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_game.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_music.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_music.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_network.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_network.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_photo.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_photo.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_psn.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_psn.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_sysconf.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_sysconf.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_tv.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_tv.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_user.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_user.sprx custom\dev_blind\vsh\module
if exist imput\explore_category_video.sprx md custom\dev_blind\vsh\module & copy imput\explore_category_video.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_ft.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_ft.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_game.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_game.sprx custom\dev_blind\vsh\module
if exist imput\explore_plugin_np.sprx md custom\dev_blind\vsh\module & copy imput\explore_plugin_np.sprx custom\dev_blind\vsh\module
if exist imput\faust_widget.sprx md custom\dev_blind\vsh\module & copy imput\faust_widget.sprx custom\dev_blind\vsh\module
if exist imput\filecopy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\filecopy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendim_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendim_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendml_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendml_plugin.sprx custom\dev_blind\vsh\module
if exist imput\friendtrophy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\friendtrophy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\game_ext_plugin.sprx md custom\dev_blind\vsh\module & copy imput\game_ext_plugin.sprx custom\dev_blind\vsh\module
if exist imput\game_indicator_plugin.sprx md custom\dev_blind\vsh\module & copy imput\game_indicator_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gamedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gamedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gamelib_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gamelib_plugin.sprx custom\dev_blind\vsh\module
if exist imput\gameupdate_plugin.sprx md custom\dev_blind\vsh\module & copy imput\gameupdate_plugin.sprx custom\dev_blind\vsh\module
if exist imput\hknw_plugin.sprx md custom\dev_blind\vsh\module & copy imput\hknw_plugin.sprx custom\dev_blind\vsh\module
if exist imput\idle_plugin.sprx md custom\dev_blind\vsh\module & copy imput\idle_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ime.sprx md custom\dev_blind\vsh\module & copy imput\ime.sprx custom\dev_blind\vsh\module
if exist imput\ime_atok.sprx md custom\dev_blind\vsh\module & copy imput\ime_atok.sprx custom\dev_blind\vsh\module
if exist imput\ime_zi.sprx md custom\dev_blind\vsh\module & copy imput\ime_zi.sprx custom\dev_blind\vsh\module
if exist imput\ingame_manual_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ingame_manual_plugin.sprx custom\dev_blind\vsh\module
if exist imput\kensaku_plugin.sprx md custom\dev_blind\vsh\module & copy imput\kensaku_plugin.sprx custom\dev_blind\vsh\module
if exist imput\libmtp.sprx md custom\dev_blind\vsh\module & copy imput\libmtp.sprx custom\dev_blind\vsh\module
if exist imput\libps2hdd.sprx md custom\dev_blind\vsh\module & copy imput\libps2hdd.sprx custom\dev_blind\vsh\module
if exist imput\libvideoSubsystem.sprx md custom\dev_blind\vsh\module & copy imput\libvideoSubsystem.sprx custom\dev_blind\vsh\module
if exist imput\micon_lock_plugin.sprx md custom\dev_blind\vsh\module & copy imput\micon_lock_plugin.sprx custom\dev_blind\vsh\module
if exist imput\mintx_client.sprx md custom\dev_blind\vsh\module & copy imput\mintx_client.sprx custom\dev_blind\vsh\module
if exist imput\mintx_client_upload.sprx md custom\dev_blind\vsh\module & copy imput\mintx_client_upload.sprx custom\dev_blind\vsh\module
if exist imput\mms.sprx md custom\dev_blind\vsh\module & copy imput\mms.sprx custom\dev_blind\vsh\module
if exist imput\mms_cls.sprx md custom\dev_blind\vsh\module & copy imput\mms_cls.sprx custom\dev_blind\vsh\module
if exist imput\mms_db_full.sprx md custom\dev_blind\vsh\module & copy imput\mms_db_full.sprx custom\dev_blind\vsh\module
if exist imput\mms_ext_full.sprx md custom\dev_blind\vsh\module & copy imput\mms_ext_full.sprx custom\dev_blind\vsh\module
if exist imput\mms_ext_mini.sprx md custom\dev_blind\vsh\module & copy imput\mms_ext_mini.sprx custom\dev_blind\vsh\module
if exist imput\mms_maintenance.sprx md custom\dev_blind\vsh\module & copy imput\mms_maintenance.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_avi.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_avi.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_bmp.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_bmp.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_gamehdd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_gamehdd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_npachive.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_npachive.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_dir_ps3savedata.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_dir_ps3savedata.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_gif.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_gif.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_jpeg.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_jpeg.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_bdvd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_bdvd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_cdda.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_cdda.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_cdrom.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_cdrom.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_gamedisc.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_gamedisc.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_hdd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_hdd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_sacd.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_sacd.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_media_usbmass.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_media_usbmass.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp3.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp3.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp4aac.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp4aac.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mp4video.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mp4video.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mpeg.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mpeg.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_mpo.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_mpo.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_msv.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_msv.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_music_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_music_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_photo_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_photo_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_png.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_png.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_riff.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_riff.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_tiff.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_tiff.sprx custom\dev_blind\vsh\module
if exist imput\mms_minimdimp_video_default.sprx md custom\dev_blind\vsh\module & copy imput\mms_minimdimp_video_default.sprx custom\dev_blind\vsh\module
if exist imput\mms_schema.sprx md custom\dev_blind\vsh\module & copy imput\mms_schema.sprx custom\dev_blind\vsh\module
if exist imput\mouse_plugin.sprx md custom\dev_blind\vsh\module & copy imput\mouse_plugin.sprx custom\dev_blind\vsh\module
if exist imput\msmw1.sprx md custom\dev_blind\vsh\module & copy imput\msmw1.sprx custom\dev_blind\vsh\module
if exist imput\msmw1_aaconly.sprx md custom\dev_blind\vsh\module & copy imput\msmw1_aaconly.sprx custom\dev_blind\vsh\module
if exist imput\msmw1_atraconly.sprx md custom\dev_blind\vsh\module & copy imput\msmw1_atraconly.sprx custom\dev_blind\vsh\module
if exist imput\msmw2.sprx md custom\dev_blind\vsh\module & copy imput\msmw2.sprx custom\dev_blind\vsh\module
if exist imput\msmw3_senvuabs_only.sprx md custom\dev_blind\vsh\module & copy imput\msmw3_senvuabs_only.sprx custom\dev_blind\vsh\module
if exist imput\mtpinitiator_plugin.sprx md custom\dev_blind\vsh\module & copy imput\mtpinitiator_plugin.sprx custom\dev_blind\vsh\module
if exist imput\musicbrowser_plugin.sprx md custom\dev_blind\vsh\module & copy imput\musicbrowser_plugin.sprx custom\dev_blind\vsh\module
if exist imput\nas_plugin.sprx md custom\dev_blind\vsh\module & copy imput\nas_plugin.sprx custom\dev_blind\vsh\module
if exist imput\netconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\netconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\newstore_effect.sprx md custom\dev_blind\vsh\module & copy imput\newstore_effect.sprx custom\dev_blind\vsh\module
if exist imput\newstore_plugin.sprx md custom\dev_blind\vsh\module & copy imput\newstore_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_eula_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_eula_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_matching_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_matching_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_multisignin_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_multisignin_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_oauth.sprx md custom\dev_blind\vsh\module & copy imput\np_oauth.sprx custom\dev_blind\vsh\module
if exist imput\np_sns_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_sns_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_ingame.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_ingame.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_plugin.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_plugin.sprx custom\dev_blind\vsh\module
if exist imput\np_trophy_util.sprx md custom\dev_blind\vsh\module & copy imput\np_trophy_util.sprx custom\dev_blind\vsh\module
if exist imput\npsignin_plugin.sprx md custom\dev_blind\vsh\module & copy imput\npsignin_plugin.sprx custom\dev_blind\vsh\module
if exist imput\onicore_child.sprx md custom\dev_blind\vsh\module & copy imput\onicore_child.sprx custom\dev_blind\vsh\module
if exist imput\osk_plugin.sprx md custom\dev_blind\vsh\module & copy imput\osk_plugin.sprx custom\dev_blind\vsh\module
if exist imput\oskfullkeypanel_plugin.sprx md custom\dev_blind\vsh\module & copy imput\oskfullkeypanel_plugin.sprx custom\dev_blind\vsh\module
if exist imput\oskpanel_plugin.sprx md custom\dev_blind\vsh\module & copy imput\oskpanel_plugin.sprx custom\dev_blind\vsh\module
if exist imput\paf_ext.sprx md custom\dev_blind\vsh\module & copy imput\paf_ext.sprx custom\dev_blind\vsh\module
if exist imput\paf_psjs.sprx md custom\dev_blind\vsh\module & copy imput\paf_psjs.sprx custom\dev_blind\vsh\module
if exist imput\paf_web.sprx md custom\dev_blind\vsh\module & copy imput\paf_web.sprx custom\dev_blind\vsh\module
if exist imput\pesm_plugin.sprx md custom\dev_blind\vsh\module & copy imput\pesm_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photo_network_sharing_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photo_network_sharing_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photolist_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photolist_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photoupload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photoupload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\photoviewer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\photoviewer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\playlist_plugin.sprx md custom\dev_blind\vsh\module & copy imput\playlist_plugin.sprx custom\dev_blind\vsh\module
if exist imput\podl_plugin.sprx md custom\dev_blind\vsh\module & copy imput\podl_plugin.sprx custom\dev_blind\vsh\module
if exist imput\post_nr.sprx md custom\dev_blind\vsh\module & copy imput\post_nr.sprx custom\dev_blind\vsh\module
if exist imput\poweroff_plugin.sprx md custom\dev_blind\vsh\module & copy imput\poweroff_plugin.sprx custom\dev_blind\vsh\module
if exist imput\premo_game_plugin.sprx md custom\dev_blind\vsh\module & copy imput\premo_game_plugin.sprx custom\dev_blind\vsh\module
if exist imput\premo_plugin.sprx md custom\dev_blind\vsh\module & copy imput\premo_plugin.sprx custom\dev_blind\vsh\module
if exist imput\print_canon_library.sprx md custom\dev_blind\vsh\module & copy imput\print_canon_library.sprx custom\dev_blind\vsh\module
if exist imput\print_dlna_library.sprx md custom\dev_blind\vsh\module & copy imput\print_dlna_library.sprx custom\dev_blind\vsh\module
if exist imput\print_epson_library.sprx md custom\dev_blind\vsh\module & copy imput\print_epson_library.sprx custom\dev_blind\vsh\module
if exist imput\print_plugin.sprx md custom\dev_blind\vsh\module & copy imput\print_plugin.sprx custom\dev_blind\vsh\module
if exist imput\profile_plugin.sprx md custom\dev_blind\vsh\module & copy imput\profile_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_game.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_game.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_game_mini.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_game_mini.sprx custom\dev_blind\vsh\module
if exist imput\ps3_savedata_plugin_psp.sprx md custom\dev_blind\vsh\module & copy imput\ps3_savedata_plugin_psp.sprx custom\dev_blind\vsh\module
if exist imput\qgl_canyon_app.sprx md custom\dev_blind\vsh\module & copy imput\qgl_canyon_app.sprx custom\dev_blind\vsh\module
if exist imput\qgl_gaia_app.sprx md custom\dev_blind\vsh\module & copy imput\qgl_gaia_app.sprx custom\dev_blind\vsh\module
if exist imput\qglbase.sprx md custom\dev_blind\vsh\module & copy imput\qglbase.sprx custom\dev_blind\vsh\module
if exist imput\raf.sprx md custom\dev_blind\vsh\module & copy imput\raf.sprx custom\dev_blind\vsh\module
if exist imput\rec_plugin.sprx md custom\dev_blind\vsh\module & copy imput\rec_plugin.sprx custom\dev_blind\vsh\module
if exist imput\regcam_plugin.sprx md custom\dev_blind\vsh\module & copy imput\regcam_plugin.sprx custom\dev_blind\vsh\module
if exist imput\remotedownload_plugin.sprx md custom\dev_blind\vsh\module & copy imput\remotedownload_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sacd.sprx md custom\dev_blind\vsh\module & copy imput\sacd.sprx custom\dev_blind\vsh\module
if exist imput\sacd_plugin.sprx md custom\dev_blind\vsh\module & copy imput\sacd_plugin.sprx custom\dev_blind\vsh\module
if exist imput\saflashplayer.sprx md custom\dev_blind\vsh\module & copy imput\saflashplayer.sprx custom\dev_blind\vsh\module
if exist imput\scenefolder_plugin.sprx md custom\dev_blind\vsh\module & copy imput\scenefolder_plugin.sprx custom\dev_blind\vsh\module
if exist imput\screenshot_plugin.sprx md custom\dev_blind\vsh\module & copy imput\screenshot_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sdk.sprx md custom\dev_blind\vsh\module & copy imput\sdk.sprx custom\dev_blind\vsh\module
if exist imput\sdk_full.sprx md custom\dev_blind\vsh\module & copy imput\sdk_full.sprx custom\dev_blind\vsh\module
if exist imput\silk.sprx md custom\dev_blind\vsh\module & copy imput\silk.sprx custom\dev_blind\vsh\module
if exist imput\silk_base.sprx md custom\dev_blind\vsh\module & copy imput\silk_base.sprx custom\dev_blind\vsh\module
if exist imput\silk_mrcommon.sprx md custom\dev_blind\vsh\module & copy imput\silk_mrcommon.sprx custom\dev_blind\vsh\module
if exist imput\silk_mrserver.sprx md custom\dev_blind\vsh\module & copy imput\silk_mrserver.sprx custom\dev_blind\vsh\module
if exist imput\silk_nas.sprx md custom\dev_blind\vsh\module & copy imput\silk_nas.sprx custom\dev_blind\vsh\module
if exist imput\silk_npflashplayer.sprx md custom\dev_blind\vsh\module & copy imput\silk_npflashplayer.sprx custom\dev_blind\vsh\module
if exist imput\silk_npflashplayer9.sprx md custom\dev_blind\vsh\module & copy imput\silk_npflashplayer9.sprx custom\dev_blind\vsh\module
if exist imput\silk_webkit.sprx md custom\dev_blind\vsh\module & copy imput\silk_webkit.sprx custom\dev_blind\vsh\module
if exist imput\silk_wk.sprx md custom\dev_blind\vsh\module & copy imput\silk_wk.sprx custom\dev_blind\vsh\module
if exist imput\simple_music2_decode_plugin.sprx md custom\dev_blind\vsh\module & copy imput\simple_music2_decode_plugin.sprx custom\dev_blind\vsh\module
if exist imput\software_update_plugin.sprx md custom\dev_blind\vsh\module & copy imput\software_update_plugin.sprx custom\dev_blind\vsh\module
if exist imput\soundvisualizer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\soundvisualizer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\strviewer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\strviewer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\sysconf_plugin.sprx md custom\dev_blind\vsh\module & copy imput\sysconf_plugin.sprx custom\dev_blind\vsh\module
if exist imput\thumthum_plugin.sprx md custom\dev_blind\vsh\module & copy imput\thumthum_plugin.sprx custom\dev_blind\vsh\module
if exist imput\upload_util.sprx md custom\dev_blind\vsh\module & copy imput\upload_util.sprx custom\dev_blind\vsh\module
if exist imput\user_info_plugin.sprx md custom\dev_blind\vsh\module & copy imput\user_info_plugin.sprx custom\dev_blind\vsh\module
if exist imput\user_plugin.sprx md custom\dev_blind\vsh\module & copy imput\user_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoeditor_plugin.sprx md custom\dev_blind\vsh\module & copy imput\videoeditor_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoplayer_plugin.sprx md custom\dev_blind\vsh\module & copy imput\videoplayer_plugin.sprx custom\dev_blind\vsh\module
if exist imput\videoplayer_util.sprx md custom\dev_blind\vsh\module & copy imput\videoplayer_util.sprx custom\dev_blind\vsh\module
if exist imput\videorec.sprx md custom\dev_blind\vsh\module & copy imput\videorec.sprx custom\dev_blind\vsh\module
if exist imput\vmc_savedata_plugin.sprx md custom\dev_blind\vsh\module & copy imput\vmc_savedata_plugin.sprx custom\dev_blind\vsh\module
if exist imput\vmclib.sprx md custom\dev_blind\vsh\module & copy imput\vmclib.sprx custom\dev_blind\vsh\module
if exist imput\vshatdl.sprx md custom\dev_blind\vsh\module & copy imput\vshatdl.sprx custom\dev_blind\vsh\module
if exist imput\vshmain_ext.sprx md custom\dev_blind\vsh\module & copy imput\vshmain_ext.sprx custom\dev_blind\vsh\module
if exist imput\vshmain_util.sprx md custom\dev_blind\vsh\module & copy imput\vshmain_util.sprx custom\dev_blind\vsh\module
if exist imput\vshpodl.sprx md custom\dev_blind\vsh\module & copy imput\vshpodl.sprx custom\dev_blind\vsh\module
if exist imput\wboard_plugin.sprx md custom\dev_blind\vsh\module & copy imput\wboard_plugin.sprx custom\dev_blind\vsh\module
if exist imput\webbrowser_plugin.sprx md custom\dev_blind\vsh\module & copy imput\webbrowser_plugin.sprx custom\dev_blind\vsh\module
if exist imput\webbrowser_service.sprx md custom\dev_blind\vsh\module & copy imput\webbrowser_service.sprx custom\dev_blind\vsh\module
if exist imput\webftp_server.sprx md custom\dev_blind\vsh\module & copy imput\webftp_server.sprx custom\dev_blind\vsh\module
if exist imput\webrender_plugin.sprx md custom\dev_blind\vsh\module & copy imput\webrender_plugin.sprx custom\dev_blind\vsh\module
if exist imput\x3_amgsdk.sprx md custom\dev_blind\vsh\module & copy imput\x3_amgsdk.sprx custom\dev_blind\vsh\module
if exist imput\x3_gntoc.sprx md custom\dev_blind\vsh\module & copy imput\x3_gntoc.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp1.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp1.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp2.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp2.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp3.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp3.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp4.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp4.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp5.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp5.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp6.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp6.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp7.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp7.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp8.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp8.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp9.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp9.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp10.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp10.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp11.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp11.sprx custom\dev_blind\vsh\module
if exist imput\x3_mdimp12.sprx md custom\dev_blind\vsh\module & copy imput\x3_mdimp12.sprx custom\dev_blind\vsh\module
if exist imput\xai_plugin.sprx md custom\dev_blind\vsh\module & copy imput\xai_plugin.sprx custom\dev_blind\vsh\module
if exist imput\xcbcontentop.sprx md custom\dev_blind\vsh\module & copy imput\xcbcontentop.sprx custom\dev_blind\vsh\module
if exist imput\xcbplugin1.sprx md custom\dev_blind\vsh\module & copy imput\xcbplugin1.sprx custom\dev_blind\vsh\module
if exist imput\xmb_ingame.sprx md custom\dev_blind\vsh\module & copy imput\xmb_ingame.sprx custom\dev_blind\vsh\module
if exist imput\xmb_plugin.sprx md custom\dev_blind\vsh\module & copy imput\xmb_plugin.sprx custom\dev_blind\vsh\module
if exist imput\xsetting.sprx md custom\dev_blind\vsh\module & copy imput\xsetting.sprx custom\dev_blind\vsh\module
if exist imput\ycon_manual_plugin.sprx md custom\dev_blind\vsh\module & copy imput\ycon_manual_plugin.sprx custom\dev_blind\vsh\module

rem SPRX (Internal Library)
if exist imput\libapostsrc.sprx md custom\dev_blind\sys\internal & copy imput\libapostsrc.sprx custom\dev_blind\sys\internal
if exist imput\libapostsrc_eqalc.sprx md custom\dev_blind\sys\internal & copy imput\libapostsrc_eqalc.sprx custom\dev_blind\sys\internal
if exist imput\libasfparser.sprx md custom\dev_blind\sys\internal & copy imput\libasfparser.sprx custom\dev_blind\sys\internal
if exist imput\libasfparser2.sprx md custom\dev_blind\sys\internal & copy imput\libasfparser2.sprx custom\dev_blind\sys\internal
if exist imput\libat3enc.sprx md custom\dev_blind\sys\internal & copy imput\libat3enc.sprx custom\dev_blind\sys\internal
if exist imput\libat3enc_spurs.sprx md custom\dev_blind\sys\internal & copy imput\libat3enc_spurs.sprx custom\dev_blind\sys\internal
if exist imput\libatxdecmod.sprx md custom\dev_blind\sys\internal & copy imput\libatxdecmod.sprx custom\dev_blind\sys\internal
if exist imput\libatxenc.sprx md custom\dev_blind\sys\internal & copy imput\libatxenc.sprx custom\dev_blind\sys\internal
if exist imput\libchnnlsv.sprx md custom\dev_blind\sys\internal & copy imput\libchnnlsv.sprx custom\dev_blind\sys\internal
if exist imput\libddlenc2.sprx md custom\dev_blind\sys\internal & copy imput\libddlenc2.sprx custom\dev_blind\sys\internal
if exist imput\libdivx311dec.sprx md custom\dev_blind\sys\internal & copy imput\libdivx311dec.sprx custom\dev_blind\sys\internal
if exist imput\libdsee.sprx md custom\dev_blind\sys\internal & copy imput\libdsee.sprx custom\dev_blind\sys\internal
if exist imput\libdtsenc2.sprx md custom\dev_blind\sys\internal & copy imput\libdtsenc2.sprx custom\dev_blind\sys\internal
if exist imput\libdtshddec.sprx md custom\dev_blind\sys\internal & copy imput\libdtshddec.sprx custom\dev_blind\sys\internal
if exist imput\libdtslbrdec.sprx md custom\dev_blind\sys\internal & copy imput\libdtslbrdec.sprx custom\dev_blind\sys\internal
if exist imput\libexif.sprx md custom\dev_blind\sys\internal & copy imput\libexif.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility_full.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility_full.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility_init.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility_init.sprx custom\dev_blind\sys\internal
if exist imput\libfs_utility2.sprx md custom\dev_blind\sys\internal & copy imput\libfs_utility2.sprx custom\dev_blind\sys\internal
if exist imput\libft2d.sprx md custom\dev_blind\sys\internal & copy imput\libft2d.sprx custom\dev_blind\sys\internal
if exist imput\libm2aacdec.sprx md custom\dev_blind\sys\internal & copy imput\libm2aacdec.sprx custom\dev_blind\sys\internal
if exist imput\libm4aacdec2chmod.sprx md custom\dev_blind\sys\internal & copy imput\libm4aacdec2chmod.sprx custom\dev_blind\sys\internal
if exist imput\libm4aacdec2chmod2.sprx md custom\dev_blind\sys\internal & copy imput\libm4aacdec2chmod2.sprx custom\dev_blind\sys\internal
if exist imput\libmcadpt.sprx md custom\dev_blind\sys\internal & copy imput\libmcadpt.sprx custom\dev_blind\sys\internal
if exist imput\libmp3enc.sprx md custom\dev_blind\sys\internal & copy imput\libmp3enc.sprx custom\dev_blind\sys\internal
if exist imput\libmp3sdec.sprx md custom\dev_blind\sys\internal & copy imput\libmp3sdec.sprx custom\dev_blind\sys\internal
if exist imput\libsysutil_game_ps1emu.sprx md custom\dev_blind\sys\internal & copy imput\libsysutil_game_ps1emu.sprx custom\dev_blind\sys\internal
if exist imput\libsysutil_sysconf_ps1emu.sprx md custom\dev_blind\sys\internal & copy imput\libsysutil_sysconf_ps1emu.sprx custom\dev_blind\sys\internal
if exist imput\libtiffdec.sprx md custom\dev_blind\sys\internal & copy imput\libtiffdec.sprx custom\dev_blind\sys\internal
if exist imput\libtrhddec.sprx md custom\dev_blind\sys\internal & copy imput\libtrhddec.sprx custom\dev_blind\sys\internal
if exist imput\libvoice_internal.sprx md custom\dev_blind\sys\internal & copy imput\libvoice_internal.sprx custom\dev_blind\sys\internal
if exist imput\libvpost.sprx md custom\dev_blind\sys\internal & copy imput\libvpost.sprx custom\dev_blind\sys\internal
if exist imput\sys_audio.sprx md custom\dev_blind\sys\internal & copy imput\sys_audio.sprx custom\dev_blind\sys\internal
if exist imput\sysvoice_modules.sprx md custom\dev_blind\sys\internal & copy imput\sysvoice_modules.sprx custom\dev_blind\sys\internal

rem SPRX (External Library)
if exist imput\libaacenc.sprx md custom\dev_blind\sys\external & copy imput\libaacenc.sprx custom\dev_blind\sys\external
if exist imput\libaacenc_spurs.sprx md custom\dev_blind\sys\external & copy imput\libaacenc_spurs.sprx custom\dev_blind\sys\external
if exist imput\libac3dec.sprx md custom\dev_blind\sys\external & copy imput\libac3dec.sprx custom\dev_blind\sys\external
if exist imput\libac3dec2.sprx md custom\dev_blind\sys\external & copy imput\libac3dec2.sprx custom\dev_blind\sys\external
if exist imput\libad_async.sprx md custom\dev_blind\sys\external & copy imput\libad_async.sprx custom\dev_blind\sys\external
if exist imput\libad_billboard_util.sprx md custom\dev_blind\sys\external & copy imput\libad_billboard_util.sprx custom\dev_blind\sys\external
if exist imput\libad_core.sprx md custom\dev_blind\sys\external & copy imput\libad_core.sprx custom\dev_blind\sys\external
if exist imput\libadec.sprx md custom\dev_blind\sys\external & copy imput\libadec.sprx custom\dev_blind\sys\external
if exist imput\libadec_internal.sprx md custom\dev_blind\sys\external & copy imput\libadec_internal.sprx custom\dev_blind\sys\external
if exist imput\libadec2.sprx md custom\dev_blind\sys\external & copy imput\libadec2.sprx custom\dev_blind\sys\external
if exist imput\libapostsrc_mini.sprx md custom\dev_blind\sys\external & copy imput\libapostsrc_mini.sprx custom\dev_blind\sys\external
if exist imput\libasfparser2_astd.sprx md custom\dev_blind\sys\external & copy imput\libasfparser2_astd.sprx custom\dev_blind\sys\external
if exist imput\libat3dec.sprx md custom\dev_blind\sys\external & copy imput\libat3dec.sprx custom\dev_blind\sys\external
if exist imput\libat3multidec.sprx md custom\dev_blind\sys\external & copy imput\libat3multidec.sprx custom\dev_blind\sys\external
if exist imput\libatrac3multi.sprx md custom\dev_blind\sys\external & copy imput\libatrac3multi.sprx custom\dev_blind\sys\external
if exist imput\libatrac3plus.sprx md custom\dev_blind\sys\external & copy imput\libatrac3plus.sprx custom\dev_blind\sys\external
if exist imput\libatxdec.sprx md custom\dev_blind\sys\external & copy imput\libatxdec.sprx custom\dev_blind\sys\external
if exist imput\libatxdec2.sprx md custom\dev_blind\sys\external & copy imput\libatxdec2.sprx custom\dev_blind\sys\external
if exist imput\libaudio.sprx md custom\dev_blind\sys\external & copy imput\libaudio.sprx custom\dev_blind\sys\external
if exist imput\libavcdec.sprx md custom\dev_blind\sys\external & copy imput\libavcdec.sprx custom\dev_blind\sys\external
if exist imput\libavcenc.sprx md custom\dev_blind\sys\external & copy imput\libavcenc.sprx custom\dev_blind\sys\external
if exist imput\libavcenc_small.sprx md custom\dev_blind\sys\external & copy imput\libavcenc_small.sprx custom\dev_blind\sys\external
if exist imput\libavchatjpgdec.sprx md custom\dev_blind\sys\external & copy imput\libavchatjpgdec.sprx custom\dev_blind\sys\external
if exist imput\libbeisobmf.sprx md custom\dev_blind\sys\external & copy imput\libbeisobmf.sprx custom\dev_blind\sys\external
if exist imput\libbemp2sys.sprx md custom\dev_blind\sys\external & copy imput\libbemp2sys.sprx custom\dev_blind\sys\external
if exist imput\libcamera.sprx md custom\dev_blind\sys\external & copy imput\libcamera.sprx custom\dev_blind\sys\external
if exist imput\libcelp8dec.sprx md custom\dev_blind\sys\external & copy imput\libcelp8dec.sprx custom\dev_blind\sys\external
if exist imput\libcelp8enc.sprx md custom\dev_blind\sys\external & copy imput\libcelp8enc.sprx custom\dev_blind\sys\external
if exist imput\libcelpdec.sprx md custom\dev_blind\sys\external & copy imput\libcelpdec.sprx custom\dev_blind\sys\external
if exist imput\libcelpenc.sprx md custom\dev_blind\sys\external & copy imput\libcelpenc.sprx custom\dev_blind\sys\external
if exist imput\libddpdec.sprx md custom\dev_blind\sys\external & copy imput\libddpdec.sprx custom\dev_blind\sys\external
if exist imput\libdivxdec.sprx md custom\dev_blind\sys\external & copy imput\libdivxdec.sprx custom\dev_blind\sys\external
if exist imput\libdmux.sprx md custom\dev_blind\sys\external & copy imput\libdmux.sprx custom\dev_blind\sys\external
if exist imput\libdmuxpamf.sprx md custom\dev_blind\sys\external & copy imput\libdmuxpamf.sprx custom\dev_blind\sys\external
if exist imput\libdtslbrdec.sprx md custom\dev_blind\sys\external & copy imput\libdtslbrdec.sprx custom\dev_blind\sys\external
if exist imput\libfiber.sprx md custom\dev_blind\sys\external & copy imput\libfiber.sprx custom\dev_blind\sys\external
if exist imput\libfont.sprx md custom\dev_blind\sys\external & copy imput\libfont.sprx custom\dev_blind\sys\external
if exist imput\libfontFT.sprx md custom\dev_blind\sys\external & copy imput\libfontFT.sprx custom\dev_blind\sys\external
if exist imput\libfreetype.sprx md custom\dev_blind\sys\external & copy imput\libfreetype.sprx custom\dev_blind\sys\external
if exist imput\libfreetypeTT.sprx md custom\dev_blind\sys\external & copy imput\libfreetypeTT.sprx custom\dev_blind\sys\external
if exist imput\libfs.sprx md custom\dev_blind\sys\external & copy imput\libfs.sprx custom\dev_blind\sys\external
if exist imput\libfs_155.sprx md custom\dev_blind\sys\external & copy imput\libfs_155.sprx custom\dev_blind\sys\external
if exist imput\libgcm_sys.sprx md custom\dev_blind\sys\external & copy imput\libgcm_sys.sprx custom\dev_blind\sys\external
if exist imput\libgem.sprx md custom\dev_blind\sys\external & copy imput\libgem.sprx custom\dev_blind\sys\external
if exist imput\libgifdec.sprx md custom\dev_blind\sys\external & copy imput\libgifdec.sprx custom\dev_blind\sys\external
if exist imput\libhttp.sprx md custom\dev_blind\sys\external & copy imput\libhttp.sprx custom\dev_blind\sys\external
if exist imput\libio.sprx md custom\dev_blind\sys\external & copy imput\libio.sprx custom\dev_blind\sys\external
if exist imput\libjpgdec.sprx md custom\dev_blind\sys\external & copy imput\libjpgdec.sprx custom\dev_blind\sys\external
if exist imput\libjpgenc.sprx md custom\dev_blind\sys\external & copy imput\libjpgenc.sprx custom\dev_blind\sys\external
if exist imput\libkey2char.sprx md custom\dev_blind\sys\external & copy imput\libkey2char.sprx custom\dev_blind\sys\external
if exist imput\libl10n.sprx md custom\dev_blind\sys\external & copy imput\libl10n.sprx custom\dev_blind\sys\external
if exist imput\liblv2.sprx md custom\dev_blind\sys\external & copy imput\liblv2.sprx custom\dev_blind\sys\external
if exist imput\liblv2coredump.sprx md custom\dev_blind\sys\external & copy imput\liblv2coredump.sprx custom\dev_blind\sys\external
if exist imput\liblv2dbg_for_cex.sprx md custom\dev_blind\sys\external & copy imput\liblv2dbg_for_cex.sprx custom\dev_blind\sys\external
if exist imput\libm2bcdec.sprx md custom\dev_blind\sys\external & copy imput\libm2bcdec.sprx custom\dev_blind\sys\external
if exist imput\libm4aacdec.sprx md custom\dev_blind\sys\external & copy imput\libm4aacdec.sprx custom\dev_blind\sys\external
if exist imput\libm4aacdec2ch.sprx md custom\dev_blind\sys\external & copy imput\libm4aacdec2ch.sprx custom\dev_blind\sys\external
if exist imput\libm4hdenc.sprx md custom\dev_blind\sys\external & copy imput\libm4hdenc.sprx custom\dev_blind\sys\external
if exist imput\libm4venc.sprx md custom\dev_blind\sys\external & copy imput\libm4venc.sprx custom\dev_blind\sys\external
if exist imput\libmedi.sprx md custom\dev_blind\sys\external & copy imput\libmedi.sprx custom\dev_blind\sys\external
if exist imput\libmic.sprx md custom\dev_blind\sys\external & copy imput\libmic.sprx custom\dev_blind\sys\external
if exist imput\libmp3dec.sprx md custom\dev_blind\sys\external & copy imput\libmp3dec.sprx custom\dev_blind\sys\external
if exist imput\libmp4.sprx md custom\dev_blind\sys\external & copy imput\libmp4.sprx custom\dev_blind\sys\external
if exist imput\libmpl1dec.sprx md custom\dev_blind\sys\external & copy imput\libmpl1dec.sprx custom\dev_blind\sys\external
if exist imput\libmvcdec.sprx md custom\dev_blind\sys\external & copy imput\libmvcdec.sprx custom\dev_blind\sys\external
if exist imput\libnet.sprx md custom\dev_blind\sys\external & copy imput\libnet.sprx custom\dev_blind\sys\external
if exist imput\libnetctl.sprx md custom\dev_blind\sys\external & copy imput\libnetctl.sprx custom\dev_blind\sys\external
if exist imput\libpamf.sprx md custom\dev_blind\sys\external & copy imput\libpamf.sprx custom\dev_blind\sys\external
if exist imput\libpngdec.sprx md custom\dev_blind\sys\external & copy imput\libpngdec.sprx custom\dev_blind\sys\external
if exist imput\libpngenc.sprx md custom\dev_blind\sys\external & copy imput\libpngenc.sprx custom\dev_blind\sys\external
if exist imput\libresc.sprx md custom\dev_blind\sys\external & copy imput\libresc.sprx custom\dev_blind\sys\external
if exist imput\librtc.sprx md custom\dev_blind\sys\external & copy imput\librtc.sprx custom\dev_blind\sys\external
if exist imput\librudp.sprx md custom\dev_blind\sys\external & copy imput\librudp.sprx custom\dev_blind\sys\external
if exist imput\libsail.sprx md custom\dev_blind\sys\external & copy imput\libsail.sprx custom\dev_blind\sys\external
if exist imput\libsail_avi.sprx md custom\dev_blind\sys\external & copy imput\libsail_avi.sprx custom\dev_blind\sys\external
if exist imput\libsail_rec.sprx md custom\dev_blind\sys\external & copy imput\libsail_rec.sprx custom\dev_blind\sys\external
if exist imput\libsjvtd.sprx md custom\dev_blind\sys\external & copy imput\libsjvtd.sprx custom\dev_blind\sys\external
if exist imput\libsmvd2.sprx md custom\dev_blind\sys\external & copy imput\libsmvd2.sprx custom\dev_blind\sys\external
if exist imput\libsmvd4.sprx md custom\dev_blind\sys\external & copy imput\libsmvd4.sprx custom\dev_blind\sys\external
if exist imput\libspurs_jq.sprx md custom\dev_blind\sys\external & copy imput\libspurs_jq.sprx custom\dev_blind\sys\external
if exist imput\libsre.sprx md custom\dev_blind\sys\external & copy imput\libsre.sprx custom\dev_blind\sys\external
if exist imput\libssl.sprx md custom\dev_blind\sys\external & copy imput\libssl.sprx custom\dev_blind\sys\external
if exist imput\libsvc1d.sprx md custom\dev_blind\sys\external & copy imput\libsvc1d.sprx custom\dev_blind\sys\external
if exist imput\libsync2.sprx md custom\dev_blind\sys\external & copy imput\libsync2.sprx custom\dev_blind\sys\external
if exist imput\libsysmodule.sprx md custom\dev_blind\sys\external & copy imput\libsysmodule.sprx custom\dev_blind\sys\external
if exist imput\libsysutil.sprx md custom\dev_blind\sys\external & copy imput\libsysutil.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_ap.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_ap.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_authdialog.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_authdialog.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avc_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avc_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avc2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avc2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_avconf_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_avconf_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_bgdl.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_bgdl.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_cross_controller.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_cross_controller.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_dec_psnvideo.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_dec_psnvideo.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_dtcp_ip.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_dtcp_ip.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_game.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_game.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_game_exec.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_game_exec.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_imejp.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_imejp.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_misc.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_misc.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music_decode.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music_decode.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_music_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_music_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_clans.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_clans.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_commerce2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_commerce2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_eula.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_eula.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_installer.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_installer.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_sns.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_sns.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_trophy.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_trophy.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_tus.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_tus.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np_util.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np_util.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_np2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_np2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_oskdialog_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_oskdialog_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_pesm.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_pesm.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_decode.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_decode.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_export2.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_export2.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_import.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_import.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_photo_network_sharing.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_photo_network_sharing.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_print.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_print.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_rec.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_rec.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_remoteplay.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_remoteplay.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_rtcalarm.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_rtcalarm.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_savedata.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_savedata.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_savedata_psp.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_savedata_psp.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_screenshot.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_screenshot.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_search.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_search.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_storagedata.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_storagedata.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_subdisplay.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_subdisplay.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_syschat.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_syschat.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_sysconf_ext.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_sysconf_ext.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_userinfo.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_userinfo.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_export.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_export.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_player.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_player.sprx custom\dev_blind\sys\external
if exist imput\libsysutil_video_upload.sprx md custom\dev_blind\sys\external & copy imput\libsysutil_video_upload.sprx custom\dev_blind\sys\external
if exist imput\libusbd.sprx md custom\dev_blind\sys\external & copy imput\libusbd.sprx custom\dev_blind\sys\external
if exist imput\libusbpspcm.sprx md custom\dev_blind\sys\external & copy imput\libusbpspcm.sprx custom\dev_blind\sys\external
if exist imput\libvdec.sprx md custom\dev_blind\sys\external & copy imput\libvdec.sprx custom\dev_blind\sys\external
if exist imput\libvoice.sprx md custom\dev_blind\sys\external & copy imput\libvoice.sprx custom\dev_blind\sys\external
if exist imput\libvpost.sprx md custom\dev_blind\sys\external & copy imput\libvpost.sprx custom\dev_blind\sys\external
if exist imput\libvpost2.sprx md custom\dev_blind\sys\external & copy imput\libvpost2.sprx custom\dev_blind\sys\external
if exist imput\libwmadec.sprx md custom\dev_blind\sys\external & copy imput\libwmadec.sprx custom\dev_blind\sys\external

rem SSL Cert
if exist imput\*.cer md custom\dev_blind\data\cert & copy imput\*.cer custom\dev_blind\data\cert

rem XMB Wave
if exist imput\lines.qrc md custom\dev_blind\vsh\resource\qgl & copy imput\lines.qrc custom\dev_blind\vsh\resource\qgl

rem XML (XMB Layout)
if exist imput\*.xml md custom\dev_blind\vsh\resource\explore\xmb & copy imput\*.xml custom\dev_blind\vsh\resource\explore\xmb

:: ----------------------------------------------
:: Simple script to build a PKG (by CaptainCPS-X)
:: ----------------------------------------------

:: Change these for your application / manual...
set CID=CUSTOM-INSTALLER_00-0000000000000000
set PKG_DIR=./custom/
set PKG_NAME=custom.pkg

make_package_custom.exe --contentid %CID% %PKG_DIR% %PKG_NAME%

pause
Nice work, both of ye.
 
I had a little fun with your bat file @lmn7 :) Now, if you put the files you want to make a PKG with into a folder named "imput", it will make the appropriate folder in custom folder and copy the file into it. The known files are those listed here (except the CEX/DEX settings).
Nice one dude, instead of having a separate folder you could even just use the custom folder. That will be very useful for noobs and lazy people alike.
 
I've fixed the encryption issues, now you can create large packages without getting an out of memory error. Also added some console output so you can see what's happening. This is a beta build for now and will probably be improved some time in the future, so please report any issues :)

Thanks, Good work Imn7 . So can i use now to make pkg for any thing like big game , i mean its now work like psn_package_nbdrm.exe and so i can use instead of psn_package_nbdrm.exe ?


Sent from my iPhone using Tapatalk
 
I've fixed the encryption issues, now you can create large packages without getting an out of memory error. Also added some console output so you can see what's happening. This is a beta build for now and will probably be improved some time in the future, so please report any issues :)
Nice one.
 
Thanks, Good work Imn7 . So can i use now to make pkg for any thing like big game , i mean its now work like psn_package_nbdrm.exe and so i can use instead of psn_package_nbdrm.exe ?


Sent from my iPhone using Tapatalk
You could, but this tool was intended for developers to create custom installer packages or flash mods. You should keep using psn_package_npdrm for game packages.
 
I've fixed the encryption issues, now you can create large packages without getting an out of memory error. Also added some console output so you can see what's happening. This is a beta build for now and will probably be improved some time in the future, so please report any issues :)

AWESOME!! Could we have the new source code for anyone that want to check your changes and help fix issues (if any is found)?

BTW I created a simple script to help to convert HTML to offline javascript links using your method.

Just put any html (or html + ps3xploit_v301.js) in the same folder of the vbs and it will create various txt and a index_test.html when the vbs is executed.

Could you verify it?
 
BTW I created a simple script to help to convert HTML to offline javascript links using your method.

Just put any html (or html + ps3xploit_v301.js) in the same folder of the vbs and it will create various txt and a index_test.html when the vbs is executed.

Could you verify it?
Well done, it seems to work properly. However, more work needs to be done before the scripts are usable. As is, they are too large to work from the XMB. Is there any way you could write a similar script that instead takes a javascript file and converts it to one inline script, enclosing it within an eval function and escaping the characters < > and '? The ' char needs to be escaped so the interpreter doesn't close the eval function before it executes all of the code.

I can also release my base offline scripts which would allow anyone to easily edit them to create their own tools, as long as they have a little bit of javascript knowledge.
 
Last edited:
Sure, here are the files I changed

pkg.py:
Code:
#!/usr/bin/env python
from __future__ import with_statement
from Struct2 import Struct
from fself import SelfHeader, AppInfo

import struct
import sys
import hashlib
import os
import getopt
import ConfigParser
import io
import glob

TYPE_NPDRMSELF = 0x1
TYPE_RAW = 0x3
TYPE_DIRECTORY = 0x4

TYPE_OVERWRITE_ALLOWED = 0x80000000

debug = False

class EbootMeta(Struct):
    __endian__ = Struct.BE
    def __format__(self):
        self.magic             = Struct.uint32
        self.unk1             = Struct.uint32
        self.drmType         = Struct.uint32
        self.unk2            = Struct.uint32
        self.contentID         = Struct.uint8[0x30]
        self.fileSHA1         = Struct.uint8[0x10]
        self.notSHA1         = Struct.uint8[0x10]
        self.notXORKLSHA1     = Struct.uint8[0x10]
        self.nulls             = Struct.uint8[0x10]
class MetaHeader(Struct):
    __endian__ = Struct.BE
    def __format__(self):
        self.unk1     = Struct.uint32
        self.unk2     = Struct.uint32
        self.drmType     = Struct.uint32
        self.unk4     = Struct.uint32
       
        self.unk21     = Struct.uint32
        self.unk22     = Struct.uint32
        self.unk23     = Struct.uint32
        self.unk24     = Struct.uint32
       
        self.unk31     = Struct.uint32
        self.unk32     = Struct.uint32
        self.unk33     = Struct.uint32
        self.secondaryVersion     = Struct.uint16
        self.unk34     = Struct.uint16
       
        self.dataSize     = Struct.uint32
        self.unk42     = Struct.uint32
        self.unk43     = Struct.uint32
        self.packagedBy     = Struct.uint16
        self.packageVersion     = Struct.uint16
class DigestBlock(Struct):
    __endian__ = Struct.BE
    def __format__(self):
        self.type     = Struct.uint32
        self.size     = Struct.uint32
        self.isNext = Struct.uint64
class FileHeader(Struct):
    __endian__ = Struct.BE
    def __format__(self):
        self.fileNameOff     = Struct.uint32
        self.fileNameLength = Struct.uint32
        self.fileOff         = Struct.uint64
       
        self.fileSize     = Struct.uint64
        self.flags        = Struct.uint32
        self.padding         = Struct.uint32
    def __str__(self):
        out  = ""
        out += "[X] File Name: %s [" % self.fileName
        if self.flags & 0xFF == TYPE_NPDRMSELF:
            out += "NPDRM Self]"
        elif self.flags & 0xFF == TYPE_DIRECTORY:
            out += "Directory]"
        elif self.flags & 0xFF == TYPE_RAW:
            out += "Raw Data]"
        else:
            out += "Unknown]"
        if (self.flags & TYPE_OVERWRITE_ALLOWED ) != 0:
            out += " Overwrite allowed.\n"
        else:
            out += " Overwrite NOT allowed.\n"
        out += "\n"
       
        out += "[X] File Name offset: %08x\n" % self.fileNameOff
        out += "[X] File Name Length: %08x\n" % self.fileNameLength
        out += "[X] Offset To File Data: %016x\n" % self.fileOff
       
        out += "[X] File Size: %016x\n" % self.fileSize
        out += "[X] Flags: %08x\n" % self.flags
        out += "[X] Padding: %08x\n\n" % self.padding
        assert self.padding == 0, "I guess I was wrong, this is not padding."
       
       
        return out
    def __repr__(self):
        return self.fileName + ("<FileHeader> Size: 0x%016x" % self.fileSize)
    def __init__(self):
        Struct.__init__(self)
        self.fileName = ""
    def doWork(self, decrypteddata, context = None):
        if context == None:
            self.fileName = nullterm(decrypteddata[self.fileNameOff:self.fileNameOff+self.fileNameLength])
        else:
            self.fileName = nullterm(crypt(listToString(context), decrypteddata[self.fileNameOff:self.fileNameOff+self.fileNameLength], self.fileNameLength))
    def dump(self, directory, data, header):
        if self.flags & 0xFF == 0x4:
            try:
                os.makedirs(directory + "/" + self.fileName)
            except Exception, e:
                print
           
        else:
            tFile = open(directory + "/" + self.fileName, "wb")
            tFile.write(data[self.fileOff:self.fileOff+self.fileSize])
           

class Header(Struct):
    __endian__ = Struct.BE
    def __format__(self):
        self.magic = Struct.uint32
        self.type = Struct.uint32
        self.pkgInfoOff = Struct.uint32
        self.unk1 = Struct.uint32
       
        self.headSize = Struct.uint32
        self.itemCount = Struct.uint32
        self.packageSize = Struct.uint64
       
        self.dataOff = Struct.uint64
        self.dataSize = Struct.uint64
       
        self.contentID = Struct.uint8[0x30]
        self.QADigest = Struct.uint8[0x10]
        self.KLicensee = Struct.uint8[0x10]
       
       
       
    def __str__(self):
        context = keyToContext(self.QADigest)
        setContextNum(context, 0xFFFFFFFFFFFFFFFF)
        licensee = crypt(listToString(context), listToString(self.KLicensee), 0x10)
       
        out  = ""
        out += "[X] Magic: %08x\n" % self.magic
        out += "[X] Type: %08x\n" % self.type
        out += "[X] Head size: %08x\n" % self.headSize
        out += "[X] Item count: %08x\n" % self.itemCount
        out += "[X] Package size: %016x\n" % self.packageSize
        out += "[X] Data offset: %016x\n" % self.dataOff
        out += "[X] Data size: %016x\n" % self.dataSize
        out += "[X] Content ID: %s\n" % (nullterm(self.contentID))
        out += "[X] QA_Digest: %s\n" % (nullterm(self.QADigest, True))
        out += "[X] Package information offset: %08x\n" % self.pkgInfoOff
       
       
        return out
def listToString(inlist):
    if isinstance(inlist, list):
        return ''.join(["%c" % el for el in inlist])
    else:
        return ""
def nullterm(str_plus, printhex=False):
    if isinstance(str_plus, list):
        if printhex:
            str_plus = ''.join(["%X" % el for el in str_plus])
        else:
            str_plus = listToString(str_plus)
    z = str_plus.find('\0')
    if z != -1:
        return str_plus[:z]
    else:
        return str_plus
       
def keyToContext(key):
    if isinstance(key, list):
        key = listToString(key)
        key = key[0:16]
    largekey = []
    for i in range(0, 8):
        largekey.append(ord(key[i]))
    for i in range(0, 8):
        largekey.append(ord(key[i]))
    for i in range(0, 8):
        largekey.append(ord(key[i+8]))
    for i in range(0, 8):
        largekey.append(ord(key[i+8]))
    for i in range(0, 0x20):
        largekey.append(0)
    return largekey

#Thanks to anonymous for the help with the RE of this part,
# the x86 mess of ands and ors made my head go BOOM headshot.
def manipulate(key):
    if not isinstance(key, list):
        return
    tmp = listToString(key[0x38:])
   
   
    tmpnum = struct.unpack('>Q', tmp)[0]
    tmpnum += 1
    tmpnum = tmpnum & 0xFFFFFFFFFFFFFFFF
    setContextNum(key, tmpnum)
def setContextNum(key, tmpnum):
    tmpchrs = struct.pack('>Q', tmpnum)
   
    key[0x38] = ord(tmpchrs[0])
    key[0x39] = ord(tmpchrs[1])
    key[0x3a] = ord(tmpchrs[2])
    key[0x3b] = ord(tmpchrs[3])
    key[0x3c] = ord(tmpchrs[4])
    key[0x3d] = ord(tmpchrs[5])
    key[0x3e] = ord(tmpchrs[6])
    key[0x3f] = ord(tmpchrs[7])

import pkgcrypt

def crypt(key, inbuf, length):
    return pkgcrypt.pkgcrypt(key, inbuf, length);

    # Original python (slow) implementation
    ret = ""
    offset = 0
    while length > 0:
        bytes_to_dump = length
        if length > 0x10:
            bytes_to_dump = 0x10
        outhash = SHA1(listToString(key)[0:0x40])
        for i in range(0, bytes_to_dump):
            ret += chr(ord(outhash[i]) ^ ord(inbuf[offset]))
            offset += 1
        manipulate(key)
        length -= bytes_to_dump
    return ret
def SHA1(data):
    m = hashlib.sha1()
    m.update(data)
    return m.digest()

pkgcrypt.register_sha1_callback(SHA1)
   
def listPkg(filename):
    with open(filename, 'rb') as fp:
        data = fp.read()
        offset = 0
        header = Header()
        header.unpack(data[offset:offset+len(header)])
        print header
        print
       
        assert header.type == 0x00000001, 'Unsupported Type'
        if header.itemCount > 0:
            print 'Listing: "' + filename + '"'
            print "+) overwrite, -) no overwrite"
            print
            dataEnc = data[header.dataOff:header.dataOff+header.dataSize]
            context = keyToContext(header.QADigest)
           
            decData = crypt(listToString(context), dataEnc, len(FileHeader())*header.itemCount)
           
            fileDescs = []
            for i in range(0, header.itemCount):
                fileD = FileHeader()
                fileD.unpack(decData[0x20 * i:0x20 * i + 0x20])
                fileDescs.append(fileD)
            for fileD in fileDescs:
                fileD.doWork(dataEnc, context)
                out = ""
                if fileD.flags & 0xFF == TYPE_NPDRMSELF:
                    out += " NPDRM SELF:"
                elif fileD.flags & 0xFF == TYPE_DIRECTORY:
                    out += "  directory:"
                elif fileD.flags & 0xFF == TYPE_RAW:
                    out += "   raw data:"
                else:
                    out += "    unknown:"
                if (fileD.flags & TYPE_OVERWRITE_ALLOWED ) != 0:
                    out += "+"
                else:
                    out += "-"
                out += "%11d: " % fileD.fileSize
                out += fileD.fileName
                print out,
                print
                #print fileD
def unpack(filename):
    with open(filename, 'rb') as fp:
        data = fp.read()
        offset = 0
        header = Header()
        header.unpack(data[offset:offset+len(header)])
        if debug:
            print header
            print
       
        assert header.type == 0x00000001, 'Unsupported Type'
        if header.itemCount > 0:
            dataEnc = data[header.dataOff:header.dataOff+header.dataSize]
            context = keyToContext(header.QADigest)
           
            decData = crypt(listToString(context), dataEnc, header.dataSize)
            directory = nullterm(header.contentID)
            try:
                os.makedirs(directory)
            except Exception, e:
                pass
            fileDescs = []
            for i in range(0, header.itemCount):
                fileD = FileHeader()
                fileD.unpack(decData[0x20 * i:0x20 * i + 0x20])
                fileD.doWork(decData)
                fileDescs.append(fileD)
                if debug:
                    print fileD
                fileD.dump(directory, decData, header)
def getFiles(files, folder, original):
    oldfolder = folder
    foundFiles = glob.glob( os.path.join(folder, '*') )
    sortedList = []
    for filepath in foundFiles:
        if not os.path.isdir(filepath):
            sortedList.append(filepath)
    for filepath in foundFiles:
        if os.path.isdir(filepath):
            sortedList.append(filepath)
    for filepath in sortedList:
        newpath = filepath.replace("\\", "/")
        newpath = newpath[len(original):]
        if os.path.isdir(filepath):
            folder = FileHeader()
            folder.fileName = "../../" + newpath
            folder.fileNameOff     = 0
            folder.fileNameLength = len(folder.fileName)
            folder.fileOff         = 0
           
            folder.fileSize     = 0
            folder.flags        = TYPE_OVERWRITE_ALLOWED | TYPE_DIRECTORY
            folder.padding         = 0
            files.append(folder)
            getFiles(files, filepath, original)
        else:
            file = FileHeader()
            file.fileName = "../../" + newpath
            file.fileNameOff     = 0
            file.fileNameLength = len(file.fileName)
            file.fileOff         = 0
            file.fileSize     = os.path.getsize(filepath)
            file.flags        = TYPE_OVERWRITE_ALLOWED | TYPE_RAW
            if newpath == "USRDIR/EBOOT.BIN":
                file.fileSize = ((file.fileSize - 0x30 + 63) & ~63) + 0x30
                file.flags        = TYPE_OVERWRITE_ALLOWED | TYPE_NPDRMSELF
           
            file.padding         = 0
            files.append(file)
           
def pack(folder, contentid, outname=None):

    qadigest = hashlib.sha1()
   
    header = Header()
    header.magic = 0x7F504B47
    header.type = 0x01
    header.pkgInfoOff = 0xC0
    header.unk1 = 0x05
   
    header.headSize = 0x80
    header.itemCount = 0
    header.packageSize = 0
   
    header.dataOff = 0x140
    header.dataSize = 0
   
    for i in range(0, 0x30):
        header.contentID[i] = 0
   
    for i in range(0,0x10):
        header.QADigest[i] = 0
        header.KLicensee[i] = 0
   
   


    #content type    type name                install path (on ps3)    notes
    #0x00000004        GameData (also Patches)    /dev_hdd0/game/  
    #0x00000005        Game_Exec                /dev_hdd0/game/  
    #0x00000006        PS1emu                    /dev_hdd0/game/  
    #0x00000007        PSP & PCEngine            /dev_hdd0/game/  
    #0x00000008              
    #0x00000009        Theme                    /dev_hdd0/theme  
    #0x0000000A        Widget                    /dev_hdd0/widget  
    #0x0000000B        License                    /dev_hdd0/home/<current user>/exdata  
    #0x0000000C        VSH Module                /dev_hdd0/vsh/modules/  
    #0x0000000D        PSN Avatar                /dev_hdd0/home/<current user>/psn_avatar  
    #0x0000000E        PSPgo                    /dev_hdd0/game/    Displayed as Unknown Album: Corrupted Data
    #0x0000000F        Minis                    /dev_hdd0/game/  
    #0x00000010        NEOGEO                    /dev_hdd0/game/  
    #0x00000011        VMC                        /dev_hdd0/tmp/vmc/  
    #0x00000012        Seen on PS2 classic        /dev_hdd0/game/  
    #0x00000014        Seen on PSP remastered    /dev_hdd0/game/  
    #0x00000015        PSVita (PSP2GD)
    #0x00000016        PSVita (PSP2AC)
    #0x00000017        PSVita (PSP2LA)  
    #0x00000019        WT (Web TV?)            /dev_hdd0/game/

    metaBlock = MetaHeader()
    metaBlock.unk1         = 1 #doesnt change output of --extract
    metaBlock.unk2         = 4 #doesnt change output of --extract
    metaBlock.drmType     = 3 #1 = Network, 2 = Local, 3 = Free, anything else = unknown
    metaBlock.unk4         = 2
   
    metaBlock.unk21     = 4
    metaBlock.unk22     = 0x9 #content type = 5 == gameexec, 4 == gamedata
    metaBlock.unk23     = 3
    metaBlock.unk24     = 4
   
    metaBlock.unk31     = 0xE   #packageType 0x10 == patch, 0x8 == Demo&Key, 0x0 == Demo&Key (AND UserFiles = NotOverWrite), 0xE == normal, use 0xE for gamexec, and 8 for gamedata
    metaBlock.unk32     = 4   #when this is 5 secondary version gets used??
    metaBlock.unk33     = 8   #doesnt change output of --extract
    metaBlock.secondaryVersion     = 0
    metaBlock.unk34     = 0
   
    metaBlock.dataSize     = 0
    metaBlock.unk42     = 5
    metaBlock.unk43     = 4
    metaBlock.packagedBy     = 0x1061
    metaBlock.packageVersion     = 0
   
   
    files = []
    getFiles(files, folder, folder)
    header.itemCount = len(files)
    dataToEncrypt = ""
    fileDescLength = 0
    fileOff = 0x20 * len(files)
    for file in files:
        alignedSize = (file.fileNameLength + 0x0F) & ~0x0F
        file.fileNameOff = fileOff
        fileOff += alignedSize
    for file in files:
        file.fileOff = fileOff
        fileOff += (file.fileSize + 0x0F) & ~0x0F
        dataToEncrypt += file.pack()
    for file in files:
        alignedSize = (file.fileNameLength + 0x0F) & ~0x0F
        dataToEncrypt += file.fileName
        dataToEncrypt += "\0" * (alignedSize-file.fileNameLength)
    fileDescLength = len(dataToEncrypt)
    f = open('fileData.dat', 'wb')
    f.write(dataToEncrypt)
    f.close
    for file in files:
        if not file.flags & 0xFF == TYPE_DIRECTORY:
            path = os.path.join(folder, file.fileName.replace("../../", ""))
            print(file.fileName.replace("../..", ""))
            fileDataLen = os.path.getsize(path)
            fp = open(path, 'rb')
            f = open('fileData.dat', 'ab')

            # Process the file in chunks if larger than 100MB, otherwise read the whole file into memory
            if fileDataLen > 0x5F5E100:
                while True:
                    fileData = fp.read(0x100000)
                    if not fileData:
                    break
                    qadigest.update(fileData)
                    f.write(fileData)
            else:
                fileData = fp.read()
                qadigest.update(fileData)
                f.write(fileData)

            fp.close()
            f.write("\0" * (((file.fileSize + 0x0F) & ~0x0F) - fileDataLen))
            f.close()
    header.dataSize = os.path.getsize('fileData.dat')
    metaBlock.dataSize = header.dataSize
    header.packageSize = header.dataSize + 0x1A0
    head = header.pack()
    qadigest.update(head)
    qadigest.update(dataToEncrypt[0:fileDescLength])
    QA_Digest = qadigest.digest()
   
    for i in range(0, 0x10):
        header.QADigest[i] = ord(QA_Digest[i])
       
    for i in range(0, min(len(contentid), 0x30)):
        header.contentID[i] = ord(contentid[i])
   
    context = keyToContext(header.QADigest)
    setContextNum(context, 0xFFFFFFFFFFFFFFFF)
    licensee = crypt(listToString(context), listToString(header.KLicensee), 0x10)
   
    for i in range(0, min(len(contentid), 0x10)):
        header.KLicensee[i] = ord(licensee[i])
   
    if outname != None:
        outFile = open(outname, 'wb')
    else:
        outFile = open(contentid + ".pkg", 'wb')
    outFile.write(header.pack())
    headerSHA = SHA1(header.pack())[3:19]
    outFile.write(headerSHA)
   
   
    metaData = metaBlock.pack()
    metaBlockSHA = SHA1(metaData)[3:19]
    metaBlockSHAPad = '\0' * 0x30
   
    context = keyToContext([ord(c) for c in metaBlockSHA])
    metaBlockSHAPadEnc = crypt(listToString(context), metaBlockSHAPad, 0x30)
   
    context = keyToContext([ord(c) for c in headerSHA])
    metaBlockSHAPadEnc2 = crypt(listToString(context), metaBlockSHAPadEnc, 0x30)
    outFile.write(metaBlockSHAPadEnc2)
    outFile.write(metaData)
    outFile.write(metaBlockSHA)
    outFile.write(metaBlockSHAPadEnc)
   
    context = listToString(keyToContext(header.QADigest))
    sys.stdout.write('\nEncrypting file data...')

    # Process fileData.dat in chunks
    fo = open('fileData.dat', 'rb')
    while True:
        piece = fo.read(0x100000)
        if not piece:
        break
        encData = crypt(context, piece, len(piece))
        outFile.write(encData)
        # Manipulate the key every loop (chunk size is 0x100000, key is manipulated by 10 bytes each, so manipulation_count=10000 in crypt.c)
        context = pkgcrypt.keycrypt(context)

    fo.close()
    outFile.write('\0' * 0x60)
    outFile.close()
    #os.remove("fileData.dat")
    os.system('cls')
    print header
   
def usage():
    print """usage: [based on revision 1061]

    make_package_custom target-directory output

    make_package_custom [options] npdrm-package
        -l | --list             list packaged files.
        -x | --extract          extract package.

    make_package_custom [options]
        --version               print revision.
        --help                  print this message."""

def version():
    print """make_package_custom 1.1"""

def main():
    global debug
    extract = False
    list = False
    contentid = None
    try:
        opts, args = getopt.getopt(sys.argv[1:], "hx:dvl:c:", ["help", "extract=", "debug","version", "list=", "contentid="])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit(2)
        elif opt in ("-v", "--version"):
            version()
            sys.exit(2)
        elif opt in ("-x", "--extract"):
            fileToExtract = arg
            extract = True
        elif opt in ("-l", "--list"):
            fileToList = arg
            list = True
        elif opt in ("-d", "--debug"):
            debug = True
        elif opt in ("-c", "--contentid"):
            contentid = arg
        else:
            usage()
            sys.exit(2)
    if extract:
        unpack(fileToExtract)
    elif list:
        listPkg(fileToList)
    else:
        if len(args) == 1 and contentid != None:
            pack(args[0], contentid)
        elif len(args) == 2 and contentid != None:
            pack(args[0], contentid, args[1])
        else:
            usage()
            sys.exit(2)
if __name__ == "__main__":
    main()

cypt.c:
Code:
#include <stdint.h>
#include <Python.h>

static PyObject *sha1_callback = NULL;

static void manipulate(uint8_t *key) {
    /* We need to cast each byte to a 64 bit int so that gcc won't truncate it
       down to a 32 bit in before shifting */
    uint64_t temp = ((uint64_t) key[0x38]) << 56|
            ((uint64_t) key[0x39]) << 48|
            ((uint64_t) key[0x3a]) << 40|
            ((uint64_t) key[0x3b]) << 32|
            key[0x3c] << 24|
            key[0x3d] << 16|
            key[0x3e] <<  8|
            key[0x3f];
    temp++;
    key[0x38] = (temp >> 56) & 0xff;
    key[0x39] = (temp >> 48) & 0xff;
    key[0x3a] = (temp >> 40) & 0xff;
    key[0x3b] = (temp >> 32) & 0xff;
    key[0x3c] = (temp >> 24) & 0xff;
    key[0x3d] = (temp >> 16) & 0xff;
    key[0x3e] = (temp >>  8) & 0xff;
    key[0x3f] = (temp >>  0) & 0xff;
}

static PyObject* pkg_crypt(PyObject *self, PyObject *args) {
    uint8_t *key, *input, *ret;
    int key_length, input_length, length;
    int remaining, i, offset=0;

    PyObject *arglist;
    PyObject *result;

    if (!PyArg_ParseTuple(args, "s#s#i", &key, &key_length, &input, &input_length, &length))
        return NULL;
    ret = malloc(length);
    remaining = length;
   
    while (remaining > 0) {
        int bytes_to_dump = remaining;
        if (bytes_to_dump > 0x10)
            bytes_to_dump = 0x10;

        // outhash = SHA1(listToString(key)[0:0x40])
        uint8_t *outHash;
        {
            arglist = Py_BuildValue("(s#)", key, 0x40);
            result = PyObject_CallObject(sha1_callback, arglist);
            Py_DECREF(arglist);
            if (!result) return NULL;
            int outHash_length;
            if (!PyArg_Parse(result, "s#", &outHash, &outHash_length)) return NULL;
        }
        for(i = 0; i < bytes_to_dump; i++) {
            ret[offset] = outHash[i] ^ input[offset];
            offset++;
        }
        Py_DECREF(result);
        manipulate(key);
        remaining -= bytes_to_dump;
    }
   
    // Return the encrypted data
    PyObject *py_ret = Py_BuildValue("s#", ret, length);
    free(ret);
    return py_ret;
}

static PyObject* key_crypt(PyObject *self, PyObject *args) {
    PyObject *arglist;
    uint8_t *key;
    int key_length, i, manipulation_count=10000;

    if (!PyArg_ParseTuple(args, "s#", &key, &key_length))
        return NULL;
   
    // Manipulate the key X amount of times based on the chunk size in the Python script (0x10 x 10000 = 0x100000)
    for(i = 0; i == manipulation_count; i++) {
    manipulate(key);
    }

    arglist = Py_BuildValue("s#", key, 0x40);
    return arglist;
}

static PyObject *register_sha1_callback(PyObject *self, PyObject *args) {
    PyObject *result = NULL;
    PyObject *temp;

    if (PyArg_ParseTuple(args, "O:set_callback", &temp)) {
            if (!PyCallable_Check(temp)) {
                PyErr_SetString(PyExc_TypeError, "parameter must be callable");
                return NULL;
        }
        Py_XINCREF(temp);         /* Add a reference to new callback */
        Py_XDECREF(sha1_callback);  /* Dispose of previous callback */
        sha1_callback = temp;       /* Remember new callback */
        /* Boilerplate to return "None" */
        Py_INCREF(Py_None);
        result = Py_None;
    }
    return result;
}

static PyMethodDef cryptMethods[] = {
    {"pkgcrypt", pkg_crypt, METH_VARARGS, "C implementation of pkg.py's crypt function"},
    {"keycrypt", key_crypt, METH_VARARGS, "C implementation of pkg.py's manipulate function"},
    {"register_sha1_callback", register_sha1_callback, METH_VARARGS, "Register a callback to python's SHA1 function, so we don't have to bother with creating our own implementation."},
    {NULL, NULL, 0, NULL}
};

PyMODINIT_FUNC initpkgcrypt(void) {
    (void) Py_InitModule("pkgcrypt", cryptMethods);
}


Well done, it seems to work properly. However, more work needs to be done before the scripts are usable. As is, they are too large to work from the XMB. Is there any way you could write a similar script that instead takes a javascript file and converts it to one inline script, enclosing it within an eval function and escaping the characters < > and '? The ' char needs to be escaped so the interpreter doesn't close the eval function before it executes all of the code.

I can also release my base offline scripts which would allow anyone to easily edit them to create their own tools, as long as they have a little bit of javascript knowledge.
Thank you for the source code ;)

About the vbs script... it also creates the javascript url link with escaped characters into a separated TXT file ;)
Only need to copy it into the XML

The base offline scripts would be very useful too :)
 
Thank you for the source code ;)

About the vbs script... it also creates the javascript url link with escaped characters into a separated TXT file ;)
Only need to copy it into the XML

The base offline scripts would be very useful too :)
Thanks, I tested the VBS script some more. With a few adjustments, it works perfectly, minifies the script and formats it properly for offline usage :)
 
@lmn7 In line 74 of crypt.c, it says:
int key_length, i, manipulation_count=10000;

It should be:
int key_length, i, manipulation_count=0x10000;

The comment in line 79:
// Manipulate the key X amount of times based on the chunk size in the Python script (0x10 x 10000 = 0x100000)

0x10 x 10000 is 160,000 (decimal) not 1,048,576 (1MB)

Should be:
// Manipulate the key X amount of times based on the chunk size in the Python script (0x10 x 0x10000 = 0x100000)

Also the comment in line 537 of pkg.py should be
# Manipulate the key every loop (chunk size is 0x100000, key is manipulated by 0x10 bytes each, so manipulation_count=0x10000 in crypt.c)
 
@lmn7 In line 74 of crypt.c, it says:
int key_length, i, manipulation_count=10000;

It should be:
int key_length, i, manipulation_count=0x10000;

The comment in line 79:
// Manipulate the key X amount of times based on the chunk size in the Python script (0x10 x 10000 = 0x100000)

0x10 x 10000 is 160,000 (decimal) not 1,048,576 (1MB)

Should be:
// Manipulate the key X amount of times based on the chunk size in the Python script (0x10 x 0x10000 = 0x100000)

Also the comment in line 537 of pkg.py should be
# Manipulate the key every loop (chunk size is 0x100000, key is manipulated by 0x10 bytes each, so manipulation_count=0x10000 in crypt.c)
Thanks for pointing that out, the comments are a little messed up as they were just personal notes. And yes the math is wrong but the code doesn't need to be changed, file data is encrypted properly. You can check it yourself :)
any link ? i want to test making extra tools to offline :)
I will do a little more testing, then post the script here.
 
Thanks for pointing that out, the comments are a little messed up as they were just personal notes. And yes the math is wrong but the code doesn't need to be changed, file data is encrypted properly. You can check it yourself :)
.
I don't think it's encrypted properly.
In pkg.py line 532 it reads 1MB:
piece = fo.read(0x100000) <--- that is 0x10 * 0x10000
Then in line 538 it calls: context = pkgcrypt.keycrypt(context)

In crypt.c line 75 the loop is processed until manipulation_count = 10000 <== should be 0x10000

If the pkg is larger than 156KB (0x10 * 10000), it probably is not encrypted correctly. You should check the MD5 of the extracted files to confirm that it's broken ;)
 
Last edited:
Back
Top