This is the first challenge (of many).
It is also the identical problem there is with the background data.
First we need an
Officially accepted translation process from ABGR 16 format to R8G8B8A8 or whatever texture format we plan on using.
There are some favorite methods for scaling textures.
Nearest neighbor (fill a pixel nearest to the scale factor).
bilinear filtering
trilinear filtering
cubic spline (use a polynomial exquation that is acurate to the slope in order to interpolate the color changes from rescaling).
etc. etc.
However transparencies are the problem here.
I think just filtering textures is a 'bad thing' the process probably should be done in 2 steps.
1) filter texture colors (cubic spline is pretty good for this).
2) Nearest neighbor the transparency and and black as well. (This is a must because transparent zones either are or aren't and black is black period in FF7).
3) set the alpha and black regions in data from step 1 using data from step 2
I believe it really needs to be done as a 2 stage process to prevent artifacts in the alpha channel. I don't believe we can faithfully make it look like the original if we allow the alpha (transparency) channel to be filtered like the color channels. As then we get into semitransparent regions and we may end up with <explitive> green and blue lightened halos along with dark edges with fonts and background information.
Cubic spline will give fairly close color and lumanance transitions to the original even though it might be scaled up by odd ball number.
As a suggestion we should determine the exact resolution the script information, window, and menu data was designed for and plan scaling based off of that instead of speculating proper scale factors. It might be possible to dynamically tweak and adjust this, however that shouldn't be necessary if the proper research has been done. I guess the tweaking could be used to find what looks good and remove it later, heh.
Cyb