XIII doesn't really *USE* shaders, vertex or pixel, at ALL.
It actually renders each model several times. The outline is generated using the same trick I used to use (and still do) in DBC, where you essentially clone a model, invert the cloned copy, and colour it black.
Thanks to scaling it as a negative number, the Z-buffer places it behind any object that's inside the clone, resulting in the ''outline'' not actually obscuring the gun itself.
Mind you, I saw some code for a combined pixel & vertex shader on GameDev.net somewhere that made some pretty neat cel-shading..
How's my typing? Phone 0800-GO-TO-HELL