| Цитата: • Ядро системы стало легче и быстрее. • Новая виртуальная клавиатура, с возможностью масштабирования (нажать 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 и вывод информации в консоль. Что позволяет не падать всей системе если что то не так в модуле или в коде приложения. | |