uhh very early start point

This commit is contained in:
DG 2022-11-03 03:50:55 -04:00
parent 65b1470260
commit 5fe79ba3ae
76 changed files with 202 additions and 148 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,25 +1,3 @@
#0090
<MNA<CMU0008<FAI0000<END
#0091
<MNA<CMU0008<FAI0001<END
#0092
<MNA<CMU0008<FAI0002<END
#0093
<MNA<CMU0008<FAI0003<END
#0094
<MNA<CMU0008<FAI0004<END
#0100
<PRI<CNP0100:0000:0000
<SOU0011<FAO0001
<TRA0012:0091:0037:0011
#0200
<KEY<SKJ0005:0091<PRI<CMU0000<MSG
From somewhere, a transmission...<NOD<CLO<FL+0430<TRA0014:0500:0002:0000
#1000
<END
<FAI0000<CMU0004<END

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
S`b``=:lvqy``0`ls}…```dlu~t

Binary file not shown.

View File

@ -388,16 +388,7 @@ static int ModeTitle(void)
char_type = 4;
// Set music to character's specific music
if (char_type == 1)
ChangeMusic(MUS_RUNNING_HELL);
else if (char_type == 2)
ChangeMusic(MUS_TOROKOS_THEME);
else if (char_type == 3)
ChangeMusic(MUS_WHITE);
else if (char_type == 4)
ChangeMusic(MUS_SAFETY);
else
ChangeMusic(MUS_CAVE_STORY);
ChangeMusic(MUS_CURLY);
// Reset cliprect, flags, and give the player the Nikumaru counter
grcGame.left = 0;

View File

@ -99,6 +99,59 @@ typedef struct OrgData
AudioBackend_Sound *lpORGANBUFFER[8][8][2] = {NULL};
const char *dram_name[] = {
"data/Dram/Bass01.wav",
"data/Dram/Bass02.wav",
"data/Dram/Snare01.wav",
"data/Dram/Snare02.wav",
"data/Dram/Tom01.wav",
"data/Dram/HiClose.wav",
"data/Dram/HiOpen.wav",
"data/Dram/Crash.wav",
"data/Dram/Per01.wav",
"data/Dram/Per02.wav",
"data/Dram/Bass03.wav",
"data/Dram/Tom02.wav",
"data/Dram/Bass04.wav", //新規追加
"data/Dram/Bass05.wav",
"data/Dram/Snare03.wav",
"data/Dram/Snare04.wav",
"data/Dram/HiClose02.wav",
"data/Dram/HiOpen02.wav",
"data/Dram/HiClose03.wav",
"data/Dram/HiOpen03.wav",
"data/Dram/Crash02.wav",
"data/Dram/RevSym01.wav",
"data/Dram/Ride01.wav",
"data/Dram/Tom03.wav",
"data/Dram/Tom04.wav",
"data/Dram/OrcDrm01.wav",
"data/Dram/Bell.wav",
"data/Dram/Cat.wav" ,
"data/Dram/Bass06.wav", //さらに追加
"data/Dram/Bass07.wav",
"data/Dram/Snare05.wav",
"data/Dram/Snare06.wav",
"data/Dram/Snare07.wav",
"data/Dram/Tom05.wav",
"data/Dram/HiOpen04.wav",
"data/Dram/HiClose04.wav",
"data/Dram/Clap01.wav",
"data/Dram/Pesi01.wav",
"data/Dram/Quick01.wav",
"data/Dram/Bass08.wav" , //懲りずに追加 // 2011.10.17
"data/Dram/Snare08.wav",
"data/Dram/HiClose05.wav",
};
/////////////////////////////////////////////
//■オルガーニャ■■■■■■■■■■■■/////// (Organya)
/////////////////////
@ -349,7 +402,7 @@ void ChangeDramFrequency(unsigned char key, signed char track)
if (!audio_backend_initialised)
return;
AudioBackend_SetSoundFrequency(lpSECONDARYBUFFER[150 + track], key * 800 + 100);
AudioBackend_SetSoundFrequency(lpDRAMBUFFER[track], key * 800 + 100);
}
void ChangeDramPan(unsigned char pan, signed char track)
@ -357,7 +410,7 @@ void ChangeDramPan(unsigned char pan, signed char track)
if (!audio_backend_initialised)
return;
AudioBackend_SetSoundPan(lpSECONDARYBUFFER[150 + track], (pan_tbl[pan] - 0x100) * 10);
AudioBackend_SetSoundPan(lpDRAMBUFFER[track], (pan_tbl[pan] - 0x100) * 10);
}
void ChangeDramVolume(long volume, signed char track)
@ -365,7 +418,7 @@ void ChangeDramVolume(long volume, signed char track)
if (!audio_backend_initialised)
return;
AudioBackend_SetSoundVolume(lpSECONDARYBUFFER[150 + track], (volume - 0xFF) * 8);
AudioBackend_SetSoundVolume(lpDRAMBUFFER[track], (volume - 0xFF) * 8);
}
// サウンドの再生 (Play sound)
@ -374,20 +427,20 @@ void PlayDramObject(unsigned char key, int mode, signed char track)
if (!audio_backend_initialised)
return;
if (lpSECONDARYBUFFER[150 + track] != NULL)
if (lpDRAMBUFFER[track] != NULL)
{
switch (mode)
{
case 0: // 停止 (Stop)
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
AudioBackend_RewindSound(lpSECONDARYBUFFER[150 + track]);
AudioBackend_StopSound(lpDRAMBUFFER[track]);
AudioBackend_RewindSound(lpDRAMBUFFER[track]);
break;
case 1: // 再生 (Playback)
AudioBackend_StopSound(lpSECONDARYBUFFER[150 + track]);
AudioBackend_RewindSound(lpSECONDARYBUFFER[150 + track]);
AudioBackend_StopSound(lpDRAMBUFFER[track]);
AudioBackend_RewindSound(lpDRAMBUFFER[track]);
ChangeDramFrequency(key, track); // 周波数を設定して (Set the frequency)
AudioBackend_PlaySound(lpSECONDARYBUFFER[150 + track], FALSE);
AudioBackend_PlaySound(lpDRAMBUFFER[track], FALSE);
break;
case 2: // 歩かせ停止 (Stop playback)
@ -525,6 +578,8 @@ BOOL OrgData::NoteAlloc(unsigned short alloc)
for (j = 0; j < MAXMELODY; j++)
MakeOrganyaWave(j, info.tdata[j].wave_no, info.tdata[j].pipi);
for(j = 0; j < MAXDRAM; j++)
LoadDramObject("data/Dram/Bass01.wav",j);
track = 0; // 今はここに書いておく (Write here now)
@ -677,7 +732,7 @@ BOOL OrgData::InitMusicData(const char *path)
for (j = MAXMELODY; j < MAXTRACK; j++)
{
i = info.tdata[j].wave_no;
//InitDramObject(dram_name[i], j - MAXMELODY);
LoadDramObject(dram_name[i], j - MAXMELODY);
}
SetPlayPointer(0); // 頭出し (Cue)
@ -752,23 +807,15 @@ void OrgData::PlayData(void)
}
// ドラムの再生 (Drum playback)
for (i = MAXMELODY; i < MAXTRACK; i++)
{
if (np[i] != NULL && PlayPos == np[i]->x) // 音が来た。 (The sound has come.)
{
if (np[i]->y != KEYDUMMY && !g_mute[i]) // ならす (Tame)
PlayDramObject(np[i]->y, 1, i - MAXMELODY);
if (np[i]->pan != PANDUMMY)
ChangeDramPan(np[i]->pan, i - MAXMELODY);
if (np[i]->volume != VOLDUMMY)
TrackVol[i] = np[i]->volume;
np[i] = np[i]->to; // 次の音符を指す (Points to the next note)
for(i = MAXMELODY; i < MAXTRACK; i++){
if(np[i] != NULL && PlayPos == np[i]->x ){//音が来た。
if(np[i]->y != KEYDUMMY){//ならす
if(mute[i] == 0)PlayDramObject(np[i]->y,1,i-MAXMELODY);
}
if(np[i]->pan != PANDUMMY)ChangeDramPan(np[i]->pan,i-MAXMELODY);
if(np[i]->volume != VOLDUMMY)ChangeDramVolume(np[i]->volume,i-MAXMELODY);
np[i] = np[i]->to;//次の音符を指す
}
if (np[i])
ChangeDramVolume(TrackVol[i] * Volume / 0x7F, i - MAXMELODY);
}
// Looping
@ -903,4 +950,4 @@ void EndOrganya(void)
PlayOrganObject(0, 0, i, 0);
ReleaseOrganyaObject(i);
}
}
}

View File

@ -310,7 +310,7 @@ BOOL InitializeGame(void)
ClearPermitStage();
StartMapping();
InitFlags();
if (!TransferStage(13, 200, 10, 8))
if (!TransferStage(2, 200, 10, 8))
{
#ifdef JAPANESE
Backend_ShowMessageBox("エラー", "ステージの読み込みに失敗");

View File

@ -10,6 +10,8 @@ not using these since they're just macros that evaluate to the portable
equivalents.
*/
// recsbr
#include "Sound.h"
#include <stddef.h>
@ -30,6 +32,7 @@ equivalents.
BOOL audio_backend_initialised;
AudioBackend_Sound *lpSECONDARYBUFFER[SE_MAX];
AudioBackend_Sound *lpDRAMBUFFER[8];
// DirectSoundの開始 (Starting DirectSound)
BOOL InitDirectSound(void)
@ -37,6 +40,7 @@ BOOL InitDirectSound(void)
int i;
audio_backend_initialised = AudioBackend_Init();
if (!audio_backend_initialised)
{
@ -80,7 +84,7 @@ void EndDirectSound(void)
// .wav files. You can check the prototype OrgView EXEs for examples of those.
// サウンドの設定 (Sound settings)
BOOL InitSoundObject(const char *resname, int no)
BOOL InitSoundObject(const char *file_name, int no)
{
const unsigned char *resource_pointer; // リソースのアドレス (Resource address)
@ -88,7 +92,7 @@ BOOL InitSoundObject(const char *resname, int no)
return TRUE;
// リソースの検索 (Search for resources)
resource_pointer = FindResource(resname, "WAVE", NULL);
resource_pointer = FindResource(file_name, "WAVE", NULL);
if (resource_pointer == NULL)
return FALSE;
@ -253,7 +257,107 @@ void PlaySoundObject(int no, SoundMode mode)
}
#endif
}
BOOL LoadDramObject(const char *file_name, int no)
{
std::string path;
//unsigned long i;
unsigned long file_size = 0;
char check_box[58];
FILE *fp;
path = gModulePath + '/' + file_name;
if (!audio_backend_initialised)
return TRUE;
if ((fp = fopen(path.c_str(), "rb")) == NULL)
return FALSE;
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
rewind(fp);
// Let's not throttle disk I/O, shall we...
//for (i = 0; i < 58; i++)
// fread(&check_box[i], sizeof(char), 1, fp); // Holy hell, this is inefficient
fread(check_box, 1, 58, fp);
#ifdef FIX_BUGS
// The original code forgets to close 'fp'
if (check_box[0] != 'R' || check_box[1] != 'I' || check_box[2] != 'F' || check_box[3] != 'F')
{
fclose(fp);
return FALSE;
}
#else
if (check_box[0] != 'R')
return FALSE;
if (check_box[1] != 'I')
return FALSE;
if (check_box[2] != 'F')
return FALSE;
if (check_box[3] != 'F')
return FALSE;
#endif
unsigned char *wp;
wp = (unsigned char*)malloc(file_size); // ファイルのワークスペースを作る (Create a file workspace)
#ifdef FIX_BUGS
if (wp == NULL)
{
fclose(fp);
return FALSE;
}
#endif
fseek(fp, 0, SEEK_SET);
// Bloody hell, Pixel, come on...
//for (i = 0; i < file_size; i++)
// fread((BYTE*)wp+i, sizeof(char), 1, fp); // Pixel, stahp
fread(wp, 1, file_size, fp);
fclose(fp);
// Get sound properties, and check if it's valid
unsigned long buffer_size = wp[0x36] | (wp[0x37] << 8) | (wp[0x38] << 16) | (wp[0x39] << 24);
unsigned short format = wp[0x14] | (wp[0x15] << 8);
unsigned short channels = wp[0x16] | (wp[0x17] << 8);
unsigned long sample_rate = wp[0x18] | (wp[0x19] << 8) | (wp[0x1A] << 16) | (wp[0x1B] << 24);
unsigned short bits_per_sample = wp[0x22] | (wp[0x23] << 8);
if (format != 1) // 1 is WAVE_FORMAT_PCM
{
free(wp);
return FALSE;
}
if (channels != 1) // The mixer only supports mono right now
{
free(wp);
return FALSE;
}
if (bits_per_sample != 8) // The mixer only supports 8-bit unsigned samples
{
free(wp);
return FALSE;
}
// セカンダリバッファの生成 (Create secondary buffer)
lpDRAMBUFFER[no] = AudioBackend_CreateSound(sample_rate, wp + 0x3A, buffer_size);
if (lpDRAMBUFFER[no] == NULL)
{
free(wp);
return FALSE;
}
free(wp);
return TRUE;
}
void ChangeSoundFrequency(int no, unsigned long rate) // 100がMIN9999がMAXで2195?がノーマル (100 is MIN, 9999 is MAX, and 2195 is normal)
{
if (!audio_backend_initialised)
@ -379,4 +483,4 @@ int MakePixToneObject(const PIXTONEPARAMETER *ptp, int ptp_num, int no)
return -1;
return sample_count;
}
}

View File

@ -35,11 +35,13 @@ enum SoundMode
extern BOOL audio_backend_initialised;
extern AudioBackend_Sound *lpSECONDARYBUFFER[SE_MAX];
extern AudioBackend_Sound *lpDRAMBUFFER[8];
BOOL InitDirectSound(void);
void EndDirectSound(void);
BOOL InitSoundObject(const char *resname, int no);
BOOL LoadSoundObject(const char *file_name, int no);
BOOL LoadDramObject(const char *file_name, int no);
void PlaySoundObject(int no, SoundMode mode);
void ChangeSoundFrequency(int no, unsigned long rate);
void ChangeSoundVolume(int no, long volume);

View File

@ -310,49 +310,14 @@ static const struct
const char *loop_file_path;
int type;
bool loop; // Only applicable to non-Organya songs
} music_table[42] = {
} music_table[7] = {
{"Resource/ORG/XXXX.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Wanpaku.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Anzen.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Gameover.org", NULL, MUSIC_TYPE_ORGANYA, false},
{"Resource/ORG/Gravity.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Weed.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/MDown2.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/FireEye.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Vivi.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Mura.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Fanfale1.org", NULL, MUSIC_TYPE_ORGANYA, false},
{"Resource/ORG/Ginsuke.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Cemetery.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Plant.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Kodou.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Fanfale3.org", NULL, MUSIC_TYPE_ORGANYA, false},
{"Resource/ORG/Fanfale2.org", NULL, MUSIC_TYPE_ORGANYA, false},
{"Resource/ORG/Dr.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Escape.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Jenka.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Maze.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Access.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/ironH.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Grand.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Curly.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Oside.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Requiem.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Wanpak2.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/quiet.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/LastCave.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Balcony.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/LastBtl.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/LastBtl3.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Ending.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Zonbie.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/BreakDown.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Hell.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Jenka2.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Marine.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Ballos.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/Toroko.org", NULL, MUSIC_TYPE_ORGANYA, false},
{"Resource/ORG/White.org", NULL, MUSIC_TYPE_ORGANYA, true}
{"Resource/ORG/CURLY.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/OPPOSITN.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/DOUKUTSU.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/CAVE.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/WAMBOM.org", NULL, MUSIC_TYPE_ORGANYA, true},
{"Resource/ORG/MAGUMAN.org", NULL, MUSIC_TYPE_ORGANYA, true},
};
void ChangeMusic(MusicID no)
@ -443,4 +408,4 @@ void ReCallMusic(void)
}
gMusicNo = gOldNo;
}
}

View File

@ -5,47 +5,13 @@
typedef enum MusicID
{
MUS_SILENCE = 0x0,
MUS_MISCHIEVOUS_ROBOT = 0x1,
MUS_SAFETY = 0x2,
MUS_GAME_OVER = 0x3,
MUS_GRAVITY = 0x4,
MUS_ON_TO_GRASSTOWN = 0x5,
MUS_MELTDOWN2 = 0x6,
MUS_EYES_OF_FLAME = 0x7,
MUS_GESTATION = 0x8,
MUS_MIMIGA_TOWN = 0x9,
MUS_GOT_ITEM = 0xA,
MUS_BALROGS_THEME = 0xB,
MUS_CEMETERY = 0xC,
MUS_PLANT = 0xD,
MUS_PULSE = 0xE,
MUS_VICTORY = 0xF,
MUS_GET_HEART_TANK = 0x10,
MUS_TYRANT = 0x11,
MUS_RUN = 0x12,
MUS_JENKA1 = 0x13,
MUS_LABYRINTH_FIGHT = 0x14,
MUS_ACCESS = 0x15,
MUS_OPPRESSION = 0x16,
MUS_GEOTHERMAL = 0x17,
MUS_CAVE_STORY = 0x18,
MUS_MOONSONG = 0x19,
MUS_HEROS_END = 0x1A,
MUS_SCORCHING_BACK = 0x1B,
MUS_QUIET = 0x1C,
MUS_LAST_CAVE = 0x1D,
MUS_BALCONY = 0x1E,
MUS_CHARGE = 0x1F,
MUS_LAST_BATTLE = 0x20,
MUS_THE_WAY_BACK_HOME = 0x21,
MUS_ZOMBIE = 0x22,
MUS_BREAK_DOWN = 0x23,
MUS_RUNNING_HELL = 0x24,
MUS_JENKA2 = 0x25,
MUS_LIVING_WATERWAY = 0x26,
MUS_SEAL_CHAMBER = 0x27,
MUS_TOROKOS_THEME = 0x28,
MUS_WHITE = 0x29
MUS_CURLY = 0x1,
MUS_OPPOSITION = 0x2,
MUS_DOUKUTSU = 0x3,
MUS_CAVE = 0x4,
MUS_WAMBOM = 0x5,
MUS_MAGUMAN = 0x6,
} MusicID;
typedef struct STAGE_TABLE