¡Hola!
Este tutorial está sacado directamente de la Wiki de Pokecrystal, así que las muchas gracias van dirigidas hacia ellos.
Requisitos:
1. Leer los proyectos de decompilación:
Compilando Pokered o Pokecrystal con WSL Windows 10 o superior (Recomendado).
Compilando Pokecrystal con MSys2 Windows (Cualquier versión).
2. El editor de textos de su preferencia (Notepad, Sublime text, etc).
Este tutorial está sacado directamente de la Wiki de Pokecrystal, así que las muchas gracias van dirigidas hacia ellos.
Requisitos:
1. Leer los proyectos de decompilación:
Compilando Pokered o Pokecrystal con WSL Windows 10 o superior (Recomendado).
Compilando Pokecrystal con MSys2 Windows (Cualquier versión).
2. El editor de textos de su preferencia (Notepad, Sublime text, etc).
La introducción de Pokémon Crystal es bastante compleja de modificar y requiere un gran conocimiento de ensamblaje para modificarla. Afortunadamente, si planeas darle una nueva historia a tu hack, no es nada difícil simplemente eliminar la introducción. Este cambio saltará directamente a la pantalla de título directamente después de que se reproduzca la introducción de Game Freak con Ditto.
Abra la carpeta donde tiene su proyecto:
Entre a la carpeta engine, luego, entre a la carpeta movie, allí encontrará un archivo llamado intro.asm que deberá abrir con su editor de texto.
Usted encontrará este código (Abierto en Notepad++):
Buscamos IntroScenes en el código:
Esta es la sección en la que Crystal carga las animaciones de la introducción (es decir, Pichu, Unown aparece, Suicune se ejecuta). Puedes eliminar las líneas IntroScene1 a IntroScene27. Para que quede de esta manera:
Código:
IntroScenes:
dw IntroScene28
Opcionalmente, si desea reducir el espacio, ahora puede eliminar el código de todas las funciones del archivo, excepto CrystalIntro, IntroSceneJumper, IntroScenes e IntroScene28. Todo lo demás se puede eliminar.
Al hacer esto se ahorran aproximadamente 12,5 Kb de espacio, lo que representa el 0,625% de toda la ROM de 2 Mb.
Que quede tal que así:
Código:
CrystalIntro:
ldh a, [rSVBK]
push af
ld a, BANK(wGBCPalettes)
ldh [rSVBK], a
ldh a, [hInMenu]
push af
ldh a, [hVBlank]
push af
call .InitRAMAddrs
.loop
call JoyTextDelay
ldh a, [hJoyLast]
and BUTTONS
jr nz, .ShutOffMusic
ld a, [wJumptableIndex]
bit 7, a
jr nz, .done
call IntroSceneJumper
farcall PlaySpriteAnimations
call DelayFrame
jp .loop
.ShutOffMusic
ld de, MUSIC_NONE
call PlayMusic
.done
call ClearBGPalettes
call ClearSprites
call ClearTilemap
xor a
ldh [hSCX], a
ldh [hSCY], a
ld a, 7
ldh [hWX], a
ld a, SCREEN_HEIGHT_PX
ldh [hWY], a
pop af
ldh [hVBlank], a
pop af
ldh [hInMenu], a
pop af
ldh [rSVBK], a
ret
.InitRAMAddrs:
assert VBLANK_NORMAL == 0
xor a
ldh [hVBlank], a
ld a, TRUE
ldh [hInMenu], a
xor a
ldh [hMapAnims], a
ld [wJumptableIndex], a
ret
IntroSceneJumper:
jumptable IntroScenes, wJumptableIndex
IntroScenes:
dw IntroScene28
IntroScene28:
; Cut out when the music ends, and lead into the title screen.
ld hl, wIntroSceneFrameCounter
ld a, [hl]
and a
jr z, .done
dec [hl]
cp $18
jr z, .clear
cp $8
ret nz
ld de, SFX_INTRO_WHOOSH
call PlaySFX
ret
.clear
call ClearBGPalettes
ret
.done
ld hl, wJumptableIndex
set 7, [hl]
ret
Aquí el resultado: