summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-27 16:05:07 -0400
committerhuderlem <huderlem@gmail.com>2019-07-02 19:29:49 -0500
commit8a5fe8781a3c6be1530f28ca953d4bd212eaf00e (patch)
tree0c69344a24f0b1a320e90fe74183d50d183692b7
parenta4370455268b24bf92e7955fb5ed975edb955e42 (diff)
Finish roulette data
-rw-r--r--data/roulette.s406
-rw-r--r--include/sprite.h1
-rw-r--r--ld_script.txt1
-rw-r--r--src/roulette.c8
-rw-r--r--src/roulette_gfx.c482
5 files changed, 418 insertions, 480 deletions
diff --git a/data/roulette.s b/data/roulette.s
deleted file mode 100644
index 6898a5b16..000000000
--- a/data/roulette.s
+++ /dev/null
@@ -1,406 +0,0 @@
- .include "include/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_83FA1FC:: @ 83FA1FC
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA204:: @ 83FA204
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA20C:: @ 83FA20C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA214:: @ 83FA214
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gUnknown_083FA21C:: @ 83FA21C
- obj_tiles gRouletteCreditTiles, 0x400, 7
- obj_tiles gRouletteNumbersTiles, 0x280, 8
- obj_tiles gRouletteMultiplierTiles, 0x500, 9
- obj_tiles RouletteBallCounterTiles, 0x140, 10
- obj_tiles RouletteCursorTiles, 0x200, 11
- null_obj_tiles
-
- .align 2
-gSpriteAnim_83FA24C:: @ 83FA24C
- obj_image_anim_frame 0, 0 @ ANIMCMD_FRAME(0, 0),
- obj_image_anim_frame 2, 0 @ ANIMCMD_FRAME(2, 0),
- obj_image_anim_frame 4, 0 @ ANIMCMD_FRAME(4, 0),
- obj_image_anim_frame 6, 0 @ ANIMCMD_FRAME(6, 0),
- obj_image_anim_frame 8, 0 @ ANIMCMD_FRAME(8, 0),
- obj_image_anim_frame 10, 0 @ ANIMCMD_FRAME(10, 0),
- obj_image_anim_frame 12, 0 @ ANIMCMD_FRAME(12, 0),
- obj_image_anim_frame 14, 0 @ ANIMCMD_FRAME(14, 0),
- obj_image_anim_frame 16, 0 @ ANIMCMD_FRAME(16, 0),
- obj_image_anim_frame 18, 0 @ ANIMCMD_FRAME(18, 0),
-
- .align 2
-gSpriteAnimTable_83FA274:: @ 83FA274
- .4byte gSpriteAnim_83FA24C
-
- .align 2
-gSpriteAnim_83FA278:: @ 83FA278
- obj_image_anim_frame 0, 0 @ ANIMCMD_FRAME(0, 0),
- obj_image_anim_frame 8, 0 @ ANIMCMD_FRAME(8, 0),
- obj_image_anim_frame 16, 0 @ ANIMCMD_FRAME(16, 0),
- obj_image_anim_frame 24, 0 @ ANIMCMD_FRAME(24, 0),
- obj_image_anim_frame 32, 0 @ ANIMCMD_FRAME(32, 0),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnimTable_83FA290:: @ 83FA290
- .4byte gSpriteAnim_83FA278
-
- .align 2
-gSpriteAnim_83FA294:: @ 83FA294
- obj_image_anim_frame 0, 0 @ ANIMCMD_FRAME(0, 0),
- obj_image_anim_frame 2, 0 @ ANIMCMD_FRAME(2, 0),
- obj_image_anim_frame 4, 0 @ ANIMCMD_FRAME(4, 0),
- obj_image_anim_frame 6, 0 @ ANIMCMD_FRAME(6, 0),
- obj_image_anim_frame 8, 0 @ ANIMCMD_FRAME(8, 0),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnimTable_83FA2AC:: @ 83FA2AC
- .4byte gSpriteAnim_83FA294
-
- .align 2
-gSpriteTemplate_83FA2B0:: @ 83FA2B0
- spr_template 7, 5, gOamData_83FA1FC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA2C8:: @ 83FA2C8
- spr_template 8, 5, gOamData_83FA204, gSpriteAnimTable_83FA274, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA2E0:: @ 83FA2E0
- spr_template 9, 5, gOamData_83FA20C, gSpriteAnimTable_83FA290, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA2F8:: @ 83FA2F8
- spr_template 10, 3, gOamData_83FA214, gSpriteAnimTable_83FA2AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA310:: @ 83FA310
- spr_template 11, 5, gOamData_83F9EB8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83FA328:: @ 83FA328
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA330:: @ 83FA330
- obj_frame_tiles gSharedMem + 0x17E00, 0x80
- obj_frame_tiles gSharedMem + 0x17E80, 0x80
- obj_frame_tiles gSharedMem + 0x17F00, 0x80
- obj_frame_tiles gSharedMem + 0x17F80, 0x80
-
- .align 2
-gSpriteAnim_83FA350:: @ 83FA350
- obj_image_anim_frame 0, 5 @ ANIMCMD_FRAME(0, 5),
- obj_image_anim_frame 1, 5 @ ANIMCMD_FRAME(1, 5),
- obj_image_anim_frame 2, 5 @ ANIMCMD_FRAME(2, 5),
- obj_image_anim_frame 1, 5 @ ANIMCMD_FRAME(1, 5),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA364:: @ 83FA364
- obj_image_anim_frame 0, 10 @ ANIMCMD_FRAME(0, 10),
- obj_image_anim_frame 1, 10 @ ANIMCMD_FRAME(1, 10),
- obj_image_anim_frame 2, 10 @ ANIMCMD_FRAME(2, 10),
- obj_image_anim_frame 1, 10 @ ANIMCMD_FRAME(1, 10),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA378:: @ 83FA378
- obj_image_anim_frame 0, 15 @ ANIMCMD_FRAME(0, 15),
- obj_image_anim_frame 1, 15 @ ANIMCMD_FRAME(1, 15),
- obj_image_anim_frame 2, 15 @ ANIMCMD_FRAME(2, 15),
- obj_image_anim_frame 1, 15 @ ANIMCMD_FRAME(1, 15),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA38C:: @ 83FA38C
- obj_image_anim_frame 1, 2 @ ANIMCMD_FRAME(1, 2),
- obj_image_anim_frame 2, 5 @ ANIMCMD_FRAME(2, 5),
- obj_image_anim_frame 1, 5 @ ANIMCMD_FRAME(1, 5),
- obj_image_anim_frame 3, 5 @ ANIMCMD_FRAME(3, 5),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA3A0:: @ 83FA3A0
- obj_image_anim_frame 1, 2 @ ANIMCMD_FRAME(1, 2),
- obj_image_anim_frame 0, 4 @ ANIMCMD_FRAME(0, 4),
- obj_image_anim_frame 1, 4 @ ANIMCMD_FRAME(1, 4),
- obj_image_anim_frame 2, 4 @ ANIMCMD_FRAME(2, 4),
- obj_image_anim_frame 3, 4 @ ANIMCMD_FRAME(3, 4),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA3B8:: @ 83FA3B8
- obj_image_anim_frame 0, 2 @ ANIMCMD_FRAME(0, 2),
- obj_image_anim_frame 1, 5 @ ANIMCMD_FRAME(1, 5),
- obj_image_anim_frame 2, 5 @ ANIMCMD_FRAME(2, 5),
- obj_image_anim_frame 3, 5 @ ANIMCMD_FRAME(3, 5),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA3CC:: @ 83FA3CC
- obj_image_anim_frame 3, 0 @ ANIMCMD_FRAME(3, 0),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA3D4:: @ 83FA3D4
- obj_image_anim_frame 2, 2 @ ANIMCMD_FRAME(2, 2),
- obj_image_anim_frame 1, 5 @ ANIMCMD_FRAME(1, 5),
- obj_image_anim_frame 0, 5 @ ANIMCMD_FRAME(0, 5),
- obj_image_anim_frame 3, 5 @ ANIMCMD_FRAME(3, 5),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnimTable_83FA3E8:: @ 83FA3E8
- .4byte gSpriteAnim_83FA350
- .4byte gSpriteAnim_83FA364
- .4byte gSpriteAnim_83FA378
- .4byte gSpriteAnim_83FA38C
- .4byte gSpriteAnim_83FA3D4
- .4byte gSpriteAnim_83FA3A0
- .4byte gSpriteAnim_83FA3B8
- .4byte gSpriteAnim_83FA3B8
- .4byte gSpriteAnim_83FA3CC
-
- .align 2
-gSpriteTemplate_83FA40C:: @ 83FA40C
- spr_template 0xFFFF, 2, gOamData_83FA328, gSpriteAnimTable_83FA3E8, gSpriteImageTable_83FA330, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83FA424:: @ 83FA424
- .2byte 0x0351
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gUnknown_083FA42C:: @ 83FA42C
- obj_tiles gRouletteCenter_Gfx, 2048, 0x0006
-
- .align 2
-gSpriteTemplate_83FA434:: @ 83FA434
- spr_template 6, 2, gOamData_83FA424, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8118554
-
- .align 2
-gOamData_83FA44C:: @ 83FA44C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA454:: @ 83FA454
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA45C:: @ 83FA45C
- obj_frame_tiles gSharedMem + 0x17000, 0x200
- obj_frame_tiles gSharedMem + 0x17200, 0x200
- obj_frame_tiles gSharedMem + 0x17400, 0x200
- obj_frame_tiles gSharedMem + 0x17600, 0x200
- obj_frame_tiles gSharedMem + 0x17800, 0x200
- obj_frame_tiles gSharedMem + 0x17A00, 0x200
- obj_frame_tiles gSharedMem + 0x17C00, 0x200
-
- .align 2
-gSpriteAnim_83FA494:: @ 83FA494
- obj_image_anim_frame 0, 6 @ ANIMCMD_FRAME(0, 6),
- obj_image_anim_frame 1, 6 @ ANIMCMD_FRAME(1, 6),
- obj_image_anim_frame 2, 6 @ ANIMCMD_FRAME(2, 6),
- obj_image_anim_frame 3, 6 @ ANIMCMD_FRAME(3, 6),
- obj_image_anim_frame 2, 6 @ ANIMCMD_FRAME(2, 6),
- obj_image_anim_frame 4, 6 @ ANIMCMD_FRAME(4, 6),
- obj_image_anim_jump 2 @ ANIMCMD_JUMP(2),
-
- .align 2
-gSpriteAnim_83FA4B0:: @ 83FA4B0
- obj_image_anim_frame 5, 10 @ ANIMCMD_FRAME(5, 10),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA4B8:: @ 83FA4B8
- obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP @ ANIMCMD_FRAME(5, 10, OBJ_IMAGE_ANIM_H_FLIP),
- obj_image_anim_end @ ANIMCMD_END
-
- .align 2
-gSpriteAnim_83FA4C0:: @ 83FA4C0
- obj_image_anim_frame 5, 20 @ ANIMCMD_FRAME(5, 20),
- obj_image_anim_frame 6, 20 @ ANIMCMD_FRAME(6, 20),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA4CC:: @ 83FA4CC
- obj_image_anim_frame 5, 20, OBJ_IMAGE_ANIM_H_FLIP @ ANIMCMD_FRAME(5, 20, OBJ_IMAGE_ANIM_H_FLIP),
- obj_image_anim_frame 6, 20, OBJ_IMAGE_ANIM_H_FLIP @ ANIMCMD_FRAME(6, 20, OBJ_IMAGE_ANIM_H_FLIP),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA4D8:: @ 83FA4D8
- obj_image_anim_frame 5, 10 @ ANIMCMD_FRAME(5, 10),
- obj_image_anim_frame 6, 10 @ ANIMCMD_FRAME(6, 10),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnim_83FA4E4:: @ 83FA4E4
- obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP @ ANIMCMD_FRAME(5, 10, OBJ_IMAGE_ANIM_H_FLIP),
- obj_image_anim_frame 6, 10, OBJ_IMAGE_ANIM_H_FLIP @ ANIMCMD_FRAME(6, 10, OBJ_IMAGE_ANIM_H_FLIP),
- obj_image_anim_jump 0 @ ANIMCMD_JUMP(0),
-
- .align 2
-gSpriteAnimTable_83FA4F0:: @ 83FA4F0
- .4byte gSpriteAnim_83FA494
-
- .align 2
-gSpriteAnimTable_83FA4F4:: @ 83FA4F4
- .4byte gSpriteAnim_83FA4B0
- .4byte gSpriteAnim_83FA4B8
- .4byte gSpriteAnim_83FA4C0
- .4byte gSpriteAnim_83FA4CC
- .4byte gSpriteAnim_83FA4D8
- .4byte gSpriteAnim_83FA4E4
-
- .align 2
-gSpriteTemplate_83FA50C:: @ 83FA50C
- spr_template 0xFFFF, 6, gOamData_83FA44C, gSpriteAnimTable_83FA4F0, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA524:: @ 83FA524
- spr_template 0xFFFF, 7, gOamData_83FA454, gSpriteAnimTable_83FA4F4, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, sub_8119D80
-
- .align 2
-gOamData_83FA53C:: @ 83FA53C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA544:: @ 83FA544
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA54C:: @ 83FA54C
- .2byte 0x4100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA554: @ 83FA554
- obj_frame_tiles gSharedMem + 0x18000, 0x80
-
- .align 2
-gSpriteImageTable_83FA55C: @ 83FA55C
- obj_frame_tiles gSharedMem + 0x18080, 0x100
-
- .align 2
-gSpriteAffineAnim_83FA564:: @ 83FA564
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x2, 0x2, 0, 60
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83FA57C:: @ 83FA57C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFE, 0x0, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFE, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFB, 0, 24
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83FA5A4:: @ 83FA5A4
- .4byte gSpriteAffineAnim_83FA564
-
- .align 2
-gSpriteAffineAnimTable_83FA5A8:: @ 83FA5A8
- .4byte gSpriteAffineAnim_83FA57C
-
- .align 2
-gSpriteAffineAnim_83FA5AC:: @ 83FA5AC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83FA5BC:: @ 83FA5BC
- .4byte gSpriteAffineAnim_83FA5AC
-
- .align 2
-gSpriteTemplate_83FA5C0:: @ 83FA5C0
- spr_template 0xFFFF, 1, gOamData_83FA53C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA554, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA5D8:: @ 83FA5D8
- spr_template 0xFFFF, 1, gOamData_83FA544, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gDummySpriteAffineAnimTable, sub_8119964
-
- .align 2
-gSpriteTemplate_83FA5F0:: @ 83FA5F0
- spr_template 0xFFFF, 1, gOamData_83FA54C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gSpriteAffineAnimTable_83FA5A8, sub_8119D80
-
-gUnknown_083FA608:: @ 83FA608
- .byte 0, 1, 2, 3, 4
-
- .align 1
-gUnknown_083FA60E:: @ 83FA60E
- .2byte 0x74, 0x2C
- .2byte 0x74, 0x70
-
- .align 1
-gUnknown_083FA616:: @ 83FA616
- .2byte 256, 84
- .2byte -16, 84
-
- .align 1
-gUnknown_083FA61E:: @ 83FA61E
- .2byte 0x907
- .2byte 0x808
- .2byte 0x709
- .2byte 0x60A
- .2byte 0x50B
- .2byte 0x40C
- .2byte 0x30D
- .2byte 0x20E
- .2byte 0x10F
- .2byte 0x10
-
- .align 1
-gUnknown_083FA632:: @ 83FA632
- .2byte -1, 0, 1, 0
- .2byte -2, 0, 2, 0
- .2byte -3, 0, 3, 0
-
-gUnknown_083FA64A:: @ 83FA64A
- .byte -1, 1
-
-gUnknown_083FA64C:: @ 83FA64C
- .byte 2, 0
- .byte 2, 0
- .byte 2, -1
- .byte 2, -1
- .byte 2, -1
- .byte 2, -1
- .byte 2, -2
- .byte 2, -2
diff --git a/include/sprite.h b/include/sprite.h
index ff5493afe..e278f3c3d 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -251,6 +251,7 @@ extern u16 gReservedSpriteTileCount;
extern u8 gOamLimit;
extern struct Sprite gSprites[];
+extern struct OamMatrix gOamMatrices[];
void ResetSpriteData(void);
void AnimateSprites(void);
diff --git a/ld_script.txt b/ld_script.txt
index bf25c62ed..5a70154c0 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -719,7 +719,6 @@ SECTIONS {
src/evolution_scene.o(.rodata);
src/roulette.o(.rodata);
src/roulette_gfx.o(.rodata);
- data/roulette.o(.rodata);
src/pokedex_cry_screen.o(.rodata);
src/pokedex_cry_screen.o(.data);
src/landmark.o(.rodata);
diff --git a/src/roulette.c b/src/roulette.c
index c0732aaa0..38ba26b84 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -1663,7 +1663,7 @@ void debug_sub_812CDE4(u8 taskId)
StringExpandPlaceholders(gStringVar4, gOtherText_Coins);
MenuPrint_RightAligned(gStringVar4, 9, 1);
}
- else if (gMain.newKeys & 0x100)
+ else if (gMain.newKeys & R_BUTTON)
{
gTasks[taskId].data[13] += 10;
if (gTasks[taskId].data[13] > 9999)
@@ -1672,7 +1672,7 @@ void debug_sub_812CDE4(u8 taskId)
StringExpandPlaceholders(gStringVar4, gOtherText_Coins);
MenuPrint_RightAligned(gStringVar4, 9, 1);
}
- else if (gMain.newKeys & 0x200)
+ else if (gMain.newKeys & L_BUTTON)
{
gTasks[taskId].data[13] -= 10;
if (gTasks[taskId].data[13] < 0)
@@ -1681,7 +1681,7 @@ void debug_sub_812CDE4(u8 taskId)
StringExpandPlaceholders(gStringVar4, gOtherText_Coins);
MenuPrint_RightAligned(gStringVar4, 9, 1);
}
- else if (gMain.newKeys & 8)
+ else if (gMain.newKeys & START_BUTTON)
{
gSaveBlock1.coins = gTasks[taskId].data[13];
gTasks[taskId].func = Task_Roulette_0;
@@ -1690,7 +1690,7 @@ void debug_sub_812CDE4(u8 taskId)
MenuPrint_RightAligned(gStringVar4, 9, 1);
unk_2039560 = 0;
}
- else if (gMain.newKeys & 4)
+ else if (gMain.newKeys & SELECT_BUTTON)
{
gSaveBlock1.coins = gTasks[taskId].data[13];
gTasks[taskId].func = Task_Roulette_0;
diff --git a/src/roulette_gfx.c b/src/roulette_gfx.c
index 76f352238..a8516ecfc 100644
--- a/src/roulette_gfx.c
+++ b/src/roulette_gfx.c
@@ -167,19 +167,19 @@ const struct CompressedSpriteSheet gUnknown_083F9EE8 = {
};
const union AnimCmd gSpriteAnim_83F9EF0[] = {
- ANIMCMD_FRAME(0, 0),
- ANIMCMD_FRAME(32, 0),
- ANIMCMD_FRAME(64, 0),
- ANIMCMD_FRAME(72, 0),
- ANIMCMD_FRAME(8, 0),
- ANIMCMD_FRAME(40, 0),
- ANIMCMD_FRAME(48, 0),
- ANIMCMD_FRAME(80, 0),
- ANIMCMD_FRAME(16, 0),
- ANIMCMD_FRAME(24, 0),
- ANIMCMD_FRAME(56, 0),
- ANIMCMD_FRAME(88, 0),
- ANIMCMD_END
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_FRAME(64, 0),
+ ANIMCMD_FRAME(72, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(40, 0),
+ ANIMCMD_FRAME(48, 0),
+ ANIMCMD_FRAME(80, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_FRAME(56, 0),
+ ANIMCMD_FRAME(88, 0),
+ ANIMCMD_END
};
const union AnimCmd *const gSpriteAnimTable_83F9F24[] = {
@@ -243,26 +243,26 @@ const struct CompressedSpriteSheet gUnknown_083F9F5C = {
};
const union AnimCmd gSpriteAnim_83F9F64[] = {
- ANIMCMD_FRAME(0, 0),
- ANIMCMD_FRAME(16, 0),
- ANIMCMD_FRAME(32, 0),
- ANIMCMD_FRAME(48, 0),
- ANIMCMD_FRAME(64, 0),
- ANIMCMD_FRAME(80, 0),
- ANIMCMD_FRAME(96, 0),
- ANIMCMD_FRAME(112, 0),
- ANIMCMD_FRAME(128, 0),
- ANIMCMD_FRAME(144, 0),
- ANIMCMD_FRAME(160, 0),
- ANIMCMD_END
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_FRAME(48, 0),
+ ANIMCMD_FRAME(64, 0),
+ ANIMCMD_FRAME(80, 0),
+ ANIMCMD_FRAME(96, 0),
+ ANIMCMD_FRAME(112, 0),
+ ANIMCMD_FRAME(128, 0),
+ ANIMCMD_FRAME(144, 0),
+ ANIMCMD_FRAME(160, 0),
+ ANIMCMD_END
};
const union AnimCmd gSpriteAnim_83F9F94[] = {
- ANIMCMD_FRAME(0, 0),
- ANIMCMD_FRAME(4, 0),
- ANIMCMD_FRAME(8, 0),
- ANIMCMD_FRAME(12, 0),
- ANIMCMD_END
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
};
const union AnimCmd *const gSpriteAnimTable_83F9FA8[] = {
@@ -344,28 +344,348 @@ const struct SpriteTemplate gSpriteTemplate_83FA0DC[] = {
{0, 12, &gOamData_83F9EC8, gSpriteAnimTable_83F9F50, NULL, gDummySpriteAffineAnimTable, sub_8117E98}
};
-extern const struct SpriteTemplate gSpriteTemplate_83FA40C;
-extern struct OamMatrix gOamMatrices[];
-extern const struct SpriteSheet gUnknown_083FA21C[];
-extern const struct SpriteTemplate gSpriteTemplate_83FA2B0;
-extern const struct SpriteTemplate gSpriteTemplate_83FA2C8;
-extern const struct SpriteTemplate gSpriteTemplate_83FA2E0;
-extern const struct SpriteTemplate gSpriteTemplate_83FA2F8;
-extern const struct SpriteTemplate gSpriteTemplate_83FA310;
-extern const u8 gUnknown_083FA608[0x5];
-extern const struct SpriteSheet gUnknown_083FA42C;
-extern const struct SpriteTemplate gSpriteTemplate_83FA434;
-extern void (*gFieldCallback)(void);
-extern const u16 gUnknown_083FA60E[0x2][0x2];
-extern const struct SpriteTemplate gSpriteTemplate_83FA50C;
-extern const struct SpriteTemplate gSpriteTemplate_83FA5C0[];
-extern const u16 gUnknown_083FA616[0x2][0x2];
-extern const struct SpriteTemplate gSpriteTemplate_83FA524;
-extern const struct SpriteTemplate gSpriteTemplate_83FA5F0;
-extern const u16 gUnknown_083FA61E[0xA];
-extern const u16 gUnknown_083FA632[];
-extern const s8 gUnknown_083FA64A[0x2];
-extern const s8 gUnknown_083FA64C[0x8][0x2];
+const struct OamData gOamData_83FA1FC = {
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 3,
+ .priority = 1
+};
+
+const struct OamData gOamData_83FA204 = {
+ .shape = ST_OAM_V_RECTANGLE,
+ .size = 0,
+ .priority = 1
+};
+
+const struct OamData gOamData_83FA20C = {
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 1
+};
+
+const struct OamData gOamData_83FA214 = {
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 0,
+ .priority = 1
+};
+
+const struct SpriteSheet gUnknown_083FA21C[] = {
+ {gRouletteCreditTiles, 0x400, 7},
+ {gRouletteNumbersTiles, 0x280, 8},
+ {gRouletteMultiplierTiles, 0x500, 9},
+ {RouletteBallCounterTiles, 0x140, 10},
+ {RouletteCursorTiles, 0x200, 11},
+ {}
+};
+
+const union AnimCmd gSpriteAnim_83FA24C[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(2, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(6, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(10, 0),
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_FRAME(14, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(18, 0),
+ // ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA274[] = {
+ gSpriteAnim_83FA24C
+};
+
+const union AnimCmd gSpriteAnim_83FA278[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA290[] = {
+ gSpriteAnim_83FA278
+};
+
+const union AnimCmd gSpriteAnim_83FA294[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(2, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(6, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA2AC[] = {
+ gSpriteAnim_83FA294
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA2B0 = {7, 5, &gOamData_83FA1FC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteTemplate gSpriteTemplate_83FA2C8 = {8, 5, &gOamData_83FA204, gSpriteAnimTable_83FA274, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteTemplate gSpriteTemplate_83FA2E0 = {9, 5, &gOamData_83FA20C, gSpriteAnimTable_83FA290, NULL, gDummySpriteAffineAnimTable, sub_81184CC};
+
+const struct SpriteTemplate gSpriteTemplate_83FA2F8 = {10, 3, &gOamData_83FA214, gSpriteAnimTable_83FA2AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteTemplate gSpriteTemplate_83FA310 = {11, 5, &gOamData_83F9EB8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct OamData gOamData_83FA328 = {
+ .shape = ST_OAM_SQUARE,
+ .size = 1,
+ .priority = 2
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83FA330[] = {
+ {(void *)ewram17E00 + 0x000, 0x80},
+ {(void *)ewram17E00 + 0x080, 0x80},
+ {(void *)ewram17E00 + 0x100, 0x80},
+ {(void *)ewram17E00 + 0x180, 0x80}
+};
+
+const union AnimCmd gSpriteAnim_83FA350[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA364[] = {
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_FRAME(2, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA378[] = {
+ ANIMCMD_FRAME(0, 15),
+ ANIMCMD_FRAME(1, 15),
+ ANIMCMD_FRAME(2, 15),
+ ANIMCMD_FRAME(1, 15),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA38C[] = {
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(3, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA3A0[] = {
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA3B8[] = {
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_FRAME(3, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA3CC[] = {
+ ANIMCMD_FRAME(3, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA3D4[] = {
+ ANIMCMD_FRAME(2, 2),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(3, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA3E8[] = {
+ gSpriteAnim_83FA350,
+ gSpriteAnim_83FA364,
+ gSpriteAnim_83FA378,
+ gSpriteAnim_83FA38C,
+ gSpriteAnim_83FA3D4,
+ gSpriteAnim_83FA3A0,
+ gSpriteAnim_83FA3B8,
+ gSpriteAnim_83FA3B8,
+ gSpriteAnim_83FA3CC
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA40C = {0xFFFF, 2, &gOamData_83FA328, gSpriteAnimTable_83FA3E8, gSpriteImageTable_83FA330, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct OamData gOamData_83FA424 = {
+ .y = 81,
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .shape = ST_OAM_SQUARE,
+ .size = 3,
+ .priority = 2
+};
+
+const struct CompressedSpriteSheet gUnknown_083FA42C = {
+ gRouletteCenter_Gfx,
+ 0x800,
+ 6
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA434 = {6, 2, &gOamData_83FA424, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8118554};
+
+const struct OamData gOamData_83FA44C = {
+ .shape = ST_OAM_SQUARE,
+ .size = 2,
+ .priority = 2
+};
+
+const struct OamData gOamData_83FA454 = {
+ .shape = ST_OAM_SQUARE,
+ .size = 2,
+ .priority = 2
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83FA45C[] = {
+ {(void *)ewram17000 + 0x000, 0x200},
+ {(void *)ewram17000 + 0x200, 0x200},
+ {(void *)ewram17000 + 0x400, 0x200},
+ {(void *)ewram17000 + 0x600, 0x200},
+ {(void *)ewram17000 + 0x800, 0x200},
+ {(void *)ewram17000 + 0xA00, 0x200},
+ {(void *)ewram17000 + 0xC00, 0x200}
+};
+
+const union AnimCmd gSpriteAnim_83FA494[] = {
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ // jump here
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_JUMP(2)
+};
+
+const union AnimCmd gSpriteAnim_83FA4B0[] = {
+ ANIMCMD_FRAME(5, 10),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA4B8[] = {
+ ANIMCMD_FRAME(5, 10, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83FA4C0[] = {
+ ANIMCMD_FRAME(5, 20),
+ ANIMCMD_FRAME(6, 20),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA4CC[] = {
+ ANIMCMD_FRAME(5, 20, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 20, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA4D8[] = {
+ ANIMCMD_FRAME(5, 10),
+ ANIMCMD_FRAME(6, 10),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83FA4E4[] = {
+ ANIMCMD_FRAME(5, 10, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 10, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA4F0[] = {
+ gSpriteAnim_83FA494
+};
+
+const union AnimCmd *const gSpriteAnimTable_83FA4F4[] = {
+ gSpriteAnim_83FA4B0,
+ gSpriteAnim_83FA4B8,
+ gSpriteAnim_83FA4C0,
+ gSpriteAnim_83FA4CC,
+ gSpriteAnim_83FA4D8,
+ gSpriteAnim_83FA4E4
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA50C = {0xFFFF, 6, &gOamData_83FA44C, gSpriteAnimTable_83FA4F0, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteTemplate gSpriteTemplate_83FA524 = {0xFFFF, 7, &gOamData_83FA454, gSpriteAnimTable_83FA4F4, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, sub_8119D80};
+
+const struct OamData gOamData_83FA53C = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .shape = ST_OAM_SQUARE,
+ .size = 1,
+ .priority = 2
+};
+
+const struct OamData gOamData_83FA544 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2
+};
+
+const struct OamData gOamData_83FA54C = {
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83FA554[] = {
+ {(void *)ewram18000 + 0x000, 0x080}
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83FA55C[] = {
+ {(void *)ewram18000 + 0x080, 0x100}
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83FA564[] = {
+ AFFINEANIMCMD_FRAME(128, 128, 0, 0),
+ AFFINEANIMCMD_FRAME( 2, 2, 0, 60),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83FA57C[] = {
+ AFFINEANIMCMD_FRAME(256, 256, 0, 0),
+ AFFINEANIMCMD_FRAME( -2, 0, 0, 15),
+ AFFINEANIMCMD_FRAME( -1, -2, 0, 15),
+ AFFINEANIMCMD_FRAME( -1, -5, 0, 24),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83FA5A4[] = {
+ gSpriteAffineAnim_83FA564
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83FA5A8[] = {
+ gSpriteAffineAnim_83FA57C
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83FA5AC[] = {
+ AFFINEANIMCMD_FRAME(256, 256, 0, 0),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83FA5BC[] = {
+ gSpriteAffineAnim_83FA5AC
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA5C0[] = {
+ {0xFFFF, 1, &gOamData_83FA53C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA554, gDummySpriteAffineAnimTable, SpriteCallbackDummy},
+ {0xFFFF, 1, &gOamData_83FA544, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gDummySpriteAffineAnimTable, sub_8119964}
+};
+
+const struct SpriteTemplate gSpriteTemplate_83FA5F0 = {0xFFFF, 1, &gOamData_83FA54C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gSpriteAffineAnimTable_83FA5A8, sub_8119D80};
void sub_8117838(u8 r0)
{
@@ -629,9 +949,7 @@ void sub_81180F4(u16 r0)
u8 sub_81181E8(u8 r0)
{
- u8 t[5];
- memcpy(t, gUnknown_083FA608, sizeof t);
- // u8 t = {0, 1, 2, 3, 4};
+ u8 t[] = {0, 1, 2, 3, 4};
if (r0 >= 20)
r0 = 0;
switch (gUnknown_083F8C00[r0].var01_0)
@@ -1250,14 +1568,16 @@ void sub_8119224(struct Sprite *sprite)
{
u16 t;
u8 i;
- s16 s[0x2][0x2];
+ s16 s[2][2] = {
+ {0x74, 0x2C},
+ {0x74, 0x70}
+ };
struct Roulette *p;
- memcpy(s, &gUnknown_083FA60E, 0x8);
t = sprite->data[0x7] - 0x2;
p = eRoulette;
p->var3C[0x37] = CreateSprite(&gSpriteTemplate_83FA50C, 0x24, -0xC, 0x32);
- p->var3C[0x38] = CreateSprite(&gSpriteTemplate_83FA5C0[0x0], s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x3B);
- p->var3C[0x39] = CreateSprite(&gSpriteTemplate_83FA5C0[0x1], 0x24, 0x8C, 0x33);
+ p->var3C[0x38] = CreateSprite(&gSpriteTemplate_83FA5C0[0], s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x3B);
+ p->var3C[0x39] = CreateSprite(&gSpriteTemplate_83FA5C0[1], 0x24, 0x8C, 0x33);
gSprites[eRoulette->var3C[0x39]].oam.objMode = 0x1;
for (i = 0x0; i < 0x3; i++)
{
@@ -1280,9 +1600,11 @@ void sub_81193D4(struct Sprite *sprite)
{
u8 i = 0;
s16 t;
- s16 s[0x2][0x2];
+ s16 s[2][2] = {
+ {256, 84},
+ {-16, 84}
+ };
const struct StructgUnknown_083F8DF4 *p;
- memcpy(s, &gUnknown_083FA616, 0x8);
t = sprite->data[0x7] - 0x2;
eRoulette->var3C[0x37] = CreateSprite(&gSpriteTemplate_83FA524, s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x32);
StartSpriteAnim(&gSprites[eRoulette->var3C[0x37]], sprite->data[0x0]);
@@ -1690,6 +2012,19 @@ void sub_811952C(struct Sprite *sprite)
}
#endif
+const u16 gUnknown_083FA61E[] = {
+ 0x0907,
+ 0x0808,
+ 0x0709,
+ 0x060A,
+ 0x050B,
+ 0x040C,
+ 0x030D,
+ 0x020E,
+ 0x010F,
+ 0x0010
+};
+
void sub_8119780(struct Sprite *sprite)
{
if (sprite->data[1]++ >= sprite->data[3])
@@ -1708,10 +2043,13 @@ void sub_8119780(struct Sprite *sprite)
void sub_81197D8(struct Sprite *sprite)
{
- u16 t[0x3][0x4];
+ s16 t[3][4] = {
+ {-1, 0, 1, 0},
+ {-2, 0, 2, 0},
+ {-3, 0, 3, 0}
+ };
s32 p, z;
- memcpy(t, &gUnknown_083FA632, 24);
if (sprite->data[1]++ < sprite->data[3])
{
if (sprite->data[1] & 1)
@@ -1863,10 +2201,17 @@ void sub_8119B24(struct Sprite *sprite)
void sub_8119BCC(struct Sprite *sprite)
{
- s8 t[0x2]; //sign
- s8 z[0x8][0x2];
- memcpy(t, &gUnknown_083FA64A, 0x2);
- memcpy(z, &gUnknown_083FA64C, 0x10);
+ s8 t[2] = {-1, 1}; //sign
+ s8 z[8][2] = {
+ {2, 0},
+ {2, 0},
+ {2, -1},
+ {2, -1},
+ {2, -1},
+ {2, -1},
+ {2, -2},
+ {2, -2}
+ };
if (sprite->data[0x1]-- > 0x7)
{
sprite->pos1.x += t[eRoulette->var38->data[0x0]] * 0x2;
@@ -1900,8 +2245,7 @@ void sub_8119BCC(struct Sprite *sprite)
void sub_8119D08(struct Sprite *sprite)
{
- s8 t[0x2]; //sign
- memcpy(t, &gUnknown_083FA64A, 0x2);
+ s8 t[0x2] = {-1, 1}; //sign
if (sprite->data[0x1]-- >= 0x0)
{
sprite->pos1.x += t[eRoulette->var38->data[0x0]] * 0x2;