Rispondi 
[ASM & HEX] Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #55
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
.
LEZIONE 2
UNA LENTE D'INGRANDIMENTO SUL GBA


I moderni calcolatori sono costruiti secondo l'architettura di Von Neumann, in opposizione a quella di Turing che ha grande rilevanza teorica, ma con i moderni dispositivi è inefficiente e poco gestibile.
Spiegando brevemente, Questo significa che Il cuore del dispositivo è la memoria centrale (nome rigoroso per RAM, ovvero la memoria temporanea in cui stanno i dati che devono essere elaborati). Tutte le componenti del dispositivo comunicano con la memoria centrale e con il processore.

Anche il GBA funziona secondo questo schema. Apriamo il VBA normale e andiamo nel menu a tendona "tools" e apriamo tutto da "io viewer" a "tile viewer". Cosa è tutto questo macello? Sono le varie parti del GBA, servono per "dissezionare" il gioco e ricavarne il funzionamento. Ora possiamo chiuderle tutte tranne una, il memory viewer. Essenzialmente tutte quelle finestre possono essere ricondotte al memory viewer, in quanto il contenuto di ciascuna è solo una forma comprensibile di ciò che sta nella memoria. Con il memory viewer avete accesso a tutte le macro aree della memoria del GBA (spiegate tra poco)

Come vedrete, ci sono dei buchi. Questo non significa che la memoria del GBA abbia dei buchi (è piena di tarli? ovviamente no) oppure sia davvero grande come i numeri che vedrete, che sono centinaia di MB! Semplicemente lei fisicamente sarà come sarà, è compito di chi studia elettronica vederlo, ma viene "mappata" logicamente secondo gli indirizzi che vedremo. Questo procedimento è un'astrazione dall'ambiente fisico, e grazie ad essa è possibile manipolare indipendentemente qualsiasi settore.

Tutto ciò trova un'applicazione pratica: il WBTO.
Questo comando degli script permette di scrivere un byte in una locazione di memoria a nostra scelta.
Non si può veramente "insegnare il WBTO", a parte perchè l'ho appena fatto nel periodo precedente (si, la frase precedente in grassetto è "insegnare il WBTO"), ma soprattutto perchè questo comando presuppone che ci sia uno studio dietro la sua applicazione, in modo da ottenere l'effetto ricercato. Ok, posso dirvi cosa dovrete scrivere nella memoria per ottenere qualcosa, ma allora l'insegnamento si riduce a una semplice elencazione di valori, cosa che potete trovare benissimo per il WEB (e quelli di forumcommunity ne sanno qualcosa, vero?). Qui vi spiego COME funzionano gli offset di memoria, in modo che possiate sviluppare il vostro atteggiamento critico verso la realtà (mi sembra filosofia ASD ) che vi porterà a fare le vostre nuove scoperte. Se poi unite questo al potente strumento che è la documentazione degli offset scoperti allora sarete un'arma dal grande potenziale. Tutta questa manfrina poetica per dire cosa? Per introdurre la

SPIEGAZIONE SU COME FUNZIONA LA MEMORIA
#Todo prendi da tonc
in questa sezione spiegherò brevemente lo scopo di ciascuna delle memorie del GBA.
I numeri a 2 cifre riprtati di seguito sono da mettere davanti all'offset, che in totale dovrà avere 8 cifre (32 bit).
  • 08 : La nostra ROM. Il GBA legge da questa memoria il gioco. E' una delle più lente della lista. Ed ecco spiegato il motivo del mettere lo 08 al puntatore. Ogni puntatore visto fino ad ora si riferiva alla ROM, perciò si metteva per forza il byte 08. Ora nella guida su come costruire un puntatore, sostituite il passo "metto 08 al puntatore" con "metto il numero della memoria che voglio usare".
  • 09 : Per accedere alla ROM estesa, che va dai 16 MB ai 32 (il massimo) si usa questo prefisso. l'offset che il GBA vuole è quello che sarebbe aprendo la ROM con l'hex editor con l'origine relativa in 01000000, come se fosse una sorta di bank 2. Siamo fortunati, il primo game boy aveva un bank ogni 64 KB! Quello che avevamo detto la scorsa volta sugli scostamenti torna molto utile. In pratica serve solo a chi ha tantissimi dati e ha finito lo spazio delle ROM originali.
  • 07 : è una memoria piccolissima che contiene le informazioni sugli oggetti. un oggetto può essere qualunque cosa, da un people a un mugshot, a un elemento dell'interfaccia grafica. Essenzialmente sono comunque degli sprite. Trovate alcune informazioni nelle varie guide del forum.
  • 00 : BIOS di sistema. è una cosa che tutti i computer hanno, e contiene "l'essenza della vita", ovvero, più praticamente, tutto ciò che serve a far funzionare il computer a livello basilare (del tipo accendersi, rispondere ai tasti, ecc). Non a caso l'acronimo sta per Basic Input/Output System. La scritta "game boy advance" quando si accende è opera sua. Noi potremo trarre vantaggio dal BIOS con l'ASM, in quanto potremo usare alcune funzioni non proprio elementari contenute in esso: ad esempio la decompressione dei dati, oppure funzioni matematiche trigonometriche, che si vedono al triennio delle superiori. Già, non sembrano molto essenziali per far funzionare una macchina, ma probabilmente sono state inserite perchè di frequente uso nei giochi. Infatti per questo sono molto più veloci rispetto a quanto potremmo fare noi "artigianalmente".
  • 0E : SRAM, ovvero il salvataggio. Non è una memoria veloce.
  • 02 : WRAM, La memoria temporanea che hanno tutti i computer. Qua abbiamo la bellezza di 256 KB di RAM. E' una memoria veloce, sicuramente più della ROM, ma sta a metà classifica.
  • 03 : Con questo codice ci si riferisce all'IRAM, ovvero una memoria interna (come suggerisce l'iniziale) al processore. E' la più veloce di tutte, ma è grande solo 32 KB. Meglio non utilizzarla per i nostri scopi, in quanto è già utilizzata da alcune cose necessarie al funzionamento corretto del sistema, e pasticciandoci rischieremmo solo di fare dei casini e crashare il gioco.
  • 05 : Contiene le palette da utilizzare. contiene 16 palette per un totale di 256 colori. Agli atti pratici on è modificabile, perchè in pokemon viene costantemente aggiornata prendendo i dati dall'indirizzo 0202EEC8 (ROM AXVE, per altre ROM sicuramente c'è scritto su pokecommunity), che i programmatori del gioco hanno deciso di usare come deposito temporaneo.
  • 04 : Questa locazione si chiama registri di Input/Output. è un minuscolo settore in cui ci stanno i valori interni del GBA per utilizzare le periferiche, come il suono, la porta dati, o il display stesso.
  • 06 : VRAM. Questa è la memoria Video da 96 KB. Il suo contenuto è grezzo, per visionarla in forma comprensibile si usano il tile viewer e il map viewer. Le map essenialmente sono ciò che forma l'immagine da visualizzare: Sono dei riferimenti ai tiles. Ci possono essere fino a 4 strati, chiamati BG, probabilmente per background. In pokemon il BG0 è utilizzato principalmente per l'interfaccia. Gli altri variano a seconda del contesto, ma durante l'overworld sono usati tutti e 3 per le varie altezze dei blocchi. Ad esempio il tetto delle case è nel BG1.


Ricordate comunque che per ogni esigenza di consultazione tecnica esistono i siti internet (maggiormente comprensibili man mano vi farò più lezioni):
http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm (intermedio)
http://problemkaputt.de/gbatek.htm (difficile)

Il secondo è prevalentemente una referenza: se uno non si ricorda a memoria una cosa va e la trova, il primo spiega un po' di più.

Ora che sapete un po' meglio come funziona la mappatura della memoria, vi mancano gli offset. In questo forum io mi sto battendo per avere una raccolta ordinata di tutti gli offset, ma l'idea sembra non riscuotere successo. Comunque se volete alcuni sono qui
http://www.pokemonhacking.it/showthread.php?tid=1754
http://www.pokemonhacking.it/showthread.php?tid=2012
poi boh...
Altrimenti potete sempre bazzicare in altri fori e gozzovigliare un po' (e magari venire a riportarmi cosa scoprite). Io di sicuro prima o poi farò passare tutte le discussioni della macroarea apprendimento e ne coglierò ogni offset. Noiosissimo, lo so.

se volete, potete usare i 2 link sopra per giocherellare con i registri.

Ecco ora qualche esempio di WBTO:

difficoltà facile:

hmm, non mi garba molto il colore dell'erba del percorso 101. Aspetta che chiamo il giardiniere...
Codice:
#org @start
writebytetooffset 0x19 0x0202ef22
writebytetooffset 0x29 0x0202ef23
end
et voilà, ora è diventata di un bel rosso sangue! (DICHIARAZIONE DI NON RESPONSABILITA': non voglio promuovere la violenza, ciò che faccio io è solo a scopo didattico)

Spiegazione: sostituisco il qattordicesimo colore della terza palette.

difficoltà media:

Recentemente sono riuscito ad implementare una feature che per l'utente non ha rilevanza, ma può tornare utile a noi sviluppattori. Si tratta di dirottare i dati delle tabelle nella RAM. Come mai fare una cosa che a orecchio sembra complicata? Perchè può capitare di "finire lo spazio", ovvero arrivare a 255 elementi di una tabella indicizzata con un byte e dunque non poterne più inserire nessun'altro, a meno di avventurarsi nell'asm per cambiare il modo con cui vengono trovati gli elementi. Ma basta con le chiacchiere e passiamo ai fatti: Sono riuscito a dirottare in RAM i multichoice; Ovviamente è possibile farlo con tutto, ma mi piaceva farlo con questi. Come ben sapete i multichoice su rubino sono circa 80, ma possono essere al massimo 255, perchè in XSE viene detto chiaramente che l'ID occupa un byte. E se li finiamo? Semplicemente diciamo al GBA di andare a trovare i testi in RAM, così se ne possono mettere quanti si vuole! Dovrete sacrificarne alcuni, ma ne avrete infiniti! Quanti ne servono? dipende da voi, uno per ogni numero di scelte. Significa uno per il multichoice da una scelta, uno per il multichoice da due scelte, uno per tre scelte, e così via, fino al numero che volete. Il massimo che si può fare senza far crashare il gioco è 9. Gli ultimi 9 multichoice si riferiranno agli ultimi 9 puntatori dei boxset (per approfondimenti vi rimando al topic ufficiale del multichoice, ci dev'essere pure una mia guida), i quali punteranno alla RAM. Per poter utilizzare la tecnica negli script occorrerà fare un WBTO nell'area designata, con i caratteri che abbiamo visto la volta scorsa per comporre il testo, e successivamente chiamare il multichoice.
Esempio di script funzionante, se avete già la modifica del MC sulle vostre ROM.

Codice:
#org @start
writebytetooffset 0xBB 0x2000000
writebytetooffset 0xFF 0x2000001
writebytetooffset 0xBC 0x2000002
writebytetooffset 0xBD 0x2000003
writebytetooffset 0xFF 0x2000004
writebytetooffset 0xBE 0x2000005
writebytetooffset 0xBF 0x2000006
writebytetooffset 0xFF 0x2000007
msgbox @string1 MSG_FACE //"PROF. BIRCH spends days in his LAB..."
multichoice 0x0 0x0 0x0 0x0
ho dovuto metere un testo se no non rimaneva fermo il riquadro. Bah, dettagli per scripter.
L'effetto è
http://www.pokemonhacking.it/attachment.php?aid=309, non contate il fatto che ci sono solo 2 testi invece di 3, era una prova. Il concetto che rimane è il poter cambiare i dati del gioco durante la sua esecuzione. Questo trucchetto sarebbe quasi un virus, sui computer. Ma noi dobbiamo essere pronti a fare di tutto, in nome dell'efficienza.

inoltre, finchè non sistemerò bene i testi, guardate qui per la guida di cui parlavo prima su come realizzarlo: http://www.pokemonhacking.it/showthread.php?tid=2795

Spiegazione: A parte la modifica al multichoice che non è mostrata, ho semplicemente scritto del testo nella RAM, che viene letto correttamente dal programma multichoice.



compiti? Boh, non saprei, ci possono essere mille utilizzi differenti, a seconda della situazione! noi in un contesto come questo non abbiamo nemmeno delle occasioni, degli stimoli ad usarlo, in quanto operiamo (si presume) su ROM pulite, perciò non abbiamo le necessità che scaturiscono da un progetto reale. inoltre qua siamo liberi di fare ciò che ci sentiamo, senza vincoli (non come in altre lezioni). Dunque, per non saper né leggere né scrivere, provate a fare qualcosa con il WBTO, quello che vi sentite, e spiegatemi come l'avete trovato, e cosa fa.
In seconda battuta spiegatemi questo:

Codice:
writebytetooffset 0xAE 0x3004360

Consigli: per fare il primo, pensate al vostro obiettivo, poi scovatene l'offset. come funziona l'obiettivo? Se voglio ottenere questo, cosa devo mettere?
Per fare il secondo compito cercate l'offset indicato dal comando, e andate a vedere in quale memoria (e in quale settore in alcuni casi) risiede. pensate a cosa fa tale locazione e come si comporta con il nuovo byte. Se non riuscite a capire cosa sia, riconsiderate tutto quanto visto finora Wink
Ah, facciamo che se volete cambiare le palette lo fate per un'altra ROM? Sennò sapete già l'offsset. Tanto è facile, basta cercare i colori che il VBA vi dice.

Se avete dubbi come sempre non esitatee achiedere, ciao

changelog, ignorare pure da qui in poi (Clicca per visualizzare)

Se ti sono stato d'aiuto, clicca il tasto "mi piace" qua sotto! Grazie! : )

Il mio nuovo motto: don't ask for ETAs!

[Immagine: yKWdaxi.gif]

[Immagine: firma.png]
"L'uomo è ancora il più straordinario dei computer"


Guida di cui vado più fiero: Mega-Huge Bonnox' guide (to be expanded)


[Immagine: toothbrush_girl_by_timewyrm-d6i5ezm.jpg]

Ho un T.A.R.D.I.S. modello 40 ma non so usarlo. Pacman
12-01-2017 12:24 AM
Cerca Cita
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #56
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
aggiornato con il la seconda parte di compito e corretto la descrizione della memoria 09.
12-01-2017 06:47 PM
Cerca Cita
skyos
Nuovo Arrivato
*

Messaggi: 31
Registrato: 25-09-2016
Reputazione: 0
Mi Piace Ricevuti: 4
PokéMoney: 64.00₱
Messaggio: #57
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Grazie
E conpleta oppure attendo?
12-01-2017 08:13 PM
Cerca Cita
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #58
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
completo
12-01-2017 09:55 PM
Cerca Cita
skyos
Nuovo Arrivato
*

Messaggi: 31
Registrato: 25-09-2016
Reputazione: 0
Mi Piace Ricevuti: 4
PokéMoney: 64.00₱
Messaggio: #59
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Quale è il programma che si occupa del wbto?

Il significato dei byte e tutto nel memory viewer? Dialog compresi?
Non ho capito come il primo esempio fa dialog e scritte.

Teoricamente con questo puoi far uscire audio o cambiare la funzione dei bottoni fisici?
14-01-2017 11:48 AM
Cerca Cita
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #60
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
(14-01-2017 11:48 AM)skyos Ha scritto:  Quale è il programma che si occupa del wbto?

il WBTO è realizzato con un comando di XSE. si chiama writebytetooffset. La sintassi è

Codice:
writebytetooffset 0xXX 0xYYYYYYYY

dove XX è il nostro byte, e YYYYYYYY è l'indirizzo di memoria del GBA a cui vuoi scriverlo. ah e ovviamente la ROM non è scrivibile.

Citazione:Il significato dei byte e tutto nel memory viewer? Dialog compresi?
Non ho capito come il primo esempio fa dialog e scritte.

il memory viewer è la forma reale di tutti gli altri "tools" dell'emulatore. I tools servono per rappresentare le informazioni in forma comprensibile Wink

ovviamente alcune cose non potranno essere rappresentate, come ad esempio le informazioni di un pokemon.
Scusa ma non ho capito a cosa ti riferisci con dialog. Forse a una finestra del programma?
L'esempio che non hai capito è quello del multichoice?

Citazione:Teoricamente con questo puoi far uscire audio o cambiare la funzione dei bottoni fisici?

teoricamente, sì, in quanto con il WBTO puoi scrivere nella memoria di I/O del GBA o cambiare le routine di interrupt che risiedono nella RAM a run-time... ma è un suicidio. L'audio sul GBA è una delle cose più oscure che la community abbia dovuto affrontare, e gente più brava di me (*) fa fatica a costruire programmi con il sonoro. Per la seconda sarebbe più agevole modificare direttamente la ROM con il disassemblatore, ma vederemo il procedimento nella lezione 5/6


(*) pffff, solo perchè non ho studiato approfondiamente le cose del suono digitale, sennò lo farei anch'io lol

Se ti sono stato d'aiuto, clicca il tasto "mi piace" qua sotto! Grazie! : )

Il mio nuovo motto: don't ask for ETAs!

[Immagine: yKWdaxi.gif]

[Immagine: firma.png]
"L'uomo è ancora il più straordinario dei computer"


Guida di cui vado più fiero: Mega-Huge Bonnox' guide (to be expanded)


[Immagine: toothbrush_girl_by_timewyrm-d6i5ezm.jpg]

Ho un T.A.R.D.I.S. modello 40 ma non so usarlo. Pacman
14-01-2017 12:32 PM
Cerca Cita
skyos
Nuovo Arrivato
*

Messaggi: 31
Registrato: 25-09-2016
Reputazione: 0
Mi Piace Ricevuti: 4
PokéMoney: 64.00₱
Messaggio: #61
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Ah, quindi nn potrò fare super mario a suon di beep in pokemon...

Si, nn ho capito dove trovo i valori da usare e intendo il multichoice.

Sono script che si avviano con il gioco o sono da triggerare o possono essere entrambi?
14-01-2017 02:12 PM
Cerca Cita
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #62
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
>Ah, quindi nn potrò fare super mario a suon di beep in pokemon...

Si può, ma ti converrebbe fare un gioco partendo da capo! oppure se vuoi mettere un minigioco, lo si può realizzare in C.

>Si, nn ho capito dove trovo i valori da usare e intendo il multichoice.

I valori non si trovano, li decidi tu. Come quando fai ad esempio un setmaptile XX YY Ztaldeitali , dove dici tutti i parametri dell'operazione da eseguire.

Per comprendere il multichoie dovresti aprire il link.
Essenzialmente il comando multichoice degli script è stato tremendamente sprecato (come molti altri), con solo un'ottantina di valori, ma per cose inutili, prevalentemente per la gestione della reception.
Pensavo che sarebbe stato bello poter vere infiniti set di valori per abbellire la storia. Fortunatamente è stato facile dedurre la struttura dei dati senza dover guardare le istruzioni relative al multichoice: è soltanto un insieme di puntatori ai testi. Cambiando quei puntatori (che risiedono nella ROM) e facendoli puntare alla RAM, possiamo cambiare i testi ogni volta che vogliamo. Tutte queste cose sono possibili perchè il GBA non ha un sistema operativo. (più o meno... è un discorso complicato)

>Sono script che si avviano con il gioco o sono da triggerare o possono essere entrambi?

il WBTO è un normale comando degli script, perciò è soggetto alle medesime regole. Poi c'è gente come il sommo andrea che fa delle robe per chiamare gli script durante una routine ASM... Lì bisogna andarci piano però.

Se ti sono stato d'aiuto, clicca il tasto "mi piace" qua sotto! Grazie! : )

Il mio nuovo motto: don't ask for ETAs!

[Immagine: yKWdaxi.gif]

[Immagine: firma.png]
"L'uomo è ancora il più straordinario dei computer"


Guida di cui vado più fiero: Mega-Huge Bonnox' guide (to be expanded)


[Immagine: toothbrush_girl_by_timewyrm-d6i5ezm.jpg]

Ho un T.A.R.D.I.S. modello 40 ma non so usarlo. Pacman
14-01-2017 02:54 PM
Cerca Cita
skyos
Nuovo Arrivato
*

Messaggi: 31
Registrato: 25-09-2016
Reputazione: 0
Mi Piace Ricevuti: 4
PokéMoney: 64.00₱
Messaggio: #63
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Dici l immagine come link?
Si la ho aperta.

Io volevo sapere il significato di quei byte.
La locazione dovrebbe essere la 02.
Usi indirizzi a piacimento o liberi? Perchè in questo caso non mi sembra tu abbia sostituito niente.
Oppure lo script viene inserito nella rom e poi all esecuzione vengono riservati quegli indirizzi?

Non conosco le regole degli script e quel poco lo ho dimenticato
14-01-2017 08:26 PM
Cerca Cita
Bonnox
Signore del Tempo un po' imbranato
*****
Online

Messaggi: 1,629
Registrato: 06-07-2014
Reputazione: 5
Mi Piace Ricevuti: 328
PokéMoney: 1,710.00₱
Messaggio: #64
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
>Dici l immagine come link?

intendevo quello subito dopo, ovvero la piccola guida che spiega come preparare la ROM alla modifica.

> Io volevo sapere il significato di quei byte.

come dissi, i byte che ho messo sono delle lettere a caso, ma delle lettere!

>Usi indirizzi a piacimento o liberi? Perchè in questo caso non mi sembra tu
>abbia sostituito niente.

bisogna sempre usare dei byte liberi per non incasinare il gioco! Wink altrimenti va tutto a quel paese e compaiono le uova peste

>Oppure lo script viene inserito nella rom e poi all esecuzione vengono
>riservati quegli indirizzi?

nono, non esiste un sistema operativo, l'allocazione è tutta a carico del programma

>Non conosco le regole degli script e quel poco lo ho dimenticato

gli script sono una cosa un po' rognosa, e limitata. comunque non c'è molto da sapere, la cosa più importante che mi viene in mente è che se cambi mappa si interrompe.
Mi piacerebbe chiamare uno script iniettandomi durante altri settori del gioco (tipo la borsa o le gare) per vedere cosa salta fuori. Magari viene eseguito semplicemente alla fine. Oppure ha effetto ma non si vede?
In ogni caso meglio non farlo. tutto ciò che si può fare con gli scipt si può fare anche con l'ASM, essendo sostanzialmente i comandi deglii script un insieme di routine chiamate al momento opportuno. Ad esempio con un callasm puoi lanciare la mappa città, che fa parte di uno special.
Non so se hai già visto al modulo 1 il comando callasm, essenzialmente chiama una routine ASM inserita nella ROM.

Se ti sono stato d'aiuto, clicca il tasto "mi piace" qua sotto! Grazie! : )

Il mio nuovo motto: don't ask for ETAs!

[Immagine: yKWdaxi.gif]

[Immagine: firma.png]
"L'uomo è ancora il più straordinario dei computer"


Guida di cui vado più fiero: Mega-Huge Bonnox' guide (to be expanded)


[Immagine: toothbrush_girl_by_timewyrm-d6i5ezm.jpg]

Ho un T.A.R.D.I.S. modello 40 ma non so usarlo. Pacman
15-01-2017 01:19 AM
Cerca Cita
Chimchar101
Best Symya In The World
*****
Offline

Messaggi: 606
Registrato: 17-08-2014
Reputazione: 1
Mi Piace Ricevuti: 49
PokéMoney: 572.75₱
Messaggio: #65
RE: Aula di skyos, Tony26, Wendrew, Chimchar101 - Prof. Bonnox
Mi scuso per non aver ancora risposto/postato i compiti svolti, ma non ho avuto tempo causa scuola. Nei prossimi giorni dovrei riuscire a consegnare i compiti ^.^
oggi 12:05 AM
Cerca Cita
Rispondi 




Utente(i) che stanno guardando questa discussione: 1 Ospite(i)
Powered by MyBB, © 2002-2017 MyBB Group. Copyright © | 2015 Pokémon Hacking