DC-SWAT Forum

Полная версия: ярлыки для образов и бинарников на рабочий стол
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2 3 4
ждём инструкции от SWAT
Ты бы хоть из личного сообщения скопировал сюда, а то выглядит странно твоя тема Smile Ну да ладно.
На самом деле, функцию создания ярлыка для игр я думал добавить в приложение 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
работает отлично. с ide даже не заметно проседание скорости загрузки main...
а вот у меня не получилось. Закинул программу dcplaya в папку DS/games. В scripts создал Music.lua, в нем прописал:
-- Script for Music
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 /games/dcplaya.iso");
ShowConsole();
Запускаю DS, тыкаю на ярлык, открывается консоль, где последняя строчка: App Main Opened. Что я сделал не так?
А потому что путь к файлу не правильный.
Если на SD у тебя он лежит, то нужно прописать /sd/DS/games/dcplaya.iso или просто подставь path как у модулей:

PHP код:
os.execute("isoldr -f " .. path .. "/games/dcplaya.iso"); 

Адрес 0x8c004000 и так используется по умолчанию, нет необходимости его прописывать.
А эмуляция асинхронного чтения для homebrew в принципе не нужна, они всегда по 1 сектору данные читают в PIO режиме.
Спасибо, все работает)
Кстати, ввел в консоли isoldr, а просмотреть команды не могу, потому что элементарно не могу прокрутить вверх Smile Есть альтернативный способ узнать все аргументы?
Клавиатуры нету? PageUp/PageDown. Запусти на эмуляторе да посмотри, есть спец. версия бинарника для них - EMU_DS_CORE.BIN
эмуль комп не тянет(( кстати неплохо бы эти кнопки в вирт клавиатуре
Да тебе что играть на нем, если хотя бы FPS 15-20 выдает этого достаточно.
По поводу вирт. клавиатуры надо подумать, там просто места нету для новых кнопок.
Сочетанием кнопок сделать вызывание вирт. клавиатуры.
(23.08.2014 12:51)shadow писал(а): [ -> ]Сочетанием кнопок сделать вызывание вирт. клавиатуры.

Зачем? Она вызывается кнопкой Старт. Я имел ввиду на ее текстуре все место занято.
Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур
(23.08.2014 20:38)SWAT писал(а): [ -> ]
(23.08.2014 12:51)shadow писал(а): [ -> ]Сочетанием кнопок сделать вызывание вирт. клавиатуры.

Зачем? Она вызывается кнопкой Старт. Я имел ввиду на ее текстуре все место занято.
Ааа, вот что ты имел ввидуBig Grin
(23.08.2014 21:33)SuperClaw писал(а): [ -> ]Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур

У d-pad вниз/вверх занято историей ввода в консоль.
Что у тебя за видюха то такая, что не можешь запустить даже nullDC?
Radeon, не помню какая. У меня буку лет 7 уже)
Так ведь клавиши переназначаются, когда открываешь вирт клавиатуру?
Ну и что, 10 лет назад играли же как то на chankast, а nullDC это его прямое продолжение. Я сомневаюсь что он стал требовать что-то новое от видео железа, ему нужен тот же DirectX 9c, который в 2 раза старше твоей видюхи.
Это вот с Demul проблема может быть, он работает нормально только у избранных, у кого видеокарта поддерживает DX11, иначе привет софт рендеринг.
Я вот на работе вообще на унылой видеокарте запускаю lxdream, а дома видеокарте 5 лет, тоже кстати Radeon, 3870 c DX10, nullDC работает прекрасно.
В общем установи рантаймы что нужны, а потом попробуй запускать https://code.google.com/p/nulldc/
Или может какой нибудь reicast лучше пойдет.

Кнопки переназначаются только XYAB + Analog.
Да бук убитый просто, вот и весь эмуль) но я попробую, скачаю.
И все же, как изменить цвет шрифта? Я в app.xml добавил атрибут к <font />, но он почему то не работает
Если Up-Down занят, можно ведь подключить Left-Right) А то ведь это не дело, управление должно быть комфортно и на джое)
Left/Right тоже занят перемещением курсора. Физические кнопки вообще все заняты, хватит их перебирать Smile
Цвет меняется у label, а не у шрифта.
Страниц: 1 2 3 4
URL ссылки