DreamShell → DreamShell 4.0.0 RC 2
Update 30.05.2014:
Fixed a bug at reading CDI and unoptimized GDI in ISO loader firmware
New optimized and working on all consoles CDI images with Core and Boot loader
Update 29.05.2014:
Updated ISO Loader firmware, module and app up to v0.4.1
— Improved games compability
— Improved read speed for CDI and unoptimized GDI images
— Disabled autosave for presets, added new checkbox for it
Updated KallistiOS
Improved image loading in SDL
Update 24.05.2014: Fixed «luaKOS» and «ffmpeg» modules, removed checking core on CD in Boot loader.
Update 17.05.2014: Added «ds_core_sd.bios» and «SD_DS_CORE.BIN», see comment for details.
Уже заждались свежего релиза? Понимаю :)
Я хотел сделать все что задумал, прежде чем опубликовать новую версию, но некоторые не решенные проблемы задерживали релиз уже больше месяца и решения для них я пока не вижу. Поэтому я решил пока опубликовать версию как есть, а потом уже думать над решением проблем, так как не известно сколько это займет еще времени. Да и хочется уже отдохнуть от разработки, последнее время очень плотно занимался этим проектом.
Как обычно все необходимое вы можете скачать на странице DreamShell.
Очень много рефакторинга было проделано с кодом и структурой проекта, я постепенно готовлюсь к публикации исходного кода. Но не стоит ждать этого в ближайшее время, это будет происходить постепенно. В данный момент вместе с SDK вы можете скачать исходный код всех приложений, а так же некоторых модулей и команд. В ближайшее время я выложу это все в репозиторий на GitHub и постепенно буду пополнять все новым и новым кодом.
Всю проделанную работу я перечислять не буду, внутренне она была колоссальна, поэтому я остановлюсь только на основных, наиболее важных и видимых для конечного пользователя изменениях. Вероятно я что-то забыл за это время, буду дополнять список если вспомню еще что-то.
Core
- Исправлены ошибки в видео режимах
- Исправлено множество графических артифактов
- Улучшена синхронизация видео процесса с процессом ввода. Полное разделение логики этих процессов
- Улучшена работа GUI, добавлены новые возможности, функции, а так же улучшена стабильность и скорость
- Добавлено дополнительное управление для виджета GUI_FileManager с помощью джойстика (X + Analog для скроллинга и X + D-Pad для перехода по списку)
- Улучшена навигация по активным виджетам на джойстике с помощью D-Pad (убраны лишние переходы, добавлена возможность перехода сразу в начало и конец)
- Уменьшена чувствительность курсора GUI
- Полностью переработана поддержка файловой системы FAT (thread safe, DMA ready, blockdev, multi-partition)
- Добавлена поддержка файловой системы EXT2
- Добавлена полноценная поддержка G1-ATA(IDE) устройств в PIO (3-3.5 МБ/с) и Multiword DMA mode 2 (10-12 МБ/с) режимах
- Улучшен Soft SPI драйвер и переработан драйвер для SD Card. Увеличена скорость чтения до ~700 КБ/с и записи до ~800 КБ/с
- Автоматический поиск и монтирование во время старта всех партиций с файловыми системами на всех поддерживаемых устройствах
- Добавлена поддержка автоматического сканирования и монтирования romdisk из BIOS (если не найдено ни одного устройства)
- Улучшен Exception Guard (thread safe, recursion, API macros)
- Увеличена скорость первоначальной загрузки и инициализации
- Увеличена скорость загрузки приложений
- Уменьшено потребление ресурсов выпадающей консолью
- Поддержка запуска команд в консоли отдельным процессом, при добавлении в конце знака &
- Добавлена поддержка авто-дополнения наименования команды в консоли при нажатии на TAB
- Добавлены новые команды для консоли, а так же доработаны/изменены старые
- Значительные изменения и оптимизации API в целом
- Обновлены библиотеки: KallistiOS, Newlib, fatfs, zlib, mxml, SDL_gfx, SDL_ttf и другие...
- Весь код собран на компиляторах GCC 4.7.3 с Newlib 2.0.0 и последней на сегодняшний день версией KallistiOS
Applications
Main (рабочий стол)- Добавлена поддержка запуска lua и dsc скриптов с рабочего стола по ярлыку, с возможностью установки своей иконки
- Улучшена навигация между страницами
- Новый, оригинальный фон для рабочего стола
- Оптимизирована скорость работы
- Добавлена поддержка режима с одним окном (включен по умолчанию)
- Добавлена поддержка открытия файлов в соответствующем его формату приложении
- Незначительные исправления и оптимизации
- Это новое приложение, разработанное в замен старому DSInstall сторонним разработчиком YevDev
- Использование нового модуля bflash через API
- Поддержка записи, чтения и сравнения BIOS firmware
- Выбор файла через виджет файлового менеджера и прием пути к файлу от приложения File Manager
- Это новое приложение, разработанное сторонним разработчиком Megavolt85
- Создание резервных копий данных с дисков CD в формате ISO
- Создание резервных копий данных с дисков GD в формате GDI
- Возможность сохранять резервные копии на SD, G1-ATA(IDE) и PC (через dcload)
- Генерация имени резервной копии в соответствии с названием игры
- Это новое приложение, разработанное сторонним разработчиком Megavolt85, на основе алгоритма из консольной команды speedtest в ядре DS
- Поддержка тестирования реальной скорости чтения и записи (т.е. с файловой системой) на устройствах: SD, G1-ATA(IDE), PC (dcload) и GD-ROM (только чтение)
- К сожалению предыдущий автор (Superdefault) не поддерживал это приложение с момента релиза RC1, поэтому теперь этим приложением занимаюсь я сам
- Полностью переписана логика приложения
- Оптимизирован рендеринг GUI, убраны лишние элементы и добавлены новые
- Работа с модулем isoldr осуществляется через API вместо консоли, это дает новые возможности, в том числе использования путей с пробелами
- Поддержка основных и новых функций модуля isoldr
- Поддержка отображения текстуры диска (0GDTEX.PVR), если не найдена обложка
- Автоматическое сохранение и загрузка настроек для каждой игры
Modules
Система модулей имеет значительные изменения в API и системе сборки. Новый link-script для компоновки, более простые и удобные Makefile, обновленный SDK и т.д.- Новый модуль bflash для прошивки BootROM, вместо старой команды 'bios'.
— Поддержка 2-х дополнительных протоколов
— Поддержка более 20-ти разных (и не очень) flash чипов (некоторые еще не тестировались)
— Поддержка страничной записи
— Автоматическое определение бренда и производителя чипа
— API для работы с модулем в дополнение к консольной команде
- Новый модуль opkg для работы с пакетами формата Open Pakage основанных на файловой системе SquashFS с компрессией zlib и lzo.
— Установка и удаление пакетов
— Возможность автоматического запуска скриптов после установки и удаления
— Извлечение определенных файлов из пакетов
— Вывод информации о пакете
- Новый модуль luaTask для работы с threads из lua
- Новый модуль luaSocket для работы с sockets из lua
- Новый модуль aicaos с одноименной библиотекой AicaOS
- Новый модуль gumbo с одноименной библиотекой для парсинга (X)HTML
- Новый модуль mongoose с одноименной библиотекой для создания веб-сервера
- Новые модули telnetd и httpd это перенесенные из ядра одноименные команды
- Новый модуль SDL_net с одноименной библиотекой
- Обновлен модуль http для поддержки KOS socket вместо lwip
- Обновлен модуль vkb
- Обновлен модуль isofs
— Добавлена поддержка монтирования множества образов одновременно
— Добавлена поддержка форматов CDI и GDI
— Добавлены новые функции в API для получения всей необходимой информации
— Исправлены ошибки и улучшена работа в целом - Обновлен модуль isoldr
— Добавлен API для работы с модулем в дополнение к консольной команде
— Используются все новые возможности модуля isofs через API, а так же новых загрузчиков
— Добавлена возможность размещать загрузчики в любом месте оперативной памяти (теперь можно подобрать неиспользуемое игрой пространство)
— Новая система передачи параметров и запуска загрузчиков
— Добавлена начальная поддержка DCIO (GD-ROM эмулятора от cybdyn)
- Все остальные модули так же имеют незначительные изменения и оптимизации
Firmware
Boot Loader- Добавлена поддержка файловых систем и устройств как в Core
- Добавлена поддержка загрузки сжатых с помощью zlib бинарных файлов (ZDS_CORE.BIN)
- Визуализация загрузки и новые функции в управлении
- Обновлен ds_core.bios и добавлен новый ds_core_rd.bios (с минимальным набором файлов для работы Core)
- Обновлен boot_loader.bios и добавлен новый boot_loader_rd_ext.bios (с расширенным набором файлов для работы Core)
- Добавлены 2 экспериментальных boot_loader_wsc_bfont.bios и boot_loader_wsc_bfont_sd.bios (только SD) с системными вызовами и шрифтами из оригинального bios
- К сожалению для тех у кого есть G1-ATA(IDE) устройство, эти bios бесполезны, так как они не проходят проверку в Holly и G1 Bus блокируется. Пока я не нашел решения данной проблемы, возможно кому то удастся сделать эти bios валидными. А пока можно пользоваться все тем же sd_loader_with.bios (он проходит проверку), загрузив с SD новый boot loader, а из него уже можно загрузить Core с любого устройства. Или напрямую загружать Core, при этом остальные файлы можно разместить на любом устройстве.
- Код загрузчиков переписан на 90%, теперь он более компактный, быстрый и функциональный
- Переработана эмуляция системных вызовов, теперь она больше похожа на оригинальную
- Новый метод запуска в дополнение к старому
- Изменены режимы запуска
- Новая, более четкая система передачи параметров
- Универсальные версии исполняемых файлов, которые жестко ограничены в использовании памяти (не более 32 КБ на все). Уменьшено общее потребление памяти всеми загрузчиками
- Увеличена скорость запуска образов
- Добавлена поддержка образов GDI и CDI
- Улучшена поддержка образов CSO(ZSO)
- Добавлена поддержка G1-ATA(IDE) устройств
- Частичная поддержка DMA для G1-ATA(IDE) и GD-ROM. К сожалению пока с DMA работает очень мало игр, поэтому этот режим по умолчанию выключен. Но исполняемые файлы перед запуском загружаются всегда с DMA.
- Добавлена поддержка dc-load (IP/Serial/Custom?) для чтения данных по протоколу dc-load
- Улучшен драйвер SPI и SD как в Core
- Поддержка эмуляции асинхронного чтения (сокращает длительность лагов в играх)
- Добавлена поддержка разных партиций для FAT
- Отображение текстуры диска на экране
- Поддержка всех видео режимов как в Core
- Улучшена поддержка запуска образов с GD-ROM
- Улучшена совместимость с играми
Рекомендации
- Если вы все еще пользуетесь SD Card ;), то по возможности используйте CSO(ZSO) формат образов. Это может увеличить скорость чтения
- Старайтесь использовать ISO формат образов и треков в GDI. Это существенно увеличит скорость чтения, так как образы формата CDI и треки формата BIN в GDI, имеют лишние данные, из за которых приходится читать по 1 сектору за раз, вместо всего необходимого пакета сразу
- При форматировании SD Card, CF Card и HDD в FAT, выбирайте размер кластера не меньше 32 КБ
- Если вы хотите использовать CF Card вместо HDD, то не скупитесь на ее скоростной класс (но и без фанатизма), простые CF карты могут не выдать максимальной поддерживаемой скорости для G1-ATA, в отличии от любого HDD
Благодарности
Большое спасибо всем тем, кто участвовал в разработке приложений, тестировании и помогал найти решения для возникших проблем.YevDev, Megavolt85, cybdyn, kof888(YZB) и Bad_Ad84 всем большое спасибо! А так же спасибо авторам KallistiOS за проделанную работу!
Screenshots
File Manager
ISO Loader
Bios Flasher
GD Ripper
Speedtest
- 0
- SWAT
- 15 мая 2014, 15:15
Комментарии (8)
rss свернуть / развернутьFor working G1-ATA and GD-ROM you can use only «sd_loader_with.bios» firmware for now :(
Just put DS_CORE.BIN on SD, for other data you can use HDD.
If you boot console from «sd_loader_with.bios», you need to run games from IP.BIN mode.
If you have working GD drive, you can burn boot loader to CD and just boot from original bios.
Once I get the BIOS passes Holly protection checking, I'll post an update, but for now nobody knows how to get around this problem.
For first I need to get working «boot_loader_wsc_bfont.bios», this BIOS setup all original syscalls and have full original fonts.
For «SD only» users, G1 bus is not a problem. I updated archives with release now (download it again) and add «ds_core_sd.bios» and «SD_DS_CORE.BIN» (need rename it to DS_CORE.BIN) it's not will be initialize G1 devices.
If you boot console from «boot_loader_wsc_bfont_sd.bios» and load «SD_DS_CORE.BIN» from SD, you can solve all old troubles for boot games from custom bios.
свернуть ветку
But need to understand, CDI images and BIN tracks in GDI have some unused data in sectors, so the loader used sector-by-sector reading, this leads to some regression in speed of reading.
I recommend use GDI images with small optimization. You need just convert BIN tracks to ISO, and change info in .gdi file. For all operations I writed a new util (gdiopt), you can use it with optimize_gdi.bat in new ISO Make Pack v2.2
And… just not use CDI for all ;) For SD it's a hard work (as BIN tracks in GDI), for HDD just less comfortable.
свернуть ветку
I have 7zip files with GDI images in it together with *.raw and *.bin files.
So the idea is to connect a IDE Disc to the DC, and run the «gdi» files directly from harddsic right? Thats amazing.
As far as i read the «read» spead is already faster then from the GD-Drive on the dreamcast. So dosent that mean all games should pretty much work in full speed?
So where can i buy the ATA adapter please :)? I mean im absolutly not giften in technics like you, is there a «easy to use» option?
again, this is really amazing
свернуть ветку
But this adapter is not sold anywhere yet…
Only if you ask somebody. I do not do any sales.
свернуть ветку