Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1433 commits
Select commit Hold shift + click to select a range
451d652
Progress
JaceCear Oct 27, 2025
c3fbaba
Match Task_8066768
JaceCear Oct 27, 2025
bda3d83
Match Task_80666E0
JaceCear Oct 27, 2025
6907868
Match Task_8066628
JaceCear Oct 27, 2025
47bd271
Move sub_8066520 into non-matching
JaceCear Oct 27, 2025
955c8a2
Progress
JaceCear Oct 27, 2025
3e22e05
Match Task_80661A8_48
JaceCear Oct 27, 2025
eabb429
Match Task_8065F5C_48
JaceCear Oct 27, 2025
3800a90
Finish extra_stage_results.c
JaceCear Oct 28, 2025
5192c56
Some documentation
JaceCear Oct 28, 2025
bba0fed
Fix a crash
JaceCear Oct 28, 2025
2f3e6a7
Merge CreateMultiplayerPlayer from SA2
JaceCear Oct 28, 2025
516a151
Match CreateMultiplayerPlayer and document some proc names
JaceCear Oct 28, 2025
24b6769
Move Task_CreateMultiplayerPlayer into non-matching
JaceCear Oct 28, 2025
87ec46e
Resolve some alignment issues
JaceCear Oct 28, 2025
cbd0e84
Merge sa2__sub_801707C
JaceCear Oct 28, 2025
e1f330d
Move sa2__sub_8017670 into non-matching
JaceCear Oct 28, 2025
8fba8fa
Merge sa2__sub_8017C28
JaceCear Oct 28, 2025
b786a82
Merge sub_8017F34
JaceCear Oct 28, 2025
62387d9
Merge sa2__sub_8018300
JaceCear Oct 28, 2025
3faa996
Finish mp_player.c and fix build
JaceCear Oct 29, 2025
b09bd8f
Remove mp_player from ldscript
JaceCear Oct 29, 2025
c97faa2
Start Mystery Item Box
JaceCear Oct 29, 2025
9d8159e
Match Task_MysteryItemBox_Main1
JaceCear Oct 29, 2025
6bd51f3
Match Task_MysteryItemBox_Main0
JaceCear Oct 29, 2025
f941f46
Adjust INCREMENT_RINGS macro to be more accurate
JaceCear Oct 29, 2025
cbb51a3
Match sub_801C130
JaceCear Oct 29, 2025
12703e3
Match Task_801C2FC
JaceCear Oct 29, 2025
933aa0c
Match sub_801C3A0
JaceCear Oct 29, 2025
21d97ef
Match Task_801C420
JaceCear Oct 29, 2025
510878f
Finish SA1 Mystery Itembox
JaceCear Oct 29, 2025
14d1bdf
Start MP Chao
JaceCear Oct 29, 2025
2d88ba3
Match Task_802816C
JaceCear Oct 29, 2025
5ba80d8
Match Task_8028388
JaceCear Oct 29, 2025
55f9ef0
Match Task_8028518
JaceCear Oct 29, 2025
1cfca38
Match Task_80286B0
JaceCear Oct 29, 2025
ecf1cac
Chao progress
JaceCear Oct 29, 2025
4cd61b4
Match MP Chao
JaceCear Oct 30, 2025
bd23f43
Some documentation
JaceCear Oct 30, 2025
3d93863
More Chao documentation
JaceCear Oct 30, 2025
28f218d
Document some UI data
JaceCear Oct 30, 2025
40b14c4
Start Time Attack records
JaceCear Oct 30, 2025
a70368e
Match CreateTimeAttackRecords
JaceCear Oct 30, 2025
736bc99
Some progress
JaceCear Oct 31, 2025
877e0b5
More % in Task_806BBC0
JaceCear Oct 31, 2025
c798771
Move Task_806BBC0 into non-matching
JaceCear Nov 1, 2025
b0f8e1f
Finish Time Attack Records screen
JaceCear Nov 1, 2025
61e5834
Split MP unk_tasks
JaceCear Nov 1, 2025
07306fe
Match MP unk_0.c
JaceCear Nov 1, 2025
311902d
Document sWin0Ranges
JaceCear Nov 1, 2025
89c89f7
Start MP unk_1.c
JaceCear Nov 1, 2025
545cbe6
Match MP unk_1.c
JaceCear Nov 1, 2025
ce87540
Rename data_0_6_2.s -> data_0_7.s
JaceCear Nov 1, 2025
7902735
Convert gCharacterCards to C
JaceCear Nov 1, 2025
ebe9f1c
Use sizeof for the character tiles sizes
JaceCear Nov 1, 2025
9dd7558
Start MP unk_2.s code
JaceCear Nov 2, 2025
b044707
Match sub_801CF08
JaceCear Nov 2, 2025
f9401ea
Match sub_801D0CC
JaceCear Nov 2, 2025
80f7acd
Move Task_801D200 into non-matching
JaceCear Nov 2, 2025
2337e98
Finish MP unk_2.s
JaceCear Nov 2, 2025
cfb3236
Start MP results.c
JaceCear Nov 2, 2025
f12dfe6
Move Task_801874C into non-matching
JaceCear Nov 2, 2025
ad1de3f
Match sub_8018AE0
JaceCear Nov 2, 2025
20a4c32
Move Task_8018ECC into non-matching
JaceCear Nov 2, 2025
cdc9bc4
Match Task_8019348
JaceCear Nov 3, 2025
7732079
Move Task_80196FC into non-matching
JaceCear Nov 3, 2025
55fbd8c
Fix include
JaceCear Nov 3, 2025
57d785d
Fix build
JaceCear Nov 3, 2025
c026d0c
Simplify ldscript a bit
JaceCear Nov 3, 2025
4509657
Rename MultiPakCommunicationError -> LinkCommunicationError
JaceCear Nov 3, 2025
5d0223c
Merge LinkCommunicationError and move CreateMultiplayerSinglePakResul…
JaceCear Nov 3, 2025
8e84984
Fix build
JaceCear Nov 3, 2025
7b45ed2
Fix illogical CpuSet sizes
JaceCear Nov 3, 2025
bd7db5b
Match Task_MultiplayerSinglePakResultsScreenInit
JaceCear Nov 3, 2025
c5eb3b7
Merge sa2__sub_80823FC and sa2__Task_8082630
JaceCear Nov 4, 2025
20b6d08
Merge sa2__sub_808267C, sa2__sub_8082AA8. Move sub_8082788 into non-m…
JaceCear Nov 4, 2025
d3d64cc
Match CreateChaoHuntHUD
JaceCear Nov 4, 2025
72b5bd7
Move Task_ChaoHuntHUD into non-matching. Finish MP results_2.c
JaceCear Nov 5, 2025
faa13ef
Move MP HUD code into its own hud.c
JaceCear Nov 5, 2025
7ce7799
Create and move decl to hud.h
JaceCear Nov 5, 2025
f921635
Start MP mode_select
JaceCear Nov 5, 2025
09d1389
Match Task_800E648
JaceCear Nov 5, 2025
cb8b7c8
Move data_0_1_1 to C, match sub_800E798 and Task_800E868
JaceCear Nov 5, 2025
8d0551e
Match ModeSelect_InitGraphicsEN
JaceCear Nov 5, 2025
fbd0068
Fake-match Task_MultiPak
JaceCear Nov 6, 2025
be492c7
Move Task_800F058 into non-matching
JaceCear Nov 7, 2025
3b2b66c
Match ModeSelect_InitSinglePak
JaceCear Nov 7, 2025
4ce52d0
Move Task_SinglePak into non-matching
JaceCear Nov 7, 2025
dd1018a
Match Task_800F9BC and split the module because agbcc does not like us
JaceCear Nov 7, 2025
064ea29
Match sub_800FBF8, merge sa2__sub_8081200
JaceCear Nov 7, 2025
2c4e8f8
Finish MP mode_select
JaceCear Nov 7, 2025
6852023
Attempt matching sub_800FD9C
JaceCear Nov 8, 2025
de00152
Start chao_message.c
JaceCear Nov 8, 2025
712c210
Move sub_803AB60 into non-matching
JaceCear Nov 8, 2025
214835e
Match Task_ChaoMessageInit
JaceCear Nov 8, 2025
d99c6ac
Match Task_803B7AC
JaceCear Nov 8, 2025
db0a732
Match sub_803B944
JaceCear Nov 9, 2025
5f297f3
Match sub_803BAD4
JaceCear Nov 9, 2025
ebed39c
Match sub_803BC64 and sub_803BE0C
JaceCear Nov 9, 2025
ca471ff
Finish chao_message.c
JaceCear Nov 9, 2025
dd4fd96
Start sound_test.c
JaceCear Nov 9, 2025
8bb3d7b
Fix build
JaceCear Nov 9, 2025
fcea1ee
Match Task_SoundTestInit
JaceCear Nov 9, 2025
5cdc64a
Move sub_805F950 into non-matching. Match sub_805FAD4
JaceCear Nov 9, 2025
739897b
Finish sound_test.c
JaceCear Nov 9, 2025
0c01099
Rename gUnknown_03005154 -> gSpecialStageTargetRings
JaceCear Nov 10, 2025
a84ea6f
Start SP Stage intro.c
JaceCear Nov 10, 2025
958a4f9
SP Stage Intro progress
JaceCear Nov 10, 2025
9ed9af3
SP Stage Intro progress
JaceCear Nov 10, 2025
dc62be7
Rename old SpecialStageIntro64 -> SpecialStageIntroC4
JaceCear Nov 10, 2025
5a0260e
Match sub_8068D0C
JaceCear Nov 10, 2025
260ac6d
Match Task_8069100
JaceCear Nov 10, 2025
503b0db
Match SP Stage intro.c
JaceCear Nov 10, 2025
f515ef1
Match CreateSpecialStage
JaceCear Nov 11, 2025
f4800eb
Progress on Special Stage
JaceCear Nov 11, 2025
f3cd81d
Formatter...
JaceCear Nov 11, 2025
6f129d1
Match sub_8029CDC
JaceCear Nov 11, 2025
6783969
Match sub_8029E0C and sub_8029EA8
JaceCear Nov 11, 2025
ccdc73c
Match sub_8029F30 and sub_8029FA4
JaceCear Nov 11, 2025
145356f
Match sub_802A068
JaceCear Nov 11, 2025
3afb977
Match sub_802A134
JaceCear Nov 11, 2025
748aa36
Match sub_802A248
JaceCear Nov 12, 2025
65e1ca1
Move sub_802A4C4 into non-matching
JaceCear Nov 12, 2025
239b240
Match Task_802A560
JaceCear Nov 12, 2025
13f69ca
Match sub_802A688
JaceCear Nov 12, 2025
c56e65f
More Sp Stage progress
JaceCear Nov 12, 2025
e786a08
More Sp Stage progress
JaceCear Nov 12, 2025
642d1d1
Match Task_802AE40, sub_802B008. Move sub_802B07C into non-matching
JaceCear Nov 12, 2025
7b8a2fd
Match sub_802B18C
JaceCear Nov 12, 2025
3bda316
Match sub_802B214
JaceCear Nov 12, 2025
509769d
Match sub_802B3E4
JaceCear Nov 12, 2025
c333cb3
Match sub_802B5DC
JaceCear Nov 12, 2025
d851df5
Move sub_802B66C into non-matching
JaceCear Nov 13, 2025
6c67cac
Match sub_802B884 and sub_802BBF0
JaceCear Nov 13, 2025
5b8b8a8
Move sub_802BC6C into non-matching
JaceCear Nov 13, 2025
77eacb9
Move sub_802BE0C into non-matching
JaceCear Nov 13, 2025
0aceac4
Match Task_802BEDC
JaceCear Nov 13, 2025
c046f1b
Match sub_802C04C and sub_802C0CC
JaceCear Nov 13, 2025
a474b75
Sp Stage progress
JaceCear Nov 13, 2025
5d1449d
Match CreateCheckpointMessage and some documentation
JaceCear Nov 13, 2025
6fea7f2
Match sub_802C6C4 and sub_802C89C
JaceCear Nov 13, 2025
227fd72
Match sub_802C934
JaceCear Nov 13, 2025
f7d8320
Move UpdateObjectsAndRender into non-matching
JaceCear Nov 14, 2025
ff7f579
Fix build
JaceCear Nov 14, 2025
f452b36
Small UpdateObjectsAndRender percentage improvement
JaceCear Nov 14, 2025
2c93264
More SpStage progress
JaceCear Nov 14, 2025
370231a
Finish SpStage code section
JaceCear Nov 15, 2025
d4a03b4
Move some BG data over to C
JaceCear Nov 15, 2025
4699cc6
Align shields in README.md with SA2
JaceCear Nov 15, 2025
13196c8
Copy progress script from SA2
JaceCear Nov 15, 2025
3379fa1
Use proper .map file in progress script
JaceCear Nov 15, 2025
770e582
Add -matching output to build.yml
JaceCear Nov 15, 2025
d39f2c8
Align gfx tool with SA2
JaceCear Nov 15, 2025
6589f88
Partly align M4A with SA2
JaceCear Nov 15, 2025
bbd0807
Don't go to character select on boot in non-debug target
JaceCear Nov 15, 2025
2f0a4e7
Fix gUnknown_030057E0's size being uninitialized
JaceCear Nov 15, 2025
aca663e
Split MultiplayerScoreData into a union
JaceCear Nov 16, 2025
8acf8d3
Fix compiler error
JaceCear Nov 16, 2025
cf0139b
Move some CI/CD tests over from SA2
JaceCear Nov 16, 2025
b6f4436
Fix OOB access
JaceCear Nov 16, 2025
1092fd1
Fix some undefined behavior
JaceCear Nov 16, 2025
5429ac2
Handle assets before compiling game
JaceCear Nov 16, 2025
11ca8e4
Fix more compiler errors
JaceCear Nov 16, 2025
d25ce31
Fix bitwise NOT bug
JaceCear Nov 16, 2025
476ff3d
Fix wrong function prototype
JaceCear Nov 16, 2025
3ca5031
Fix a couple more compiler errors
JaceCear Nov 16, 2025
199fa62
Fix more compiler errors
JaceCear Nov 16, 2025
0e1e47a
Fix more errors
JaceCear Nov 16, 2025
d725de6
Formatter fixes...
JaceCear Nov 16, 2025
2807a89
More compiler fixes
JaceCear Nov 16, 2025
3b8b443
More compiler fixes
JaceCear Nov 16, 2025
f56197c
Formatter
JaceCear Nov 16, 2025
1ce1592
More compiler fixes
JaceCear Nov 16, 2025
8183757
More compiler fixes
JaceCear Nov 16, 2025
cf8b931
More fixes
JaceCear Nov 16, 2025
7dabb61
Formatter
JaceCear Nov 16, 2025
ec88f3a
More fixes
JaceCear Nov 16, 2025
1df1326
Fix crash after Special Stage
JaceCear Nov 16, 2025
8e73a86
Move data_0_5_3 to C
JaceCear Nov 16, 2025
d4a3a09
Align speedup code with SA2
JaceCear Nov 18, 2025
27ccee5
Fix platform collision
JaceCear Nov 18, 2025
902df3b
Move some data to C
JaceCear Nov 18, 2025
af39a9b
fix gcc15 issues (#10)
bitten2up Nov 18, 2025
ed87927
Add word size to task alloc
JaceCear Nov 18, 2025
ce51793
Use heap size from header file
JaceCear Nov 19, 2025
b7de0e5
Fix camera jitter in Egg Hammer Tank Mk.1 Boss
JaceCear Nov 19, 2025
0caf887
Fix camera jitter in Egg Press Boss
JaceCear Nov 19, 2025
728441e
Fix camera jitter in Egg Ball boss
JaceCear Nov 19, 2025
5ae73f4
Fix camera jitter in Egg Spider boss
JaceCear Nov 19, 2025
ca576ca
Fix camera jitter in Egg Snake boss
JaceCear Nov 19, 2025
67d7bc7
Fix Mecha Knuckles being undefeatable
JaceCear Nov 20, 2025
a95371d
Some Mecha Knuckles documentation
JaceCear Nov 20, 2025
c9432ff
Split flags in condition
JaceCear Nov 20, 2025
97f58bb
Fake-match Task_Item_Shield_Normal
JaceCear Nov 20, 2025
56b65ab
Match Task_Item_Shield_Magnetic
JaceCear Nov 20, 2025
6bcbb66
fix macos build (#11)
freshollie Dec 4, 2025
b0f056e
Rename sa2__gUnknown_030054B4 -> gMultiplayerRanks
JaceCear Dec 5, 2025
5604688
Merge branch 'main' of github.com:SAT-R/sa1
JaceCear Dec 5, 2025
baebaf3
More SA2 alignment
JaceCear Dec 5, 2025
d3fc37a
Rename sa2__gUnknown_030022AC -> gBgOffsetsHBlankSecondary
JaceCear Dec 5, 2025
a5a5090
Rename gOamBuffer2 -> gOamMallocBuffer
JaceCear Dec 5, 2025
2288666
Rename sa2__gUnknown_03002710 -> gOamMallocCopiedOrder
JaceCear Dec 5, 2025
afe2e39
More alignment
JaceCear Dec 5, 2025
af56401
More SA2 alignment
JaceCear Dec 5, 2025
9f42eb4
More SA2 alignment
JaceCear Dec 5, 2025
b1cf1ac
More SA2 alignment
JaceCear Dec 5, 2025
640c7fb
More SA2 alignment
JaceCear Dec 5, 2025
4d90b1a
Finish aligning core.c with SA2
JaceCear Dec 6, 2025
3b08c20
Align task.h with SA3
JaceCear Dec 6, 2025
73dc4e8
Fix build
JaceCear Dec 6, 2025
4f463fc
Re-introduce TASK_GET_MEMBER|TASK_SET_MEMBER, fix build
JaceCear Dec 6, 2025
9a3d478
Align task.h with SA3
JaceCear Dec 6, 2025
60b1bca
Align task.c with SA2|SA3
JaceCear Dec 6, 2025
533cd57
Align core.c with SA3
JaceCear Dec 7, 2025
a93ebed
Match EngineMainLoop
JaceCear Dec 7, 2025
c7fa7b5
Match and format SA3's EngineMainLoop
JaceCear Dec 7, 2025
b729dbb
Align core.c with SA3
JaceCear Dec 7, 2025
cbefd73
Some tools align with SA2
JaceCear Dec 7, 2025
4683766
Align Makefile with SA2 more
JaceCear Dec 7, 2025
1a88ea1
Align Makefile more with SA2
JaceCear Dec 7, 2025
5079e7f
Some alignment
JaceCear Dec 9, 2025
dc0eb7b
Align with SA2|SA3
JaceCear Dec 13, 2025
76db699
Align task.c with SA2
JaceCear Dec 16, 2025
53f3ad1
Some documentation
JaceCear Mar 3, 2026
d1d7074
Use PALETTE_LEN_4BPP
JaceCear Mar 3, 2026
4149e8f
Document a vocal sample name. Thanks 'Asal (in Harmony)' for letting …
JaceCear Mar 3, 2026
6411545
Use PALETTE_LEN_4BPP
JaceCear Mar 3, 2026
c3b39a4
Fix progress reporting (#13)
JaceCear Mar 12, 2026
097080e
Rename ZONE_TIME_TO_INT() -> TIME() (#14)
JaceCear Mar 25, 2026
3cd7b33
Align defines.h with SA2
JaceCear Mar 25, 2026
aafedee
Add DISPLAY_CENTER_X|Y
JaceCear Mar 25, 2026
52bb392
Fix build
JaceCear Mar 25, 2026
18b9de4
Move RGB macros into color.h
JaceCear Mar 26, 2026
332346e
move everything into sa1 directory
freshollie Mar 28, 2026
2466aa1
Merge remote-tracking branch 'sa1/sa2-merge' into sa1-merge
freshollie Mar 28, 2026
f18e445
remove sa1 tools
freshollie Mar 28, 2026
7a22135
clean up sa1 ci
freshollie Mar 28, 2026
4f00252
reuse graphics makefile, more cleanup
freshollie Mar 28, 2026
88f75c5
start referencing sa2 files in sa1 build
freshollie Mar 28, 2026
161ae37
sa1: reference more files from sa2
freshollie Mar 28, 2026
ff00c66
sa1: align sprite with sa2
freshollie Mar 28, 2026
b348e13
align sprite.h
freshollie Mar 28, 2026
8b0d8fe
sa1: use bg_triangles from sa2
freshollie Mar 28, 2026
a6c6d28
sa1: use input_recorder and multiboot from sa2
freshollie Mar 28, 2026
045683c
fix portable builds
freshollie Mar 28, 2026
610eb0b
ci: use sa1 storage url
freshollie Mar 28, 2026
805e492
sa1: format
freshollie Mar 28, 2026
fa9da6b
sa1: align background.c and use sa2 background.c for match
freshollie Mar 28, 2026
7248534
sa1: use src asm from sa2
freshollie Mar 28, 2026
88483e7
sa1: reference most of agbflash from sa2
freshollie Mar 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
63 changes: 63 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,69 @@ jobs:
path: |
gh-pages

build-sa1-gba:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
name: Build SA1 GBA (Europe)
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Checkout
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master

- name: Checkout agbcc
uses: actions/checkout@master
with:
path: agbcc
repository: SAT-R/agbcc

- name: Install tools
run: |
sudo apt update && sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi xorg-dev
python3 -m pip install gitpython
# build-essential, git, and libpng-dev are already installed
# gcc-arm-none-eabi is only needed for the modern build
# as an alternative to dkP

- name: Install agbcc
run: |
./build.sh
./install.sh ../
working-directory: agbcc

- name: Fetch assets
run: curl -o sa1/baserom_sa1.gba -u ${{ secrets.STORAGE_USERNAME }}:${{ secrets.STORAGE_PASSWORD }} ${{ secrets.STORAGE_BASE_URL }}/sa1/baserom.gba

- name: Compare
run: make sa1 -j${nproc}

# - name: Progress
# run: |
# python3 scripts/progress.py text

# - name: Generate reports
# run: |
# mkdir -p gh-pages/reports
# mkdir -p gh-pages/maps
# python3 sa1/scripts/progress.py csv >> gh-pages/reports/progress-sa1-nonmatching.csv
# python3 sa1/scripts/progress.py csv -m >> gh-pages/reports/progress-sa1-matching.csv
# python3 sa1/scripts/progress.py shield-json > gh-pages/reports/progress-sa1-shield.json
# python3 sa1/scripts/progress.py shield-json -m > gh-pages/reports/progress-sa1-shield-matching.json
# echo "REPORTS_COMMIT_MSG=$( git log --format=%s ${GITHUB_SHA} )" >> $GITHUB_ENV
# cp sa1.map gh-pages/maps/${GITHUB_SHA}.map

# - name: Upload progress
# if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
# uses: actions/upload-artifact@v7
# with:
# path: |
# gh-pages

publish-progress:
name: Publish progress
runs-on: ubuntu-24.04
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ endif
#### MAIN TARGETS ####

# these commands will run regardless of deps being completed
.PHONY: clean tools tidy clean-tools $(TOOLDIRS) libagbsyscall ps2
.PHONY: clean tools tidy clean-tools $(TOOLDIRS) libagbsyscall ps2 sa1

# Ensure required directories exist
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SOUND_ASM_BUILDDIR) $(SONG_BUILDDIR) $(MID_BUILDDIR))
Expand Down Expand Up @@ -436,6 +436,7 @@ tool_libs:
clean: tidy clean-tools
@$(MAKE) clean -C tools/BriBaSA_ex
@$(MAKE) clean -C chao_garden
@$(MAKE) clean -C sa1
@$(MAKE) clean -C multi_boot/subgame_bootstrap
@$(MAKE) clean -C multi_boot/programs/subgame_loader
@$(MAKE) clean -C multi_boot/collect_rings
Expand Down Expand Up @@ -663,6 +664,9 @@ libagbsyscall:
bribasa:
@$(MAKE) -C tools/BriBaSA_ex

sa1:
@$(MAKE) -C sa1

$(TOOLDIRS): tool_libs
@$(MAKE) -C $@

Expand Down
27 changes: 0 additions & 27 deletions graphics.mk
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@

%_tiles_1.4bpp: %_tiles_1.png
$(GFX) $< $@ -num_tiles 1

%_tiles_2.4bpp: %_tiles_2.png
$(GFX) $< $@ -num_tiles 2

%_tiles_4.4bpp: %_tiles_4.png
$(GFX) $< $@ -num_tiles 4

%_tiles_8.4bpp: %_tiles_8.png
$(GFX) $< $@ -num_tiles 8

%_tiles_16.4bpp: %_tiles_16.png
$(GFX) $< $@ -num_tiles 16

%_tiles_32.4bpp: %_tiles_32.png
$(GFX) $< $@ -num_tiles 32

%_tiles_64.4bpp: %_tiles_64.png
$(GFX) $< $@ -num_tiles 64

tileset_%.4bpp: tileset_%.png
$(GFX) $< $@ -ignore_trailing

Expand All @@ -30,12 +8,7 @@ ifeq ($(PLATFORM),win32)
# For experimental OpenGL renderer
GFX_CVT_FLAGS :=
else
# Japan rom compiled without split into oam shapes
ifeq ($(GAME_REGION),JAPAN)
GFX_CVT_FLAGS := -split_into_oam_shapes
else
GFX_CVT_FLAGS := -split_into_oam_shapes
endif
endif

graphics/obj_tiles/4bpp/%.4bpp: graphics/obj_tiles/4bpp/%.png
Expand Down
13 changes: 8 additions & 5 deletions include/bg_triangles.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ typedef struct {
#endif
} TriParam1;

extern void sub_800724C(u8 bg, TriParam1 *param1);
extern void sub_80075D0(u8 bg, int_vcount param1, int_vcount param2, s16 param3, s16 param4, u16 param5);
extern void sub_8007858(u8 param0, int_vcount minY, int_vcount maxY, u16 param3, u16 param4);
extern void sub_80078D4(u8 bg, int_vcount minY, int_vcount maxY, u16 offsetEven, u16 offsetOdd);

extern void SA2_LABEL(sub_8006DB4)(u8 bg, TriParam1 *arg1, s32 unused, s32 arg3);
extern void SA2_LABEL(sub_800724C)(u8 bg, TriParam1 *param1);
extern void SA2_LABEL(sub_80075D0)(u8 bg, int_vcount param1, int_vcount param2, s16 param3, s16 param4, u16 param5);
extern void SA2_LABEL(sub_8007738)(u8 bg, int_vcount minY, int_vcount maxY, u16 param3, u8 param4, u8 param5, u16 param6, u8 param7,
u8 param8, s16 param9, s16 param10);
extern void SA2_LABEL(sub_8007858)(u8 param0, int_vcount minY, int_vcount maxY, u16 param3, u16 param4);
extern void SA2_LABEL(sub_80078D4)(u8 bg, int_vcount minY, int_vcount maxY, u16 offsetEven, u16 offsetOdd);
void SA2_LABEL(sub_8007958)(u8 bg, int_vcount minY, int_vcount maxY, s16 param3, s8 param4, u16 param5, u16 param6);
#endif
9 changes: 8 additions & 1 deletion include/lib/agb_flash/flash_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ extern u8 (*PollFlashStatus)(u8 *);
extern u16 (*WaitForFlashWrite)(u8, u8 *, u8);

extern const struct FlashSetupInfo LE39FW512;
// extern const struct FlashSetupInfo AT29LV512;
extern const struct FlashSetupInfo AT29LV512;
extern const struct FlashSetupInfo MN63F805MNP;
extern const struct FlashSetupInfo MX29L512;
extern const struct FlashSetupInfo DefaultFlash512K;
Expand All @@ -82,11 +82,18 @@ u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
u16 ProgramByte(u8 *src, u8 *dest);

u16 EraseFlashChip_LE(void);
u16 EraseFlashChip_AT(void);
u16 EraseFlashSector_LE(u16 sectorNum);
u16 EraseFlashSector_AT(u16 sectorNum);
u16 ProgramFlashSector_LE(u16 sectorNum, void *src);
u16 ProgramFlashSector_MX(u16 sectorNum, void *src);
u16 ProgramFlashSector_AT(u16 sectorNum, void *src);

// agb_flash_1m
u16 IdentifyFlash(void);

/* Manufacturers and chips */
#define MANUFACTURER_ATMEL 0x1F
#define CHIP_ATMEL_AT29LV512 0x3D

#endif // GUARD_GBA_FLASH_INTERNAL_H
8 changes: 4 additions & 4 deletions include/rect.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ typedef struct {

/* Rect collision checks using integer values
Clones of the RECT_ ,macros that access values directly */
#define HB_WIDTH(hb) ((hb).right - (hb).left)
#define HB_HEIGHT(hb) ((hb).bottom - (hb).top)
#define HB_LEFT(x, hb) ((x) + hb.left)
#define HB_WIDTH(hb) ((hb).b.right - (hb).b.left)
#define HB_HEIGHT(hb) ((hb).b.bottom - (hb).b.top)
#define HB_LEFT(x, hb) ((x) + hb.b.left)
#define HB_RIGHT(x, hb) (HB_LEFT((x), (hb)) + HB_WIDTH(hb))
#define HB_TOP(y, hb) ((y) + hb.top)
#define HB_TOP(y, hb) ((y) + hb.b.top)
#define HB_BOTTOM(y, hb) (HB_TOP(y, hb) + HB_HEIGHT(hb))

#define HB_COLLISION_A_X(x0, hb0, x1, hb1) (HB_LEFT(x0, hb0) <= HB_LEFT(x1, hb1) && HB_RIGHT(x0, hb0) >= HB_LEFT(x1, hb1))
Expand Down
51 changes: 36 additions & 15 deletions include/sprite.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
#define GUARD_SPRITE_H

#include "global.h"
#include "rect.h"
#include "malloc_vram.h"

typedef u16 AnimId;

struct GraphicsData {
typedef struct GraphicsData {
/* 0x00 */ const void *src;
/* 0x04 */ void *dest;
/* 0x08 */ u16 size;
/* 0x0A */ AnimId anim;
};
} GraphicsData;

// TODO: Put this somewhere else! (or is this already somewhere?)
#define TileMask_Index (0x3FF)
Expand Down Expand Up @@ -157,12 +158,7 @@ typedef struct {
typedef struct {
// index: -1 on init; lower 4 bits = index (in anim-cmds)
/* 0x00 */ s32 index;

// TODO: Make this a Rect8, like in SA1 and SA3!
/* 0x04 */ s8 left;
/* 0x05 */ s8 top;
/* 0x06 */ s8 right;
/* 0x07 */ s8 bottom;
/* 0x04 */ Rect8 b;
} Hitbox;

#define SPRITE_ANIM_SPEED(speed) ((int)((float)(speed)*0x10))
Expand Down Expand Up @@ -267,6 +263,27 @@ PACKED(TileInfo16, {
/* 0x04 */ u16 variant;
});

#if (ENGINE == ENGINE_1)
typedef struct {
u32 anim : 16;
u32 variant : 8;
u32 size : 8;
} TileInfoBitfield;

// Used in the background code of Casino Paradise
// TODO: Rename TileInfoFirework!
typedef struct {
/* 0x00 */ AnimId anim;
/* 0x04 */ u8 variant;
/* 0x06 */ u8 numTiles;
} TileInfoFirework;

typedef struct {
AnimId anim;
u16 variant;
} TileInfoBarrel;
#endif

extern const u8 gOamShapesSizes[12][2];

typedef enum {
Expand All @@ -286,18 +303,19 @@ void ProcessOamBuffers(void);
OamData *OamMalloc(u8 order);

void TransformSprite(Sprite *, SpriteTransform *);
// NOTE: Not actually unused in SA1. TODO: Align name with SA2!
void UnusedTransform(Sprite *, SpriteTransform *);
void sub_8004E14(Sprite *, SpriteTransform *);
void SA2_LABEL(sub_8004E14)(Sprite *, SpriteTransform *);

void sub_8003EE4(u16 p0, s16 p1, s16 p2, s16 p3, s16 p4, s16 p5, s16 p6, BgAffineReg *affine);
void sub_8006228(u8 p0, u8 p1, u8 p2, u8 p3, u8 p4, u8 p5);
void sub_80064A8(u8 p0, u8 p1, u8 p2, u8 p3, u8 p4, u8 p5);
void SA2_LABEL(sub_8003EE4)(u16 p0, s16 p1, s16 p2, s16 p3, s16 p4, s16 p5, s16 p6, BgAffineReg *affine);
void SA2_LABEL(sub_8006228)(u8 p0, u8 p1, u8 p2, u8 p3, u8 p4, u8 p5);
void SA2_LABEL(sub_80064A8)(u8 p0, u8 p1, u8 p2, u8 p3, u8 p4, u8 p5);

s32 UpdateSpriteAnimation_BG(Sprite *);
void DisplaySprite_BG(Sprite *);
void sub_80047A0(u16, s16, s16, u16);
void SA2_LABEL(sub_80047A0)(u16 angle, s16 p1, s16 p2, u16 affineIndex);

s16 sub_8004418(s16 x, s16 y);
s16 SA2_LABEL(sub_8004418)(s16 x, s16 y);
void numToASCII(u8 digits[5], u16 number);

#if ((GAME == GAME_SA1) || (GAME == GAME_SA2))
Expand Down Expand Up @@ -326,7 +344,7 @@ void numToASCII(u8 digits[5], u16 number);

#define SPRITE_INIT_SCRIPT(_sprite, _speed) \
_sprite->animCursor = 0; \
_sprite->qAnimDelay = 0; \
_sprite->qAnimDelay = Q(0); \
_sprite->prevVariant = -1; \
_sprite->animSpeed = SPRITE_ANIM_SPEED(_speed); \
_sprite->palId = 0; \
Expand Down Expand Up @@ -375,6 +393,9 @@ void numToASCII(u8 digits[5], u16 number);

#define SPRITE_FLAG_SET_VALUE(sprite, flagName, value) (sprite)->frameFlags |= SPRITE_FLAG(flagName, value)

#define SPRITE_FLAG_ENABLE_ROTATION(value) \
(SPRITE_FLAG(ROT_SCALE, value) | SPRITE_FLAG_MASK_ROT_SCALE_ENABLE | SPRITE_FLAG_MASK_ROT_SCALE_DOUBLE_SIZE)

#define SPRITE_FLAG_SHIFT_ROT_SCALE 0
#define SPRITE_FLAG_SHIFT_ROT_SCALE_ENABLE 5
#define SPRITE_FLAG_SHIFT_ROT_SCALE_DOUBLE_SIZE 6
Expand Down
Loading
Loading