В этом предложении при существительном Петербург имеется два приложения и одно согласованное определение, все вместе образующие ряд. Элементы этого ряда можно перечислить через запятую, а можно какую-то часть ряда отделить более сильным знаком тире, подчеркнув его самостоятельность:
...Петербурга, его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга — его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга, его родного города — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к родному городу);
...Петербурга, его родного города, — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к Петербургу).
Если поставить тире перед последним приложением, то сочетание согласованных определений нужно закрыть запятой:
...Петербурга, его родного города, любимого и жестокого, — прототипа всех будущих городов.