Files
SpaghettiKart/md_docs_2migrations.html
T

329 lines
19 KiB
HTML

<!-- HTML header for doxygen 1.10.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SpaghettiKart: Migration: Beta to v1.0</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<link href="docs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">SpaghettiKart
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('md_docs_2migrations.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">Migration: Beta to v1.0</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="migration-beta-to-v10"></a></p>
<p>This guide explains how to migrate your existing resource packs and mods from the <b>Beta version</b> to the <b>future first stable release (v1.0)</b> of SpaghettiKart.</p>
<h1><a class="anchor" id="overview"></a>
Overview</h1>
<p>With the v1.0 release approaching, the YAML structure and resource paths have been reorganized to be more logical and maintainable. If you have existing mods or texture packs created for the Beta version, you will need to update them to work with v1.0 and later versions.</p>
<h1><a class="anchor" id="migration-script"></a>
Migration Script</h1>
<p>A Python migration script (<a href="https://gist.github.com/coco875/5865b6a8e480990e4f75752206e9c728"><code>migration.py</code></a>) is provided at the root of the repository to help automate the migration process. You can customize the <code>folder</code> variable to point to your mod folder.</p>
<h2><a class="anchor" id="usage"></a>
Usage</h2>
<ol type="1">
<li>Download the <a href="https://gist.github.com/coco875/5865b6a8e480990e4f75752206e9c728">migration.py</a> script</li>
<li>Edit <code>migration.py</code> and set the <code>folder</code> variable to your mod folder name</li>
<li>Run the script: <div class="fragment"><div class="line">python migration.py</div>
</div><!-- fragment --></li>
<li>The migrated mod will be created in a new folder with <code>_Migrated</code> suffix</li>
</ol>
<h2><a class="anchor" id="generated-files"></a>
Generated Files</h2>
<p>The migration script will automatically generate a <code>mods.toml</code> file at the root of your migrated mod. This file is required for SpaghettiKart to properly recognize and load your mod. See <a class="el" href="md_docs_2mods-toml.html">mods.toml documentation</a> for more details about this file.</p>
<h1><a class="anchor" id="path-changes"></a>
Path Changes</h1>
<h2><a class="anchor" id="textures"></a>
Textures</h2>
<p>The main change is that textures are now organized into a <code>textures/</code> subfolder with proper categorization.</p>
<h3><a class="anchor" id="track-textures"></a>
Track Textures</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Old Path </th><th class="markdownTableHeadNone">New Path </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>banshee_boardwalk_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/banshee_boardwalk/banshee_boardwalk_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>bowsers_castle_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/bowsers_castle/bowsers_castle_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>choco_mountain_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/choco_mountain/choco_mountain_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>dks_jungle_parkway_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/dks_jungle_parkway/dks_jungle_parkway_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>frappe_snowland_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/frappe_snowland/frappe_snowland_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>kalimari_desert_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/kalimari_desert/kalimari_desert_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>koopa_troopa_beach_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/koopa_troopa_beach/koopa_troopa_beach_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>luigi_raceway_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/luigi_raceway/luigi_raceway_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>mario_raceway_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/mario_raceway/mario_raceway_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>moo_moo_farm_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/moo_moo_farm/moo_moo_farm_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>rainbow_road_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/rainbow_road/rainbow_road_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>royal_raceway_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/royal_raceway/royal_raceway_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>sherbet_land_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/sherbet_land/sherbet_land_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>toads_turnpike_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/toads_turnpike/toads_turnpike_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>wario_stadium_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/wario_stadium/wario_stadium_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>yoshis_valley_data/</code> </td><td class="markdownTableBodyNone"><code>textures/tracks/yoshis_valley/yoshis_valley_data/</code> </td></tr>
</table>
<h3><a class="anchor" id="kart-textures"></a>
Kart Textures</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Old Path </th><th class="markdownTableHeadNone">New Path </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>bowser_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/bowser_kart/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>donkeykong_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/donkeykong_kart/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>luigi_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/luigi_kart/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>mario_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/mario_kart/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>peach_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/peach_kart/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>toad_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/toad_kart/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>wario_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/wario_kart/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>yoshi_kart/</code> </td><td class="markdownTableBodyNone"><code>textures/karts/yoshi_kart/</code> </td></tr>
</table>
<h3><a class="anchor" id="other-textures"></a>
Other Textures</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Old Path </th><th class="markdownTableHeadNone">New Path </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>boo_frames/</code> </td><td class="markdownTableBodyNone"><code>textures/boo_frames/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>ceremony_data/</code> </td><td class="markdownTableBodyNone"><code>textures/ceremony_data/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>common_data/</code> </td><td class="markdownTableBodyNone"><code>textures/common_data/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>other_textures/</code> </td><td class="markdownTableBodyNone"><code>textures/other_textures/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>player_selection/</code> </td><td class="markdownTableBodyNone"><code>textures/player_selection/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>startup_logo/</code> </td><td class="markdownTableBodyNone"><code>textures/startup_logo/</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone"><code>texture_data_2/</code> </td><td class="markdownTableBodyNone"><code>textures/texture_data_2/</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone"><code>texture_tkmk00/</code> </td><td class="markdownTableBodyNone"><code>textures/texture_tkmk00/</code> </td></tr>
</table>
<h1><a class="anchor" id="kart-frame-textures"></a>
Kart Frame Textures</h1>
<p>Kart textures have been split into separate wheel textures. Each kart frame now has 4 associated wheel textures. That makes them possible to spin.</p>
<h2><a class="anchor" id="old-structure"></a>
Old Structure</h2>
<div class="fragment"><div class="line">mario_kart_frame001.png</div>
</div><!-- fragment --><h2><a class="anchor" id="new-structure"></a>
New Structure</h2>
<div class="fragment"><div class="line">mario_kart_frame001_wheel0.png</div>
<div class="line">mario_kart_frame001_wheel1.png</div>
<div class="line">mario_kart_frame001_wheel2.png</div>
<div class="line">mario_kart_frame001_wheel3.png</div>
</div><!-- fragment --><p>This applies to all 289 frames (frame000 to frame288) for each kart:</p><ul>
<li><code>bowser_kart</code></li>
<li><code>donkeykong_kart</code></li>
<li><code>luigi_kart</code></li>
<li><code>mario_kart</code></li>
<li><code>peach_kart</code></li>
<li><code>toad_kart</code></li>
<li><code>wario_kart</code></li>
<li><code>yoshi_kart</code></li>
</ul>
<p>The migration script automatically duplicates your original kart frame texture to all 4 wheel variants.</p>
<h1><a class="anchor" id="new-folder-structure"></a>
New Folder Structure</h1>
<p>The new YAML and resource structure is organized as follows:</p>
<div class="fragment"><div class="line">yamls/us/</div>
<div class="line">├── models/</div>
<div class="line">│ ├── ceremony_data.yml</div>
<div class="line">│ ├── common_data.yml</div>
<div class="line">│ ├── data_800E8700.yml</div>
<div class="line">│ ├── data_segment2.yml</div>
<div class="line">│ ├── startup_logo.yml</div>
<div class="line">│ └── tracks/</div>
<div class="line">│ ├── banshee_boardwalk/</div>
<div class="line">│ ├── big_donut/</div>
<div class="line">│ ├── block_fort/</div>
<div class="line">│ ├── bowsers_castle/</div>
<div class="line">│ ├── choco_mountain/</div>
<div class="line">│ └── ...</div>
<div class="line">├── other/</div>
<div class="line">│ ├── ceremony_data.yml</div>
<div class="line">│ ├── common_data.yml</div>
<div class="line">│ ├── startup_logo.yml</div>
<div class="line">│ └── tracks/</div>
<div class="line">│ └── ...</div>
<div class="line">├── sound/</div>
<div class="line">│ ├── banks.yml</div>
<div class="line">│ ├── root.yml</div>
<div class="line">│ ├── samples.yml</div>
<div class="line">│ └── sequences.yml</div>
<div class="line">└── textures/</div>
<div class="line"> ├── boo_frames.yml</div>
<div class="line"> ├── ceremony_data.yml</div>
<div class="line"> ├── common_data.yml</div>
<div class="line"> ├── data_800E45C0.yml</div>
<div class="line"> ├── other_textures.yml</div>
<div class="line"> ├── player_selection.yml</div>
<div class="line"> ├── some_data.yml</div>
<div class="line"> ├── startup_logo.yml</div>
<div class="line"> ├── texture_data_2.yml</div>
<div class="line"> ├── texture_tkmk00.yml</div>
<div class="line"> ├── karts/</div>
<div class="line"> │ ├── bowser_kart.yml</div>
<div class="line"> │ ├── donkeykong_kart.yml</div>
<div class="line"> │ ├── luigi_kart.yml</div>
<div class="line"> │ ├── mario_kart.yml</div>
<div class="line"> │ ├── peach_kart.yml</div>
<div class="line"> │ ├── toad_kart.yml</div>
<div class="line"> │ ├── wario_kart.yml</div>
<div class="line"> │ └── yoshi_kart.yml</div>
<div class="line"> └── tracks/</div>
<div class="line"> ├── banshee_boardwalk/</div>
<div class="line"> ├── bowsers_castle/</div>
<div class="line"> ├── choco_mountain/</div>
<div class="line"> └── ...</div>
</div><!-- fragment --><h1><a class="anchor" id="manual-migration"></a>
Manual Migration</h1>
<p>If you prefer to migrate manually:</p>
<ol type="1">
<li>Create the new folder structure in your mod</li>
<li>Move texture files according to the path mapping tables above</li>
<li>For kart textures, duplicate each frame texture to the 4 wheel variants</li>
<li>Create a <code>mods.toml</code> file at the root of your mod (see <a class="el" href="md_docs_2mods-toml.html">mods.toml documentation</a>)</li>
<li>Test your mod with the new version of SpaghettiKart</li>
</ol>
<h1><a class="anchor" id="troubleshooting"></a>
Troubleshooting</h1>
<ul>
<li><b>Textures not loading</b>: Verify that your paths match exactly with the new structure</li>
<li><b>Missing wheel textures</b>: Make sure all 4 wheel variants exist for each kart frame</li>
<li><b>Wrong track textures</b>: Double-check the track name in the path (e.g., <code>yoshi_valley</code> vs <code>yoshis_valley</code>)</li>
</ul>
<h1><a class="anchor" id="see-also-1"></a>
See Also</h1>
<ul>
<li><a class="el" href="md_docs_2mods-toml.html">mods.toml File Structure</a> - Required metadata file for mods</li>
<li><a class="el" href="md_docs_2textures-pack.html">Texture Pack Guide</a> - How to create texture packs</li>
<li><a class="el" href="md_docs_2modding.html">Modding Guide</a> - General modding information </li>
</ul>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>