Jump to content

Meta:ToDo

From Mii Technical Wiki
Revision as of 23:52, 23 September 2025 by Jo (talk | contribs) (Created page with "if mii internals was github wiki ◦ Structures/Data Formats ◦ Character Data ◦ Wii/DS (RFLCharData, separate section for little endian) ◦ 3DS/Wii U (Ver3StoreData/FFL/CFL/AFL) ◦ Switch (nn::mii::CharInfo) ◦ Switch (Internal DB, nn::mii::CoreData/StoreData) ◦ CFL/FFL WrappedStoreData (QR Encryption) ◦ Switch amiibo (nn::mii::NfpStoreData, nn::mii::detail::NfpStoreDataExtention) ◦ Studio API/Editor Web ◦ NintendoSDK Default Mii (nn::m...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

if mii internals was github wiki

◦ Structures/Data Formats

◦ Character Data

◦ Wii/DS (RFLCharData, separate section for little endian)

◦ 3DS/Wii U (Ver3StoreData/FFL/CFL/AFL)

◦ Switch (nn::mii::CharInfo)

◦ Switch (Internal DB, nn::mii::CoreData/StoreData)

◦ CFL/FFL WrappedStoreData (QR Encryption)

◦ Switch amiibo (nn::mii::NfpStoreData, nn::mii::detail::NfpStoreDataExtention)

◦ Studio API/Editor Web

◦ NintendoSDK Default Mii (nn::mii::detail::DefaultMiiTableElement)

◦ CharInfo for RFL, CFL, FFL

◦ CRC-16 Checksum

◦ TODO: CRC-16/CCITT/XMODEM, use in char data formats, databases, example calc functions

◦ Resource Archive

◦ Wii: RFL_Res.dat (no struct)

◦ DS: NFL_Res.dat (similar to above but little-endian?)

◦ 3DS: CFL_Res.dat (no struct, similar but little-endian)

◦ all three above contain RFLiArchive(CFLiArchive) structure

◦ Wii U/Miitomo: FFLRes(High/Middle).dat, AFLResHigh(_2_3).dat

◦ FFLiResourceHeader but miitomo has a different texture header

◦ Switch: Shape(Mid/High).dat (nn::mii::detail::ResourceShapeHeader), Texture Resource (nn::mii::detail::ResourceTextureHeader, fname varies)

◦ Each page: Specify vertex (/shape/mesh), texture formats

◦ Outline for each page

◦ Summary of the format

◦ Description of structure

◦ Where is it used

◦ What makes it unique

◦ Database

◦ Wii, RFL_DB.dat, RFLiDatabase / official, (hidden?????)

◦ Wii, RNCD/RFLiCtrlBuf and where it is in eeprom

◦ 3DS, CFL_DB.dat, CFLiCharDatabase (DWARF) / official, (hidden? same as above?)

◦ Wii U, FFL_ODB.dat, FFL_HDB.dat, FFLiDatabaseFileOfficial, FFLiDatabaseFileHidden

◦ (NOT FCL_DB.dat for clothing or stadio.sav for studio save)

◦ Switch, nn::mii::detail::DatabaseFile (NFDB), nn::mii::detail::ImportFile (NFIF) - as for filename, mii_DatabaseFileManager.cpp has "mii:/MiiDatabase.dat", but NFIF is maybe for dev units only? (see settings)

◦ no hidden database here (but theres mii_PrivateDatabase.cpp). NFIF is signed with a hmac key, its not in windows version

◦ (what do we say for: mii studio web, miitomo??, )

◦ Mii Character Data

◦ CharInfo

◦ Core/Char Data

◦ remember core isnt pointless, nn::mii::CoreData for miitomo and NFIF, then CFL/FFL/RFL core data (called CharDataHidden in rfl) is FOR HIDDEN DB

◦ StoreData

◦ Create ID/Mii ID

◦ Wii/DS

◦ 3DS/Wii U

◦ Switch

◦ Special Properties

◦ MiiVersion, BirthPlatform: detail 3ds qr code anomaly, wiiu mpf face anomaly, how birth platform is set, ffl ds platform bug, future values from ctr sdk

◦ NgWord, FontRegion: effects on each platform; see getadditionalinfo funcs, nnmii name funcs and character set tables

◦ LocalOnly, RegionMove, Favorite: why is favorite a thing again? (get from RFL alpha spec)

◦ AuthorId: also "UserID" in func names, it's from transferable id on 3ds/wiiu

◦ BirthMonth, BirthDay: detail verification of this

◦ Special Miis/"Gold Pants"

◦ TODO: what they are, create id flag, restrict localOnly, create id platform

◦ Data Verification

◦ Random Data

◦ Color Tables

◦ Wii/DS (RFL Colors/Ver3 Indices)

◦ 3DS/Wii U (Ver3 Colors)

◦ Switch (Common Colors)

◦ Gamma Mode (sRGB or Linear)

◦ Rendering

◦ Shape Parts

◦ Textures

◦ Texture Modulate/Color Mix

◦ Faceline Texture

◦ Mask Texture

◦ Shape Textures

◦ Shape Transform/Positioning (also mention model scale, PartsTransform)

◦ Facial Expressions

◦ Shaders

◦ Wii/DS/3DS Do Not Use Shaders

◦ Wii TEV

◦ (TODO: find tev settings for icon, "drawLikeNigaoeChannel", see env.dat in dvdroot for RVLFaceLib samples)

◦ SampleShader.bcsdr (3DS) todo only in Tomodachi Life

◦ FFLDefaultShader.gsh (Wii U)

◦ LUT.vsh/fsh (Miitomo)

◦ SampleShader.bnsh (Switch)

◦ Outline

◦ Description, lighting effect, previews?

◦ Uniforms/attributes and descriptions

◦ Hair Variants/Using Headwear

◦ Body Scaling

◦ Database

◦ Official/Table/Front Database

◦ Hidden/Back Database (TODO: CFLiRecentDBFile as well?)

◦ Default Database, Random Database (not real dbs)

◦ TODO: where does wii remote database (search RFLiCtrlBuf in decomp) fit into this?

◦ Face Library

◦ Wii: RFL/RVLFaceLib

◦ 3DS: CFL (CTR/Centrair Face Library)

◦ Wii U: FFL (Cafe Face Library) / Miitomo AFL (Arch Face Library)

◦ Switch: nn::mii (NX/NintendoSDK Face Library)

◦ Unity: un.mii(?????)

◦ Concepts

◦ CharInfo + Character Data

◦ CharModel -> Scale, Coordinate

◦ Icon (RFL, CFL, FFL, nn::mii), FFLIconWithBody/nn::mii::IconBody, nn::mii::VariableIconBody

◦ WiFiInformation (RFL) / NetPacket (CFL, FFL)

◦ Expression Flag

◦ FFLShaderCallback, FFLExpand

◦ Special Mii Key (FFL, AFL, nn::mii)?????

◦ Reverse Engineering Resources

◦ TODO: this is where to link binaries with FFL symbols (MiiPlugin.rpl), libcocos2dcpp.s o, where to get nn::mii internals that's not from the NintendoSDK lol, maybe 3ds horizon os leak

◦ TODO categorize these

◦ Wii U Mii Maker/Mii Studio Internals: ffl_application, FFLUtility, debugutility, Viewer, miiviewer, MiiCapture (HUGE TODO)

◦ TODO: CFLUtility? havent gotten it to work on my 3ds, probably mii maker as well

◦ Title: Miitomo

◦ TODO: AFL/nn::mii and shaders, mii_data structure, headwear type enum, powervr pod format, api xor obfuscation, mii json structure + qr codes, limited info we know about nuance voice,

◦ Title: Tomodachi Life/Tomodachi Collection: New Life (TODO)

◦ (Face Library?) Mii Icon Servers? - NNAS, Nintendo Account 1.0.0, NA 2.0.0/studio

◦ NNAS renderer - input (only crc and smth else validated), xml output, png and tga, wii u local renders

◦ theory of how this works. FFL has SwapEndian methods probably for x86. is this cafe sdk (32-bit g3d) on windows?

◦ Nintendo Account 1.0.0 - same as above but params from npf

◦ Nintendo Account 2.0.0, studio.mii.nintendo com web API

◦ na 2.0.0 has miitomo shader+culling, used to show miitomo clothing, mii studio nnid bear suit (find my screenshot)

◦ mii studio api: data format + obfs, params... probs more

◦ How do I...

◦ Decode and encode Mii data?

◦ Verify Mii data?

◦ Render Mii data to an icon?

◦ Questions (?)

◦ What kind of Mii data do I have?

◦ Why isn't my Mii data valid on a console?

◦ Recommendations from Arian

◦ Use Accurate Structures

◦ Cite Sources

◦ Don't Guess, Use Decomps

◦ Converting Resource Shapes/Textures

◦ Do NOT Invent Custom Formats for Miis

◦ just append at the end of an existing format

◦ ffsd is most universal, nn mii coredata can be used if a compact format is needed + use magic signature to be detectable

◦ Good References

◦ TODO: stuff like decomps, MiiPort

◦ Suboptimal References

◦ TODO: mii-js, mii2studio.py, kaitais?

where should the wiki be

◦ MediaWiki?

◦ GitHub WIki?

◦ DokuWiki?