Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论

 找回密码
 加入口袋中心
搜索
查看: 2111|回复: 5

【转】GBC Overworld 修改方法

[复制链接]

3369

回帖

528

现金

485

勋章券

超级版主

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
22139
QQ

时光印记Lv.3挥金如土勋章水中王者勋章Lv3Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章金银好CP-Ho-oh/LUGIA【里】金银好CP-Ho-oh/LUGIA【真·正常向】异化型LUGIA【M超梦版】

发表于 2014-2-22 12:08:31 | 显示全部楼层 |阅读模式
原帖:http://wahackforo.com/t-23844/gbc-agregar-overworld-sprites
以下均为转载内容,看起来还蛮有意思的,有谁看得懂可以翻译一下。
============================================================================================

Hola, les traigo un tutorial que espero les sea util!
Si se quiere agregar mas personajes al juego se puede hacer sin necesidad de editar o borrar un personaje existente, de forma un poco extensa la primera vez, pero una vez hecho el repunteo será mas fácil cada vez.


Herramientas necesarias:
Gold Finger (o cualquier editor Hex)
Apoint (o cualquier calculadora de pointers GBC)
Tile Layer Pro
Paint
Y mucha imaginación!


Primero saber cual es el numero de overwolrd que maneja cada juego.

Gold & Silver 0x5F (95 en decimal)
Crystal 0x66 (102 en decimal)

Podemos apoyarnos de las siguientes graficas:

POKEMON GOLD




POKEMON CRYSTAL





Yo me enfocare en Pokemon Gold, por lo que el siguiente minisprite/overworld que agreguemos tendrá el valor 0x60 o 96 en decimal.



Tutorial:

Paso 1 Copiar Informacion
Paso 1. Copiar la tabla de datos de de los Overworld. Con GF (gold finger) copiamos del offset $147DE al $14A17 y lo pegamos en algún espacio en blanco dentro del mismo banco, en mi caso elegí $ 17bd0. Ahora sacamos el pointer de la nueva ubicación.
17bd0 = [05D07B]





Paso 2 Repuntear
Paso 2. Repuntear. El pointer de la tabla esta en el offset $142B5. Como se trata de un pointer de 2-byte, escribimos los dos últimos bytes de nuestro pointer, osea D0 7B. Con esto ya tenemos la tabla con espacio en blanco para agregar mas NPC.





Paso 3 Dibujar Sprite
Paso 3. Dibujar nuestro Sprite. Con ayuda de paint dibujamos nuestro personaje en un tamaño no mayor a 16 x16 pixeles y con dos colores + balnco + negro. Nuestro personaje se compone de 6 sprites:

1.-Frente
2.-Espaldas
3.-Lado (hacia la izquierda)
4.-Frente caminando
5.-Espaldas caminando
6.-Lado caminando (hacia la izquierda)





Paso 4 Insertar Sprite
Paso 4. Insertar Sprite. Hay dos formas de insertar el Sprite, dibujándolo en Tile Layer Pro (método tardado) o Importando la imagen en Tile Layer Pro (método “fácil”). Optaremos por el método de importar por que me parece mas practico.

4.1
4.1-Con el Sprite dibujado, trazamos unas cuadros de 16x16 de un color diferente al del sprite que nos servirán como guias e insertamos cada Sprite en el cuadro, asi:






4.2
4.2-Recortamos cada Sprite en rectángulos de 16 x 8 pixeles ayunándonos de las guias y los colocamos en filas de 128 pixeles, uno detrás del otro y lo guardan como un documento nuevo que debe medir 128x16 pixeles. Al final debemos tener un resulado asi:






4.3
4.3- Borramos las guias usando el borrador de paint. Con el gotero seleccionamos el color que queremos borrar del lado izquierdo y del lado derecho el color con el que lo queremos reemplazar, en este caso el blanco.





4.4
4.4 Abrimos el TLP, vamos al offset $C0000 y vemos los gráficos de los sprites en un formato como el que acabamos de hacer. Como elección personal, cambie las paletas del TLP por unas mas “amigables” de color rosa y azul. Recomiendo que también lo hagan, solo tienen que pulsar la flecha hacia abajo en el “pallet editor” hasta llegar al final. En caso de que no encuentre la paleta, ustedes pueden personalizar la suya.





4.5
4.5 Copien esas mismas paletas a paint y recolorien su Sprite. Normalmente el color rosa es para el color claro y el color azul para el color oscuro, pero en este caso, debemos invertir los colores a manera de negativo, de manera que el color oscuro sea el rosa, el color claro sea el azul, el blanco sea el negro y el color negro sea el blanco. Ejemplo:

Como se vería normalmente:


Como debe ser para importar:




4.6
4.6 Con el TLP abierto, buscamos espacio en blanco en la parte de arriba o donde mejor les paresca. Vamos a Edit > import bitmap y seleccionamos nuestra imagen. La posicionamos donde queramos y damos clic en un espacio en blanco. Con esto vemos como nuestro Sprite se colorea de manera normal (no en negativo) y ya tenemos nuestro Sprite en el ROM.

Espacio en Blanco


Importamos


Clic en un espacio en balnco y listo!




4.7
4.7 Apuntamos el pointer donde comienzan los graficos de nuestro Sprite. Esto lo sabemos posicionando el primer Sprite en la esquina superior izquierda de la pantalla del TLP. En mi caso es $BFE00 = [2F007E]









Paso 5 Agregar Datos
Paso 5. De vuelta en GF, nos posicionamos al final de la tabla y escribimos los datos de nuestro nuevo Sprite con la siguiente estructura de 6-bytes.

[2-byte pointer to Graphics] [length of the data] [Rombank graphics] [Image type] [standard-pallette]

2-byte pointer to Graphics = El pointer de los graficos, en nuestro caso 00 7E.

Length of the data = 0C para Sprite que caminan, 40 para estaticos, en nuestro caso 0C.

Rombank graphics = Banco donde estan los graficos, eso no lo dice el Apoint, es el primer byte del pointer, en nuestro caso 2F.

Image type = 01 para Sprite que caminan, 03 para estáticos, en nuestro caso 01.

Standard-pallette = La paleta con que aparecen por default, los valores van del 0-7, en nuestro caso usare 02 para color verde.

Al final, el Sprite de link se define con la siguiente información:

00 7E 0C 2F 01 02

Esta información se escribe en el final de la tabla y listo, ya tenemos nuestro Sprite configurado.




Paso 6 Editar Spritesheets
Paso 6. Como paso adicional, debemos editar cambiar los Spritesheets del juego, ya que los mapas abiertos solo pueden leer 11 sprites, de los cuales dos son la pokeball y la planta de berrys, eso nos deja con solo 9 sprites diferentes para cada mapa.

La información de cada mapa es la siguiente:

Código:

1468C-146BF - Pointer table to Spritesets
146C0-146CA - Spriteset (Pallet Town)
146CB-146D5 - Spriteset (Viridian City)
146D6-146E0 - Spriteset (Pewter City)
146E1-146EB - Spriteset (Cinnabar Island)
146EC-146F7 - Spriteset (Cerulean)
146F8-14701 - Spriteset (Saffron)
14702-1470C - Spriteset (Celadon)
1470D-14717 - Spriteset (Lavender)
14718-14722 - Spriteset (Vermilion)
14723-1472D - Spriteset (Fuchsia)
1472E-14738 - Spriteset (League)
14739-14745 - Spriteset (New Bark Town)
14746-1474E - Spriteset (Cherrygrove City)
1474F-14759 - Spriteset (Mt. Silver)
1475A-14764 - Spriteset (Violet)
14765-1476F - Spriteset (Ecruteak)
14770-1477A - Spriteset (Azalea)
1477B-14785 - Spriteset (Goldenrod)
14786-14790 - Spriteset (Cianwood City)
14791-1499B - Spriteset (Olivine)
1479C-147A6 - Spriteset (Lake of Rage)
147A7-147B1 - Spriteset (Mahogany)
147B2-147BC - Spriteset (Blackthorn)
147BD-147C7 - Spriteset (Caves)
147C8-147D2 - Spriteset (S.S. Aqua + Etc.)
147D3-147DD - Spriteset (Special)

Si nos vamos al offset $14739 que corresponde a New Bark, podemos ver que el tercer byte es 0x3A, que corresponde al gordito. Cambiamos ese valor por 0x60, el cual corresponde a nuestro nuevo Sprite y listo, ahora podemos ir a nuestro editor de mapas, seleccionar cualquier Sprite de New Bark y cambiarlo por el valor 0x60 o 96 en decimal.

Resultado final:



Ya con la tabla repunteada, lo único que queda es agregar mas sprites junto con sus datos.

OJO: Si quieres comprobar algún Sprite sin modificar los Spritesheets lo puedes hacer en un mapa cerrado, como una casa, ya que no se tiene la limitación de los 11 sprites y pudes checar ahí todos los sprites así nadamas.







Espero les guste y les haya servido este tutorial!

Cualquier duda pueden preguntar

Saludos!

PD: Reporten faltas de ortografia y redaccion que hice el tutorial a las carreras XD

回复

使用道具 举报

1560

回帖

9623

现金

39

勋章券

贵宾

各位權貴、老人真厲害啊,我們這等新人和阿卡林只能呵呵了

Rank: 22Rank: 22Rank: 22Rank: 22

积分
6103

水中王者勋章Lv2论坛十周年纪念物挥金如土勋章Lv1时光印记Lv.2Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章金银好CP第二弹-凤王金银好CP第二弹-LUGIA


火雞 Lv:32
发表于 2014-2-22 12:45:16 | 显示全部楼层
豈可修!不是英語翻毛啊!
月光宝盒改版索引帖                                                         打各种补丁教程                                         

面對各位權貴和老人我等新人黨和阿卡林是不是該說一句跪拜菊苣?
我們這些渣渣不長眼、不長記性、沒有服務意識冒犯各位菊苣可真是對不起啊
回复 支持 反对

使用道具 举报

3369

回帖

528

现金

485

勋章券

超级版主

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
22139
QQ

时光印记Lv.3挥金如土勋章水中王者勋章Lv3Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章金银好CP-Ho-oh/LUGIA【里】金银好CP-Ho-oh/LUGIA【真·正常向】异化型LUGIA【M超梦版】

 楼主| 发表于 2014-2-22 13:07:43 | 显示全部楼层
X-hole 发表于 2014-2-22 12:45
豈可修!不是英語翻毛啊!

这个是不是该发在宝盒的奥秘那个区?
回复 支持 反对

使用道具 举报

1560

回帖

9623

现金

39

勋章券

贵宾

各位權貴、老人真厲害啊,我們這等新人和阿卡林只能呵呵了

Rank: 22Rank: 22Rank: 22Rank: 22

积分
6103

水中王者勋章Lv2论坛十周年纪念物挥金如土勋章Lv1时光印记Lv.2Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章金银好CP第二弹-凤王金银好CP第二弹-LUGIA


火雞 Lv:32
发表于 2014-2-22 14:14:10 | 显示全部楼层
jiangzhengwenjz 发表于 2014-2-22 13:07
这个是不是该发在宝盒的奥秘那个区?

沒人看得懂放進去就沒意義了...

点评

说到底还是这里的改版者太少了  发表于 2014-2-22 14:23
月光宝盒改版索引帖                                                         打各种补丁教程                                         

面對各位權貴和老人我等新人黨和阿卡林是不是該說一句跪拜菊苣?
我們這些渣渣不長眼、不長記性、沒有服務意識冒犯各位菊苣可真是對不起啊
回复 支持 反对

使用道具 举报

67

回帖

1407

现金

0

勋章券

新伙伴的欢笑

Rank: 3

积分
69

时光印记Lv.1

发表于 2014-2-26 23:08:31 | 显示全部楼层
谢谢楼主!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入口袋中心

本版积分规则

手机版|Archiver|Pokemon Center

GMT+8, 2024-11-24 17:30 , Processed in 0.123340 second(s), 53 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表