DreamShell → DreamShell 4.0.0 RC 1 by SWAT
Update 05.02.2012
— Added ask for 60Hz for non US DCs.
— Added dummy files to CDI images
— Updated isoldr to v0.3.1:
— fixed boot homebrew iso
— improve speed of boot.bin start executing.
— added return back to DS if some games make write to memory with the loader.
Redownload DreamShell and enjoy!
То, чего многие уже давно ждут, наконец то свершилось :)
Представляю вашему вниманию DreamShell 4.0.0 RC 1
Да да, это наконец то релиз кандидат и она реально заслуживает такого статуса.
- Ядро системы стало легче и быстрее.
- Новая виртуальная клавиатура, с возможностью масштабирования (нажать 2 шифта одновременно), которая позволяет ускорить набор текста на порядок. Имеет 3 слоя, которые переключаются шифтами джойстика. Вызывается на кнопку старт.
- Консоль стала работать быстрее, а размер шрифта был увеличен. Вызывается на клавишу Esc на клавиатуре (виртуальной тоже).
- Новый переработанный рендеринг. Теперь картинка SDL рисуется как текстура с помощью PVR. Это позволяет дополнительно, в не зависимости от SDL, рисовать с помощью PVR, т.е. использовать быструю аппаратную графику и 3D.
- Поддержка виртуальных разрешений экрана. Теперь вы можете выставить разрешение до 1024х1024 (для экономии памяти в текущем релизе я сделал лимит в 1024x512), правда в таком случае все будет слишком мелким :)
- Добавлено множество новых модулей. Раньше их было 15, теперь стало 30 (без учета модулей приложений). Это с учетом того, что некоторые старые модули были удалены за ненадобностью. Я не буду перечислять все изменения, скажу только про некоторые:
ffmpeg — Последняя стабильная версия одноименной библиотеки для декодирования видео. Вместе с модулем идет простой, консольный проигрыватель видео. Он еще далек от совершенства, но все же он частично работает :)
mpg123 — Последняя стабильная версия одноименной библиотеки для декодирования MP1/MP2/MP3, вместе с модулем идет простой консольный проигрыватель. Так же он используется в ffmpeg.
oggvorbis — Последняя стабильная версия одноименной библиотеки для декодирования ogg/vorbis, так же идет с проигрывателем. Используется в ffmpeg.
adx — Библиотека для декодирования adx, так же идет с проигрывателем.
s3m — Библиотека для декодирования S3M, так же идет с проигрывателем.
xvid — Последняя стабильная версия одноименной библиотеки для декодирования видео. Не используется пока в системе.
kglx — Библиотека OpenGL 1.2
tolua и tolua++ — В предыдущих версия DS, библиотека tolua была интегрирована в ядро, теперь я ее вынес в модуль, а так же добавил модуль tolua++
isofs — Модуль дает возможность привязывать ISO/CSO/ZSO образы как файловую систему в ядре, для работы с файлами в образе. В основном используется следующим по списку модулем :)
isoldr — Это всем известный модуль sdiso, но он был переименован по нескольким причинам, а так же вернулся в статус модулей, в отличие от предыдущей версии, где он был командой. Далее я расскажу более подробно об изменениях в нем.
minilzo — Модуль для поддержки LZO компрессии, используется модулем isofs и isoldr для сжатых образов.
http — Этот модуль работает только совместно с модулем lwip и позволяет добавлять в файловую систему ядра возможность работы с tcp/udp и http протоколами.
angelscript — Модуль для использования AngelScript. Пока не используются в системе.
sqlite3 и luaSQL — Модули SQLite в виде библиотеки и lua представления. Пока не используются в системе.
и прочие…
Сразу оговорюсь по поводу проигрывания медиа файлов. Они не плохо проигрываются, но все же стабильности этим модулям еще не хватает, особенно ffmpeg.
А так же отсутствие приложения медиаплеера дает о себе знать, файл менеджер никак не следит за проигрыванием, поэтому вы легко можете повесить систему не аккуратными действиями.
Здесь я полагаюсь на сторонних разработчиков, теперь вам есть чем заняться :)
Все модули для декодирования аудио и видео, оптимизированы специально под Dreamcast.
Модуль luaDS был разбит на 3 модуля:
luaDS
luaSDL
luaGUI
- Обновление основных библиотек:
SDL = 1.2.13
SDL GFX = 2.0.22
SDL Image = 1.2.10
SDL TTF = 2.0.10
SDL RTF = 0.1.1 (новая)
FreeType = 2.4.4
Zlib = 1.2.5
PNG = 1.5.1
Lua = 5.1.4-2
tolua, tolua++ = 5.1.4
fatfs = R0.09
Так же была использована последняя ревизия (741) KallistiOS и собрано все это на компиляторах GCC 4.5.2 с newlib 1.19
- Новые команды в консоли.
- Fatfs теперь используется не только SD но и HDD (только в PIO режиме). К сожалению у меня нет рабочего прототипа с HDD, но теоретически это должно работать, буду очень признателен если кто то это проверит! Драйвер для файловой системы ядра был так же улучшен, переписан под использование несколькими устройствами, были исправлены баги, а так же увеличена скорость работы.
- Переписан драйвер для SPI протокола, теперь его могут использовать драйвера для разных SPI устройств, не только SD карта.
- Новый драйвер для Ethernet контроллера ENC28J60 (для SPI протокола). На сайте уже давно есть схема по его подключению. Драйвер этот пока экспериментальный и я не гарантирую его нормальную работу.
- Модуль isoldr поддерживает разные устройства: SD Card, HDD, CD-ROM, BBA, LAN.
Загрузчик образов с CD вам может показаться бессмысленным, с некоторой точки зрения так и есть, он был сделан специально для тестирования в эмуляторе и сравнения с другими устройствами.
Загрузчик с CD помог сделать несколько важных выводов. Например что тормоза в играх появляются далеко не только по причине скорости передачи данных… но это все пища для дальнейших размышлений.
Вообще загрузчик был полностью переосмыслен и переписан, я не скажу что это дало некий прорыв в совместимости игр, но это хороший задел на будущее.
Появилось множество настроек запуска игр, разными загрузчиками и разными методами. Чтобы все это задействовать, необходимо использовать новое приложение ISO Loader. К примеру загрузчики есть для разных участков памяти, есть возможность стартовать не напрямую с boot.bin, а с IP.BIN, эмуляция DMA и прочее.
За счет модуля isofs, который непосредственно используется модулем isoldr, будет расширяться список поддерживаемых образов.
Сейчас поддерживаются вручную созданные ISO (как было раньше), оригинальные GD-RIP конвертированные в ISO, конвертированные CDI/NRG в ISO, а так же все эти образы можно сжать в CSO/ZSO. Для создания, конвертирования и сжатия образов я сделал новый iso make pack v2.
Уточню по поводу формата сжатых образов. Модуль isofs поддерживает как CSO (сжатый методом zlib), так и ZSO (сжатый методом LZO), а загрузчики поддерживают образы только сжатые методом LZO. Именую я их одинаково как CSO, так как это формат такой же как у PSP образов, просто я сделал два разных метода сжатия, он определяется по заголовку, а не по расширению файла. Загрузчики не поддерживают zlib сжатие по причине экономии памяти, да и LZO распаковывается гораздо быстрее.
Сжатие образов позволяет значительно сэкономить место, особенно это касается GD RIP, которые занимают 1 Гбайт. Более того, в играх, где налету подгружаются хорошо сжимаемые данные (текстуры, модели, но не музыка!), это может дать неплохой прирост в скорости, так как распаковка данных происходит на порядок быстрее чем их считывание. Я наблюдал за загрузкой данных игрой и если загружались не музыка или видео, а текстуры и модели, то полезность сжатия была в среднем в 1.5-2 раза, что примерно во столько же и увеличивало скорость считывания. Жаль что лаги как правило конечно из за музыки, а в этом сжатие образов никак не поможет, а может даже немного ухудшить ситуацию.
В целом игры стали работать быстрее (и без учета сжатых образов), это хорошо заметно там, где были серьезные лаги, а в некоторых играх их практически не стало совсем. В этом можно убедится посмотрев мое видео. Этого удалось добиться за счет оптимизаций работы с FAT.
Загрузчик с помощью BBA/LAN пока не закончен, и поверьте, он не дает той надежды на скорость, на которую я думаю многие из вас надеялись, по крайне мере первые версии.
Может быть в будущем это будет работать лучше SD/HDD, но пока… Я протестировал скорость чтения BBA без использования DMA и она составила ~500 кбайт/сек (а SD у меня показала 617 кбайт/сек!), при этом скорость записи достигла 2 мбайт/сек! Но она нас не интересует.
- Теперь можно прошить в bios как новый Boot loader 2.0, который позволяет запускать DS с разных устройств, так и специально модифицированный оригинальный bios, в который встроен загрузчик с SD, это позволило не нарушать работу всех системных вызовов и самое главное GD-ROM!
С помощью этого bios, вы теперь можете запускать DS напрямую без дисков и игры через нее без GD-ROM! Напомню что раньше запуск игр был невозможен, если был прошит не оригинальный bios.
Как это работает можно посмотреть в моем видео.
- Приложение DSInstall обновлено. Теперь можно выбрать разные bios для прошивки.
- Приложение Filemanager было в большей степени переделано, теперь оно использует новые возможности GUI, стало быстрее и стабильней работать, меньше занимать памяти. Так же здесь новый дизайн, более простой и крупный.
- Новое приложение ISO Loader. Это первое приложение включенное в сборку DreamShell, которое сделал сторонний разработчик на основе моего прототипа, за что я ему очень благодарен, так как у меня времени на все не хватало. Его ник Superdefault, будем надеется что он это дело не бросит и дальше будет развивать данное приложение. Это всего лишь первая версия, которая только только захватывает все возможности нового модуля isoldr.
- Новое приложение DSN (DreamShell Network). Пока толком ничего из себя не представляет (есть только возможность для подключения сетей), но планы у меня на этот счет большие, понятие DSN только было внедрено, работы здесь еще очень много. Главная проблема, это мой глючный BBA, который отказывается нормально работать в KOS, поэтому мне пришлось отложить все работы с сетью.
- Стартовое приложение было обновлено. Убрана ненужная кнопка старт, вместо нее теперь есть кнопки влево/вправо для перелистывания экрана, что позволяет размещать большое количество иконок. Логика приложения была перемещена в модуль, для того чтобы не загружать в память lua модули при старте системы. Так же есть небольшие внешние изменения и исправлены баги.
- Теперь приложения при выходе нормально выгружаются высвобождая ресурсы. Здесь все еще есть небольшая утечка памяти, но в целом стало на порядок лучше.
- Теперь lua не обязательно использовать в приложениях, вся логика может быть описана и в модуле. За счет этого приложение будет работать быстрее и эффективнее использовать память.
- События в XML теперь могут быть не только lua функциями, но и Си функциями из модулей или ядра и даже консольными командами!
- Новый виджет для отображения RTF документов, с поддержкой форматирования. Добавлен и в XML.
- Новый виджет FileManager, для простого и удобного встраивания в приложение файловых менеджеров. Я думаю это по достоинству оценят разработчики. Добавлен и в XML.
- Большое количество новых методов для рисования примитивов на GUI_Surface. Некоторые из них были внедрены и в XML.
- GUI был хорошо оптимизирован и обновлен, но конечно это все еще не идеал :) В любом случае графических багов стало на порядок меньше, а работа в целом улучшена.
- Добавлена возможность перехода между активными виджетами в GUI с помощью джойстика (вверх/вниз). Это позволяет без аналога или мышки передвигать быстро и удобно курсор к активным элементам.
- В lua тоже довольно много изменений. Поддержка нативных функций была улучшена и добавлены недостающие функции типа чтения директорий или их создание и удаление без дополнительных модулей как это было раньше.
- Перехват исключений при загрузке модулей или выполнении событий XML и вывод информации в консоль. Что позволяет не падать всей системе если что то не так в модуле или в коде приложения.
В общем, изменений очень много, но я уже забыл что делал, никак это не фиксировал. Некоторый функционал появлялся и убирался несколько раз.
В целом можно сказать что была проделана огромная работа по оптимизации кода и добавлении нового функционала, который в большей степени ощутят те кто занимается разработкой приложений и модулей для DS. Обычному пользователю это не так заметно, так как приложений все еще мало.
На этом пока и остановлюсь. Позже я еще допишу сюда то, что забыл, а я ведь забыл это точно :)
Для загрузки доступен и новый SDK, он стал более богатым на библиотеки, а так же я включил в него последнюю сборку 3D движка CubicVR для DC.
Есть примеры для создания модулей и команд, а P@S@f снял даже видео урок по настройке окружения для компилирования (он не входит в SDK, вы можете его посмотреть на Youtube).
Буду очень признателен за любую поддержку — Donate, разработка приложений или Bug report. Этим вы поможете развитию проекта!
Рекомендации:
Если у вас отказывается работать SD адаптер, скорее всего у вас слишком длинный провод, укоротите его до 5-10 сантиметров, а лучше вообще от него избавится.
Если вы хотите использовать максимум скорости, то вам необходима SD карта не меньше 6 класса.
Благодарности
Спасибо alex как постоянному тестировщику, он нашел много багов, которые я не видел.
Спасибо Superdefault за то что занимается приложением ISO Loader. Так же спасибо ему за первый и пока единственный Donate :)
Спасибо P@S@f за видео урок по установке SDK.
Скачать
Скачать DreamShell и SDK вы можете на странице DreamShell.
Видео:
Part 1 — www.youtube.com/watch?v=0hvxXkaf-TY
Part 2 — www.youtube.com/watch?v=0VZsmaUEsPQ
Part 3 — www.youtube.com/watch?v=osjTYuwMado
Part 4 — www.youtube.com/watch?v=Ho_Pts3ZeX0
Part 5 — www.youtube.com/watch?v=gC_UiBb9KVg
Part 6 — www.youtube.com/watch?v=3Zu6FYUIaWQ
Видео урок по настройке SDK от P@S@f — www.youtube.com/watch?v=UWPEb8daFwY
Скриншоты:
- +1
- SWAT
- 02 февраля 2012, 20:12
Комментарии (20)
rss свернуть / развернутьсвернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
by the way, has your USB to DC-Serial adaptor succeed?
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку