summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/courses/banshee_boardwalk.json42
-rw-r--r--assets/courses/bowsers_castle.json10
-rw-r--r--assets/courses/choco_mountain.json4
-rw-r--r--assets/courses/dks_jungle_parkway.json21
-rw-r--r--assets/courses/frappe_snowland.json12
-rw-r--r--assets/courses/kalimari_desert.json32
-rw-r--r--assets/courses/koopa_troopa_beach.json17
-rw-r--r--assets/courses/luigi_raceway.json6
-rw-r--r--assets/courses/mario_raceway.json14
-rw-r--r--assets/courses/moo_moo_farm.json28
-rw-r--r--assets/courses/rainbow_road.json44
-rw-r--r--assets/courses/royal_raceway.json3
-rw-r--r--assets/courses/sherbet_land.json5
-rw-r--r--assets/courses/toads_turnpike.json40
-rw-r--r--assets/courses/wario_stadium.json6
-rw-r--r--assets/courses/yoshi_valley.json7
-rw-r--r--src/code_8006E9C0.c2
-rw-r--r--src/code_80091750.c192
-rw-r--r--yamls/us/other_textures.yml2
19 files changed, 103 insertions, 384 deletions
diff --git a/assets/courses/banshee_boardwalk.json b/assets/courses/banshee_boardwalk.json
deleted file mode 100644
index 0735aad3f..000000000
--- a/assets/courses/banshee_boardwalk.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-"gTLUTBoo": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x5C80", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureBansheeBoardwalkFishEyes": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x6E50", "width": 32, "height": 32, "type": "rgba16"},
-"gTLUTBat": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x7BB8", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureBat1": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x7DB8", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTBat"},
-"gTextureBat2": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x85B8", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTBat"},
-"gTextureBat3": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x8DB8", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTBat"},
-"gTextureBat4": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0x95B8", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTBat"},
-
-"gTextureBansheBoardwalkA050": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0xA050", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureBansheBoardwalkAA78": {"output_dir": "banshee_boardwalk", "rom_offset": "0x831DC0", "block_offset": "0xAA78", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureBoo01": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x00000", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo02": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x00780", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo03": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x00F00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo04": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x01680", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo05": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x01E00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo06": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x02580", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo07": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x02D00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo08": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x03480", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo09": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x03C00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo10": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x04380", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo11": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x04B00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo12": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x05280", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo13": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x05A00", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo14": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x06180", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo15": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x06900", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo16": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x07080", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo17": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x07800", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo18": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x07F80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo19": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x08700", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo20": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x08E80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo21": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x09600", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo22": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x09D80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo23": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0A500", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo24": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0AC80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo25": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0B400", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo26": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0BB80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo27": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0C300", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo28": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0CA80", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"},
-"gTextureBoo29": {"output_dir": "banshee_boardwalk", "rom_offset": "0x712DC0", "block_offset": "0x0D200", "width": 48, "height": 40, "type": "ci8", "tlut": "gTLUTBoo"}
-}
diff --git a/assets/courses/bowsers_castle.json b/assets/courses/bowsers_castle.json
deleted file mode 100644
index 734828109..000000000
--- a/assets/courses/bowsers_castle.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-"gTextureThwompSide": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x6738", "width": 32, "height": 32, "type": "rgba16"},
-"gTLUTThwomp": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x6F38", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureThwompFace1": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x7138", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"},
-"gTextureThwompFace2": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x7538", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"},
-"gTextureThwompFace3": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x7938", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"},
-"gTextureThwompFace4": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x7D38", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"},
-"gTextureThwompFace5": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x8138", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"},
-"gTextureThwompFace6": {"output_dir": "bowsers_castle", "rom_offset": "0x82DF40", "block_offset": "0x8538", "width": 16, "height": 64, "type": "ci8", "tlut": "gTLUTThwomp"}
-}
diff --git a/assets/courses/choco_mountain.json b/assets/courses/choco_mountain.json
deleted file mode 100644
index f9627e313..000000000
--- a/assets/courses/choco_mountain.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-"gTextureChocoMountainWall": {"output_dir": "choco_mountain", "rom_offset": "0x82B620", "block_offset": "0x05B38", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureChocoMountainRock": {"output_dir": "choco_mountain", "rom_offset": "0x82B620", "block_offset": "0x06338", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/dks_jungle_parkway.json b/assets/courses/dks_jungle_parkway.json
deleted file mode 100644
index 6c1338df7..000000000
--- a/assets/courses/dks_jungle_parkway.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-"gTextureDksJungleParkwayBoatMarioSign": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x09E48", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTreeBark": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0AE48", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayBoatWindowUpper": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0B648", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureDksJungleParkwayBoatWindowLower": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0C648", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureDksJungleParkwayBoatRailing": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0D648", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayBoatPaddle1": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0EAE0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayBoatPaddle2": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0F2E0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTree2Top": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x0FCC0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTree2Trunk": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x104C0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTree3TopRight": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x10DC8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTree3TopLeft": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x115C8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTreeTrunk": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x11EF0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayTree1Top": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x126F0", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureDksJungleParkwayPalmTreeTop": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x13078", "width": 32, "height": 32, "type": "rgba16"},
-"gTLUTDksJungleParkwayKiwanoFruit": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x885A10", "block_offset": "0x13978", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTextureDksJungleParkwayKiwanoFruit1": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x699E24", "width": 32, "height": 32, "type": "ci8", "tlut": "gTLUTDksJungleParkwayKiwanoFruit"},
-"gTextureDksJungleParkwayKiwanoFruit2": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x69A154", "width": 32, "height": 32, "type": "ci8", "tlut": "gTLUTDksJungleParkwayKiwanoFruit"},
-"gTextureDksJungleParkwayKiwanoFruit3": {"output_dir": "dks_jungle_parkway", "rom_offset": "0x69A4C0", "width": 32, "height": 32, "type": "ci8", "tlut": "gTLUTDksJungleParkwayKiwanoFruit"}
-}
diff --git a/assets/courses/frappe_snowland.json b/assets/courses/frappe_snowland.json
deleted file mode 100644
index 788e3261c..000000000
--- a/assets/courses/frappe_snowland.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-"gTLUTSnowman": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x4B20", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureSnowmanHead": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x4D20", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTSnowman"},
-"gTextureSnowmanBody": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x5D20", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTSnowman"},
-
-"gTLUTSnow": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x6D20", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureSnow": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x6F20", "width": 32, "height": 32, "type": "ci8", "tlut": "gTLUTSnow"},
-
-"gTLUTFrappeSnowlandTree": {"output_dir": "frappe_snowland", "rom_offset": "0x83F740", "block_offset": "0x7320", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureFrappeSnowlandTreeLeft": {"output_dir": "frappe_snowland", "rom_offset": "0x69333C", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTFrappeSnowlandTree"},
-"gTextureFrappeSnowlandTreeRight": {"output_dir": "frappe_snowland", "rom_offset": "0x693790", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTFrappeSnowlandTree"}
-}
diff --git a/assets/courses/kalimari_desert.json b/assets/courses/kalimari_desert.json
deleted file mode 100644
index 0a2416d18..000000000
--- a/assets/courses/kalimari_desert.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-"gTLUTCactus": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x08380", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTCactusImport": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x08380", "width": 4, "height": 29, "type": "rgba16"},
-"gTextureCactus1Left": {"output_dir": "kalimari_desert", "rom_offset": "0x695BA4", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCactus"},
-"gTextureCactus1Right": {"output_dir": "kalimari_desert", "rom_offset": "0x695EE4", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCactus"},
-"gTextureCactus2Left": {"output_dir": "kalimari_desert", "rom_offset": "0x6961E0", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCactus"},
-"gTextureCactus2Right": {"output_dir": "kalimari_desert", "rom_offset": "0x696488", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCactus"},
-"gTextureCactus3": {"output_dir": "kalimari_desert", "rom_offset": "0x6967FC", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCactus"},
-
-"gTextureCrossingSignalInactiveTopLeft": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x087E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalInactiveTopRight": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x097E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalInactiveBottomLeft": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0A7E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalInactiveBottomRight": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0B7E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalActiveTopLeft": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0C7E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalActiveTopRight": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0D7E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalActiveBottomLeft": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0E7E8", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCrossingSignalActiveBottomRight": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x0F7E8", "width": 32, "height": 64, "type": "rgba16"},
-
-"gTextureLocomotive64": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x10E60", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureLocomotiveCabWindow": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x11660", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureLocomotiveCabWindowFront": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x12660", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureLocomotiveChasis": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x13660", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureLocomotiveLamp": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x13E60", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureLocomotiveBoiler": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x14660", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureCarriageRailing": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x14E60", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureLocomotiveTender": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x15E60", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureLocomotiveBallast": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x16E60", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureCarriageLower": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x17660", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureCarriageDoor": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x17E60", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureCarriageWindow": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x18E60", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureLocomotiveBogie": {"output_dir": "kalimari_desert", "rom_offset": "0x8666A0", "block_offset": "0x21D28", "width": 32, "height": 64, "type": "rgba16"}
-}
diff --git a/assets/courses/koopa_troopa_beach.json b/assets/courses/koopa_troopa_beach.json
deleted file mode 100644
index 91662d6aa..000000000
--- a/assets/courses/koopa_troopa_beach.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-"gTLUTCrab": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x0D628", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureCrab1": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x0D828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab2": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x0E828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab3": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x0F828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab4": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x10828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab5": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x11828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab6": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x12828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-"gTextureCrab7": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x13828", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTCrab"},
-
-"gTextureKoopaTroopaBirdWing": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x14C00", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureKoopaTroopaBirdEye": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x15400", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureKoopaTroopaBirdBeak": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x15C00", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureKoopaTroopaPalmFrond": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x16D20", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureKoopaTroopaPalmTrunk": {"output_dir": "koopa_troopa_beach", "rom_offset": "0x842E40", "block_offset": "0x17D20", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/luigi_raceway.json b/assets/courses/luigi_raceway.json
deleted file mode 100644
index a2af38a60..000000000
--- a/assets/courses/luigi_raceway.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-"gTextureLuigiRacewaySignLeft": {"output_dir": "luigi_raceway", "rom_offset": "0x84E8E0", "block_offset": "0x0C588", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureLuigiRacewaySignRight": {"output_dir": "luigi_raceway", "rom_offset": "0x84E8E0", "block_offset": "0x0D588", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureLuigiRacewayBalloonBasket": {"output_dir": "luigi_raceway", "rom_offset": "0x84E8E0", "block_offset": "0x0E588", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureLuigiRacewayBalloonRope": {"output_dir": "luigi_raceway", "rom_offset": "0x84E8E0", "block_offset": "0x0ED88", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/mario_raceway.json b/assets/courses/mario_raceway.json
deleted file mode 100644
index f6d2a9c78..000000000
--- a/assets/courses/mario_raceway.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-"gTextureMarioRacewaySignLeft": {"output_dir": "mario_raceway", "rom_offset": "0x8284D0", "block_offset": "0x7068", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureMarioRacewaySignRight": {"output_dir": "mario_raceway", "rom_offset": "0x8284D0", "block_offset": "0x8068", "width": 32, "height": 64, "type": "rgba16"},
-"gTLUTMarioRacewayPiranhaPlant": {"output_dir": "mario_raceway", "rom_offset": "0x8284D0", "block_offset": "0x6750", "width": 16, "height": 16, "type": "rgba16"},
-"gTexturePiranhaPlant1": {"output_dir": "mario_raceway", "rom_offset": "0x698378", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant2": {"output_dir": "mario_raceway", "rom_offset": "0x69859C", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant3": {"output_dir": "mario_raceway", "rom_offset": "0x6987FC", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant4": {"output_dir": "mario_raceway", "rom_offset": "0x698A40", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant5": {"output_dir": "mario_raceway", "rom_offset": "0x698C60", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant6": {"output_dir": "mario_raceway", "rom_offset": "0x698E38", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant7": {"output_dir": "mario_raceway", "rom_offset": "0x698FF4", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant8": {"output_dir": "mario_raceway", "rom_offset": "0x6991F8", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"},
-"gTexturePiranhaPlant9": {"output_dir": "mario_raceway", "rom_offset": "0x699500", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMarioRacewayPiranhaPlant"}
-}
diff --git a/assets/courses/moo_moo_farm.json b/assets/courses/moo_moo_farm.json
deleted file mode 100644
index 8b6b6e9e9..000000000
--- a/assets/courses/moo_moo_farm.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-"gTLUTMole": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0xFC70", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureMole1": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x0FE70", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole2": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x10670", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole3": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x10E70", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole4": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x11670", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole5": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x11E70", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole6": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x12670", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-"gTextureMole7": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x12E70", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTMole"},
-
-"gTextureMooMooFarmDirt": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x13670", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTLUTCowImport": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x13870", "width": 12, "height": 17, "type": "rgba16"},
-"gTLUTCow": {"output_dir": "moo_moo_farm", "rom_offset": "0x852E20", "block_offset": "0x13870", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureCow01Left": {"output_dir": "moo_moo_farm", "rom_offset": "0x693BC4", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow01Right": {"output_dir": "moo_moo_farm", "rom_offset": "0x693F48", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow02Left": {"output_dir": "moo_moo_farm", "rom_offset": "0x69429C", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow02Right": {"output_dir": "moo_moo_farm", "rom_offset": "0x694628", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow03Left": {"output_dir": "moo_moo_farm", "rom_offset": "0x694990", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow03Right": {"output_dir": "moo_moo_farm", "rom_offset": "0x694CAC", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow04Left": {"output_dir": "moo_moo_farm", "rom_offset": "0x694F7C", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow04Right": {"output_dir": "moo_moo_farm", "rom_offset": "0x695268", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow05Left": {"output_dir": "moo_moo_farm", "rom_offset": "0x6955AC", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-"gTextureCow05Right": {"output_dir": "moo_moo_farm", "rom_offset": "0x6958C0", "width": 32, "height": 64, "type": "ci8", "tlut": "gTLUTCow"},
-
-"gTextureMooMooFarmSignLeft": {"output_dir": "moo_moo_farm", "rom_offset": "0x6497E0", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureMooMooFarmSignRight": {"output_dir": "moo_moo_farm", "rom_offset": "0x64A248", "width": 64, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/rainbow_road.json b/assets/courses/rainbow_road.json
deleted file mode 100644
index a0bbcd39f..000000000
--- a/assets/courses/rainbow_road.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-"gTLUTRainbowRoadNeonMushroom1": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05400", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMushroom2": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05600", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMushroom3": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05800", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMushroom4": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05A00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMushroom5": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05C00", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTLUTRainbowRoadNeonMario1": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x05E00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMario2": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06000", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMario3": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06200", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMario4": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06400", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonMario5": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06600", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTLUTRainbowRoadNeonBoo1": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06800", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonBoo2": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06A00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonBoo3": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06C00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonBoo4": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x06E00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonBoo5": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07000", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTLUTRainbowRoadNeonPeach": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07200", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonLuigi": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07400", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonDonkeyKong": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07600", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonYoshi": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07800", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonBowser": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07A00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonWario": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07C00", "width": 16, "height": 16, "type": "rgba16"},
-"gTLUTRainbowRoadNeonToad": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x07E00", "width": 16, "height": 16, "type": "rgba16"},
-
-"gTextureRainbowRoadNeonMushroom": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x08000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonMushroom4"},
-"gTextureRainbowRoadNeonMario": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x09000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonMario5"},
-"gTextureRainbowRoadNeonBoo": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0A000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonBoo5"},
-"gTextureRainbowRoadNeonPeach": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0B000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonPeach"},
-"gTextureRainbowRoadNeonLuigi": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0C000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonLuigi"},
-"gTextureRainbowRoadNeonDonkeyKong": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0D000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonDonkeyKong"},
-"gTextureRainbowRoadNeonYoshi": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0E000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonYoshi"},
-"gTextureRainbowRoadNeonBowser": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x0F000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonBowser"},
-"gTextureRainbowRoadNeonWario": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x10000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonWario"},
-"gTextureRainbowRoadNeonToad": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x11000", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTRainbowRoadNeonToad"},
-
-"gTextureRainbowRoadSphere": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x12028", "width": 32, "height": 64, "type": "rgba16"},
-"gTextureRainbowRoadReflectionMapMetal": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x13028", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureRainbowRoadReflectionMapGold": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x13828", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureRainbowRoadChainChompTongue": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x14028", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureRainbowRoadChainChompEye": {"output_dir": "rainbow_road", "rom_offset": "0x872A00", "block_offset": "0x14828", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/royal_raceway.json b/assets/courses/royal_raceway.json
deleted file mode 100644
index 039d5ad27..000000000
--- a/assets/courses/royal_raceway.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-"gTLUTRoyalRacewayPiranhaPlant": {"output_dir": "royal_raceway", "rom_offset": "0x84ABD0", "block_offset": "0x0D610", "width": 16, "height": 16, "type": "rgba16"}
-}
diff --git a/assets/courses/sherbet_land.json b/assets/courses/sherbet_land.json
deleted file mode 100644
index 1025385ec..000000000
--- a/assets/courses/sherbet_land.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-"gTextureSherbetLandIce": {"output_dir": "sherbet_land", "rom_offset": "0x86ECF0", "block_offset": "0x068E8", "width": 32, "height": 32, "type": "ia16"},
-"gTexturePenguinBeak": {"output_dir": "sherbet_land", "rom_offset": "0x86ECF0", "block_offset": "0x072E8", "width": 32, "height": 32, "type": "rgba16"},
-"gTexturePenguinEye": {"output_dir": "sherbet_land", "rom_offset": "0x86ECF0", "block_offset": "0x07AE8", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/toads_turnpike.json b/assets/courses/toads_turnpike.json
deleted file mode 100644
index 5106f200b..000000000
--- a/assets/courses/toads_turnpike.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-"gTextureToadsTurnpikeTruckWindshieldLeft": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x059B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckWindshieldRight": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x061B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckBox1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x069B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckHeadlights": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x071B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckTyre": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x079B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckCab": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x081B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckCabSide": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x089B8", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureToadsTurnpikeBusBackLod0": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x091B8", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusSide": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0A1B8", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusDoorLod0": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0B1B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusWindow": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0B9B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusFrontLod0": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0C1B8", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusUnknown1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0D1B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusDriverWindow": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0D9B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusDoorLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0E1B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusSideLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0E9B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusFrontLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0F1B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeBusBackLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x0F9B8", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureToadsTurnpikeTankerStripe": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x101B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerWindshield": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x109B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerFront": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x111B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerHeadlights": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x119B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerBumper": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x121B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerSideBackLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x129B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerBackLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x131B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerSideFrontLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x139B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTankerFrontLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x141B8", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureToadsTurnpikeTruckBox2": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x149B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeTruckBox3": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x151B8", "width": 32, "height": 32, "type": "rgba16"},
-
-"gTextureToadsTurnpikeCarHeadlights": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x159B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeCarTaillights": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x161B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeCarFrontLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x169B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeCarBackLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x171B8", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureToadsTurnpikeCarSideLod1": {"output_dir": "toads_turnpike", "rom_offset": "0x857E80", "block_offset": "0x179B8", "width": 32, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/wario_stadium.json b/assets/courses/wario_stadium.json
deleted file mode 100644
index 0e18fc89f..000000000
--- a/assets/courses/wario_stadium.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-"gTextureWarioStadiumSignTopLeft": {"output_dir": "wario_stadium", "rom_offset": "0x8804A0", "block_offset": "0x08890", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureWarioStadiumSignBottomLeft": {"output_dir": "wario_stadium", "rom_offset": "0x8804A0", "block_offset": "0x09890", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureWarioStadiumSignTopRight": {"output_dir": "wario_stadium", "rom_offset": "0x8804A0", "block_offset": "0x0A890", "width": 64, "height": 32, "type": "rgba16"},
-"gTextureWarioStadiumSignBottomRight": {"output_dir": "wario_stadium", "rom_offset": "0x8804A0", "block_offset": "0x0B890", "width": 64, "height": 32, "type": "rgba16"}
-}
diff --git a/assets/courses/yoshi_valley.json b/assets/courses/yoshi_valley.json
deleted file mode 100644
index ff87aaa2b..000000000
--- a/assets/courses/yoshi_valley.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-"gTextureYoshiValleyYoshiFlag": {"output_dir": "yoshi_valley", "rom_offset": "0x835BA0", "block_offset": "0x139A0", "width": 32, "height": 32, "type": "rgba16"},
-"gTLUTYoshiValleyHedgehog": {"output_dir": "yoshi_valley", "rom_offset": "0x835BA0", "block_offset": "0x14908", "width": 16, "height": 16, "type": "rgba16"},
-"gTextureYoshiValleyHedgehog": {"output_dir": "yoshi_valley", "rom_offset": "0x835BA0", "block_offset": "0x14B08", "width": 64, "height": 64, "type": "ci8", "tlut": "gTLUTYoshiValleyHedgehog"},
-"gTextureYoshiValleyEggSpot": {"output_dir": "yoshi_valley", "rom_offset": "0x835BA0", "block_offset": "0x16570", "width": 32, "height": 32, "type": "rgba16"},
-"gTextureYoshiValleyEgg": {"output_dir": "yoshi_valley", "rom_offset": "0x835BA0", "block_offset": "0x16FA8", "width": 64, "height": 32, "type": "rgba16"}
-}
diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c
index 7562e2955..61a1e1495 100644
--- a/src/code_8006E9C0.c
+++ b/src/code_8006E9C0.c
@@ -111,6 +111,8 @@ void clear_object_list() {
u8 *func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset)
{
+ baseAddress = devAddr;
+ return devAddr;
// u8 **tempAddress;
// u8 *address;
// address = baseAddress + offset;
diff --git a/src/code_80091750.c b/src/code_80091750.c
index 90bd01748..301ce6cee 100644
--- a/src/code_80091750.c
+++ b/src/code_80091750.c
@@ -2555,11 +2555,12 @@ void func_80094C60(void) {
add_8018D9E0_entry(0x000000D9, 0, 0, 0x0A);
break;
case START_MENU:
+ // todo: figure this out.
add_8018D9E0_entry(2, 0, 0, 4);
- add_8018D9E0_entry(1, 0, 0, 0);
+ //add_8018D9E0_entry(1, 0, 0, 0);
add_8018D9E0_entry(0x000000FB, 0, 0, 0);
if (gControllerBits & 1) {
- add_8018D9E0_entry(3, 0, 0, 2);
+ //add_8018D9E0_entry(3, 0, 0, 2);
} else {
add_8018D9E0_entry(4, 0, 0, 2);
}
@@ -3494,6 +3495,7 @@ Gfx *func_80098FC8(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) {
}
void dma_copy_base_729a30(u64 *arg0, size_t nbytes, void *vaddr) {
+ vaddr = arg0;
// OSIoMesg sp30;
// OSMesg sp2C;
@@ -3534,6 +3536,8 @@ void *segmented_to_virtual_dupe_2(const void *addr) {
return addr;
}
+#include <assets/player_selection.h>
+
#ifdef NON_MATCHING
// https://decomp.me/scratch/NAZ12
// Register allocation nonsense
@@ -3542,46 +3546,50 @@ void func_80099184(MkTexture *arg0) {
s32 var_v0;
s32 var_a1;
UNUSED s32 temp_s3;
- MkTexture *var_s1;
+ MkTexture *texture = arg0;
UNUSED struct_8018E118_entry *thing;
-
- var_s1 = segmented_to_virtual_dupe(arg0);
- while (var_s1->textureData != NULL) {
+ texture->textureData = gTextureCopyright1996;
+ //texture = segmented_to_virtual_dupe(arg0);
+ printf("TEXTURE DATA: 0x%llX\n", texture->textureData[36]);
+ while (texture->textureData != NULL) {
var_a1 = 0;
for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) {
// wtf is going on here?
- if (D_8018E118[var_v0^0].textureData == (*var_s1).textureData) {
+ if (D_8018E118[var_v0].textureData == (*texture).textureData) {
var_a1 = 1;
break;
}
}
if (var_a1 == 0) {
- if (var_s1->type == 3) {
- if (var_s1->size != 0) {
- var_a1_2 = var_s1->size;
+ if (texture->type == 3) {
+ if (texture->size != 0) {
+ var_a1_2 = texture->size;
} else {
var_a1_2 = 0x1000;
}
if (var_a1_2 % 8) {
var_a1_2 = ((var_a1_2 / 8) * 8) + 8;
}
- dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4);
+ dma_copy_base_729a30(texture->textureData, var_a1_2, D_8018D9B4);
mio0decode(D_8018D9B4, (u8*)&D_8018D9B0[gD_8018E118TotalSize]);
} else {
- dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2, &D_8018D9B0[gD_8018E118TotalSize]);
+ dma_copy_base_729a30(texture->textureData, texture->height * texture->width * 2, &D_8018D9B0[gD_8018E118TotalSize]);
}
+
thing = &D_8018E118[gNumD_8018E118Entries];
- thing->textureData = var_s1->textureData;
+ thing->textureData = texture->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing->offset = gD_8018E118TotalSize;
- gD_8018E118TotalSize += (var_s1->height * var_s1->width);
+ gD_8018E118TotalSize += (texture->height * texture->width);
gNumD_8018E118Entries += 1;
gD_8018E118TotalSize = ((gD_8018E118TotalSize / 8) * 8) + 8;
}
- var_s1++;
+ //texture++;
+ break;
}
+ printf("DID IT FAIL HERE?!?!?!?\n");
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099184.s")
@@ -3895,82 +3903,82 @@ void func_80099E60(MkTexture *arg0, s32 arg1, s32 arg2) {
// Some fakematch nonsense, may or may not be necessary
// Issue is with instruction ordering near the first `osPiStartDma` call
void func_80099EC4(void) {
- // s8 var_s4;
- // s32 var_s0;
- // UNUSED s32 stackPadding0;
- // UNUSED s32 stackPadding1;
- // OSIoMesg sp68;
- // OSMesg sp64;
- // s32 huh;
- // u8 *test;
- // MkTexture *temp_s2;
- // struct_8018E0E8_entry *var_s1;
-
- // var_s4 = 0;
- // var_s1 = D_8018E0E8;
- // temp_s2 = var_s1->mk64Texture;
-
- // if (temp_s2 == NULL) return;
-
- // huh = temp_s2->size;
- // if (huh != 0) {
- // var_s0 = huh;
- // } else {
- // var_s0 = 0x1400;
- // }
- // if (var_s0 % 8) {
- // var_s0 = ((var_s0 / 8) * 8) + 8;
- // }
- // osInvalDCache(D_8018D9B4, var_s0);
- // test = &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)];
- // osPiStartDma(&sp68, 0, 0, (uintptr_t)test, D_8018D9B4, var_s0, &gDmaMesgQueue);
- // if ((var_s0 && var_s0) && var_s0) {}
- // // osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
- // osRecvMesg(&gDmaMesgQueue, &sp64, 1);
- // while (1) {
- // if ((var_s1 + 1)->mk64Texture == NULL) {
- // var_s4 += 1;
- // } else {
- // temp_s2 = (var_s1 + 1)->mk64Texture;
- // huh = (var_s1 + 1)->mk64Texture->size;
- // if (huh != 0) {
- // var_s0 = huh;
- // } else {
- // var_s0 = 0x1400;
- // }
- // if (var_s0 % 8) {
- // var_s0 = ((var_s0 / 8) * 8) + 8;
- // }
- // osInvalDCache(D_8018D9B4 + 0x1400, var_s0);
- // osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + 0x1400, var_s0, &gDmaMesgQueue);
- // }
- // mio0decode(D_8018D9B4, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
- // var_s1->mk64Texture = NULL;
- // var_s1++;
- // if (var_s4 != 0) break;
- // osRecvMesg(&gDmaMesgQueue, &sp64, 1);
- // if ((var_s1 + 1)->mk64Texture == NULL) {
- // var_s4 += 1;
- // } else {
- // temp_s2 = (var_s1 + 1)->mk64Texture;
- // huh = (var_s1 + 1)->mk64Texture->size;
- // if (huh != 0) {
- // var_s0 = huh;
- // } else {
- // var_s0 = 0x1400;
- // }
- // if (var_s0 % 8) {
- // var_s0 = ((var_s0 / 8) * 8) + 8;
- // }
- // osInvalDCache(D_8018D9B4, var_s0);
- // osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
- // }
- // mio0decode(D_8018D9B4 + 0x1400, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
- // var_s1->mk64Texture = NULL;
- // var_s1++;
- // if (var_s4 != 0) break;
- // osRecvMesg(&gDmaMesgQueue, &sp64, 1);
- // }
+ s8 var_s4;
+ s32 var_s0;
+ UNUSED s32 stackPadding0;
+ UNUSED s32 stackPadding1;
+ OSIoMesg sp68;
+ OSMesg sp64;
+ s32 huh;
+ u8 *test;
+ MkTexture *temp_s2;
+ struct_8018E0E8_entry *var_s1;
+
+ var_s4 = 0;
+ var_s1 = D_8018E0E8;
+ temp_s2 = var_s1->mk64Texture;
+
+ if (temp_s2 == NULL) return;
+
+ huh = temp_s2->size;
+ if (huh != 0) {
+ var_s0 = huh;
+ } else {
+ var_s0 = 0x1400;
+ }
+ if (var_s0 % 8) {
+ var_s0 = ((var_s0 / 8) * 8) + 8;
+ }
+ osInvalDCache(D_8018D9B4, var_s0);
+ //test = &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)];
+ //osPiStartDma(&sp68, 0, 0, (uintptr_t)test, D_8018D9B4, var_s0, &gDmaMesgQueue);
+ if ((var_s0 && var_s0) && var_s0) {}
+ // osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
+ osRecvMesg(&gDmaMesgQueue, &sp64, 1);
+ while (1) {
+ if ((var_s1 + 1)->mk64Texture == NULL) {
+ var_s4 += 1;
+ } else {
+ temp_s2 = (var_s1 + 1)->mk64Texture;
+ huh = (var_s1 + 1)->mk64Texture->size;
+ if (huh != 0) {
+ var_s0 = huh;
+ } else {
+ var_s0 = 0x1400;
+ }
+ if (var_s0 % 8) {
+ var_s0 = ((var_s0 / 8) * 8) + 8;
+ }
+ osInvalDCache(D_8018D9B4 + 0x1400, var_s0);
+ //osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + 0x1400, var_s0, &gDmaMesgQueue);
+ }
+ mio0decode(D_8018D9B4, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
+ var_s1->mk64Texture = NULL;
+ var_s1++;
+ if (var_s4 != 0) break;
+ osRecvMesg(&gDmaMesgQueue, &sp64, 1);
+ if ((var_s1 + 1)->mk64Texture == NULL) {
+ var_s4 += 1;
+ } else {
+ temp_s2 = (var_s1 + 1)->mk64Texture;
+ huh = (var_s1 + 1)->mk64Texture->size;
+ if (huh != 0) {
+ var_s0 = huh;
+ } else {
+ var_s0 = 0x1400;
+ }
+ if (var_s0 % 8) {
+ var_s0 = ((var_s0 / 8) * 8) + 8;
+ }
+ osInvalDCache(D_8018D9B4, var_s0);
+ //osPiStartDma(&sp68, 0, 0, (uintptr_t)&_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
+ }
+ mio0decode(D_8018D9B4 + 0x1400, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
+ var_s1->mk64Texture = NULL;
+ var_s1++;
+ if (var_s4 != 0) break;
+ osRecvMesg(&gDmaMesgQueue, &sp64, 1);
+ }
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099EC4.s")
@@ -5599,7 +5607,7 @@ void add_8018D9E0_entry(s32 type, s32 column, s32 row, s8 priority) {
case 0x2:
func_8006EE44();
gD_8018E118TotalSize += 0x10000;
- func_80099184(D_020045E8);
+ //func_80099184(D_020045E8);
break;
case 0x3:
func_80099184(D_02004610);
diff --git a/yamls/us/other_textures.yml b/yamls/us/other_textures.yml
index a335ae4cb..d992a992d 100644
--- a/yamls/us/other_textures.yml
+++ b/yamls/us/other_textures.yml
@@ -4710,7 +4710,7 @@ logo_mario_kart_64:
symbol: gTextureLogoMarioKart64
type: texture
mio0: true
- ctype: u16
+ ctype: u32
width: 256
height: 128
offset: 0xD7510