FF7 - Technical Discussion on Game Resolution and FMV

  • Thread starter Thread starter DLPB_
  • Start date Start date
Status
Not open for further replies.
Sadly, after FF7's release, much of the original work simply vanished. There very little version control and coordination between the creatives. Also, because of the lack of versioning, the code that was given to the FF7PC port team wasn't even the final version. Work started, and then stopped as Square had to pull a newer version from the archives (backup tapes). It wasn't until square started up-porting the series to new engines did they discover the need to have some kind of asset control.

Shame, really.
 
It's probably overscan. Analog signals were designed to cut off a number of lines from the image. This is where analog TV signals could dump all their garbage. Thing is with computer generated video signals like on consoles there is no garbage to worry about. But because TV's would cut it off anyway you had to accommodate for it if you wanted your full frame to be displayed. Otherwise you'd just be wasting pixels.

Broadcasters gave out recommendations of 5% overscan. And 95% of the half-resolution of 240 is 228. Round down to the nearest multiple of 8 (common in many video codecs) and you get 224.

For the high-res renders I'm guessing they wanted to keep it at the same aspect ratio. Another hypothesis would be that their rendering engine didn't give satisfactory results for low resolutions and they decided to render high-res and do some smart downscaling.
 
Please do not reply to old posts. I suggest you familiarize yourself with the rules
 
Well that was just rude and totally uncalled for. I went to the trouble of registering for this site and writing a post just to help you guys. I had a meaningful contribution about something which the original posts seem to have missed. And all I get is a rude response that I shouldn't have posted.

The "rules" I could find say that old posts are okay if it's relevant. It's easy enough to automatically close threads if you don't want anyone posting.

Why don't you just close the forum and move to a private mailing list if you don't want anyone else contributing?
 
Yeah, I feel you. I cringed a little when I read it. We're all people, too, though, and recently the site has a lot of traffic without the infrastructure to handle it. The mods are a little overwhelmed sometimes, or just having their own stuff out. Mostly it is a problem with the search function of the site being down and so we are trying to be careful about how we reference things and bump threads.

For what it's worth, I found your contribution interesting, but I had to kind of dig around to learn something about the topic you were discussing, which was also interesting.
 
Well that was just rude and totally uncalled for. I went to the trouble of registering for this site and writing a post just to help you guys. I had a meaningful contribution about something which the original posts seem to have missed. And all I get is a rude response that I shouldn't have posted.

The "rules" I could find say that old posts are okay if it's relevant. It's easy enough to automatically close threads if you don't want anyone posting.

Why don't you just close the forum and move to a private mailing list if you don't want anyone else contributing?
To be honest I was happy with your contribution, and I have never understood why so many forums enforce the "thread is too old" rule.  I think resurrecting a thread (if you have something to contribute and it is relevant) is preferable to opening up a completely new thread.  It makes no sense imho.  But you have to understand people like sl1982 do a thankless job and more often than not are dealing with idiots day in and out, and it gets to them.  I have been just as guilty of being rude to people asking for help for the same reason.  It's a fine balance.
 
To be honest I was happy with your contribution, and I have never understood why so many forums enforce the "thread is too old" rule.  I think resurrecting a thread (if you have something to contribute and it is relevant) is preferable to opening up a completely new thread.  It makes no sense imho.  But you have to understand people like sl1982 do a thankless job and more often than not are dealing with idiots day in and out, and it gets to them.  I have been just as guilty of being rude to people asking for help for the same reason.  It's a fine balance.
I guess "thread too old" rules make most sense in technical support questions. Either the original poster has long solved his problem, the problem deals with ridiculously out of date hardware or software revisions, or the new post is simply "Oh, I've got the same problem, help me!".
In this sub-forum people should be able to keep contributing to old threads so that information is in one place (until it is moved into the wiki) and can be easier found with a search. Especially nowadays that many fundamental parts of FF7/8/9/XG have been discovered and we are mostly filling in the blank spots.
I'm a member on another forum where some threads are going on for many years, whenever new information arrives. I personally don't mind if anyone adds posts to any of the threads I started, and even though I don't post much any more, I still check now and then if anyone has found something cool, or asks questions about anything I worked on.
 
Last edited:
As for the recentsuggestion, he does have a fair point. I've nary sat down and calculated the typical NTSC overscan range.
Do either of you remember if FF7 on the PS1 had a screen position adjustment option vertically and or horizontally?
I'll have to now get PCSX running on my machine (LOL).
I know most of the time the vertical total and timing for the display system is setup in various fields
IE


[list type=decimal]
[*]
  • vertical front porch
  • vertical total
  • vertical back porch
  • vertical blanking
[*]
  • horizontal front porch
  • horizontal total
  • horizontal back porch
  • horizontal blanking
[/list]
Sync was often dumped in as part of the blanking however... hmmm it's been a while I'll have to look at the GPU.
I know some of the games were made so the positioning (coordinates) on the screen worked in NTSC or PAL systems identically.

Anyhow back to musing I guess.

Cyb
 
No, there is no screen adjustment on ff7 :)  Although, as I said in main post, 224 was the SNES resolution also. It's possible they just felt comfortable keeping that res when they moved to sony... and maybe it was all to do with overscan back then too.  Maybe they were just being ridiculously safe...
 
Last edited:
Original Toy Story from 1995 was rendered only in 2K resolution....
 
I tried to phrase a reply that wouldn't sound like I was being a dick (and I mean that sincerely), but I couldn't do it.  Basically, your comment hasn't got a lot of relevance to the problem or this thread.  It was a nice piece of trivia though.
 
Original Toy Story was rendered only in 2K resolution....
I tried to phrase a reply that wouldn't sound like I was being a d*ck (and I mean that sincerely), but I couldn't do it.
And this is part of why DLPB is quickly reaching Buddhist lama status. I giggled.

Look, Toy Story came out in 1995, that was the Wild West, even before Final Fantasy VII. Disney had to do all kinds of messing about with PIXAR's files to get it to look nice at 1080p for the blue ray. At this point we're just beating a dead horse, though. We do not have a way to fix the black bar right now. I really wish we could stretch it vertical because it would help with the widescreen ratio distortion. I don't think this should be a closed topic necessarily, but I think if you don't have at least a theoretical lead to bring to the table for fixing the black bar this thread should probably lay dormant.
 
Last edited:
I FIGURED OUT WHY THE VIDEO IS 320x224

Square decided that the best way to intermix movie data and 3D data was to manually place the video bitmap into VRAM via the the CPU and not by using an MDEC DMA transfer. This allowed the engine to manually lay down video data and then paint the 3D model on top when it was needed.

Sadly, due to data bus bandwidth limitations, You can only transfer so much data to the GPU from the CPU before it overflows. To get around this, Square decided to send the video data using twenty 24x224 "strips", pushing them into the VRAM with a write/flush/write/flush/write/flush loop. There isn't enough bandwidth between the CPU and the GPU to make the strip longer.

If the made the strip more narrow, (and therefore longer so it will go to 240), they would run into pixel data alignment issues.

If the strip was made to the next logical pixel data boundary(8x240), the the video would have required too many cache flushes, therefore slowing down the FPS.

In the end, the resolution tradeoff didn't hurt the video quality, so the resolution stuck.

It also has the added benefit of more Color Look Up Tables to be tucked away at the bottom of the viewport.

I have screenshot of the VRAM in mid-write so show what I mean. You can see it linked here

On the right and side is the GPU's Command chain for that vsync, where it is laying down the 24x224 strips and flushing the cache after every write.

And that should put an end to that argument :)

== EDIT ==

And, when the move flips from 24-bit to 16-bit the strips become 16x224 this allows them to use the same program loop with perfectly aligned pixel boundaries with the same amount of cache flushes. With less data, this frees up some bandwith to draw 3d polys on the screen before vsync.

This post is the proud winner of my prestigious "post of the day" award. ~Covarr
 
Last edited:
Status
Not open for further replies.
Back
Top