The bulk of Android goodies

This commit is contained in:
izzy2lost
2025-08-11 04:46:02 -04:00
parent 8d68679c1b
commit 5ee58c7609
680 changed files with 216808 additions and 47 deletions
+88
View File
@@ -0,0 +1,88 @@
# Torch Android Converter
A simple Android app that converts N64 ROM files (.z64, .n64, .v64) to O2R format for use with Starship and Spaghetti Cart ports.
## Features
- Simple, user-friendly interface
- File picker for ROM selection
- Converts ROMs to O2R format
- Saves output to Downloads/torch_output/
- Progress indication during conversion
## Building
### Prerequisites
- Android Studio Arctic Fox or later
- Android NDK 25.1.8937393 or later
- CMake 3.22.1 or later
- Minimum SDK: API 24 (Android 7.0)
- Target SDK: API 34 (Android 14)
### Build Steps
1. Open the `android` folder in Android Studio
2. Let Gradle sync the project
3. Build and run on device or emulator
### Native Dependencies
The app builds the original Torch C++ codebase as a native library using:
- CMake for build configuration
- JNI for Java/C++ bridge
- All original Torch dependencies (yaml-cpp, binarytools, n64graphics, etc.)
## Usage
1. Launch the app
2. Tap "Select ROM File" and choose your N64 ROM (.z64, .n64, .v64)
3. Tap "Select Starship/Spaghetti Config Folder" and choose the root directory of either:
- The Starship repository (for SM64)
- The Spaghetti Cart repository (for other games)
4. Tap "Convert to O2R" to start the conversion
5. The O2R file will be saved to your Downloads/torch_output/ folder
## Required Files
The app requires the config.yml and asset metadata files from the respective game repositories:
- **For Super Mario 64**: Use the Starship repository
- **For other games**: Use the Spaghetti Cart repository
These repositories contain the necessary YAML files and asset definitions that Torch needs to properly extract and convert the ROM data.
## Supported Games
The app supports the same games as the original Torch:
- Super Mario 64
- Mario Kart 64
- Star Fox 64
- F-Zero X
- Mario Artist series
## File Structure
```
android/
├── app/
│ ├── src/main/
│ │ ├── java/com/torch/converter/
│ │ │ └── MainActivity.java # Main Android activity
│ │ ├── cpp/
│ │ │ ├── CMakeLists.txt # Native build config
│ │ │ └── torch_jni.cpp # JNI wrapper
│ │ ├── res/ # Android resources
│ │ └── assets/
│ │ └── config.yml # Torch config
│ └── build.gradle # App build config
├── build.gradle # Project build config
└── settings.gradle # Project settings
```
## Notes
- The app creates a simplified interface around the core Torch functionality
- ROM files are temporarily copied to internal storage for processing
- Output files are saved to external storage (Downloads folder)
- The native library includes all necessary Torch dependencies
+59
View File
@@ -0,0 +1,59 @@
plugins {
id 'com.android.application'
}
android {
namespace 'com.torch.converter'
compileSdk 34
defaultConfig {
applicationId "com.torch.converter"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
ndk {
debugSymbolLevel 'NONE' // Strip debug symbols for smaller/faster code
}
}
debug {
ndk {
debugSymbolLevel 'FULL' // Keep debug symbols for debugging
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
externalNativeBuild {
cmake {
path file('src/main/cpp/CMakeLists.txt')
version '3.22.1'
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
+13
View File
@@ -0,0 +1,13 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# Keep native methods
-keepclasseswithmembernames class * {
native <methods>;
}
# Keep the MainActivity and its native methods
-keep class com.torch.converter.MainActivity {
public native <methods>;
}
+29
View File
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.TorchConverter"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
@@ -0,0 +1,16 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="editor/gizmo/center_handle_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="editor/gizmo/mat_center_handle_f3dlite_material"/>
<CallDisplayList Path="editor/gizmo/center_handle_tri_0"/>
<CallDisplayList Path="editor/gizmo/mat_revert_center_handle_f3dlite_material"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,40 @@
<DisplayList Version="0">
<LoadVertices Path="editor/gizmo/center_handle_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="editor/gizmo/center_handle_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="editor/gizmo/center_handle_vtx_0" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="editor/gizmo/center_handle_vtx_0" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,130 @@
<Vertex Version="0">
<Vtx X="-29" Y="0" Z="-29" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-27" Y="0" Z="-27" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-21" Y="0" Z="-31" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-23" Y="0" Z="-34" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-23" Y="0" Z="-34" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-21" Y="0" Z="-31" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-14" Y="0" Z="-35" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-16" Y="0" Z="-38" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-16" Y="0" Z="-38" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-14" Y="0" Z="-35" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-7" Y="0" Z="-37" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-8" Y="0" Z="-41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-8" Y="0" Z="-41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-7" Y="0" Z="-37" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="-38" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="-41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="-41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="-38" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="7" Y="0" Z="-37" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="8" Y="0" Z="-41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="8" Y="0" Z="-41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="7" Y="0" Z="-37" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="14" Y="0" Z="-35" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="16" Y="0" Z="-38" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="16" Y="0" Z="-38" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="14" Y="0" Z="-35" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="21" Y="0" Z="-31" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="23" Y="0" Z="-34" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="23" Y="0" Z="-34" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="21" Y="0" Z="-31" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="27" Y="0" Z="-27" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="29" Y="0" Z="-29" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="29" Y="0" Z="-29" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="27" Y="0" Z="-27" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="31" Y="0" Z="-21" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="34" Y="0" Z="-23" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="34" Y="0" Z="-23" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="31" Y="0" Z="-21" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="35" Y="0" Z="-14" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="-16" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="-16" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="35" Y="0" Z="-14" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="37" Y="0" Z="-7" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="-8" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="-8" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="37" Y="0" Z="-7" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="0" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="0" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="0" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="0" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="37" Y="0" Z="7" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="8" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="41" Y="0" Z="8" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="37" Y="0" Z="7" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="35" Y="0" Z="14" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="16" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="38" Y="0" Z="16" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="35" Y="0" Z="14" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="31" Y="0" Z="21" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="34" Y="0" Z="23" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="34" Y="0" Z="23" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="31" Y="0" Z="21" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="27" Y="0" Z="27" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="29" Y="0" Z="29" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="29" Y="0" Z="29" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="27" Y="0" Z="27" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="21" Y="0" Z="31" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="23" Y="0" Z="34" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="23" Y="0" Z="34" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="21" Y="0" Z="31" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="14" Y="0" Z="35" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="16" Y="0" Z="38" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="16" Y="0" Z="38" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="14" Y="0" Z="35" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="7" Y="0" Z="37" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="8" Y="0" Z="41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="8" Y="0" Z="41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="7" Y="0" Z="37" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="38" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="0" Z="38" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-7" Y="0" Z="37" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-8" Y="0" Z="41" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-8" Y="0" Z="41" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-7" Y="0" Z="37" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-14" Y="0" Z="35" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-16" Y="0" Z="38" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-16" Y="0" Z="38" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-14" Y="0" Z="35" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-21" Y="0" Z="31" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-23" Y="0" Z="34" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-23" Y="0" Z="34" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-21" Y="0" Z="31" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-27" Y="0" Z="27" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-29" Y="0" Z="29" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-29" Y="0" Z="29" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-27" Y="0" Z="27" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-31" Y="0" Z="21" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-34" Y="0" Z="23" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-34" Y="0" Z="23" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-31" Y="0" Z="21" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-35" Y="0" Z="14" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="16" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="16" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-35" Y="0" Z="14" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-37" Y="0" Z="7" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="8" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-34" Y="0" Z="-23" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-31" Y="0" Z="-21" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-27" Y="0" Z="-27" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-29" Y="0" Z="-29" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="-16" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-35" Y="0" Z="-14" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-31" Y="0" Z="-21" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-34" Y="0" Z="-23" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="-8" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-37" Y="0" Z="-7" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-35" Y="0" Z="-14" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="-16" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="0" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="0" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-37" Y="0" Z="-7" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="-8" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="8" S="-16" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-37" Y="0" Z="7" S="1008" T="1008" R="0" G="127" B="0" A="255"/>
<Vtx X="-38" Y="0" Z="0" S="1008" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="-41" Y="0" Z="0" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
</Vertex>
@@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-41" Y="0" Z="-41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-41" Y="0" Z="41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-41" Y="0" Z="41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-41" Y="0" Z="-41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="41" Y="0" Z="-41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="41" Y="0" Z="41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="41" Y="0" Z="41" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="41" Y="0" Z="-41" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<SetGeometryMode G_FOG="1" />
<ClearGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_CLIPPING="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetRenderMode Mode1="G_RM_FOG_SHADE_A" Mode2="G_RM_AA_ZB_OPA_SURF2" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="95" G="95" B="95" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_LIGHTING="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CULL_BACK="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_CLIPPING="1" G_ZBUFFER="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" />
<ClearGeometryMode G_FOG="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_CLIPPING="1" G_ZBUFFER="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_CLIPPING="1" G_ZBUFFER="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<ClearGeometryMode G_FOG="1" />
<SetGeometryMode G_ZBUFFER="1" G_CLIPPING="1" />
<PipeSync/>
<EndDisplayList/>
</DisplayList>

Some files were not shown because too many files have changed in this diff Show More