Ryan Joyce holds his nerve and seals a 3-2 victory over Rob Cross to reach his first World Grand Prix semi-final.