Difference between revisions of "LE-CODE"

From Custom Mario Kart
Jump to navigation Jump to search
(Cleanup)
 
(114 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== What is the LE-CODE? ==
+
{{LE-CODE Content}}
  
The LE-CODE (short for Leseratte-Code) is a code extension for Mario Kart Wii which has been written by [[User:Leseratte|Leseratte]]. The name has been chosen by [[Wiimm]] in the style of the [[CT-CODE]], the name of the old Mario Kart Wii code extension by MrBean and Chadderz.  
+
== Overview ==
 +
'''LE-CODE''' (short for '''Leseratte-Code''') is a code extension of [[Mario Kart Wii]] initially written by [[Leseratte]]. After the initial phase, the code was jointly developed by [[Leseratte]] and [[Wiimm]]. It has been named after [[CT-CODE]], the name of the old code extension by [[MrBean35000vr]] and [[Chadderz]].  
  
Leseratte has started the development of the LE-CODE in January 2019. The build system is taken from the [[Wiimmfi/Update|Wiimmfi updater]], which means, it supports writing C source code instead of Assembly code for the game code modifications, and is designed to be loaded into the [[Filesystem/rel/StaticR.rel|StaticR.rel]] relocation buffer as soon as the StaticR.rel has been loaded and linked into memory, which has about 900 KB of usable space for mods.
+
Development started in January 2019, using the build system taken from the [[Wiimmfi/Update|Wiimmfi updater]]. This means that it supports writing C source code instead of Assembly code for its modifications, and is designed to be loaded into the [[StaticR.rel]] relocation buffer as soon as it has been loaded and linked into memory, which has about 900 KB of usable space for modifications.
  
Wiimm has adapted his [[Wiimms SZS Tools|SZS tools]] and wrote a new tool called "wlect" ([https://szs.wiimm.de/wlect/ Wiimms LE-CODE tool]).  
+
To use this code extension in other mods, [[Wiimm]] added support for management of LE-CODE and its additional features to [[Wiimms SZS Tools]], called Wiimms LE-CODE Tool. Additional documentation can be found [https://szs.wiimm.de/wlect here].
  
First test versions of the LE-CODE have been tested by Wiimm and Leseratte in February 2019, with the first version for a few more private testers being released on February 20th. The public will most likely be able to use the LE-CODE features as of Wiimms MKW Fun 2019-06. A system to use the LE-CODE in other custom distributions is planned, but not available yet. A source code release currently isn't planned.
+
The first few test versions were tested by [[Wiimm]] and [[Leseratte]] in February 2019, with the first version for a few more private testers being released on February 20th. LE-CODE could be used by the public after the release of [[Wiimms Mario Kart Fun 2019-06]], which happened in June 2019.
  
The LE-CODE can either be discussed on the talk page, or in this forum thread: [https://forum.wii-homebrew.com/index.php/Thread/59107-Mario-Kart-Wii-Mod-LE-CODE-by-Leseratte/ click]
+
== Media ==
 +
<gallery>
 +
LE-CODE Logo (Circle).png|none|thumb|Circular logo
 +
LE-CODE Logo (Horizontal).png|none|thumb|Horizontal logo
 +
LE-CODE Logo (Vertical).png|none|thumb|Vertical logo
 +
</gallery>
  
=== History ===
+
== Features ==
 +
LE-CODE's features are based on a list of modifications that were included in the [[Wiimms Mario Kart Fun]] series. It includes nearly all features that [[CT-CODE]] has and all features of the former mentioned series.
  
; 2019-01-07 — Idea for LE-CODE
+
=== Features from CT-CODE ===
* [[Leseratte]] had the idea to consolidate all existing MKW-Fun and ct-code mods into one new structured system.
 
* He started looking for ways to extend the game code, possibly by placing it at the end of the heap (like MKW-Fun and CTGP 1.03 do).
 
* However, that would either require position-independant code (complicated), usage of the game's internal linker (even more complicated) or a fixed-length FST (would break if ISO is modified).
 
  
; 2019-01-11 — StaticR buffer
+
{| class="textbox grid sortable alt"
* The idea to use the heap has been discarded. Leseratte found a roughly 900 KB buffer within the StaticR.rel that is only used at game load.
+
|+ CT-CODE Features
* After the game is loaded, the buffer is still kept in memory and can be used for custom mods with the LE-CODE.
+
! Feature
 +
! Information
 +
|-
 +
| More Racing Tracks
 +
| Adds more slots to the game by editing the game's [[Slot Usage|slot usage]] to have more than 4000 tracks in a [[distribution]].
 +
|-
 +
| Custom Menu System
 +
| Adds more cups and two arrows to the track selection.
 +
|-
 +
| Wi-Fi Timer
 +
| Makes the timer display always when selecting a track online.
 +
|-
 +
| Random Track Fix
 +
| Fixes the random button from the track selection.
 +
|-
 +
| [[Lap & Speed Modifier]]
 +
| Adds support to have modifier lap and speed amounts.
 +
|-
 +
| Mushroom Only Bug Fix
 +
| Fixes {{obj-ref|0x65|item boxes}} only giving Mushrooms after the 18th item online.
 +
|-
 +
| [[LPAR#THCLOUD-TIME|Thunder Cloud Time Modifier]]
 +
| Allows the Thunder Cloud to strike earlier or later.
 +
|-
 +
| [[LE-CODE/Distribution Tutorial/LE-DEF#random|Random Track from Group]]
 +
| Adds random groups to the track selection, allowing to vote randomly in a set of tracks. (All tracks, Nintendo tracks, custom tracks, new tracks, texture hacks)
 +
|-
 +
| Track Variants
 +
| Allows tracks to function like [[Wii U Animal Crossing|Animal Crossing]] from [[Mario Kart 8]].
 +
|-
 +
| [[LPAR#STATICR-POINTS|Custom VS Point Scheme]]
 +
| Changes the amount of points a player gets when finishing a race.
 +
|-
 +
| No Lightning in Team Races
 +
| Disables the Lightning item in Team Races.
 +
|-
 +
| Engine Class Probability Modifier
 +
| Removes calculations based on VR and uses a fixed probability instead.
 +
|-
 +
| [[LPAR#DRAG-BLUE-SHELL|Draggable Blue Shells]]
 +
| Allows the Blue Shell to be dragged behind a player's vehicle, like Green and Red Shells.
 +
|}
  
; 2019-01-30 — ct-code ported
+
=== Bugfixes ===
* As of January 30, all ct-code mods have been ported or rewritten to work with the LE-CODE.
+
{| class="textbox grid sortable alt"
* Most MKW-Fun mods have been ported as well.
+
|+ Bugfixes
 +
! Feature
 +
! Information
 +
|-
 +
| Icache Fix
 +
| Handles the icache properly, making the mod compatible with Dolphin 5.0-9000 and higher.
 +
|-
 +
| 4-Player Mii Crash
 +
| Fixes 4-player mode with [[mariowiki:Mii|Mii]]s.
 +
|-
 +
| Minimap Icon Size Fix
 +
| Fixes the size of the minimap's character icons when playing another game after Time Trials.
 +
|-
 +
| Battle Mode Name Tag Fix
 +
| Fixes the render distance of player's name tags when returning to VS races.
 +
|-
 +
| Grand Prix Savegame Fix
 +
| Fixes playing Grand Prix on custom cups from corrupting the savegame.
 +
|-
 +
| Trophy Fix
 +
| Fixes the game awarding the wrong trophy due to the additional cups.
 +
|}
  
; 2019-02-10 — test script
+
=== Main Features ===
* Leseratte made a small script to patch LE-CODE support into an image so Wiimm and Leseratte were able to do a few online tests.
+
{| class="textbox grid sortable alt"
 +
|+ Main Features
 +
! Feature
 +
! Information
 +
|-
 +
| NTSC-K Support
 +
| Adds support for the [[NTSC-K|Korean version]] of the game.
 +
|-
 +
| More Than 256 Tracks
 +
| Extends the track limit to 4,096 or 8,192.
 +
|-
 +
| Crash Handler
 +
| Adds a proper crash handler to the game that displays data about the crash.
 +
|-
 +
| Multiplayer File Removal
 +
| Removes the need for Multiplayer files and picks the regular track if it is not present.
 +
|-
 +
| Track Directory
 +
| Adds a track directory to the game's filesystem.
 +
|-
 +
| Performance Monitor
 +
| Adds the option to display a performance monitor on screen.
 +
|-
 +
| Custom Speedometer
 +
| Adds a speedometer with some settings.
 +
|-
 +
| [[LPAR#debug|Debug Information]]
 +
| Adds the option to turn on various debug information.
 +
|-
 +
| [[LE-CODE/Item Cheat|Item Cheat]]
 +
| Adds an Item Cheat to the game.
 +
|-
 +
| [[LE-CODE/Distribution Tutorial/LE-DEF#texture-hacks|Random Texture Hacks]]
 +
| Adds support for organization of [[texture hack]]s.
 +
|-
 +
| [[LPAR#DEF-ONLINE-SEC|Custom Online Time Limit]]
 +
| Allows the online time limit to be customizable between 30 and 65535 seconds (18:12:15).
 +
|}
  
; ~2019-02-14 — WLECT development
+
=== Track Features ===
* Leseratte made a few changes to the LE-CODE to make it compatible with Wiimms tools.
+
{| class="textbox grid sortable alt"
* [[Wiimm]] started developing WLECT (Wiimms LE-CODE tool) so that we no longer have to create distributions manually.
+
|+ Track Features
* At the same time, Wiimm implemented LE-CODE support in its distribution-generator.
+
! Feature
 +
! Information
 +
|-
 +
| [[LE-CODE/Track FAQ#common|Course Dependent Files]]
 +
| Adds the option to read [[ObjFlow.bin]], [[GeoHitTableItem.bin]], [[GeoHitTableItemObj.bin]], [[GeoHitTableKart.bin]], [[GeoHitTableKartObj.bin]], and [[minigame.kmg]] from the track file itself.
 +
|-
 +
| [[LE-CODE/Track FAQ#woodbox|Woodbox Height Respawn Modifier]]
 +
| Modifies the height at which the {{obj-ref|0x70|woodbox}} object respawns.
 +
|-
 +
| [[LE-CODE/Track FAQ#cannon|Cannon Parameters]]
 +
| Adds the option to have custom cannon parameters through a [[LEX]] file.
 +
|-
 +
| [[LE-CODE/Track FAQ#mcar|Mushroom Car]]
 +
| Changes the {{obj-ref|0xd8|penguin_m}} object to function like a [[mariowiki:Mushroom Car|Mushroom Car]] from [[Mario Kart: Double Dash!!]]
 +
|-
 +
| [[LE-CODE/Track FAQ#ktpt2|Movable Finish Line]]
 +
| Adds the option to add a second starting position to display the finish line on the minimap in a different location.
 +
|-
 +
| [[Extended Presence Flags]]
 +
| Adds more options to [[Nintendo]]'s [[presence flag]]s.
 +
|-
 +
| Goomba Size Memory
 +
| Remembers the original size of a {{obj-ref|0x191|Goomba}} when respawning it.
 +
|-
 +
| [[LE-CODE/Track FAQ#itempos|Item Position Bug Fix]]
 +
| Fixes the [[Item Position Bug]] through a [[LEX]] file.
 +
|-
 +
| [[LE-CODE/Track FAQ#hidepos|Hidden Position Tracker]]
 +
| Hides the position tracker depending on the player's checkpoint information through a [[LEX]] file.
 +
|-
 +
| [[Epropeller Speed]]
 +
| Changes the {{obj-ref|0x1a6|Epropeller}} object to define another scale for the rotation speed.
 +
|-
 +
| [[Conditional Out of Bounds]]
 +
| Adds support for both versions of Conditional Out of Bounds.
 +
|-
 +
| [[LPAR#DEF-ONLINE-SEC|Custom Online Time Limit]]
 +
| Allows the online time limit to be customizable between [[LPAR#MIN-ONLINE-SEC|LPAR:MIN-ONLINE-SEC]] and LPAR:MAX-ONLINE-SEC.
 +
|-
 +
| [[LEX#RITP|Random Item Points]]
 +
| Allows item routes to be picked at random.
 +
|}
  
; 2019-02-15
+
=== Battle Features ===
* Leseratte developed a hacky way for LE-CODE to add additional ~20 slots to the game without breaking online support.
+
{| class="textbox grid sortable alt"
 +
|+ Battle Features
 +
! Feature
 +
! Information
 +
|-
 +
| Working Battle Mode
 +
| Makes Battle Mode work properly.
 +
|-
 +
| Battle Mode Time Limit Fix
 +
| Fixes the Battle Mode time limit (0:30 to 3:00).
 +
|}
  
; 2019-02-25 — even more track IDs
+
=== Menu Features ===
* The hack from above has been removed. Leseratte started development for actually supporting up to ~32000 tracks in online mode.
+
{| class="textbox grid sortable alt"
* Korean games should now work properly and not freeze on track load.
+
|+ Menu Features
 +
! Feature
 +
! Information
 +
|-
 +
| Custom Cup Icon Sizes
 +
| Adds support for custom cup icon sizes from 8×8 up to 248×248 pixels in increments of 8. The default is 128×128.
 +
|-
 +
| Demo Screen Battle Mode
 +
| Adds Battle Mode to the Demo Screen.
 +
|-
 +
| Demo Screen Fix
 +
| Fixes random Demo Screen crashes.
 +
|-
 +
| Custom Track Removal in Time Trials
 +
| Removes the ability to play custom tracks in Time Trials.
 +
|-
 +
| Track Selection Scrolling
 +
| Automatically updates the track names when scrolling through the cups. The arrows can also be used from the bottom row of cups.
 +
|-
 +
| [[LPAR#chatmsg|Functional Chat Messages]]
 +
| Adds functionality to room chat messages.
 +
|-
 +
| Online Worldwides
 +
| Adds support for worldwides to play on tracks and battle arenas online.
 +
|}
  
; 2019-03-06 track ID support finished
+
== Version History ==
* Both online gameplay and online live view now support up to ~32000 tracks.
+
See [[LE-CODE/History]] for a full history.
* Track icons changed from RGB5A3 to CMPR to reduce size.
+
{| class="wikitable"
* LE-CODE artificially limits the number of tracks to 4096 (you'd run out of memory for cup icons at some point anyways).
+
! Version
 +
! Date of release
 +
! Information
 +
|-
 +
| &mdash;
 +
| 2019-01-07
 +
| Start of development
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2019-07-12.build-13.zip Build 13]
 +
| 2019-07-12
 +
| First release
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-02-14.build-15.zip Build 15]
 +
| 2020-02-14
 +
|
 +
* Added [[Extended Presence Flags]].
 +
* Added Goomba Size Memory.
 +
* Added Course Dependent Files for [[minigame.kmg]].
 +
* Added Item Position Bug Fix
 +
* Added Hidden Position Tracker.
 +
* Fixed cutscene for Team Races.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-03-04.build-16.zip Build 16]
 +
| 2020-03-04
 +
|
 +
* Fixed Hidden Position Tracker for 4:3 field-of-view.
 +
* Fixed freeze that occurred when a player left a room which had a track using the Hidden Position Tracker loaded.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-04-08.build-18.zip Build 18]
 +
| 2020-04-08
 +
| Added Functional Chat Messages.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-06-16.build-20.zip Build 20]
 +
| 2020-06-16
 +
|
 +
* Added an option to avoid tracks being repicked for up to 50 times.
 +
* Added more Functional Chat Messages.
 +
* Added [[Epropeller Speed]].
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-07-26.build-22.zip Build 22]
 +
| 2020-07-26
 +
| Fixed crash that occurred when a player went online with many locked drivers.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-09-17.build-24.zip Build 24]
 +
| 2020-09-17
 +
| Fixed freeze that occurred when all players selected random when playing Battle Mode.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2020-12-09.build-26.zip Build 26]
 +
| 2020-10-09
 +
|
 +
* Added Custom Speedometer.
 +
* Added both versions of [[Conditional Out of Bounds]].
 +
* Updated Hidden Position Tracker.
 +
* Fixed Host Always Wins Vote not working when Track Blocker was disabled.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2021-04-08.build-28.zip Build 28]
 +
| 2021-04-08
 +
|
 +
* Added Debug Information.
 +
* Added [[Item Cheat]].
 +
* Updated Custom Speedometer.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2021-09-03.build-30.zip Build 30]
 +
| 2021-09-03
 +
|
 +
* Added Thunder Cloud Time Modifier.
 +
* Added Cheat Code System.
 +
* Added D-Pad Settings.
 +
* Added Cheat Modes.
 +
* Changed Draggable Blue Shells to an option.
 +
* Fixed Debug Information always being enabled.
 +
* Fixed Item Cheat joystick position.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2022-05-13.build-32.zip Build 32]
 +
| 2022-05-13
 +
| Added bigger display to allow longer track names.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2022-10-20.build-34.zip Build 34]
 +
| 2022-10-20
 +
|
 +
* Added support for Random Texture Hacks.
 +
* Removed Bullet Bill from Item Cheat when in Battle Mode.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2022-12-15.build-36.zip Build 36]
 +
| 2022-12-15
 +
|
 +
* Added support for [[LE-CODE/Distribution_Tutorial/LE-DEF#worldwide|Online Worldwides]].
 +
* Added Random Texture Hacks option to [[LE-CODE/Distribution Tutorial/LE-DEF#random|Random Track from Group]].
 +
* Updated Random Track from Group to function for battle arenas.
 +
* Extended [[LE-CODE/Distribution Tutorial/LE-DEF#flags|track flags]] from 8 to 16 bits.
 +
* Increased internal version number.
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2023-08-05.build-38.zip Build 38]
 +
| 2023-08-05
 +
|
 +
* Made [[LPAR#STATICR-POINTS|Custom VS Point Scheme]] toggleable.
 +
* Added Custom Online Time Limit for [[distribution]]s and [[custom track]]s in [[LPAR#DEF-ONLINE-SEC|LPAR:DEF-ONLINE-SEC]] and [[LEX#APPLY-ONLINE-SEC|LEX:SET1:APPLY-ONLINE-SEC]] respectively.
 +
* Added [[LEX#RITP|Random Item Points]].
 +
|-
 +
| [https://download.wiimm.de/lecode/distribution-support/lecode-bin/2024-02-17.build-40.zip Build 40]
 +
| 2024-02-17
 +
|
 +
* Added support for custom cup icon sizes from 8×8 up to 248×248 pixels in increments of 8.
 +
* Increased the track limit to 8,192.
 +
|}
  
; 2019-04-01 — first public test distribution
+
== Other Articles ==
* [[Wiimm]] and [[Leseratte]] released a [[LE-CODE_Test_Distribution|public test version]] of Wiimms [[Intermezzo]] built with the LE-CODE to do some online tests with more people.
+
* [[LE-CODE/Distribution Tutorial|LE-CODE Distribution Tutorial]]
* From now on, all new builds of Wiimms [[Intermezzo]] (released every Tuesday) will be built using the LE-CODE.
+
* [[LE-CODE/Distribution FAQ|LE-CODE Distribution FAQ]]
 +
* [[LE-CODE/Track FAQ|LE-CODE Track FAQ]]
 +
* [[Slot Usage]]
 +
* [[LEX (File Format)]]
 +
* [[Extended Presence Flags]]
  
; 2019-05-18 — various preparations for MKW Fun
+
{{User-Wiimm-Link}}
* During the last months Wiimm and Leseratte did some cleanup of the LE-CODE and the MKW Fun build system to prepare the first MKW-Fun distribution with the LE-CODE
+
[[Category:In Progress/Update]]
* A "mushroom car" feature (for tracks like [[GCN Mushroom City (Tock)|GCN Mushroom City]]) has been added to the LE-CODE (thanks to [[User:KHacker35000vr|Kevin (KHacker35000vr)]] for the code for that)
+
[[Category:LE-CODE]]
 
 
== What does the LE-CODE contain? ==
 
 
 
Leseratte developed the LE-CODE as a complete build system for all modifications Wiimm and Leseratte are doing to [[Wiimms_Mario_Kart_Fun|Wiimms MKW-Fun distributions]]. It includes nearly all features of the old ct-code (even though all of them have either been rewritten (C or ASM) or heavily modified to fix quite a few bugs), and it includes all of the features in the MKW-Fun distributions.
 
 
 
=== List of features from the old ct-code and MKW-Fun, now included in LE-CODE ===
 
 
 
* [[Slot_Usage|Extension to allow the game to load more than 32 race tracks]]
 
* Custom menu system from the ct-code to add arrows to the track selection
 
* Online track selection time limit is displayed all the time
 
* Removed CTGP randomizer so picking "Random" actually votes "???"
 
* [[Lap_%26_Speed_Modifier|Lap and speed modifier]]
 
* [[User:Leseratte#Fix_the_mushroom-only-bug_online|Mushroom bugfix]]
 
* Cloud time modifier
 
* [[Translations/Random|New random variants]] (All tracks, Nintendo tracks, Custom tracks, new tracks)
 
* Track variants (like Animal Crossing in Mario Kart 8)
 
* [[Filesystem/rel/StaticR.rel#Change_the_points_a_player_gets_for_winning_a_race|VS point scheme changed]] (25 points instead of 15 points)
 
* Room settings (friend room host can set options like vehicle restrictions or number of races)
 
* No Lightning in team races
 
* Engine class probability modifier, engine class is no longer dependant on VR
 
* Room stability indicator
 
* Blue shell can be dragged behind a vehicle like other shells
 
 
 
 
 
=== Changes / Bugfixes / New features with the LE-CODE ===
 
 
 
* Battle
 
** Battle mode actually works
 
** Battle mode has proper time limit online (3:00.000 instead of 0:30.000)
 
** Playing a battle no longer influences [https://tcrf.net/Mario_Kart_Wii#Online_Nametag_Drawdistance name tag view distance] in VS races played afterwards
 
* Demo screen
 
** Demo shows battle tracks as well
 
** Demo correctly switches modes in the proper order
 
** Demo no longer randomly freezes sometimes
 
* General
 
** New generic features
 
*** The korean version of Mario Kart Wii is now supported
 
*** [[Slot_Usage#LE-CODE|256 track limit removed]] ⇒ [[Slot Usage#LE-CODE|LE-CODE Slot Usage]]. New limit: 32700 CTs (more likely limited by maximum ISO size of 9 GB)
 
*** The game now has a proper crash handler (like the "DSI exception" screen in homebrew) that displays data for the developers when the game crashes
 
*** Special multiplayer variants (_d.szs) no longer mandatory, if they are missing, the non-multiplayer version is loaded instead
 
*** Tracks are now loaded from <tt>/Race/Course/<slot-id>.szs</tt>, removing the need for a file name table
 
*** MrBeans performance monitor is included and can be enabled / disabled with [https://szs.wiimm.de/wlect/ Wiimms LE-CODE tool] (console only, not on Dolphin)
 
** New track-related features
 
*** Support for track-dependant [[ObjFlow.bin]] and GeoHitTable*.bin files - see section below.
 
*** Special feature for [[DS_Airship_Fortress_(Sniki)|DS Airship Fortress]] (usable in all other tracks as well): The {{obj-ref|woodbox}} object uses setting 8 for the drop height so it doesn't land on the wrong floor
 
*** Loading [[Template:Cannon_characteristics|cannon parameters]] from a [[LEX_(File_Format)|course.lex]] file inside a track so CT authors can define own cannon parameters.
 
*** Special feature for tracks like [[GCN Mushroom Bridge]] and [[GCN Mushroom City]]: The {{obj-ref|penguin_m}} object's settings can be used to make it behave like a mushroom car (spitting out a mushroom when hit) - thanks to [[User:KHacker35000vr|Kevin]] for the code to do that
 
*** The start line on the map can be freely placed anywhere (using a second KTPT entry with player index -1) and will (most likely) be rotated properly in mirror mode.
 
** Bugfixes
 
*** The icache is properly handled, this means that LE-CODE should properly work on Dolphin (but might require a version newer than about 5.0-9000 due to a Dolphin bug in older versions)
 
*** 4-player offline mode with Miis no longer crashes (LE-CODE no longer wastes memory with useless copies of unnecessarily large data structures like CT-CODE did)
 
*** After playing a Time Trial the minimap driver icons will be correctly resized instead of staying large
 
*** Playing a team GP no longer removes the Lightning from subsequent non-team GPs
 
*** The special random variants (new tracks, CTs, all tracks, Nintendo tracks) and the track variants now work offline as well
 
*** Playing GPs on custom cups no longer breaks the savegame
 
*** Fixed a bug that would cause the wrong trophy to be awarded in MKW-Fun due to cup reordering
 
*** <s>Fixed the recently discovered [[User:Leseratte#480p_graphics_fix|480p graphics glitch]] caused by a bug in the Nintendo SDK</s> ''due to the way this fix works it can't be embedded in the LE-CODE and has to be applied directly to the game''
 
* Menu
 
** Fixed a bug that could have caused freezes and/or graphical glitches in the menu under some circumstances
 
** In Time Trial mode, custom tracks are now hidden from the menu
 
** The Worldwide button on the online menu has been removed (instead of just being labeled "don't use")
 
** Scrolling through the cup list auto-updates the track list (also, as in previous versions, one can scroll in the bottom row as well)
 
** The algorithm that selected a track to be loaded when "???" is selected was slightly off and not every track had the exact same probability of winning the random lottery
 
* Not yet done, but likely to be added:
 
** TT ranking selection menu in the Mario Kart Channel is no longer broken
 
 
 
=== List of features in old MKW-Fun that are no longer included (yet?) ===
 
 
 
* Speedometer
 
* Change vehicle between online races
 
 
 
== Information for CT creators ==
 
 
 
The new LE-CODE contains a few features for CT creators:
 
 
 
* [[ObjFlow.bin]] and GeoHitTable*.bin files can be loaded from the "Common" subfolder in an SZS track file
 
* [[Template:Cannon_characteristics|Cannon parameters]] can be loaded from a [[LEX_(File_Format)|course.lex]] file inside the SZS track file
 
* The {{obj-ref|woodbox}} object's setting S8 can be used to specify the height from which the box should drop
 
 
 
=== Detailed information ===
 
 
 
Certain files that would usually be loaded from the [[Common.szs]] can be loaded from a track file. Currently, the following files are supported:
 
 
 
* [[ObjFlow.bin]]
 
* [[GeoHitTableItem.bin]]
 
* [[GeoHitTableItemObj.bin]]
 
* [[GeoHitTableKart.bin]]
 
* [[GeoHitTableKartObj.bin]]
 
 
 
If you wish to include such customized files in your CT for Wiimms MKW Fun, you have to create a folder <tt>Common</tt> in your SZS track file and place the file(s) in there. For your own testing, you then have to replace them in the Common.szs as well, because the original, non-modded game doesn't load them from a track file.
 
 
 
As of v2.02a of [[Wiimms SZS Tools]] a simple command can extract all Common sub-folders to the correct place in only one step:
 
: '''wszst xcommon ./files/Race/Course/*.szs -qiod ./files/Race/Common/%N'''
 
 
 
In the future, we also plan to allow for track variants being loaded in different modes, for example, a different SZS for offline and online mode. The exact modes / distinctions we'll support aren't known yet, If you would like to create a CT that behaves differently in certain modes (offline/online, 1P/2P/3P/4P), and that track is likely to be included in MKW-Fun, let Wiimm and Leseratte know which different versions your track will have, and we will try to implement that.
 
 
 
== Wiimms SZS Tools ==
 
 
 
[[Wiimms SZS Tools]] support the LE-CODE extension like the [[CT-CODE]] extension before. The new tool ''wlect'' was created for LE-CODE and [[LEX]] support. If using tool ''wctct'' with option ''--lecode'', it switch internally to LE-CODE support and accepts track definition files in [[CT-CODE]] syntax. So you can use the same definition file for CT-CODE and for LE-CODE.
 
 
 
[[category:LE-CODE]]
 

Latest revision as of 14:08, 17 February 2024

Overview

LE-CODE (short for Leseratte-Code) is a code extension of Mario Kart Wii initially written by Leseratte. After the initial phase, the code was jointly developed by Leseratte and Wiimm. It has been named after CT-CODE, the name of the old code extension by MrBean35000vr and Chadderz.

Development started in January 2019, using the build system taken from the Wiimmfi updater. This means that it supports writing C source code instead of Assembly code for its modifications, and is designed to be loaded into the StaticR.rel relocation buffer as soon as it has been loaded and linked into memory, which has about 900 KB of usable space for modifications.

To use this code extension in other mods, Wiimm added support for management of LE-CODE and its additional features to Wiimms SZS Tools, called Wiimms LE-CODE Tool. Additional documentation can be found here.

The first few test versions were tested by Wiimm and Leseratte in February 2019, with the first version for a few more private testers being released on February 20th. LE-CODE could be used by the public after the release of Wiimms Mario Kart Fun 2019-06, which happened in June 2019.

Media

Features

LE-CODE's features are based on a list of modifications that were included in the Wiimms Mario Kart Fun series. It includes nearly all features that CT-CODE has and all features of the former mentioned series.

Features from CT-CODE

CT-CODE Features
Feature Information
More Racing Tracks Adds more slots to the game by editing the game's slot usage to have more than 4000 tracks in a distribution.
Custom Menu System Adds more cups and two arrows to the track selection.
Wi-Fi Timer Makes the timer display always when selecting a track online.
Random Track Fix Fixes the random button from the track selection.
Lap & Speed Modifier Adds support to have modifier lap and speed amounts.
Mushroom Only Bug Fix Fixes item boxes only giving Mushrooms after the 18th item online.
Thunder Cloud Time Modifier Allows the Thunder Cloud to strike earlier or later.
Random Track from Group Adds random groups to the track selection, allowing to vote randomly in a set of tracks. (All tracks, Nintendo tracks, custom tracks, new tracks, texture hacks)
Track Variants Allows tracks to function like Animal Crossing from Mario Kart 8.
Custom VS Point Scheme Changes the amount of points a player gets when finishing a race.
No Lightning in Team Races Disables the Lightning item in Team Races.
Engine Class Probability Modifier Removes calculations based on VR and uses a fixed probability instead.
Draggable Blue Shells Allows the Blue Shell to be dragged behind a player's vehicle, like Green and Red Shells.

Bugfixes

Bugfixes
Feature Information
Icache Fix Handles the icache properly, making the mod compatible with Dolphin 5.0-9000 and higher.
4-Player Mii Crash Fixes 4-player mode with Miis.
Minimap Icon Size Fix Fixes the size of the minimap's character icons when playing another game after Time Trials.
Battle Mode Name Tag Fix Fixes the render distance of player's name tags when returning to VS races.
Grand Prix Savegame Fix Fixes playing Grand Prix on custom cups from corrupting the savegame.
Trophy Fix Fixes the game awarding the wrong trophy due to the additional cups.

Main Features

Main Features
Feature Information
NTSC-K Support Adds support for the Korean version of the game.
More Than 256 Tracks Extends the track limit to 4,096 or 8,192.
Crash Handler Adds a proper crash handler to the game that displays data about the crash.
Multiplayer File Removal Removes the need for Multiplayer files and picks the regular track if it is not present.
Track Directory Adds a track directory to the game's filesystem.
Performance Monitor Adds the option to display a performance monitor on screen.
Custom Speedometer Adds a speedometer with some settings.
Debug Information Adds the option to turn on various debug information.
Item Cheat Adds an Item Cheat to the game.
Random Texture Hacks Adds support for organization of texture hacks.
Custom Online Time Limit Allows the online time limit to be customizable between 30 and 65535 seconds (18:12:15).

Track Features

Track Features
Feature Information
Course Dependent Files Adds the option to read ObjFlow.bin, GeoHitTableItem.bin, GeoHitTableItemObj.bin, GeoHitTableKart.bin, GeoHitTableKartObj.bin, and minigame.kmg from the track file itself.
Woodbox Height Respawn Modifier Modifies the height at which the woodbox object respawns.
Cannon Parameters Adds the option to have custom cannon parameters through a LEX file.
Mushroom Car Changes the penguin_m object to function like a Mushroom Car from Mario Kart: Double Dash!!
Movable Finish Line Adds the option to add a second starting position to display the finish line on the minimap in a different location.
Extended Presence Flags Adds more options to Nintendo's presence flags.
Goomba Size Memory Remembers the original size of a Goomba when respawning it.
Item Position Bug Fix Fixes the Item Position Bug through a LEX file.
Hidden Position Tracker Hides the position tracker depending on the player's checkpoint information through a LEX file.
Epropeller Speed Changes the Epropeller object to define another scale for the rotation speed.
Conditional Out of Bounds Adds support for both versions of Conditional Out of Bounds.
Custom Online Time Limit Allows the online time limit to be customizable between LPAR:MIN-ONLINE-SEC and LPAR:MAX-ONLINE-SEC.
Random Item Points Allows item routes to be picked at random.

Battle Features

Battle Features
Feature Information
Working Battle Mode Makes Battle Mode work properly.
Battle Mode Time Limit Fix Fixes the Battle Mode time limit (0:30 to 3:00).

Menu Features

Menu Features
Feature Information
Custom Cup Icon Sizes Adds support for custom cup icon sizes from 8×8 up to 248×248 pixels in increments of 8. The default is 128×128.
Demo Screen Battle Mode Adds Battle Mode to the Demo Screen.
Demo Screen Fix Fixes random Demo Screen crashes.
Custom Track Removal in Time Trials Removes the ability to play custom tracks in Time Trials.
Track Selection Scrolling Automatically updates the track names when scrolling through the cups. The arrows can also be used from the bottom row of cups.
Functional Chat Messages Adds functionality to room chat messages.
Online Worldwides Adds support for worldwides to play on tracks and battle arenas online.

Version History

See LE-CODE/History for a full history.

Version Date of release Information
2019-01-07 Start of development
Build 13 2019-07-12 First release
Build 15 2020-02-14
  • Added Extended Presence Flags.
  • Added Goomba Size Memory.
  • Added Course Dependent Files for minigame.kmg.
  • Added Item Position Bug Fix
  • Added Hidden Position Tracker.
  • Fixed cutscene for Team Races.
Build 16 2020-03-04
  • Fixed Hidden Position Tracker for 4:3 field-of-view.
  • Fixed freeze that occurred when a player left a room which had a track using the Hidden Position Tracker loaded.
Build 18 2020-04-08 Added Functional Chat Messages.
Build 20 2020-06-16
  • Added an option to avoid tracks being repicked for up to 50 times.
  • Added more Functional Chat Messages.
  • Added Epropeller Speed.
Build 22 2020-07-26 Fixed crash that occurred when a player went online with many locked drivers.
Build 24 2020-09-17 Fixed freeze that occurred when all players selected random when playing Battle Mode.
Build 26 2020-10-09
  • Added Custom Speedometer.
  • Added both versions of Conditional Out of Bounds.
  • Updated Hidden Position Tracker.
  • Fixed Host Always Wins Vote not working when Track Blocker was disabled.
Build 28 2021-04-08
  • Added Debug Information.
  • Added Item Cheat.
  • Updated Custom Speedometer.
Build 30 2021-09-03
  • Added Thunder Cloud Time Modifier.
  • Added Cheat Code System.
  • Added D-Pad Settings.
  • Added Cheat Modes.
  • Changed Draggable Blue Shells to an option.
  • Fixed Debug Information always being enabled.
  • Fixed Item Cheat joystick position.
Build 32 2022-05-13 Added bigger display to allow longer track names.
Build 34 2022-10-20
  • Added support for Random Texture Hacks.
  • Removed Bullet Bill from Item Cheat when in Battle Mode.
Build 36 2022-12-15
Build 38 2023-08-05
Build 40 2024-02-17
  • Added support for custom cup icon sizes from 8×8 up to 248×248 pixels in increments of 8.
  • Increased the track limit to 8,192.

Other Articles