DC-SWAT Forum
DreamShell v4.0.2 Release - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: DreamShell (/forum-3.html)
+--- Форум: General Discussion (/forum-27.html)
+--- Тема: DreamShell v4.0.2 Release (/thread-4178.html)

Страниц: 1 2 3 4 5


RE: DreamShell v4.0.2 Release - Elgor4uk - 17.06.2025 13:34

(17.06.2025 09:42)SWAT писал(а):  Может проблема во фрагментации образов, а не в этой настройке?
Возможно, это только проба пера и пока через SSD ( его кстати часто нельзя дефрагментировать). Но через нативный IDE, в некоторых японских играх лучше поставить SYNC 1-16, т.к. в TRUE некоторые японские иероглифы отображаются пустыми квадратиками, и часть текста становится не читаемая (вдруг это важно знающим японский).


RE: DreamShell v4.0.2 Release - megavolt85 - 17.06.2025 17:18

(17.06.2025 13:34)Elgor4uk писал(а):  его кстати часто нельзя дефрагментировать

так ты не дефрагментируй его полностью (точнее это оптимизация уже)
Defraggler позволяет дефрагментировать только файлы разбитые на фрагменты без оптимизации всего диска и по времени такая дефрагментация выполняется в разы быстрее


RE: DreamShell v4.0.2 Release - SWAT - 17.06.2025 20:02

(17.06.2025 13:34)Elgor4uk писал(а):  Но через нативный IDE, в некоторых японских играх лучше поставить SYNC 1-16, т.к. в TRUE некоторые японские иероглифы отображаются пустыми квадратиками, и часть текста становится не читаемая (вдруг это важно знающим японский).

Это значит что игра не дождалась всех данных и начала их использовать. Значит было лишнее прерывание (хотя я старательно их пытаюсь прятать), а оно было из-за того что файл фрагментирован. Но это лишь одно предположение, возможно там вообще тайминг какой-то влияет, а блокировка контекста помогает это обойти.


RE: DreamShell v4.0.2 Release - Elgor4uk - 17.06.2025 23:46

Заработала ещё одна игра, которую мне не удавалось запустить никогда: Eisei Meijin 3 - Game Creator Yoshimura Nobuhiro no Zunou [No_VGA]. Коллекционерам или фанатам маджонга. Даже CDDA есть, с готовым пресетом из ромдиска. Правда, работает только на консоли NTSC. Теперь можно смело заявить, что Dreamshell поддерживает всю официальную библиотеку.


RE: DreamShell v4.0.2 Release - Elgor4uk - 19.06.2025 17:19

Похоже у загрузчика v0.8.2 трудности с TRUE на SSD в некоторых играх. И проблема не в дефрагментации. Потому что, если запускать проблемную игру на одном и том же SSD через загрузчик 0.8.1 + TRUE = работает.


RE: DreamShell v4.0.2 Release - Elgor4uk - 25.06.2025 23:42

Запуск dreamshell через SDcard это равно запуск через IDE LBA28? Есть у кого опыт запуска игр через IDE LBA28 с новыми загрузчиками v.0.8? У меня игры работают только с загрузчиком v.0.6.0 и отключенным DMA. Либо я что то не правильно делаю.


RE: DreamShell v4.0.2 Release - SWAT - 26.06.2025 09:27

(25.06.2025 23:42)Elgor4uk писал(а):  Запуск dreamshell через SDcard это равно запуск через IDE LBA28? Есть у кого опыт запуска игр через IDE LBA28 с новыми загрузчиками v.0.8? У меня игры работают только с загрузчиком v.0.6.0 и отключенным DMA. Либо я что то не правильно делаю.

Через какую SD карту? Куда она подключена.
У меня кстати есть проблема с LBA28 кажется в некоторых играх.


RE: DreamShell v4.0.2 Release - Elgor4uk - 26.06.2025 10:36

(26.06.2025 09:27)SWAT писал(а):  Через какую SD карту? Куда она подключена.
У меня кстати есть проблема с LBA28 кажется в некоторых играх.
1. Я пытаюсь запустить через нативный IDE HDD LBA28. При таком накопителе не работают загрузчики начиная с v.0.7 - v.0.8. Работают только с загрузчиком v.0.6.0 и отключённым DMA.
2. HDD LBA28 не запускает игры требующие DMA, например Soul Calibur, а так же WinCE, например Half Life.
3. Потому и предположил, что IDE LBA28 = SDcard.


RE: DreamShell v4.0.2 Release - megavolt85 - 26.06.2025 17:48

Не, SD мод это всегда чтение посредством процессора, а IDE это нативное чтения те как с привода, разница между LBA28 и LBA48 лишь в возможном количестве запрашиваемых секторов, у LBA28 за один раз можно попросить лишь 256 секторов что равно 64 секторам привода и если игра просит больше, то приходится читать кусками при этом нужно прятать прерывания, но не всем играм это нравится, тоже самое происходит если образ фрагментирован


RE: DreamShell v4.0.2 Release - Elgor4uk - 26.06.2025 20:32

(26.06.2025 17:48)megavolt85 писал(а):  Не, SD мод это всегда чтение посредством процессора, а IDE это нативное чтения те как с привода, разница между LBA28 и LBA48 лишь в возможном количестве запрашиваемых секторов, у LBA28 за один раз можно попросить лишь 256 секторов что равно 64 секторам привода и если игра просит больше, то приходится читать кусками при этом нужно прятать прерывания, но не всем играм это нравится, тоже самое происходит если образ фрагментирован

Значит, IDE HDD LBA28 поддерживает WinCE и Low-level? Похоже я что то не правильно делаю, Dreamshell + v0.8 не хочет запускать игры (если точнее, то ни одну игру). Работает только с лоадером v0.6, но без WinCE.


RE: DreamShell v4.0.2 Release - Darkodan - 27.06.2025 03:51

Hi guys. I'm really happy with the new update. I've been testing it with my Serial Port SD Adapter and a 128GB Micro SD card SanDisk. I noticed that in the previous version, the Games Menu sometimes freezed when scrolling through the game list. That doesn't happen anymore. Not only that, but it feels smoother. By the way, is there an official games list for Serial Port SD games? Thanks. Big Grin


RE: DreamShell v4.0.2 Release - SWAT - 27.06.2025 04:45

(26.06.2025 20:32)Elgor4uk писал(а):  
(26.06.2025 17:48)megavolt85 писал(а):  Не, SD мод это всегда чтение посредством процессора, а IDE это нативное чтения те как с привода, разница между LBA28 и LBA48 лишь в возможном количестве запрашиваемых секторов, у LBA28 за один раз можно попросить лишь 256 секторов что равно 64 секторам привода и если игра просит больше, то приходится читать кусками при этом нужно прятать прерывания, но не всем играм это нравится, тоже самое происходит если образ фрагментирован

Значит, IDE HDD LBA28 поддерживает WinCE и Low-level? Похоже я что то не правильно делаю, Dreamshell + v0.8 не хочет запускать игры (если точнее, то ни одну игру). Работает только с лоадером v0.6, но без WinCE.

IDE LBA28 должно поддерживаться в загрузчике 0.8.2+ с включенным IRQ, в некоторых случаях (но не WinCE) можно emu async, но тоже с DMA, и bypass pre-read, для тех игр где для SATA это используется. Но похоже с LBA28 есть еще проблемы.
Low-level - никогда не будет поддерживать LBA28, там максимально близко все к работе привода, а привод работает в LBA48 и многие игры могут запрашивать больше чем 64 сектора за раз.
WinCE, как и игры от Visual Concept без DMA в принципе не работают и работать не могут, потому что доступ процессору запрещен почти во все области памяти из системных вызовов, когда игры используют MMU.
Поэтому они и на SD не работают и не будут работать даже на SCI-SPI пока там не появится полноценный DMA, вместо гибрида и то еще останется проблема с отсутствием необходимых прерываний, ведь IDE генерирует прерывание точно такие-же как и привод, нужно лишь прятать лишние, а в случае SD, даже если там будет DMA, то прерывания у нее другие и игра о них ничего не знает.


RE: DreamShell v4.0.2 Release - fafadou - 27.06.2025 12:07

Is it possible to choose between LBA48 or LBA28 via dreamshell ? Or is it automatic, depending of the drive ?


RE: DreamShell v4.0.2 Release - Elgor4uk - 27.06.2025 20:12

Похоже есть одно решение для NTSC приставок, которые испытывают трудности в PAL играх при принудительном багнутом изображении в 50Hz (актуально для игр, где отсутствует переключение в 60Hz). Мне помог выбор Behind the loader. Отсюда пару вопросов ведающим:
1. Может ли навредить включение Behind the loader игре? Мне допустим не трудно включить VGA для нормальной картинки PAL игр. Но если нету VGA, то Behind the loader как альтернатива будет ухудшать другие параметры игры?
2. Что вообще такое этот Behind the loader?


RE: DreamShell v4.0.2 Release - SWAT - 28.06.2025 08:48

(27.06.2025 12:07)fafadou писал(а):  Is it possible to choose between LBA48 or LBA28 via dreamshell ? Or is it automatic, depending of the drive ?

Yes we can choose, but only if the drive supports LBA48. Currently if the requested number of sectors is sufficient for LBA28 to work, then LBA28 is used, since fewer registers need to be filled. But if we need to read more than 256 sectors (or 64 optical sectors), then we need to use LBA48. Many games request data greater than LBA28 can.


RE: DreamShell v4.0.2 Release - SWAT - 28.06.2025 08:50

(27.06.2025 20:12)Elgor4uk писал(а):  Похоже есть одно решение для NTSC приставок, которые испытывают трудности в PAL играх при принудительном багнутом изображении в 50Hz (актуально для игр, где отсутствует переключение в 60Hz). Мне помог выбор Behind the loader. Отсюда пару вопросов ведающим:
1. Может ли навредить включение Behind the loader игре? Мне допустим не трудно включить VGA для нормальной картинки PAL игр. Но если нету VGA, то Behind the loader как альтернатива будет ухудшать другие параметры игры?
2. Что вообще такое этот Behind the loader?

Эта настройка влияет косвенно и я кажется знаю почему. Забегая вперед скажу что ты таким образом просто затираешь другими данным область памяти для метаданных IP.BIN. И это не страшно.

Ну а вообще ты оторвал от контекста этот параметр. На какой вкладке он находится? Он находится на вкладке Heap (она же куча), а это в свою очередь область памяти, в которой загрузчик размещает динамические данные, например буфер для CDDA, служебная информация для файловой системы и т.п., что изначально не заложено внутри бинарника загрузчика.
По умолчанию загрузчик пытается автоматически подобрать место для этого, там есть ряд критериев, но обычно если в игре нет CDDA и не используется запуск с IP.BIN, то он размещается за метаданными из IP.BIN, при этом из IP.BIN эти самые метаданные загружаются в нужную область памяти.
Если же вручную выставить "Behind the loader", а это в контексте памяти для "кучи" должно говорить само за себя, типа разместить ее сразу за загрузчиком.
Если используется CDDA, но не используется запуск с IP.BIN, то загрузчик автоматически за собой размещает, потому что нет места для метаданных из IP.BIN. А если загрузчик размещается в конце оперативной памяти, то там работают другие правила...
В общем я понял что я буду очень долго разъяснять как это работает на самом деле и решил попросить нейросеть сгенерировать подробное описание на основе кода в загрузчике, вот что получилось:

Цитата:Анализ условий размещения памяти для malloc в DreamShell ISO Loader

Типы управления памятью

1. KATANA malloc (игровая память)
  • Используется только если IsoInfo->heap == HEAP_MODE_INGAME
  • Работает только с играми типа BIN_TYPE_KATANA
  • Активируется только после загрузки игры (first == 0)
  • Если инициализация KATANA malloc не удалась, переключается на внутренний malloc

2. Internal malloc (собственная реализация)
  • Используется во всех остальных случаях
  • Имеет несколько режимов размещения памяти

Режимы размещения памяти (Internal malloc)

Режим HEAP_MODE_SPECIFY (≥ заданного значения)
  • Память размещается по адресу, указанному в IsoInfo->heap
  • Пользователь сам задает адрес

Режим HEAP_MODE_AUTO (автоматический)
Сложная логика выбора адреса в функции internal_malloc_init_auto():

Области памяти Dreamcast:
  • APP_BIN_ADDR = 0x8c010000 (область загрузки исполняемых файлов)
  • IP_BIN_ADDR = 0x8c008000 (область IP.BIN)
  • ISOLDR_DEFAULT_ADDR_LOW = 0x8c004000 (низкий адрес загрузчика)
  • ISOLDR_DEFAULT_ADDR_HIGH = 0x8cfe8000 (высокий адрес загрузчика)
  • ISOLDR_DEFAULT_ADDR_MIN = 0x8c000100 (минимальный адрес)

Условие 1: Loader ниже APP_BIN_ADDR И НЕ WinCE
if (loader_addr < 0x8c010000 && exec.type != BIN_TYPE_WINCE)

Подусловие 1.1 - Размещение в верхней памяти:
Адрес: 0x8cfe0000 (ISOLDR_DEFAULT_ADDR_HIGH - 0x8000)
  • Loader в области 0x8c004000+ И включена эмуляция CDDA
    (loader_addr >= ISOLDR_DEFAULT_ADDR_LOW && emu_cdda)
  • ИЛИ: Эмуляция CDDA включена И IRQ отключены
    (emu_cdda && use_irq == 0)
  • ИЛИ: Режим загрузки НЕ прямой
    (boot_mode != BOOT_MODE_DIRECT)
    - BOOT_MODE_IPBIN = Bootstrap 1
    - BOOT_MODE_IPBIN_TRUNC = Bootstrap 2

Подусловие 1.2 - Размещение после IP.BIN:
Адрес: 0x8c008800 (IP_BIN_ADDR + 0x800)
  • Loader заканчивается до IP_BIN_ADDR
    (loader_end < 0x8c008000)
  • И: Эмуляция CDDA выключена ИЛИ IRQ включены
    (emu_cdda == 0 || use_irq)

Условие 2: Loader выше APP_BIN_ADDR
if (loader_addr > 0x8c010000)
  • Адрес: 0x8c001100 (ISOLDR_DEFAULT_ADDR_MIN + 0x1000)

Условие 3: WinCE исполняемые файлы
if (exec.type == BIN_TYPE_WINCE)
  • Если loader заканчивается до IP_BIN_ADDR:
    Адрес: 0x8c008800 (IP_BIN_ADDR + 0x800)

Режим HEAP_MODE_MAPLE
Функция internal_malloc_init_maple(int first):

После загрузки игры (first == 0):
  • Базовый адрес: MAPLE_REG(MAPLE_DMA_ADDR) (адрес Maple DMA)
  • Смещения зависят от условий:

Условие: CSO образы ИЛИ эмуляция CDDA
if (image_type == ISOFS_IMAGE_TYPE_CSO || emu_cdda)
  • Смещение: +0x1000

Иначе: Зависит от типа исполняемого файла
  • KOS исполняемые: BIN_TYPE_KOS - смещение +0x3000
  • Остальные типы: BIN_TYPE_KATANA/WINCE - смещение +0x5000

При первом запуске (first != 0):
  • Используется автоматический режим internal_malloc_init_auto()

Режим по умолчанию
  • Адрес: ALIGN32_ADDR(loader_end) (сразу после загрузчика)

Эта сложная система позволяет DreamShell ISO Loader адаптироваться под конкретные условия запуска и обеспечивать стабильную работу различных игр и homebrew приложений на Dreamcast.

Возможно тут есть ошибки в нюансах, но в целом примерно так и есть.


RE: DreamShell v4.0.2 Release - Darkodan - 30.06.2025 22:32

Hello, Forum. I have a question. Is there a way to include the option in Dreamshell to enable or disable the Deflicker Filter before running games? This filter worsens the image quality in games, especially if you play on a CRT. In my case, I use the RGB to Component Video Transcoder. And yes, it looks good, but the Deflicker Filter is noticeable.

By the way, does anyone have the configuration to run Toy Story 2 through the serial port?

Thanks.


RE: DreamShell v4.0.2 Release - SWAT - 01.07.2025 11:31

(30.06.2025 22:32)Darkodan писал(а):  Hello, Forum. I have a question. Is there a way to include the option in Dreamshell to enable or disable the Deflicker Filter before running games? This filter worsens the image quality in games, especially if you play on a CRT. In my case, I use the RGB to Component Video Transcoder. And yes, it looks good, but the Deflicker Filter is noticeable.

No.


RE: DreamShell v4.0.2 Release - pcwzrd13 - 03.07.2025 19:52

Some good news. Previous versions of DreamShell (I think it started with 4.0) had issues with World Series Baseball 2K2 randomly freezing when playing online but this version works flawlessly! Played two full games last night and had no freezing at all. Just default settings with CF. Smile

Hopefully the NFL games are good now as well. The baseball and NFL games have gone back and forth between stable and unstable in various DreamShell / loader versions. It's been hard to test them because the freezing only seems to occur when playing online and at random times.


RE: DreamShell v4.0.2 Release - Elgor4uk - 16.07.2025 15:10

1. @SWAT, добавь пожалуйста в ромдиск еще 4пресета от игр RE. Это новые образы GDI с новым переводом.

2. Всё же новый лоадер 0.8.2 уступает лоадеру 0.8.1 даже в нативном IDE, а именно: не запускает или крашит игры с включённым TRUE. Пример - Q3A требует SYNC 8. Из 200 игр где то 50 испытывают такие проблемы. Но если запускать через лоадер 0.8.1 - проблем нет. В итогде оптимальным решением на данный момент: взять за основу новую версию DreamShell v4.0.2 и удалить всю папку firmware\isoldr. и заменить эту папку из старой версии DreamShell v4.0.1. c основным лоадером 0.8.1. А лоадер 0.8.2. использовать как вспомогательный.