DC-SWAT Forum

Полная версия: Quake 2 Dreamcast
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2
Смотрю я исходники второй Кваки для ПК и порта на Дрим . Дрим порт сделан на линукс версии ... А почему не на win32 ?
Потому что ее портировали с помощью KallistiOS, которая в свою очередь больше похожа на *nix системы.
2 вопроса .
Как включить звуки в исходниках http://dcquake.sourceforge.net/ ?
Насколько реально и по силам сделать порт , используя wince ?
И посмотрите что из этого можно портануть:
http://gsourcecode.narod.ru/gamesource.html
Зачем тебе WinCE?
Звук отключен потому что памяти не хватает.
Я думаю на WinCE проще чем на других системах портировать.
Цитата:Звук отключен потому что памяти не хватает.
Как не хватает ? На Квейк 3 хватает , а на вторую часть нет , быть не может .
Как его включить ?

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

Код:
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
Все что написано ниже всего лишь предположение, судя по названию файлов.

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

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

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

Говорит само за себя. Видимо музыка должна была быть в cdda треках, а это просто заглушки.
Код:
fake_cdda.c
fake_cdda.h
fake_cdda2.c
Василий, брось ты это дело. Прочитай лучше про цикл сообщений, в Виндовс...
Очень хорошая статья:
http://www.directxtutorial.com/Tutorial9...dx9A4.aspx
Рио , я только начал .)

Музыка , да , в 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;
}

В этом причина отстутствия звуков ?
Ну ессно, тут функции заглушки, они ничего не делают.
Как я понимаю , там драйвер звука должен быть ? Возникает вопрос - где его взять , есть ли он в kos ?
В KOS есть, только вот там нужен спецально адаптированный под кваку, это и называется портированием.
Цитата:В KOS есть
Где он расположен ?
kos/kernel/arch/dreamcast/sound

Тебе его не брать нада, а сделать интерфейс для общения движка кваки с дравером KOS.
От и всё. И приплыли. За что, как говорится, боролся, на то и напоролся.
Не ну конечно можно и не делать интерфеса, а взять драйвер и изменить его под нужды кваки, как собсно в первой части было сделано. Но так делать не красиво.
А что за тип данных такой, qboolean?
Страниц: 1 2
URL ссылки