Ich habe zwar noch nie Software portiert, aber kenn mich trotzdem etwas aus, da ich mich mal mit dem Thema beschäftigt habe und auch schon für verschiedene Platformen entwickelt habe.
Sowohl 2. als auch 3. hängen sehr stark vom Code ab den du portieren willst, der Ausgangsplatform und der Zielplatform. Wenn das Spiel/Programm schon in einer Linuxversion verfügbar ist, macht das die Sache schonmal ein ganzes Stück einfacher in der Regel. Wurde der Code zu dem auch noch sauber aufgebaut und alles folgt strikt den Prinzipien von OOP, so ist portieren eigengtlich ein Kinderspiel, da die Änderungen sich nur auf ein paar wenige Klassen beschränken dürften. Hat der Coder nicht so den Bezug zu OOP, so kann das Portieren ziemlich übel werden. Prinzipiell gilt als kleine Daumenregel, je mehr man sich an die OOP hält, desto einfacher lässt sich ein Projekt portieren. Ist sehr viel prozeduraler Code vorhanden wirst du sehr viel Code durchwühlen müssen und gucken welche Funktionen ersetzt werden müssen und welche nicht.
Speziell wirst du vor allem gucken müssen, welche Libs gibt es auf der Pandora, welche nicht. Gibt es die Libs die das Ausgangsprogramm verwendet, ist das Portieren oft kein Problem, da du nur keine bis wenige Änderungen am Code vornehmen musst. Gibt es die Libs nicht, so hast du ein großes Problem. Entweder schreibst du dann selbst Code um den der Lib zu ersetzen oder du portierst auch die Lib.
Es gibt sicherlich noch tausende mehr Faktoren die einem das Leben shwer machen können, aber das oben Stehende, empfinde ich als die Hauptfaktoren bei sowas.
Spontan fällt mir noch ein, dass du das Programm evtl nochmal optimieren musst, da der ARM evtl andere Funktionen scchneller ausführt als der X86, aber damit habe ich mich noch nicht auseinander gesetzt.