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は動作継続)
|
// I2S停止(MCLKは動作継続)
|
||||||
reg_SND_SMX_CNT &= ~REG_SND_SMX_CNT_E_MASK;
|
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 )
|
if ( isNtrMode || th->s.exFlags.codec_mode == OS_CODECMODE_NITRO )
|
||||||
{
|
{
|
||||||
// (CODEC-DSモード)
|
// マイク不具合DSタイトルは音量を絞る
|
||||||
|
if ( *target == REBOOT_TARGET_DS_APP )
|
||||||
|
{
|
||||||
|
DS_CheckSpeakerVolume( dh );
|
||||||
|
}
|
||||||
CDC_GoDsMode();
|
CDC_GoDsMode();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// 再初期化(CODEC-TWLモード)
|
|
||||||
CDC_Init();
|
|
||||||
}
|
|
||||||
|
|
||||||
// I2S再開
|
// I2S再開
|
||||||
// DSサウンド:DSP = 8:0
|
// DSサウンド:DSP = 8:0
|
||||||
|
|||||||
@ -26,12 +26,14 @@ TWL_PROC = ARM7
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
SRCDIR = ../common/src
|
SRCDIR = ./src \
|
||||||
|
../common/src
|
||||||
|
|
||||||
INCDIR = ../common/include \
|
INCDIR = ../common/include \
|
||||||
$(ROOT)/build/libraries/mb/common/include \
|
$(ROOT)/build/libraries/mb/common/include \
|
||||||
|
|
||||||
SRCS = ds_wlpatch.c \
|
SRCS = ds_wlpatch.c \
|
||||||
|
ds_volume.c
|
||||||
|
|
||||||
TARGET_LIB = libds_sp$(TWL_LIBSUFFIX).a
|
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)
|
#define DS_WLPATCH_COPYCODE_SIZE (10*4)
|
||||||
|
|
||||||
void DS_InsertWLPatch( void* romHeaderNTR );
|
void DS_InsertWLPatch( void* romHeaderNTR );
|
||||||
|
void DS_CheckSpeakerVolume( void* romHeaderNTR );
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user