mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@114 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
425cd46d91
commit
777e9b5aac
@ -1,247 +0,0 @@
|
|||||||
AccessControlDescriptor:
|
|
||||||
AffinityMask: 1
|
|
||||||
AutoGen: true
|
|
||||||
CoreVersion: 2
|
|
||||||
DescVersion: 2
|
|
||||||
Descriptor: |
|
|
||||||
AP///wAABAACAAAAAAAFGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAik8AAAAAAABBUFQ6VQAAAGFj
|
|
||||||
OmkAAAAAYWM6dQAAAABhbTp1AAAAAGNhbTpjAAAAY2RjOkNISwBjZmc6aQAA
|
|
||||||
AGNmZzpub3IAY3NuZDpTTkRkc3A6OkRTUGZzOkxEUgAAZnM6VVNFUgBnc3A6
|
|
||||||
OkdwdWdzcDo6TGNkaGlkOlNQVlJoaWQ6VVNFUmkyYzo6RUVQaXI6dQAAAABt
|
|
||||||
Y3U6OkhXQ21pYzp1AAAAbXA6dQAAAABuZG06dQAAAG5zOnMAAAAAbndtOjpF
|
|
||||||
WFRud206OlVEU3BzOnBzAAAAcHRtOnN5c21wdG06dQAAAHB4aTpkZXYAc29j
|
|
||||||
OlUAAABzc2w6QwAAAHkycjp1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAD+//vw/7//8ec/APIA8JH/APaR/1D/gf9Y/4H/cP+B/3j/gf9G
|
|
||||||
7OH/AQEA/wACAP7/////////////////////////////////////////////
|
|
||||||
////////////////////////////////////////AAAAAAAAAAAAAAAAAAAA
|
|
||||||
AFcAAAAAAAAAAAAAAAAAAAI=
|
|
||||||
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:
|
|
||||||
- CategoryHardwareCheck
|
|
||||||
- Core
|
|
||||||
- DirectSdmc
|
|
||||||
- Debug
|
|
||||||
- CtrNandRw
|
|
||||||
- CtrNandRo
|
|
||||||
- CtrNandRoWrite
|
|
||||||
- ExportImportIvs
|
|
||||||
HandleTableSize: 512
|
|
||||||
IORegisterMapping:
|
|
||||||
- 1ff50000-1ff57fff
|
|
||||||
- 1ff70000-1ff77fff
|
|
||||||
- 1ec46000-1ec46fff
|
|
||||||
IdealProcessor: 1
|
|
||||||
IoAccessControl:
|
|
||||||
- FsMountNand
|
|
||||||
- FsMountNandRoWrite
|
|
||||||
- FsMountCardSpi
|
|
||||||
- FsMountTwln
|
|
||||||
- CreateSeed
|
|
||||||
MemoryMapping:
|
|
||||||
- 1f000000-1f5fffff:r
|
|
||||||
MemoryType: Application
|
|
||||||
Priority: 24
|
|
||||||
ProgramId: 0x00040000ffffff00L
|
|
||||||
ServiceAccessControl:
|
|
||||||
- APT:U
|
|
||||||
- ac:i
|
|
||||||
- ac:u
|
|
||||||
- am:u
|
|
||||||
- cam:c
|
|
||||||
- cdc:CHK
|
|
||||||
- cfg:i
|
|
||||||
- cfg:nor
|
|
||||||
- csnd:SND
|
|
||||||
- dsp::DSP
|
|
||||||
- fs:LDR
|
|
||||||
- fs:USER
|
|
||||||
- gsp::Gpu
|
|
||||||
- gsp::Lcd
|
|
||||||
- hid:SPVR
|
|
||||||
- hid:USER
|
|
||||||
- i2c::EEP
|
|
||||||
- ir:u
|
|
||||||
- mcu::HWC
|
|
||||||
- mic:u
|
|
||||||
- mp:u
|
|
||||||
- ndm:u
|
|
||||||
- ns:s
|
|
||||||
- nwm::EXT
|
|
||||||
- nwm::UDS
|
|
||||||
- ps:ps
|
|
||||||
- ptm:sysm
|
|
||||||
- ptm:u
|
|
||||||
- pxi:dev
|
|
||||||
- soc:U
|
|
||||||
- ssl:C
|
|
||||||
- y2r:u
|
|
||||||
Signature: |
|
|
||||||
e0CSCrqD3wPFl2u8hu451WhejFQAZDOZsOkUWq7YOgMSZOxV97TpVvSJtS2Y
|
|
||||||
bFRBowRLK2rYEiEEyl0cUmlKKS8ZuaHmy5FEunsKFqksp9SFq4yjG95RKjK/
|
|
||||||
q9Msu1hvmHo1/YnQbtRZSd9MPlxNB0ed0Ue2HZxL1JMipSz0OAaNT+MNQ2yU
|
|
||||||
JhIpVcKoV6ZbDGuw68CFy51vvERHpr5pXN8QcBkEoR9li1rWf/ZOx4mQuEKv
|
|
||||||
acb3N/c2eLs2x9xY6W07PJ8+XZnO6yM9NLv1kE2Z2+4p1JG6jLNqyP5cwO7k
|
|
||||||
jxzVx4PzDQSHwfegM3kBvZjzA//o4OikZQhdmRQPsQ==
|
|
||||||
StorageId:
|
|
||||||
- 0
|
|
||||||
CommonHeaderKey:
|
|
||||||
D: |
|
|
||||||
2GXY4PQJVuIf0Eq0/ptFqXSsUAoKTEjsvzXEjuq2FeOksquwh1RQ2SWS8Wa/
|
|
||||||
7ddQitmIlC6gQza4FMIvSE+mfNXheE3MQlvBaLLfsf659NE33IeAQpEaZLq7
|
|
||||||
Rv2FUxO+L4DxwtSK/Q7i0Ixl35XOKklhWfks3AUPCeSET17gyd8PpVlKbcZh
|
|
||||||
jK9v5TqzMrooQji65HkXXMp1jf4Xv24Me+1VFRDxPzO0Mo/c+QCrI3NiwwoC
|
|
||||||
gSnjXC3d1mJxkEovOZ8NOxE0YKSY2+7edhoRZSWSIhNWp9a+jMoeTiQaJbqK
|
|
||||||
mZXxIG9akIUMeMCORaTfEukYWk+6DlcCZ/e7yfURQQ==
|
|
||||||
DP: |
|
|
||||||
kSu2W+RJCEsDBXMwxv7C5i0vSGXzw2AuR6wzwD64H2olm8gFPBsCnLoyAdHE
|
|
||||||
DJaMtssBpD7piDBDMlFqZ67ai4oGJFyUgjOAdzvEfsc30HMbfEgUdE9zST8h
|
|
||||||
5qep/HxGtLnJ0699D4MTArkkuxGRgbYh7DRCSp+8xE2N0A2Jd/k=
|
|
||||||
DQ: |
|
|
||||||
ZU1KBdyU4QhHEu+wrIIzf27/6xI1tu5nov0rRVBEsyj7FRr0X+BkF8KcBvT7
|
|
||||||
l9vkiWgPcF3GyjWMwmuAnu8equh3YeVlfbmyseaeGtVzFStCXUWb6uGOOhPU
|
|
||||||
eKDix+LFcPu+s/lpUMgvNWNBvlOczHsBZ/T1TYYK4gqml80qxUU=
|
|
||||||
Exponent: |
|
|
||||||
AQAB
|
|
||||||
InverseQ: |
|
|
||||||
UE3F4n7dFZv4UC/y0/sZ/Gq4fh3bztdKMCWJwQMzXgo7vwFMoLKikx1HsqIN
|
|
||||||
6ufBvEqfzTRqtv43fR+oONOfI1gH5HDtNSpWCcM+heVQ9YjdBqWU2FkFVH+V
|
|
||||||
feByXnjkJG+ojvPjEQd6N0PWc35VYn/Ak/jQVgNmbVrMNGST2vI=
|
|
||||||
Modulus: |
|
|
||||||
5C7+erLWS6NNWNj5akUEmYfRGLTyOCmfONoFwLrr3n7XQ9lDInRJVutjpBr1
|
|
||||||
tIFLgDCVp/u8D8eRVJAUmt4Whjq2aXETRvo/vxptv5s3vEw8bHk/ifkzENv7
|
|
||||||
683VKmFHJ9WyDWd92ShuUbdmwlR6crPD6QsRH4rev2WU/VgUd0qFozV8/Q+i
|
|
||||||
GQaR4otY7d+YI0QECkCcIxst+3LGxrqqA6ooO7v3f6F+NHs50GbmTQyt2sYJ
|
|
||||||
h8MshKb0bMnUjEeN+2CMRCREjlpDesN93YFP57vVHiVHPWmjYMm+dFRfHjhU
|
|
||||||
uXAUOauI26P6U+7u5oHzQQQ2n1VkazElql9X03fYdw==
|
|
||||||
P: |
|
|
||||||
/nfZRR6EX1btIewMjxL+QOlHDng1hrIzYTf6Y2/iaF2X6N4upLdGW/LYSW1K
|
|
||||||
83JNDY4tL5Pa6Ox+xYCfBmPfpKnR6+pee1uT8Z9mJiZxmubbYJ+gAY98RCi4
|
|
||||||
h0FFZ0UfeejRx0KWIwDdxtdhEPEax+7vOhQXw/p2nqZfPZ6d9as=
|
|
||||||
Q: |
|
|
||||||
5Y6jn//0FQq4aMsN9fzUxh+GJev8AlaA+0oHcJAfnPtoejT2xmik/zxyRYe6
|
|
||||||
XL5ZtvF/4mARoejRLt8/wz1Y/IN8V9DVLTLNukcmZxU8B2Kl5zuS2F3EWp/L
|
|
||||||
tU29P0/vCbiHUoH42XtZLVVriR2wkM/j16g82dEbd7KJGWAtxGU=
|
|
||||||
DefaultSpec:
|
|
||||||
AccessControlInfo:
|
|
||||||
AffinityMask: 1
|
|
||||||
FirmwareVersion: 2
|
|
||||||
HandleTableSize: 512
|
|
||||||
IORegisterMapping:
|
|
||||||
- 1ff50000-1ff57fff
|
|
||||||
- 1ff70000-1ff77fff
|
|
||||||
IdealProcessor: 0
|
|
||||||
MemoryMapping:
|
|
||||||
- 1f000000-1f5fffff:r
|
|
||||||
Priority: 16
|
|
||||||
BasicInfo:
|
|
||||||
CompanyCode: "00"
|
|
||||||
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
|
|
||||||
ir: 0x0004013000003302L
|
|
||||||
mcu: 0x0004013000001f02L
|
|
||||||
mic: 0x0004013000002002L
|
|
||||||
mp: 0x0004013000002a02L
|
|
||||||
ndm: 0x0004013000002b02L
|
|
||||||
nim: 0x0004013000002c02L
|
|
||||||
nwm: 0x0004013000002d02L
|
|
||||||
pdn: 0x0004013000002102L
|
|
||||||
ptm: 0x0004013000002202L
|
|
||||||
socket: 0x0004013000002e02L
|
|
||||||
spi: 0x0004013000002302L
|
|
||||||
ssl: 0x0004013000002f02L
|
|
||||||
StackSize: 16384
|
|
||||||
TitleInfo:
|
|
||||||
Use: Evaluation
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
BasicInfo:
|
|
||||||
Title : $(TITLE)
|
|
||||||
BackupMemoryType: None
|
|
||||||
Logo : Nintendo
|
|
||||||
# Companycode: "00"
|
|
||||||
ProductCode : "CTR-N-22MA"
|
|
||||||
# MediaSize: 2GB
|
|
||||||
|
|
||||||
Rom:
|
|
||||||
HostRoot : $(ROMFS_ROOT)
|
|
||||||
|
|
||||||
|
|
||||||
TitleInfo:
|
|
||||||
# UniqueId: 0xffff6
|
|
||||||
UniqueId: 0xf8015
|
|
||||||
Version: 0
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
#!/usr/bin/env omake
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Project: Horizon
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# $Rev: 31765 $
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
SUPPORTED_TARGETS = CTR-*.Process.MPCore.*
|
|
||||||
|
|
||||||
#demoライブラリ位置指定
|
|
||||||
#SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir ../common/include)
|
|
||||||
SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir ../CTR_SDK/sampledemos/common/include)
|
|
||||||
INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR)
|
|
||||||
|
|
||||||
|
|
||||||
SOURCES[] =
|
|
||||||
main.cpp
|
|
||||||
sleep.cpp
|
|
||||||
test_data.cpp
|
|
||||||
|
|
||||||
TARGET_PROGRAM = CtrSaveDataMover_imp
|
|
||||||
|
|
||||||
TITLE = Importer
|
|
||||||
|
|
||||||
LIBS += libnn_am lib_demo
|
|
||||||
|
|
||||||
IMPORTEE_CIA = importee.cia
|
|
||||||
|
|
||||||
SRC_IMPORTEE_PATH = ../SaveDataTool/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/CtrSaveDataMover.cia
|
|
||||||
#とりあえず、マスタリング時は直おき
|
|
||||||
#SRC_IMPORTEE_PATH = CtrSaveDataMover_master.cia
|
|
||||||
|
|
||||||
# ビルドタイプ別に romfs を作る
|
|
||||||
ROMFS_ROOT = $`(TARGET.getObjectDirectory)/romfsroot
|
|
||||||
DEST_IMPORTEE_PATH = $(ROMFS_ROOT)/$(IMPORTEE_CIA)
|
|
||||||
foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS)))
|
|
||||||
$(DEST_IMPORTEE_PATH): $(SRC_IMPORTEE_PATH) $(makeDirectory $(ROMFS_ROOT))
|
|
||||||
cp $< $@
|
|
||||||
ROMFS_DEPENDENCIES = $(DEST_IMPORTEE_PATH)
|
|
||||||
|
|
||||||
# プログラムから参照するためのROMFSのパスとプログラムIDを定義する
|
|
||||||
ROMFS_IMPORTEE_PATH = L\"rom:/$(IMPORTEE_CIA)\"
|
|
||||||
CCFLAGS += -DROMFS_IMPORTEE_PATH=$(ROMFS_IMPORTEE_PATH)
|
|
||||||
|
|
||||||
ROM_SPEC_FILE = ImportAndRun.rsf
|
|
||||||
#DESCRIPTOR = HwCheckProgram.desc
|
|
||||||
DESCRIPTOR = $(CTRSDK_ROOT)/resources/specfiles/repairtool.desc
|
|
||||||
|
|
||||||
# バナー、アイコン
|
|
||||||
CTR_BANNER_SPEC = banner.bsf
|
|
||||||
|
|
||||||
include $(ROOT_OMAKE)/modulerules
|
|
||||||
|
|
||||||
build: $(DEFAULT_TARGETS)
|
|
||||||
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
#!/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
|
|
||||||
|
|
||||||
#
|
|
||||||
# OMakefile の読み込み
|
|
||||||
#
|
|
||||||
.SUBDIRS: .
|
|
||||||
|
|
||||||
Binary file not shown.
@ -1,274 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<NintendoWareIntermediateFile>
|
|
||||||
<GraphicsContentCtr Version="1.3.0" Namespace="">
|
|
||||||
<EditData>
|
|
||||||
<MetaData>
|
|
||||||
<Key>MetaData</Key>
|
|
||||||
<Create Author="" Date="2010-12-02T15:21:10" Source="COMMON.mb">
|
|
||||||
<ToolDescriptions Name="NW4C_Export for Maya 2009 Service Pack 1" Version="1.2.0" />
|
|
||||||
</Create>
|
|
||||||
<Modify Date="2011-02-28T13:27:46">
|
|
||||||
<ToolDescriptions Name="NintendoWare Creative Studio For Banner." Version="1.3.0.30235" />
|
|
||||||
</Modify>
|
|
||||||
</MetaData>
|
|
||||||
<ContentSummaryMetaData>
|
|
||||||
<Key>ContentSummaries</Key>
|
|
||||||
<Values>
|
|
||||||
<ContentSummary ContentTypeName="GraphicsContent">
|
|
||||||
<ObjectSummaries>
|
|
||||||
<ObjectSummary TypeName="SkeletalModel" Name="">
|
|
||||||
<Notes>
|
|
||||||
<Note Name="MaterialCount" Value="1" />
|
|
||||||
<Note Name="ShapeCount" Value="1" />
|
|
||||||
<Note Name="MeshCount" Value="1" />
|
|
||||||
<Note Name="BoneCount" Value="1" />
|
|
||||||
<Note Name="TotalPrimitiveSetCount" Value="1" />
|
|
||||||
<Note Name="TotalNoneSkinningPrimitiveSetCount" Value="1" />
|
|
||||||
<Note Name="TotalRigidSkinningPrimitiveSetCount" Value="0" />
|
|
||||||
<Note Name="TotalSmoothSkinningPrimitiveSetCount" Value="0" />
|
|
||||||
<Note Name="TotalIndexStreamCount" Value="1" />
|
|
||||||
<Note Name="TotalPolygonCount" Value="2" />
|
|
||||||
<Note Name="TotalVertexCount" Value="4" />
|
|
||||||
</Notes>
|
|
||||||
</ObjectSummary>
|
|
||||||
</ObjectSummaries>
|
|
||||||
</ContentSummary>
|
|
||||||
</Values>
|
|
||||||
</ContentSummaryMetaData>
|
|
||||||
</EditData>
|
|
||||||
<Models>
|
|
||||||
<SkeletalModel Name="" IsBranchVisible="true" IsVisible="true" CullingMode="Dynamic" IsNonuniformScalable="false" LayerId="0" NeededBoneCapacity="20">
|
|
||||||
<EditData>
|
|
||||||
<ModelDccToolExportOption ExportStartFrame="0" Magnify="1" AdjustSkinning="None" MeshVisibilityMode="BindByIndex">
|
|
||||||
<Key>ModelDccToolInfo</Key>
|
|
||||||
</ModelDccToolExportOption>
|
|
||||||
<OptimizationLogArrayMetaData Size="1">
|
|
||||||
<Key>OptimizationLogs</Key>
|
|
||||||
<Values>
|
|
||||||
<OptimizationLog Date="2010-12-02T15:21" EditorVersion="1.2.0.27817">
|
|
||||||
<Options NodeCompressionMode="None" IsMergeMeshOwnerBoneEnabled="false" IsCombineMeshEnabled="false" IsCompressMaterialEnabled="false" IsOptimizePlygonPrimitiveEnabled="false" IsConvertOneBoneSkeletalModelToModel="true" IsDeleteUnusedVertexEnabled="false" PositionQuantizeMode="Float" NormalQuantizeMode="Float" TextureQuantizeMode="Float" GroupByIndexStream="false" />
|
|
||||||
</OptimizationLog>
|
|
||||||
</Values>
|
|
||||||
</OptimizationLogArrayMetaData>
|
|
||||||
</EditData>
|
|
||||||
<AnimationGroupDescriptions>
|
|
||||||
<GraphicsAnimationGroupDescription Name="SkeletalAnimation" EvaluationTiming="AfterSceneCulling">
|
|
||||||
<MemberInformationSet>
|
|
||||||
<AnimationMemberDescription BlendOperationName="CalculatedTransform" IsBinarized="true">
|
|
||||||
<Path>Skeleton.Bones["*"].AnimatedTransform</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
</MemberInformationSet>
|
|
||||||
</GraphicsAnimationGroupDescription>
|
|
||||||
<GraphicsAnimationGroupDescription Name="VisibilityAnimation" EvaluationTiming="BeforeWorldUpdate">
|
|
||||||
<MemberInformationSet>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Bool" IsBinarized="true">
|
|
||||||
<Path>IsVisible</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Bool" IsBinarized="true">
|
|
||||||
<Path>Meshes["*"].IsVisible</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Bool" IsBinarized="true">
|
|
||||||
<Path>IsBranchVisible</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
</MemberInformationSet>
|
|
||||||
</GraphicsAnimationGroupDescription>
|
|
||||||
<GraphicsAnimationGroupDescription Name="MaterialAnimation" EvaluationTiming="AfterSceneCulling">
|
|
||||||
<MemberInformationSet>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Emission</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Ambient</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Diffuse</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Specular0</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Specular1</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant0</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant1</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant2</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant3</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant4</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].MaterialColor.Constant5</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].TextureMappers["*"].Sampler.BorderColor</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Int" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].TextureMappers["*"].Texture</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="RgbaColor" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].FragmentOperation.BlendOperation.BlendColor</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Vector2" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].TextureCoordinators["*"].Scale</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Float" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].TextureCoordinators["*"].Rotate</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
<AnimationMemberDescription BlendOperationName="Vector2" IsBinarized="true">
|
|
||||||
<Path>Materials["*"].TextureCoordinators["*"].Translate</Path>
|
|
||||||
</AnimationMemberDescription>
|
|
||||||
</MemberInformationSet>
|
|
||||||
</GraphicsAnimationGroupDescription>
|
|
||||||
</AnimationGroupDescriptions>
|
|
||||||
<Transform>
|
|
||||||
<Scale X="1" Y="1" Z="1" />
|
|
||||||
<Rotate X="0" Y="0" Z="0" />
|
|
||||||
<Translate X="0" Y="0" Z="0" />
|
|
||||||
</Transform>
|
|
||||||
<Shapes>
|
|
||||||
<SeparateDataShapeCtr>
|
|
||||||
<OrientedBoundingBox>
|
|
||||||
<CenterPosition X="0" Y="0" Z="6.5" />
|
|
||||||
<OrientationMatrix M00="1" M01="0" M02="0" M10="0" M11="1" M12="0" M20="0" M21="0" M22="1" />
|
|
||||||
<Size X="24" Y="12" Z="0" />
|
|
||||||
</OrientedBoundingBox>
|
|
||||||
<PositionOffset X="0" Y="0" Z="0" />
|
|
||||||
<PrimitiveSets>
|
|
||||||
<PrimitiveSetCtr SkinningMode="None">
|
|
||||||
<BoneIndexTable>0</BoneIndexTable>
|
|
||||||
<Primitives>
|
|
||||||
<PrimitiveCtr>
|
|
||||||
<IndexStreams>
|
|
||||||
<UbyteIndexStreamCtr PrimitiveMode="Triangles" Size="6">0 1 2 1 3 2</UbyteIndexStreamCtr>
|
|
||||||
</IndexStreams>
|
|
||||||
</PrimitiveCtr>
|
|
||||||
</Primitives>
|
|
||||||
</PrimitiveSetCtr>
|
|
||||||
</PrimitiveSets>
|
|
||||||
<VertexAttributes>
|
|
||||||
<Vector3VertexStreamCtr Usage="Position" VertexSize="4" Scale="1" QuantizedMode="Float">
|
|
||||||
-12 -6 6.5
|
|
||||||
12 -6 6.5
|
|
||||||
-12 6 6.5
|
|
||||||
12 6 6.5
|
|
||||||
</Vector3VertexStreamCtr>
|
|
||||||
<Vector3VertexAttributeCtr Usage="Normal">0 0 1</Vector3VertexAttributeCtr>
|
|
||||||
<Vector2VertexStreamCtr Usage="TextureCoordinate0" VertexSize="4" Scale="1" QuantizedMode="Float">
|
|
||||||
0 0
|
|
||||||
1 0
|
|
||||||
0 1
|
|
||||||
1 1
|
|
||||||
</Vector2VertexStreamCtr>
|
|
||||||
</VertexAttributes>
|
|
||||||
</SeparateDataShapeCtr>
|
|
||||||
</Shapes>
|
|
||||||
<Materials>
|
|
||||||
<MaterialCtr Name="MT_00" IsCompressible="true" LightSetIndex="0" FogIndex="0" IsFragmentLightEnabled="false" IsVertexLightEnabled="false" IsHemiSphereLightEnabled="false" IsHemiSphereOcclusionEnabled="false" IsFogEnabled="false" TextureCoordinateConfig="Config0120" TranslucencyKind="Layer1" ShaderProgramDescriptionIndex="-1" ShaderBinaryKind="Default">
|
|
||||||
<ShaderReference />
|
|
||||||
<MaterialColor VertexColorScale="1">
|
|
||||||
<Emission R="0" G="0" B="0" A="0" />
|
|
||||||
<Ambient R="1" G="1" B="1" A="0" />
|
|
||||||
<Diffuse R="1" G="1" B="1" A="1" />
|
|
||||||
<Specular0 R="1" G="1" B="1" A="0" />
|
|
||||||
<Specular1 R="0" G="0" B="0" A="0" />
|
|
||||||
<Constant0 R="0" G="0" B="0" A="1" />
|
|
||||||
<Constant1 R="0" G="0" B="0" A="1" />
|
|
||||||
<Constant2 R="0" G="0" B="0" A="1" />
|
|
||||||
<Constant3 R="0" G="0" B="0" A="1" />
|
|
||||||
<Constant4 R="0" G="0" B="0" A="1" />
|
|
||||||
<Constant5 R="0" G="0" B="0" A="1" />
|
|
||||||
</MaterialColor>
|
|
||||||
<Rasterization CullingMode="BackFace" IsPolygonOffsetEnabled="false" PolygonOffsetUnit="0" />
|
|
||||||
<TextureCoordinators>
|
|
||||||
<TextureCoordinatorCtr SourceCoordinate="0" MappingMethod="UvCoordinateMap" ReferenceCamera="0" MatrixMode="DccMaya" ScaleS="1" ScaleT="1" Rotate="0" TranslateS="0" TranslateT="0" />
|
|
||||||
</TextureCoordinators>
|
|
||||||
<TextureMappers>
|
|
||||||
<PixelBasedTextureMapperCtr>
|
|
||||||
<TextureReference>Textures["banner_imp"]@file:Textures/banner_imp.ctex</TextureReference>
|
|
||||||
<StandardTextureSamplerCtr MinFilter="Linear" MagFilter="Linear" WrapS="ClampToEdge" WrapT="ClampToEdge" MinLod="0" LodBias="0">
|
|
||||||
<BorderColor R="0" G="0" B="0" A="1" />
|
|
||||||
</StandardTextureSamplerCtr>
|
|
||||||
</PixelBasedTextureMapperCtr>
|
|
||||||
</TextureMappers>
|
|
||||||
<FragmentShader LayerConfig="ConfigurationType0">
|
|
||||||
<BufferColor R="0" G="0" B="0" A="1" />
|
|
||||||
<FragmentBump BumpTextureIndex="Texture0" BumpMode="NotUsed" IsBumpRenormalize="false" />
|
|
||||||
<FragmentLighting FresnelConfig="No" IsClampHighLight="false" IsDistribution0Enabled="false" IsDistribution1Enabled="false" IsGeometricFactor0Enabled="false" IsGeometricFactor1Enabled="false" IsReflectionEnabled="false" />
|
|
||||||
<FragmentLightingTable>
|
|
||||||
<ReflectanceRSampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</ReflectanceRSampler>
|
|
||||||
<ReflectanceGSampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</ReflectanceGSampler>
|
|
||||||
<ReflectanceBSampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</ReflectanceBSampler>
|
|
||||||
<Distribution0Sampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</Distribution0Sampler>
|
|
||||||
<Distribution1Sampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</Distribution1Sampler>
|
|
||||||
<FresnelSampler IsAbs="true" Input="CosNormalHalf" Scale="One">
|
|
||||||
<NullLookupTableCtr />
|
|
||||||
</FresnelSampler>
|
|
||||||
</FragmentLightingTable>
|
|
||||||
<TextureCombiners>
|
|
||||||
<TextureCombinerCtr CombineRgb="Replace" CombineAlpha="Replace" ScaleRgb="One" ScaleAlpha="One" Constant="Constant0" BufferInputRgb="PreviousBuffer" BufferInputAlpha="PreviousBuffer">
|
|
||||||
<SourceRgb Source0="Texture0" Source1="FragmentPrimaryColor" Source2="FragmentSecondaryColor" />
|
|
||||||
<OperandRgb Operand0="Color" Operand1="Color" Operand2="Color" />
|
|
||||||
<SourceAlpha Source0="Texture0" Source1="Constant" Source2="Constant" />
|
|
||||||
<OperandAlpha Operand0="Alpha" Operand1="Alpha" Operand2="Alpha" />
|
|
||||||
</TextureCombinerCtr>
|
|
||||||
</TextureCombiners>
|
|
||||||
<AlphaTest IsTestEnabled="false" TestFunction="Always" TestReference="0" />
|
|
||||||
</FragmentShader>
|
|
||||||
<FragmentOperation>
|
|
||||||
<DepthOperation IsTestEnabled="true" TestFunction="Less" IsMaskEnabled="false" />
|
|
||||||
<BlendOperation Mode="Blend" LogicOperation="Copy">
|
|
||||||
<RgbParameter BlendFunctionSource="SourceAlpha" BlendFunctionDestination="OneMinusSourceAlpha" BlendEquation="FuncAdd" />
|
|
||||||
<AlphaParameter BlendFunctionSource="One" BlendFunctionDestination="Zero" BlendEquation="FuncAdd" />
|
|
||||||
<BlendColor R="0" G="0" B="0" A="1" />
|
|
||||||
</BlendOperation>
|
|
||||||
<StencilOperation IsTestEnabled="false" TestFunction="Never" TestReference="0" TestMask="255" FailOperation="Keep" ZFailOperation="Keep" PassOperation="Keep" />
|
|
||||||
</FragmentOperation>
|
|
||||||
</MaterialCtr>
|
|
||||||
</Materials>
|
|
||||||
<Meshes>
|
|
||||||
<Mesh IsVisible="true" RenderPriority="0" MeshNodeName="BONE_00">
|
|
||||||
<EditData>
|
|
||||||
<DccToolSourceNodeMetaData>
|
|
||||||
<Key>DccToolSourceNode</Key>
|
|
||||||
<Values>
|
|
||||||
<NodeName>BONE_00</NodeName>
|
|
||||||
</Values>
|
|
||||||
</DccToolSourceNodeMetaData>
|
|
||||||
</EditData>
|
|
||||||
<SeparateShapeReference>Shapes[0]</SeparateShapeReference>
|
|
||||||
<MaterialReference>Materials["MT_00"]</MaterialReference>
|
|
||||||
</Mesh>
|
|
||||||
</Meshes>
|
|
||||||
<Skeleton RootBoneName="BONE_00" ScalingRule="Standard" IsTranslateAnimationEnabled="true">
|
|
||||||
<Bones>
|
|
||||||
<Bone Name="BONE_00" ParentBoneName="" IsSegmentScaleCompensate="false" IsCompressible="true" IsNeededRendering="true" HasSkinningMatrix="false" BillboardMode="YAxial">
|
|
||||||
<Transform>
|
|
||||||
<Scale X="1" Y="1" Z="1" />
|
|
||||||
<Rotate X="0" Y="0" Z="0" />
|
|
||||||
<Translate X="0" Y="0" Z="0" />
|
|
||||||
</Transform>
|
|
||||||
</Bone>
|
|
||||||
</Bones>
|
|
||||||
</Skeleton>
|
|
||||||
</SkeletalModel>
|
|
||||||
</Models>
|
|
||||||
</GraphicsContentCtr>
|
|
||||||
</NintendoWareIntermediateFile>
|
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,294 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: Horizon
|
|
||||||
File: main.cpp
|
|
||||||
|
|
||||||
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$
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include <nn.h>
|
|
||||||
//#include <nn/srv.h>
|
|
||||||
#include <nn/fs.h>
|
|
||||||
//#include <nn/ns/CTR/ns_ApiShell.h>
|
|
||||||
//#include <nn/ns/CTR/ns_Shell.h>
|
|
||||||
#include <nn/am/am_ApiLocalImporter.h>
|
|
||||||
#include <nn/am/am_ApiSystemMenu.h>
|
|
||||||
#include <nn/applet.h>
|
|
||||||
#include <nn/ndm.h>
|
|
||||||
#include "demo.h"
|
|
||||||
#include "../SaveDataTool/ver.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "sleep.h"
|
|
||||||
#include "test_data.h"
|
|
||||||
|
|
||||||
demo::RenderSystemDrawing s_RenderSystem;
|
|
||||||
nn::fnd::ExpHeap appHeap;
|
|
||||||
uptr heapForGx;
|
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
bit8 readBuf[64 * 1024];
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ImportFile(nn::fs::MediaType mediaType, wchar_t* filename)
|
|
||||||
{
|
|
||||||
nn::Result result;
|
|
||||||
|
|
||||||
nn::fs::FileOutputStream* stream;
|
|
||||||
result = nn::am::BeginImportProgram(&stream, mediaType);
|
|
||||||
if (result.IsSuccess())
|
|
||||||
{
|
|
||||||
//NN_LOG("Importing: %ls...", filename);
|
|
||||||
nn::fs::FileInputStream in(filename);
|
|
||||||
|
|
||||||
while(s32 read = in.Read(readBuf, sizeof(readBuf)))
|
|
||||||
{
|
|
||||||
stream->Write(readBuf, read);
|
|
||||||
}
|
|
||||||
result = nn::am::EndImportProgram(stream);
|
|
||||||
}
|
|
||||||
return result.IsSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//終了処理
|
|
||||||
void finish(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
SleepHandler::Finalize();//SLEEP
|
|
||||||
|
|
||||||
nn::hid::Finalize();
|
|
||||||
|
|
||||||
// nngxFinalize 関数呼び出しと VSync 割り込みが同時に発生すると
|
|
||||||
// 画面が暗転したまま止まる不具合を回避するために VSync 待ちを行う
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY_BOTH);
|
|
||||||
s_RenderSystem.Finalize();
|
|
||||||
|
|
||||||
nn::fs::Finalize();
|
|
||||||
|
|
||||||
appHeap.Free(reinterpret_cast<void*>(heapForGx));
|
|
||||||
appHeap.Finalize();
|
|
||||||
|
|
||||||
nn::os::SetDeviceMemorySize(0);
|
|
||||||
nn::os::SetHeapSize(0);
|
|
||||||
|
|
||||||
NN_LOG("End\n");
|
|
||||||
nn::applet::PrepareToCloseApplication();
|
|
||||||
nn::applet::CloseApplication();
|
|
||||||
}
|
|
||||||
|
|
||||||
nn::hid::PadReader *hpr;
|
|
||||||
//---------------------------------------------------------------- 入力待ち
|
|
||||||
nn::hid::PadStatus padStatus;
|
|
||||||
u32 WaitKey(u32 mask)
|
|
||||||
{
|
|
||||||
|
|
||||||
while(1){
|
|
||||||
hpr->ReadLatest(&padStatus);
|
|
||||||
if(padStatus.trigger & mask)return padStatus.trigger;
|
|
||||||
|
|
||||||
// 終了要求をチェック
|
|
||||||
if ( nn::applet::IsExpectedToCloseApplication() )
|
|
||||||
{
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
// アプリケーションの遷移処理を行う
|
|
||||||
|
|
||||||
// HOMEボタン処理(グラフィックスライブラリが初期化済みでなければならない)
|
|
||||||
if ( nn::applet::IsExpectedToProcessHomeButton() )
|
|
||||||
{
|
|
||||||
// スリープ要求を REJECT するように
|
|
||||||
nn::applet::DisableSleep();
|
|
||||||
|
|
||||||
nn::applet::ProcessHomeButton();
|
|
||||||
nn::applet::AppletWakeupState wState = nn::applet::WaitForStarting();
|
|
||||||
NN_UNUSED_VAR(wState);
|
|
||||||
|
|
||||||
|
|
||||||
// HOME メニューからの中断やバッテリー不足の要因により
|
|
||||||
// アプリ終了と判断された場合、アプリのメインループを抜けて終了処理へ
|
|
||||||
if ( nn::applet::IsExpectedToCloseApplication() )
|
|
||||||
{
|
|
||||||
// 描画権は渡されていない
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
//nn::applet::EnableSleep(true);
|
|
||||||
|
|
||||||
// グラフィックの設定を戻す
|
|
||||||
nngxUpdateState(NN_GX_STATE_ALL);
|
|
||||||
nngxValidateState(NN_GX_STATE_ALL,GL_TRUE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 電源ボタン処理(グラフィックスライブラリが初期化済みでなければならない)
|
|
||||||
if ( nn::applet::IsExpectedToProcessPowerButton() )
|
|
||||||
{
|
|
||||||
nn::applet::DisableSleep();
|
|
||||||
nn::applet::ProcessPowerButton();
|
|
||||||
nn::applet::AppletWakeupState wState = nn::applet::WaitForStarting();
|
|
||||||
NN_UNUSED_VAR(wState);
|
|
||||||
|
|
||||||
|
|
||||||
// アプリ終了と判断された場合、アプリのメインループを抜けて終了処理へ
|
|
||||||
if ( nn::applet::IsExpectedToCloseApplication() )
|
|
||||||
{
|
|
||||||
// 描画権は渡されていない
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
// nn::applet::EnableSleep(true);
|
|
||||||
|
|
||||||
// グラフィックの設定を戻す
|
|
||||||
nngxUpdateState(NN_GX_STATE_ALL);
|
|
||||||
nngxValidateState(NN_GX_STATE_ALL,GL_TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char ver[16];
|
|
||||||
void nnMain( void )
|
|
||||||
{
|
|
||||||
nn::Result result;
|
|
||||||
|
|
||||||
nn::os::Initialize();
|
|
||||||
nn::fs::Initialize();
|
|
||||||
|
|
||||||
//DEA-SUPにて推奨のフリーズ暫定対策:無線デーモンを停止 (2011.3.1 現在)
|
|
||||||
//ただし、スリープ時の"いつのまに通信"は止まらない
|
|
||||||
//無線は使わないが念の為、本体スイッチで切っとくのが確実
|
|
||||||
nn::ndm::SuspendScheduler();
|
|
||||||
|
|
||||||
SleepHandler::Initialize();
|
|
||||||
|
|
||||||
// アプレットライブラリに関する機能を有効にする
|
|
||||||
nn::applet::Enable(false);
|
|
||||||
// gx, snd, dsp 各ライブラリの Initialize 関数は applet::Enable() の後に呼ばれなければならない
|
|
||||||
// 特に、gx の初期化である nngxInitialize 関数は、Enable() 直後の終了判定の後に行われるべき
|
|
||||||
|
|
||||||
// ロゴ表示時に電源ボタンが押されたなど、既に終了条件が立っていた場合、ここでアプリを終了させる
|
|
||||||
if ( nn::applet::IsExpectedToCloseApplication() )
|
|
||||||
{
|
|
||||||
SleepHandler::Finalize();
|
|
||||||
result = nn::applet::PrepareToCloseApplication();
|
|
||||||
NN_UTIL_PANIC_IF_FAILED( result );
|
|
||||||
nn::applet::CloseApplication();
|
|
||||||
}
|
|
||||||
// グラフィックスライブラリの初期化は、以降で行わなければならない
|
|
||||||
// 他、アプリケーションの初期化処理
|
|
||||||
|
|
||||||
nn::hid::Initialize();
|
|
||||||
nn::hid::PadReader padReader;
|
|
||||||
hpr = &padReader;
|
|
||||||
|
|
||||||
//result = nn::ns::CTR::InitializeForShell();
|
|
||||||
//if (result.IsSuccess())
|
|
||||||
result = nn::am::InitializeForLocalImporter();
|
|
||||||
|
|
||||||
nn::applet::DisableSleep();//スリープ非対応
|
|
||||||
|
|
||||||
const size_t ROMFS_BUFFER_SIZE = 1024 * 64;
|
|
||||||
static char buffer[ROMFS_BUFFER_SIZE];
|
|
||||||
|
|
||||||
// ヒープの確保
|
|
||||||
appHeap.Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR);
|
|
||||||
|
|
||||||
const u32 s_GxHeapSize = 0x800000;
|
|
||||||
// RenderSystem の準備
|
|
||||||
heapForGx = reinterpret_cast<uptr>(appHeap.Allocate(s_GxHeapSize));
|
|
||||||
s_RenderSystem.Initialize(heapForGx, s_GxHeapSize);
|
|
||||||
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.SetFontSize(12);
|
|
||||||
s_RenderSystem.SetColor(1.0, 1.0, 1.0,1.0);
|
|
||||||
s_RenderSystem.DrawText(10,20,"CTR Card Savedata Mover Setup");
|
|
||||||
sprintf(ver,"version %.2f",VERSION);
|
|
||||||
s_RenderSystem.DrawText(10,40,ver);
|
|
||||||
|
|
||||||
if (result.IsFailure()){//初期化に失敗
|
|
||||||
s_RenderSystem.SetColor(1.0, 0.0, 0.0,1.0);
|
|
||||||
s_RenderSystem.DrawText(10,70,"Initialize Error");
|
|
||||||
s_RenderSystem.DrawText(10,90,"check *.desc file");
|
|
||||||
s_RenderSystem.DrawText(10,110,"Push B : Quit");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
while(1){
|
|
||||||
padReader.ReadLatest(&padStatus);
|
|
||||||
if(padStatus.trigger & nn::hid::BUTTON_B)break;
|
|
||||||
}
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
nn::fs::MountRom(16, 16, buffer, ROMFS_BUFFER_SIZE);
|
|
||||||
|
|
||||||
s_RenderSystem.SetColor(1.0, 1.0, 1.0,1.0);
|
|
||||||
s_RenderSystem.DrawText(10,20,"CTR Card Savedata Mover Setup");
|
|
||||||
sprintf(ver,"version %.2f",VERSION);
|
|
||||||
s_RenderSystem.DrawText(10,40,ver);
|
|
||||||
s_RenderSystem.DrawText(80,100,"Push X : Inport");
|
|
||||||
s_RenderSystem.DrawText(80,140,"Push Y : Delete");
|
|
||||||
s_RenderSystem.DrawText(80,160,"Push R : Test Data");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
|
|
||||||
u32 trg = WaitKey(nn::hid::BUTTON_X | nn::hid::BUTTON_Y | nn::hid::BUTTON_R);
|
|
||||||
if (trg & nn::hid::BUTTON_R)TestMain();//テストデータへ
|
|
||||||
// CIA のプログラム ID を取得する。
|
|
||||||
nn::am::ProgramInfo programInfo;
|
|
||||||
if (nn::am::GetProgramInfoFromCia(&programInfo, ROMFS_IMPORTEE_PATH).IsFailure())
|
|
||||||
{
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.SetColor(1.0, 0.0, 0.0,1.0);
|
|
||||||
s_RenderSystem.DrawText(10,50,"cia infomation Error");
|
|
||||||
s_RenderSystem.DrawText(10,70,"Push B : Quit");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
|
|
||||||
while(1){
|
|
||||||
padReader.ReadLatest(&padStatus);
|
|
||||||
if(padStatus.trigger & nn::hid::BUTTON_B)break;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
if(padStatus.trigger & nn::hid::BUTTON_X)
|
|
||||||
s_RenderSystem.DrawText(50,70,"Inporting");
|
|
||||||
else s_RenderSystem.DrawText(50,70,"Delete");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
|
|
||||||
// 既に存在するものをインポートするとエラーが返ってくるので、あらかじめ消しておく。
|
|
||||||
nn::am::DeleteProgram(nn::fs::MEDIA_TYPE_NAND, programInfo.id);
|
|
||||||
// タイトル鍵が違うケースに対応するために、チケットも消しておく。
|
|
||||||
nn::am::DeleteTicket(programInfo.id);
|
|
||||||
|
|
||||||
if(padStatus.trigger & nn::hid::BUTTON_X)
|
|
||||||
{
|
|
||||||
// CIA をインポート
|
|
||||||
if (ImportFile(nn::fs::MEDIA_TYPE_NAND, ROMFS_IMPORTEE_PATH)==false)
|
|
||||||
{
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.SetColor(1.0, 0.0, 0.0,1.0);
|
|
||||||
s_RenderSystem.DrawText(50,50,"Impoprt fail");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(50,50,"Complate");
|
|
||||||
}
|
|
||||||
|
|
||||||
s_RenderSystem.DrawText(10,80,"Push Power Button & Power Off");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
|
|
||||||
WaitKey(0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,110 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: Horizon
|
|
||||||
File: sleep.cpp
|
|
||||||
|
|
||||||
Copyright (C)2010 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$
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include <nn/applet.h>
|
|
||||||
|
|
||||||
#include "sleep.h"
|
|
||||||
|
|
||||||
//extern nn::os::CriticalSection g_SleepCS;
|
|
||||||
//extern nn::os::LightEvent g_TransitionEvent;
|
|
||||||
//extern nn::os::LightEvent g_AwakeEvent;
|
|
||||||
|
|
||||||
volatile bool SleepHandler::s_IsAfterWakeUp = false;
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
|
||||||
void SleepHandler::Initialize( void )
|
|
||||||
{
|
|
||||||
nn::applet::SetSleepQueryCallback(SleepQueryCallback, 0);
|
|
||||||
nn::applet::SetAwakeCallback(AwakeCallback, 0);
|
|
||||||
// nn::applet::SetSleepCancelCallback(NULL, 0); // CancelCallback は使わないことを推奨します
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
|
||||||
void SleepHandler::Finalize( void )
|
|
||||||
{
|
|
||||||
nn::applet::SetSleepQueryCallback(NULL, 0);
|
|
||||||
nn::applet::SetAwakeCallback(NULL, 0);
|
|
||||||
|
|
||||||
nn::applet::DisableSleep();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*
|
|
||||||
システムスリープの指示が来ているかどうかを返します。
|
|
||||||
*------------------------------------------------------------------------*/
|
|
||||||
bool SleepHandler::IsSleepRequested( void )
|
|
||||||
{
|
|
||||||
if ( nn::applet::IsExpectedToReplySleepQuery() )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*
|
|
||||||
本体スリープ状態に移行させるための処理を行います。
|
|
||||||
グラフィックスなどの処理がスリープに入っても問題ない
|
|
||||||
適切なタイミングで呼び出す必要があります。
|
|
||||||
*------------------------------------------------------------------------*/
|
|
||||||
void SleepHandler::SleepSystem( void )
|
|
||||||
{
|
|
||||||
// SleepHandler::IsSleepRequested() == true における呼び出しが前提
|
|
||||||
|
|
||||||
// 何らかの理由で SleepQuery に対して REJECT を返す場合は、ここで判定して
|
|
||||||
// REJECT を返し、この関数を抜ける
|
|
||||||
|
|
||||||
// ファイルシステム処理中はスリープをしない
|
|
||||||
//if ( g_SleepCS.TryEnter() )
|
|
||||||
{
|
|
||||||
// スリープ前処理
|
|
||||||
|
|
||||||
nn::applet::ReplySleepQuery(nn::applet::REPLY_ACCEPT);
|
|
||||||
|
|
||||||
//g_AwakeEvent.Wait();
|
|
||||||
|
|
||||||
// スリープ復帰時の処理
|
|
||||||
|
|
||||||
// g_SleepCS.Leave();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*
|
|
||||||
スリープ問い合わせ時に呼ばれるコールバック
|
|
||||||
*------------------------------------------------------------------------*/
|
|
||||||
AppletQueryReply SleepHandler::SleepQueryCallback( uptr arg )
|
|
||||||
{
|
|
||||||
NN_UNUSED_VAR(arg);
|
|
||||||
//g_AwakeEvent.ClearSignal();
|
|
||||||
|
|
||||||
if ( !nn::applet::IsActive() )
|
|
||||||
{
|
|
||||||
// Inactive なとき、メインスレッドは applet::WaitForStarting() で停止状態であり、
|
|
||||||
// 他のスレッドも停止状態になっているはず(アプリケーション側の実装依存)
|
|
||||||
return nn::applet::REPLY_ACCEPT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return nn::applet::REPLY_LATER;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*
|
|
||||||
スリープ復帰時に呼ばれるコールバック
|
|
||||||
*------------------------------------------------------------------------*/
|
|
||||||
void SleepHandler::AwakeCallback( uptr arg )
|
|
||||||
{
|
|
||||||
NN_UNUSED_VAR(arg);
|
|
||||||
//g_AwakeEvent.Signal();
|
|
||||||
|
|
||||||
s_IsAfterWakeUp = true;
|
|
||||||
}
|
|
||||||
@ -1,46 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: Horizon
|
|
||||||
File: sleep.h
|
|
||||||
|
|
||||||
Copyright (C)2010 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$
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef NN_SAMPLE_DEMOS_DEMO2_SLEEP_H_
|
|
||||||
#define NN_SAMPLE_DEMOS_DEMO2_SLEEP_H_
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*
|
|
||||||
本体スリープに関連する処理
|
|
||||||
*------------------------------------------------------------------------*/
|
|
||||||
class SleepHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SleepHandler() {}
|
|
||||||
~SleepHandler() {}
|
|
||||||
|
|
||||||
static void Initialize( void );
|
|
||||||
static void Finalize( void );
|
|
||||||
static bool IsSleepRequested( void );
|
|
||||||
static void SleepSystem( void );
|
|
||||||
|
|
||||||
static AppletQueryReply SleepQueryCallback( uptr arg );
|
|
||||||
static void AwakeCallback( uptr arg );
|
|
||||||
static void CancelCallback( uptr arg );
|
|
||||||
|
|
||||||
// スリープからの復帰後、1フレーム分描画を待ってから LCD を有効にするためのフラグ
|
|
||||||
static volatile bool s_IsAfterWakeUp;
|
|
||||||
|
|
||||||
private:
|
|
||||||
static nn::os::LightEvent s_AwakeEvent;
|
|
||||||
static bool s_IsInitialized;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // NN_SAMPLE_DEMOS_DEMO2_SLEEP_H_
|
|
||||||
@ -1,664 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: Horizon
|
|
||||||
File: main.cpp
|
|
||||||
|
|
||||||
Copyright (C)2010 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.
|
|
||||||
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <nn.h>
|
|
||||||
#include <nn/hid.h>
|
|
||||||
#include "demo.h"
|
|
||||||
|
|
||||||
nn::Result res;
|
|
||||||
|
|
||||||
nn::fs::FileOutputStream fout;
|
|
||||||
nn::fs::FileInputStream fin;
|
|
||||||
|
|
||||||
nn::fs::Directory dc[256];
|
|
||||||
|
|
||||||
wchar_t file_pathw[1024];
|
|
||||||
char file_path[1024];
|
|
||||||
char file_path2[1024];
|
|
||||||
char src_buff[1024*1024];
|
|
||||||
char get_buff[1024*1024];
|
|
||||||
char str[512];
|
|
||||||
|
|
||||||
|
|
||||||
extern demo::RenderSystemDrawing s_RenderSystem;
|
|
||||||
|
|
||||||
//終了処理
|
|
||||||
extern void finish(void);
|
|
||||||
extern u32 WaitKey(u32 mask);
|
|
||||||
|
|
||||||
//---------------------------------------- テストパターン
|
|
||||||
void make_pattern()
|
|
||||||
{
|
|
||||||
int i,j;
|
|
||||||
j=0;
|
|
||||||
for (i=0;i<1024*1024;i++){
|
|
||||||
src_buff[i] = j+i;
|
|
||||||
if (i & 0x100)j++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//TEST ライト
|
|
||||||
s32 size;
|
|
||||||
#define SIZE_TEST1 421888
|
|
||||||
//#define SIZE_TEST1 20000
|
|
||||||
bool Test1_W()
|
|
||||||
{
|
|
||||||
int total,size2;
|
|
||||||
|
|
||||||
res = nn::fs::FormatSaveData(1,0,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"format Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = nn::fs::TryCreateFile(L"data:/test1.bin",SIZE_TEST1);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Create Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fout.TryInitialize(L"data:/test1.bin",true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
total =0;
|
|
||||||
size2 = 512;
|
|
||||||
//size2 = 4096;
|
|
||||||
//size2 = SIZE_TEST1;
|
|
||||||
while(1){
|
|
||||||
res = fout.TryWrite( &size,&src_buff[total],size2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"write Fail");
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
total += size;
|
|
||||||
sprintf(str,"size %d",total);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
//if (size<512)break;
|
|
||||||
if (total >= SIZE_TEST1)break;
|
|
||||||
if ((SIZE_TEST1 - total) < 512)size2 = SIZE_TEST1 - total ;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::CommitSaveData();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
NN_LOG("total %d",total);
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//ベリファイ
|
|
||||||
bool Test1_V()
|
|
||||||
{
|
|
||||||
int i,total;
|
|
||||||
|
|
||||||
res = fin.TryInitialize(L"data:/test1.bin");
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
total =0;
|
|
||||||
while(1){
|
|
||||||
res = fin.TryRead( &size,&get_buff[total],512);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"read Fail");
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
//if (size == 0)break;
|
|
||||||
for (i=0;i<size;i++) if (src_buff[total+i] != get_buff[total+i])
|
|
||||||
{
|
|
||||||
s_RenderSystem.DrawText(8,100,"verifi Fail at %d",total+i);
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
if (total >= SIZE_TEST1)break;
|
|
||||||
|
|
||||||
total += size;
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
sprintf(str,"now %d",total);
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
if (size<512)break;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//ファイル数
|
|
||||||
bool Test2_W(int n)
|
|
||||||
{
|
|
||||||
int total,size2;
|
|
||||||
|
|
||||||
res = nn::fs::FormatSaveData(700,1,false);//dupなしファイル680
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"format Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
total =0;
|
|
||||||
int num = 0;
|
|
||||||
size2 = 512;
|
|
||||||
while(1){
|
|
||||||
sprintf(file_path,"data:/test%d.bin",num);
|
|
||||||
// res = nn::fs::TryCreateFile(L"data:/test2.bin",SIZE_TEST1);
|
|
||||||
// if (res.IsFailure()){
|
|
||||||
// s_RenderSystem.DrawText(8,100,"Create Fail");
|
|
||||||
// nn::fs::Unmount("data:");
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
res = fout.TryInitialize(file_path,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fout.TryWrite( &size,&src_buff[total],size2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"write Fail");
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
total += size;
|
|
||||||
num++;
|
|
||||||
sprintf(str,"size %d , num %d",total,num);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
//if (size<512)break;
|
|
||||||
if (num == n)break;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::CommitSaveData();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
NN_LOG("total %d",total);
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Test2_V(int n)
|
|
||||||
{
|
|
||||||
int total,size2,i;
|
|
||||||
|
|
||||||
total =0;
|
|
||||||
int num = 0;
|
|
||||||
size2 = 512;
|
|
||||||
while(1){
|
|
||||||
sprintf(file_path,"data:/test%d.bin",num);
|
|
||||||
res = fin.TryInitialize(file_path);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fin.TryRead( &size,&get_buff[total],size2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"read Fail");
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (i=0;i<size;i++) if (src_buff[total+i] != get_buff[total+i])
|
|
||||||
{
|
|
||||||
s_RenderSystem.DrawText(8,100,"verifi Fail at %d",total+i);
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
fin.Finalize();
|
|
||||||
|
|
||||||
total += size;
|
|
||||||
num++;
|
|
||||||
sprintf(str,"size %d , num %d",total,num);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
//if (size<512)break;
|
|
||||||
if (num == n)break;
|
|
||||||
}
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
NN_LOG("total %d",total);
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define DirDepth 80
|
|
||||||
|
|
||||||
//ディレクトリ深度
|
|
||||||
bool Test3_W()
|
|
||||||
{
|
|
||||||
int total,size2;
|
|
||||||
|
|
||||||
res = nn::fs::FormatSaveData(200,200,false);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"format Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int num = 0;
|
|
||||||
total =0;
|
|
||||||
size2 = 512;
|
|
||||||
strcpy(file_path,"data:");
|
|
||||||
while(1){
|
|
||||||
sprintf(str,"/%d",num);
|
|
||||||
strcat(file_path,str);
|
|
||||||
res = nn::fs::TryCreateDirectory(file_path);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
sprintf(str,"length = %d",(int)strlen(file_path));
|
|
||||||
s_RenderSystem.DrawText(8,110,str);
|
|
||||||
s_RenderSystem.DrawText(8,100,"Dir create Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
strcpy(file_path2,file_path);
|
|
||||||
sprintf(str,"/t%d.bin",num);
|
|
||||||
strcat(file_path2,str);
|
|
||||||
res = fout.TryInitialize(file_path2,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fout.TryWrite( &size,&src_buff[total],size2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"write Fail");
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
|
|
||||||
num++;
|
|
||||||
total+=size;
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
sprintf(str,"num %d",num);
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
if (num == DirDepth)break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nn::fs::CommitSaveData();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
sprintf(str,"length = %d",(int)strlen(file_path2));
|
|
||||||
s_RenderSystem.DrawText(8,110,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Test3_V()
|
|
||||||
{
|
|
||||||
int i,total,size2;
|
|
||||||
|
|
||||||
int num = 0;
|
|
||||||
total =0;
|
|
||||||
size2 = 512;
|
|
||||||
strcpy(file_path,"data:");
|
|
||||||
while(1){
|
|
||||||
sprintf(str,"/%d",num);
|
|
||||||
strcat(file_path,str);
|
|
||||||
strcpy(file_path2,file_path);
|
|
||||||
sprintf(str,"/t%d.bin",num);
|
|
||||||
strcat(file_path2,str);
|
|
||||||
res = fin.TryInitialize(file_path2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fin.TryRead( &size,&get_buff[total],size2);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"read Fail");
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (i=0;i<size;i++) if (src_buff[total+i] != get_buff[total+i])
|
|
||||||
{
|
|
||||||
s_RenderSystem.DrawText(8,100,"verifi Fail at %d",total+i);
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
fin.Finalize();
|
|
||||||
|
|
||||||
num++;
|
|
||||||
total+=size;
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
sprintf(str,"num %d",num);
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
if (num == DirDepth) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
sprintf(str,"length = %d",(int)strlen(file_path2));
|
|
||||||
s_RenderSystem.DrawText(8,110,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//max size of name
|
|
||||||
#define max_len 16
|
|
||||||
bool Test4_W()
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
res = nn::fs::FormatSaveData(1,0,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"format Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
strcpy(str,"data:/");
|
|
||||||
for (i =6;i<max_len+6;i++)str[i] = '-';
|
|
||||||
str[i] = 0;
|
|
||||||
res = fout.TryInitialize(str,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fout.TryWrite( &size,&src_buff[0],512);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Write Fail");
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::CommitSaveData();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return (size == 512);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Test4_V()
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
strcpy(str,"data:/");
|
|
||||||
for (i =6;i<max_len+6;i++)str[i] = '-';
|
|
||||||
str[i] = 0;
|
|
||||||
res = fin.TryInitialize(str);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fin.TryRead( &size,&get_buff[0],512);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Read Fail");
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
if (size != 512)return false;
|
|
||||||
|
|
||||||
for (i=0;i<size;i++) if (src_buff[i] != get_buff[i])
|
|
||||||
{
|
|
||||||
s_RenderSystem.DrawText(8,100,"verifi Fail at %d",i);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SIZE_TEST5 (512*100)
|
|
||||||
//生成サイズに満たないデータ
|
|
||||||
bool Test5_W()
|
|
||||||
{
|
|
||||||
int pos;
|
|
||||||
|
|
||||||
res = nn::fs::FormatSaveData(1,0,true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"format Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
res = nn::fs::TryCreateFile(L"data:/test5.bin",SIZE_TEST5);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Create Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
res = fout.TryInitialize(L"data:/test5.bin",true);
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
pos =0;
|
|
||||||
while(1){
|
|
||||||
fout.SetPosition(pos);
|
|
||||||
res = fout.TryWrite( &size,&src_buff[pos],512);
|
|
||||||
if (res.IsFailure() || (size!=512)){
|
|
||||||
s_RenderSystem.DrawText(8,100,"write Fail");
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
sprintf(str,"position %d",pos);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
pos += 1024;//512飛ばす
|
|
||||||
if (pos >= SIZE_TEST5)break;
|
|
||||||
}
|
|
||||||
fout.Finalize();
|
|
||||||
nn::fs::CommitSaveData();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Test5_V()
|
|
||||||
{
|
|
||||||
int i,pos;
|
|
||||||
|
|
||||||
res = fin.TryInitialize(L"data:/test5.bin");
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"open Fail");
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
pos =0;
|
|
||||||
while(1){
|
|
||||||
fin.SetPosition(pos);
|
|
||||||
res = fin.TryRead( &size,&get_buff[pos],512);
|
|
||||||
if (res.IsFailure() || (size!=512)){
|
|
||||||
s_RenderSystem.DrawText(8,100,"read Fail");
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
sprintf(str,"position %d",pos);
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,80,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
|
|
||||||
for (i=0;i<512;i++) if (src_buff[pos+i] != get_buff[pos+i])
|
|
||||||
{
|
|
||||||
s_RenderSystem.DrawText(8,100,"verifi Fail at %d",i);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
pos += 1024;//512飛ばす
|
|
||||||
if (pos >= SIZE_TEST5)break;
|
|
||||||
}
|
|
||||||
fin.Finalize();
|
|
||||||
nn::fs::Unmount("data:");
|
|
||||||
s_RenderSystem.DrawText(10,100,"end");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define menu_ct 6
|
|
||||||
#define menu_max (menu_ct-1)
|
|
||||||
char* menu_str[menu_ct] = {"Casual check","Large size","many files","Deep directry","max size name","data < create size"};
|
|
||||||
|
|
||||||
#define menu_top_Y 80
|
|
||||||
#define menu_top_X 60
|
|
||||||
#define menu_spc 14
|
|
||||||
|
|
||||||
//---------------------------------------------------------------- main
|
|
||||||
void TestMain()
|
|
||||||
{
|
|
||||||
u32 value;
|
|
||||||
int curs = 0;
|
|
||||||
int i;
|
|
||||||
bool sccs;
|
|
||||||
|
|
||||||
//Render
|
|
||||||
s_RenderSystem.SetColor(1.0f,1.0f,1.0f,1.0f);
|
|
||||||
|
|
||||||
//TEST PATTERN
|
|
||||||
make_pattern();
|
|
||||||
|
|
||||||
while(1){
|
|
||||||
|
|
||||||
//menu 表示
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(8,20," Backup Verifi for SaveDataMover Test ");
|
|
||||||
s_RenderSystem.DrawText(8,40," for 512KB Backup");
|
|
||||||
for (i=0;i<menu_ct;i++)s_RenderSystem.DrawText(menu_top_X,menu_top_Y+menu_spc*i,menu_str[i]);
|
|
||||||
s_RenderSystem.DrawText(menu_top_X-30,menu_top_Y+menu_spc*curs,"->");
|
|
||||||
s_RenderSystem.DrawText(menu_top_X,menu_top_Y+menu_spc*(menu_max+2),"push A:Write ,X:Verifi");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
|
|
||||||
//ボタン待ち
|
|
||||||
value = WaitKey(nn::hid::BUTTON_A | nn::hid::BUTTON_X |nn::hid::BUTTON_UP |nn::hid::BUTTON_DOWN);
|
|
||||||
if (value & nn::hid::BUTTON_A){//ライト
|
|
||||||
sccs = false;
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,70,"writing");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
switch(curs){
|
|
||||||
case 0:sccs = Test2_W(10);break;
|
|
||||||
case 1:sccs = Test1_W();break;
|
|
||||||
case 2:sccs = Test2_W(680);break;
|
|
||||||
case 3:sccs = Test3_W();break;
|
|
||||||
case 4:sccs = Test4_W();break;
|
|
||||||
case 5:sccs = Test5_W();break;
|
|
||||||
default:break;
|
|
||||||
}
|
|
||||||
}else if (value & nn::hid::BUTTON_X)
|
|
||||||
{//ベリファイ
|
|
||||||
sccs = false;
|
|
||||||
s_RenderSystem.Clear();
|
|
||||||
s_RenderSystem.DrawText(10,70,"verifi");
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
nngxWaitVSync(NN_GX_DISPLAY0);
|
|
||||||
res =nn::fs::MountSaveData();
|
|
||||||
if (res.IsFailure()){
|
|
||||||
s_RenderSystem.DrawText(8,100,"Mount Fail");
|
|
||||||
}else
|
|
||||||
switch(curs){
|
|
||||||
case 0:sccs = Test2_V(10);break;
|
|
||||||
case 1:sccs = Test1_V();break;
|
|
||||||
case 2:sccs = Test2_V(680);break;
|
|
||||||
case 3:sccs = Test3_V();break;
|
|
||||||
case 4:sccs = Test4_V();break;
|
|
||||||
case 5:sccs = Test5_V();break;
|
|
||||||
default:break;
|
|
||||||
}
|
|
||||||
}else if (value & nn::hid::BUTTON_UP){
|
|
||||||
if(curs > 0)curs--;
|
|
||||||
}else if(curs < menu_max)curs++;
|
|
||||||
|
|
||||||
if (value & (nn::hid::BUTTON_A | nn::hid::BUTTON_X)){
|
|
||||||
if (sccs == false)s_RenderSystem.DrawText(8,120,"Failed");
|
|
||||||
sprintf(str,"desc %d",res.GetDescription());
|
|
||||||
s_RenderSystem.DrawText(10,140,str);
|
|
||||||
s_RenderSystem.SwapBuffers();
|
|
||||||
NN_LOG("desc %d",res.GetDescription());
|
|
||||||
WaitKey(nn::hid::BUTTON_B);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
End of file
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
#ifndef TEST_DATA_H_
|
|
||||||
#define TEST_DATA_H_
|
|
||||||
|
|
||||||
void TestMain();
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Loading…
Reference in New Issue
Block a user