DC-SWAT Forum
Quake 2 Dreamcast - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Programming (/forum-8.html)
+--- Тема: Quake 2 Dreamcast (/thread-1356.html)

Страниц: 1 2


Quake 2 Dreamcast - Василий - 20.06.2010 01:28

Смотрю я исходники второй Кваки для ПК и порта на Дрим . Дрим порт сделан на линукс версии ... А почему не на win32 ?


Ответ: Quake 2 Dreamcast - SWAT - 22.06.2010 05:52

Потому что ее портировали с помощью KallistiOS, которая в свою очередь больше похожа на *nix системы.


Ответ: Quake 2 Dreamcast - Василий - 24.06.2010 01:40

2 вопроса .
Как включить звуки в исходниках http://dcquake.sourceforge.net/ ?
Насколько реально и по силам сделать порт , используя wince ?


Ответ: Quake 2 Dreamcast - Lin - 24.06.2010 04:34

И посмотрите что из этого можно портануть:
http://gsourcecode.narod.ru/gamesource.html


Ответ: Quake 2 Dreamcast - SWAT - 24.06.2010 13:40

Зачем тебе WinCE?
Звук отключен потому что памяти не хватает.


Ответ: Quake 2 Dreamcast - Lin - 24.06.2010 14:47

Я думаю на WinCE проще чем на других системах портировать.


Ответ: Quake 2 Dreamcast - Василий - 24.06.2010 20:58

Цитата:Звук отключен потому что памяти не хватает.
Как не хватает ? На Квейк 3 хватает , а на вторую часть нет , быть не может .
Как его включить ?

Цитата:Зачем тебе WinCE?
Мне он понравился , в отличии от других ...


Ответ: Quake 2 Dreamcast - SWAT - 25.06.2010 12:47

Вот так не хватает. Ресурсы дримовского Квейк 3 все в форматах, родных самому дриму. А Q2 порт имеет стандартные форматы ресурсов, которые требуют больше памяти.
Незнаю как включить, нужно рыть исходники.


Ответ: Quake 2 Dreamcast - Василий - 25.06.2010 13:47

Ну давай посмотрим . Вот список файлов исходников :
Где звуки находятся или должны быть ?

Код:
C:\dcquake2-2002-08-10\quake2-3.21\

dc\

C:\dcquake2-2002-08-10\quake2-3.21\dc\

dc\
gl_dc.c
in_dc.c
Makefile
net_udp.c
q_shdc.c
qgl_dc.c
rw_dc.c
snd_dc.c
snd_mix.c
snddma_dc.c
symbols.c
sys_dc.c
vid_menu.c
vid_so.c
vmuheader.c
vmuheader.h

C:\dcquake2-2002-08-10\quake2-3.21\dc\dc\

aica.c
aica.h
dcmenu.c
dlfcn.h
elf.h
elfload.c
fake_cdda.c
fake_cdda.h
fake_cdda2.c
fs_mem.c
gensymtab.pl
malloc.c
malloc.h
netdb.c
netdb.h
README
startup.o
syscalls.c



Ответ: Quake 2 Dreamcast - SWAT - 26.06.2010 10:19

Все что написано ниже всего лишь предположение, судя по названию файлов.

Это должно отвечать за звуки. Верней это драйвер по сути, который управляет прогой для звукового процессора.
Код:
snd_dc.c
snd_mix.c

Этот отвечает за трансферинг данных между процессорами по DMA.
Код:
snddma_dc.c

Это прога для звукового процессора.
Код:
aica.c
aica.h

Говорит само за себя. Видимо музыка должна была быть в cdda треках, а это просто заглушки.
Код:
fake_cdda.c
fake_cdda.h
fake_cdda2.c



Ответ: Quake 2 Dreamcast - Rio - 26.06.2010 18:11

Василий, брось ты это дело. Прочитай лучше про цикл сообщений, в Виндовс...
Очень хорошая статья:
http://www.directxtutorial.com/Tutorial9/A-Win32/dx9A4.aspx


Ответ: Quake 2 Dreamcast - Василий - 26.06.2010 22:16

Рио , я только начал .)

Музыка , да , в cdda , а звуки находяться в PAK файле , где и всё остальное .
Я скачал исходники порта Беро первой части , чтобы сравнить их .
Если смотреть логически , то пролема в файле snd_dc.c , остальные файлы по размеру приблизительно совпадают .
Во второй части там только :
Код:
*/

// snddma_null.c
// all other sound mixing is portable

#include "../client/client.h"
#include "../client/snd_loc.h"

qboolean SNDDMA_Init(void)
{
    return false;
}

int    SNDDMA_GetDMAPos(void)
{
    return 0;
}

void SNDDMA_Shutdown(void)
{
}

void SNDDMA_BeginPainting (void)
{
}

void SNDDMA_Submit(void)
{
}

А вот кусок из содержимого такого же файла первой Кваки :

Код:
*/
// snd_dma.c -- main control for any streaming sound output device

#include "quakedef.h"

#ifdef _WIN32
#include "winquake.h"
#endif

void S_Play(void);
void S_PlayVol(void);
void S_SoundList(void);
void S_Update_();
void S_StopAllSounds(qboolean clear);
void S_StopAllSoundsC(void);

// =======================================================================
// Internal sound data & structures
// =======================================================================

#undef    MAX_CHANNELS
#define    MAX_CHANNELS    64    /* for aica */
channel_t   channels[MAX_CHANNELS];
int            total_channels;

int                snd_blocked = 0;
static qboolean    snd_ambient = 1;
qboolean        snd_initialized = false;

// pointer should go away
volatile dma_t  *shm = 0;
volatile dma_t sn;

vec3_t        listener_origin;
vec3_t        listener_forward;
vec3_t        listener_right;
vec3_t        listener_up;
vec_t        sound_nominal_clip_dist=1000.0;

int            soundtime;        // sample PAIRS
int           paintedtime;     // sample PAIRS


#define    MAX_SFX        512
sfx_t        *known_sfx;        // hunk allocated [MAX_SFX]
int            num_sfx;

sfx_t        *ambient_sfx[NUM_AMBIENTS];

int         desired_speed = 11025;
int         desired_bits = 16;

int sound_started=0;

cvar_t bgmvolume = {"bgmvolume", "1", true};
cvar_t volume = {"volume", "0.7", true};

cvar_t nosound = {"nosound", "0"};
cvar_t precache = {"precache", "1"};
cvar_t loadas8bit = {"loadas8bit", "0"};
cvar_t bgmbuffer = {"bgmbuffer", "4096"};
cvar_t ambient_level = {"ambient_level", "0.3"};
cvar_t ambient_fade = {"ambient_fade", "100"};
cvar_t snd_noextraupdate = {"snd_noextraupdate", "0"};
cvar_t snd_show = {"snd_show", "0"};
cvar_t _snd_mixahead = {"_snd_mixahead", "0.1", true};


// ====================================================================
// User-setable variables
// ====================================================================


//
// Fake dma is a synchronous faking of the DMA progress used for
// isolating performance in the renderer.  The fakedma_updates is
// number of times S_Update() is called per second.
//

#define    fakedma 0
int fakedma_updates = 15;


void S_AmbientOff (void)
{
    snd_ambient = false;
}

В этом причина отстутствия звуков ?


Ответ: Quake 2 Dreamcast - SWAT - 27.06.2010 09:47

Ну ессно, тут функции заглушки, они ничего не делают.


Ответ: Quake 2 Dreamcast - Василий - 27.06.2010 23:30

Как я понимаю , там драйвер звука должен быть ? Возникает вопрос - где его взять , есть ли он в kos ?


Ответ: Quake 2 Dreamcast - SWAT - 28.06.2010 05:57

В KOS есть, только вот там нужен спецально адаптированный под кваку, это и называется портированием.


Ответ: Quake 2 Dreamcast - Василий - 29.06.2010 21:56

Цитата:В KOS есть
Где он расположен ?


Ответ: Quake 2 Dreamcast - SWAT - 30.06.2010 17:21

kos/kernel/arch/dreamcast/sound

Тебе его не брать нада, а сделать интерфейс для общения движка кваки с дравером KOS.


Ответ: Quake 2 Dreamcast - Rio - 01.07.2010 05:00

От и всё. И приплыли. За что, как говорится, боролся, на то и напоролся.


Ответ: Quake 2 Dreamcast - SWAT - 01.07.2010 07:56

Не ну конечно можно и не делать интерфеса, а взять драйвер и изменить его под нужды кваки, как собсно в первой части было сделано. Но так делать не красиво.


Ответ: Quake 2 Dreamcast - Rio - 11.07.2010 23:41

А что за тип данных такой, qboolean?