Skip to content

added individual audio channels volume core options (0ldsk00l/nestopia#335) #15

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
Oct 8, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions libretro/libretro.cpp
Original file line number Diff line number Diff line change
@@ -953,6 +953,82 @@ static void check_variables(void)
retro_get_system_av_info(&av_info);
environ_cb(RETRO_ENVIRONMENT_SET_GEOMETRY, &av_info);

var.key = "nestopia_audio_vol_sq1";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_SQUARE1, atoi(var.value));
}

var.key = "nestopia_audio_vol_sq2";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_SQUARE2, atoi(var.value));
}

var.key = "nestopia_audio_vol_tri";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_TRIANGLE, atoi(var.value));
}

var.key = "nestopia_audio_vol_noise";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_NOISE, atoi(var.value));
}

var.key = "nestopia_audio_vol_dpcm";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_DPCM, atoi(var.value));
}

var.key = "nestopia_audio_vol_fds";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_FDS, atoi(var.value));
}

var.key = "nestopia_audio_vol_mmc5";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_MMC5, atoi(var.value));
}

var.key = "nestopia_audio_vol_vrc6";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_VRC6, atoi(var.value));
}

var.key = "nestopia_audio_vol_vrc7";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_VRC7, atoi(var.value));
}

var.key = "nestopia_audio_vol_n163";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_N163, atoi(var.value));
}

var.key = "nestopia_audio_vol_s5B";

if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
{
sound.SetVolume(Api::Sound::CHANNEL_S5B, atoi(var.value));
}
}

void retro_run(void)
242 changes: 242 additions & 0 deletions libretro/libretro_core_options.h
Original file line number Diff line number Diff line change
@@ -229,6 +229,248 @@ struct retro_core_option_definition option_defs_us[] = {
},
"2"
},
{
"nestopia_audio_vol_sq1",
"Square 1 Channel Volume %",
"Modify Square 1 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_sq2",
"Square 2 Channel Volume %",
"Modify Square 2 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_tri",
"Triangle Channel Volume %",
"Modify Triangle Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_noise",
"Noise Channel Volume %",
"Modify Noise Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_dpcm",
"DPCM Channel Volume %",
"Modify DPCM Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_fds",
"FDS Channel Volume %",
"Modify FDS Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_mmc5",
"MMC5 Channel Volume %",
"Modify MMC5 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_vrc6",
"VRC6 Channel Volume %",
"Modify VRC6 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_vrc7",
"VRC7 Channel Volume %",
"Modify VRC7 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_n163",
"N163 Channel Volume %",
"Modify N163 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{
"nestopia_audio_vol_s5B",
"S5B Channel Volume %",
"Modify N163 Channel Volume %.",
{
{ "0", NULL },
{ "10", NULL },
{ "20", NULL },
{ "30", NULL },
{ "40", NULL },
{ "50", NULL },
{ "60", NULL },
{ "70", NULL },
{ "80", NULL },
{ "85", NULL },
{ "90", NULL },
{ "95", NULL },
{ "100", NULL },
{ NULL, NULL },
},
"100"
},
{ NULL, NULL, NULL, {{0}}, NULL },
};