LCDフリッカ値収集ツールを追加

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@420 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-08-26 07:14:54 +00:00
parent b7572f3c86
commit f0be6ba2c0
11 changed files with 568 additions and 0 deletions

View File

@ -0,0 +1,209 @@
AccessControlDescriptor:
AffinityMask: 1
AutoGen: true
CoreVersion: 2
DescVersion: 2
Descriptor: |
AAj0DwAABAACAAAAAAAFGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAABBUFQ6VQAAAGZz
OlVTRVIAZ3NwOjpHcHVoaWQ6VVNFUmlyOnUAAAAAY2ZnOm5vcgBhYzppAAAA
AGNmZzppAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD+//vw/7//8ec/APIA8JH/APaR/1D/gf9Y/4H/cP+B/3j/gf8B
AQD/AAIA/v//////////////////////////////////////////////////
////////////////////////////////////////AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAI=
DisableDebug: false
EnableInterruptNumbers: []
EnableSystemCalls:
ArbitrateAddress: 34
Break: 60
CancelTimer: 28
ClearEvent: 25
ClearTimer: 29
CloseHandle: 35
ConnectToPort: 45
ControlMemory: 1
CreateAddressArbiter: 33
CreateEvent: 23
CreateMemoryBlock: 30
CreateMutex: 19
CreateSemaphore: 21
CreateThread: 8
CreateTimer: 26
DuplicateHandle: 39
ExitProcess: 3
ExitThread: 9
GetCurrentProcessorNumber: 17
GetHandleInfo: 41
GetProcessAffinityMask: 4
GetProcessId: 53
GetProcessIdOfThread: 54
GetProcessIdealProcessor: 6
GetProcessInfo: 43
GetResourceLimit: 56
GetResourceLimitCurrentValues: 58
GetResourceLimitLimitValues: 57
GetSystemInfo: 42
GetSystemTick: 40
GetThreadAffinityMask: 13
GetThreadContext: 59
GetThreadId: 55
GetThreadIdealProcessor: 15
GetThreadInfo: 44
GetThreadPriority: 11
MapMemoryBlock: 31
OutputDebugString: 61
QueryMemory: 2
ReleaseMutex: 20
ReleaseSemaphore: 22
SendSyncRequest1: 46
SendSyncRequest2: 47
SendSyncRequest3: 48
SendSyncRequest4: 49
SendSyncRequest: 50
SetProcessAffinityMask: 5
SetProcessIdealProcessor: 7
SetThreadAffinityMask: 14
SetThreadIdealProcessor: 16
SetThreadPriority: 12
SetTimer: 27
SignalEvent: 24
SleepThread: 10
UnmapMemoryBlock: 32
WaitSynchronization1: 36
WaitSynchronizationN: 37
FileSystemAccess:
- Debug
- DirectSdmc
HandleTableSize: 512
IORegisterMapping:
- 1ff50000-1ff57fff
- 1ff70000-1ff77fff
IdealProcessor: 1
MemoryMapping:
- 1f000000-1f5fffff:r
MemoryType: Application
Priority: 24
ProgramId: 0x000400000ff40800L
ServiceAccessControl:
- APT:U
- fs:USER
- gsp::Gpu
- hid:USER
- ir:u
- cfg:nor
- ac:i
- cfg:i
Signature: |
4VhUoq3Mqc0x5Fi8iQykB4z2aiW9sczKjqZlfvelO5wX2zDWcpiJXtQiyYqn
ILe2U2a+RtE5LM2mxDN9vrPZQnjvtX2TyDqMAPaNsYgMC3ew20S9rh8mfutg
wnuI6WSux6FV5iHBD+Do9FmtZdJzYu88WFvHMl7TahQCVf21doBwdl6F3DEC
Qlk4tviw20gLW9vwxCR8NAF59Ghk68qTtFdgGRJVYJNoeoSbqFIOBJFmkGrJ
FaxjJW/mUCHLBGdTQfyPc5aLhzN0R1lt9dk3doBHaFIAWM7GAkcmy8qdX7RS
0Z/r5c5GK8Jzx9XMoPagj4zKfGpyfZXhYd+EAWxOqw==
StorageId:
- 0
CommonHeaderKey:
D: |
D3Cu9+6bqGoorSogNmM3vPpz7qPJfFKv3JFEb5cxfaybaqhJSx4HWR5H4bbL
rFcz1v/6jSP1Xkp3td4gqrYiVL+Kkl+L+83/OCpL0OpkfVNsbCAZINyoEHrs
opkvMqtUJIpkEYs4LWkHB7VpiV7Haer8W3jsrqBR+/eYKHQyqVx72XuVCLhg
I1b+o0NiK67AVHEsfjpXDCeUZbIMlCut3hz4zOAlwq697Qu4Y8XUGGoTz8I+
PrREf4mlrqS29ENvdsMRI8OiTsEPpi751wYyDaJB2z/BL6EbKYdXR1hzzapw
aTwut6HQ40Mvs/yqt/AxQvUqFbEBzn8luxuc4bGcIQ==
DP: |
kzb6QB4TiVPBukUEXzQ1TxflVqGMbtKikKmjw2baidS0VYk+6UU7zYaXkhdp
OTJ5wbj1V89GVGXXnjDivMMEW8NHrhK9OV16xoZ6f+nHMl7sKpbrUzzHLmNc
WCqcF/zuxRNzPQy5pGBZRfmOpy+YLPvYTzHm6Y695KCsAwZyDEU=
DQ: |
GavIS8lKa9CiZ6H+enfoTLzBQpuclj3ANGW84tVBWCD1C7cmKPjIdzxDvPYf
U41QihWkEzYZP5WjiIImyyZnGv9pqq4U5xLiPCATb38+Dx+s6mDLC2uCadO1
YDIlUcdalVAawaMb3FdpTrD4B4Cb8qo5Yy8siryzaV5fkiPPDZk=
Exponent: |
AQAB
InverseQ: |
wdFYdkiLWVSzz1vexcaOP9TmhO4glb6mK6NbBqzgCUdW2dIx885kCcA+mXeO
lSDrd2URD4oES/kJxnGxLNWJixe8fBT3ni/e2LKJKfGTGHzfHviczDME8wEN
MWiBee9ox1dPRp3rpUuy4ct4Zus5NnUSJ1AIz/BArfBIQWKbcno=
Modulus: |
zo2Hh+UDw3p95oqMmCNvk2xE006L8jarQTi/7WCtUyTK7BM6O9l1r+zSfDHR
3Y6dZ4I/6i8OfOHZPm/a1n+pnYs5vOj5VGRHmT2A+lCmyPho59U3SMffqTPy
s7/sjaPdFiHJ9t7NmzWwgWhrX7JI4XONKoz+W0pkPb56YpKVOAhW580VvCdI
eRgGdL/iitxgsMQ1MQuOh9TkBubN0vBa57Q4/YYrqWiV8mgRbxSbu7sPr7Rp
xOU4FO5AJhB0pSYvQ8vbHHCIjYj8ddvaqHEfwjDkW+G5qpz4z7/PSA0PLcjz
lzgl4GzsIYUv5WXzSGDQbqFt4BZZQG8y83e/7AlLxQ==
P: |
5wpTk5d8j2xATucrbE9B1IrxP1BxlivKvBHz1NVZr6AoeXco3MT27O5CWPh5
SbEeooiwtTG/ybwQFh8izNo5oXRbpU8oYbX7c4XptlONVm72u+RA0u+ajHzn
0ysBpxpfHpxKbSIoIu5ZL/BVolpxuQWttjDr3tta6pPhvQi+Dz0=
Q: |
5N35gescsxufwKHNPbBYwc3aBLJqj1otjnfGEh0wj0gGSr3c1KzsHY6koGZl
Zk3Ne4f/ePQ11Cax5GhP3VsTp8VgpKUOj/W8wLvDHFYkXsjxVyhFzA9jDfga
C8EWvPwlomnwzqXjxb82gUfelY/GKjbREeKHQgl6Rg+Qk8bJ9yk=
DefaultSpec:
AccessControlInfo:
AffinityMask: 1
FirmwareVersion: 2
HandleTableSize: 512
IORegisterMapping:
- 1ff50000-1ff57fff
- 1ff70000-1ff77fff
IdealProcessor: 0
MemoryMapping:
- 1f000000-1f5fffff:r
Priority: 16
BasicInfo:
CompanyCode: "00"
Logo: Nintendo
Title: default
ExeFs:
ReadOnly:
- RO
ReadWrite:
- RW
Text:
- STUP_ENTRY
Media:
MediaType: Card
PlainRegion:
- .module_id
Rom:
DefaultReject:
- .*
File:
- "*"
SystemControlInfo:
Dependency:
ac: 0x0004013000002402L
am: 0x0004013000001502L
boss: 0x0004013000003402L
camera: 0x0004013000001602L
cecd: 0x0004013000002602L
cfg: 0x0004013000001702L
codec: 0x0004013000001802L
csnd: 0x0004013000002702L
dlp: 0x0004013000002802L
dsp: 0x0004013000001a02L
friends: 0x0004013000003202L
gpio: 0x0004013000001b02L
gsp: 0x0004013000001c02L
hid: 0x0004013000001d02L
http: 0x0004013000002902L
i2c: 0x0004013000001e02L
mcu: 0x0004013000001f02L
mic: 0x0004013000002002L
ndm: 0x0004013000002b02L
news: 0x0004013000003502L
nim: 0x0004013000002c02L
nwm: 0x0004013000002d02L
pdn: 0x0004013000002102L
ps: 0x0004013000003102L
ptm: 0x0004013000002202L
socket: 0x0004013000002e02L
spi: 0x0004013000002302L
ssl: 0x0004013000002f02L
StackSize: 16384

View File

@ -0,0 +1,39 @@
BasicInfo:
Title : ConfigViewer
ProductCode: ConfigViewer
BackupMemoryType: None
TitleInfo:
Use: Evaluation
Category: Application
UniqueId: 0xff408
Version: 0
SystemControlInfo:
AppType : Application
StackSize : 0x4000
Dependency :
- gpio
- pdn
- spi
- i2c
- mcu
- ptm
- cfg
- hid
- gsp
AccessControlInfo:
Priority : 16
DisableDebug : true
FileSystemAccess:
- DirectSdmc
Option:
FreeProductCode: true
Rom:
# ROMに含めるファイルのルートを記述します。
# このパス以下のファイルは、ROMに含まれファイルシステムから読み込めます。
HostRoot : romfiles

Binary file not shown.

View File

@ -0,0 +1,45 @@
#!/usr/bin/env omake
#----------------------------------------------------------------------------
# Project: CalViewer
# File: OMakefile
#
# Copyright (C)2009 Nintendo Co., Ltd. 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.
#
# $Revision$
#----------------------------------------------------------------------------
SUPPORTED_TARGETS = CTR-T*.Process.MPCore.*
CTR_APPTYPE = CARD
SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include)
INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \
../common
SOURCES[] =
main.cpp
TARGET_PROGRAM = FlickerCalCollector
INCLUDES += include
LIBS += lib_demo libnn_driversCal libnn_driversEeprom libnn_i2c
# RSF
ROM_SPEC_FILE = ConfigViewer.rsf
# DESC
DESCRIPTOR = ConfigViewer.autogen.desc
CTR_BANNER_SPEC = ConsoleBackup.bsf
include $(ROOT_OMAKE)/modulerules
build: $(DEFAULT_TARGETS)

View File

@ -0,0 +1,73 @@
#!/usr/bin/env omake
#----------------------------------------------------------------------------
# Project: Horizon
# File: OMakeroot
#
# Copyright (C)2009 Nintendo Co., Ltd. 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.
#
# $Rev:$
#----------------------------------------------------------------------------
# ディレクトリレイアウトについての説明
#
# a) ソースコードがルートディレクトリ直下に配置される場合
# 例:
# /OMakeroot
# /foo/bar/OMakefile
#
# 結果:
# OMakefile と同じディレクトリ以下に objects や images が生成されます。
#
# /foo/bar/objects/...
# /foo/bar/images/..
#
#
# b) ソースコードが sources 以下に配置される場合
# 例:
# /OMakeroot
# /sources/foo/bar/OMakefile
#
# 結果:
# ルートディレクトリ以下に objects や images が生成されます。
#
# /objects/foo/bar/...
# /images/foo/bar/...
#
#
# ルート環境変数の取得
public.HORIZON_ROOT =
if $(defined-env HORIZON_ROOT)
HORIZON_ROOT = $(absname $(getenv HORIZON_ROOT))
export
if $(defined-env CTRSDK_ROOT)
CTRSDK_ROOT = $(absname $(getenv CTRSDK_ROOT))
if $(and $(defined-env HORIZON_ROOT), $(not $(equal $(HORIZON_ROOT), $(CTRSDK_ROOT))))
eprintln(HORIZON_ROOT と CTRSDK_ROOT が一致しません。同じパスを設定するか、どちらか一方だけを定義して下さい。)
exit(1)
HORIZON_ROOT = $(CTRSDK_ROOT)
export
if $(not $(HORIZON_ROOT))
eprintln($"$$CTRSDK_ROOT が定義されていません")
exit(1)
include $(HORIZON_ROOT)/build/omake/commondefs
DefineCommandVars()
.PHONY: all build clean clobber
.PHONY: run run-scripts run-emumem
#
# OMakefile の読み込み
#
.SUBDIRS: .

View File

@ -0,0 +1,4 @@
【ビルド環境】
・SDK
Horizon 0_14 branch r33437

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫фВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫ф8ф8фШчГГГГГГВВ╫8фВВВВВГГГГшчфГШФВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫фВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫yнВ╫yнВВВВВ╫YнВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВГГГГШчyнYнВ╫шчшчВВфВВ╫шчyнШчВ╫yнГГГГyнШФГГГГГшчВВВВ╫YнГyнГВВВВВ╫yнфшчГШФГYнyнВВВ╫yнВ╫╨жВВВВВ╫yнВ╫yнВВВВВ╫YнВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫yнГYнГВ╫В╫В╫В╫В╫фВ╫В╫ГyнГ8фВВВВфВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫

View File

@ -0,0 +1 @@
ВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫YнВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫8фВВ╫8ф8фВВВ╫╨ж8ф╨жГГшчГГГГГГГГГГГГГГГГГГГГГГГВВВВВВВВВВ╫8ф8фВВфВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫ГГГГГШФГГГГГГГГГГ жфГГВ╫В╫ жВ╫ГГГГГ жГГВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫8фВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫шчВ╫шчВВВВВГВ╫ШчВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫╨жВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫ГГГГГГГГГГГГГГГГГГШФ8фШчшчВВ жВ╫YнВВВВВГГYнyнГГyнфВ╫В╫В╫В╫В╫В╫В╫В╫фВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫шчшчГшчШФВ╫В╫ГГYнГВ╫В╫В╫В╫В╫шчВ╫шчГГГГГГГГГГГГГГГГВВ╫YнШч жГГГГГГГГГГГГГГГГГГГГГГГГшч╨жВ жВ╫шчВВВВВ╫ШФВ╫ШФВВВВВВВВВВВВВВВВВВВВВ╫шчВ╫yнВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ╫YнВ жГГГГВ╫шчВ╫шчГГГГВВВВВВВВВВВВВВВВВ╫8фВВ╫╨жшчВВВВВ╫YнфyнГГГГГГГГГ жГГГГ╨жВ╫YнВ╫ШФYнВВВВВВВВВВВВВВ╫шч жВВВВВВ╫yнВГШФВ╫В╫фВ╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫В╫ШФВ╫ГГГГГВ╫ШчВ╫YнГГШФГВВВВВВВВВВВВВВВВВВВВВ╫8фВВВВВВВВВВГГГГ жВ╫шчВ╫ГГГшч жВВВВВВВВВВВВВВВВВВВ╫8фВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВВ

View File

@ -0,0 +1,196 @@
/*---------------------------------------------------------------------------*
Project: Horizon
File: main.cpp
Copyright 2009-2011 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.
$Rev$
*---------------------------------------------------------------------------*/
#include <nn.h>
#include <nn/applet.h>
#include <nn/drivers/cal/CTR/cal_Api.h>
#include <nn/cfg.h>
#include <nn/cfg/CTR/cfg_Api.h>
#include <nn/cfg/CTR/cfg_ApiInit.h>
#include <nn/cfg/CTR/cfg_ApiSys.h>
#include <nn/cfg/CTR/detail/cfg_SecureInfo.h>
#include <nn/nstd.h>
#include "demo.h"
#define HANDLE_ERROR(result) \
if(result.IsFailure()) \
{ \
DrawError(result, __LINE__); \
} \
namespace
{
nn::drivers::cal::CTR::LcdFlickerInfo s_LcdFlickerInfo;
bool s_LcdFlickerInfoIsValid = false;
u8 s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN];
bool s_CanReadSerialNumber = false;
u32 s_CalVersion = 0;
void* heapForGx;
nn::fnd::ExpHeap s_AppHeap;
demo::RenderSystemDrawing s_RenderSystem;
const wchar_t LOG_FILE_PATH[] = L"sdmc:/FlickerCalCollector.csv";
}
void DrawError(nn::Result result, s32 line)
{
s_RenderSystem.SetColor(1, 0, 0);
for(;;)
{
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0);
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 0, 0, 1);
s_RenderSystem.Clear();
s_RenderSystem.DrawText(0, 0, "line %d: Error = %X", line, result.GetPrintableBits());
s_RenderSystem.SwapBuffers();
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1);
s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 1, 0, 0, 1);
s_RenderSystem.Clear();
s_RenderSystem.SwapBuffers();
nngxWaitVSync(NN_GX_DISPLAY_BOTH);
}
}
void Finalize()
{
s_RenderSystem.Finalize();
s_AppHeap.Free(heapForGx);
s_AppHeap.Finalize();
nn::applet::DisableSleep();
nn::cfg::init::Finalize();
nn::fs::Unmount("sdmc:");
nn::fs::Finalize();
}
extern "C" void nnMain()
{
nn::applet::Enable();
NN_LOG("FlickerCalCollector start\n");
const u32 s_GxHeapSize = 0x800000;
// ヒープの確保
s_AppHeap.Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR);
// RenderSystem の準備
heapForGx = s_AppHeap.Allocate(s_GxHeapSize);
s_RenderSystem.Initialize(reinterpret_cast<uptr>(heapForGx), s_GxHeapSize);
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 0, 0, 1);
s_RenderSystem.SetColor(1, 1, 1);
nn::Result result;
// fs の初期化
nn::fs::Initialize();
// cfg の初期化
nn::cfg::CTR::init::Initialize();
// SDカードマウント
result = nn::fs::MountSdmc();
HANDLE_ERROR(result);
nn::fs::FileOutputStream file;
result = file.TryInitialize(LOG_FILE_PATH, true);
HANDLE_ERROR(result);
s64 fileSize;
fileSize = file.GetSize();
NN_LOG("fileSize = %lld", fileSize);
result = file.TrySetPosition(fileSize);
HANDLE_ERROR(result);
// シリアルナンバーの取得
std::memset(s_SerialNo, '\0',
nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN);
result = nn::cfg::CTR::init::GetSerialNo(s_SerialNo);
HANDLE_ERROR(result);
if(result.IsSuccess())
{
s_CanReadSerialNumber = true;
}
// cal の情報取得
{
nn::drivers::cal::CTR::Calibration calibration;
nn::drivers::cal::CTR::Type currentCalType;
// Cal の初期化
calibration.Initialize();
//----- バージョンを取得
s_CalVersion = calibration.GetVersion();
//----- LCD FLICKER
currentCalType = nn::drivers::cal::CTR::CAL_DATA_LCD_FLICKER;
s_LcdFlickerInfoIsValid = calibration.Get(&s_LcdFlickerInfo, currentCalType);
}
if(s_LcdFlickerInfoIsValid)
{
s32 writeSize;
char writeData[256];
nn::nstd::TSNPrintf(writeData, sizeof(writeData), "%s, %d, %d\n", s_SerialNo, s_LcdFlickerInfo.vcomTop, s_LcdFlickerInfo.vcomBottom);
NN_LOG("%s", writeData);
// SD書き込み
result = file.TryWrite(&writeSize, writeData, std::strlen(writeData), true);
HANDLE_ERROR(result);
result = file.TryFlush();
HANDLE_ERROR(result);
file.Finalize();
}
u32 count = 0;
for (;;)
{
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0);
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 0, 0, 1);
s_RenderSystem.Clear();
s_RenderSystem.DrawText(0, 0, "count = %d", count++);
if(s_CanReadSerialNumber)
{
s_RenderSystem.DrawText(0, 10, "serial = %s", s_SerialNo);
}
s_RenderSystem.DrawText(0, 20, "calVersion = %d\n", s_CalVersion);
s_RenderSystem.DrawText(0, 30, "Flicker = %d, %d", s_LcdFlickerInfo.vcomTop, s_LcdFlickerInfo.vcomBottom);
s_RenderSystem.SwapBuffers();
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1);
s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 0, 1, 0, 1);
s_RenderSystem.Clear();
s_RenderSystem.SwapBuffers();
nngxWaitVSync(NN_GX_DISPLAY_BOTH);
//POWER ボタン対応
if ( nn::applet::IsExpectedToCloseApplication())
{
nn::applet::PrepareToCloseApplication();
nn::applet::CloseApplication();
}
}
}