Meta:ToDo: Difference between revisions
Appearance
links |
No edit summary |
||
| Line 4: | Line 4: | ||
** Character Data | ** Character Data | ||
*** Wii/DS (RFLCharData, separate section for little endian) | *** Wii/DS (RFLCharData, separate section for little endian) | ||
*** 3DS/Wii U (Ver3StoreData/FFL/CFL/AFL) | *** [[Ver3StoreData|3DS/Wii U (Ver3StoreData/FFL/CFL/AFL)]] | ||
*** Switch (nn::mii::CharInfo) | *** [[Nn::mii::CharInfo|Switch (nn::mii::CharInfo)]] | ||
*** Switch (Internal DB, nn::mii::CoreData/StoreData) | *** Switch (Internal DB, nn::mii::CoreData/StoreData) | ||
*** CFL/FFL WrappedStoreData (QR Encryption) | *** CFL/FFL WrappedStoreData (QR Encryption) | ||
*** Switch amiibo (nn::mii::NfpStoreData, nn::mii::detail::NfpStoreDataExtention) | *** Switch amiibo (nn::mii::NfpStoreData, nn::mii::detail::NfpStoreDataExtention) | ||
*** Studio API/Editor Web | *** [[Mii Studio Local Storage|Studio API/Editor Web]] | ||
*** NintendoSDK Default Mii (nn::mii::detail::DefaultMiiTableElement) | *** NintendoSDK Default Mii (nn::mii::detail::DefaultMiiTableElement) | ||
*** CharInfo for RFL, CFL, FFL | *** CharInfo for RFL, CFL, FFL | ||
| Line 21: | Line 21: | ||
*** Wii U/Miitomo: FFLRes(High/Middle).dat, AFLResHigh(_2_3).dat | *** Wii U/Miitomo: FFLRes(High/Middle).dat, AFLResHigh(_2_3).dat | ||
**** [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h#L30 FFLiResourceHeader] but miitomo has a [https://github.com/ariankordi/ffl/blob/97eecdf3688f92c4c95cecf5d6ab3e84c0ee42c0/include/nn/ffl/detail/FFLiResourceTexture.h#L59 different texture header] | **** [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h#L30 FFLiResourceHeader] but miitomo has a [https://github.com/ariankordi/ffl/blob/97eecdf3688f92c4c95cecf5d6ab3e84c0ee42c0/include/nn/ffl/detail/FFLiResourceTexture.h#L59 different texture header] | ||
*** Switch: Shape(Mid/High).dat (nn::mii::detail::ResourceShapeHeader), Texture Resource (nn::mii::detail::ResourceTextureHeader, fname varies) | *** [[Shape*.dat|Switch: Shape(Mid/High).dat]] (nn::mii::detail::ResourceShapeHeader), [[NXTexture*.dat|Texture Resource]] (nn::mii::detail::ResourceTextureHeader, fname varies) | ||
*** '''Each page''': Specify vertex (/shape/mesh), texture formats | *** '''Each page''': Specify vertex (/shape/mesh), texture formats | ||
*** Outline for each page | *** Outline for each page | ||
| Line 56: | Line 56: | ||
** Data Verification | ** Data Verification | ||
** Random Data | ** Random Data | ||
* Color Tables | * [[Color Tables]] | ||
** Wii/DS (RFL Colors/Ver3 Indices) | ** Wii/DS (RFL Colors/Ver3 Indices) | ||
** 3DS/Wii U (Ver3 Colors) | ** 3DS/Wii U (Ver3 Colors) | ||
** Switch (Common Colors) | ** Switch ([[Common Color Table|Common Colors]]) | ||
** Gamma Mode (sRGB or Linear) | ** Gamma Mode (sRGB or Linear) | ||
* Rendering | * Rendering | ||
** Shape Parts | ** Shape Parts | ||
** Textures | ** Textures | ||
*** Texture Modulate/Color Mix | *** [[Color Modulation|Texture Modulate/Color Mix]] | ||
*** Faceline Texture | *** [[Faceline]] Texture | ||
*** Mask Texture | *** [[Mask]] Texture | ||
*** Shape Textures | *** Shape Textures | ||
** Shape Transform/Positioning (also mention model scale, PartsTransform) | ** Shape Transform/Positioning (also mention model scale, PartsTransform) | ||
Revision as of 00:27, 24 September 2025
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) https://youtu.\be/f7cl7u0V15M?t=431
- 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??, )
- Character Data
- 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
- NNAS renderer - input (only crc and smth else validated), xml output, png and tga, wii u local renders
- How do I...
- Decode and encode Mii data?
- Verify Mii data?
- Render Mii data to an icon?
- Questions/Troubleshooting(?)
- 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?
- i quite like this so far -j0
- GitHub WIki?
- DokuWiki?