PS3 [RESEARCH] Special characters in imagefont.bin - Emojis icons symbols

You need to get UTF to ANSI for your text viewer (or windows) to get better look. ;) BTW. Nice find!
Or find a .ttf font with them included, heheh
I been looking at the character maps inside all official PS3 .ttf files and none of them includes the icons we are talking about
I expected this, but i was wondering if maybe they also added some low quality versions of the icons in the .ttf files as a reference (there are 3 official .ttf fonts that includes characters in "private use area", are: DFHeiW5-A, SCE-PS3 NewRodin EXT Regular, and SCE-PS3 Seurat EXT Regular)
I remember to see an "snowman" character in one of the official fonts when i was doing this lot of time ago, but i guess is another "snowman" located in another area

Never minds, the point is my attempt to find a way to display them in notepad++ failed... is not posible as far i know until someone finds a font with them (and i dont think that exists because this is sony specific... maybe from other sony device)
 
Last edited:
What I don't get is, where do these icons/characters show up on an OFW PS3, I mean the ones like foot, nose, snowman (I know the button symbols are used)? How can they be accessed/typed?

Still cant get them to show up in PARAM.SFO. Tried your method.
 
Last edited:
The first group i think are for chat because are very generic (the heart, lips, kiss and all that stuff) but for some reason can be used on XMB text strings
The others specific for PS3 are intended to be displayed in between text strings in XMB globally, are part of some "system messages" (the messages translated up to 20 languages)

Have you tryed to use them this way ?, this is an space in unicode
Code:
\u0020
And this is the dualshock "PS" button
Code:
\uF892
Like this in the XMBML file you was modfying before:
Code:
<Pair key="title"><String>This\u0020Is\u0020A\u0020Test\uF892</String></Pair>

This method to manage unicode characters with the \u is valid for the PS3 bluray player software, maybe they implemented it globally in the firmware
 
Last edited:
This method to manage unicode characters with the \u is valid for the PS3 bluray player software, maybe they implemented it globally in the firmware

Just tried that, no luck.

BTW: This is the heart that works out of the unknown ones, they are like little motion lines above it, its moving too, it tilts from left to right
YtNVvSj.png


It would maybe be handy if the squares from the txt document were on the wiki too, as then they can be copy and pasted, the hex code is not really convenient on its own as normally you would not be hexing the files these can be added to.
 
Just tried that, no luck.
Damn, so we will have to deal with the "tofu" characters anyway :/
https://english.stackexchange.com/q...-tofu-for-font-fallback-box-glyph-coming-from

BTW: This is the heart that works out of the unknown ones, they are like little motion lines above it, its moving too, it tilts from left to right
YtNVvSj.png
A heart "pumping" or something like that i guess, heheh
I just added a temporal name for it because is not so important, what was important is it exist, because its unicode number, most groups should start with a zero at the end, the "2 Hearts (Moving) " had a 1 at the end so i imagined there was another one before
There could be much more before btw... actually the "private use area" starts with U+0E000, and the hearts we are talking about are at U+0F460 (both in unicode), there are a lot in between and im guessing there must be something at the beginning of the "private use area"

It would maybe be handy if the squares from the txt document were on the wiki too, as then they can be copy and pasted, the hex code is not really convenient on its own as normally you would not be hexing the files these can be added to.
Yes, i was thinking in what to do with that column of the table but i guess the "tofu" is fine, is better than nothing
I think i will upload your screenshots too, and your videos, wiki allows to embed youtube videos :)
 
Damn, so we will have to deal with the "tofu" characters anyway :/
https://english.stackexchange.com/q...-tofu-for-font-fallback-box-glyph-coming-from


A heart "pumping" or something like that i guess, heheh
I just added a temporal name for it because is not so important, what was important is it exist, because its unicode number, most groups should start with a zero at the end, the "2 Hearts (Moving) " had a 1 at the end so i imagined there was another one before
There could be much more before btw... actually the "private use area" starts with U+0E000, and the hearts we are talking about are at U+0F460 (both in unicode), there are a lot in between and im guessing there must be something at the beginning of the "private use area"


Yes, i was thinking in what to do with that column of the table but i guess the "tofu" is fine, is better than nothing
I think i will upload your screenshots too, and your videos, wiki allows to embed youtube videos :)

Ok, if you want me to do better screenshots or video in a certain way let me know, that was just a quick one. I can do one with all symbols, and fit them in better so they dont scroll, easier to see animations?

Could even do little individual screen shots of each one that could be added to the table in a new column maybe.
 
I cant make any test now, my PC is junk and i only turn on my PS3 eventually to play something (or latelly only to find bugs in managunz to annoy @Zar jk), last game i played was months ago and is on an old firmware without cobra
This is the reason until now i have not requested you anything, because you or other people could think "dude, just do it yourself", so i dont want to insist or tell you what to do

For wiki could be pretty nice to have the images of the icons, but there are 2 ways of doing it
Months ago when eussNL was active and was needed to upload some tenths (or hundreds) of images to wiki he did it with an script i guess, it can be made manually (and could take hours) but if the amount is limited i think is worthy
All this is if we get the icon images individually, and converted to an image format supported in wiki, the animated ones should be converted to something static, but by now i personally think this doesnt worths the effort, mostly because we dont have the "raw" image taken from imagefont.bin... we can make it as you said, taking a screenshot and cropping them in photoshop but imo is not good enought
The point is... we will need lot of work to do all this, and personally i think is only worthy if made with the real images... otherway it could happen that we spend lot of hours now... and eventually later (after some months) someone codes an script or program to extract all images from imagefont.bin... if this happens we will have to do the same again and the time spent in doing it the first time will be wasted
Anyway, this is just my oppinion right now... it can change, or other people could decide to do it

The other way to do it is by making a single screenshot on the PS3 with them and upload only that screenshot to wiki, this is good enought, specially if the hexcodes can be seen in the screenshot and icons are ordered, and specially if all them appears in the screenshot
But there is a problem... in the tables i made there are too much "unknowns" (and im not going to try them by now, and im not going to ask you to try all them)
This is why i have not uploaded your screenshots yet, but dont worry are good enought, the important icons are the first ones of the second group (for dualshock) and most of them can be seen in your screenshot
 
I was planning on trying all the unknowns. Just haven't got around to it, I tried some more today with no luck. I would also try them on the epilepsy warning screen, but its disabled on the Rebug I am on, so need to enable that first. Not sure which file I need to change or if I can use the CEX 4.81 version, I would rather not have to change firmware.

I will get some better screen shots up later today.
 
@sandungas : Ok, so seems showing more than 7 rows of characters leads to problems. They show but some don't. So I am going to do it in sections.

Here they are.

Chat symbols:
TuUk2qN.png

xvlzKw1.png



System symbols:
wMg4kxc.png

ThX0hl1.png


As you can see, there are some more of the unknowns working, the PS logo (not button), PSN, PS4, PS3, PSVITA, PSP, PSN, SEN logo, PS Store, White PS plus, PS Move logo, the word "Maj".

I tried ALL other unknowns and some extra either side of the existing ones. The above ones shown are all that worked.
 
@DeViL303
You probably already know this but if you wish to test on Rebug with the epilepsy warning message you could always unpatch vsh.self temporarily.
Here is the info for CEX vsh:
Decrypt & decompress vsh.self (the cex one) then use HxD to search for the hex string: 000000020000000102000101FFFFFFFF
Modify it back to the original values:
000000020000000102010101FFFFFFFF
Then reencrypt it. You can use scetool template option with the vsh.self bundled in Rebug to avoid fiddling with settings. The command below assumes you renamed the original vsh.self to vsh_temp.self.
Code:
scetool --template=vsh_temp.self --verbose --sce-type=SELF --compress-data=TRUE --encrypt vsh.elf vsh.self
 
Last edited:
Cheers.

So now Ive put them all on one pic as well using the epilepsy warning, and Ive done a better video for the wiki too if you want it.

This image is a snapshot from a video taken with my PVR, So the quality isn't as good as a screenshot with the vsh menu plugin (which has not started up yet when this warning is shown). Also the black background does not load up until after this too, so you can choose whatever way you want to display them.

6m01av1.png


 
Perfect @DeViL303 thanks a lot for the effort, i will add it to wiki and we can stick the label "completed" to this part of the research
The screenshot is really helpful, is like one of that "cheatsheets" that are good to have at hand when editing this kind of files, lot of people will keep a copy of your screenshot in his PC forever (me included)

P.S.
The next step in the research is to verify the info we have now with the contents of imagefont.bin
I was reversing a bit the structure to the point that it was needed an script because there are lot of icons inside
By reading myself in wiki it seems i said there are "several hundreds" inside literally, i guess are more than 200 but not much more... so lets say around 220. I said that because can be calculated with a simple math operation by looking at the header, i dont remember how i did though but the structure is not much complicated
So it needs to be automatized, either an script for extraction, or better an app for rebuilding... but this is another story

P.S. done, wiki updated
Im thinking maybe all the frames of the animated ones are indexed in the imagefont.bin header... so every animated icon counts as several (lets say 9 frames each) this way the total indexed in the header could be near the 200 i mentioned... is just a theory to try to match the amount in your screenshot with the 200 i mentioned
 
Last edited:
Some good/bad news, i been taking a look at the imagefont.bin structure (it was near completed), and i could identify an important detail, at the index (at bottom of imagefont.bin) it can be seen the unicode_id of all the icons, see this pastebin (from firmware 3.55)
https://pastebin.com/ZWkie7tQ
bytes 0x08 and 0x09 = unicode id
bytes 0x0A and 0x0B = width (varies)
bytes 0x0C and 0x0D = height (all them are 23 pixels height)
bytes 0x0E and 0x0F = unknown, only two posible values 0x8000 or 0x7FFF, seems to be binary flags

And what i said before that is needed to make a math calculation to know the total amount was incorrect... the amount is specifyed in the imagefont.bin header (at top of the file, at absolute offset 0x2, lenght 0x2) and are a bit more than 300 (varies per firmware)

-----------------------
So... from this point is not needed to make more failed experiments with random unicode id's
By looking at the index we know for sure which ones exists and which ones doesnt

The bad new is we are missing a couple of hundreds that appears in the index but not in the screenshots
@DeViL303 at this point i suggest you to dont make new screenshots with them yet, if you want to try some or you are bored enought to make some screenshots with them go for it, but take in consideration this is double the work you did (is going to take you some hours, and to me too to make bigger the tables in wiki with the results of your tests), i still think is worthy because the complete list is limited and we know the goal very well now, but no hurry
Also none of the missing ones seems to belong to the group you named "system symbols" (the group with the dualshock icons and playstations logos) so doesnt seems to be important

What im going to do now is to work a bit more with the imagefont.bin structure, there are still a couple of things unknown from it, are important but are just a couple... long to explain though
I need to rewrite and reorder the XMB fonts page in wiki, is messy and dirty, specially all related with imagefont.bin structure that needs to be explained much better
 
Last edited:
http://www.psdevwiki.com/ps3/images/c/c4/Imagefont.bin_1st_glyph.jpg

I'm not expert with images file structures. But, based on that, we can say it's 8bpp (one byte per pixel) with alpha.
Where we can assume:
0xAD (10101101) = full transparency
0x00 (00000000) = full black
0xCE (11001110) = something red without transparency
Etc...

Now it should be doable to determine the palette used. Then display, convert, modify...

I'll try to make some search on that.
 
http://www.psdevwiki.com/ps3/images/c/c4/Imagefont.bin_1st_glyph.jpg

I'm not expert with images file structures. But, based on that, we can say it's 8bpp (one byte per pixel) with alpha.
Where we can assume:
0xAD (10101101) = full transparency
0x00 (00000000) = full black
0xCE (11001110) = something red without transparency
Etc...

Now it should be doable to determine the palette used. Then display, convert, modify...

I'll try to make some search on that.
That seems right, the center at 0x00 is pure black, the circle of 0xCE's is in red, and 0xAD at transparent corners
I noticed the icon has a light effect at bottom line (some white ilumination effects) that bytes have the higest values, im going to convert some here for the record:
0xF3 (11110011)
0xF9 (11111001)
0xFD (11111101)
0xFF (11111111)

By now looks 2 bits each channel (in RGBA order) but i dont get how works transparency, and the position of blue is confusing me in the 0xCE example (the 11001110 should be something like 11000010 for pure red)
 
Last edited:
hum... there is something strange with the image size.
Per binary data shown here, circle is 26x23. Per @DeViL303 VSH screenshots, the circle button is at minimum 33x32.
 

Similar threads

Back
Top