Ich hab sowas zwar selbst noch nie gemacht, aber ich hab so ne ungefähre vorstellung, wie das geht:
Man muss in einer weiteren lua datei den update code benutzen. Z.B. update.lua. Diese Datei verbindet sich mit dem Internet, lädt neue Datein herunter, z.B. Blackballs.zip, entpackt das Verzeichniss und speichert den Inhalt am richtiegen Ort ab.
Zuerst WLAN initialiesieren:
Initialisiert das WLAN-Modul. Dieser Befehl wird immer vor Gebrauch weiterer WLAN-Befehle benötigt.
Dann musst du, um dich mit dem Internet zu verbinden, die richtiege Verbindung auswählen lassen. Dazu muss man ein kleines Menü schreiben.
Wlan.getConnectionConfigs()
Ermittelt alle verfügbaren Wifi-Verbindungskonfigurationen der PSP und speichert sie in einer table ab.
Menü
verbindungen = Wlan.getConnectionConfigs()
while true do
screen:clear()
pad = Controls.read()
for m=1,20 do
verbindungstring = "" .. verbindungen[m]
if verbindungstring ~= "" then
if menu == m then
screen:print(0,20 * m,verbindungstring[m],red)
else
screen:print(0,20 * m,verbindungstring[m],blue)
end
if pad:up() then menu = menu - 1 end
if pad:down() then menu = menu + 1 end
if verbindungstring[menu] == "" then menu = 1 end
if pad:cross() then auswahl = menu break end
end
end
screen:flip()
end
Wlan.getConnectionConfigs(auswahl)
So, bis jetzt wär nur die verbindung ausgewählt und der PSP mitgeteilt, sie soll sich mit dem Router verbinden. Jetzt müssen wir prüfen, ob die PSP auch verbunden ist:
if not Wlan.getIPAddress() then
System.sleep(100)
end
Dieser if-Block kommt nur dann in Funktion, falls der Luaplayer die IP-adresse nicht ermitteln kann. Eventuell sollte man diesen code nch ergänzen, aber ich mache hier ja nur ein Beispiel.
So, jetzt müssen wir uns mit der entsprechenden Seite verbinden, von der man die datei laden möchte. Hierzu müsste die Datei dann auf Webspace liegen und nicht bei seiten wie megaupload oder rapidshare hinterlegt sein:
neuersocket = Socket.connect("http://www.BlackBalls.de", 80)
Dann muss man schauen, ob man mit der Seite verbunden ist:
if neuersocket:isConnected() == false then
System.sleep(100)
end
Auch hier wäre es ratsam, den code weiter zu modifizieren, ich mache das jetzt nicht, wei ich nicht ewig zeit habe.
neuersocket:send("GET /Blackballs.zip HTTP/1.0\r\n")
data = neuersocket:recv()
Das ist jetzt ziehmlich vereinfacht dargestellt, aber du kannst das auch bestimmt alleine in seine entgültige Form bringen, wenn du möchtest.
Also, jetzt haben wir (zumindest theoretisch) das BlackBals.zip verzeichnis im Arbeitsspeicher, aber im stringformat, sodass wir es (theoretisch) mit einem einfachen code speichern können:
datei = io.open("BlackBalls.zip","w")
datei:write(data)
datei:close()
dabei gibts nur 1 großes Problem. Im selben Verzeichniss wie die upadte.lua müsste die BlackBalls.zip bereits existieren (auch ohne inhalt).
dann nurnoch unpacken:
ZIP.extract("ms0:\PSP\Game\BlackBalls.zip","ms0:\PSP\Game\","")
ABER WICHTIG: Die Codefunktionen hab ich auf ca. 5 verschiedenen Webseiten gefunden und nicht getesten! Ich hab keine Ahnung, ob das alles klappt oder ich vielleicht (wahrscheihnlich) irgendwo einen Riesenfehler gemacht hab, sodass das nicht so klappt.
Wenn du einen neueren luaplayer ab luaplayer 8 benutzt, kannst du das herunteraden hiermit machen:
System.webbrowser(Pfad zur webbrowser.pbp,URL)
Wahrscheihnlich hab ich hier zu über 50% schrott geschrieben, aber wenns dir trotzdem hilf, ist auch gut