PS3 PKGi PS3 development

the upcoming version is looking nice :cool2:

screenshot_2019_12_17_02_38_27-png.21506
You forgot to add the font shadows behind the "install" and "menu" texts, and i think it would look better starting that texts in uppercase, "Install" and "Menu" (instead of "install" and "menu")
Pretty cool shadow effects btw :encouragement:


Edit:
Also, the color of "install" and "menu" texts is different than the color of the other texts... it looks like "install" and "menu" texts are pure white (or pure opaque), and the others have a bit of transparency or you softened that white tone a bit
 
Last edited:
You forgot to add the font shadows behind the "install" and "menu" texts, and i think it would look better starting that texts in uppercase, "Install" and "Menu" (instead of "install" and "menu")
Pretty cool shadow effects btw :encouragement:


Edit:
Also, the color of "install" and "menu" texts is different than the color of the other texts... it looks like "install" and "menu" texts are pure white (or pure opaque), and the others have a bit of transparency or you softened that white tone a bit

yes, I was playing around a bit with the fonts, and added a shadow effect (I think it also improves the readability a bit too)

you're right about the missing shadow in the menus at the bottom, also they're pure white with no alpha, the text with shadows is using a bit of alpha to blend better with the shadow&background

I think we were talking about text shadows at some point, right? how I did it, is like this:
I draw the text shadow first, with a small pixel offset (e.g., (x+2, y+2) pixel shadow), then I draw the text again, on top, with the original position (x, y) . The visual result is quite nice, :D although you're drawing all the text twice. ;)
 
Font shadows improves readability a lot, is a nice feature that allows you to use backgrounds with bright colors
You know, with the actual background you are using in blue dark tones there is no problem, the shadows are there, not much notable, they makes the texts to look a bit better, but are not really needed

The problem is if you use a background with lot of bright tones, or areas fully white... in that case displaying white texts on top of white would make it unreadable. The font shadows prevents that :)
In other words, the font shadows are giving you more freedom to use other backgrounds

-----------
I was talking about that trick with zar, rendering the texts 2 times with an offset XD
I think it would be better to increase the size of the shadow btw... the goal is to try to "surround" the real font

Taking this to the extreme... lets say that area of the background is fully white... then you would like to have a bit of "shadow" all around it
Not sure how much though, or how would look

The horizontal bars at top and bottom could be added a shadow too with a polygon to prevent this situation too of "white on top of white"
....and i noticed the thickness of the horizontal bars is diffrent (the bar at top looks a bit wider)... lol, sorry for being so picky, are small details without much importance :)
 
well in that case I think the shadow would be some kind of "black border" around the letter, right?

It could be achieved with the "print 2 times" trick, but in that case I think that you'd have to print "character by character", the normal letter and the bigger shadow/border letter, so they're both centered at the same point.


honestly I didn't pay too much attention to the UI in the first versions, I left most of the original PS Vita code as it was (even the background.png was the original one from the Vita app :D). Now I'm starting to put some time on it, so it looks nicer. :)

I've finished the support for japanese/non-english characters today, but I'm not sure if I should release right away, or spend a bit more time on other UI details too. Probably I'll wait and try to add some other improvements.
 
Yes, the goal is to have a bit of "black border" all around every character, im going to show 2 images as example but as i said this is hard to achieve and im not sure if is posible to do it accuratelly, in a image editor app (photoshop, gimp, etc) is easy but with graphic libraries for PS3 im not so sure how much tricky could be to achieve this effect
Also, in this example im pushing this to the extreme of the worst posible scenario, with a "white font on top of white background", lol
The point is is you achive to do this with "white on white" it becomes failproof for all other colors, it gives you 100% freedom to choose whatever you want with the font and background colors

In the actual PKGi the shadow have the same size than the font, and seems to be displaced X+4 and Y+4
l0r9p0n.png

And this is (in my oppinion) what you should try to achieve
CxsVnH1.png



The trick is... if you want to move the shadow a few pixels... then the size needs to be increased a few pixels + a bit more
Some examples...
For shadow offset +4.... size should be +6 or so
For shadow offset +10.... size should be +13 or so
For shadow offset +20... size should be +25 or so

In the first example i mentioned, using shadow offset +4 and size +6 is pretty close to what you was doing... this would create shadows of 4 pixels in a direction... and a thin border of 2 pixels in opposite direction (because 6-4=2)

It doesnt needs to be very notable... also this is not a visual effect intended to look great, is mostly a prevention to avoid problems, and most of the time (in dark areas of the background) this effect is not going to be notable

In the image i made with photoshop was easyer because it was at big resolution and the shadow is a degrade.. but in the PS3 graphic libraries with the trick you are using rendering the texts 2 times doesnt works like that, the shadow at bottom will have "sharp edges"
So try to see if you can get close to that, but dont get crazy with it, is just an small detail :)
 
Last edited:
yes, your photoshop example helps to understand the goal of the border/shadow we have been talking about

funny thing, I'm actually using a TEXT_SHADOW = 2 , but since everything in Tiny3D is virtual coordinates, it ends up being about 4px in the final 1920x1080 screen. :wink new: maybe I should try shadow=1 ? :D

I was trying a very basic implementation of this border idea, the code could be something like:

Code:
while (*text) {
        SetFontSize(PKGI_FONT_WIDTH + PKGI_FONT_SHADOW*2, PKGI_FONT_HEIGHT + PKGI_FONT_SHADOW*2);
        SetFontColor(RGBA_COLOR(0, 128), 0);
        DrawChar(x - PKGI_FONT_SHADOW, y - PKGI_FONT_SHADOW, z, (u8) *text);

        SetFontSize(PKGI_FONT_WIDTH, PKGI_FONT_HEIGHT);
        SetFontColor(RGBA_COLOR(color, 200), 0);

        DrawChar(x, y, z, (u8) *text);
        x += PKGI_FONT_WIDTH + PKGI_FONT_SHADOW;
        text++;
}

it ends up drawing a "black border" around the letter, but it's not as stylish as your example... maybe I need to adjust the alpha to get a better blending
 
That way looks handy, and is simple enought :)
Visually i dont know how it would look, the problem is the shadow by default is going to have sharp edges, but in real world the borders of the shadows are blurry :/

In iris there is a visual effect used to create the reflections of the game covers on the floor. It displays the game cover image, mirrored, and shadowed and it does a degrade of his alpha
I remember i was looking at it, but i dont know how is made... not sure if could be applyed in this case

--------
Ok, so that 4 pixels of your actual shadow i meassured are 2 tiny3D units... damn, we are going to low, lol
It could be handy if tiny3D allows to use decimals, so rounding numbers... 0.5 tiny3D units are 1 pixel
Not sure if tiny3D allows it though
 
Look, i mean this effect, at bottom of the games there is a reflection of them... the images at bottom (that looks like reflected on the floor) changes his alpha with the distance
It looks like a nice trick to create degrades... but im not sure how is made
iris1.jpg
 
yes, I think you can use decimals in Tiny3d, as everything is defined in float numbers... so probably a 0.5 would work.

a degrading alpha blend would be really nice, but I'm not sure about a simple way to implement it... fonts have tricky shapes.
in the "game case" example I think it's easier because the texture itself is a rectangle so I assume Irisman code is degrading the alpha along with the Y coordinate.
 
Im thinking in something but i guess is not going to work because the DrawChar() coordinates represents a corner of the character, right ? (not the center of the character)

The idea was to display the shadow text 3 times at 3 different sizes, lets say:
shadow_1 (in) at 25% alpha and size "S"
shadow_2 (center) at 25% alpha and size "S+1"
shadow_3 (out) at 25% alpha and size "S+2"

This way the center of the shadow is at 75% alpha, it has a line all around at 50% alpha, and another line all around at 25%
Lets say... is an (unneficient) degrade with 3 levels, lol

But only could work incase the characters are drawn individually, and aligned from center
And im not sure if is worthy to do it this way, i like image design but i like code too, and this seems to be one of the times when is hard to know where is the limit in between doing things with a good look, or doing them efficient
 
But only could work incase the characters are drawn individually, and aligned from center
And im not sure if is worthy to do it this way, i like image design but i like code too, and this seems to be one of the times when is hard to know where is the limit in between doing things with a good look, or doing them efficient

yes, I think the trick there would be to draw each character using the center coordinates of the char, instead of the corner (x,y). I guess the code would have to calculate the center for each character before drawing, and also printing the same character 3 times feel a bit overkill :D
 
I've just released PKGi PS3 v1.1.0

quite a bunch of changes this time:

* Added TTF fonts to support Japanese characters
* Added SSL support (the app can download https:// links)
* Added package install bubble for Direct downloads
* Added background music
* Added settings options for music and auto-update
* Fixed UI issue where texts could go beyond the screen limits

Merry X-mas! :D
 
I've just released a new version, PKGi PS3 v1.1.2

Latest changes:
* Added content categorization and filtering
* Added support for loading multiple database files
* Added support for online db update/sync
* Filter unsupported or missing URLs when loading a database
 
Hello :)
Awesome job guys! I have question regarding downloading directory. Is there any possibility to change it to external location ?
External HDD or NAS server ?
BR,
 
Hello :)
Awesome job guys! I have question regarding downloading directory. Is there any possibility to change it to external location ?
External HDD or NAS server ?
BR,

It could be possible to save downloads to an USB drive, but only for direct downloads. Background downloads (handled by the XMB download manager) must remain on the ps3 HDD to work properly.

if there's enough interest for this "save to USB" feature, I'll keep it in mind for the next version
 
@bucanero, first of all, this is THE pkg that i'll just need for everything. Thanks buddy.

Question: How can we use the new "Added support for online db update/sync"? I've been reading the GIT and here and nothing, so we can test it. Also is a great way to maintain updated the db's.

Y por sobre todas las cosas, gracias hermano vecino por tan genial port! Avisame si vienes a Chile para invitarte una chela (o un juguito, o un cafe...tu dices!) Me acabo de inscribir en psxplace solo por tu increible aporte.
Saludos!
 
@bucanero, first of all, this is THE pkg that i'll just need for everything. Thanks buddy.

Question: How can we use the new "Added support for online db update/sync"? I've been reading the GIT and here and nothing, so we can test it. Also is a great way to maintain updated the db's.

Y por sobre todas las cosas, gracias hermano vecino por tan genial port! Avisame si vienes a Chile para invitarte una chela (o un juguito, o un cafe...tu dices!) Me acabo de inscribir en psxplace solo por tu increible aporte.
Saludos!

hey, thanks for your comments and feedback! :D

indeed, I forgot to explain how to use the database update/refresh feature... :ambivalence: I did the release and I was busy with other stuff, but now I went ahead and updated the docs on Github:
https://github.com/bucanero/pkgi-ps3/blob/master/README.md#online-db-update

Just follow the instructions there, it's quite easy: edit the config.txt , add the URLs you want, and then "Refresh". :)

y si voy para Chile, aprovecharé la oferta y me tomaré una chela! :D
 
Last edited:
Man this app looks fantastic. I can now free up space on my USB (my PS3 USB storage capacity is quite low) and have all the PKGs I want ready to download via this and much more!

Thank you for your hard work!
 
Just an update, I satarted to change the code and fixing every error, now pkgi.c compiles alright, now the problem residen on pkgi_config.c, but I guess I'll eventually sort it out. If you want I can upload the modified code when I finish so you can take a look at it, maybe upload a "Windows" version, idk.

Edit: Changed the code, now it compiles alright. I'll upload the code in a few minutes.
Edit 2: I can also submit those changes to your GitHub if you want to have it all in one place, just tell me which one you prefer

hey @blckbear_

it took me a long while, but I finally added your changes, and now PKGi's source can be compiled with the older GCC from PSDK3v2.

I built a Windows 7 virtual machine, set up a clean dev-environment with PSDK3v2 and tested the changes. Everything compiles ok, and the EBOOT.BIN works fine on my PS3. (the output binary file size is larger than with the gcc 7.2 compiler)

anyways, now it should be straight-forward to build PKGI on any ps3 toolchain setup. :)
 
hey @blckbear_

it took me a long while, but I finally added your changes, and now PKGi's source can be compiled with the older GCC from PSDK3v2.

I built a Windows 7 virtual machine, set up a clean dev-environment with PSDK3v2 and tested the changes. Everything compiles ok, and the EBOOT.BIN works fine on my PS3. (the output binary file size is larger than with the gcc 7.2 compiler)

anyways, now it should be straight-forward to build PKGI on any ps3 toolchain setup. :)

I was trying to fix this last week just for fun but it gave me some other errors that I couldn't fix, I'll try now and see, thanks!
 
Back
Top