Let D be the distance between towns.
J reaches Happytown D/64 hours after starting. At that time, H has travelled for D/64 - 2 hours, and covered a distance 96*[(D/64)-2] km
Here is what you know:
96*[(D/64) -2] + 32 = D
3D/2 + 32 -192 = D
D/2 = 160
D = 320 km
J drove for 320/64 = 5 hours
H had driven for 3 hours when J arrived, covering 288 km, leaving 32 to go.