Sorry I must have mis-read. The portion that actually displays your image is 4:3 at all is the transformation and zoom you have applied for the PS2 have made it deviated. If you want the image to fit perfectly within the screen you will have to not have a 4:3 multiple as some stretching will be required. I doubt even your PS2 display is pixel perfect either.
I understand this, and I can mess around with tv settings later. The question is whether the game is rendered in a 4:3 rectangle inside of a 3:2 rectangle, as it outputs 720x480 (3:2 ratio). If the game renders as actually 720x480, then I need to squish it to 4:3 in calculations, but if it is in the center of a 3:2 frame, then I need to maintain 3:2 when I move it into place.
I don’t know which it is.
No, your tv is closer to a 4:3 ratio so your calculations should reflect this.
I am aware of that. You said the device is outputting 720x480 before scaling. Is that false?
If it is outputting 720x480 before scaling, is the entire game 720x480, so needs to be squished, or is the game 4:3 with pillarboxing, so it just needs to be shifted into place and zoomed?
It has to be outputting as one of these before scaling:
Blue area representing the actual game, black rectangle being the frame
It outputs at 720x480 but your tv crops the size and only shows a portion of that which is around < 610x450 or so give or take a few pixels.
So you’re saying it is scenario 1 in my picture? In that case we would definitely want to maintain a 3:2 ratio, not a 4:3 ratio in the math.
Making that entire frame 4:3 would cause the already 4:3 game window to become square.
It’s none of those Scenario’s because the visible area of your tv isnt 640x480 like I said before.
It is similar to Scenario 1 except the physical values of your television are more like 610x450 or so. I don’t know the exact values since I am unable to test and all analog televisions differ especially when you have changed the default transformation and scaling on the tv.
How would you test it to find out what the exact visible range is? I have no problem trying to do that myself, I could reset all my transformations to 0 and try to measure it I just don’t know how.
the physical values of your television are more like 610x450
That is still a very small margin away from 4:3, so if this is still basically a 4:3 frame that exists in the center of a 3:2 frame, then surely it would make the most sense to try to maintain a 3:2 ratio when I do the scaling?
I just need to get the idea of what the math is supposed to be doing before I try calculating it.
There is no way to know the exact pixel dimensions of your TV, unless maybe the manufaturer specifications has them listed which I doubt. It is really trial and error. TimeWarpGamer had the same issue and used a test pattern to help him but I’m not sure how he loaded it.
I have coded an interface in EmulationStation so you can adjust pixel borders easier to adjust values and make it fit in screen, but it has yet to be released and compiled.
ref:
Interesting. I guess I’ll just keep guessing at it for now.
The question remains: is the ratio still supposed to be 3:2? I really don’t see what is getting lost in translation here.
I guess I’ll just assume it’s 3:2 and if it looks blatantly wrong I’ll try something else. It would make no sense to try and make x2-x1 / y2-y1 = 4/3 unless the actual game window as it is being output is 3:2.
@Drambemu It’s trial and error really. If you find ratio 3:2 can fit to the edge properly then that’s good. But in my calculations I was using values closer to 4:3 and I think you will find to make it fit like your PS does it will be a ratio closer to 4:3.
I guess I’ll try testing it with a test pattern.
I have no idea what’s going on under the hood. Just as an experiment I tried setting the output in the 480cvbs offset file to “0 0 720 480” which should just be the default output. It gave me this:
I only remembered making very minor adjustments to my CRT service menu settings, but just for the sake of making this simpler I decided to reset almost all of them to zero, including VPOS, HPOS, VSIZ. Turns out I must have set them much more radically than I thought. I was wrong.
I guess this shouldn’t be especially surprising, after setting all these things to 0, it shifted hugely to the right and up, exactly the opposite of where it was originally causing me problems.
Removing all the text from the 480cvbs offsets file led to this corruption:
I have no idea why giving it 0 0 720 480 draws the picture skewed like a parallelogram instead of just looking normal, but I’ll try a normal 4:3 resolution. I now have a spreadsheet for doing this extremely quickly, it takes about 5 seconds to do the calculation. This is 0 0 640 480.
It appears pretty stretched and shifted waaay up.
Here it is at 10 10 650 490. I think my TV can actually fit 640x480 almost perfectly, but It’s just slightly off. I had to adjust my VSIZ and VPos values pretty heavily to get it to look normal.
I have it perfect now:
The offset I ended up using was 14 6 646 480, it turned out to be extremely close to 640x480. I think the confusion mostly has to do with that emulationstation uses a completely different resolution than PSX emulator itself does. Something like that anyway. My CRT was set with:
- HPOS 0
- VSCO 9
- VLIN 10
- VSIZ 13
- VPOS 8
I really hope the emulator software itself doesn’t change super dramatically because it took a long ass time to get this all exact.
if it’s using the real offsets which you are using I can keep compatibility in the file for future versions.
I’m not sure what you mean. I didn’t modify any other files though.
the code that gets your values and modifies the screen, I will keep that code part so you wont have to modify it again. The future version has it so you can set the internal resolution and bordering in ES, rather than manually entering in values.
Excellent, thank you. If you want I can send you the spreadsheet to do the math really fast.