Merge pull request #94 from PikalaxALT/map_preview_screen

Decompile map_preview_screen
This commit is contained in:
PikalaxALT 2019-08-26 11:52:43 -04:00 committed by GitHub
commit 634fe80e9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
74 changed files with 1430 additions and 679 deletions

View File

@ -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:

View File

@ -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]

View File

@ -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.

View File

@ -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

Binary file not shown.

View File

@ -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

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -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,

View File

@ -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

View File

@ -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
View 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);
}

View File

@ -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