mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
DSのマイク不具合タイトルリストに基づきスピーカー音量を小さくする処理を追加。(音量は暫定)
CDC_GoDsModeの前にCDC_Initを実行してパラメータを初期化するように変更(IIRなどのパラメータが汚れている可能性があるため) git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1881 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
47fb758e6a
commit
1fd070e985
@ -309,16 +309,19 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
||||
// I2S停止(MCLKは動作継続)
|
||||
reg_SND_SMX_CNT &= ~REG_SND_SMX_CNT_E_MASK;
|
||||
|
||||
// CODEC再初期化
|
||||
CDC_Init();
|
||||
|
||||
// CODEC-DSモードへの遷移
|
||||
if ( isNtrMode || th->s.exFlags.codec_mode == OS_CODECMODE_NITRO )
|
||||
{
|
||||
// (CODEC-DSモード)
|
||||
// マイク不具合DSタイトルは音量を絞る
|
||||
if ( *target == REBOOT_TARGET_DS_APP )
|
||||
{
|
||||
DS_CheckSpeakerVolume( dh );
|
||||
}
|
||||
CDC_GoDsMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 再初期化(CODEC-TWLモード)
|
||||
CDC_Init();
|
||||
}
|
||||
|
||||
// I2S再開
|
||||
// DSサウンド:DSP = 8:0
|
||||
|
||||
@ -26,12 +26,14 @@ TWL_PROC = ARM7
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SRCDIR = ../common/src
|
||||
SRCDIR = ./src \
|
||||
../common/src
|
||||
|
||||
INCDIR = ../common/include \
|
||||
$(ROOT)/build/libraries/mb/common/include \
|
||||
|
||||
SRCS = ds_wlpatch.c \
|
||||
ds_volume.c
|
||||
|
||||
TARGET_LIB = libds_sp$(TWL_LIBSUFFIX).a
|
||||
|
||||
|
||||
86
build/libraries_sysmenu/ds/ARM7/src/ds_volume.c
Normal file
86
build/libraries_sysmenu/ds/ARM7/src/ds_volume.c
Normal file
@ -0,0 +1,86 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlIPL
|
||||
File: ds_volume.c
|
||||
|
||||
Copyright 2008 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <twl.h>
|
||||
#include <twl/cdc.h>
|
||||
#include <sysmenu.h>
|
||||
#include <sysmenu/ds.h>
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
型宣言
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
typedef struct _DsSpecialSpeakerVolumeTitle
|
||||
{
|
||||
u8 gamecode[6]; // NULL終端兼アライメント用に2バイト大きいサイズを与える
|
||||
u8 rom_version;
|
||||
u8 volume;
|
||||
} DsSpecialSpeakerVolumeTitle;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
静的変数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
static DsSpecialSpeakerVolumeTitle sList[] ATTRIBUTE_ALIGN(32) =
|
||||
{
|
||||
{ "AKEJ", 0, 0x40 },
|
||||
{ "ABXJ", 0, 0x40 },
|
||||
{ "ALHJ", 0, 0x40 },
|
||||
{ "YFSJ", 0, 0x40 },
|
||||
{ "AY8E", 0, 0x40 },
|
||||
{ "YONJ", 0, 0x40 },
|
||||
{ "ACCE", 0, 0x40 },
|
||||
{ "AN9E", 0, 0x40 },
|
||||
{ "A5HE", 0, 0x40 },
|
||||
{ "A5IE", 0, 0x40 },
|
||||
{ "AMHE", 0, 0x40 },
|
||||
{ "A3TX", 0, 0x40 },
|
||||
{ "YCQE", 0, 0x40 },
|
||||
{ "YBOE", 0, 0x40 },
|
||||
{ "ADAE", 5, 0x40 },
|
||||
{ "APAE", 5, 0x40 },
|
||||
{ "ACZY", 0, 0x40 },
|
||||
{ "APYJ", 0, 0x40 },
|
||||
{ "AY7P", 0, 0x40 },
|
||||
{ "AWHP", 0, 0x40 },
|
||||
{ "AWHE", 0, 0x40 },
|
||||
{ "AOIJ", 0, 0x40 },
|
||||
{ "AOIJ", 1, 0x40 },
|
||||
{ "YO9J", 0, 0x40 },
|
||||
{ "YYKJ", 0, 0x40 }
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
グローバル関数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
void DS_CheckSpeakerVolume( void* romHeaderNTR )
|
||||
{
|
||||
ROM_Header* dh = romHeaderNTR;
|
||||
int i;
|
||||
int limit = sizeof(sList)/sizeof(sList[0]);
|
||||
for (i=0;i<limit;i++)
|
||||
{
|
||||
if (*(u32 *)sList[i].gamecode == *(u32 *)dh->s.game_code &&
|
||||
sList[i].rom_version == dh->s.rom_version)
|
||||
{
|
||||
CDC_WriteSpiRegisterEx( 1, REG_CDC1_SP_ANGVOL_L_ADDR, (u8)(CDC1_ANGVOL_E | sList[i].volume) );
|
||||
CDC_WriteSpiRegisterEx( 1, REG_CDC1_SP_ANGVOL_R_ADDR, (u8)(CDC1_ANGVOL_E | sList[i].volume) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -29,7 +29,7 @@ extern "C" {
|
||||
#define DS_WLPATCH_COPYCODE_SIZE (10*4)
|
||||
|
||||
void DS_InsertWLPatch( void* romHeaderNTR );
|
||||
|
||||
void DS_CheckSpeakerVolume( void* romHeaderNTR );
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user