Talk:Libmii

From WiiBrew
Jump to navigation Jump to search

Great idea, maybe a problem in the birthday data, the ones I got are not the ones stored in my wii. - Treps 15:43, 22 March 2009 (UTC)

Yeah right now the only thing you can rely on is the Name and creator. I think the month part of the birthday works usually. --Mjbauer95 17:00, 22 March 2009 (UTC)

Great Work

Great work, I've been looking for something like this for a long time. I wish you would've spread the link around wiibrew a little. I only found this by watching the recent changes page. Never fear, I'm placing this link everywhere I can on WiiBrew.--Arikado 15:51, 22 March 2009 (UTC)

Does the Month-birthday work for you?

It seems work usually but sometimes it seem to encounter problems --Mjbauer95 17:03, 22 March 2009 (UTC)

Error in example 0.1

I tried running the example, but it says: isfs://shared2/menu/FaceLib/RFL_DB.dat does not exist When I run FTPii I could see the file and it's 762KB. In my Mii Channel I have 35 Mii's, so I don't understand? --Crayon 19:02, 22 March 2009 (UTC)

And the file in FTPii is called "RFL_DB.dat"? It's hard for me to help you without having the same problem occur. --Mjbauer95 22:03, 22 March 2009 (UTC)
I have the same issue.. isfs://shared2/menu/FaceLib/RFL_DB.dat does not exist :( --Manny2008 23:34, 22 March 2009 (UTC)
I found the solution just delete the line ISFS_SU(); and it will work. I checked the example and I did not see this line: http://code.google.com/p/ftpii/source/browse/isfs/trunk/isfs_example/isfs_example.c I added some extra validation, so here it is:
void loadMiis_Wii(){
	if (ISFS_Initialize() == 0){
        if(ISFS_Mount()){
            char * data;
            data = read(FACELIB_Wii);
            if (data!=NULL) loadMiis(data);

            ISFS_Unmount();
        }
    }
}
--Crayon 05:14, 23 March 2009 (UTC)
I thought that that was required to have ISFS_SU but now that I'm trying it without ISFS_SU it seems to work, so you can try example 0.3b now and tell me if it works.

Not working in C++

I was having problem compiling the code in C++, so I added those lines in mii.h:

#ifndef MII_H
#define MII_H

#ifdef __cplusplus
   extern "C" {
#endif /* __cplusplus */

/* ..................... */

#ifdef __cplusplus
   }
#endif /* __cplusplus */

#endif

--Crayon 03:52, 23 March 2009 (UTC)

Thanks, for the advice, it is added in 0.3b along with your other fixes. --Mjbauer95 18:10, 23 March 2009 (UTC)

Problem with Mii's name

First of all, you declare it like that:
char name[MII_NAME_LENGTH];
There is two mistake here, the first one is that characters are two bytes (addr: 0x02 through 0x15) so it should be:
char name[MII_NAME_LENGTH * 2];
The second one is there should always a place for the NULL character at the end, so it should be like this:
char name[MII_NAME_LENGTH * 2 + 1];
Now to accept UTF8 chars:

	int c, d;
	char tempChar;
	for (c=0, d=0;d<MII_NAME_LENGTH;c++, d++){
        tempChar = data[start + 0x02 + d * 2 + 1];
        if(tempChar < 0x80)
            mii.name[c] = tempChar;
        else{
            mii.name[c] = (((tempChar) >>  6) & 0x1F) | 0xC0;
            c++;
            mii.name[c] = ((tempChar) & 0x3F) | 0x80;
        }
	}
	mii.name[MII_NAME_LENGTH*2] = '\0';

The code has been tested just a bit with freetype in C++ with some Latin chars. So it needs more test, right now I'm too tired to continue ;)
The same problem applies to the creator name. --Crayon 06:32, 23 March 2009 (UTC)

Yeah thanks for that I really don't understand UTF8 and that character encoding stuff, but I added that so now it should be fixed in Libmii version 0.3b and example version 0.3b --Mjbauer95 18:10, 23 March 2009 (UTC)

Uses

I've been trying to think of uses for it. I'd really think this would be best for games like Yahtzwii where you have to enter a name if you get a highscore. It would be cool if it could actually make a picture of the Mii, but this would be really hard because of both the 3d models and that I do not think this library is reliable enough for anything but the name and a few other metadata type things (like birthday, etc.) --Mjbauer95 19:59, 23 March 2009 (UTC)

Now works, perfectly, I'm using it on the Wiilander game, to select the user (Mii) for the Highscore table.. I'll release the new version soon. Manny Thanks!!! --Manny2008 23:02, 23 March 2009 (UTC)
Thanks for the work Mjbauer95. I've added it into my Mahjongg Wii game in a couple of ways one just for the name of the player and two I have used the favourite colour to change the colour of the clothes characters in a mario kart style fastest times screen. --JustWoody 00:42, 25 March 2009 (UTC)