But is not so evil
In the actual code it happens something similar, when a string is missing in one of the "loc" files managunz loads the english version of that specific string
I had a similar idea about the covers (titleid_disc.jpg, title_back.jpg, titleid_side.jpg etc ...) but I don't think i'll do for every UI, perhaps just for Flow3D.
Actually... Flow3D only uses 1 image for the cover
The only game format that doesnt follows that rule of "only 1 image for the cover" is PS1 that requires a additional "BACK" image (because the "CD jewell case" where the sheet is spliited in 2)
I had a similar idea about the covers (titleid_disc.jpg, title_back.jpg, titleid_side.jpg etc ...) but I don't think i'll do for every UI, perhaps just for Flow3D.
Btw, you made me remember something i was thinking time ago, is not important, im just chilling, but in my oppinion is an small problem that looks bad
In FLOW3D the "plastic case" polygonal objects are always displayed, but:
-For PS1, PS2, PS3, PSP. If there is no "FRONT" cover, managunz displays the ICON0.PNG (or nothing for PS1 and PS2) on top of the front plastic case... and nothing at the "SIDE" and "BACK"
-For PS2, PS3, PSP. If there is no "3D"/"FULL" cover, managunz doesnt displays anything in "SIDE" and "BACK" of the plastic case
I know, is something normal, the people that wants to use FLOW3D really needs to have all cover images ready, otherway it looks a bit unrealistic, but i think there is a way to prevent it
The idea is to prepare some images for the "default" covers ready to "draw" in top of them
The center of the area that matches with the "SIDE" should be empty, this way you can draw the game title on top of it using plain text (in bold, big size, trying to achieve an standard look)
The front needs to be adjusted to the rectangle of ICON0.PNG
And the back could be also made trying to follow the standard style of each game format... but with some text instructions about the cover names, formats, sizes, paths, etc... (readable when you make a zoom in it pressing the dualshock sticks to flip the plastic case)
The point is 100% of the users that enables the FLOW3D mode are going to fall in this problem of missing cover images (because the first time you enable FLOW3D nobody have the cover images ready)... i know is something temporal... when this happens they needs to decide either to
1) add all the required cover images for all is games
2) dont use FLOW3D mode
So... what im suggesting is like an intermediate solution, is not going to look as well as having all the required cover images, but i guess is going to be good enought, and for sure is going to look better than what happens actually with so many "plastic" material visible from the case polygonal objects
Btw, have you thought in adding a setting to customize the color of that plastic material ?. And maybe even his alpha, it would be very realistic to have the PS1, PSP and PS3 cases in semitransparent
I tried to use all kind of plastic (I used mat properties from 3DS max) but it looks weird...
About the default picture used in Flow3D, can you make these pictures ? one for each patform. Just like you said, with instruction in the back of the cover, size of the picture and the paths available. FYI.
/dev_hdd0/game/MANAGUNZ/USRDIR/covers/3D/titleID.jpg
/dev_hdd0/PS2ISO/mygame.jpg (on this path managunz will 'detect' the type of picture from the width and height, so, it also support full covers)
/dev_hdd0/mycustompath/3D/titleID.jpg (to customize in settings)
I got the idea of adding a setting to customize the plastic cases material color from OPL, some OPL themes uses plastic cases in blue, in my oppinion this is not standard because most PS2 games have a plastic case in black, but yeah there are some in blue (and some others in red too)
Overall... yeah... PS2 plastic cases in blue looks good, also because blue is like the sony corporative color (in the same way microsoft is green, and nintendo is red, lol)
And INTEL is the "blue team", AMD/ATI is "red team", and NVIDIA is "green team"
I hate this kind of stereotypes because promotes the fanboyism, but yeah... is a bit like that, is an association of colors that happens naturally
Anyway, this applyes ony to PS2 plastic cases... i think changing the plastic material of PS2 cases in FLOW3D to blue will look a bit better than the actual light-gray
But... PS1, PS3, PSP plastic cases in blue are going to look weird... so incase of adding this setting to customize plastic cases color i guess it needs to be a settings for every game format
Actually, if we thing in how the plastic materials looks in real world there are only 3 groups:
PS2 = opaque plastic, black by default
PSP & PS3 = transparent plastic (is exactly the same material and visual effects in both)
PS1 = transparent plastic (but the visual effects are a bit different than PSP & PS3... PS1 is mostly like a "glass" effect)
So... initially it looks it can be made with 3 settings (and having PSP & PS3 together)... but i think having PSP & PS3 together would be like a restriction, the goal of adding custom settings to select the plastic cases colors is to allow the user to do whatever they wants (and it doesnt needs to be realistic, maybe they wants to have PS3 cases in pink, and PSP case in orange or any other color, thats fine)... so is better to have 4 settings to select the color for every game format individually
-----------------------------------------
The real deal for PS3, PSP, and PS1 are the transparency visual effects, and this is not so easy to achieve
Actually, what i suggested in my previous post (a setting to change the alpha) is not going to be "the definitive solution"... because the polygonal object is like an inflated balloon, only have the external geometry (but there is no geometry of the details inside the case)
I mean... if you make the plastic material a bit transparent is not going to be visible the "thickness" of the "walls" (because the walls doesnt have thickness), and the different color tones resulting of the density of the plastic material at different points of the case
Im not suggesting to do the internal geometry in polygons because is overkill (maybe will look fine, but is going to multiply the number of vertex of every case by x5 or x10) and is going to hit performance
In my oppinion the correct way would be to "fake" it by texturizing the whole plastic case using images that already have that visual effects to simulate the "density" of the plastic walls (like what i did with the 2D plastic case images), but i dont even know how to start mapping that images in 3D... so... im just chilling to make a recap of what i think about this
Anyway... the plastic case materials and the covers are 2 different things because are displayed at different positions and doesnt overlaps with each other, so is better to work with them separatedly, and by now i think is better to focus our attention in the covers first
So... my suggestion to allow to change the alpha of the plastic cases color is just an idea to improve them a bit... but is something temporal (eventually it could be superceeded by something better)
About the default picture used in Flow3D, can you make these pictures ? one for each patform. Just like you said, with instruction in the back of the cover, size of the picture and the paths available. FYI.
/dev_hdd0/game/MANAGUNZ/USRDIR/covers/3D/titleID.jpg
/dev_hdd0/PS2ISO/mygame.jpg (on this path managunz will 'detect' the type of picture from the width and height, so, it also support full covers)
/dev_hdd0/mycustompath/3D/titleID.jpg (to customize in settings)
Consider it done
At this point i have a good overall idea of how they are going to look, but i want to do it at the max quality posible and this is the kind of thing i know im going to review it tenths of times so i will make tenth of versions of that cover images
Initially i will make some low quality ones, this way we can start testing them and see how are adjusted to the polygons, some thoughts:
-I need to create some versions using a checkered pattern in the FRONT to see how the ICON0.PNG is adjusted to them, i guess im going to add some stuff surronding it (maybe a rectangular frame)
-The texts at the BACK are going to have multiple versions because im not so sure how to write that, and there is a lot of info we can add in them (paths, sizes, formats, extensions, etc...)
-To achieve an official look at the BACK we need to add lot of text and also some images (managunz logo maybe, or a bunch of optical discs, or dunno ?)
-I guess i can also make FRONT versions intended to be displayed in the other UI's when there is no cover for the game (FLOW2D, XMB, LIST, GRID), this way when the user enables the "display game case" in the theme setting all the games are going to be displayed with the plastic case
In the actual managunz the plastic case is only displayed if the FRONT image exists, visually is a bit weird to have some ICON0.PNG "floating around" together with the other games correctly displayed with COVER+CASE that pretends to be realistic
Also is a bit confusing because incase of not having any cover when you enable the "display game case" doesnt makes any difference, you will have many ICON0.PNG "floating around" but not plastic cases
In short... the actual managunz only displays the "2D CASE" image in FLOW2D, XMB, LIST, GRID if the COVER-FRONT exists... otherway (incase the COVER doesnt exists) is not displaying the "2D CASE" image
The idea of using a default FRONT image in 100% of them solves this problem because it allows to display the CASE images in 100% of them
I need to change many things in it, but by now i guess is good enought to play a bit with it, try to adjust it well to the polygons, i made the "side" in a different color than the rest (side in white and rest in blue) because this way you can see where are located that edges of the side that are supposed to have an small curvature, in FLOW3D there is something that looks weird in that edges, not sure what is it
The other challengue is to "draw" the game title in the side, not sure how tricky could be to achieve this, but is going to look nice in the cases "out of focus" (the cases at right, where can be seen all the sides next to each others)
I just realized there is an small mistake, im going to mention it incase you start trying to adjust it accuratelly to the polygons and you find it. The widths have 1 pixel of disalignment, i tryed to use the sizes you suggested in v1.36 release PS3 3D covers at 950x550 https://github.com/Zarh/ManaGunZ/releases/tag/1.36
But this one have: BACK = 451, SIDE = 49, FRONT = 450
In total are the 950 pixels of width, but there is a (critical) mistake of 1 pixel
nice, but I just figured the text is 'untranslatable'. I must write it with the code. Also I think it will be better if u remove everything in the bottom (abcd12345 and the frame in the back)
I just realized there is an small mistake, im going to mention it incase you start trying to adjust it accuratelly to the polygons and you find it. The widths have 1 pixel of disalignment, i tryed to use the sizes you suggested in v1.36 release PS3 3D covers at 950x550 https://github.com/Zarh/ManaGunZ/releases/tag/1.36
But this one have: BACK = 451, SIDE = 49, FRONT = 450
In total are the 950 pixels of width, but there is a (critical) mistake of 1 pixel
Not sure, but with the other small images tiny3d displays them at doube the size, so probably 1 pixel is going to be displayed as 2... or maybe 3 because when zoomed in in FLOW3D the images are huge
Dunno, but i will correct it in next version, that lines at the borders of the SIDE are like a reference by now
Btw, in this one i tryed to have the SIDE with 50 pixels width... but this depends of the width of the case polygonal object... maybe is better to increase the SIDE to 52, or 54, or dunno
If you find is better to increase or decrease the SIDE just tell me (i guess we are going to have this same adjustment problem with the others too)
nice, but I just figured the text is 'untranslatable'. I must write it with the code. Also I think it will be better if u remove everything in the bottom (abcd12345 and the frame in the back)
Yeah, i realized about the text in "only english", but initially having it in only english is not so bad
My idea was to add a lot more text (and reduce the font size of it, mostly because when zoomed in in FLOW3D is going to be close to 1000 pixels height)
Also, most games have at least 2 blocks of texts, the text block at top aligned to left, and the text at bottom aligned to right
I was about to fill another block of text with retarded texts (im low of imagination right now), but i thought that better not because it was not going to be usable, lol (you would get tired soon of my retarded texts when doing tests)
The point is translating all that blocks of texts requires lot of strings
The area at bottom at the BACK has been vandalised from a retail game (i dont even remember his name), it was mostly because is inside a "frame" and i decided to cut that frame entirelly (easy solution by now). But the plan was to create all that small elements individually (is going to loook much better)
And dunno, maybe some more decoration at BACK (i need to take a look at some random covers to try to copy a bit the official style)
All that effects at the back are mostly to try to mimick the official style, if we keep the BACK completly empty is going to look a bit unrealistic in my oppinion
-------------
Are you going to draw the TITLE_ID at bottom of the SIDE ? (in the area where is located the ABCD12345), thats cool, i didnt thought in it
-------------
In the FRONT i did nothing, but i have a couple of ideas to create a nice effect with the overlapped ICON0.PNG, give me some time to show it to you before deciding if keeping the FRONT empty
Most of my 'external libs' (not included in psl1ght) are installed in my environement (configure, make, make install) that's why I didn't notice.
I didn't uploaded the libs source in previous update of managunz because my internet connexion was very very very slow and I didn't want to wait few hours to upload an update. But now my internet speed is high, so, i'll upload them all. I'll try to link every static lib tell me if it's working in your environment :p
Or maybe a way to define our own path... like how we can with the game backup directory. I personally have my games organised something like this: /dev_hdd0/backups/PS3ISO. So if you were to move the cover path from ManaGunZ, I would probably set it to: /dev_hdd0/backups/covers. Having said that, if you don't change it, I think the current path is also good. That's just my idea .
@Zar i just realized about an small problem with the suggested dimmensions for PS3 3D covers of 950x550 pixels
Im meassuring a real PS3 cover and are 273x149 milimeters (im rounding half a milimeter up or down to simplify it)
Lets say... we want to display them at 950 pixels width... so we can calculate the factor 950 / 273 = 3.48
Then we use that factor with the real sizes
273 * 3.48 = 950.04 (right, this is our target)
149 * 3.48 = 518.52 (ooops, is a bit far away from the 550 you suggested)
So rounding them... it fits better to display the PS3 3D covers at 950x520
Look and the size texture instead to see if it have the right proportion, it will be stretched on screen anyway to the size of texture. I think I took an HD cover on gametdb to get the H/W ratio.No, it's a real cover size, just like you did but there is a mistake in the w, it's not 129. I measure 129*2 + 14 = 272 for the full cover but my calculation in the code are bad
EDIT 2 : I remember now, it's because my first boxes didn't have rounded corners...
Also, If you want a perfect position of the cover the only thing u have to look at is the witdh. To have the line between the side and front just on the rounded corner you have to get the size of the front + half of the rounded corner. It can be calculated from the dimensions of the texture on screen which is :
float w=129; // width of the front size with the corners
float h=149; // height (useless here)
float e=14+0.1; // thickness (from front to back, with corners)
float r=3; // radius of the corner
float l_tot = w*2-2*r + e-2*r + PI*r; // total width of the cover
so to get the witdh of front :
wf = w - r + PI * r * 1/8 = 129 -3 + 3,14 * 3 * 0,125 = 127,1775
for the front with for the jpg
wf_jpg = wf * w_tot_jpg / l_tot = 127,1775 * 950 / 260,52 = 463,75 pixels
and the side width :
ws_jpg = 950 - 463,75*2 = 22,5 pixels
As you can see you can't get something "perfect", because you can't split a pixel
What happens is in real world the PS3 covers are something around 272.8 x 148.6 milimeters (yeah is weird, they used decimals of milimeters) so i had to round them, and you too, is just we made different roundings, what i was calculating was 129.5 + 14 + 129.5 = 273
But is ok, is better to use 129 + 14 + 129 = 272, this way we are not dealing with decimals since begining
I think there is a problem in this calculation, is needed to use the "perimeter" of the curves (instead of his radius)
I think is better this way, what im doing is to calculate the perimeter of "half a corner" (meassured as a straight line), and from that point all the values inside "float l_tot" are linear distances (like if everything was straight lines), is more intuitive in my oppinion
float w=129; // width of the front with 1 "half corner"
float e=14; // width of the side with 2 "half corners"
float r=3; // radius of the corner
float ca=(2*Pi*r)/8; // linear lenght of a 45º circle perimeter (2.35)
float wl=w-ca; // linear width in between the border, and a imaginary line located at the start of the curvature (126.65)
float el=e-(2*ca); // linear width in between 2 imaginary lines located at the ends of the curvatures (9.3)
float l_tot = 2*(wl+ca) + el + 2*ca // total width of the cover
----------------------------------------------------------------
The front width (without curve) is "wl" (a straight line in real world)
The side width (without curve) is "el" (a straight line in real world)
And total width is also 2*wl + el + 4*ca
I know what I did was wrong. I told I started with a box without corners, so it was 129 + 14 + 129
Later I added corners that's why the total_width is shorter than it should be.
I know what I did was wrong. I told I started with a box without corners, so it was 129 + 14 + 129
Later I added corners that's why the total_width is shorter than it should be.
Im looking at this mostly because the default cover i was doing at 950x550, the other day i didnt realized, but today i overlapped a real cover (keeping the 950 width in both) on top of it and i noticed it doesnt matches in height
Look, this is what i did as reference (im just showing it to you so you get an idea how much varies
The image at botom (with some blue) is the default cover i was doing at 950x550
And the real cover at top is the reference https://www.gametdb.com/PS3/BLUS31164
It should be like you said but I don't want to have headache by doing it, sry.
Do you want to change the code ?
There is Draw_PS3COVER_3D, Draw_ICON03D, Draw_PS3ICON0, Draw_PS3COVER, Draw_PS3GAMECASE_3D to modify...