I haven't read all 8 pages of this thread, so I may be missing the point here.
If you want a game ALWAYS centered and don't want to draw the game in the top-left corner and then move it later, why not program all your routines to have a center of (0,0) for the middle of the screen, then adjust the actual offset later.
Something like:
TYPE TVector
x
y
ENDTYPE
GLOBAL _center AS TVector // 'Center' of screen
GLOBAL _screen AS TVector // Screen dimensions
// Do once at program start, or screen resize or orientation change
GETDESKTOPSIZE _screen.x, _screen.y
_center.x = _screen.x / 2.0
_center.y = _screen.y / 2.0
...
LOCAL object_pos AS TVector
// centered sprite
object_pos.x = 0
object_pos.y = 0
DrawSpriteCentered(1, object_pos)
// sprite 100 pixels left of center, 50 pixels below center
object_pos.x = -100
object_pos.y = 50
DrawSpriteCentered(1, object_pos)
...
FUNCTION DrawSpriteCentered%: sprite_id%, pos AS TVector
LOCAL vc AS TVector
vc = ConvertCenter(pos)
DRAWSPRITE sprite_id, vc.x, vc.y
ENDFUNCTION
FUNCTION ConvertCenter AS TVector: xy AS TVector
LOCAL v AS TVector
v.x = _center.x + xy.x
v.y = _center.y + xy.y
RETURN v
ENDFUNCTION
Then no matter what screen size you have, the game will always be centered, with blank borders depending on the difference.