DC-SWAT Forum
ярлыки для образов и бинарников на рабочий стол - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: DreamShell (/forum-3.html)
+--- Форум: Programming (/forum-28.html)
+--- Тема: ярлыки для образов и бинарников на рабочий стол (/thread-2157.html)

Страниц: 1 2 3 4


ярлыки для образов и бинарников на рабочий стол - wallace - 07.07.2014 11:10

ждём инструкции от SWAT


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 07.07.2014 17:41

Ты бы хоть из личного сообщения скопировал сюда, а то выглядит странно твоя тема 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/blob/master/modules/isoldr/module.c?=ts4#L466


RE: ярлыки для образов и бинарников на рабочий стол - wallace - 08.07.2014 12:07

работает отлично. с ide даже не заметно проседание скорости загрузки main...


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 22.08.2014 08:39

а вот у меня не получилось. Закинул программу 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. Что я сделал не так?


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 22.08.2014 12:25

А потому что путь к файлу не правильный.
Если на SD у тебя он лежит, то нужно прописать /sd/DS/games/dcplaya.iso или просто подставь path как у модулей:

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

Адрес 0x8c004000 и так используется по умолчанию, нет необходимости его прописывать.
А эмуляция асинхронного чтения для homebrew в принципе не нужна, они всегда по 1 сектору данные читают в PIO режиме.


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 22.08.2014 16:36

Спасибо, все работает)


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 22.08.2014 17:41

Кстати, ввел в консоли isoldr, а просмотреть команды не могу, потому что элементарно не могу прокрутить вверх Smile Есть альтернативный способ узнать все аргументы?


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 22.08.2014 19:59

Клавиатуры нету? PageUp/PageDown. Запусти на эмуляторе да посмотри, есть спец. версия бинарника для них - EMU_DS_CORE.BIN


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 22.08.2014 21:26

эмуль комп не тянет(( кстати неплохо бы эти кнопки в вирт клавиатуре


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 23.08.2014 06:53

Да тебе что играть на нем, если хотя бы FPS 15-20 выдает этого достаточно.
По поводу вирт. клавиатуры надо подумать, там просто места нету для новых кнопок.


RE: ярлыки для образов и бинарников на рабочий стол - shadow - 23.08.2014 12:51

Сочетанием кнопок сделать вызывание вирт. клавиатуры.


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 23.08.2014 20:38

(23.08.2014 12:51)shadow писал(а):  Сочетанием кнопок сделать вызывание вирт. клавиатуры.

Зачем? Она вызывается кнопкой Старт. Я имел ввиду на ее текстуре все место занято.


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 23.08.2014 21:33

Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур


RE: ярлыки для образов и бинарников на рабочий стол - shadow - 23.08.2014 22:51

(23.08.2014 20:38)SWAT писал(а):  
(23.08.2014 12:51)shadow писал(а):  Сочетанием кнопок сделать вызывание вирт. клавиатуры.

Зачем? Она вызывается кнопкой Старт. Я имел ввиду на ее текстуре все место занято.
Ааа, вот что ты имел ввидуBig Grin


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 24.08.2014 08:50

(23.08.2014 21:33)SuperClaw писал(а):  Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур

У d-pad вниз/вверх занято историей ввода в консоль.
Что у тебя за видюха то такая, что не можешь запустить даже nullDC?


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 24.08.2014 09:09

Radeon, не помню какая. У меня буку лет 7 уже)
Так ведь клавиши переназначаются, когда открываешь вирт клавиатуру?


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 25.08.2014 06:52

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

Кнопки переназначаются только XYAB + Analog.


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 25.08.2014 14:21

Да бук убитый просто, вот и весь эмуль) но я попробую, скачаю.


RE: ярлыки для образов и бинарников на рабочий стол - SuperClaw - 25.08.2014 14:49

И все же, как изменить цвет шрифта? Я в app.xml добавил атрибут к <font />, но он почему то не работает
Если Up-Down занят, можно ведь подключить Left-Right) А то ведь это не дело, управление должно быть комфортно и на джое)


RE: ярлыки для образов и бинарников на рабочий стол - SWAT - 25.08.2014 15:35

Left/Right тоже занят перемещением курсора. Физические кнопки вообще все заняты, хватит их перебирать Smile
Цвет меняется у label, а не у шрифта.