tuts_gbc
Thread Id: 27525
Thread Name: [GBC] Algunos Codigos ASM para Scripts
#0
G0LD_ZTHVARD0X! 27515
Como dice el titulo, aqui les dejo una pequeña recopilacion de algunas rutinas ASM que pueden ser llamadas mediante un script.

Estas rutinas pueden ponerse en cualquier sitio del ROM, pero deben ser llamadas mediante el comando 0x3E (3callASM), bueno, sin mas que decir aqui los dejo.


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,(ubicacion 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 melodia
11 xx xx : ld de,(Puntero de 2bytes a la melodia)
CD 98 3D : Call 3D98

Cargar Graficos comprimidos (como sprites)
21 xx xx : ld hl,(Puntero de 2-bytes a los graficos)
01 yy yy : ld bc,(Area del Tilemap)
3E zz : ld a,(Banco de Graficos)
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 codigo anterior primero)
Cargar Graficos
11 xx xx : ld de,(Puntero de 2-bytes a los graficos)
21 yy yy : ld hl,(Area del Tilemap)
01 xx yy : ld bc,(banco de graficos / numero de tiles a cargar)
C3 72 0E : jp 0E72

Cargar graficos en Blanco y negro (para flashbacks)
11 xx xx : ld de,(Puntero de 2-bytes a los graficos)
21 yy yy : ld hl,(Area del Tilemap)
01 xx yy : ld bc,(xx=banco de los graficos / numero de tiles a cargar)
C3 8D 0E : jp 0E8D

y es todo por ahora (si no sabes de ASM esto parecera que esta en chino XDD)
#1
Brock 25910
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^^
#2
G0LD_ZTHVARD0X! 27515
Iniciado por Brock
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
#3
Chamber4315♪ 26330
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.