Начинается набор для закрытого Beta тестирования новой DreamShell.
Тестирование касается конкретно разработки приложений под нее.
Нужны люди хотябы немного разбирающиеся в программинге lua, Си (по надобности) или в дизайне. Для каждого есть работа.
Желательно записываться парами, дизайнер + программист. Потому что визуальная часть приложений и их программный код, это теперь совершенно разные вещи.
За счет этого приложения для DreamShell 4.0 создавать стало очень просто, ибо визуальная их часть делается элементарно (буквально в одном xml файле), а программная часть на lua, хотя можно внедрять и Си модули.
Жду желающих делать свои приложения для Dreamcast, при этом сильно не заморачиваясь в подробностях.
В статусе Beta, DreamShell будет только на Dreamcast, на PSP она будет уже только в релизе.
Принят:)
Вечером жди образ.
мда желающих конечно кот наплакал:)
какая версия Lua в дримшелл ?
Цитата:какая версия Lua в дримшелл ?
5.0... Но в финальном билде должна быть 5.1.. Как пишет сват, отличаются только апи и все. =)
zaero образ у тебя на почте.
Сегодня отправил обновленный образ.
Beta тестирование стало открытым:)
Ждем и надеемся:)))
Скинул новость к нашим испанским коллегам и от админа получил такое сообщение
Цитата:I've heard dreamshell 4.0 is on beta testing now, could you tell the swat team I'd like to beta test it? I don't know russian :S
I have a BBA if that helps and have a decent programming and debugging experience
Что ответить ??
Скажи пусть немного подождет второй беты, а то эта не работает на дриме, только в nullDC.
Потом я постараюсь дописать документацию, но переводить ему ессно придется переводчиком:)
Хотя есть ребята и понимающие русский, перевели же многие доку к Region Changer как то нормально:)
Переезжаем из лички сюда:)
И так.
alex, попробуй в startup.lua заменить функцию:
Код:
function OpenMainApp()
local app = DS.GetAppByName("Main");
if not app or not DS.OpenApp(app) then
print("DS_ERROR: Can't open Main app");
DS.ShowConsole();
end
end
на
Код:
function OpenMainApp()
local app = DS.GetAppByName("File Manager");
if not app or not DS.OpenApp(app) then
print("DS_ERROR: Can't open File Manager");
DS.ShowConsole();
end
end
Чтобы обойти висяк с главным приложением и проверить работоспособность LFN.
Если с FM тоже будут проблемы, сделай вообще заглушку в этой функции и пользуйся консолью.
отредактировал startup.lua как ты писал выше, с FM проблем невозникло, он запустился нормально.
Вот результат тестов:
Длинные имена поддерживает, пробовал копировать файл
games4alluserbarcomlete.txt с карты и на карту скопировалось нормально, также нормально скопировались с
VMU на
SD карту файлы без расширения (
RED_DOG__SYS, SHUTOKOU2GF0). При попытке скопировать файл с пробелом в названии (
online shop.txt) выкинуло в консоль с ошибкой
DS_ERROR: Error opening //sd/online.
Вместо русских имен на экране высвечивается непонятный набор символов, при копировании FM выкидывает в консоль с ошибкой
DS_ERROR: Error opening //sd/ЕЕЕЕЕЕЕ
Скриншот.
В левом окне директория SD, в правом RAM, желтым выделен файл с русским именем.
![[Изображение: pqobHqyjyG.jpg]](http://pic.ipicture.ru/uploads/090621/pqobHqyjyG.jpg)
Ок, хорошо. Главное LFN работает. Хрен с ним с русскими буквами в именах файлов. Тут скорее всего просто шрифт не поддерживает кирилицу, поэтому че попало показывает.
Пробелы не поддерживает файловая система KOS, хотя хз может и проканает, но по крайне мере в консоль не получится написать имя файла с пробелом (а тут все действия над файлами происходят через консоль функцией dsystem), отсюда и ошибка.
Осталось понять почему глючит приложение Main... Может потыкаешся через кабель? Проблема где то в функции AddToList скорее всего.
да через кабель то непроблема запустить
а что сделать то нужно?
Да просто комментируй код по блочно, чтобы понять в каком месте висяк и запускай. Или выводи после каждой строчки принтом действие. Нужно понять на какой именно строке виснет.
вобщем вот:
Main.lua
Код:
print("Init Desktop...");
function InitializeDesktop()
if desktop.app == nil then
print("1...");
desktop.app = DS.GetAppById(THIS_APP_ID);
print("2...");
if desktop.app ~= nil then
print("3...");
local f = DS.listGetItemByName(desktop.app.resources, "arial");
print("4...");
if f~= nil then
desktop.font = DS.GUI_AnyToFont(f.data);
end
print("5...");
local p = DS.listGetItemByName(desktop.app.elements, "applist");
print("6...");
if p~= nil and desktop.font ~= nil then
print("7...");
desktop.apps.panel = DS.GUI_AnyToWidget(p.data);
print("8...");
BuildAppList();
print("9...");
ShowVersion();
print("10...");
end
end
end
end
Log с кабеля
Код:
OUTPUT:> fs_iso9660: disc change detected
OUTPUT:> vid_set_mode: 640x480IL PAL
OUTPUT:> App: /cd/apps/filemanager/app.xml File Manager 0.1 Beta 2 /cd/gui/icons/normal/file_manager.png
OUTPUT:> DS_OK: Installed app File Manager /cd/apps/filemanager/app.xml (ID=41)
OUTPUT:> App: /cd/apps/main/app.xml Main 1.0.0 /cd/gui/icons/normal/default_app.png
OUTPUT:> DS_OK: Installed app Main /cd/apps/main/app.xml (ID=42)
OUTPUT:> DS_PROCESS: Loading app - 'Main' ...
OUTPUT:> Add to app list...
OUTPUT:> Opening app...
OUTPUT:> Building app list...
OUTPUT:> Show version...
OUTPUT:> Init Desktop...
OUTPUT:> 1...
OUTPUT:> 2...
OUTPUT:> 3...
OUTPUT:> 4...
OUTPUT:> 5...
OUTPUT:> 6...
OUTPUT:> 7...
OUTPUT:> 8...
Получается проблема в
BuildAppList();
:)))
Я знаю, я же тебе сказал примерно где проблема:))
Функция BuildAppList проходится по сиску приложений и каждый раз когда находит его, вызывает функцию AddToList, вот в ней то и косяк.
Цитата:Проблема где то в функции AddToList скорее всего.
а если так:)
main
Код:
print("Add to app list...");
function AddToList(app)
print("1...");
if app.name == "Main" then return end
print("2...");
local ts = DS.GUI_FontGetTextSize(desktop.font, app.name);
print("3...");
local b = DS.GUI_ButtonCreate(app.name, desktop.apps.pos.x, desktop.apps.pos.y, 53 + ts.w, 48);
print("4...");
local s = DS.GUI_SurfaceLoad(app.icon);
print("e...");
if s ~= nil then
DS.GUI_ButtonSetNormalImage(b, s);
DS.GUI_ButtonSetHighlightImage(b, CreateHighlight(s));
DS.GUI_ButtonSetPressedImage(b, s);
DS.GUI_ButtonSetDisabledImage(b, s);
print("5...");
end
print("6...");
local c = DS.GUI_LuaCallbackCreate(desktop.app.id, string.format("OpenApp(%d)", app.id));
DS.GUI_ButtonSetClick(b, c);
print("7...");
local l = DS.GUI_LabelCreate(app.name, 0, 0, ts.w + 53, 48, desktop.font, app.name);
print("8...");
DS.GUI_LabelSetTextColor(l, 0, 0, 0);
print("9...");
DS.GUI_WidgetSetAlign(l, DS.WIDGET_HORIZ_RIGHT);
print("10...");
DS.GUI_WidgetSetAlign(l, DS.WIDGET_VERT_CENTER);
print("11...");
DS.GUI_ButtonSetCaption(b, l);
print("12...");
DS.GUI_ContainerAdd(desktop.apps.panel, b);
print("13...");
desktop.apps.pos.y = desktop.apps.pos.y + 56;
print("14...");
if desktop.apps.pos.y >= 460 then
desktop.apps.pos.x = desktop.apps.pos.x + 200;
desktop.apps.pos.y = 20;
print("15...");
end
end
log
Код:
OUTPUT:> fs_iso9660: disc change detected
OUTPUT:> vid_set_mode: 640x480IL PAL
OUTPUT:> App: /cd/apps/filemanager/app.xml File Manager 0.1 Beta 2 /cd/gui/icons/normal/file_manager.png
OUTPUT:> DS_OK: Installed app File Manager /cd/apps/filemanager/app.xml (ID=41)
OUTPUT:> App: /cd/apps/main/app.xml Main 1.0.0 /cd/gui/icons/normal/default_app.png
OUTPUT:> DS_OK: Installed app Main /cd/apps/main/app.xml (ID=42)
OUTPUT:> DS_PROCESS: Loading app - 'Main' ...
OUTPUT:> Add to app list...
OUTPUT:> Opening app...
OUTPUT:> Building app list...
OUTPUT:> Show version...
OUTPUT:> Init Desktop...
OUTPUT:> 16...
OUTPUT:> 17...
OUTPUT:> 18...
OUTPUT:> 19...
OUTPUT:> 20...
OUTPUT:> 21...
OUTPUT:> 22...
OUTPUT:> 23...
OUTPUT:> 1...
OUTPUT:> 1...
OUTPUT:> 2...
Угу, странно....
Ладно, я перезалил архив, пробуй.
В эмуле почему то не загружаются модули ogg, mp3 и vcdc. Я их обновил, по идее после их загрузки должны появится новые команды в консоли. Так же файловый менеджер сам их может загружать, если кликнуть на подходящий файл (музыка, видео). Не пойму почему виснет.
Еще добавил в консоль команды для работы с gzip и bzip2 архивами, gzip работает нормально, а bzip2 в эмуле виснет.
блин при запуске с диска опять в черный экран уходит:(
Появляется рабочий стол и иконка консоль, потом в черный экран уходит.