Difference between revisions of "Nintendo Badge Arcade"
DaniElectra (talk | contribs) (Create Nintendo Badge Arcade (PrizeCollection structure currently missing)) |
DaniElectra (talk | contribs) m (Add links to PrizeCollection) |
||
Line 47: | Line 47: | ||
=== allbadge.sarc === | === allbadge.sarc === | ||
− | This file uses the PrizeCollection structure. | + | This file uses the [[Nintendo Badge Arcade/PrizeCollection|PrizeCollection]] structure. |
=== boss.sarc === | === boss.sarc === | ||
Line 99: | Line 99: | ||
==== sharc ==== | ==== sharc ==== | ||
− | This folder stores the PrizeCollection file with the badges and machines available for the belonging week. | + | This folder stores the [[Nintendo Badge Arcade/PrizeCollection|PrizeCollection]] file with the badges and machines available for the belonging week. |
The file is named like this: YYmmdd_YYmmdd.sarc, where the first date is the starting day and the second one the ending. | The file is named like this: YYmmdd_YYmmdd.sarc, where the first date is the starting day and the second one the ending. |
Revision as of 00:18, 18 December 2022
Nintendo Badge Arcade is an application that allows getting badges for the 3DS's Home Menu via a claw machine-like game.
SpotPass usage
The game can use four different URLs to retrieve game data.
- https://npdl.cdn.nintendowifi.net/p01/nsa/<regionID>/FGONLYT/playinfo_<gameVersion>.dat
- https://npdl.cdn.nintendowifi.net/p01/nsa/<regionID>/data/data_<gameVersion>.dat This file is a SARC archive with all game data (like machines and Miiverse posts) that is available within a period of one week. This data is updated every Friday at 1:40 AM GMT
- https://npdl.cdn.nintendowifi.net/p01/nsa/<regionID>/data/allbadge_<gameVersion>.dat This has a SARC archive with all game badges and machines for the game.
- https://npdl.cdn.nintendowifi.net/p01/nsa/<regionID>/news/<language>/news_<gameVersion>.dat
Where gameVersion goes the version of the game, which can be v130 or v131, langcode is the two-character language codes from config, and regionID is from the below table.
Region | ID |
---|---|
JPN | ? |
USA | OvbmGLZ9senvgV3K |
EUR | J6la9Kj8iqTvAPOq |
RomFS
Inside the romfs data, we can find the following folders:
root ├── message ├── primitive_renderer ├── region_common └── region_XXX
- "message" has all in-game dialogues
- "region_common" has a similar scheme to data.dat, but has all in-game assets
- "region_XXX" is similar as region_common, but has all region specific files, like the first badge machine. Where XXX goes the region name (EUR, JPN, USA)
ExtData
Inside the extdata, we can find the following files:
- "addSaveData"
- "allbadge.sarc" A register of all badges retrieved from data_<gameVersion>.dat file?
- "boss.sarc" The data_<gameVersion>.dat file retrieved from SpotPass
- "savedata"
allbadge.sarc
This file uses the PrizeCollection structure.
boss.sarc
All game data stored here has the following structure:
root ├── message ├── post ├── sharc ├── talkpic ├── xml └── Schedule.xml
message
This folder stored all online-related game dialogues on each language supported by the region. It goes down the following directories:
message └── boss_XXX └── XXxx └── boss └── slotAXX ├── BossText.msbt ├── Emergency.msbf ├── HallAd.msbf ├── PaidTalk.msbf ├── PostComment.msbf ├── RetnHall.msbf ├── StartUp.msbf ├── ThemeShop.msbf └── Training.msbf
Where X goes the region, and x belongs to the language. Within slotAXX, A is a letter and XX are numbers.
post
This folder stored all Miiverse posts related to customizing the Home Menu with themes and badges. Each SARC file inside here has the following sructure:
root ├── Image.jpg ├── Mii.Etc1_a4 └── post.xml
The post.xml file contains the following data:
<?xml version="1.0" encoding="utf-8"?> <DistributablePost xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <index>x</index> <Id><Post ID></Id> <Name>Mii name</Name> <PathMii>Mii.Etc1_a4</PathMii> <PathImage>Image.jpg</PathImage> </DistributablePost>
sharc
This folder stores the PrizeCollection file with the badges and machines available for the belonging week.
The file is named like this: YYmmdd_YYmmdd.sarc, where the first date is the starting day and the second one the ending.
talkpic
This folder contains some images inside SARC files. Each SARC file has the following content:
root └── talkpic └── <Name of SARC file> └── The images...
xml
This folder has some XML data that controls some of the features inside this structure. It has the following structure:
xml └── talkpic └── TalkPic.xml
The TalkPic.xml file has the following data:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <CenterTalkPicProperty> <TalkPicSet> <TalkPic Key='<Name of image>' Arc='<Name of SARC file>' Width='512' Height='256' Format='Etc1 or Etc1_a4 or Rgb565' Type='400x240 (Original image resolution?)' Path='path/to/image'/> </TalkPicSet> </CenterTalkPicProperty>
Schedule.xml
This file controls the availability of each of the features inside this structure within the specified dates. It has the following data:
<?xml version="1.0" encoding="utf-8"?> <FileItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Items> <FileItem> <DateStartText>YYYYmmdd</DateStartText> <DateExpireText>YYYYmmdd</DateExpireText> <ColorText>#aaaaff</ColorText> <Comment /> <RegexSetName>MessageDir</RegexSetName> <Expression>boss/output/message/(?<Region>boss_(JPN|EUR|USA))/(?<Locale>[a-zA-Z]+)/boss/(?<Dir>.+)</Expression> <KeyVariable>Boss/</KeyVariable> <ValueVariable>boss/$(Dir)/</ValueVariable> <OutputVariable>boss/archive_src/$(ArchiveName)/message/$(Region)/$(Locale)/boss/$(Dir)/</OutputVariable> <PreviewVariable /> <CommandVariable>path/to/command_used.bat</CommandVariable> <ArgumentsVariable /> <Key>Boss/</Key> <Value>boss/slotAXX/</Value> <Output>boss/archive_src/BossYYYYmmdd_YYYYmmdd/message/boss_XXX/XXxx/boss/slotAXX/</Output> <Preview /> <SrcPath>boss/output/message/boss_EUR/EUde/boss/slotD07</SrcPath> <Command>path/to/command_used.bat</Command> <Arguments /> </FileItem> </Items> <ItemsCount><Number of items></ItemsCount> <BasePath>%CTR_CENTER_ROOT%/</BasePath> <XMLPath>boss/archive_src/$(ArchiveName)/Schedule.xml</XMLPath> <ArchiveName>Boss$(DateFrom)_$(DateTo)</ArchiveName> <DateFrom>YYYY-mm-ddT00:00:00</DateFrom> <DateTo>YYYY-mm-ddT00:00:00</DateTo> </FileItems>
Each FileItem's content varies depending on its RegexSetName. Below are the possible values:
RegexSetName | Key | Value |
---|---|---|
MessageDir | Boss/ | boss/slotAXX/ |
TalkPicTex | TalkPicTex/ | TalkPicTex/ |
PrizeCollection | sharc/pc00.sarc | sharc/YYmmdd_YYmmdd.sarc |
Post | post/PostXX.sarc | post/<Post ID>.sarc |
BonusStage | BonusStageName | <Stage Name> |
DefaultStage | DefaultStageNameXXX | <Stage Name> |