DC-SWAT Forum

Полная версия: скрипт для копирования всех сеивов из дц вму в сд карту
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Привет любителям DC.

Нигде не могу найти как это сделать.
код:
you can dump it from VMU to SD card using Dreamshell. Just type in console following command
Code:
vmu -d -a A1 -o /sd/vmu.bin

делает думп всей партиции вму, а я хочу считать каждый отделенный сейв в сд карту.
Патом на компьютере добавить или удалить сейвы с сд карты, и скопировать обратно всё в вму.

Нужна какая то проверка хватает ли места в вму.
Сейвы с сд должны переписать сейвы на вму.
Эти скрипты хочу положит на десктопе дц (как это делается?), нажнуть на иконку, увидеть инфо что всё удалось или нет.

пробовал искать в dreamshell 4 rc1 filemanager main.lua но ничего не нашёл.

Я уже долго делаю это в ручную с dreamshell 4 rc1 filemanager, но это так долго и неудобно...
у меня только одно вму так как ... очень нужно.
Dump это самое простое и быстрое решение. На ПК можешь воспользоваться каким нибудь VMU Explorer и все сделать быстро и удобно.
Но если легкий путь это не твое, то могу помочь с теорией написания этого скрипта.
Буду очень признателен за теорию.
Посмотрим на сколько тяжёлый этот путь.

как положить команду
vmu -d -a A1 -o /sd/vmu.bin
на декстоп?
Ну делаешь батник, делаешь ярлык на батник. Как то так. или ты про десктоп дримшелл?
Rio жжешь, у тебя на ПК в консоли есть команда vmu и корневая директория sd? Smile Естественно речь о DS.

xitrix, лучше сразу создай маленькое приложение, чтобы в нем несколько нужных кнопок разместить, так будет проще, чем каждый раз приложение для одной команды.
Вот пример простого приложения с выполнением консольных команд, можешь взять за основу:

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="The Game" version="1.0" icon="cover.png">
    <resources>
        <module src="../../modules/minilzo.klf" />
        <module src="../../modules/isofs.klf" /> 
        <module src="../../modules/isoldr.klf" />
        <script type="text/lua" src="./lua/main.lua" />
        <font src="../../fonts/ttf/arial_lite.ttf" type="ttf" size="16" name="arial" />
        <image src="./images/bg.jpg" name="back" />
        <image src="./images/play.png" name="play" />
        <image src="./images/exit.png" name="exit" />
    </resources>
    <body x="0" y="0" width="640" height="480" background="back">
        <input type="button" 
                onclick="os.execute(string.format('isoldr -f %s/apps/game/game.iso', os.getenv('PATH')));" 
                normal="play" highlight="play" pressed="play" disabled="play" 
                x="440" y="280" width="200" height="100" name="playbut" />
        <input type="button" 
                onclick="console:app -o -n Main" 
                normal="exit" highlight="exit" pressed="exit" disabled="exit" 
                x="440" y="380" width="200" height="100" name="exitbut" />
    </body>
</app> 

Как видишь тут 2 способа вызова команды, через lua и напрямую в консоль.
Я бы посоветовал в скрипт main.lua закинуть функции с вызовом нужных команд и расставить кнопочки в приложении с их вызовом. Потом можно будет расширить функционал этих функций.

Можешь конечно и просто с рабочего стола сразу вызывать:

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <resources />
    <body x="0" y="0" width="640" height="480" onload="console:vmu -d -a A1 -o /sd/vmu.bin" />
</app> 

Процесса не видно, да и что потом? Будет тебе черный экран, так как откроется пустое приложение...
Хотя теоретически можно сразу несколько строк для консоли заложить таким способом:

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <resources />
    <body x="0" y="0" width="640" height="480" onload="console:console --show\nvmu -d -a A1 -o /sd/vmu.bin\nconsole --hide\napp -o -n Main" />
</app> 

Но я если честно не пробовал, возможно будут проблемы при парсинге XML, а может и нет.
додал кнопку к филеманаджеру - вму думп работает.

а вот на декстопе:
PHP код:
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <
resources />
    <
body x="0" y="0" width="640" height="480" onload="console:vmu -d -a A1 -o /sd/vmu.bin" />
</
app
завешается, ничего не делает.

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <body x="0" y="0" width="640" height="480" onload="console:vmu -d -a A1 -o /sd/vmu_standalone.bin">
    </body>
</app> 
узменил '/>' на '></body>'
работает, но подключается пустое окно. можно добавить кнопку для выхода, но это не то.

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <resources />
    <body x="0" y="0" width="640" height="480" onload="console:console --show\nvmu -d -a A1 -o /sd/vmu.bin\nconsole --hide\napp -o -n Main" >
    </body>
</app> 
даже после '<body... />' -> '<body... ></body>' не работает, завешается

моё решение в из работке:
PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<app name="VMU Dump" version="1.0" icon="../../gui/icons/normal/default_app.png">
    <resources>
        <script type="text/lua" src="./lua/main.lua" />
    </resources>
    <body x="0" y="0" width="640" height="480" onload="VMUDump:Dump()">
    </body>
</app> 
PHP код:
main.lua
function VMUDump:Dump()
    -- 
VMUDump:Initialize();
    -- 
os.execute("console --show\nsleep 1000");
    -- 
os.execute("bios -w -f " .. os.getenv("PATH") .. "/shared/bios/" .. name .. ".bios");
    -- 
os.execute("sleep 2000\nconsole --hide");
    
os.execute("vmu -d -a A1 -o /sd/vmu_standalone.bin");
    -- 
os.execute("console --show");
    -- 
VMUDump:Exit();
    
os.execute("app -o -n Main");
end 
но после успешного вму думпа, программа не возбраняется в декстоп.

нашёл:
PHP код:
onload="DSInstall:Initialize()" onunload="DSInstall:Shutdown()" onopen="DSInstall:Update()" 
может они как то помогут?

как всё таки сделать простой скрипт на декстопе, без дополнительных кнопок управления?
(16.03.2014 18:14)xitrix писал(а): [ -> ]но после успешного вму думпа, программа не возбраняется в декстоп.

нашёл:
PHP код:
onload="DSInstall:Initialize()" onunload="DSInstall:Shutdown()" onopen="DSInstall:Update()" 
может они как то помогут?

Нет, дело не в них. Эти события работают соответственно при загрузке, выгрузке и открытии приложения, если необходимо выполнить какие либо действия при этом. Допустим когда нужно дорисовать GUI динамически при загрузке приложения.

(16.03.2014 18:14)xitrix писал(а): [ -> ]как всё таки сделать простой скрипт на декстопе, без дополнительных кнопок управления?

Да нету такой возможности, не заложена она в это приложение рабочего стола.
Поэтому я и предложил тебе пока альтернативные варианты.
В новой версии я добавил поддержку lua и dsc скриптов для рабочего стола (с возможностью изменения иконки), по твоей наводке Smile

Хмм, странно что короткие теги не работают (я говорю о - />), закрывай тогда лучше все отдельным тегом.
URL ссылки