Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Помощь новичку в программировании под дрим.
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7133
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 136
Поблагодарили 1171 раз(а) в 729 сообщ.
Сообщение: #34
RE: Помощь новичку в программировании под дрим.
(14.01.2020 16:25)megavolt85 писал(а):  
(14.01.2020 11:13)SWAT писал(а):  Помоему можно CDI собрать под 45000

единственный софт для сборки CDI это cdi4dc, audio/data он собирает под 11702, data/data под 0, так что для сборки с lba 45000 придётся переписать код cdi4dc, готовых решений нет

Я имел ввиду возможность самого формата. А то что из коробки это не сделать это да. Но не думаю что сложно поправить cdi4dc, благо есть исходники.


(14.01.2020 15:21)111 писал(а):  
(14.01.2020 11:13)SWAT писал(а):  Ну хорошего уровня да, не получится, только мелкие поделки. И дело там не в асме мне кажется, тот асм волшебный уже давно выдернули.
Проблема скорее в корявом и очень обрубленном драйвере для GPU. В KOS много чего нет.
для отрисовки в кос вполне достаточно сделано. Две главных проблемы:
1) софтварные трансформы (я не знал, что дримкаст в этом плане днище т.е. что нет нормального TnL-юнита (даже в PS1 был GTE, например). Это, на мой взгляд, самый главный "bottleneck").
2) отправление вертексов на gpu

В первом пункте все понятно, т.е. учитывая, что каждый кадр делаются десятки тысяч перемножений, сложений и пр. логично такое писать вручную, а не надеятся на компилятор, например так:
https://dcemulation.org/phpBB/viewtopic....4#p1054104

А вот со вторым пунктом хз что и как делать. Не знаю, возможно ли такое, но нужно как-то не по одному в цикле отправлять каждый вертекс, а пачками за меньшее число раз.
Т.н. "direct render" т.е. макросы для использования "store queue"ов (я хз, че это такое, но не суть), вроде как и отсылают по 32 байта за раз т.е. вертекс целиком (pvr_prim(), предположительно, отправляет по одной переменной т.е. по 4 байта, поэтому и медленней). Может быть для этого и нужно использование DMA, но нигде нет примеров использования и сравнений.

Еще один из примеров:
https://dcemulation.org/phpBB/viewtopic....7#p1034137
но я не вникал, как оно работает.

Кроме трансформов нужно еще и делать "near_z clipping" т.е. "резать" треугольники, которые слишком близко к "камере". А это тоже лишние расчеты и проблемы с организацией кода (который нужно весь переделывать с учетом вышесказанных особенностей).

Короче говоря, ничего готового для пользования нет, и нужно делать все самому то, чем для сеги занимались профессионалы за деньги. Вот только мотивации для такого геройства недостаточно, ибо слишком нишево.
Вот, например, для мегадрайва есть SGDK, и как следствие, обилие новых игор последние несколько лет. Кос в этом плане даже близко не является аналогом sgdk для дримкаста. Когда я только начинал, то KGL мне казался этим самым аналогом, но разочарование было жестким, и у меня до сих пор бомбит (я реально надеялся заработать на этом всем, а тут такие подставы).
Наверняка это все было известно до меня, но хотя бы выговорился немного.

Я об этом и говорю, о вертексах и клиппинге в первую очередь, а так же там есть еще всякие sort list для вертексов и прочие штуки завязанные на DMA. Это как раз и не позволяет сделать все по взрослому.
Частично это вроде как реализовано в новом GL драйвере, который писал Фантом, но там есть еще куда расти да и не все там опять же есть и вообще хоршо оптимизировано.
Тот же DMA, на который все завязано, используется в KOS через одно место, отголоски реверс-инжиниринга так сказать. В ASIC есть готовые регистры для всех этих функций, где DMA обоих чипов подружены, но типа знание о них равняется тому что ты пользовался официальными доками. Вот кто мне объяснит чем отличается в этом случае G1 ATA драйвер Smile)) Вот он написан с использованием этих самых регистров в ASIC. Я в свою очередь их использовал еще в эмуляции CDDA для отсылки данных в звук память по DMA, там все очень удобно и просто, в отличии от того, что понаписано в KOS.
Store queue это процессорная штука, что-то между DMA и memcpy так сказать, для копирования во внешнюю память в общем без DMA, но при этом и не грузить проц лишними ожиданиями. Но их нужно грамотно использовать, чтобы получить их приемущество полноценно мне кажется.

(14.01.2020 15:21)111 писал(а):  
(14.01.2020 11:13)SWAT писал(а):  В лоб продавать конечно нельзя такое.
Но мне кажется если скрыть все копирайты в коде, которые слишком красноречиво говорят о том что это KATANA SDK и не говорить об этом на каждом углу, то не думаю что кто-то будет проверять это Smile
выше уже упоминал подобное. Проблема тут в другом - сектанты наверняка спалят т.е. 100% найдется "герой", который решит поковыряться в 1st_read.bin'е и громко разоблачить мерзкого пирата.
Хотя для одноразового срубания бабла (без выкладывания демо-версии) это может и сойти, наверное.

Но будет уже поздно, а правообладатели я сомневаюсь что будут наезжать Smile

(14.01.2020 15:21)111 писал(а):  
(14.01.2020 11:13)SWAT писал(а):  Помоему можно CDI собрать под 45000, так не делали лишь для экономии места мне кажется. Хотя я на 100% утверждать не могу, я точно не помню.
ну ты говорил, что это зависит от размера трека (т.е. "заполнителя" первой сессии?). Но если не помнишь, то ладно, не сильно это уже и нужно.

Ага. Только в случае с GDI там 2 трека.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 15.01.2020 в 09:36, отредактировал пользователь SWAT.)
15.01.2020 08:46
Вебсайт Найти все сообщения Цитировать это сообщение
 Сказали спасибо: fafadou , 111
Создать ответ 


Сообщения в этой теме
RE: Помощь новичку в программировании под дрим. - SWAT - 15.01.2020 08:46

Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Нужна помощь с DCWinCE serial windbg debugger Ivan Guber 10 12408 02.07.2022 19:08
Посл. сообщение: Ivan Guber
  Нужна помощь с VFS в kallistiOS TeMaToS 10 16538 17.06.2019 09:01
Посл. сообщение: SWAT
  помощь чайнику cybdyn 119 230436 11.06.2019 12:56
Посл. сообщение: SavitarSvit
Лампочка 50герц в 60,нужна помощь corn.korn 6 20115 15.03.2018 12:55
Посл. сообщение: SWAT
  Требуется помощь знатоков!-русификация и подгонка текста под перерисованный шрифт вадим 14 41741 05.01.2011 00:44
Посл. сообщение: вадим
  Нужна помощь по ассемблеру SH4 SunDragon 25 65694 29.05.2010 18:45
Посл. сообщение: Freedom
  Помогите новичку demon01 91 273742 20.03.2009 22:39
Посл. сообщение: Guest
  Открылся новый сайт по программингу на дрим SWAT 9 26157 25.09.2008 23:10
Посл. сообщение: Василий

Переход:


Пользователи просматривают эту тему: 2 Гость(ей)