Registrarse

[Duda FR] Error MiniSprite 32x32

Estado
Cerrado para nuevas respuestas.
Hola compañeros, llevo tiempo buscando pero no encuentro solucion, Espero puedan ayudarme :) tengo un problema con el mini del protagonista, cambie la resolucion con el NSE 1.7.5 en prefrences puse 32x32 y si, si cambie donde dice INDEX a ALL , EL problema es en la parte donde tienes que poner el nombre, donde tiene que salir el mini caminando normal me sale distorcionado

Pero sale normal cuando se pasa la introduccion


Espero Puedan ayudarme :p por cierto la Rom que uso es de USA
 
Eso es porque los demás movimientos, es decir, en el NSE esta la opción index que puedes ir viendo los diferentes movimientos, al ponerlo de 32x32 se habrá cambiado , asegurate de que este bien montado, de todas formas te recomiendo que sea de 32x16....
 

Adke

weeeh
No hagas caso al de arriba xD si se ve bien ingame es que está bien insertado

para hacer lo que tú pides abre un editor hexadecimal (HxD por ejemplo), ve a la direccion 0x3A3BC0 y cambia el 10 por un 18

PD: descubierto por Jaizu y daniilS
 

jiangzhengwenjz

Usuario mítico
It's because the original one is 16*32 (vertical) but yours is 32*32 (square). So you do the above change by adke to change the OAM data used by your OW (because the OBJ shape is defined in the OAM data).
 

Skyflyer

Creador de Pokémon Zenit
It's because the original one is 16*32 (vertical) but yours is 32*32 (square). So you do the above change by adke to change the OAM data used by your OW (because the OBJ shape is defined in the OAM data).
So inorder to resize a different sprite of another minisprite to that 32x32 size what should you do? In my case I've resized a normal mini to 32x32 to make a new one. However inside the game when it moves in any direction it keeps the first frame of the 9 I added, and I want him to change the sprite in order to move properly. How should I do this? Thank you! :D
 

jiangzhengwenjz

Usuario mítico
So inorder to resize a different sprite of another minisprite to that 32x32 size what should you do? In my case I've resized a normal mini to 32x32 to make a new one. However inside the game when it moves in any direction it keeps the first frame of the 9 I added, and I want him to change the sprite in order to move properly. How should I do this? Thank you! :D
Actually I don't really understand your question.... If you meant how to resize an OW, I think most overworld editors has options to change the OW size, so that you don't need to know the structure of the OW data.
If you want to handle the data:
IIRR, the OW data has entries for width and height, and it has a pointer to its OAM data. The data structure is here: (copied from knizz's idb)
Código:
00000000 npc_type        struc @ (sizeof=0x24) 
00000000 tiles_tag:      .short ?
00000002 pal_num:        .short ?
00000004 pal_tag_2:      .short ?
00000006 field_6:        .short ?
00000008 pos_neg_center: coords16 ?
0000000C pal_slot_and_unknown:.byte ?            @ bit 0x80 checked at 080DAE72
0000000C                                         @ lower four bits are pal-slot
0000000D field_D:        .byte ?
0000000E unused:         .short ?
00000010 oam:            .long ?                 @ offset
00000014 details:        .long ?                 @ offset
00000018 image_anims:    .long ?                 @ offset
0000001C gfx_table:      .long ?                 @ offset
00000020 rotscale_anims: .long ?                 @ offset
00000024 npc_type        ends

00000000 coords16        struc @ (sizeof=0x4)
00000000 x:              .short ?                
00000002 y:              .short ? 
00000004 coords16        ends
 

Skyflyer

Creador de Pokémon Zenit
Actually I don't really understand your question.... If you meant how to resize an OW, I think most overworld editors has options to change the OW size, so that you don't need to know the structure of the OW data.
If you want to handle the data:
IIRR, the OW data has entries for width and height, and it has a pointer to its OAM data. The data structure is here: (copied from knizz's idb)
Código:
00000000 npc_type        struc @ (sizeof=0x24) 
00000000 tiles_tag:      .short ?
00000002 pal_num:        .short ?
00000004 pal_tag_2:      .short ?
00000006 field_6:        .short ?
00000008 pos_neg_center: coords16 ?
0000000C pal_slot_and_unknown:.byte ?            @ bit 0x80 checked at 080DAE72
0000000C                                         @ lower four bits are pal-slot
0000000D field_D:        .byte ?
0000000E unused:         .short ?
00000010 oam:            .long ?                 @ offset
00000014 details:        .long ?                 @ offset
00000018 image_anims:    .long ?                 @ offset
0000001C gfx_table:      .long ?                 @ offset
00000020 rotscale_anims: .long ?                 @ offset
00000024 npc_type        ends

00000000 coords16        struc @ (sizeof=0x4)
00000000 x:              .short ?                
00000002 y:              .short ? 
00000004 coords16        ends
Uuh I don't know how to handle with that right now xD Im a bit noob. My question is the following (sorry if my english is a handicap to understand me), I have resized a minisprite with NSE and then in each frame I've imported the new sprites as I want to create the minisprite of an Aggron, using the minisprite from heartgold. However, after doing this and creating a random trainer in the game and giving him the sprite that I have modified, I select him to move randomly. Then I try the rom but when I am near him and he moves, he only uses the first frame of the 9 that he has (0 to 8). My question is that I don't know what should I do to make this properly so that each frame works as the minisprite which I used worked. I hope now it's clear xD
 

jiangzhengwenjz

Usuario mítico
Uuh I don't know how to handle with that right now xD Im a bit noob. My question is the following (sorry if my english is a handicap to understand me), I have resized a minisprite with NSE and then in each frame I've imported the new sprites as I want to create the minisprite of an Aggron, using the minisprite from heartgold. However, after doing this and creating a random trainer in the game and giving him the sprite that I have modified, I select him to move randomly. Then I try the rom but when I am near him and he moves, he only uses the first frame of the 9 that he has (0 to 8). My question is that I don't know what should I do to make this properly so that each frame works as the minisprite which I used worked. I hope now it's clear xD
(Now I understand your question. )
For me, I haven't researched the overworld system yet, so I can only guess the reason why it won't work. I haven't used NSE for OWs up till now, so I will explain things in data. The offset of the real data is 0x3A3BB0, and for each OW it has 0x24 bytes. (To find the pointer table, search the pointer of the data, but it's not needed if you don't want to expand the OWs)
1. I don't know what did you do to change the sprites. The OW data uses a "gfx table pointer", which points to data like such:
[frame image pointer(apparently 4 bytes)][size(2bytes)][00 00(filler for OWs as they don't need a tag to allocate the graphic)]
and there're many of them, absolutely. Each of those 8 bytes means a frame. The first thing you should do is to repoint all the frames to your bitmap inserted into the ROM.
2. As I've said, it has 2 bytes for size and you should reverse it for its real value as the processor is little-endian(example: 00 01 means 0x100, 00 02 means 0x200)
The size can be calculated as such:
height * width / 2
Therefore, 32 * 16 / 2 = 256 = 0x100 -> 00 01
32 * 32 / 2 = 512 = 0x200 -> 00 02
So you should change all size data to fit your sprite size.
3. point to the correct OAM data.
4. change the width and height in the structure.
5. (maybe needed) You may have to handle the anim script sets in order to get those movement behaviors working.
If it still doesn't work, I suggest you to copy the OW data of the "player with bicycle" to the OW you want to replace, and then modify the frames to your own graphic and configure other data in this structure (pal entry, ...).
 
Última edición:

Skyflyer

Creador de Pokémon Zenit
(Now I understand your question. )
For me, I haven't researched the overworld system yet, so I can only guess the reason why it won't work. I haven't used NSE for OWs up till now, so I will explain things in data. The offset of the real data is 0x3A3BB0, and for each OW it has 0x24 bytes. (To find the pointer table, search the pointer of the data, but it's not needed if you don't want to expand the OWs)
1. I don't know what did you do to change the sprites. The OW data uses a "gfx table pointer", which points to data like such:
[frame image pointer(apparently 4 bytes)][size(2bytes)][00 00(filler for OWs as they don't need a tag to allocate the graphic)]
and there're many of them, absolutely. Each of those 8 bytes means a frame. The first thing you should do is to repoint all the frames to your bitmap inserted into the ROM.
2. As I've said, it has 2 bytes for size and you should reverse it for its real value as the processor is little-endian(example: 00 01 means 0x100, 00 02 means 0x200)
The size can be calculated as such:
height * width / 2
Therefore, 32 * 16 / 2 = 256 = 0x100 -> 00 01
32 * 32 / 2 = 512 = 0x200 -> 00 02
So you should change all size data to fit your sprite size.
3. point to the correct OAM data.
4. change the width and height in the structure.
5. (maybe needed) You may have to handle the anim script sets in order to get those movement behaviors working.
If it still doesn't work, I suggest you to copy the OW data of the "player with bicycle" to the OW you want to replace, and then modify the frames to your own graphic and configure other data in this structure (pal entry, ...).
Wow that sounds really pro, I don't think I have enough knowledge to understand all of that xD However I finally did it properly, there was an option in NSE which I was ignoring, which made it work properly. In addition I tried to change a different mini to the one I initially tried to change, maybe that was part of the problem. Anyway thanks for your help! You are as awesome as ever ^^
 
Estado
Cerrado para nuevas respuestas.
Arriba