Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More shiftability fixes #1203

Merged
merged 15 commits into from
Sep 12, 2024
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ intervaltree
n64img
python-githooks
crunch64>=0.5.1
spimdisasm>=1.28.1
splat64>=0.27.0
spimdisasm>=1.30.0
splat64>=0.27.2
requests
3 changes: 2 additions & 1 deletion src/7E9D0.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
#include "ld_addrs.h"

#ifdef SHIFT
#define PLAYER_ACTION_VRAM_DEF texture_memory_VRAM_END
extern Addr world_action_CLASS_VRAM;
#define PLAYER_ACTION_VRAM_DEF world_action_CLASS_VRAM
#else
#define PLAYER_ACTION_VRAM_DEF (void*) 0x802B6000
#endif
Expand Down
2 changes: 1 addition & 1 deletion src/effects.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ s32 load_effect(s32 effectIndex) {

// Map space for the effect
tlbMappablePages = &D_80197000;
osMapTLB(i, 0, effectEntry->dmaDest, (s32)((*tlbMappablePages)[i]) & 0xFFFFFF, -1, -1);
osMapTLB(i, OS_PM_4K, effectEntry->dmaDest, (s32)((*tlbMappablePages)[i]) & 0xFFFFFF, -1, -1);

// Copy the effect into the newly mapped space
dma_copy(effectEntry->dmaStart, effectEntry->dmaEnd, effectEntry->dmaDest);
Expand Down
16 changes: 8 additions & 8 deletions src/heaps.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
typedef s32 TlbEntry[0x1000 / 4];
typedef TlbEntry TlbMappablePage[15];

BSS TlbMappablePage D_80197000;
BSS u8 D_801A6000[0x1000];
BSS u8 BattleEntityHeapBottom[0x3000];
BSS u8 AuHeapBase[AUDIO_HEAP_SIZE];
BSS u8 D_80200000[0x4000];
BSS u8 D_80204000[0x3000];
BSS u8 D_80207000[0x3000];
BSS u8 D_8020A000[0x6000];
BSS TlbMappablePage D_80197000 ALIGNED(0x1000);
BSS u8 D_801A6000[0x1000] ALIGNED(0x1000);
BSS u8 BattleEntityHeapBottom[0x3000] ALIGNED(0x1000);
BSS u8 AuHeapBase[AUDIO_HEAP_SIZE] ALIGNED(0x1000);
BSS u8 D_80200000[0x4000] ALIGNED(0x1000);
BSS u8 D_80204000[0x3000] ALIGNED(0x1000);
BSS u8 D_80207000[0x3000] ALIGNED(0x1000);
BSS u8 D_8020A000[0x6000] ALIGNED(0x1000);
BSS ShapeFile gMapShapeData;
4 changes: 2 additions & 2 deletions src/msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -632,8 +632,8 @@ void msg_play_speech_sound(MessagePrintState* printer, u8 character) {

extern s32 gItemIconRasterOffsets[];
extern s32 gItemIconPaletteOffsets[];
extern u8* MsgLetterRasterOffsets[];
extern u16* MsgLetterPaletteOffsets[];
extern IMG_PTR MsgLetterRasterOffsets[];
extern PAL_PTR MsgLetterPaletteOffsets[];
extern MsgVoice MsgVoices[];

#if VERSION_PAL
Expand Down
4 changes: 2 additions & 2 deletions src/msg_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -875,7 +875,7 @@ MessageCharset* MsgCharsets[] = {
NULL
};

u8* MsgLetterRasterOffsets[] = {
IMG_PTR MsgLetterRasterOffsets[] = {
charset_letter_content_1_OFFSET,
charset_letter_content_2_OFFSET,
charset_letter_content_3_OFFSET,
Expand All @@ -890,7 +890,7 @@ u8* MsgLetterRasterOffsets[] = {
charset_letter_content_12_OFFSET,
};

u16* MsgLetterPaletteOffsets[] = {
PAL_PTR MsgLetterPaletteOffsets[] = {
charset_letter_content_1_pal_OFFSET,
charset_letter_content_2_pal_OFFSET,
charset_letter_content_3_pal_OFFSET,
Expand Down
29 changes: 15 additions & 14 deletions src/world/area_kmr/kmr_20/documents.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,20 +99,21 @@ s32 N(LetterBodyStringIDs)[] = {
MSG_Document_Letter_Mario12_Body,
};

u8* N(LetterDmaOffsets)[] = {
charset_postcard_OFFSET, (u8*) charset_postcard_pal_OFFSET,
charset_letter_content_1_OFFSET, (u8*) charset_letter_content_1_pal_OFFSET,
charset_letter_content_2_OFFSET, (u8*) charset_letter_content_2_pal_OFFSET,
charset_letter_content_3_OFFSET, (u8*) charset_letter_content_3_pal_OFFSET,
charset_letter_content_4_OFFSET, (u8*) charset_letter_content_4_pal_OFFSET,
charset_letter_content_5_OFFSET, (u8*) charset_letter_content_5_pal_OFFSET,
charset_letter_content_6_OFFSET, (u8*) charset_letter_content_6_pal_OFFSET,
charset_letter_content_7_OFFSET, (u8*) charset_letter_content_7_pal_OFFSET,
charset_letter_content_8_OFFSET, (u8*) charset_letter_content_8_pal_OFFSET,
charset_letter_content_9_OFFSET, (u8*) charset_letter_content_9_pal_OFFSET,
charset_letter_content_10_OFFSET, (u8*) charset_letter_content_10_pal_OFFSET,
charset_letter_content_11_OFFSET, (u8*) charset_letter_content_11_pal_OFFSET,
charset_letter_content_12_OFFSET, (u8*) charset_letter_content_12_pal_OFFSET,
// TODO mix of image / palette pointers
IMG_PTR N(LetterDmaOffsets)[] = {
charset_postcard_OFFSET, (IMG_PTR) charset_postcard_pal_OFFSET,
charset_letter_content_1_OFFSET, (IMG_PTR) charset_letter_content_1_pal_OFFSET,
charset_letter_content_2_OFFSET, (IMG_PTR) charset_letter_content_2_pal_OFFSET,
charset_letter_content_3_OFFSET, (IMG_PTR) charset_letter_content_3_pal_OFFSET,
charset_letter_content_4_OFFSET, (IMG_PTR) charset_letter_content_4_pal_OFFSET,
charset_letter_content_5_OFFSET, (IMG_PTR) charset_letter_content_5_pal_OFFSET,
charset_letter_content_6_OFFSET, (IMG_PTR) charset_letter_content_6_pal_OFFSET,
charset_letter_content_7_OFFSET, (IMG_PTR) charset_letter_content_7_pal_OFFSET,
charset_letter_content_8_OFFSET, (IMG_PTR) charset_letter_content_8_pal_OFFSET,
charset_letter_content_9_OFFSET, (IMG_PTR) charset_letter_content_9_pal_OFFSET,
charset_letter_content_10_OFFSET, (IMG_PTR) charset_letter_content_10_pal_OFFSET,
charset_letter_content_11_OFFSET, (IMG_PTR) charset_letter_content_11_pal_OFFSET,
charset_letter_content_12_OFFSET, (IMG_PTR) charset_letter_content_12_pal_OFFSET,
};

API_CALLABLE(N(InitLetters)){
Expand Down
19 changes: 5 additions & 14 deletions tools/build/configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,20 +93,11 @@ def write_ninja_rules(
ld_args = f"-T ver/$version/build/undefined_syms.txt -T ver/$version/undefined_syms_auto.txt -T ver/$version/undefined_funcs_auto.txt -Map $mapfile --no-check-sections -T $in -o $out"
ld = f"{cross}ld" if not "PAPERMARIO_LD" in os.environ else os.environ["PAPERMARIO_LD"]

if shift:
# For the shiftable build, we link twice to resolve some addresses that gnu ld can't figure out all in one go.
ninja.rule(
"ld",
description="link($version) $out",
command=f"{ld} $$(tools/build/ld/multilink_calc.py $version hardcode) {ld_args} && \
{ld} $$(tools/build/ld/multilink_calc.py $version calc) {ld_args}",
)
else:
ninja.rule(
"ld",
description="link($version) $out",
command=f"{ld} {ld_args}",
)
ninja.rule(
"ld",
description="link($version) $out",
command=f"{ld} {ld_args}",
)

ninja.rule(
"shape_ld",
Expand Down
90 changes: 0 additions & 90 deletions tools/build/ld/multilink_calc.py

This file was deleted.

1 change: 1 addition & 0 deletions ver/ique/splat-shift.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
options:
ld_use_symbolic_vram_addresses: True
emit_subalign: False
1 change: 1 addition & 0 deletions ver/jp/splat-shift.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
options:
ld_use_symbolic_vram_addresses: True
emit_subalign: False
1 change: 1 addition & 0 deletions ver/pal/splat-shift.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
options:
ld_use_symbolic_vram_addresses: True
emit_subalign: False
1 change: 1 addition & 0 deletions ver/us/splat-shift.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
options:
ld_use_symbolic_vram_addresses: True
emit_subalign: False
4 changes: 2 additions & 2 deletions ver/us/splat.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ vram_classes:
# Totally linear past this point
- { name: texture_memory, vram: 0x8028E000, follows_classes: [battle_code, world_script_api] }
- { name: world_action, vram: 0x802B6000, follows_classes: [texture_memory] }
- { name: indicator_icon, vram: 0x802B7000, vram_symbol: world_action_vram_end } # follows_classes: [world_action] }
- { name: indicator_icon, vram: 0x802B7000, follows_classes: [world_action] }
- { name: model_clear_render_tasks, vram: 0x802B7E00, follows_classes: [indicator_icon] }
- { name: area_entities, vram: 0x802BAE00, vram_symbol: model_clear_render_tasks_VRAM_END }
- { name: world_partner, vram: 0x802BD100, vram_symbol: entity_data_vram_end } # follows_classes: [area_entities] }
- { name: world_partner, vram: 0x802BD100, follows_classes: [area_entities] }
- { name: world_use_item, vram: 0x802C0000, follows_classes: [world_partner] }
- { name: evt, vram: 0x802C3000, vram_symbol: world_use_item_VRAM_END }
- { name: engine4, vram: 0x802DBD40, vram_symbol: evt_VRAM_END }
Expand Down
Loading