07.07.2014, 11:10
07.07.2014, 17:41
Ты бы хоть из личного сообщения скопировал сюда, а то выглядит странно твоя тема Ну да ладно.
На самом деле, функцию создания ярлыка для игр я думал добавить в приложение ISO Loader. Правда не уверен что сделаю это в ближайшей версии, так что опишу как это сделать вручную.
Приложение Main (ака Рабочий стол), в DreamShell 4.0 RC 2 поддерживает расположение на рабочем столе скриптов DSC и LUA, для которых можно еще сделать свои иконки (есть и стандартные). Кстати говоря, иконка консоли сделана именно этим способом.
Итак по шагам:
1) Открываем директорию apps/main/scripts
2) Создаем в ней текстовый файл с необходимым именованием и расширением .lua
3) В файле-скрипте прописываем следующее:
Путь к образу пишем соответственно свой. У команды isoldr есть все необходимые аргументы, посмотреть их можно набрав эту команду в консоли без аргументов, находясь в приложении ISO Loader. В примере я использовал только основные, размещение загрузчика по определенному адресу и эмуляция асинхронного чтения по 8 секторов за фрейм. К примеру можно добавить еще флаг "-a" для включения DMA режима, если он поддерживается игрой.
Вызов консоли в конце я добавил специально, чтобы в случае ошибки, вы могли ее увидеть. Если игра запустится без проблем, то до ее вызова дело не дойдет.
4) Этот пункт не обязателен, он просто для красоты. Открываем директорию apps/main/images и копируем сюда PNG изображение размером 48х48 пикселей, а имя файла делаем точно такое же как у скрипта, отличаться должно только расширение.
Вот и все что необходимо сделать.
Ну а для более избирательных людей, можно добавить некоторые фишки. Например для пути к играм можно использовать переменную, для этого в lua/startup.lua (в функции Initialize) можно добавить следующий вызов:
И в дальнейшем в скриптах использовать эту переменную таким образом:
Это может вас избавить от правок всех скриптов, если вы вдруг заходите переместить ваши игры в другую директорию, партицию или устройство.
Для обычного BIN файла скрипт гораздо проще. Есть 2 варианта его запуска:
а) Скопировать bin в директорию "cmds" без расширения и для его запуска набираем соответствующую его именованию команду в консоли.
б) Скопировать bin в любое удобное вам место и запускать следующей командой:
DSC:
LUA:
Для обоих вариантов можно создать как LUA так и DSC скрипт. DSC проще и на долю секунды быстрее выполнится, так как это по сути просто консольный скрипт, каждая строка которого интерпретируется как команда для консоли. Как пример можно посмотреть скрипт для запуска консоли - console.dsc
Все доступные параметры для модуля isoldr можно посмотреть здесь: https://github.com/DC-SWAT/DreamShell/bl...?=ts4#L466
На самом деле, функцию создания ярлыка для игр я думал добавить в приложение 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
PHP код:
os.execute("exec -b -f /ide/file.bin");
Для обоих вариантов можно создать как LUA так и DSC скрипт. DSC проще и на долю секунды быстрее выполнится, так как это по сути просто консольный скрипт, каждая строка которого интерпретируется как команда для консоли. Как пример можно посмотреть скрипт для запуска консоли - console.dsc
Все доступные параметры для модуля isoldr можно посмотреть здесь: https://github.com/DC-SWAT/DreamShell/bl...?=ts4#L466
08.07.2014, 12:07
работает отлично. с ide даже не заметно проседание скорости загрузки main...
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. Что я сделал не так?
-- 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. Что я сделал не так?
22.08.2014, 12:25
А потому что путь к файлу не правильный.
Если на SD у тебя он лежит, то нужно прописать /sd/DS/games/dcplaya.iso или просто подставь path как у модулей:
Адрес 0x8c004000 и так используется по умолчанию, нет необходимости его прописывать.
А эмуляция асинхронного чтения для homebrew в принципе не нужна, они всегда по 1 сектору данные читают в PIO режиме.
Если на SD у тебя он лежит, то нужно прописать /sd/DS/games/dcplaya.iso или просто подставь path как у модулей:
PHP код:
os.execute("isoldr -f " .. path .. "/games/dcplaya.iso");
Адрес 0x8c004000 и так используется по умолчанию, нет необходимости его прописывать.
А эмуляция асинхронного чтения для homebrew в принципе не нужна, они всегда по 1 сектору данные читают в PIO режиме.
22.08.2014, 16:36
Спасибо, все работает)
22.08.2014, 17:41
Кстати, ввел в консоли isoldr, а просмотреть команды не могу, потому что элементарно не могу прокрутить вверх Есть альтернативный способ узнать все аргументы?
22.08.2014, 19:59
Клавиатуры нету? PageUp/PageDown. Запусти на эмуляторе да посмотри, есть спец. версия бинарника для них - EMU_DS_CORE.BIN
22.08.2014, 21:26
эмуль комп не тянет(( кстати неплохо бы эти кнопки в вирт клавиатуре
23.08.2014, 06:53
Да тебе что играть на нем, если хотя бы FPS 15-20 выдает этого достаточно.
По поводу вирт. клавиатуры надо подумать, там просто места нету для новых кнопок.
По поводу вирт. клавиатуры надо подумать, там просто места нету для новых кнопок.
23.08.2014, 12:51
Сочетанием кнопок сделать вызывание вирт. клавиатуры.
23.08.2014, 20:38
(23.08.2014 12:51)shadow писал(а): [ -> ]Сочетанием кнопок сделать вызывание вирт. клавиатуры.
Зачем? Она вызывается кнопкой Старт. Я имел ввиду на ее текстуре все место занято.
23.08.2014, 21:33
Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур
23.08.2014, 22:51
24.08.2014, 08:50
(23.08.2014 21:33)SuperClaw писал(а): [ -> ]Из-за видюхи эмуль вообще не запускается. Можно же сделать, чтобы во время включенной клавиатуры крестик работал, как лево-право-pageup-pagedown, к примеру. и не надо новых текстур
У d-pad вниз/вверх занято историей ввода в консоль.
Что у тебя за видюха то такая, что не можешь запустить даже nullDC?
24.08.2014, 09:09
Radeon, не помню какая. У меня буку лет 7 уже)
Так ведь клавиши переназначаются, когда открываешь вирт клавиатуру?
Так ведь клавиши переназначаются, когда открываешь вирт клавиатуру?
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.
Это вот с Demul проблема может быть, он работает нормально только у избранных, у кого видеокарта поддерживает DX11, иначе привет софт рендеринг.
Я вот на работе вообще на унылой видеокарте запускаю lxdream, а дома видеокарте 5 лет, тоже кстати Radeon, 3870 c DX10, nullDC работает прекрасно.
В общем установи рантаймы что нужны, а потом попробуй запускать https://code.google.com/p/nulldc/
Или может какой нибудь reicast лучше пойдет.
Кнопки переназначаются только XYAB + Analog.
25.08.2014, 14:21
Да бук убитый просто, вот и весь эмуль) но я попробую, скачаю.
25.08.2014, 14:49
И все же, как изменить цвет шрифта? Я в app.xml добавил атрибут к <font />, но он почему то не работает
Если Up-Down занят, можно ведь подключить Left-Right) А то ведь это не дело, управление должно быть комфортно и на джое)
Если Up-Down занят, можно ведь подключить Left-Right) А то ведь это не дело, управление должно быть комфортно и на джое)
25.08.2014, 15:35
Left/Right тоже занят перемещением курсора. Физические кнопки вообще все заняты, хватит их перебирать
Цвет меняется у label, а не у шрифта.
Цвет меняется у label, а не у шрифта.