tuts_gbc
Thread Id: 24372
Thread Name: Asm [gbc] las rutinas
#0
Go-BoY 28083
Te voy a enseñar algunas rutinas básicas que aprenderemos..

hl - Puntero a la posición donde comienza el texto


Para imprimir un texto
Escribe un cuadro de texto a la pantalla .
- Hl Carga un punto empezando por el texto.
-call $ 0F5E o $ 1.057

Un ejemplo: 21 3C 42 ld hl , $ 423C
CD 5E 0F call $ 0F5E


Tutorial de datos de copia
Copia un número determinado de bytes de un lugar a otro.
- Hl carga con la ubicación de los datos que desea copiar
- Carga de con la ubicación para copiar a
- Bc carga con la longitud de los datos en bytes
- call $ 311A [G / S ] o $ 3,026 [C ]

Tutorial 3:
TILES DE COPIA
Escribe tiles (incluyendo variables de texto ) a la pantalla . No se da la longitud , sino copias hasta llegar a un porcentaje.
- Hl carga con la ubicación tilemap (G / S : $ C3A0 - $ C507 , Cristal: $ C4A0 - $ C607 )
- Carga con tiles
- call $ 0F74

Ejemplo: 21 E9 C4 hl ld, $ C4E9
11 00 40 ld de , $ 4,000
CD 74 0F call $ 0F74

Poner musica
Inicia la reproducción de música de fondo.
- Carga de con el número de canción
- call $ 3D98 o $ 3B97.

Ejemplo: 11 01 00 ld de , $ 0.001 mil
CD 98 3D call $ 3D98

Poner alguna MIDI
Reproduce un efecto de sonido .
- Carga de con valores un sonido.
- call $ 3E24 o $ 3C23.

Ejemplo: 11 17 00 ld de , $0017
CD 24 3E call $ 3D98

Cambiar bancos1
Utiliza SÓLO cuando el PC está en el banco de memoria ROM ( $ 0.000 - $ 3FFF ) , o de lo contrario va a terminar en el medio de código ajeno ! Esto cambia el banco de memoria ROM actualmente en $ 4000 - $ 7FFF , pero no la ubicación del contador de programa .
- Carga una con el número de banco
- Rst $ 10

Ejemplo: 3E 08 ld a , $ 08
D7 rst $ 10

Cambiar bancos 2
Utilice esta opción cuando la PC está en el banco de memoria ROM conmutable ( $ 4000 - $ 7FFF ) .
- Carga una con el número de banco
- Hl carga con la ubicación dentro del banco que desea cambiar a
- Rst $ 08

Ejemplo: 3E 16 ld a , $ 16
21 00 40 hl ld, $ 4,000
CF rst $ 08

LUGARES DE INTERÉS RAM

BANCO ROM ACTUAL
Si alguna vez necesitas saber qué banco de memoria ROM que se encuentre, lee el byte en $ FF9F.

Ejemplo: F0 9F ld a , [$ FF9F ]

TILEMAP
Ubicaciones $ C3A0 - $ C507 y $ C4A0 - $ C607 representan cada uno de los tiles del fondo en la pantalla. $ C3A0 es la primera baldosa de la primera fila , $ C3B4 es la segunda de la teja de la primera fila , y así sucesivamente . Escribe un valor a uno de estos bytes , y el correspondiente fondo de azulejos aparecerá en esa ubicación en la pantalla .

Ejemplo: 0A 3E ld a, $ 0A
Ld EA 4E C4 ( $ C44E ).

Bien eso es todo por hoy. en este post ire añadiendo todas las rutinas

Puedes usar un programa de repunteo Gold finger o alguno util

Agradecimientos a IIMarckus
Bueno yo algunas veces para mi rom uso algunas de estas rutinas sobretodo la de el texto es la mejor la usareis mucho
#1
Crystal_ 28012
Un aporte útil y se agradece que te hayas preocuado de traer esto a wah, pero no estaría de mas que te preocuparas de traducirlo correctamente y de darle un formato mas claro. Visto así, es dificil que alguien que no este familiarizado con asm sea capaz de descifrar que "Hl Carga un punto empezando por el texto." en realidad se refiere a que a que debes cargar en el registro hl previamente un valor. O que sea capaz de darse cuenta que en la frase "Carga de con la ubicación para copiar a", 'de' se refiere a un registro.

Procura editar el tutorial para que quede algo parecido a esto que te muestro a continuación y el tutorial sera mucho mas util para todos!

Rutina que escribe texto en la pantalla: $0F5E

Recibe:
hl - Posición donde se encuentra el puntero de 3 bytes a la posición el la que comienza el texto

Ejemplo:
ld hl, $423C ; Cargamos la posicion $423C en hl
call $0F5E ; Llamamos a la rutina

Hex: 21 3C 42 CD 5E 0F


Por cierto, no hay ninguna rutina empezando en $1057, seguaramente te hayas colado o haya sido algun error al pegar.
#2
G0LD_ZTHVARD0X! 27515
Esta muy mal traducido, si fuera un total n00b en asm y miro esto me confundo mas, asi que en vista que no es de tanta utilidad cierro el tema, si lo vas a traducir de forma entendible me avisas por perfil o MP y lo reabro