Ты бы хоть из личного сообщения скопировал сюда, а то выглядит странно твоя тема
Ну да ладно.
На самом деле, функцию создания ярлыка для игр я думал добавить в приложение ISO Loader. Правда не уверен что сделаю это в ближайшей версии, так что опишу как это сделать вручную.
Приложение Main (ака Рабочий стол), в DreamShell 4.0 RC 2 поддерживает расположение на рабочем столе скриптов DSC и LUA, для которых можно еще сделать свои иконки (есть и стандартные). Кстати говоря, иконка консоли сделана именно этим способом.
Итак по шагам:
1) Открываем директорию apps/main/scripts
2) Создаем в ней текстовый файл с необходимым именованием и расширением .lua
3) В файле-скрипте прописываем следующее:
PHP код:
-- Script for GameName
local path = os.getenv("PATH");
OpenModule(path .. "/modules/minilzo.klf");
OpenModule(path .. "/modules/isofs.klf");
OpenModule(path .. "/modules/isoldr.klf");
os.execute("isoldr -x 0x8c004000 -e 8 -f /ide/games/name/disk.gdi");
ShowConsole();
Путь к образу пишем соответственно свой. У команды isoldr есть все необходимые аргументы, посмотреть их можно набрав эту команду в консоли без аргументов, находясь в приложении ISO Loader. В примере я использовал только основные, размещение загрузчика по определенному адресу и эмуляция асинхронного чтения по 8 секторов за фрейм. К примеру можно добавить еще флаг "-a" для включения DMA режима, если он поддерживается игрой.
Вызов консоли в конце я добавил специально, чтобы в случае ошибки, вы могли ее увидеть. Если игра запустится без проблем, то до ее вызова дело не дойдет.
4) Этот пункт не обязателен, он просто для красоты. Открываем директорию apps/main/images и копируем сюда PNG изображение размером 48х48 пикселей, а имя файла делаем точно такое же как у скрипта, отличаться должно только расширение.
Вот и все что необходимо сделать.
Ну а для более избирательных людей, можно добавить некоторые фишки. Например для пути к играм можно использовать переменную, для этого в lua/startup.lua (в функции Initialize) можно добавить следующий вызов:
PHP код:
os.execute("env GAMES /ide/games");
И в дальнейшем в скриптах использовать эту переменную таким образом:
PHP код:
os.execute("isoldr -x 0x8c004000 -e 8 -f " .. os.getenv("GAMES") .. "/name/disk.gdi");
Это может вас избавить от правок всех скриптов, если вы вдруг заходите переместить ваши игры в другую директорию, партицию или устройство.
Для обычного BIN файла скрипт гораздо проще. Есть 2 варианта его запуска:
а) Скопировать bin в директорию "cmds" без расширения и для его запуска набираем соответствующую его именованию команду в консоли.
б) Скопировать bin в любое удобное вам место и запускать следующей командой:
DSC:
Код:
exec -b -f /ide/file.bin
LUA:
PHP код:
os.execute("exec -b -f /ide/file.bin");
Для обоих вариантов можно создать как LUA так и DSC скрипт. DSC проще и на долю секунды быстрее выполнится, так как это по сути просто консольный скрипт, каждая строка которого интерпретируется как команда для консоли. Как пример можно посмотреть скрипт для запуска консоли - console.dsc
Все доступные параметры для модуля isoldr можно посмотреть здесь: https://github.com/DC-SWAT/DreamShell/bl...?=ts4#L466