Rispondi 
[Gba] Barre nere ai margini dello schermo (Effetto cinematico)
Flygon
Dessert Spirit
******
Offline

Messaggi: 2,294
Registrato: 13-06-2014
Reputazione: 39
Mi Piace Ricevuti: 1317
PokéMoney: 3,264.00₱
Messaggio: #1
Barre nere ai margini dello schermo (Effetto cinematico)
Probabilmente alcuni di voi già lo sapranno, ma con un semplicissimo writebytetooffset è possibile mettere delle barre nere ai margini dello schermo, per dare un "effetto cinema" ad un evento.
  • I COMANDI
Citazione:#dynamic 0x800000
#org @start
writebytetooffset 0x81 0x4000044
writebytetooffset 0x15 0x4000045

release
end
0x4000044 è la barra al margine inferiore dello schermo. Io ho usato 0x81, ma potete cambiare il valore a vostro piacimento, per alzare o abbassare la barra. Più il numero è alto, più piccola è la barra.
0x4000045 è la barra al margine superiore dello schermo. Per quanto riguarda il valore, qui funziona al contrario: Più il valore è alto, più grande è la barra.

  • RIPRISTINARE I VALORI PREDEFINITI
Le barre ai margini dello schermo rimarranno lì finché non le rimuoverete con un altro WTBO. Per ripristinare i valori originali, utilizzate i seguenti valori:
Citazione:writebytetooffset 0xFF 0x4000044
writebytetooffset 0x00 0x4000045
Come vedete, basta utilizzare il valore massimo per la barra inferiore e il valore minimo per quella superiore.

  • [FUN FACT] RENDERE INTERAMENTE NERA LA SCHERMATA
Se volete rendere interamente nera la schermata, invertite i valori:
Citazione:writebytetooffset 0x00 0x4000044

OPPURE:

writebytetooffset 0xFF 0x4000045
In questo modo, le barre avranno grandezza massima e copriranno l'intero schermo.

  • BARRE NERE LATERALI (credits: Manuxn)
Come ci fa notare il buon Manuxn, i due offset 0x4000040 e 0x4000041 funzionano allo stesso modo, e permettono di posizionare barre nere ai margini sinistro e destro dello schermo.

La guida funziona sia su Ruby che su Fire Red.

18-01-2020 12:03 PM
Cerca Cita
 Mi piace ricevuti da: Bonnox , Andrea
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,446
Registrato: 09-10-2014
Reputazione: 22
Mi Piace Ricevuti: 1549
PokéMoney: 1,837.25₱
Messaggio: #2
RE: Barre nere ai margini dello schermo (Effetto cinematico)
Volevo fare un piccolo appunto, poiché questo metodo genera qualche piccolo bug (per quanto mi ricordi). In pratica se non sbaglio non vengono generate barre nere, ma si ha uno “spostamento” dello schermo. Questo per dire che se per esempio visualizzo uno oam (o sprite che dir si voglia), questo sarà posto in una posizione diversa da quella voluta. Così per altri elementi della schermata. In passato rinunciai ad utilizzarlo per questo motivo. Se dovessi ricordarmi male, e di conseguenza aver scritto una cavolata, mi scusa in partenza svitato
18-01-2020 03:36 PM
Cerca Cita
 Mi piace ricevuti da: Andrea
Flygon
Dessert Spirit
******
Offline

Messaggi: 2,294
Registrato: 13-06-2014
Reputazione: 39
Mi Piace Ricevuti: 1317
PokéMoney: 3,264.00₱
Messaggio: #3
RE: Barre nere ai margini dello schermo (Effetto cinematico)
Sicuramente ne sai più di me. Ho provato ad utilizzarlo in un paio di eventi e non mi ha dati errori.
Farò dei test per vedere se sprite e altre cose vengono visualizzate con errori.
18-01-2020 03:41 PM
Cerca Cita
 Mi piace ricevuti da: eMMe97 , Andrea
Manuxn
Bug Catcher
*
Offline

Messaggi: 35
Registrato: 25-06-2019
Reputazione: 1
Mi Piace Ricevuti: 35
PokéMoney: 149.00₱
Messaggio: #4
RE: Barre nere ai margini dello schermo (Effetto cinematico)
Aggiungo due note anch'io in modo da completare la guida. La prima considerazione è che, dato il tipo di memoria che andiamo a toccare, gli offset sono comuni a tutte le ROM. La seconda è che esistono altri 2 offset (0x4000040 e 0x4000041) con cui possiamo ottenere lo stesso effetto ma sulle bande verticali, poste ai lati dello schermo.
19-01-2020 01:39 AM
Cerca Cita
 Mi piace ricevuti da: Flygon , Andrea
Andrea
...
******
Offline

Messaggi: 838
Registrato: 12-06-2014
Reputazione: 31
Mi Piace Ricevuti: 1179
PokéMoney: 3,430.25₱
Messaggio: #5
RE: Barre nere ai margini dello schermo (Effetto cinematico)
(18-01-2020 03:36 PM)eMMe97 Ha scritto:  Questo per dire che se per esempio visualizzo uno oam (o sprite che dir si voglia), questo sarà posto in una posizione diversa da quella voluta.
Strano, hai provato ad utilizzare i wbto in una rom pulita?
Se andiamo a leggere la documentazione del gbatek:
Citazione:4000044h - WIN0V - Window 0 Vertical Dimensions (W)
4000046h - WIN1V - Window 1 Vertical Dimensions (W)
Bit Expl.
0-7 Y2, Bottom-most coordinate of window, plus 1
8-15 Y1, Top-most coordinate of window
Garbage values of Y2>160 or Y1>Y2 are interpreted as Y2=160.
Non si fa menzione agli oam e alle loro coordinate.
L'unico problema riguardante gli oam potrebbe sorgere nel momento in cui i valori dei seguenti offset non siano correttamente settati:
Citazione:4000048h - WININ - Control of Inside of Window(s) (R/W)
Bit Expl.
0-3 Window 0 BG0-BG3 Enable Bits (0=No Display, 1=Display)
4 Window 0 OBJ Enable Bit (0=No Display, 1=Display)
5 Window 0 Color Special Effect (0=Disable, 1=Enable)
6-7 Not used
8-11 Window 1 BG0-BG3 Enable Bits (0=No Display, 1=Display)
12 Window 1 OBJ Enable Bit (0=No Display, 1=Display)
13 Window 1 Color Special Effect (0=Disable, 1=Enable)
14-15 Not used

400004Ah - WINOUT - Control of Outside of Windows & Inside of OBJ Window (R/W)
Bit Expl.
0-3 Outside BG0-BG3 Enable Bits (0=No Display, 1=Display)
4 Outside OBJ Enable Bit (0=No Display, 1=Display)
5 Outside Color Special Effect (0=Disable, 1=Enable)
6-7 Not used
8-11 OBJ Window BG0-BG3 Enable Bits (0=No Display, 1=Display)
12 OBJ Window OBJ Enable Bit (0=No Display, 1=Display)
13 OBJ Window Color Special Effect (0=Disable, 1=Enable)
14-15 Not used
Per esempio, potrebbe capitare che gli oam spariscano nello spazio al di fuori della window nel caso in cui il bit 12 dell'offset 0x400004A sia settato a 0.
Diversamente, la modifica dei valori di quegli offset non dovrebbe in alcuni modo intaccare le coordinate degli obj.

.
19-01-2020 11:02 AM
Cerca Cita
 Mi piace ricevuti da: Bonnox , Manuxn
Rispondi 




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