Anotações
ChipFolder
0x02009A50 -> Chip selecionado na tela(até 6), após isso, o scrolling é outro byte
0x02009A53 -> Scrolling do Chip, quando passa de 6, a gente vai descendo os chips, ele é o responsável pelo chip que vai ser passado
SubChipFolder
0x02009A44 -> Flecha que está sobre o chip que vamos selecionar, ele guarda o valor
Start Menu
0x02009A30 -> Armazena o valor do Menu do Start selecionado
Chipfolder = 0x0
SubChip = 0x4
Library = 0x8
MegaMan = 0xC
E-Mail = 0x10
KeyItem = 0x14
Common = 0x18
Save = 0x1C
StartMenu_Email:
0x081279F8
Essa função tem um pequeno jump table, com três endereços, o primeiro é utilizado para abrir o email, o terceiro é utilizado
para fechar o menu de email, o do meio provavelmente para ler email ? (ainda não tenho nenhum email no jogo).
0x08127A1C StartMenu_OpenMailMenu
0x08127ACC StartMenu_ListEmail
0x08127C64 StartMenu_ExitEmail
BattleStart_Related: 0x08003E18
Quando uma batalha é encontrada, essa function é chamada até o fim da batalha
0x08000808 engine_storeInfoToPlay
Salva as informações da música que vai ser carregada, é basicamente salva uma struct com o seguinte formato:
typedef struct soundStruct {
u32 soundNum; // sound to play
u32 unk_arg; // always 0x020093B0
u32 unk_arg2; // always 0x0
u32 engine_sound_addr; // function which will handle the sound ?
} soundStruct;
onde SoundNum é o registrador R0, unk_arg é o registrador r1, unk_arg2 é o registrador r2,
engine_sound_addr é a função responsável para saber o som que vai ser reproduzido (?) o endereço é 0x0814E925
Obs: modificar o valor do r1 irá causar crash.
Em batalha:
0x02036782 -> Botões pressionado durante a batalha(incluindo battle chip menu)
Start -> 0x8
Cima -> 0x40
Baixo -> 0x80
Esquerda -> 0x20
Direita -> 0x10
A -> 0x1
X -> 0x2
0x02036783 -> 0xFC, quando pressionado L ou R, 0xFD/0xFE
0x020340A0 -> Relacionado com o Damage ?
0x020340A2 -> Botões pressionado enquanto está em batalha
(não conta com o Battle Chip Menu)
0x020340A8 -> Botões pressionado enquanto está em batalha
(não conta com o battle chip menu)
0x020340A4 -> Botao pressionado, valor super rápido
enquanto está em batalha, apenas salva e apaga em seguida
0x020340A6 -> Mesma coisa do 0x02340A4
0x020340A3 -> Verifica se botão L ou R foi pressionado
sempre 0xFC, apenas 0xFD ou 0xFE quando L/R
0x020340A9 -> mesma coisa do 0x020340A3
0x0203412C -> valor dos movimentos ?
Valor altera dependendo de como você está se movimentado,
ou atirando
0x02034136 -> Valor do piso que você se encontra
da direita para esquerda:
| 1 | 2 | 2 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
0x02034137 -> Valor do piso que você se encontra
de cima para baixo:
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
0x0203413C -> Ação que você está fazendo ?
0x04 -> Movimentando
0x01 -> Atirando
0x02 -> Usando chip
Primeiro Inimigo:
0x02034230/0x02034231 -> IA do inimigo ?
O valor fica aumentando até 0xFF e aparentemente
tem relação com a IA do inimigo, quando modificado
inimigo fica sem atacar
0x02034220 -> IA do Inimigo ?
0x00 = parado
0x04 = Movimento para frente do mega man ? ou
tentar achar inimigo ?
0x0C = Para e verifica se está de frente pra ele ?
0x08 = Atacando
0x02034221 -> IA do Inimigo ?
0x01 - Ataca
0x02034246 -> Utilizado por inimigos
que tem ataques que precisa de localização
ou coisa do tipo ?
0x02034248 -> Animação do Ataque do Inimigo ?
0x0203422E -> Aparentemente utilizado
por inimigos que atacam mais de uma vez, quantidade
de ataques que ele pode fazer ?
Segundo Inimigo:
0x02034330/0x02034331 -> IA do inimigo ?
O valor fica aumentando até 0xFF e aparentemente
tem relação com a IA do inimigo, quando modificado
inimigo fica sem atacar
0x02034320 -> IA do Inimigo ?
0x00 = parado
0x04 = Movimento para frente do mega man ? ou
tentar achar inimigo ?
0x0C = Para e verifica se está de frente pra ele ?
0x08 = Atacando
0x02034321 -> IA do Inimigo ?
0x01 - Ataca
Obs: alguns endereços da Fast WRAM como os da IA do Inimigo são de apenas leitura, entretanto pode ajudar em descobrir
a função responsável por elas