From 34b3dc450392d69cf6ba1d2ab7c80343d7815cf7 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Wed, 25 Mar 2009 08:09:36 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BFMRC=E6=A9=9F=E8=83=BD=E3=81=AE=E5=8B=95?= =?UTF-8?q?=E4=BD=9C=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E7=94=A8=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3ROM=E3=81=AE=E5=85=83=E3=81=A8=E3=81=AA=E3=82=8B?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E3=81=AA=E3=81=97ROM=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@253 7061adef-622a-194b-ae81-725974e89856 --- .../original_rom/Card/Makefile | 51 ++++ .../original_rom/Card/ROM-TS.rsf | 238 +++++++++++++++++ .../original_rom/Makefile | 35 +++ .../original_rom/Nand/Makefile | 54 ++++ .../original_rom/Nand/ROM-TS_nand.rsf | 252 ++++++++++++++++++ .../original_rom/common/0CZA/libsyscall.a | Bin 0 -> 3132 bytes .../common/0CZA/rom_header_0cza.template.sbin | Bin 0 -> 16384 bytes .../original_rom/common/banner/Makefile | 49 ++++ .../original_rom/common/banner/banner_v3.bsf | Bin 0 -> 996 bytes .../common/banner/icon/gameIcon.bmp | Bin 0 -> 630 bytes .../original_rom/common/src/main.c | 238 +++++++++++++++++ 11 files changed, 917 insertions(+) create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/Card/Makefile create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/Card/ROM-TS.rsf create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/Makefile create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/Nand/Makefile create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/Nand/ROM-TS_nand.rsf create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/libsyscall.a create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/rom_header_0cza.template.sbin create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/banner/Makefile create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/banner/banner_v3.bsf create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/banner/icon/gameIcon.bmp create mode 100644 tests/MasterEditorTWL_mrc_roms/original_rom/common/src/main.c diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/Card/Makefile b/tests/MasterEditorTWL_mrc_roms/original_rom/Card/Makefile new file mode 100644 index 0000000..d877b54 --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/Card/Makefile @@ -0,0 +1,51 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - tests - appjumpTest - Card +# File: Makefile +# +# 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$ +#---------------------------------------------------------------------------- + +TARGET_PLATFORM := TWL + +SUBDIRS = ../common/banner \ + $(ROOT)/build/demos/gx/UnitTours/DEMOLib + +TARGET_BIN = CardRomHeaderChecker.srl +#INCDIR = ../common/include +SRCDIR = ../common/src +SRCS = main.c + +ROM_SPEC = ./ROM-TS.rsf + +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/commondefs +include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib + +# インストール指定 +#ifneq ($(TWL_IPL_RED_ROOT),) +#INSTALL_DIR = $(TWL_IPL_RED_ROOT)/debugsoft/CardRomHeaderChecker +#INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN) +#endif + + +do-build: $(TARGETS) + +#---------------------------------------------------------------------------- + +LIBSYSCALL = ../common/0CZA/libsyscall.a + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + +#===== End of Makefile ===== diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/Card/ROM-TS.rsf b/tests/MasterEditorTWL_mrc_roms/original_rom/Card/ROM-TS.rsf new file mode 100644 index 0000000..b02f0fd --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/Card/ROM-TS.rsf @@ -0,0 +1,238 @@ +#---------------------------------------------------------------------------- +# Project: TwlSDK - include +# File: ROM-TS.rsf +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded insructions, 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$ +#---------------------------------------------------------------------------- +# +# TWL ROM SPEC FILE +# + +Arm9 +{ + Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)" + Elf "$(MAKEROM_ARM9:r).tef" +} + +Arm7 +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)" + Elf "$(MAKEROM_ARM7_BASE:r).tef" +} + +Arm9.Ltd +{ + Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)" +} + +Arm7.Ltd +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)" +} + +Property +{ + ### + ### Settings for FinalROM + ### + #### BEGIN + # + # TITLE NAME: Your product name within 12bytes + # + TitleName "SAMPLE GAME" + + # + # MAKER CODE: Your company ID# in 2 ascii words + # issued by NINTENDO + # + MakerCode "00" + + # + # REMASTER VERSION: Mastering version + # + #RomVersion 0 + + # + # ROM SPEED TYPE: [MROM/1TROM/UNDEFINED] + # + RomSpeedType 1TROM + + # + # ROM SIZE: in bit [64M/128M/256M/512M/1G/2G/4G] + # + RomSize 256M + + # + # ROM PADDING: TRUE if finalrom + # + RomFootPadding TRUE + + # + # ROM HEADER TEMPLATE: Provided to every product by NINTENDO + # + RomHeaderTemplate ../common/0CZA/rom_header_0cza.template.sbin + + # + # BANNER FILE: generated from Banner Spec File + # + BannerFile ../common/banner/banner.bnr + + ### + ### Setting for TWL + ### + + # + # ROM HEADER Ltd: Provided to every product by NINTENDO + # + RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin + + # + # Digest parameters: + # + DigestParam 1024 32 + + # + # WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD + # MAP2_BB_HYB/MAP2_BB_LTD/MAP2_TS_HYB/MAP2_TS_LTD] + # don't have to edit + # + WramMapping $(MAKEROM_WRAM_MAPPING) + + # + # CardRegion: card region [Japan/America/Europe/Australia/China/Korea] + # + CardRegion Japan + + # + # Codec mode: + # don't have to edit + # + CodecMode $(MAKEROM_CODEC_MODE) + + # + # Disp WiFiConnection Icon for Launcher [TRUE/FALSE] + # + #WiFiConnectionIcon FALSE + + # + # Disp DSWireless Icon for Launcher [TRUE/FALSE] + # + #DSWirelessIcon FALSE + + # + # Agree EULA [TRUE/FALSE] + # + #AgreeEULA FALSE + + # + # Agree EULA version [1 - 255] + # + #AgreeEULAVersion 1 + + ### + #### END +} + +AppendProperty +{ + # + # Boot allowed Media: [GameCard] + # + Media GameCard + + # + # GameCode for TitleID : Your GameCode in 4 ascii words + # + #GameCode ABCJ + + # + # Public save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M] + # + #PublicSaveDataSize 1M + + # + # Private save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M] + # + #PrivateSaveDataSize 2M + + # + # Enable SubBannerFile + #SubBannerFile TRUE + + # + # Game card power on: [TRUE/FALSE] + # + #GameCardOn FALSE + + # + # Game card transferd to nitro mode: [TRUE/FALSE] + # + #GameCardNitroMode FALSE +} + +Rating +{ + # + # Permited age to play for each rating organization + # + # Supported organization + # - CERO (OGN0) : for Japan + # - ESRB (OGN1) : for North America + # - BBFC (OGN2) : obsolete organization + # - USK (OGN3) : for German + # - PEGI_GEN (OGN4) : for Europe + # - PEGI_FINLAND (OGN5) : obsolete organization + # - PEGI_PRT (OGN6) : for Portugal + # - PEGI_BBFC (OGN7) : for UK + # - OFLC (OGN8) : for Australia and NewZealand + # - OGN9 : reserved + # - OGN10 : reserved + # - OGN11 : reserved + # - OGN12 : reserved + # - OGN13 : reserved + # - OGN14 : reserved + # - OGN15 : reserved + # + # Available age [ 0 - 31 / PENDING / FREE ] + # + + CERO 0 +# ESRB FREE +# USK FREE +# PEGI_GEN FREE +# PEGI_PRT FREE +# PEGI_BBFC FREE +# OFLC FREE + + # + # Unnecessary rating: [TRUE/FALSE] + # +# Unnecessary TRUE +} + +RomSpec +{ + Offset 0x00000000 + Segment ALL + HostRoot $(MAKEROM_ROMROOT) + Root / + File $(MAKEROM_ROMFILES) +} diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/Makefile b/tests/MasterEditorTWL_mrc_roms/original_rom/Makefile new file mode 100644 index 0000000..d5d8dc2 --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/Makefile @@ -0,0 +1,35 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - debugsoft - ApplicationJump +# File: Makefile +# +# 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$ +#---------------------------------------------------------------------------- +TARGET_PLATFORM = TWL + +include $(TWLSDK_ROOT)/build/buildtools/commondefs + +#---------------------------------------------------------------------------- + +SUBDIRS = Card \ + Nand + +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + +#---------------------------------------------------------------------------- + +#===== End of Makefile ===== + + diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/Makefile b/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/Makefile new file mode 100644 index 0000000..dd80640 --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/Makefile @@ -0,0 +1,54 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - tests - appjumpTest - Card +# File: Makefile +# +# 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$ +#---------------------------------------------------------------------------- + +TARGET_PLATFORM := TWL +TWL_NANDAPP := TRUE +TWL_ARCHGEN := LIMITED + +SUBDIRS = ../common/banner \ + $(ROOT)/build/demos/gx/UnitTours/DEMOLib + +TARGET_BIN = CardRomHeaderChecker.tad +#INCDIR = ../common/include +SRCDIR = ../common/src +SRCS = main.c + +ROM_SPEC = ./ROM-TS_nand.rsf + +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/commondefs +include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib + +# インストール指定 +#ifneq ($(TWL_IPL_RED_ROOT),) +#INSTALL_DIR = $(TWL_IPL_RED_ROOT)/debugsoft/CardRomHeaderChecker +#INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN) +#endif + +#TWL_LIBS_EX += libtcl$(TWL_LIBSUFFIX).a + +do-build: $(TARGETS) + +#---------------------------------------------------------------------------- + +LIBSYSCALL = ../common/0CZA/libsyscall.a + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + +#===== End of Makefile ===== diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/ROM-TS_nand.rsf b/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/ROM-TS_nand.rsf new file mode 100644 index 0000000..b15c03c --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/Nand/ROM-TS_nand.rsf @@ -0,0 +1,252 @@ +#---------------------------------------------------------------------------- +# Project: TwlSDK - include +# File: ROM-TS.rsf +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded insructions, 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$ +#---------------------------------------------------------------------------- +# +# TWL ROM SPEC FILE +# + +Arm9 +{ + Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)" + Elf "$(MAKEROM_ARM9:r).tef" +} + +Arm7 +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)" + Elf "$(MAKEROM_ARM7_BASE:r).tef" +} + +Arm9.Ltd +{ + Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)" +} + +Arm7.Ltd +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)" +} + +Property +{ + ### + ### Settings for FinalROM + ### + #### BEGIN + # + # TITLE NAME: Your product name within 12bytes + # + TitleName "SAMPLE GAME" + + # + # MAKER CODE: Your company ID# in 2 ascii words + # issued by NINTENDO + # + MakerCode "00" + + # + # REMASTER VERSION: Mastering version + # + #RomVersion 0 + + # + # ROM SPEED TYPE: [MROM/1TROM/UNDEFINED] + # + #RomSpeedType $(MAKEROM_ROMSPEED) + + # + # ROM SIZE: in bit [64M/128M/256M/512M/1G/2G/4G] + # + #RomSize 64M + + # + # ROM PADDING: TRUE if finalrom + # + #RomFootPadding TRUE + + # + # ROM HEADER TEMPLATE: Provided to every product by NINTENDO + # + RomHeaderTemplate ../common/0CZA/rom_header_0cza.template.sbin + + # + # BANNER FILE: generated from Banner Spec File + # + BannerFile ../common/banner/banner.bnr + + # + # Permit LandingNormalJump: for TWL "ApplicationJump" function [TRUE/FALSE] + # + #PermitLandingNormalJump FALSE + + # + # Permit LandingTmpJump: for TWL "ApplicationJump" function [TRUE/FALSE] + # + #PermitLandingTmpJump FALSE + + ### + ### Setting for TWL + ### + + # + # ROM HEADER Ltd: Provided to every product by NINTENDO + # + RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin + + # + # Digest parameters: + # + DigestParam 1024 32 + + # + # WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD + # MAP2_BB_HYB/MAP2_BB_LTD/MAP2_TS_HYB/MAP2_TS_LTD] + # don't have to edit + # + WramMapping $(MAKEROM_WRAM_MAPPING) + + # + # CardRegion: card region [Japan/America/Europe/Australia/China/Korea] + # + CardRegion Japan + + # + # Codec mode: + # don't have to edit + # + CodecMode $(MAKEROM_CODEC_MODE) + + # + # Disp WiFiConnection Icon for Launcher [TRUE/FALSE] + # + #WiFiConnectionIcon FALSE + + # + # Disp DSWireless Icon for Launcher [TRUE/FALSE] + # + #DSWirelessIcon FALSE + + # + # Agree EULA [TRUE/FALSE] + # + #AgreeEULA FALSE + + # + # Agree EULA version [1 - 255] + # + #AgreeEULAVersion 1 + + #SDCardAccess TRUE + #JpegSign TRUE + #PhotoAccess Read + + ### + #### END +} + +AppendProperty +{ + # + # Boot allowed Media: [GameCard] + # + Media NAND + + # + # GameCode for TitleID : Your GameCode in 4 ascii words + # + #GameCode ABCJ + + # + # Public save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M] + # + PublicSaveDataSize 1M + + # + # Private save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M] + # + PrivateSaveDataSize 2M + + # + # Enable SubBannerFile + SubBannerFile TRUE + + # + # Game card power on: [TRUE/FALSE] + # + #GameCardOn FALSE + + # + # Game card transferd to nitro mode: [TRUE/FALSE] + # + #GameCardNitroMode FALSE +} + +RomSpec +{ + Offset 0x00000000 + Segment ALL + HostRoot $(MAKEROM_ROMROOT) + Root / + File $(MAKEROM_ROMFILES) +} + +Rating +{ + # + # Permited age to play for each rating organization + # + # Supported organization + # - CERO (OGN0) : for Japan + # - ESRB (OGN1) : for North America + # - BBFC (OGN2) : obsolete organization + # - USK (OGN3) : for German + # - PEGI_GEN (OGN4) : for Europe + # - PEGI_FINLAND (OGN5) : obsolete organization + # - PEGI_PRT (OGN6) : for Portugal + # - PEGI_BBFC (OGN7) : for UK + # - OFLC (OGN8) : for Australia and NewZealand + # - GRB (OGN9) : for Korea + # - OGN10 : reserved + # - OGN11 : reserved + # - OGN12 : reserved + # - OGN13 : reserved + # - OGN14 : reserved + # - OGN15 : reserved + # + # Available age [ 0 - 31 / PENDING / FREE ] + + CERO FREE +# ESRB FREE +# USK FREE +# PEGI_GEN FREE +# PEGI_PRT FREE +# PEGI_BBFC FREE +# OFLC FREE +# GRB FREE + + # + # Unnecessary rating: [TRUE/FALSE] + # + #Unnecessary TRUE +} diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/libsyscall.a b/tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/libsyscall.a new file mode 100644 index 0000000000000000000000000000000000000000..7377eea2476c26f18dd5ba86be252f13f803f27d GIT binary patch literal 3132 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 literal 0 HcmV?d00001 diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/rom_header_0cza.template.sbin b/tests/MasterEditorTWL_mrc_roms/original_rom/common/0CZA/rom_header_0cza.template.sbin new file mode 100644 index 0000000000000000000000000000000000000000..f99ad7652ec414bb271f3c375dddc2b81c2eb127 GIT binary patch literal 16384 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/dev/null && \ + $(MAKEBANNER) -N $(BANNER_ICON_NAME) $(BANNER_SPEC) $(TARGETS) + +# diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/common/banner/banner_v3.bsf b/tests/MasterEditorTWL_mrc_roms/original_rom/common/banner/banner_v3.bsf new file mode 100644 index 0000000000000000000000000000000000000000..427fb48c166798ec3213513d3982498b0b586646 GIT binary patch literal 996 zcmc(e&rZTX5XQf&B)-EYoWU3p4;&#>G@`~L_odaeu~bv4#Ftlpv&$3gL9)qo{(U>& z>`Z@uhMFl?CZ|z24%@5cyr{#Q>jSMo%T%jDKi5FRV|K*+kBoJl)~aB#htcbik<(6} zczS$W7&;x`USs!IEp{Db0n!uM<)tJIjxhKSb}8)Mt=@fE~(DqpPI$(Q>ootz~S|L6m5{iauHE^#eDPA{qH4C()U$!JjF}lEfLO+8J||L!NRbbT!g5Xj8;}PAcnd^lLFJG3Nye biM1q|4&}dNEpFD6SHq|ur1jIB=a0ApQ*xyk literal 0 HcmV?d00001 diff --git a/tests/MasterEditorTWL_mrc_roms/original_rom/common/src/main.c b/tests/MasterEditorTWL_mrc_roms/original_rom/common/src/main.c new file mode 100644 index 0000000..398f523 --- /dev/null +++ b/tests/MasterEditorTWL_mrc_roms/original_rom/common/src/main.c @@ -0,0 +1,238 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - template - demos + File: main.c + + Copyright 2003-2005,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 +//#include +//#include +//#include +#include +#include +#include "DEMO.h" + +#define COLOR_WHITE (GX_RGBA(31, 31, 31, 1)) +#define COLOR_CYAN (GX_RGBA(0, 31, 31, 1)) +#define COLOR_RED (GX_RGBA(31, 0, 0, 1)) +#define COLOR_YELLOW (GX_RGBA(31, 31, 0, 1)) + +#define TITLE_COLOR COLOR_YELLOW +#define LABEL_COLOR COLOR_WHITE +#define VALUE_COLOR COLOR_WHITE +#define OK_COLOR COLOR_CYAN +#define NG_COLOR COLOR_RED + +// CRC計算 +#define CRC16_INIT_VALUE 0xffff +#define CALC_CRC16_SIZE 0x15e +static u16 CalcCRC16(u16 start, u8 *data, int size); + +void TwlMain(void) +{ + ROM_Header *prhTWL, *prhNTR; + char str[100]; + u16 row = 0; + u16 shift = 8; + u16 crc; + + OS_Init(); + (void)OS_EnableIrq(); + (void)OS_EnableInterrupts(); + + DEMOInitCommon(); + DEMOInitVRAM(); + DEMOInitDisplayBitmap(); + DEMOHookConsole(); + + DEMOSetBitmapTextColor(GX_RGBA(31, 31, 0, 1)); + DEMOSetBitmapGroundColor(DEMO_RGB_CLEAR); + DEMOStartDisplay(); +/* + // TCLライブラリの組込み + { + void* pTableBuf; + void* pWorkBuf; + + FSResult fs_result; + TCLResult result; + + // TCLアクセサ + TCLAccessor accessor; + + // TCL初期化 + // 32byteアライメントが必要 + pTableBuf = OS_Alloc( TCL_GetTableBufferSize() ); + pWorkBuf = OS_Alloc( TCL_GetWorkBufferSize() ); + if( pTableBuf == NULL || pWorkBuf == NULL ) + { + OS_Panic("Cannot allocate memory!"); + } + + result = TCL_LoadTable( &accessor, + pTableBuf, + TCL_GetTableBufferSize(), + pWorkBuf, + TCL_GetWorkBufferSize(), + &fs_result ); + } +*/ + // カードROMヘッダ: NTR互換用 + prhNTR = (ROM_Header*)HW_CARD_ROM_HEADER; + + DEMOSetBitmapTextColor(COLOR_YELLOW); + DEMODrawText( 8, row, "Card ROM Header" ); + row += 2 * shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Title Name:" ); + MI_CpuClear8( str, 100 ); + MI_CpuCopy8( prhNTR->s.title_name, str, TITLE_NAME_MAX ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, str ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Game Code:" ); + MI_CpuClear8( str, 100 ); + MI_CpuCopy8( prhNTR->s.game_code, str, GAME_CODE_MAX ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, str ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Header CRC:" ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, "0x%04x", prhNTR->s.header_crc16 ); + row += shift; + + crc = CalcCRC16( CRC16_INIT_VALUE, (u8*)prhNTR, CALC_CRC16_SIZE ); + if( crc == prhNTR->s.header_crc16 ) + { + DEMOSetBitmapTextColor(OK_COLOR); + DEMODrawText( 96, row, "0x%04x OK", crc ); + } + else + { + DEMOSetBitmapTextColor(NG_COLOR); + DEMODrawText( 96, row, "0x%04x NG", crc ); + } + row += 3 * shift; + + // この固定メモリアドレスにTWLカードROMヘッダがある + // これはカードROMヘッダとは異なる + // カードROMヘッダ: NTR互換のための領域でROMヘッダのNTR互換部分だけがある + // TWLカードROMヘッダ: NTR互換部分に加えてROMヘッダのTWLで追加された部分もある + prhTWL = (ROM_Header*)HW_TWL_CARD_ROM_HEADER_BUF; + + DEMOSetBitmapTextColor(COLOR_YELLOW); + DEMODrawText( 8, row, "TWL Card ROM Header" ); + row += 2 * shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Title Name: " ); + MI_CpuClear8( str, 100 ); + MI_CpuCopy8( prhTWL->s.title_name, str, TITLE_NAME_MAX ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, str ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Game Code: " ); + MI_CpuClear8( str, 100 ); + MI_CpuCopy8( prhTWL->s.game_code, str, GAME_CODE_MAX ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, str ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "TitleID_Hi: " ); + prhTWL = (ROM_Header*)HW_TWL_CARD_ROM_HEADER_BUF; + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, "0x%08x", prhTWL->s.titleID_Hi ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "TitleID_Lo: " ); + MI_CpuClear8( str, 100 ); + MI_CpuCopy8( prhTWL->s.titleID_Lo, str, 4 ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, str ); + row += shift; + + DEMOSetBitmapTextColor(LABEL_COLOR); + DEMODrawText( 8, row, "Header CRC:" ); + DEMOSetBitmapTextColor(VALUE_COLOR); + DEMODrawText( 96, row, "0x%04x", prhTWL->s.header_crc16 ); + row += shift; + + crc = CalcCRC16( CRC16_INIT_VALUE, (u8*)prhTWL, CALC_CRC16_SIZE ); + if( crc == prhTWL->s.header_crc16 ) + { + DEMOSetBitmapTextColor(OK_COLOR); + DEMODrawText( 96, row, "0x%04x OK", crc ); + } + else + { + DEMOSetBitmapTextColor(NG_COLOR); + DEMODrawText( 96, row, "0x%04x NG", crc ); + } + row += 2 * shift; + + DEMOSetBitmapTextColor(GX_RGBA(31, 31, 31, 1)); + DEMODrawText( 8, row, "End." ); + + while (1) + { + DEMO_DrawFlip(); + OS_WaitVBlankIntr(); + } +} + + +/*---------------------------------------------------------------------------* + * Math + * + * u16 CalcCRC16( u16 start, u8 *data, int size ) + *---------------------------------------------------------------------------*/ + +static u16 crc16_table[16] = { + 0x0000, 0xCC01, 0xD801, 0x1400, + 0xF001, 0x3C00, 0x2800, 0xE401, + 0xA001, 0x6C00, 0x7800, 0xB401, + 0x5000, 0x9C01, 0x8801, 0x4400 +}; + +static u16 CalcCRC16(u16 start, u8 *data, int size) +{ + u16 r1; + u16 total = start; + + while (size-- > 0) + { + // 下位4bit + r1 = crc16_table[total & 0xf]; + total = (u16)((total >> 4) & 0x0fff); + total = (u16)(total ^ r1 ^ crc16_table[*data & 0xf]); + + // 上位4bit + r1 = crc16_table[total & 0xf]; + total = (u16)((total >> 4) & 0x0fff); + total = (u16)(total ^ r1 ^ crc16_table[(*data >> 4) & 0xf]); + + data++; + } + return total; +} + +/*====== End of main.c ======*/