Registrarse

[ASM] Algunos códigos ASM para Scripts

Gold

Porrero a tiempo parcial
Miembro insignia
Como dice el título, aquí les dejo una pequeña recopilación de algunas rutinas ASM que pueden ser llamadas mediante un script.

Estas rutinas pueden ponerse en cualquier sitio de la ROM, pero deben ser llamadas mediante el comando 0x3E (3callASM), bueno, sin más que decir aquí los dejo.

Código:
ASM Scripts:

Asignar Paleta
21 xx xx ld hl,c280
ld bc,0088 ???
ld a ff???
call 314c ?????

Imprimir tiles(hasta 9f!!!)
21 xx xx : ld hl, lugar de la map ram (ej $c4b9)
11 xx xx : ld de,texto
cd 74 0f : call 0f74

Ubicar Paleta
21 xx xx : ld hl,(ubicación del mapa)
01 yy yy : ld bc,(alto - ancho)
3E zz : ld a,(paleta)
CD A6 63 : Call 63A6

TextBox
21 xx xx : ld hl,(puntero de 2bytes al texto)
CD 5E 0F : Call 0F5E

Reproducir melodía
11 xx xx : ld de,(Puntero de 2bytes a la melodía)
CD 98 3D : Call 3D98

Cargar Gráficos comprimidos (como sprites)
21 xx xx : ld hl,(Puntero de 2-bytes a los gráficos)
01 yy yy : ld bc,(Área del Tilemap)
3E zz : ld a,(Banco de Gráficos)
CD A6 63 : Call 0AF0

216699 010a01 3e03cd a6 63

Llenar el fondo con un tile
21 A0 C3 : ld hl,C3A0
3E XX : ld a,Tile 51
21 68 01 : ld bc 0168
call 314C
ld hl,4349
ld a,23
rst 08
ret

Aplicar ordenamiento de tilemap
21 xx xx : ld hl,(Puntero de 2-bytes a la tabla de ordenamiento de tilemap)
01 yy yy : ld bc,(Lugar del tilemap)
3E zz : ld a,(banco de tabla de ordenamiento)
CD A6 63 : Call 3128

Salto y regreso al sitio inicial
3E xx : ld a,(banco)
21 yyyy : ld hl,Puntero de rutina ASM
CF : rst 08
C9 : ret

Banco 3E: (Usar código anterior primero)
Cargar Gráficos
11 xx xx : ld de,(Puntero de 2-bytes a los gráficos)
21 yy yy : ld hl,(Área del Tilemap)
01 xx yy : ld bc,(banco de gráficos/número de tiles a cargar)
C3 72 0E : jp 0E72

Cargar gráficos en Blanco y negro (para flashbacks)
11 xx xx : ld de,(Puntero de 2-bytes a los gráficos)
21 yy yy : ld hl,(Área del Tilemap)
01 xx yy : ld bc,(xx=banco de los gráficos/número de tiles a cargar)
C3 8D 0E : jp 0E8D
Eso es todo, por ahora. Se recomienda tener conocimientos de ASM, caso contrario, parecerá que todo está escrito en Chino.
 

Master Brock

Miembro insignia
Miembro insignia
Usuario de Platino
Respuesta: [GBC] Algunos Codigos ASM para Scripts

WTF?? Esto es chino xDDD

Nah, enserio, mola que masters como tú os dediqueis a enseñar a novatos en este mundillo, y le deis aportes como este, que nada mas y nada menos contiene codigos de ASM, algo muy valioso en el ROm hacking

Muchas gracias^^
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: [GBC] Algunos Codigos ASM para Scripts

WTF?? Esto es chino xDDD

Nah, enserio, mola que masters como tú os dediqueis a enseñar a novatos en este mundillo, y le deis aportes como este, que nada mas y nada menos contiene codigos de ASM, algo muy valioso en el ROm hacking

Muchas gracias^^
Gracias, olvide mencionar para que usos podemos usarlos.

Pues sirve para llamar animaciones cinematicas o estaticas por medio de script, como el Pokemon MN hack, por ejemplo:



Igual no son muy dificiles de entender
 

Chamber

Miembro insignia
Miembro insignia
Respuesta: [GBC] Algunos Codigos ASM para Scripts

Lei tu titulo y desde hace tiempo tenia una idea asi, pero al leer el contenido no es un tanto como pensaba.

No crees que hace falta una explicación de su uso (como dices arriba) y quizas una captura?

Aconsejo que uses la nomenclatura de Pokecrystal, asi es mas facil ir adentrando a mas gente al mundo del ASM. Por ejemplo, para señalar la rutina que toca las melodias podrias poner:

call PlayMusic
call $3D98 ; CD 98 3D

Tengo mucho que aportar en este apartado tan poco documentado, asi que sigamos con este tema.
 
Arriba