Rispondi 
[Rosso fuoco] Mostrare l'immagine di un oggetto appena ottenuto
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #1
Mostrare l'immagine di un oggetto appena ottenuto
Buongiorno a tutti ragazzi!
In questi giorni mi sono imbattuto nell'aggiornamento della hack di @eMMe97
Esso mostra una feauture molto interessante, ovvero far apparire l'immagine di uno strumento quando viene aggiunto nello zaino.
Siccome penso sia un'implementazione carina da inserire nella propria ROM, oggi vi spiegherò come fare!
#1 - Hook e Routine asm
#1.1 - Variante routine (solo FR)
#2 - Funzionamento routine
#3 - Risultato finale:
[Immagine: 9qQLLYC.png]

Mi piacerebbe che Emme postasse anche il suo metodo, in modo tale da che gli utenti abbiano la possibilità di utilizzare più metodi per ottenere lo stesso risultato!

.
29-05-2017 03:31 PM
Cerca Cita
 Mi piace ricevuti da: Carl_J90 , Stygian , Flygon , E²VaN , Bonnox , Delta231 , Explosion100 , marf7y
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,394
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1395
PokéMoney: 1,721.00₱
Messaggio: #2
RE: Mostrare l'immagine di un oggetto appena ottenuto
Il mio metodo è più "manuale", cioè non fa tutto la routine, ma è una semplice creazione di oam che di volta in volta regolo io, quindi fa schifo in confronto a quanto hai pensato di fare te xD

Però io non riesco ad ottenere quell'effetto con la tua routine, hoi provato anche in una rom pulita e non mi appare niente di nuovo, è un semplice giveitem...dove sbaglierò stavolta? svitato

[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]

[Immagine: Targhetta_e_MMe.png]
29-05-2017 10:18 PM
Cerca Cita
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #3
RE: Mostrare l'immagine di un oggetto appena ottenuto
Probabilmente hai utilizzato il tipo di messaggio MSG_OBTAIN (0) all'interno del giveitem!
La routine funziona solo con il tipo 1 (MSG_FIND):
Citazione:giveitem 0xIndex 1 1
30-05-2017 09:11 AM
Cerca Cita
 Mi piace ricevuti da: E²VaN
E²VaN
Scemo chi Legge!
*******
Online

Messaggi: 6,723
Registrato: 12-06-2014
Reputazione: 53
Mi Piace Ricevuti: 3133
PokéMoney: 12,892.25₱
Messaggio: #4
RE: Mostrare l'immagine di un oggetto appena ottenuto
Come sempre... grazie @Andrea Pacman
30-05-2017 08:44 PM
Sito Web Cerca Cita
 Mi piace ricevuti da: Andrea
EddyHg80
Essere distratto è il mio forte
***
Online

Messaggi: 234
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 183
PokéMoney: 519.00₱
Messaggio: #5
RE: Mostrare l'immagine di un oggetto appena ottenuto
È possibile modificare le coordinate dell'immagine? Io la metterei 3-4 pixel più in alto per visualizzarla al centro della textbox.

Ok però ora bisogna fare il port a Ruby e Smeraldo Smile
31-05-2017 12:44 PM
Cerca Cita
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #6
RE: Mostrare l'immagine di un oggetto appena ottenuto
(31-05-2017 12:44 PM)EddyHg80 Ha scritto:  È possibile modificare le coordinate dell'immagine? Io la metterei 3-4 pixel più in alto per visualizzarla al centro della textbox.

Ok però ora bisogna fare il port a Ruby e Smeraldo Smile
Per come è strutturata la routine adesso, modificare le coordinate di un numero di pixel che non sia 8 è complicato, perchè l'immagine è un tile e non un oam.
Per centrare l'immagine, bisognerebbe utilizzare gli oam, ma questo porterebbe all'utilizzo di due routine: una per creare l'oam e uno per eliminarlo quando il messaggio termina.

Il port su smeraldo non dovrebbe essere difficile, il problema è rubino.
Infatti, al suo interno non sono presenti le immagini/palette degli item; bisognerebbe importarle da smeraldo o da rosso fuoco.

.
31-05-2017 01:24 PM
Cerca Cita
EddyHg80
Essere distratto è il mio forte
***
Online

Messaggi: 234
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 183
PokéMoney: 519.00₱
Messaggio: #7
RE: Mostrare l'immagine di un oggetto appena ottenuto
(31-05-2017 01:24 PM)Andrea Ha scritto:  
(31-05-2017 12:44 PM)EddyHg80 Ha scritto:  [...]
Per come è strutturata la routine adesso, modificare le coordinate di un numero di pixel che non sia 8 è complicato, perchè l'immagine è un tile e non un oam.
Per centrare l'immagine, bisognerebbe utilizzare gli oam, ma questo porterebbe all'utilizzo di due routine: una per creare l'oam e uno per eliminarlo quando il messaggio termina.

Il port su smeraldo non dovrebbe essere difficile, il problema è rubino.
Infatti, al suo interno non sono presenti le immagini/palette degli item; bisognerebbe importarle da smeraldo o da rosso fuoco.

Ok quali sono i valori da modificare? vorrei fare delle prove.

per quanto riguarda il port a smeraldo, posso facilmente trovare gli offsets che iniziano per 08, ma quelli riguardanti la ram non saprei come fare, se vuoi intanto cerco quelli mentre te fai gli altri? (non ho fretta è)
31-05-2017 02:48 PM
Cerca Cita
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,394
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1395
PokéMoney: 1,721.00₱
Messaggio: #8
RE: Mostrare l'immagine di un oggetto appena ottenuto
Si ecco l'errore, grazie @Andrea !

Comunque mi è venuta in mente un'altra idea che sto sviluppando, magari ci riesci meglio di me. Ecco qui il mio progetto di espansione, sono partito dalla tua routine e...

[Immagine: CXgdy50.png]

Questa è la routine

Ho due problemi per renderla perfetta:
1) il cmp non legge più di 1 byte alla volta, quindi gli strumenti con Id maggiore di FF non me li prende;
2) la var dovrebbe tornare a 0 dopo la scritta, si può risolvere con un setvar, ma è brutta come cosa.

Che ne dici? In pratica divido le categorie in colori. Potrebbe essere carina come idea?

[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]

[Immagine: Targhetta_e_MMe.png]
(Questo messaggio è stato modificato l'ultima volta il: 31-05-2017 04:20 PM da eMMe97.)
31-05-2017 04:19 PM
Cerca Cita
 Mi piace ricevuti da: Carl_J90
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #9
RE: Mostrare l'immagine di un oggetto appena ottenuto
Ho terminato il porting su smeraldo:
Nella prima parte della routine è presente un'istruzione colorata in rosso:
Citazione:.equ GAMECODE, 0
Mettete 1 se volete che la routine venga compilata per smeraldo, altrimenti lasciate 0 se volete che la routine funzioni su rosso fuoco.
@EddyHg80, Nonostante la routine funzioni perfettamente su entrambe le rom, è presente un piccolo problema su smeraldo:
La variabile 8005 su smeraldo viene sovrascritta nel primo messaggio con l'index dell'oggetto ed esso verrà mostrato correttamente, mentre al secondo messaggio la variabile viene sovrascritta con il valore 0xC e la routine caricherà l'immagine della premier ball.
Per risolvere questo problema, basta cercare l'istruzione che sovrascrive la variabile e "annullarla" mettendo 00 00.
Siccome non ho tanto tempo, lascio a voi questo piccolo compito!

@eMMe97 Idea molto carina!
Per risolvere il primo problema, potresti fare così:
Citazione:LDR R1, = 0x020370C0
LDRH R1, [R1]
LDR R0, = 0xINDEX
CMP R0, R1
BEQ LABEL
Invece, non ho capito perché tu voglia azzerare il valore della variabile...
01-06-2017 11:22 AM
Cerca Cita
 Mi piace ricevuti da: Carl_J90 , ~SAGE
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,394
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1395
PokéMoney: 1,721.00₱
Messaggio: #10
RE: Mostrare l'immagine di un oggetto appena ottenuto
Grazie Andrea!!! Appena torno a casa faccio qualche prova e ti dico.
Se non azzerassi la variabile la textbox non tornerebbe alla normalità, cioè con le palette originali. In pratica se trovo una ball la paletta 15 mi rimane di quel colore per tutto, quindi altre textbox, menu etc.

Perfetto! Grazie al tuo aiuto ci sono riuscito (rimane ovviamente il problema della var a 0)
Guarda un po' se può andare bene o deve essere ritoccato qualcosa


[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]

[Immagine: Targhetta_e_MMe.png]
(Questo messaggio è stato modificato l'ultima volta il: 01-06-2017 03:03 PM da eMMe97.)
01-06-2017 02:11 PM
Cerca Cita
EddyHg80
Essere distratto è il mio forte
***
Online

Messaggi: 234
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 183
PokéMoney: 519.00₱
Messaggio: #11
RE: Mostrare l'immagine di un oggetto appena ottenuto
(01-06-2017 11:22 AM)Andrea Ha scritto:  La variabile 8005 su smeraldo viene sovrascritta nel primo messaggio con l'index dell'oggetto ed esso verrà mostrato correttamente, mentre al secondo messaggio la variabile viene sovrascritta con il valore 0xC e la routine caricherà l'immagine della premier ball.
Per risolvere questo problema, basta cercare l'istruzione che sovrascrive la variabile e "annullarla" mettendo 00 00.

nella routine hai scritto che la variabile è la 8007, mentre sotto hai scritto 8005, quale è delle due?

comunque sto rosicando perché non so sistemare una cavolata del genere, è anche vero che non ho studiato per fare questa roba e che non so qual è il modo giusto per farlo.
Ho provato a compilare uno script con XSE, un semplice setvar 0x8005 0xc, che veniva fuori 16 05 80 0C 00, a questo punto ho cercato questi 5 byte nella rom, e l'ho ritrovato una volta, l'ho sostituito con 00 00 00 00 00, ma non ha funzionato Big Grin (ho provato anche con la variabile 8007, e ho provato anche senza il 16 e senza lo 00 finale).
Ho provato a fare la stessa cosa di sopra col writebytetooffset 0xc 0x020375E0, stavolta non ho ritrovato nulla del genere nella rom.
Quindi per quelle che sono le mie capacità non so come si fa Tongue

Ho modificato uno screen con paint.net per vedere come veniva fuori se l'immagine viene spostata di 8 pixel più su

[Immagine: OrchoCw.png]

Non riesco a decidermi se è meglio o peggio perché ora è più allineato col testo, ma sembra che ci sia troppo vuoto sotto mmh
(Questo messaggio è stato modificato l'ultima volta il: 01-06-2017 07:01 PM da EddyHg80.)
01-06-2017 05:49 PM
Cerca Cita
 Mi piace ricevuti da: ~SAGE
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #12
RE: Mostrare l'immagine di un oggetto appena ottenuto
In rosso fuoco la variabile utilizzata per salvare l'index è l'8007, mentre in smeraldo è l'8005.

Normalmente, le variabili vengono settate tramite istruzioni asm e non mediante degli script!
Per questo motivo, cercando quei byte non trovi niente oppure i risultati non corrispondono all'istruzione che setta la variabile con il valore 0xC.

Quando avrò un po' di tempo, cercherò l'offset incriminato e pubblicherò le varie modifiche da effettuare.

EDIT:
Ho modificato il post principale con le modifiche da effettuare su smeraldo.
01-06-2017 06:15 PM
Cerca Cita
 Mi piace ricevuti da: EddyHg80 , Carl_J90
~SAGE
Romhacker dal 2013.
**
Offline

Messaggi: 56
Registrato: 14-10-2016
Reputazione: 1
Mi Piace Ricevuti: 42
PokéMoney: 147.25₱
Messaggio: #13
RE: Mostrare l'immagine di un oggetto appena ottenuto
Non so perché ma non mi funziona (uso FireRed)
inserisco correttamente la routine e sostituisco i byte a 0F6F08 con little endian
00480047D173A408 ma non mi appare l'immagine dell'item, c'ho provato anche su una ROM nuova e niente. :/
Qualcuno sa perché?

La routine compilata é questa qua:

(Questo messaggio è stato modificato l'ultima volta il: 03-06-2017 09:31 PM da ~SAGE.)
03-06-2017 09:29 PM
Sito Web Cerca Cita
Andrea
...
******
Online

Messaggi: 805
Registrato: 12-06-2014
Reputazione: 30
Mi Piace Ricevuti: 1064
PokéMoney: 2,828.25₱
Messaggio: #14
RE: Mostrare l'immagine di un oggetto appena ottenuto
Ti sei ricordato di utilizzare il tipo di messaggio 1 nel giveitem?
Citazione:giveitem 0xIndex 1 1
04-06-2017 10:12 AM
Cerca Cita
 Mi piace ricevuti da: ~SAGE
~SAGE
Romhacker dal 2013.
**
Offline

Messaggi: 56
Registrato: 14-10-2016
Reputazione: 1
Mi Piace Ricevuti: 42
PokéMoney: 147.25₱
Messaggio: #15
RE: Mostrare l'immagine di un oggetto appena ottenuto
(04-06-2017 10:12 AM)Andrea Ha scritto:  Ti sei ricordato di utilizzare il tipo di messaggio 1 nel giveitem?
Citazione:giveitem 0xIndex 1 1

Si, me l'hanno anche detto in Whack a Hack!
peccato che solo si possa fare su msg_find, anche se volendo si potrebbe espandere la routine per renderla globale, anche se poi non credo sia buona idea sfruttarla cosi troppo.

item trovato in giro:
[Immagine: tl3fpUY.png]

item con msg_find
[Immagine: qszzrvj.png]

c'é qualcosa che non va.. xD

L'intelligente non è quello che sa fare tutto
[Immagine: tumblr_obm1e1pTXq1tp2yqno1_540.png]
Ma quello che sa sfruttare quel poco che sa
04-06-2017 04:34 PM
Sito Web Cerca Cita
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,394
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1395
PokéMoney: 1,721.00₱
Messaggio: #16
RE: Mostrare l'immagine di un oggetto appena ottenuto
La routine di Andrea non funziona se utilizzata su una ROM di Fire Red su cui è applicato l'hacked engine.
Per il fix sostituire questi valori (non testato pesantemente):

Codice:
.SCRIPT1: .word 0x081A733A
.SCRIPT2: .word 0x081A7344

[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]

[Immagine: Targhetta_e_MMe.png]
(Questo messaggio è stato modificato l'ultima volta il: 28-02-2019 07:47 PM da eMMe97.)
07-06-2017 09:46 PM
Cerca Cita
EddyHg80
Essere distratto è il mio forte
***
Online

Messaggi: 234
Registrato: 25-11-2016
Reputazione: 6
Mi Piace Ricevuti: 183
PokéMoney: 519.00₱
Messaggio: #17
RE: Mostrare l'immagine di un oggetto appena ottenuto
Ciao Andrea, stavo facendo il porting per smeraldo Ita, purtroppo sto sbagliando qualcosa e il gioco si blocca eheh

L'offset dove inserire 00480047XXXXXX08 dovrebbe essere 196EE4
L'offset dove inserire 00 00 dovrebbe essere 99754

Poi gli offset nella routine che ho cambiato sono questi
.SCRIPT1: .word 0x082718B9
.SCRIPT2: .word 0x082718DC
.TABLE: .word 0x08610FAC

dovrei cambiarne anche altri? essendo emerald la base ho immaginato che gli offset della ram siano gli stessi, purtroppo il gioco si blocca quindi di sicuro c'è qualcosa che non va Smile

PS sarebbe fico farla funzionare anche con i MSG_OBTAIN eheh

(Questo messaggio è stato modificato l'ultima volta il: 06-02-2018 07:35 PM da EddyHg80.)
06-02-2018 07:31 PM
Cerca Cita
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,394
Registrato: 09-10-2014
Reputazione: 20
Mi Piace Ricevuti: 1395
PokéMoney: 1,721.00₱
Messaggio: #18
RE: Mostrare l'immagine di un oggetto appena ottenuto
Non ho la rom dietro, ma penso tu debba sostituire anche questo valore

.BOX: .word 0x08003658+1

ovviamente non fare errori stile me ed imposta così questo valore

.equ GAMECODE, 1

altrimenti compili per fire red

[Immagine: 51ppxl.png] [Immagine: 1zlgf2o.png] [Immagine: http1t.png] [Immagine: 2i1cze0.png] [Immagine: 122knxf.png] [Immagine: veu3h5.png] [Immagine: 33u6d86.png]

[Immagine: Targhetta_e_MMe.png]
07-02-2018 09:50 AM
Cerca Cita
Rispondi 




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