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)

Fixed in version .3c --Mjbauer95 23:58, 25 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 + 0x36 + 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)
You did a small copy/paste error, for mii.creator it should be tempChar = data[start + 0x36 + d * 2 + 1]; --Crayon 05:03, 25 March 2009 (UTC)
Oh thanks for your help.

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 of on screen marker characters in a mario kart style fastest times screen. --JustWoody 00:42, 25 March 2009 (UTC)

I plan to use it in my preloader boot app Crazy Intro, I can show the upcoming birthday of people registered in the wii if user wants... maybe a surprise birthday opening if wii booted in a birthday... let's see how it will end up...--I R on 13:07, 28 March 2009 (UTC)

Generating Mii mages

Hey, I know it might be a while away, but this might help out if you're considering generating Mii images (instead of 3D models). -- MetaFight 01:13, 25 March 2009 (UTC)

Looks interesting... It is in Flash. I guess what we really need are the images. But they are in FLA format. If anyone has Flash have a look at this for me. --Mjbauer95 22:00, 25 March 2009 (UTC)

Download sizes

Why the download size ridicilously big? Source release is over 100 mb.. I think you should remove the unneeded stuff from the latest version and keep separate archives for the previous versions. --I R on 13:06, 28 March 2009 (UTC)

Right now you can download 0.3d, that is only a few KBs. --Mjbauer95 15:53, 29 March 2009 (UTC)