unfortunatly your understanding of xnormal is not complete. yes, you load a low-poly game model into xnormal to produce tangent-space normal maps. but you also have to feed it a high-poly model to bake the details into those textures. xnormal is not creating them out of thin air, it’s only calculating the difference in polygons amongst the two models.
there are programs, like awesomebump, which can create “fake” details just from pictures witouth the need of a high-poly model, but this only really works well with relativly flat surfaces like walls.
last but not least you can also paint small details yourself. substance painter, 3dcoat, mari, ndo for photoshop and also blender allow you to manually change the normal map.
long story short: if you want a good looking and well shading normal map to create the illusion of the low-poly ingame model to have lots of details else not possible with the density of the mesh, you have to create the high-poly model yourself. this is done through digital sculpting which produces a model with polygons in the range of hundreds of thousands and even millions. blender is well suited for the task, and the 2.8 vers coming in the next months (beta already available) will be a good start to jump into the cold.