summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcoco875 <59367621+coco875@users.noreply.github.com>2025-12-16 17:46:06 +0100
committerGitHub <noreply@github.com>2025-12-16 09:46:06 -0700
commit6b8be33a5bc5f26c425095d8c3d0b9caa7e91ae6 (patch)
treec82f9078f8b41ffe7a746de0809409cd65c42008 /src
parent8250ea576447ad0657ac32b514301b69aa343490 (diff)
fix Ressource name (#596)
* fix Ressource name * add a fallback * use the correct name for dk jungle * use the correct name for macos intel CI * add print
Diffstat (limited to 'src')
-rw-r--r--src/engine/RaceManager.cpp5
-rw-r--r--src/engine/TrackBrowser.cpp4
-rw-r--r--src/engine/tracks/BansheeBoardwalk.cpp1
-rw-r--r--src/engine/tracks/BigDonut.cpp1
-rw-r--r--src/engine/tracks/BlockFort.cpp1
-rw-r--r--src/engine/tracks/BowsersCastle.cpp1
-rw-r--r--src/engine/tracks/DKJungle.cpp1
-rw-r--r--src/engine/tracks/DoubleDeck.cpp1
-rw-r--r--src/engine/tracks/FrappeSnowland.cpp1
-rw-r--r--src/engine/tracks/KalimariDesert.cpp1
-rw-r--r--src/engine/tracks/MooMooFarm.cpp1
-rw-r--r--src/engine/tracks/RainbowRoad.cpp1
-rw-r--r--src/engine/tracks/RoyalRaceway.cpp1
-rw-r--r--src/engine/tracks/SherbetLand.cpp1
-rw-r--r--src/engine/tracks/Skyscraper.cpp1
-rw-r--r--src/engine/tracks/TestTrack.cpp1
-rw-r--r--src/engine/tracks/ToadsTurnpike.cpp1
-rw-r--r--src/engine/tracks/WarioStadium.cpp1
-rw-r--r--src/engine/tracks/YoshiValley.cpp1
-rw-r--r--src/enhancements/collision_viewer.c571
-rw-r--r--src/main.h2
-rw-r--r--src/port/Game.cpp6
22 files changed, 314 insertions, 291 deletions
diff --git a/src/engine/RaceManager.cpp b/src/engine/RaceManager.cpp
index c186add5e..03ad157e3 100644
--- a/src/engine/RaceManager.cpp
+++ b/src/engine/RaceManager.cpp
@@ -52,9 +52,10 @@ extern "C" void add_triangle_to_collision_mesh(Vtx* vtx1, Vtx* vtx2, Vtx* vtx3,
}
void RaceManager::Load() {
- if (GetWorld()->GetTrack()) {
+ auto* track = GetWorld()->GetTrack();
+ if (track) {
mirroredVtxCache.clear();
- GetWorld()->GetTrack()->Load();
+ track->Load();
} else {
printf("[RaceManager] [Load] Track was nullptr\n");
}
diff --git a/src/engine/TrackBrowser.cpp b/src/engine/TrackBrowser.cpp
index 7fd5dddad..184b416b1 100644
--- a/src/engine/TrackBrowser.cpp
+++ b/src/engine/TrackBrowser.cpp
@@ -26,6 +26,10 @@ void TrackBrowser::FindCustomTracks() {
TrackInfo info;
info.Path = dir;
TrackEditor::LoadTrackInfo(info, archive, sceneFile);
+ if (info.ResourceName.empty()) {
+ printf("[TrackBrowser] Track has invalid resource name; expected format: author:mod_name");
+ info.ResourceName = std::string("mods:") + name;
+ }
printf("[TrackBrowser] Added custom track %s\n", info.Name.c_str());
gTrackRegistry.Add(info, [info, archive]() {
auto track = std::make_unique<Track>();
diff --git a/src/engine/tracks/BansheeBoardwalk.cpp b/src/engine/tracks/BansheeBoardwalk.cpp
index 337dc14cd..4614f6852 100644
--- a/src/engine/tracks/BansheeBoardwalk.cpp
+++ b/src/engine/tracks/BansheeBoardwalk.cpp
@@ -56,7 +56,6 @@ BansheeBoardwalk::BansheeBoardwalk() {
ResizeMinimap(&Props.Minimap);
ResourceName = "mk:banshee_boardwalk";
-
Props.SetText(Props.Name, "banshee boardwalk", sizeof(Props.Name));
Props.SetText(Props.DebugName, "ghost", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "747m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/BigDonut.cpp b/src/engine/tracks/BigDonut.cpp
index c511a39ec..88b9760c9 100644
--- a/src/engine/tracks/BigDonut.cpp
+++ b/src/engine/tracks/BigDonut.cpp
@@ -45,6 +45,7 @@ BigDonut::BigDonut() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:big_donut";
Props.SetText(Props.Name, "big donut", sizeof(Props.Name));
Props.SetText(Props.DebugName, "doughnut", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/BlockFort.cpp b/src/engine/tracks/BlockFort.cpp
index 1bb7d3394..6244e3ea2 100644
--- a/src/engine/tracks/BlockFort.cpp
+++ b/src/engine/tracks/BlockFort.cpp
@@ -47,6 +47,7 @@ BlockFort::BlockFort() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:block_fort";
Props.SetText(Props.Name, "block fort", sizeof(Props.Name));
Props.SetText(Props.DebugName, "block", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/BowsersCastle.cpp b/src/engine/tracks/BowsersCastle.cpp
index 87b8c3f22..8a5fdf39a 100644
--- a/src/engine/tracks/BowsersCastle.cpp
+++ b/src/engine/tracks/BowsersCastle.cpp
@@ -51,7 +51,6 @@ BowsersCastle::BowsersCastle() {
ResizeMinimap(&Props.Minimap);
ResourceName = "mk:bowsers_castle";
-
Props.SetText(Props.Name, "bowser's castle", sizeof(Props.Name));
Props.SetText(Props.DebugName, "castle", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "777m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/DKJungle.cpp b/src/engine/tracks/DKJungle.cpp
index 75c93c844..11e8cf6c1 100644
--- a/src/engine/tracks/DKJungle.cpp
+++ b/src/engine/tracks/DKJungle.cpp
@@ -53,6 +53,7 @@ DKJungle::DKJungle() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:dk_jungle";
Props.SetText(Props.Name, "d.k.'s jungle parkway", sizeof(Props.Name));
Props.SetText(Props.DebugName, "jungle", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "893m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/DoubleDeck.cpp b/src/engine/tracks/DoubleDeck.cpp
index 001f943aa..04d97d22d 100644
--- a/src/engine/tracks/DoubleDeck.cpp
+++ b/src/engine/tracks/DoubleDeck.cpp
@@ -46,6 +46,7 @@ DoubleDeck::DoubleDeck() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:double_deck";
Props.SetText(Props.Name, "double deck", sizeof(Props.Name));
Props.SetText(Props.DebugName, "deck", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/FrappeSnowland.cpp b/src/engine/tracks/FrappeSnowland.cpp
index 7aa8562db..338a2be2a 100644
--- a/src/engine/tracks/FrappeSnowland.cpp
+++ b/src/engine/tracks/FrappeSnowland.cpp
@@ -53,6 +53,7 @@ FrappeSnowland::FrappeSnowland() {
Props.Minimap.Colour = {72, 100, 255};
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:frappe_snowland";
Props.SetText(Props.Name, "frappe snowland", sizeof(Props.Name));
Props.SetText(Props.DebugName, "snow", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "734m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/KalimariDesert.cpp b/src/engine/tracks/KalimariDesert.cpp
index cec9c8405..c6477cabc 100644
--- a/src/engine/tracks/KalimariDesert.cpp
+++ b/src/engine/tracks/KalimariDesert.cpp
@@ -49,6 +49,7 @@ KalimariDesert::KalimariDesert() {
Props.Minimap.FinishlineY = 4.0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:kalimari_desert";
Props.SetText(Props.Name, "kalimari desert", sizeof(Props.Name));
Props.SetText(Props.DebugName, "desert", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "753m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/MooMooFarm.cpp b/src/engine/tracks/MooMooFarm.cpp
index ef59dac7e..7d2f27b4d 100644
--- a/src/engine/tracks/MooMooFarm.cpp
+++ b/src/engine/tracks/MooMooFarm.cpp
@@ -51,6 +51,7 @@ MooMooFarm::MooMooFarm() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:moo_moo_farm";
Props.SetText(Props.Name, "moo moo farm", sizeof(Props.Name));
Props.SetText(Props.DebugName, "farm", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "527m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/RainbowRoad.cpp b/src/engine/tracks/RainbowRoad.cpp
index 54239c3bc..83ca7239c 100644
--- a/src/engine/tracks/RainbowRoad.cpp
+++ b/src/engine/tracks/RainbowRoad.cpp
@@ -47,6 +47,7 @@ RainbowRoad::RainbowRoad() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:rainbow_road";
Props.SetText(Props.Name, "rainbow road", sizeof(Props.Name));
Props.SetText(Props.DebugName, "rainbow", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "2000m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/RoyalRaceway.cpp b/src/engine/tracks/RoyalRaceway.cpp
index 5c8336f89..510518e5e 100644
--- a/src/engine/tracks/RoyalRaceway.cpp
+++ b/src/engine/tracks/RoyalRaceway.cpp
@@ -48,6 +48,7 @@ RoyalRaceway::RoyalRaceway() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:royal_raceway";
Props.SetText(Props.Name, "royal raceway", sizeof(Props.Name));
Props.SetText(Props.DebugName, "p circuit", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "1025m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/SherbetLand.cpp b/src/engine/tracks/SherbetLand.cpp
index 2223f8eb9..29b2935c8 100644
--- a/src/engine/tracks/SherbetLand.cpp
+++ b/src/engine/tracks/SherbetLand.cpp
@@ -50,6 +50,7 @@ SherbetLand::SherbetLand() {
Props.Minimap.Colour = {72, 100, 255};
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:sherbet_land";
Props.SetText(Props.Name, "sherbet land", sizeof(Props.Name));
Props.SetText(Props.DebugName, "sherbet", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "756m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/Skyscraper.cpp b/src/engine/tracks/Skyscraper.cpp
index e4d4e215f..9c6a7e831 100644
--- a/src/engine/tracks/Skyscraper.cpp
+++ b/src/engine/tracks/Skyscraper.cpp
@@ -45,6 +45,7 @@ Skyscraper::Skyscraper() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:skyscraper";
Props.SetText(Props.Name, "skyscraper", sizeof(Props.Name));
Props.SetText(Props.DebugName, "skyscraper", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/TestTrack.cpp b/src/engine/tracks/TestTrack.cpp
index 1df75d0b9..07cfab61e 100644
--- a/src/engine/tracks/TestTrack.cpp
+++ b/src/engine/tracks/TestTrack.cpp
@@ -72,7 +72,6 @@ TestTrack::TestTrack() {
ResizeMinimap(&Props.Minimap);
ResourceName = "hm:test_track";
-
Props.SetText(Props.Name, "Test Track", sizeof(Props.Name));
Props.SetText(Props.DebugName, "test track", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "100m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/ToadsTurnpike.cpp b/src/engine/tracks/ToadsTurnpike.cpp
index 4a4c9bbcb..f735ba4c3 100644
--- a/src/engine/tracks/ToadsTurnpike.cpp
+++ b/src/engine/tracks/ToadsTurnpike.cpp
@@ -55,6 +55,7 @@ ToadsTurnpike::ToadsTurnpike() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:toads_turnpike";
Props.SetText(Props.Name, "toad's turnpike", sizeof(Props.Name));
Props.SetText(Props.DebugName, "highway", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "1036m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/WarioStadium.cpp b/src/engine/tracks/WarioStadium.cpp
index 0cf42f400..7dbdf2c85 100644
--- a/src/engine/tracks/WarioStadium.cpp
+++ b/src/engine/tracks/WarioStadium.cpp
@@ -50,6 +50,7 @@ WarioStadium::WarioStadium() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:wario_stadium";
Props.SetText(Props.Name, "wario stadium", sizeof(Props.Name));
Props.SetText(Props.DebugName, "stadium", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "1591m", sizeof(Props.TrackLength));
diff --git a/src/engine/tracks/YoshiValley.cpp b/src/engine/tracks/YoshiValley.cpp
index 4d00100d4..831981858 100644
--- a/src/engine/tracks/YoshiValley.cpp
+++ b/src/engine/tracks/YoshiValley.cpp
@@ -47,6 +47,7 @@ YoshiValley::YoshiValley() {
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
+ ResourceName = "mk:yoshi_valley";
Props.SetText(Props.Name, "yoshi valley", sizeof(Props.Name));
Props.SetText(Props.DebugName, "maze", sizeof(Props.DebugName));
Props.SetText(Props.TrackLength, "772m", sizeof(Props.TrackLength));
diff --git a/src/enhancements/collision_viewer.c b/src/enhancements/collision_viewer.c
index 0327310e8..d6da29e33 100644
--- a/src/enhancements/collision_viewer.c
+++ b/src/enhancements/collision_viewer.c
@@ -30,297 +30,298 @@ void render_collision(void) {
mtxf_identity(matrix);
AddObjectMatrix(matrix, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
-
+ u16 previousSurfaceType = -2;
for (size_t i = 0; i < gCollisionMeshCount; i++) {
// Load vertices for this tri
+ if (gCollisionMesh[i].surfaceType != previousSurfaceType) {
+ previousSurfaceType = gCollisionMesh[i].surfaceType;
+ switch (gCollisionMesh[i].surfaceType) {
+ case ASPHALT:
- switch (gCollisionMesh[i].surfaceType) {
- case ASPHALT:
-
- // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- // G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_MIRROR | G_TX_WRAP, 6, G_TX_NOLOD);
- // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x00FC, 0x007C);
- // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureRoad1);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0,
- // 0, 2047, 128); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- gCollisionMesh[i].vtx1->v.cn[0] = 50;
- gCollisionMesh[i].vtx1->v.cn[1] = 50;
- gCollisionMesh[i].vtx1->v.cn[2] = 50;
- gCollisionMesh[i].vtx2->v.cn[0] = 50;
- gCollisionMesh[i].vtx2->v.cn[1] = 50;
- gCollisionMesh[i].vtx2->v.cn[2] = 50;
- gCollisionMesh[i].vtx3->v.cn[0] = 50;
- gCollisionMesh[i].vtx3->v.cn[1] = 50;
- gCollisionMesh[i].vtx3->v.cn[2] = 50;
- break;
- case DIRT: // gTexture64619C
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture64AF50);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 255;
- // gCollisionMesh[i].vtx1->v.cn[1] = 248;
- // gCollisionMesh[i].vtx1->v.cn[2] = 220;
- // gCollisionMesh[i].vtx2->v.cn[0] = 255;
- // gCollisionMesh[i].vtx2->v.cn[1] = 248;
- // gCollisionMesh[i].vtx2->v.cn[2] = 220;
- // gCollisionMesh[i].vtx3->v.cn[0] = 255;
- // gCollisionMesh[i].vtx3->v.cn[1] = 248;
- // gCollisionMesh[i].vtx3->v.cn[2] = 220;
- break;
- case SAND:
- // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- // G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture67BEE8);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0,
- // 1023, 256); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 255;
- // gCollisionMesh[i].vtx1->v.cn[1] = 121;
- // gCollisionMesh[i].vtx1->v.cn[2] = 25;
- // gCollisionMesh[i].vtx2->v.cn[0] = 255;
- // gCollisionMesh[i].vtx2->v.cn[1] = 121;
- // gCollisionMesh[i].vtx2->v.cn[2] = 25;
- // gCollisionMesh[i].vtx3->v.cn[0] = 255;
- // gCollisionMesh[i].vtx3->v.cn[1] = 121;
- // gCollisionMesh[i].vtx3->v.cn[2] = 25;
- break;
- case STONE:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture6528DC);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 128;
- // gCollisionMesh[i].vtx1->v.cn[1] = 128;
- // gCollisionMesh[i].vtx1->v.cn[2] = 128;
- // gCollisionMesh[i].vtx2->v.cn[0] = 128;
- // gCollisionMesh[i].vtx2->v.cn[1] = 128;
- // gCollisionMesh[i].vtx2->v.cn[2] = 128;
- // gCollisionMesh[i].vtx3->v.cn[0] = 128;
- // gCollisionMesh[i].vtx3->v.cn[1] = 128;
- // gCollisionMesh[i].vtx3->v.cn[2] = 128;
- break;
- case SNOW:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture677F04);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- break;
- case SAND_OFFROAD:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture67B9B0);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- break;
- case GRASS: // gTextureGrass1
+ // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ // G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_MIRROR | G_TX_WRAP, 6, G_TX_NOLOD);
+ // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x00FC, 0x007C);
+ // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureRoad1);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
+ // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE,
+ // 0, 0, 2047, 128); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
+ gCollisionMesh[i].vtx1->v.cn[0] = 50;
+ gCollisionMesh[i].vtx1->v.cn[1] = 50;
+ gCollisionMesh[i].vtx1->v.cn[2] = 50;
+ gCollisionMesh[i].vtx2->v.cn[0] = 50;
+ gCollisionMesh[i].vtx2->v.cn[1] = 50;
+ gCollisionMesh[i].vtx2->v.cn[2] = 50;
+ gCollisionMesh[i].vtx3->v.cn[0] = 50;
+ gCollisionMesh[i].vtx3->v.cn[1] = 50;
+ gCollisionMesh[i].vtx3->v.cn[2] = 50;
+ break;
+ case DIRT: // gTexture64619C
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture64AF50);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ // gCollisionMesh[i].vtx1->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 248;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 220;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 248;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 220;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 248;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 220;
+ break;
+ case SAND:
+ // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ // G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture67BEE8);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
+ // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0,
+ // 0, 1023, 256); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
+ // gCollisionMesh[i].vtx1->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 121;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 25;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 121;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 25;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 121;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 25;
+ break;
+ case STONE:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture6528DC);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ // gCollisionMesh[i].vtx1->v.cn[0] = 128;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 128;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 128;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 128;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 128;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 128;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 128;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 128;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 128;
+ break;
+ case SNOW:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture677F04);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ break;
+ case SAND_OFFROAD:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture67B9B0);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ break;
+ case GRASS: // gTextureGrass1
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureGrass1);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureGrass1);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 50;
- // gCollisionMesh[i].vtx1->v.cn[1] = 180;
- // gCollisionMesh[i].vtx1->v.cn[2] = 50;
- // gCollisionMesh[i].vtx2->v.cn[0] = 50;
- // gCollisionMesh[i].vtx2->v.cn[1] = 180;
- // gCollisionMesh[i].vtx2->v.cn[2] = 50;
- // gCollisionMesh[i].vtx3->v.cn[0] = 50;
- // gCollisionMesh[i].vtx3->v.cn[1] = 180;
- // gCollisionMesh[i].vtx3->v.cn[2] = 50;
- break;
- case ICE:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture643B3C);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- break;
- case WET_SAND:
- // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- // G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x00FC);
- // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture66DD38);
- // gDPTileSync(gDisplayListHead++);
- // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0,
- // 1023, 256); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- break;
- case SNOW_OFFROAD:
- gCollisionMesh[i].vtx1->v.cn[0] = 80;
- gCollisionMesh[i].vtx1->v.cn[1] = 80;
- gCollisionMesh[i].vtx1->v.cn[2] = 80;
- gCollisionMesh[i].vtx2->v.cn[0] = 80;
- gCollisionMesh[i].vtx2->v.cn[1] = 80;
- gCollisionMesh[i].vtx2->v.cn[2] = 80;
- gCollisionMesh[i].vtx3->v.cn[0] = 80;
- gCollisionMesh[i].vtx3->v.cn[1] = 80;
- gCollisionMesh[i].vtx3->v.cn[2] = 80;
- break;
- case CLIFF:
- break;
- case DIRT_OFFROAD:
- break;
- case TRAIN_TRACK: // gTextureRailroadTrack
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x00FC, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureRailroadTrack);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 2047, 128);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- break;
- case CAVE:
- break;
- case OUT_OF_BOUNDS:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture64313C);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 255;
- // gCollisionMesh[i].vtx1->v.cn[1] = 0;
- // gCollisionMesh[i].vtx1->v.cn[2] = 0;
- // gCollisionMesh[i].vtx2->v.cn[0] = 255;
- // gCollisionMesh[i].vtx2->v.cn[1] = 0;
- // gCollisionMesh[i].vtx2->v.cn[2] = 0;
- // gCollisionMesh[i].vtx3->v.cn[0] = 255;
- // gCollisionMesh[i].vtx3->v.cn[1] = 0;
- // gCollisionMesh[i].vtx3->v.cn[2] = 0;
- break;
- case BOOST_RAMP_WOOD:
- case BOOST_RAMP_ASPHALT:
- case RAMP:
- gCollisionMesh[i].vtx1->v.cn[0] = 255;
- gCollisionMesh[i].vtx1->v.cn[1] = 255;
- gCollisionMesh[i].vtx1->v.cn[2] = 0;
- gCollisionMesh[i].vtx2->v.cn[0] = 255;
- gCollisionMesh[i].vtx2->v.cn[1] = 255;
- gCollisionMesh[i].vtx2->v.cn[2] = 0;
- gCollisionMesh[i].vtx3->v.cn[0] = 255;
- gCollisionMesh[i].vtx3->v.cn[1] = 255;
- gCollisionMesh[i].vtx3->v.cn[2] = 0;
- break;
- case WOOD_BRIDGE:
- case ROPE_BRIDGE:
- case BRIDGE:
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
- gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
- gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture676FB0);
- gDPTileSync(gDisplayListHead++);
- gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD);
- gDPLoadSync(gDisplayListHead++);
- gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
- gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
- gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
- // gCollisionMesh[i].vtx1->v.cn[0] = 0;
- // gCollisionMesh[i].vtx1->v.cn[1] = 255;
- // gCollisionMesh[i].vtx1->v.cn[2] = 0;
- // gCollisionMesh[i].vtx2->v.cn[0] = 0;
- // gCollisionMesh[i].vtx2->v.cn[1] = 255;
- // gCollisionMesh[i].vtx2->v.cn[2] = 0;
- // gCollisionMesh[i].vtx3->v.cn[0] = 0;
- // gCollisionMesh[i].vtx3->v.cn[1] = 255;
- // gCollisionMesh[i].vtx3->v.cn[2] = 0;
- break;
+ // gCollisionMesh[i].vtx1->v.cn[0] = 50;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 180;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 50;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 50;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 180;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 50;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 50;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 180;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 50;
+ break;
+ case ICE:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture643B3C);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ break;
+ case WET_SAND:
+ // gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ // G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ // gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x00FC);
+ // gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture66DD38);
+ // gDPTileSync(gDisplayListHead++);
+ // gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ // G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
+ // G_TX_NOLOD); gDPLoadSync(gDisplayListHead++); gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0,
+ // 0, 1023, 256); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ // gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2);
+ break;
+ case SNOW_OFFROAD:
+ gCollisionMesh[i].vtx1->v.cn[0] = 80;
+ gCollisionMesh[i].vtx1->v.cn[1] = 80;
+ gCollisionMesh[i].vtx1->v.cn[2] = 80;
+ gCollisionMesh[i].vtx2->v.cn[0] = 80;
+ gCollisionMesh[i].vtx2->v.cn[1] = 80;
+ gCollisionMesh[i].vtx2->v.cn[2] = 80;
+ gCollisionMesh[i].vtx3->v.cn[0] = 80;
+ gCollisionMesh[i].vtx3->v.cn[1] = 80;
+ gCollisionMesh[i].vtx3->v.cn[2] = 80;
+ break;
+ case CLIFF:
+ break;
+ case DIRT_OFFROAD:
+ break;
+ case TRAIN_TRACK: // gTextureRailroadTrack
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x00FC, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTextureRailroadTrack);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 2047, 128);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ break;
+ case CAVE:
+ break;
+ case OUT_OF_BOUNDS:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture64313C);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ // gCollisionMesh[i].vtx1->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 0;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 0;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 0;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 0;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 255;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 0;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 0;
+ break;
+ case BOOST_RAMP_WOOD:
+ case BOOST_RAMP_ASPHALT:
+ case RAMP:
+ gCollisionMesh[i].vtx1->v.cn[0] = 255;
+ gCollisionMesh[i].vtx1->v.cn[1] = 255;
+ gCollisionMesh[i].vtx1->v.cn[2] = 0;
+ gCollisionMesh[i].vtx2->v.cn[0] = 255;
+ gCollisionMesh[i].vtx2->v.cn[1] = 255;
+ gCollisionMesh[i].vtx2->v.cn[2] = 0;
+ gCollisionMesh[i].vtx3->v.cn[0] = 255;
+ gCollisionMesh[i].vtx3->v.cn[1] = 255;
+ gCollisionMesh[i].vtx3->v.cn[2] = 0;
+ break;
+ case WOOD_BRIDGE:
+ case ROPE_BRIDGE:
+ case BRIDGE:
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
+ gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
+ gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture676FB0);
+ gDPTileSync(gDisplayListHead++);
+ gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadSync(gDisplayListHead++);
+ gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
+ // gCollisionMesh[i].vtx1->v.cn[0] = 0;
+ // gCollisionMesh[i].vtx1->v.cn[1] = 255;
+ // gCollisionMesh[i].vtx1->v.cn[2] = 0;
+ // gCollisionMesh[i].vtx2->v.cn[0] = 0;
+ // gCollisionMesh[i].vtx2->v.cn[1] = 255;
+ // gCollisionMesh[i].vtx2->v.cn[2] = 0;
+ // gCollisionMesh[i].vtx3->v.cn[0] = 0;
+ // gCollisionMesh[i].vtx3->v.cn[1] = 255;
+ // gCollisionMesh[i].vtx3->v.cn[2] = 0;
+ break;
+ }
}
-
gSPVertex(gDisplayListHead++, gCollisionMesh[i].vtx1, 1, 0);
gSPVertex(gDisplayListHead++, gCollisionMesh[i].vtx2, 1, 1);
gSPVertex(gDisplayListHead++, gCollisionMesh[i].vtx3, 1, 2);
diff --git a/src/main.h b/src/main.h
index e013705e5..5b2772631 100644
--- a/src/main.h
+++ b/src/main.h
@@ -40,7 +40,7 @@
#define MTX_EFFECT_POOL_SIZE_MAX MTX_EFFECT_POOL_SIZE + 100
#endif
-#define GFX_POOL_SIZE 15000
+#define GFX_POOL_SIZE 150000
struct GfxPool {
/* 0x00000 */ Mtx mtxScreen; // Matrix for skybox and startup logo
diff --git a/src/port/Game.cpp b/src/port/Game.cpp
index efd4eb1be..9f96182d4 100644
--- a/src/port/Game.cpp
+++ b/src/port/Game.cpp
@@ -285,6 +285,12 @@ void CM_DrawTrack(ScreenContext* screen) {
return;
}
+ // Check if collision mesh rendering is enabled via CVar
+ if (CVarGetInteger("gRenderCollisionMesh", 0)) {
+ render_collision();
+ return;
+ }
+
// Custom tracks should never use DrawCredits();
if (GetWorld()->GetTrack()->IsMod()) {
switch(screen->camera->renderMode) {