Merge pull request #94 from PikalaxALT/map_preview_screen
Decompile map_preview_screen
|
|
@ -1,5 +1,10 @@
|
|||
# Pokémon FireRed and LeafGreen
|
||||
|
||||
[![Build Status][travis-badge]][travis]
|
||||
|
||||
[travis]: https://travis-ci.org/pret/pokefirered
|
||||
[travis-badge]: https://travis-ci.org/pret/pokefirered.svg?branch=master
|
||||
|
||||
This is a disassembly of Pokémon FireRed and LeafGreen.
|
||||
|
||||
It builds the following ROM:
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ sub_8098400: @ 8098400
|
|||
ldrb r1, [r4, 0x14]
|
||||
add r0, sp, 0xC
|
||||
movs r2, 0
|
||||
bl sub_80C4D78
|
||||
bl GetMapName
|
||||
adds r2, r0, 0
|
||||
movs r0, 0x1A
|
||||
ldrsb r0, [r4, r0]
|
||||
|
|
|
|||
|
|
@ -1,657 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80F80E4
|
||||
sub_80F80E4: @ 80F80E4
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
movs r1, 0
|
||||
ldr r2, _080F80FC @ =gUnknown_843E9E8
|
||||
_080F80EE:
|
||||
ldrb r0, [r2]
|
||||
cmp r0, r3
|
||||
bne _080F8100
|
||||
lsls r0, r1, 24
|
||||
lsrs r0, 24
|
||||
b _080F810A
|
||||
.align 2, 0
|
||||
_080F80FC: .4byte gUnknown_843E9E8
|
||||
_080F8100:
|
||||
adds r2, 0x10
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x1B
|
||||
bls _080F80EE
|
||||
movs r0, 0x1C
|
||||
_080F810A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F80E4
|
||||
|
||||
thumb_func_start sub_80F8110
|
||||
sub_80F8110: @ 80F8110
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
adds r5, r4, 0
|
||||
bl sub_80F80E4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r1, r0, 0
|
||||
cmp r1, 0x1C
|
||||
beq _080F814C
|
||||
cmp r4, 0x2
|
||||
bne _080F8132
|
||||
movs r0, 0x1
|
||||
b _080F814E
|
||||
_080F8132:
|
||||
movs r2, 0
|
||||
ldr r0, _080F8148 @ =gUnknown_843E9E8
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
ldrb r0, [r1, 0x1]
|
||||
cmp r0, r5
|
||||
bne _080F8142
|
||||
movs r2, 0x1
|
||||
_080F8142:
|
||||
adds r0, r2, 0
|
||||
b _080F814E
|
||||
.align 2, 0
|
||||
_080F8148: .4byte gUnknown_843E9E8
|
||||
_080F814C:
|
||||
movs r0, 0
|
||||
_080F814E:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F8110
|
||||
|
||||
thumb_func_start sub_80F8154
|
||||
sub_80F8154: @ 80F8154
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r0, _080F8174 @ =gUnknown_203ADFA
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _080F8178
|
||||
adds r0, r2, 0
|
||||
bl sub_80F8110
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080F817A
|
||||
.align 2, 0
|
||||
_080F8174: .4byte gUnknown_203ADFA
|
||||
_080F8178:
|
||||
movs r0, 0
|
||||
_080F817A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F8154
|
||||
|
||||
thumb_func_start sub_80F8180
|
||||
sub_80F8180: @ 80F8180
|
||||
push {lr}
|
||||
ldr r1, _080F8198 @ =gUnknown_843EBB0
|
||||
movs r0, 0
|
||||
movs r2, 0x1
|
||||
bl InitBgsFromTemplates
|
||||
movs r0, 0
|
||||
bl ShowBg
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F8198: .4byte gUnknown_843EBB0
|
||||
thumb_func_end sub_80F8180
|
||||
|
||||
thumb_func_start sub_80F819C
|
||||
sub_80F819C: @ 80F819C
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80F80E4
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x1C
|
||||
beq _080F8224
|
||||
bl ResetTempTileDataBuffers
|
||||
ldr r4, _080F8200 @ =gUnknown_843E9E8
|
||||
lsls r5, 4
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xC
|
||||
adds r0, r5, r0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x60
|
||||
bl LoadPalette
|
||||
adds r4, 0x4
|
||||
adds r4, r5, r4
|
||||
ldr r1, [r4]
|
||||
movs r4, 0
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndCopyTileDataToVram
|
||||
movs r0, 0
|
||||
bl GetBgTilemapBuffer
|
||||
cmp r0, 0
|
||||
bne _080F8208
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
bl Alloc
|
||||
adds r1, r0, 0
|
||||
movs r0, 0
|
||||
bl SetBgTilemapBuffer
|
||||
ldr r1, _080F8204 @ =gUnknown_203ABED
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
b _080F820C
|
||||
.align 2, 0
|
||||
_080F8200: .4byte gUnknown_843E9E8
|
||||
_080F8204: .4byte gUnknown_203ABED
|
||||
_080F8208:
|
||||
ldr r0, _080F822C @ =gUnknown_203ABED
|
||||
strb r4, [r0]
|
||||
_080F820C:
|
||||
ldr r0, _080F8230 @ =gUnknown_843E9E8
|
||||
adds r0, 0x8
|
||||
adds r0, r5, r0
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl CopyToBgTilemapBuffer
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_080F8224:
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F822C: .4byte gUnknown_203ABED
|
||||
_080F8230: .4byte gUnknown_843E9E8
|
||||
thumb_func_end sub_80F819C
|
||||
|
||||
thumb_func_start sub_80F8234
|
||||
sub_80F8234: @ 80F8234
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl RemoveWindow
|
||||
ldr r0, _080F8254 @ =gUnknown_203ABED
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080F8250
|
||||
movs r0, 0
|
||||
bl GetBgTilemapBuffer
|
||||
bl Free
|
||||
_080F8250:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F8254: .4byte gUnknown_203ABED
|
||||
thumb_func_end sub_80F8234
|
||||
|
||||
thumb_func_start sub_80F8258
|
||||
sub_80F8258: @ 80F8258
|
||||
push {lr}
|
||||
bl FreeTempTileDataBuffersIfPossible
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F8258
|
||||
|
||||
thumb_func_start sub_80F8268
|
||||
sub_80F8268: @ 80F8268
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
lsls r6, 24
|
||||
lsrs r6, 24
|
||||
ldr r0, _080F8308 @ =sub_80F83D0
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0
|
||||
movs r1, 0x7
|
||||
bl GetBgAttribute
|
||||
ldr r1, _080F830C @ =gTasks
|
||||
lsls r5, r4, 2
|
||||
adds r5, r4
|
||||
lsls r5, 3
|
||||
adds r5, r1
|
||||
movs r4, 0
|
||||
strh r0, [r5, 0xC]
|
||||
movs r0, 0x50
|
||||
bl GetGpuReg
|
||||
strh r0, [r5, 0x10]
|
||||
movs r0, 0x52
|
||||
bl GetGpuReg
|
||||
strh r0, [r5, 0x12]
|
||||
movs r0, 0
|
||||
bl GetGpuReg
|
||||
strh r0, [r5, 0xE]
|
||||
movs r0, 0x48
|
||||
bl GetGpuReg
|
||||
strh r0, [r5, 0x14]
|
||||
movs r0, 0x4A
|
||||
bl GetGpuReg
|
||||
strh r0, [r5, 0x16]
|
||||
adds r0, r6, 0
|
||||
bl sub_80F856C
|
||||
strh r0, [r5, 0x1C]
|
||||
movs r0, 0x10
|
||||
strh r0, [r5, 0x18]
|
||||
strh r4, [r5, 0x1A]
|
||||
movs r0, 0
|
||||
movs r1, 0x7
|
||||
movs r2, 0
|
||||
bl SetBgAttribute
|
||||
ldr r1, _080F8310 @ =0x00003e41
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
movs r0, 0x52
|
||||
movs r1, 0x10
|
||||
bl SetGpuReg
|
||||
ldr r1, _080F8314 @ =0x00002020
|
||||
movs r0, 0x48
|
||||
bl SetGpuRegBits
|
||||
movs r0, 0x4A
|
||||
movs r1, 0x20
|
||||
bl SetGpuRegBits
|
||||
adds r0, r6, 0
|
||||
bl sub_80F8318
|
||||
strh r0, [r5, 0x1E]
|
||||
bl ScriptContext2_Enable
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F8308: .4byte sub_80F83D0
|
||||
_080F830C: .4byte gTasks
|
||||
_080F8310: .4byte 0x00003e41
|
||||
_080F8314: .4byte 0x00002020
|
||||
thumb_func_end sub_80F8268
|
||||
|
||||
thumb_func_start sub_80F8318
|
||||
sub_80F8318: @ 80F8318
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0x14
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _080F83A8 @ =gUnknown_843EBA8
|
||||
bl AddWindow
|
||||
mov r8, r0
|
||||
mov r0, r8
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r8, r0
|
||||
lsls r6, r0, 24
|
||||
lsrs r6, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x11
|
||||
bl FillWindowPixelBuffer
|
||||
adds r0, r6, 0
|
||||
bl PutWindowTilemap
|
||||
add r1, sp, 0x14
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0x4
|
||||
strb r0, [r1, 0x1]
|
||||
movs r0, 0x3
|
||||
strb r0, [r1, 0x2]
|
||||
ldr r5, _080F83AC @ =gStringVar4
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
bl sub_80C4D78
|
||||
movs r0, 0x2
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
bl GetStringWidth
|
||||
movs r2, 0x68
|
||||
subs r2, r0
|
||||
lsrs r2, 1
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
add r0, sp, 0x14
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [sp, 0xC]
|
||||
str r5, [sp, 0x10]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2
|
||||
movs r3, 0x2
|
||||
bl AddTextPrinterParameterized4
|
||||
mov r0, r8
|
||||
add sp, 0x14
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080F83A8: .4byte gUnknown_843EBA8
|
||||
_080F83AC: .4byte gStringVar4
|
||||
thumb_func_end sub_80F8318
|
||||
|
||||
thumb_func_start sub_80F83B0
|
||||
sub_80F83B0: @ 80F83B0
|
||||
push {lr}
|
||||
ldr r0, _080F83C4 @ =sub_80F83D0
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _080F83C8
|
||||
movs r0, 0x1
|
||||
b _080F83CA
|
||||
.align 2, 0
|
||||
_080F83C4: .4byte sub_80F83D0
|
||||
_080F83C8:
|
||||
movs r0, 0
|
||||
_080F83CA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F83B0
|
||||
|
||||
thumb_func_start sub_80F83D0
|
||||
sub_80F83D0: @ 80F83D0
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
ldr r1, _080F83F8 @ =gTasks+0x8
|
||||
adds r4, r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x5
|
||||
bls _080F83EC
|
||||
b _080F853C
|
||||
_080F83EC:
|
||||
lsls r0, 2
|
||||
ldr r1, _080F83FC @ =_080F8400
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080F83F8: .4byte gTasks+0x8
|
||||
_080F83FC: .4byte _080F8400
|
||||
.align 2, 0
|
||||
_080F8400:
|
||||
.4byte _080F8418
|
||||
.4byte _080F8438
|
||||
.4byte _080F8448
|
||||
.4byte _080F8458
|
||||
.4byte _080F8470
|
||||
.4byte _080F84F2
|
||||
_080F8418:
|
||||
bl sub_80F8258
|
||||
cmp r0, 0
|
||||
beq _080F8422
|
||||
b _080F853C
|
||||
_080F8422:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080F842E
|
||||
b _080F853C
|
||||
_080F842E:
|
||||
ldrb r0, [r4, 0x16]
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
b _080F84EA
|
||||
_080F8438:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080F853C
|
||||
bl sub_807DC00
|
||||
b _080F84EA
|
||||
_080F8448:
|
||||
bl sub_807AA70
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080F853C
|
||||
bl Overworld_PlaySpecialMapMusic
|
||||
b _080F84EA
|
||||
_080F8458:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r2, 0x14
|
||||
ldrsh r1, [r4, r2]
|
||||
cmp r0, r1
|
||||
ble _080F853C
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2]
|
||||
b _080F84EA
|
||||
_080F8470:
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
beq _080F847E
|
||||
cmp r0, 0x1
|
||||
beq _080F8492
|
||||
b _080F84A2
|
||||
_080F847E:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x10
|
||||
ble _080F84A2
|
||||
movs r0, 0x10
|
||||
strh r0, [r4, 0x12]
|
||||
b _080F84A2
|
||||
_080F8492:
|
||||
ldrh r0, [r4, 0x10]
|
||||
subs r0, 0x1
|
||||
strh r0, [r4, 0x10]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bge _080F84A2
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x10]
|
||||
_080F84A2:
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x3
|
||||
bl __modsi3
|
||||
strh r0, [r4, 0x2]
|
||||
ldrh r1, [r4, 0x12]
|
||||
lsls r1, 8
|
||||
ldrh r0, [r4, 0x10]
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
movs r1, 0x10
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _080F853C
|
||||
movs r2, 0x12
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, 0x10
|
||||
bne _080F853C
|
||||
movs r0, 0x20
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r0, 0
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_080F84EA:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _080F853C
|
||||
_080F84F2:
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080F853C
|
||||
movs r1, 0x16
|
||||
ldrsh r0, [r4, r1]
|
||||
bl sub_80F8234
|
||||
ldrb r2, [r4, 0x4]
|
||||
movs r0, 0
|
||||
movs r1, 0x7
|
||||
bl SetBgAttribute
|
||||
ldrh r1, [r4, 0x6]
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
ldrh r1, [r4, 0x8]
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
ldrh r1, [r4, 0xA]
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
ldrh r1, [r4, 0xC]
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
ldrh r1, [r4, 0xE]
|
||||
movs r0, 0x4A
|
||||
bl SetGpuReg
|
||||
adds r0, r5, 0
|
||||
bl DestroyTask
|
||||
_080F853C:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80F83D0
|
||||
|
||||
thumb_func_start sub_80F8544
|
||||
sub_80F8544: @ 80F8544
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80F80E4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1C
|
||||
beq _080F8564
|
||||
lsls r0, 4
|
||||
ldr r1, _080F8560 @ =gUnknown_843E9E8
|
||||
adds r0, r1
|
||||
b _080F8566
|
||||
.align 2, 0
|
||||
_080F8560: .4byte gUnknown_843E9E8
|
||||
_080F8564:
|
||||
movs r0, 0
|
||||
_080F8566:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F8544
|
||||
|
||||
thumb_func_start sub_80F856C
|
||||
sub_80F856C: @ 80F856C
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80F80E4
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0x1C
|
||||
bne _080F8582
|
||||
movs r0, 0
|
||||
b _080F85B6
|
||||
_080F8582:
|
||||
ldr r0, _080F85A0 @ =gUnknown_843E9E8
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
ldrh r2, [r1, 0x2]
|
||||
ldrb r0, [r1, 0x1]
|
||||
cmp r0, 0
|
||||
bne _080F85A4
|
||||
adds r0, r2, 0
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080F85B4
|
||||
b _080F85AC
|
||||
.align 2, 0
|
||||
_080F85A0: .4byte gUnknown_843E9E8
|
||||
_080F85A4:
|
||||
ldr r0, _080F85B0 @ =gUnknown_203ABEC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080F85B4
|
||||
_080F85AC:
|
||||
movs r0, 0x28
|
||||
b _080F85B6
|
||||
.align 2, 0
|
||||
_080F85B0: .4byte gUnknown_203ABEC
|
||||
_080F85B4:
|
||||
movs r0, 0x78
|
||||
_080F85B6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80F856C
|
||||
|
||||
thumb_func_start sub_80F85BC
|
||||
sub_80F85BC: @ 80F85BC
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r0, r4, 0
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080F85D8
|
||||
ldr r1, _080F85D4 @ =gUnknown_203ABEC
|
||||
movs r0, 0x1
|
||||
b _080F85DC
|
||||
.align 2, 0
|
||||
_080F85D4: .4byte gUnknown_203ABEC
|
||||
_080F85D8:
|
||||
ldr r1, _080F85EC @ =gUnknown_203ABEC
|
||||
movs r0, 0
|
||||
_080F85DC:
|
||||
strb r0, [r1]
|
||||
adds r0, r4, 0
|
||||
bl FlagSet
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F85EC: .4byte gUnknown_203ABEC
|
||||
thumb_func_end sub_80F85BC
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
@ -1589,7 +1589,7 @@ _080C0B44:
|
|||
lsrs r1, 16
|
||||
adds r0, r4, 0
|
||||
movs r2, 0
|
||||
bl sub_80C4D78
|
||||
bl GetMapName
|
||||
ldr r0, _080C0B94 @ =gUnknown_83F1A90
|
||||
str r0, [sp]
|
||||
movs r0, 0
|
||||
|
|
@ -9690,8 +9690,8 @@ _080C4D72:
|
|||
bx r1
|
||||
thumb_func_end sub_80C4D40
|
||||
|
||||
thumb_func_start sub_80C4D78
|
||||
sub_80C4D78: @ 80C4D78
|
||||
thumb_func_start GetMapName
|
||||
GetMapName: @ 80C4D78
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
lsls r1, 16
|
||||
|
|
@ -9759,7 +9759,7 @@ _080C4DF2:
|
|||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C4D78
|
||||
thumb_func_end GetMapName
|
||||
|
||||
thumb_func_start sub_80C4DF8
|
||||
sub_80C4DF8: @ 80C4DF8
|
||||
|
|
@ -9767,7 +9767,7 @@ sub_80C4DF8: @ 80C4DF8
|
|||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r2, 0
|
||||
bl sub_80C4D78
|
||||
bl GetMapName
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C4DF8
|
||||
|
|
|
|||
BIN
baserom.ips
|
|
@ -1,3 +1,5 @@
|
|||
#include "constants/region_map.h"
|
||||
#include "constants/flags.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
|
|
@ -382,17 +384,9 @@ gTMCaseMainWindowPalette:: @ 841F408
|
|||
.section .rodata.841F4B4
|
||||
.align 2
|
||||
gUnknown_841F4B4:: @ 841F4B4
|
||||
.incbin "baserom.gba", 0x41F4B4, 0x1F534
|
||||
|
||||
gUnknown_843E9E8:: @ 843E9E8
|
||||
.incbin "baserom.gba", 0x43E9E8, 0x1C0
|
||||
|
||||
gUnknown_843EBA8:: @ 843EBA8
|
||||
.incbin "baserom.gba", 0x43EBA8, 0x8
|
||||
|
||||
gUnknown_843EBB0:: @ 843EBB0
|
||||
.incbin "baserom.gba", 0x43EBB0, 0x4
|
||||
.incbin "baserom.gba", 0x41f4b4, 0x20
|
||||
|
||||
.section .rodata.843EBB4
|
||||
gUnknown_843EBB4:: @ 843EBB4
|
||||
.incbin "baserom.gba", 0x43EBB4, 0x18
|
||||
|
||||
|
|
|
|||
35
data/map_preview/altering_cave_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
139 205 123
|
||||
90 164 98
|
||||
213 205 172
|
||||
189 172 139
|
||||
156 205 164
|
||||
230 230 205
|
||||
148 213 106
|
||||
189 222 197
|
||||
148 131 90
|
||||
238 230 189
|
||||
213 246 255
|
||||
164 205 255
|
||||
205 230 255
|
||||
238 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/altering_cave_tilemap.bin
Normal file
BIN
data/map_preview/altering_cave_tiles.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
35
data/map_preview/berry_forest_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 90
|
||||
238 238 246
|
||||
197 197 98
|
||||
180 180 90
|
||||
106 115 24
|
||||
156 156 49
|
||||
197 164 90
|
||||
164 131 74
|
||||
131 106 65
|
||||
213 213 156
|
||||
222 238 172
|
||||
156 189 115
|
||||
131 156 82
|
||||
131 123 57
|
||||
246 246 246
|
||||
189 213 139
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/berry_forest_tilemap.bin
Normal file
BIN
data/map_preview/berry_forest_tiles.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
35
data/map_preview/cerulean_cave_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
49 57 106
|
||||
222 205 246
|
||||
189 164 205
|
||||
156 123 164
|
||||
238 230 255
|
||||
82 106 123
|
||||
123 156 172
|
||||
222 230 238
|
||||
189 197 205
|
||||
164 172 180
|
||||
139 172 148
|
||||
180 205 189
|
||||
115 123 131
|
||||
213 238 222
|
||||
49 57 74
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/cerulean_cave_tilemap.bin
Normal file
BIN
data/map_preview/cerulean_cave_tiles.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
35
data/map_preview/digletts_cave_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
49 57 74
|
||||
197 197 205
|
||||
189 180 172
|
||||
148 148 115
|
||||
222 238 246
|
||||
90 98 90
|
||||
106 148 106
|
||||
222 222 180
|
||||
189 189 148
|
||||
164 164 123
|
||||
156 197 123
|
||||
115 164 82
|
||||
106 106 98
|
||||
197 222 156
|
||||
74 74 65
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/digletts_cave_tilemap.bin
Normal file
BIN
data/map_preview/digletts_cave_tiles.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
35
data/map_preview/dotted_hole_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
238 246 246
|
||||
74 156 106
|
||||
115 197 115
|
||||
156 230 148
|
||||
180 189 197
|
||||
213 222 230
|
||||
230 238 246
|
||||
115 123 90
|
||||
156 164 123
|
||||
197 205 156
|
||||
213 222 189
|
||||
222 230 197
|
||||
213 238 255
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/dotted_hole_tilemap.bin
Normal file
BIN
data/map_preview/dotted_hole_tiles.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
35
data/map_preview/icefall_cave_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 106
|
||||
238 246 246
|
||||
82 139 115
|
||||
131 180 131
|
||||
172 213 164
|
||||
205 205 189
|
||||
222 222 205
|
||||
238 238 222
|
||||
115 115 115
|
||||
156 156 139
|
||||
180 180 156
|
||||
197 197 189
|
||||
213 213 205
|
||||
213 238 255
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/icefall_cave_tilemap.bin
Normal file
BIN
data/map_preview/icefall_cave_tiles.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
35
data/map_preview/kanto_safari_zone_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
0 0 0
|
||||
222 230 213
|
||||
222 213 148
|
||||
197 230 148
|
||||
213 238 164
|
||||
123 164 90
|
||||
230 246 246
|
||||
222 238 246
|
||||
213 222 255
|
||||
180 222 98
|
||||
205 180 115
|
||||
205 213 197
|
||||
180 156 106
|
||||
164 197 90
|
||||
222 238 197
|
||||
222 246 213
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
189 222 98
|
||||
172 205 90
|
||||
115 172 65
|
||||
222 213 148
|
||||
139 197 98
|
||||
205 180 115
|
||||
205 230 246
|
||||
180 156 106
|
||||
222 238 246
|
||||
189 213 255
|
||||
197 230 148
|
||||
BIN
data/map_preview/kanto_safari_zone_tilemap.bin
Normal file
BIN
data/map_preview/kanto_safari_zone_tiles.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
35
data/map_preview/kanto_victory_road_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
74 82 98
|
||||
222 238 246
|
||||
98 139 106
|
||||
131 172 98
|
||||
164 205 123
|
||||
180 189 197
|
||||
205 213 222
|
||||
222 230 238
|
||||
139 131 74
|
||||
172 172 98
|
||||
197 197 123
|
||||
213 205 148
|
||||
222 213 156
|
||||
213 230 246
|
||||
246 246 246
|
||||
0 0 0
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
131 172 98
|
||||
164 205 123
|
||||
139 131 74
|
||||
172 172 98
|
||||
197 197 123
|
||||
213 205 148
|
||||
222 213 156
|
||||
148 189 131
|
||||
205 213 222
|
||||
222 238 246
|
||||
98 139 106
|
||||
BIN
data/map_preview/kanto_victory_road_tilemap.bin
Normal file
BIN
data/map_preview/kanto_victory_road_tiles.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
35
data/map_preview/lost_cave_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
98 106 123
|
||||
123 131 148
|
||||
189 189 164
|
||||
164 156 131
|
||||
238 238 222
|
||||
213 213 197
|
||||
213 238 238
|
||||
189 213 213
|
||||
131 123 98
|
||||
213 213 180
|
||||
197 222 222
|
||||
172 189 230
|
||||
189 205 222
|
||||
230 230 213
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/lost_cave_tilemap.bin
Normal file
BIN
data/map_preview/lost_cave_tiles.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
35
data/map_preview/monean_chamber_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
74 82 98
|
||||
205 213 139
|
||||
156 164 82
|
||||
123 131 82
|
||||
213 189 164
|
||||
222 230 164
|
||||
115 189 106
|
||||
172 213 131
|
||||
172 148 123
|
||||
213 238 238
|
||||
230 205 180
|
||||
131 106 98
|
||||
180 189 123
|
||||
197 230 255
|
||||
230 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/monean_chamber_tilemap.bin
Normal file
BIN
data/map_preview/monean_chamber_tiles.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
35
data/map_preview/mt_ember_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
238 246 246
|
||||
222 246 255
|
||||
230 230 255
|
||||
156 230 148
|
||||
205 189 213
|
||||
222 205 230
|
||||
238 222 246
|
||||
131 106 106
|
||||
172 148 148
|
||||
197 172 172
|
||||
222 197 197
|
||||
238 213 213
|
||||
213 238 255
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/mt_ember_tilemap.bin
Normal file
BIN
data/map_preview/mt_ember_tiles.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
35
data/map_preview/mt_moon_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
74 82 98
|
||||
230 238 255
|
||||
65 131 90
|
||||
115 180 115
|
||||
156 213 148
|
||||
205 205 230
|
||||
230 222 255
|
||||
222 222 180
|
||||
115 106 90
|
||||
148 139 98
|
||||
172 164 115
|
||||
205 197 164
|
||||
205 197 164
|
||||
205 230 255
|
||||
238 230 213
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/mt_moon_tilemap.bin
Normal file
BIN
data/map_preview/mt_moon_tiles.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
35
data/map_preview/pokemon_mansion_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
106 115 131
|
||||
213 164 180
|
||||
180 131 148
|
||||
238 189 205
|
||||
230 238 213
|
||||
115 82 131
|
||||
172 180 172
|
||||
131 139 139
|
||||
205 213 205
|
||||
238 213 238
|
||||
238 238 205
|
||||
230 222 189
|
||||
246 238 164
|
||||
222 213 139
|
||||
246 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/pokemon_mansion_tilemap.bin
Normal file
BIN
data/map_preview/pokemon_mansion_tiles.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
35
data/map_preview/pokemon_tower_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
222 213 246
|
||||
213 230 213
|
||||
172 180 205
|
||||
205 197 156
|
||||
180 205 180
|
||||
148 164 148
|
||||
238 246 238
|
||||
238 230 189
|
||||
230 238 255
|
||||
148 156 180
|
||||
255 246 205
|
||||
172 164 123
|
||||
115 123 148
|
||||
197 205 230
|
||||
238 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/pokemon_tower_tilemap.bin
Normal file
BIN
data/map_preview/pokemon_tower_tiles.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
35
data/map_preview/power_plant_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
74 82 98
|
||||
255 246 205
|
||||
189 180 189
|
||||
189 189 222
|
||||
230 222 123
|
||||
222 205 205
|
||||
246 230 230
|
||||
139 156 189
|
||||
222 238 255
|
||||
106 123 156
|
||||
213 189 164
|
||||
164 156 164
|
||||
238 246 255
|
||||
255 238 238
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/power_plant_tilemap.bin
Normal file
BIN
data/map_preview/power_plant_tiles.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
35
data/map_preview/rock_tunnel_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
238 246 246
|
||||
74 156 106
|
||||
115 197 115
|
||||
156 230 148
|
||||
205 205 189
|
||||
222 222 205
|
||||
238 238 222
|
||||
123 123 90
|
||||
164 164 123
|
||||
197 197 148
|
||||
213 213 180
|
||||
230 230 197
|
||||
213 238 255
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/rock_tunnel_tilemap.bin
Normal file
BIN
data/map_preview/rock_tunnel_tiles.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
35
data/map_preview/rocket_hideout_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
98 106 123
|
||||
156 180 156
|
||||
222 213 172
|
||||
238 238 246
|
||||
246 238 197
|
||||
189 156 131
|
||||
222 189 164
|
||||
213 213 222
|
||||
222 238 222
|
||||
139 156 139
|
||||
197 222 197
|
||||
197 230 180
|
||||
131 139 156
|
||||
238 205 180
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/rocket_hideout_tilemap.bin
Normal file
BIN
data/map_preview/rocket_hideout_tiles.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
35
data/map_preview/rocket_warehouse_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
98 106 123
|
||||
139 180 172
|
||||
222 213 172
|
||||
238 238 246
|
||||
246 238 197
|
||||
189 156 131
|
||||
222 189 164
|
||||
213 213 222
|
||||
222 238 222
|
||||
139 156 139
|
||||
197 222 197
|
||||
197 230 180
|
||||
131 139 156
|
||||
238 205 180
|
||||
255 255 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/rocket_warehouse_tilemap.bin
Normal file
BIN
data/map_preview/rocket_warehouse_tiles.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
35
data/map_preview/seafoam_islands_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
65 74 90
|
||||
156 222 123
|
||||
106 180 98
|
||||
197 205 172
|
||||
172 172 139
|
||||
172 222 164
|
||||
222 230 205
|
||||
164 230 106
|
||||
205 238 197
|
||||
131 131 90
|
||||
238 230 189
|
||||
213 246 255
|
||||
164 205 255
|
||||
205 230 255
|
||||
238 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/seafoam_islands_tilemap.bin
Normal file
BIN
data/map_preview/seafoam_islands_tiles.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
35
data/map_preview/silph_co_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 0
|
||||
238 246 246
|
||||
213 238 246
|
||||
164 205 197
|
||||
131 197 123
|
||||
197 230 230
|
||||
139 180 172
|
||||
180 180 205
|
||||
131 131 164
|
||||
205 205 230
|
||||
172 222 172
|
||||
197 213 246
|
||||
90 164 90
|
||||
123 172 164
|
||||
205 238 246
|
||||
246 246 255
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/silph_co_tilemap.bin
Normal file
BIN
data/map_preview/silph_co_tiles.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
35
data/map_preview/viridian_forest_pal.pal
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
32
|
||||
255 255 90
|
||||
222 246 246
|
||||
156 230 148
|
||||
115 197 115
|
||||
41 106 106
|
||||
90 172 123
|
||||
197 189 106
|
||||
148 139 90
|
||||
106 98 74
|
||||
205 246 197
|
||||
180 213 230
|
||||
123 189 205
|
||||
90 156 164
|
||||
65 131 139
|
||||
246 246 255
|
||||
32 41 41
|
||||
255 255 90
|
||||
246 246 255
|
||||
74 98 123
|
||||
213 213 213
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
data/map_preview/viridian_forest_tilemap.bin
Normal file
BIN
data/map_preview/viridian_forest_tiles.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
14
include/bg.h
|
|
@ -25,6 +25,20 @@ enum
|
|||
BG_CTRL_ATTR_WRAPAROUND = 8,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX = 2,
|
||||
BG_ATTR_SCREENSIZE = 3,
|
||||
BG_ATTR_PALETTEMODE = 4,
|
||||
BG_ATTR_MOSAIC = 5,
|
||||
BG_ATTR_WRAPAROUND = 6,
|
||||
BG_ATTR_PRIORITY = 7,
|
||||
BG_ATTR_TEXTORAFFINEMODE = 8,
|
||||
BG_ATTR_BGTYPE = 9,
|
||||
BG_ATTR_BASETILE = 10
|
||||
};
|
||||
|
||||
enum AdjustBgMosaicMode
|
||||
{
|
||||
BG_MOSAIC_SET,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,51 @@
|
|||
#ifndef GUARD_MAP_PREVIEW_SCREEN_H
|
||||
#define GUARD_MAP_PREVIEW_SCREEN_H
|
||||
|
||||
enum MapPreviewScreenId
|
||||
{
|
||||
MPS_VIRIDIAN_FOREST = 0u,
|
||||
MPS_MT_MOON,
|
||||
MPS_DIGLETTS_CAVE,
|
||||
MPS_ROCK_TUNNEL,
|
||||
MPS_POKEMON_TOWER,
|
||||
MPS_SAFARI_ZONE,
|
||||
MPS_SEAFOAM_ISLANDS,
|
||||
MPS_POKEMON_MANSION,
|
||||
MPS_ROCKET_HIDEOUT,
|
||||
MPS_SILPH_CO,
|
||||
MPS_VICTORY_ROAD,
|
||||
MPS_CERULEAN_CAVE,
|
||||
MPS_POWER_PLANT,
|
||||
MPS_MT_EMBER,
|
||||
MPS_ROCKET_WAREHOUSE,
|
||||
MPS_MONEAN_CHAMBER,
|
||||
MPS_DOTTED_HOLE,
|
||||
MPS_BERRY_FOREST,
|
||||
MPS_ICEFALL_CAVE,
|
||||
MPS_LOST_CAVE,
|
||||
MPS_ALTERING_CAVE,
|
||||
MPS_PATTERN_BUSH,
|
||||
MPS_LIPTOO_CHAMBER,
|
||||
MPS_WEEPTH_CHAMBER,
|
||||
MPS_TDILFORD_CHAMBER,
|
||||
MPS_SCUFIB_CHAMBER,
|
||||
MPS_RIXY_CHAMBER,
|
||||
MPS_VIAPOIS_CHAMBER,
|
||||
MPS_COUNT
|
||||
};
|
||||
|
||||
struct MapPreviewScreen
|
||||
{
|
||||
u8 mapsec;
|
||||
bool8 forceFirstTime;
|
||||
u16 flagId;
|
||||
const void * tilesptr;
|
||||
const void * tilemapptr;
|
||||
const void * palptr;
|
||||
};
|
||||
|
||||
u16 sub_80F8318(u8 id);
|
||||
void sub_80F85BC(u16 a0);
|
||||
u16 sub_80F856C(u8 id);
|
||||
|
||||
#endif //GUARD_MAP_PREVIEW_SCREEN_H
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ SECTIONS {
|
|||
src/new_menu_helpers.o(.text);
|
||||
asm/box_party_pokemon_dropdown.o(.text);
|
||||
asm/save_menu_util.o(.text);
|
||||
asm/map_preview_screen.o(.text);
|
||||
src/map_preview_screen.o(.text);
|
||||
asm/link_rfu_2.o(.text);
|
||||
asm/link_rfu.o(.text);
|
||||
asm/pokedex_screen.o(.text);
|
||||
|
|
@ -429,6 +429,8 @@ SECTIONS {
|
|||
data/data_83FECCC.o(.rodata.841EE44);
|
||||
src/new_menu_helpers.o(.rodata);
|
||||
data/data_83FECCC.o(.rodata.841F4B4);
|
||||
src/map_preview_screen.o(.rodata);
|
||||
data/data_83FECCC.o(.rodata.843EBB4);
|
||||
src/pokedex.o(.rodata);
|
||||
data/data_83FECCC.o(.rodata.8451EBC);
|
||||
src/list_menu.o(.rodata);
|
||||
|
|
|
|||
615
src/map_preview_screen.c
Normal file
|
|
@ -0,0 +1,615 @@
|
|||
#include "global.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
#include "palette.h"
|
||||
#include "malloc.h"
|
||||
#include "quest_log.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "window.h"
|
||||
#include "region_map.h"
|
||||
#include "menu.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "field_weather.h"
|
||||
#include "script.h"
|
||||
#include "overworld.h"
|
||||
#include "event_data.h"
|
||||
#include "map_preview_screen.h"
|
||||
#include "constants/region_map.h"
|
||||
|
||||
static EWRAM_DATA bool8 gUnknown_203ABEC = FALSE;
|
||||
static EWRAM_DATA bool8 gUnknown_203ABED = FALSE;
|
||||
|
||||
static void sub_80F83D0(u8 taskId);
|
||||
|
||||
static const u8 gViridianForestMapPreviewPalette[] = INCBIN_U8("data/map_preview/viridian_forest_pal.gbapal");
|
||||
static const u8 gViridianForestMapPreviewTiles[] = INCBIN_U8("data/map_preview/viridian_forest_tiles.4bpp.lz");
|
||||
static const u8 gViridianForestMapPreviewTilemap[] = INCBIN_U8("data/map_preview/viridian_forest_tilemap.bin");
|
||||
static const u8 gRockTunnelMapPreviewPalette[] = INCBIN_U8("data/map_preview/rock_tunnel_pal.gbapal");
|
||||
static const u8 gRockTunnelMapPreviewTiles[] = INCBIN_U8("data/map_preview/rock_tunnel_tiles.4bpp.lz");
|
||||
static const u8 gRockTunnelMapPreviewTilemap[] = INCBIN_U8("data/map_preview/rock_tunnel_tilemap.bin");
|
||||
static const u8 gRocketHideoutMapPreviewPalette[] = INCBIN_U8("data/map_preview/rocket_hideout_pal.gbapal");
|
||||
static const u8 gRocketHideoutMapPreviewTiles[] = INCBIN_U8("data/map_preview/rocket_hideout_tiles.4bpp.lz");
|
||||
static const u8 gRocketHideoutMapPreviewTilemap[] = INCBIN_U8("data/map_preview/rocket_hideout_tilemap.bin");
|
||||
static const u8 gPowerPlantMapPreviewPalette[] = INCBIN_U8("data/map_preview/power_plant_pal.gbapal");
|
||||
static const u8 gPowerPlantMapPreviewTiles[] = INCBIN_U8("data/map_preview/power_plant_tiles.4bpp.lz");
|
||||
static const u8 gPowerPlantMapPreviewTilemap[] = INCBIN_U8("data/map_preview/power_plant_tilemap.bin");
|
||||
static const u8 gPokemonMansionMapPreviewPalette[] = INCBIN_U8("data/map_preview/pokemon_mansion_pal.gbapal");
|
||||
static const u8 gPokemonMansionMapPreviewTiles[] = INCBIN_U8("data/map_preview/pokemon_mansion_tiles.4bpp.lz");
|
||||
static const u8 gPokemonMansionMapPreviewTilemap[] = INCBIN_U8("data/map_preview/pokemon_mansion_tilemap.bin");
|
||||
static const u8 gPokemonTowerMapPreviewPalette[] = INCBIN_U8("data/map_preview/pokemon_tower_pal.gbapal");
|
||||
static const u8 gPokemonTowerMapPreviewTiles[] = INCBIN_U8("data/map_preview/pokemon_tower_tiles.4bpp.lz");
|
||||
static const u8 gPokemonTowerMapPreviewTilemap[] = INCBIN_U8("data/map_preview/pokemon_tower_tilemap.bin");
|
||||
static const u8 gSilphCoMapPreviewPalette[] = INCBIN_U8("data/map_preview/silph_co_pal.gbapal");
|
||||
static const u8 gSilphCoMapPreviewTiles[] = INCBIN_U8("data/map_preview/silph_co_tiles.4bpp.lz");
|
||||
static const u8 gSilphCoMapPreviewTilemap[] = INCBIN_U8("data/map_preview/silph_co_tilemap.bin");
|
||||
static const u8 gMtMoonMapPreviewPalette[] = INCBIN_U8("data/map_preview/mt_moon_pal.gbapal");
|
||||
static const u8 gMtMoonMapPreviewTiles[] = INCBIN_U8("data/map_preview/mt_moon_tiles.4bpp.lz");
|
||||
static const u8 gMtMoonMapPreviewTilemap[] = INCBIN_U8("data/map_preview/mt_moon_tilemap.bin");
|
||||
static const u8 gSeafoamIslandsMapPreviewPalette[] = INCBIN_U8("data/map_preview/seafoam_islands_pal.gbapal");
|
||||
static const u8 gSeafoamIslandsMapPreviewTiles[] = INCBIN_U8("data/map_preview/seafoam_islands_tiles.4bpp.lz");
|
||||
static const u8 gSeafoamIslandsMapPreviewTilemap[] = INCBIN_U8("data/map_preview/seafoam_islands_tilemap.bin");
|
||||
static const u8 gRocketWarehouseMapPreviewPalette[] = INCBIN_U8("data/map_preview/rocket_warehouse_pal.gbapal");
|
||||
static const u8 gRocketWarehouseMapPreviewTiles[] = INCBIN_U8("data/map_preview/rocket_warehouse_tiles.4bpp.lz");
|
||||
static const u8 gRocketWarehouseMapPreviewTilemap[] = INCBIN_U8("data/map_preview/rocket_warehouse_tilemap.bin");
|
||||
static const u8 gKantoVictoryRoadMapPreviewPalette[] = INCBIN_U8("data/map_preview/kanto_victory_road_pal.gbapal");
|
||||
static const u8 gKantoVictoryRoadMapPreviewTiles[] = INCBIN_U8("data/map_preview/kanto_victory_road_tiles.4bpp.lz");
|
||||
static const u8 gKantoVictoryRoadMapPreviewTilemap[] = INCBIN_U8("data/map_preview/kanto_victory_road_tilemap.bin");
|
||||
static const u8 gMtEmberMapPreviewPalette[] = INCBIN_U8("data/map_preview/mt_ember_pal.gbapal");
|
||||
static const u8 gMtEmberMapPreviewTiles[] = INCBIN_U8("data/map_preview/mt_ember_tiles.4bpp.lz");
|
||||
static const u8 gMtEmberMapPreviewTilemap[] = INCBIN_U8("data/map_preview/mt_ember_tilemap.bin");
|
||||
static const u8 gKantoSafariZoneMapPreviewPalette[] = INCBIN_U8("data/map_preview/kanto_safari_zone_pal.gbapal");
|
||||
static const u8 gKantoSafariZoneMapPreviewTiles[] = INCBIN_U8("data/map_preview/kanto_safari_zone_tiles.4bpp.lz");
|
||||
static const u8 gKantoSafariZoneMapPreviewTilemap[] = INCBIN_U8("data/map_preview/kanto_safari_zone_tilemap.bin");
|
||||
static const u8 gMoneanChamberMapPreviewPalette[] = INCBIN_U8("data/map_preview/monean_chamber_pal.gbapal");
|
||||
static const u8 gMoneanChamberMapPreviewTiles[] = INCBIN_U8("data/map_preview/monean_chamber_tiles.4bpp.lz");
|
||||
static const u8 gMoneanChamberMapPreviewTilemap[] = INCBIN_U8("data/map_preview/monean_chamber_tilemap.bin");
|
||||
static const u8 gDottedHoleMapPreviewPalette[] = INCBIN_U8("data/map_preview/dotted_hole_pal.gbapal");
|
||||
static const u8 gDottedHoleMapPreviewTiles[] = INCBIN_U8("data/map_preview/dotted_hole_tiles.4bpp.lz");
|
||||
static const u8 gDottedHoleMapPreviewTilemap[] = INCBIN_U8("data/map_preview/dotted_hole_tilemap.bin");
|
||||
static const u8 gCeruleanCaveMapPreviewPalette[] = INCBIN_U8("data/map_preview/cerulean_cave_pal.gbapal");
|
||||
static const u8 gCeruleanCaveMapPreviewTiles[] = INCBIN_U8("data/map_preview/cerulean_cave_tiles.4bpp.lz");
|
||||
static const u8 gCeruleanCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/cerulean_cave_tilemap.bin");
|
||||
static const u8 gDiglettsCaveMapPreviewPalette[] = INCBIN_U8("data/map_preview/digletts_cave_pal.gbapal");
|
||||
static const u8 gDiglettsCaveMapPreviewTiles[] = INCBIN_U8("data/map_preview/digletts_cave_tiles.4bpp.lz");
|
||||
static const u8 gDiglettsCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/digletts_cave_tilemap.bin");
|
||||
static const u8 gLostCaveMapPreviewPalette[] = INCBIN_U8("data/map_preview/lost_cave_pal.gbapal");
|
||||
static const u8 gLostCaveMapPreviewTiles[] = INCBIN_U8("data/map_preview/lost_cave_tiles.4bpp.lz");
|
||||
static const u8 gLostCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/lost_cave_tilemap.bin");
|
||||
static const u8 gBerryForestMapPreviewPalette[] = INCBIN_U8("data/map_preview/berry_forest_pal.gbapal");
|
||||
static const u8 gBerryForestMapPreviewTiles[] = INCBIN_U8("data/map_preview/berry_forest_tiles.4bpp.lz");
|
||||
static const u8 gBerryForestMapPreviewTilemap[] = INCBIN_U8("data/map_preview/berry_forest_tilemap.bin");
|
||||
static const u8 gIcefallCaveMapPreviewPalette[] = INCBIN_U8("data/map_preview/icefall_cave_pal.gbapal");
|
||||
static const u8 gIcefallCaveMapPreviewTiles[] = INCBIN_U8("data/map_preview/icefall_cave_tiles.4bpp.lz");
|
||||
static const u8 gIcefallCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/icefall_cave_tilemap.bin");
|
||||
static const u8 gAlteringCaveMapPreviewPalette[] = INCBIN_U8("data/map_preview/altering_cave_pal.gbapal");
|
||||
static const u8 gAlteringCaveMapPreviewTiles[] = INCBIN_U8("data/map_preview/altering_cave_tiles.4bpp.lz");
|
||||
static const u8 gAlteringCaveMapPreviewTilemap[] = INCBIN_U8("data/map_preview/altering_cave_tilemap.bin");
|
||||
|
||||
static const struct MapPreviewScreen sMapPreviewScreenData[MPS_COUNT] = {
|
||||
[MPS_VIRIDIAN_FOREST] = {
|
||||
.mapsec = MAPSEC_VIRIDIAN_FOREST,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_VIRIDIAN_FOREST,
|
||||
.tilesptr = gViridianForestMapPreviewTiles,
|
||||
.tilemapptr = gViridianForestMapPreviewTilemap,
|
||||
.palptr = gViridianForestMapPreviewPalette
|
||||
},
|
||||
[MPS_MT_MOON] = {
|
||||
.mapsec = MAPSEC_MT_MOON,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_MT_MOON_1F,
|
||||
.tilesptr = gMtMoonMapPreviewTiles,
|
||||
.tilemapptr = gMtMoonMapPreviewTilemap,
|
||||
.palptr = gMtMoonMapPreviewPalette
|
||||
},
|
||||
[MPS_DIGLETTS_CAVE] = {
|
||||
.mapsec = MAPSEC_DIGLETTS_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F,
|
||||
.tilesptr = gDiglettsCaveMapPreviewTiles,
|
||||
.tilemapptr = gDiglettsCaveMapPreviewTilemap,
|
||||
.palptr = gDiglettsCaveMapPreviewPalette
|
||||
},
|
||||
[MPS_ROCK_TUNNEL] = {
|
||||
.mapsec = MAPSEC_ROCK_TUNNEL,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_ROCK_TUNNEL_1F,
|
||||
.tilesptr = gRockTunnelMapPreviewTiles,
|
||||
.tilemapptr = gRockTunnelMapPreviewTilemap,
|
||||
.palptr = gRockTunnelMapPreviewPalette
|
||||
},
|
||||
[MPS_POKEMON_TOWER] = {
|
||||
.mapsec = MAPSEC_POKEMON_TOWER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_POKEMON_TOWER_1F,
|
||||
.tilesptr = gPokemonTowerMapPreviewTiles,
|
||||
.tilemapptr = gPokemonTowerMapPreviewTilemap,
|
||||
.palptr = gPokemonTowerMapPreviewPalette
|
||||
},
|
||||
[MPS_SAFARI_ZONE] = {
|
||||
.mapsec = MAPSEC_KANTO_SAFARI_ZONE,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_SAFARI_ZONE_CENTER,
|
||||
.tilesptr = gKantoSafariZoneMapPreviewTiles,
|
||||
.tilemapptr = gKantoSafariZoneMapPreviewTilemap,
|
||||
.palptr = gKantoSafariZoneMapPreviewPalette
|
||||
},
|
||||
[MPS_SEAFOAM_ISLANDS] = {
|
||||
.mapsec = MAPSEC_SEAFOAM_ISLANDS,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F,
|
||||
.tilesptr = gSeafoamIslandsMapPreviewTiles,
|
||||
.tilemapptr = gSeafoamIslandsMapPreviewTilemap,
|
||||
.palptr = gSeafoamIslandsMapPreviewPalette
|
||||
},
|
||||
[MPS_POKEMON_MANSION] = {
|
||||
.mapsec = MAPSEC_POKEMON_MANSION,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_POKEMON_MANSION_1F,
|
||||
.tilesptr = gPokemonMansionMapPreviewTiles,
|
||||
.tilemapptr = gPokemonMansionMapPreviewTilemap,
|
||||
.palptr = gPokemonMansionMapPreviewPalette
|
||||
},
|
||||
[MPS_ROCKET_HIDEOUT] = {
|
||||
.mapsec = MAPSEC_ROCKET_HIDEOUT,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F,
|
||||
.tilesptr = gRocketHideoutMapPreviewTiles,
|
||||
.tilemapptr = gRocketHideoutMapPreviewTilemap,
|
||||
.palptr = gRocketHideoutMapPreviewPalette
|
||||
},
|
||||
[MPS_SILPH_CO] = {
|
||||
.mapsec = MAPSEC_SILPH_CO,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SILPH_CO_1F,
|
||||
.tilesptr = gSilphCoMapPreviewTiles,
|
||||
.tilemapptr = gSilphCoMapPreviewTilemap,
|
||||
.palptr = gSilphCoMapPreviewPalette
|
||||
},
|
||||
[MPS_VICTORY_ROAD] = {
|
||||
.mapsec = MAPSEC_KANTO_VICTORY_ROAD,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_VICTORY_ROAD_1F,
|
||||
.tilesptr = gKantoVictoryRoadMapPreviewTiles,
|
||||
.tilemapptr = gKantoVictoryRoadMapPreviewTilemap,
|
||||
.palptr = gKantoVictoryRoadMapPreviewPalette
|
||||
},
|
||||
[MPS_CERULEAN_CAVE] = {
|
||||
.mapsec = MAPSEC_CERULEAN_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_CERULEAN_CAVE_1F,
|
||||
.tilesptr = gCeruleanCaveMapPreviewTiles,
|
||||
.tilemapptr = gCeruleanCaveMapPreviewTilemap,
|
||||
.palptr = gCeruleanCaveMapPreviewPalette
|
||||
},
|
||||
[MPS_POWER_PLANT] = {
|
||||
.mapsec = MAPSEC_POWER_PLANT,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_POWER_PLANT,
|
||||
.tilesptr = gPowerPlantMapPreviewTiles,
|
||||
.tilemapptr = gPowerPlantMapPreviewTilemap,
|
||||
.palptr = gPowerPlantMapPreviewPalette
|
||||
},
|
||||
[MPS_MT_EMBER] = {
|
||||
.mapsec = MAPSEC_MT_EMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_MT_EMBER_EXTERIOR,
|
||||
.tilesptr = gMtEmberMapPreviewTiles,
|
||||
.tilemapptr = gMtEmberMapPreviewTilemap,
|
||||
.palptr = gMtEmberMapPreviewPalette
|
||||
},
|
||||
[MPS_ROCKET_WAREHOUSE] = {
|
||||
.mapsec = MAPSEC_ROCKET_WAREHOUSE,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST,
|
||||
.tilesptr = gRocketWarehouseMapPreviewTiles,
|
||||
.tilemapptr = gRocketWarehouseMapPreviewTilemap,
|
||||
.palptr = gRocketWarehouseMapPreviewPalette
|
||||
},
|
||||
[MPS_MONEAN_CHAMBER] = {
|
||||
.mapsec = MAPSEC_MONEAN_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_DOTTED_HOLE] = {
|
||||
.mapsec = MAPSEC_DOTTED_HOLE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F,
|
||||
.tilesptr = gDottedHoleMapPreviewTiles,
|
||||
.tilemapptr = gDottedHoleMapPreviewTilemap,
|
||||
.palptr = gDottedHoleMapPreviewPalette
|
||||
},
|
||||
[MPS_BERRY_FOREST] = {
|
||||
.mapsec = MAPSEC_BERRY_FOREST,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST,
|
||||
.tilesptr = gBerryForestMapPreviewTiles,
|
||||
.tilemapptr = gBerryForestMapPreviewTilemap,
|
||||
.palptr = gBerryForestMapPreviewPalette
|
||||
},
|
||||
[MPS_ICEFALL_CAVE] = {
|
||||
.mapsec = MAPSEC_ICEFALL_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE,
|
||||
.tilesptr = gIcefallCaveMapPreviewTiles,
|
||||
.tilemapptr = gIcefallCaveMapPreviewTilemap,
|
||||
.palptr = gIcefallCaveMapPreviewPalette
|
||||
},
|
||||
[MPS_LOST_CAVE] = {
|
||||
.mapsec = MAPSEC_LOST_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE,
|
||||
.tilesptr = gLostCaveMapPreviewTiles,
|
||||
.tilemapptr = gLostCaveMapPreviewTilemap,
|
||||
.palptr = gLostCaveMapPreviewPalette
|
||||
},
|
||||
[MPS_ALTERING_CAVE] = {
|
||||
.mapsec = MAPSEC_ALTERING_CAVE,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE,
|
||||
.tilesptr = gAlteringCaveMapPreviewTiles,
|
||||
.tilemapptr = gAlteringCaveMapPreviewTilemap,
|
||||
.palptr = gAlteringCaveMapPreviewPalette
|
||||
},
|
||||
[MPS_PATTERN_BUSH] = {
|
||||
.mapsec = MAPSEC_PATTERN_BUSH,
|
||||
.forceFirstTime = TRUE,
|
||||
.flagId = FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH,
|
||||
.tilesptr = gViridianForestMapPreviewTiles,
|
||||
.tilemapptr = gViridianForestMapPreviewTilemap,
|
||||
.palptr = gViridianForestMapPreviewPalette
|
||||
},
|
||||
[MPS_LIPTOO_CHAMBER] = {
|
||||
.mapsec = MAPSEC_LIPTOO_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_WEEPTH_CHAMBER] = {
|
||||
.mapsec = MAPSEC_WEEPTH_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_TDILFORD_CHAMBER] = {
|
||||
.mapsec = MAPSEC_DILFORD_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_SCUFIB_CHAMBER] = {
|
||||
.mapsec = MAPSEC_SCUFIB_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_RIXY_CHAMBER] = {
|
||||
.mapsec = MAPSEC_RIXY_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
},
|
||||
[MPS_VIAPOIS_CHAMBER] = {
|
||||
.mapsec = MAPSEC_VIAPOIS_CHAMBER,
|
||||
.forceFirstTime = FALSE,
|
||||
.flagId = FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER,
|
||||
.tilesptr = gMoneanChamberMapPreviewTiles,
|
||||
.tilemapptr = gMoneanChamberMapPreviewTilemap,
|
||||
.palptr = gMoneanChamberMapPreviewPalette
|
||||
}
|
||||
};
|
||||
|
||||
static const struct WindowTemplate sMapNameWindow = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 0,
|
||||
.tilemapTop = 0,
|
||||
.width = 13,
|
||||
.height = 2,
|
||||
.paletteNum = 14,
|
||||
.baseBlock = 0x1C2
|
||||
};
|
||||
|
||||
static const struct BgTemplate sMapPreviewBgTemplate[1] = {
|
||||
{
|
||||
.mapBaseIndex = 31
|
||||
}
|
||||
};
|
||||
|
||||
static u8 sub_80F80E4(u8 mapsec)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MPS_COUNT; i++)
|
||||
{
|
||||
if (sMapPreviewScreenData[i].mapsec == mapsec)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return MPS_COUNT;
|
||||
}
|
||||
|
||||
bool8 sub_80F8110(u8 mapsec, u8 forceFirstTime)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
if (idx != MPS_COUNT)
|
||||
{
|
||||
if (forceFirstTime == 2)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return sMapPreviewScreenData[idx].forceFirstTime == forceFirstTime ? TRUE : FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80F8154(u8 mapsec, u8 forceFirstTime)
|
||||
{
|
||||
if (gUnknown_203ADFA == 2)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return sub_80F8110(mapsec, forceFirstTime);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F8180(void)
|
||||
{
|
||||
InitBgsFromTemplates(0, sMapPreviewBgTemplate, NELEMS(sMapPreviewBgTemplate));
|
||||
ShowBg(0);
|
||||
}
|
||||
|
||||
void sub_80F819C(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
if (idx != MPS_COUNT)
|
||||
{
|
||||
ResetTempTileDataBuffers();
|
||||
LoadPalette(sMapPreviewScreenData[idx].palptr, 0xD0, 0x60);
|
||||
DecompressAndCopyTileDataToVram(0, sMapPreviewScreenData[idx].tilesptr, 0, 0, 0);
|
||||
if (GetBgTilemapBuffer(0) == NULL)
|
||||
{
|
||||
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
|
||||
gUnknown_203ABED = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203ABED = FALSE;
|
||||
}
|
||||
CopyToBgTilemapBuffer(0, sMapPreviewScreenData[idx].tilemapptr, 0, 0x000);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F8234(s32 windowId)
|
||||
{
|
||||
RemoveWindow(windowId);
|
||||
if (gUnknown_203ABED)
|
||||
{
|
||||
Free(GetBgTilemapBuffer(0));
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_80F8258(void)
|
||||
{
|
||||
return FreeTempTileDataBuffersIfPossible();
|
||||
}
|
||||
|
||||
void sub_80F8268(u8 mapsec)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
taskId = CreateTask(sub_80F83D0, 0);
|
||||
gTasks[taskId].data[2] = GetBgAttribute(0, BG_ATTR_PRIORITY);
|
||||
gTasks[taskId].data[4] = GetGpuReg(REG_OFFSET_BLDCNT);
|
||||
gTasks[taskId].data[5] = GetGpuReg(REG_OFFSET_BLDALPHA);
|
||||
gTasks[taskId].data[3] = GetGpuReg(REG_OFFSET_DISPCNT);
|
||||
gTasks[taskId].data[6] = GetGpuReg(REG_OFFSET_WININ);
|
||||
gTasks[taskId].data[7] = GetGpuReg(REG_OFFSET_WINOUT);
|
||||
gTasks[taskId].data[10] = sub_80F856C(mapsec);
|
||||
gTasks[taskId].data[8] = 16;
|
||||
gTasks[taskId].data[9] = 0;
|
||||
SetBgAttribute(0, BG_ATTR_PRIORITY, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
|
||||
SetGpuRegBits(REG_OFFSET_WININ, 0x2020);
|
||||
SetGpuRegBits(REG_OFFSET_WINOUT, 0x0020);
|
||||
gTasks[taskId].data[11] = sub_80F8318(mapsec);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
u16 sub_80F8318(u8 mapsec)
|
||||
{
|
||||
u16 windowId;
|
||||
u32 xctr;
|
||||
struct TextColor color[0];
|
||||
|
||||
windowId = AddWindow(&sMapNameWindow);
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||
PutWindowTilemap(windowId);
|
||||
color->fgColor = 1; // Access violation
|
||||
color->bgColor = 4; // Access violation
|
||||
color->shadowColor = 3; // Access violation
|
||||
GetMapName(gStringVar4, mapsec, 0);
|
||||
xctr = 104 - GetStringWidth(2, gStringVar4, 0);
|
||||
AddTextPrinterParameterized4(windowId, 2, xctr / 2, 2, 0, 0, color/* Access violation */, -1, gStringVar4);
|
||||
return windowId;
|
||||
}
|
||||
|
||||
bool8 sub_80F83B0(void)
|
||||
{
|
||||
if (FuncIsActiveTask(sub_80F83D0) == TRUE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80F83D0(u8 taskId)
|
||||
{
|
||||
s16 * data;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
if (!sub_80F8258() && !IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
CopyWindowToVram(data[11], 3);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_807DC00();
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (sub_807AA70())
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
data[1]++;
|
||||
if (data[1] > data[10])
|
||||
{
|
||||
data[1] = 0;
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
data[9]++;
|
||||
if (data[9] > 16)
|
||||
{
|
||||
data[9] = 16;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
data[8]--;
|
||||
if (data[8] < 0)
|
||||
{
|
||||
data[8] = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
data[1] = (data[1] + 1) % 3;
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(data[8], data[9]));
|
||||
if (data[8] == 0 && data[9] == 16)
|
||||
{
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
data[0]++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
sub_80F8234(data[11]);
|
||||
SetBgAttribute(0, BG_ATTR_PRIORITY, data[2]);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, data[3]);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, data[4]);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, data[5]);
|
||||
SetGpuReg(REG_OFFSET_WININ, data[6]);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, data[7]);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const struct MapPreviewScreen * sub_80F8544(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
if (idx == MPS_COUNT)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
return &sMapPreviewScreenData[idx];
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_80F856C(u8 mapsec)
|
||||
{
|
||||
u8 idx;
|
||||
u16 flagId;
|
||||
|
||||
idx = sub_80F80E4(mapsec);
|
||||
if (idx == MPS_COUNT)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
flagId = sMapPreviewScreenData[idx].flagId;
|
||||
if (!sMapPreviewScreenData[idx].forceFirstTime)
|
||||
{
|
||||
if (!FlagGet(flagId))
|
||||
{
|
||||
return 120;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gUnknown_203ABEC)
|
||||
{
|
||||
return 120;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80F85BC(u16 flagId)
|
||||
{
|
||||
if (!FlagGet(flagId))
|
||||
{
|
||||
gUnknown_203ABEC = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203ABEC = FALSE;
|
||||
}
|
||||
FlagSet(flagId);
|
||||
}
|
||||
|
|
@ -1124,12 +1124,10 @@ gUnknown_203ABE4: @ 203ABE4
|
|||
gUnknown_203ABE8: @ 203ABE8
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203ABEC: @ 203ABEC
|
||||
.space 0x1
|
||||
|
||||
gUnknown_203ABED: @ 203ABED
|
||||
.space 0x3
|
||||
.align 2
|
||||
.include "src/map_preview_screen.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_203ABF0: @ 203ABF0
|
||||
.space 0x18
|
||||
|
||||
|
|
|
|||