DC-SWAT Forum
Портирование на dreamcast - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Programming (/forum-8.html)
+--- Тема: Портирование на dreamcast (/thread-1506.html)

Страниц: 1 2 3


Портирование на dreamcast - slavikmalo - 26.02.2011 12:23

Привет собственно интерисует такой вопрос, как вобше портируют игры и программы с пк на dreamcast Wink


RE: портатирование на dreamcast - SWAT - 26.02.2011 15:09

Переписывается часть кода программы под спец функции SDK для DC.


RE: портатирование на dreamcast - slavikmalo - 26.02.2011 17:43

а можно ссылку на посты или инструкции про это? а то хочу этим занятся


RE: портатирование на dreamcast - SWAT - 26.02.2011 20:53

Для этого нет инструкций.
Ты должен хорошо знать Си, уметь пользоваться gcc компиляторами, хорошо знать SDK для DC, а так же неплохо разбираться в чужом коде.
Если ты этим владеешь, то уже без инструкций будешь знать что и как нужно сделать, а так же возможно ли это вообще.


RE: портатирование на dreamcast - slavikmalo - 26.02.2011 21:47

спасибо буду учить язык


RE: портатирование на dreamcast - SWAT - 28.02.2011 08:13

Много раз я слышал эти слова Smile)) буду учить...


RE: портатирование на dreamcast - slavikmalo - 28.02.2011 17:25

та пособия нормального не попадается, вечно че то вот если бы сказали такая то вот программа и в ней там пишешь, я та только один паскаль знаю и то слабо, пока только всякие уравнения ришаю, в школе только начал учить месяц назад
Вот еше хочу спросить, а можно ли DreamShell на компе запустить? а то я скачивал и он вроде не пускался


RE: портатирование на dreamcast - SWAT - 01.03.2011 07:19

Ты не можешь найти нормального пособия по Си? Не смеши.


RE: портатирование на dreamcast - slavikmalo - 01.03.2011 17:57

ну то что я нахожу полная чушь
просто я хочу эмулятор nintendo 64 нормальный, думаю и буду пытаться его портировать на dreamcast


RE: портатирование на dreamcast - SWAT - 01.03.2011 20:50

Купи книгу.


RE: портатирование на dreamcast - SWAT - 02.03.2011 07:11

Портирование эмулятора для новичка непосильная задача.


RE: портатирование на dreamcast - slavikmalo - 02.03.2011 09:50

а с чего сначала надо начать?


RE: портатирование на dreamcast - sc_maxim - 02.03.2011 12:21

Начни с изучения азов Си. Вот здесь http://www.helloworld.ru/texts/comp/lang/c/c6/index.htm руководство по Си. На название не смотри Smile, сам еще в классе 10-м начал изучать Си по нем, очень доступно объясняются основы этого языка.


RE: портатирование на dreamcast - slavikmalo - 03.03.2011 17:20

Спасибо. Попробывал. Да уж очень сложно все запомнить. Ну конечно не пойму как с помощью этого можно что на написать особенно эмулятор, сложно. В линуксе я и то лучше разбираюсь


RE: портатирование на dreamcast - SWAT - 03.03.2011 19:08

Странное какое то сравнение, ОС с языком программирования...


RE: портатирование на dreamcast - Rio - 05.03.2011 21:49

Да что ты понимаешь. Он линуксом берет и эмулятору новую пишет, таки да, ага-ага.

Сват, Katana была полноценной осью? Точнее чем это вообще было? Dev Kit'ом, набором библиотек\компиляторов, осью, обеспечивающей уровень абстракции для запуска написанных под ней игр на Дриме?


RE: портатирование на dreamcast - fdsa3000 - 06.03.2011 01:43

(05.03.2011 21:49)Rio писал(а):  Katana была полноценной осью? Точнее чем это вообще было? Dev Kit'ом, набором библиотек\компиляторов, осью, обеспечивающей уровень абстракции для запуска написанных под ней игр на Дриме?
Не могу понять ход мыслей последнего предложения.
А мануал посмотреть?
Цитата:1.1 Dreamcast Development Components
The Sega Dreamcast development system includes the following components:
  • ...
  • The Shinobi library is a C-language library that provides four categories of system-level functions: a set of system functions, a set of Юle-system functions, and a set of functions for obtaining data from peripherals. The
    system functions provided in the Shinobi library initialize the Dreamcast hardware and make the Shinobi
    library ready for use. The Юle-system functions are used to open, read, and close Юles; to provide directory
    access; and to access the Dreamcast GD-ROM drive. The libraryХs memory-management library contains
    functions for allocating and releasing memory, and its peripheral-interface functions are used to interface
    the Dreamcast console with various kinds of user-operated controls. For more details, see the Katana
    Shinobi Library SpeciЮcation.
  • The Kamui graphics API is a low-level library of graphics functions that directly manipulate the Dreamcast
    hardware. The Kamui library provides a wide range of low-level graphics-related functions, including
    functions for surface handling, setting scene parameters, setting vertex parameters, recording vertex data,
    and handling textures. All the functions provided in the Kamui API are listed and described in the Dreamcast Kamui SpeciЮcation.
  • The Ninja library is a higher-level of C-language library that is designed to provide all the basic graphics
    functionality needed to develop a title. The Ninja library contains matrix, collision, and mathematical
    functions; 2D and 3D graphics functions; light, scrolling, modeling, and view functions; sprite,
    special-effects, drawing, and special-effects functions; and more. To learn more about the Ninja library
    and how to use it, see the Dreamcast Ninja Guide and the Dreamcast Ninja Library SpeciЮcation.
  • ...
Убрал из списка про компиляторы, вму и другие программы.


RE: портатирование на dreamcast - SWAT - 06.03.2011 11:00

KATANA это SDK.
Т.е. это набор библиотек и инструментов, никакого ядра там нет. Мало того, там нет важных функций, без которых ОС в принципе не возможна, к примеру Thread/Mutex/Semaphore, все асинхронные действия там построены на отдельных прерываниях и DMA. А так же нет общей файловой системы для девайсов, там файловая система строго ориентирована на GD-ROM, а vmu и сеть сами по себе.


RE: портатирование на dreamcast - Rio - 13.03.2011 20:24

Спасибо, Сват, что такое SDK я знаю. Вопрос в другом. Зачем тогда в большинстве коммерческих приложений под Дримкаст (читай: играх), написанных, ясен пень, на катана (ведь на катана же?), в исходном коде содержится целая куча заголовков, ну например, производитель, или там, дата сборки, используемы кнопки на джойстике... Для кого это еще может быть нужно, как не для некоего "внешнего" окружения, т.е. О.С? Или приложение само себя выполняет и само свои заголовки анализирует?) Зачем ему это нужно. Процессор просто возьмет да и начнет выполнять инструкции одна за другой, из 1ST_READ.bin

Application (1ST_READ.bin)
________
HAL, API, operation system - that's where's the Katana (KOS) supposed to be
________
Hardware (Machine layer)

а так получается что:
somelib.lib harware_code.lib
\ /
\ /
Application
-----------------------------------------------------------
no layer below
Application performs directly by the processor

Первая схема, это как все должно работать при операционке, вторая - как оно почему-то получается.
Т.е. обычно приложение содержит некие вызовы, код которых хранится в операционке, и она либо подгружает нужные файлы с диска, либо лоадит их сразу все в оперативную память.
А так получается что весь нужный код включается путем раннего связывания еще на стадии компиляции, т.е. например идет в программе вызов DrawPixel(x, y, colorstruct&) и оно его код сразу и пихает в .bin. В итоге приложение выростает до немыслимых размеров.
Короче говоря мне интересно знать как все это работает.
В винде например код для всех вызовов (системных API) хранится в dll'ках, т.е. выполняется т.н. позднее связывания, когда нужный код грузится уже на этапе выполнения приложения.
При том есть как бы внешняя среда, portable executable, которая анализирует заголовки виндовского экзешника, и, собственно, создает страничный образ приложения в памяти и запускает его на выполнение.


RE: портатирование на dreamcast - SWAT - 14.03.2011 08:17

Здесь все не так, как делают в наше время на современных консолях.
Каждый application в данном случае является ядром системы, которое связывает в логическую цепочку набор функций из SDK.
Каждый application начинает работу буквально с нуля, т.е. с самых первый установок регистров и запуска первой функции - main.
При этом инициализация всего железа происходит заново тоже. У дрима ОС как бы в биосе, но это ОС назвать нельзя, это по сути та же программа написаная на SDK, но имеющая в себе еще функции для работы с GD-ROM, Flash, системный шрифт, и еще несколько типа выхода в меню (т.е. по сути запустить прогу из биоса), ребута, свапдиск и т.п.
На эти встроеные функции, биос при первой загрузке выставляет вектора в определенном участке памяти и все дальнейшие программы их используют. Вот это и есть микрокусок ОС, который язык не поворачивается назвать осью.