NUOVA SOTTOSEZIONE DI "WIKY" CONTENENTE TUTTE LE FUNZIONI DEL LUA PLAYER HM7

dic 30

LUA – Funzioni

Nella scrittura di un programma, una delle parti fondamentali è la definizione di funzioni che risolvono un determinato problema o che restituiscono un determinato valore in base a ciò che gli viene dato in pasto :)

In LUA implementare una funzione è molto semplice, basterà infatti seguire la seguente sintassi :

function <nome_della_funzione>(<eventuali_valori_passati_alla_funzione>)
  <blocco_di_istruzioni>
end

E se vogliamo che la nostra funzione ci restituisca un valore, ci basterà aggiungere un return prima della chiusura della funzione, in questo modo:

function <nome_della_funzione>(<eventuali_valori_passati_alla_funzione>)
  <blocco_di_istruzioni>
  <strong>return <valore></strong>
end

Quindi per quanto riguarda il funzionamento delle funzioni, nel LUA non cambia quasi nulla rispetto agli altri linguaggi di programmazione.

Un esempio completo di funzione, con anche il ritorno di un valore potrebbe essere :

function somma(a,b)
  c=a+b
  return c    -- oppure potete scrivere direttamente: return a+b
end

Successivamente, dopo aver definito la funzione, per richiamarla basta scrivere all’interno del nostro programma il suo nome seguito dalle doppie parentesi tonde, con all’interno gli eventuali parametri (o variabili) che gli vengono passate:

somma(1,2)

Esempio Completo:

Spoiler Inside SelectShow

Permanent link to this article: http://taketheball.altervista.org/?p=590

dic 29

LUA – Ciclo While

Uno dei costrutti fondamentali della programmazione, insieme al FOR, e alle istruzioni condizionali (if / else), è appunto il ciclo while.

Esso ci permette di iterare un blocco di istruzioni fino a che è verificata una determinata condizione.

while <condizione> do
  <blocco di istruzioni>
end

Ed ora ecco un esempio con condizione sempre verificata:

while true do
  <blocco di istruzioni>
end

In questo caso il ciclo while non si fermerà mai, perché la condizione specificata, ovvero “true” rimarrà sempre verificata, in quanto true sarà sempre true (scusate per il gioco di parole).

Solitamente si utilizza una condizione che rimane verificata solo per un certo lasso di tempo, in modo tale da poter terminare l’operazione da eseguire, per esempio:

flag = true
a=0
b=20
while flag do
  if a<b then a=a+1 end    --fintanto che a è minore di b, a viene aumentata
  if a==b then flag=false end    --se a diventa uguale a b viene interrotto il ciclo
end

Negli esempi appena visti, la valutazione della condizione viene effettuata prima di eseguire il blocco di istruzioni, ma in LUA esiste anche una variante del ciclo while, con la quale viene prima eseguito il blocco di istruzioni e poi verificata la condizione, ecco il codice:

repeat
  <blocco di istruzioni>
until <condizione>

Dopo aver parlato di questi due metodi per iterare blocchi di istruzioni bisogna notare che sia nel primo che nel secondo metodo, se non si sta attenti a stabilire la condizione e anche quando essa smetta di essere verificata, le operazioni all’interno del ciclo potrebbero essere eseguite in modo errato.

Permanent link to this article: http://taketheball.altervista.org/?p=585

dic 27

LUA – Funzione SLEEP

 

Una delle funzioni fondamentali nella programmazione, è la funzione SLEEP.

Essa permette di far attendere la normale esecuzione del programma per un determinato lasso di tempo tra una operazione e l’altra, in modo tale da poter dare, appunto il tempo, ad un utilizzatore del programma di leggere le informazioni stampate a schermo o di capire cosa sia stato eseguito senza che ciò avvenga in un millisecondo.

In LUA non esiste una vera e propria funzione di “SLEEP”, ma è possibile implementarla molto facilmente utilizzando il comando getTime già incontrato nel post LUA – Ora e Data.

Il codice della funzione è molto semplice:

function clock()
   return System.getTime(3)
end

function sleep(sec)  -- sec=secondi di attesa
  t0=clock()
  while clock()-t0 <= sec do end
end

Come potete vedere vi sono due funzioni distinte, una la funzione clock() che ritorna i secondi attuali (0/60) mediante l’uso del comando System.getTime(3) e la seconda funzione la cui intestazione è sleep(sec) che è la funzione SLEEP vera e propria.

Il funzionamento è basilare:

  • richiamiamo la funzione sleep passandogli un valore numerico che rappresenta i secondi di attesa,               ES: sleep(5);
  • dentro alla funzione sleep viene inizializzata una variabile che memorizza il secondo esatto in cui abbiamo richiamato la funzione sleep, nel nostro caso ho chiamato questa variabile “t0″
  • successivamente si entra in un ciclo while che non esegue nulla e che termina solo quando i secondi attuali meno il tempo zero (o t0) sono maggiori dei secondi di attesa.                                                                                     Per far comprendere meglio il funzionamento del ciclo while bisogna notare che i secondi attuali vengono aumentati ad ogni secondo, mentre il tempo zero (o t0) non cambia mai durante l’esecuzione del ciclo while.

In questo modo il ciclo while all’interno della funzione sleep rimane attivo per un tempo determinato in base ai secondi che gli vengono comunicati tramite il passaggio di variabile.

Permanent link to this article: http://taketheball.altervista.org/?p=575

dic 26

Tantissimi Auguri di Buon Natele e di un felicissimo 2014 da fede94boss blog :)

Permanent link to this article: http://taketheball.altervista.org/?p=571

dic 25

LUA – Funzione Switch

Uno dei costrutti fondamentali della programmazione è appunto lo switch; esso permette di eseguire un determinato blocco di istruzioni in base ad un indicatore, solitamente detto “case” (in italiano caso).

In LUA,  la soluzione più semplice è creare una funzione che prenda in ingresso una variabile “case” e che in base a quest’ultima esegua un determinato blocco di istruzioni piuttosto che un altro.

function switch(case)
 if case==1 then
    <istruzioni>
 end
 else
    if case==2 then
       <istruzioni>
    end
 end
 else
    if case==3 then
       <istruzioni>
    end
 end
end

In questo modo la funzione creata in base al parametro passatogli esegue il blocco di istruzioni corretto e successivamente esce dall’esecuzione.

Ma questo non è il modo più efficiente di risolvere il problema.

Solitamente si indicizza una tabella di funzioni, in questo modo:

action={
   [1] = function (y) screen:print(0,0,"case 1",color) end,
   [2] = function (y) screen:print(0,0,"case 2",color) end,
   [3] = function (y) screen:print(0,0,"case 3",color) end,
   [4] = function (y) screen:print(0,0,"case 4",color) end,
}

E successivamente per utilizzare lo switch si scrive action[x](y), dove la “x” viene utilizzata per determinare il case e quindi il blocco di istruzioni da eseguire e la y è la variabile che viene passata alla funzione eseguita nel case scelto.

Così facendo si evita di dover utilizzare i costrutti if - else - else if, e il codice diventa molto più efficiente, ma purtroppo diventa anche molto più “criptico” XD.

Permanent link to this article: http://taketheball.altervista.org/?p=542

ott 01

Accesso al play station store da custom firmware

Fino a poco tempo fa, se avevate una PSP modificata, per poter effettuare l’accesso al play station store era necessario utilizzare un plugin che mascherava il firmware effettivo della PSP per “far credere” al play station store che avevamo una PSP aggiornata, visto che se non era così l’accesso veniva bloccato.

Per fortuna, ora che non vengono più rilasciati aggiornamenti per il firmware della PSP, la soluzione è molto più semplice, perchè basterà aggiornare all’ultima versione di firmware rilasciata, che è la 6.60, ed installare il custom firmware 6.60 PRO-C2 o uno alternativo ma che abbia sempre come base il firmware originale 6.60.

In questo modo essendo che il firmware di base è aggiornato all’ultima versione, l’accesso al play station store viene eseguito senza problemi, anche avendo modificato la propria PSP.

Permanent link to this article: http://taketheball.altervista.org/?p=521

ott 01

VSH Menu – Cos’è e Impostazioni ottimali

Se possedete una PSP modificata vi sarete sicuramente accorti che premendo il tasto SELECT mentre vi trovate sulla XMB ovvero nel menu principale della console, compare un menu in sovrimpressione con elencati diversi parametri.

Dovete sapere che qui parametri non sono messi lì per caso ma possono servire per modificare importanti opzioni che si hanno solo modificando la propria PSP.

Tra le cose che possiamo fare vi è la possibilità di cambiare il CLOCK DELLA CPU, il DISPOSITIVO USB, l’ISO MODE, che sono appunto le cose più importanti da considerare.

Il CLOCK DELLA CPU è molto importante perchè se settato male potrebbe portare al crash della console, proprio per questo vi consiglio di settarlo troppo basso, ma di settarlo sul valore 333/166, questo sia per il clock della XMB che per il clock in game.

L’opzione DISPOSITIVO USB ci permette collegarci tramite un semplice cavo usb alle memorie flash interne alla psp o al lettore di UMD, infatti invece di collegare la porta usb della psp alla memory, settando opportunamente il valore di “dispositivo usb” è possibile connettersi e vedere il contenuto delle memorie FLSH0, FLSH1, FLASH2, FLASH3 e del disco UMD inserito nel lettore, il chè ci permette di farne un backup molto facilmente.

L’opzione ISO MODE ci permette di cambiare la modalità con la quale vengono caricate le ISO dei giochi, se state usando un custom firmware M33 potete mettere M33 Driver altrimenti vi consiglio di usare NP9600.

Queste sono le impostazioni ottimali per il vsh menu, ma se entrate nel recovery menu troverete tante altre impostazioni, che vi consiglio vivamente di non toccare a meno che non sappiate quello che state facendo perchè potreste causare dei danni alla vostra console.

Permanent link to this article: http://taketheball.altervista.org/?p=485

ago 29

LUA – Caricare pagina web

Tra le tante cose che il LUA consente di fare, vi è anche la possibilità di caricare una pagina web direttamente dai vostri homebrew.

Per poter usufruire di questa funzione, dovete innanzitutto possedere l’eseguibile del web browser (scaricabile da qui)  e poi utilizzare il seguente codice LUA nel vostro homebrew:

System.webbrowser([str] directory, [str] url pagina web)

Dove directory è il percorso della cartella in cui si trova l’eseguibile del web browser (ES ms0:/PSP/SYSTEM) e url della pagina web è l’indirizzo della pagina che vogliamo caricare (ES http://www.google.com/).

Da notare che entrambi i valori passati alla funzione System.webbrowser devono essere di tipo stringa.

Al momento del lancio della funzione, si aprirà il panello per la scelta della rete alla quale connettersi, e dopo aver scelto la rete da utilizzare partirà il caricamento della pagina web.

Una volta caricata la pagina web, per uscire dal web browser vi basterà premere il tasto cerchio per ritornare al vostro homebrew.

Permanent link to this article: http://taketheball.altervista.org/?p=460

ago 23

Personalizzazione degli EBOOT.pbp

Quando si deve creare un homebrew, che sia essa un tool o un gioco, una delle da fare, è personalizzare l’eseguibile(EBOOT.pbp), in modo da rendere molto più appetibile il vostro lavoro agli occhi di un possibile utilizzatore, in quanto una qualsivoglia applicazione senza nemmeno un’icona, è spesso e volentieri ignorata (salvo casi speciali nei quali non è possibile farne a meno).

Per farvi meglio capire di cosa sto parlando, un eseguibile per psp a cui non è stata settata un’icona si presenta in questo modo:

Visto che per poter utilizzare codice lua su una psp si rende necessario l’utilizzo di un emulatore (Lua Player), per assegnare alla nostra applicazione un’icona e uno sfondo per l’icona possiamo andare a modificare direttamente l’eseguibile dell’emulatore.

Per modificare l’spetto dell’eseguibile possiamo utilizzare un simpatico tool per pc, sviluppato da Stefano Russello, che permette di modificare icona, sfondo dell’icona, musica di sottofondo (che si attiva quando visualizzate l’eseguibile in XMB) e altro ancora, ed è per questo che il tool si presta magnificamente all’utilizzo da parte di developers che vogliono migliorare l’aspetto dei loro prodotti.

La shell principale del programma si presenta così:

Come potete vedere è possibile settare:

  • Un titolo
  • Sfondo in secondo piano sotto all’icona (Background image)
  • Un’icona animata (Animated icon)
  • Una musica di sottofondo (Background music)
  • Un’icona (Main icon)
  • Una seconda immagine (Second image)

Ovviamente potete anche settare solo in parte queste opzioni, non dovete necessariamente mettere tutto, ma solo quello che credete possa migliorare l’aspetto dell’eseguibile.

A fianco del tipo di opzione è anche presente una scritta che indica il nome e il formato che devono avere i file per poter essere assegnati e utilizzati.

Da ricordare che le immagini utilizzate come icone devono avere una risoluzione di 144×80, le immagini utilizzate come sfondo dell’icona devono avere una risoluzione di 480×272 e la musica di sottofondo non deve durare più di 20 secondi

Una volta che abbiamo settato tutto quello che ci interessa premiamo il tasto SAVE e concludiamo il nostro lavoro.

-> DOWNLOAD LINK

Permanent link to this article: http://taketheball.altervista.org/?p=454

ago 18

Emulazione

Di sicuro uno degli aspetti per cui io, ma non solo anche molti atri utenti modificano la loro PSP, è per poter usufruire degli innumerevoli emulatori di console disponibili in rete.

Dal GameBoy al GameBoy Advance, dal Sega Master System al Nintendo 64 o al PC Engine  (e altri ancora tra cui anche Atari, PicoDrive, Coleco System, Neo Geo), ce ne sono a bizzeffe di emulatori, ed è possibile giocare con praticamente tutto il parco titoli delle vecchie console ormai non più disponibili sul mercato.

Esistono anche emulatori di java che permettono ci permettono di utilizzare i giochi o tool per telefonini programmati appunto in java.

Per quanto mi riguarda, in quanto fan del “retrogaming” l’emulazione è una cosa fantastica, perché posso portarmi in tasca l’equivalente di 20 o più console, tutte in una che dispone dei giusti emulatori.

Ricordo ancora l’emozione di quando mi fu regalata la mia prima console e il mio primo videogioco, e anni dopo grazie all’emulazione rivivo la stessa emozione rigiocando allo stesso gioco, personalmente penso sia un ottimo modo per rivivere i momenti migliori della propria infanzia.

Oltretutto i più recenti custom firmware offrono l’emulazione nativa dei titoli per PS1, e cedo che questo chiuda il cerchio, perché con una console così contenuta come una PSP, che è possibile mettersi in tasca, è possibile avere a portata di mano centinaia e centinaia di titoli.

Ecco a voi una lista di emulatori disponibili per PSP, ovviamente non sono tutti, ma una buona parte.

Permanent link to this article: http://taketheball.altervista.org/?p=444

Post precedenti «