-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
yonaikerlol
committed
Mar 11, 2019
0 parents
commit 2130af1
Showing
15 changed files
with
1,829 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Super Mario 3D Land Savegame Editor: | ||
Code mirrored from [this user](https://gbatemp.net/members/110449), thanks. | ||
|
||
A Savegame editor for the game Super Mario 3D Land (3DS). | ||
Tested on EUR Game/O3DSXL (Card, I dont have eshop version of this game). | ||
* Unlock all worlds is a **WIP** Option - Make sure you have a backup of your save. | ||
|
||
More information: https://gbatemp.net/threads/396816 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 11.00 | ||
# Visual Studio 2010 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Super Mario Land 3D Savegame Editor", "Super Mario Land 3D Savegame Editor\Super Mario Land 3D Savegame Editor.csproj", "{EF07776A-F706-4494-A3E3-A46C2E4E0650}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|x86 = Debug|x86 | ||
Release|x86 = Release|x86 | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{EF07776A-F706-4494-A3E3-A46C2E4E0650}.Debug|x86.ActiveCfg = Debug|x86 | ||
{EF07776A-F706-4494-A3E3-A46C2E4E0650}.Debug|x86.Build.0 = Debug|x86 | ||
{EF07776A-F706-4494-A3E3-A46C2E4E0650}.Release|x86.ActiveCfg = Release|x86 | ||
{EF07776A-F706-4494-A3E3-A46C2E4E0650}.Release|x86.Build.0 = Release|x86 | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
// Copyright (c) Damien Guard. All rights reserved. | ||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
// Originally published at http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net | ||
|
||
using System; | ||
using System.Collections.Generic; | ||
using System.Security.Cryptography; | ||
|
||
namespace Super_Mario_Land_3D_Savegame_Editor | ||
{ | ||
/// <summary> | ||
/// Implements a 32-bit CRC hash algorithm compatible with Zip etc. | ||
/// </summary> | ||
/// <remarks> | ||
/// Crc32 should only be used for backward compatibility with older file formats | ||
/// and algorithms. It is not secure enough for new applications. | ||
/// If you need to call multiple times for the same data either use the HashAlgorithm | ||
/// interface or remember that the result of one Compute call needs to be ~ (XOR) before | ||
/// being passed in as the seed for the next Compute call. | ||
/// </remarks> | ||
public sealed class Crc32 : HashAlgorithm | ||
{ | ||
public const UInt32 DefaultPolynomial = 0xedb88320u; | ||
public const UInt32 DefaultSeed = 0xffffffffu; | ||
|
||
static UInt32[] defaultTable; | ||
|
||
readonly UInt32 seed; | ||
readonly UInt32[] table; | ||
UInt32 hash; | ||
|
||
public Crc32() | ||
: this(DefaultPolynomial, DefaultSeed) | ||
{ | ||
} | ||
|
||
public Crc32(UInt32 polynomial, UInt32 seed) | ||
{ | ||
table = InitializeTable(polynomial); | ||
this.seed = hash = seed; | ||
} | ||
|
||
public override void Initialize() | ||
{ | ||
hash = seed; | ||
} | ||
|
||
protected override void HashCore(byte[] array, int ibStart, int cbSize) | ||
{ | ||
hash = CalculateHash(table, hash, array, ibStart, cbSize); | ||
} | ||
|
||
protected override byte[] HashFinal() | ||
{ | ||
var hashBuffer = UInt32ToBigEndianBytes(~hash); | ||
HashValue = hashBuffer; | ||
return hashBuffer; | ||
} | ||
|
||
public override int HashSize { get { return 32; } } | ||
|
||
public static UInt32 Compute(byte[] buffer) | ||
{ | ||
return Compute(DefaultSeed, buffer); | ||
} | ||
|
||
public static UInt32 Compute(UInt32 seed, byte[] buffer) | ||
{ | ||
return Compute(DefaultPolynomial, seed, buffer); | ||
} | ||
|
||
public static UInt32 Compute(UInt32 polynomial, UInt32 seed, byte[] buffer) | ||
{ | ||
return ~CalculateHash(InitializeTable(polynomial), seed, buffer, 0, buffer.Length); | ||
} | ||
|
||
static UInt32[] InitializeTable(UInt32 polynomial) | ||
{ | ||
if (polynomial == DefaultPolynomial && defaultTable != null) | ||
return defaultTable; | ||
|
||
var createTable = new UInt32[256]; | ||
for (var i = 0; i < 256; i++) | ||
{ | ||
var entry = (UInt32)i; | ||
for (var j = 0; j < 8; j++) | ||
if ((entry & 1) == 1) | ||
entry = (entry >> 1) ^ polynomial; | ||
else | ||
entry = entry >> 1; | ||
createTable[i] = entry; | ||
} | ||
|
||
if (polynomial == DefaultPolynomial) | ||
defaultTable = createTable; | ||
|
||
return createTable; | ||
} | ||
|
||
static UInt32 CalculateHash(UInt32[] table, UInt32 seed, IList<byte> buffer, int start, int size) | ||
{ | ||
var crc = seed; | ||
for (var i = start; i < size - start; i++) | ||
crc = (crc >> 8) ^ table[buffer[i] ^ crc & 0xff]; | ||
return crc; | ||
} | ||
|
||
static byte[] UInt32ToBigEndianBytes(UInt32 uint32) | ||
{ | ||
var result = BitConverter.GetBytes(uint32); | ||
|
||
if (BitConverter.IsLittleEndian) | ||
Array.Reverse(result); | ||
|
||
return result; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Windows.Forms; | ||
|
||
namespace Super_Mario_Land_3D_Savegame_Editor | ||
{ | ||
static class Program | ||
{ | ||
/// <summary> | ||
/// Der Haupteinstiegspunkt für die Anwendung. | ||
/// </summary> | ||
[STAThread] | ||
static void Main() | ||
{ | ||
Application.EnableVisualStyles(); | ||
Application.SetCompatibleTextRenderingDefault(false); | ||
Application.Run(new SM3DL_SGE()); | ||
} | ||
} | ||
} |
36 changes: 36 additions & 0 deletions
36
Super Mario Land 3D Savegame Editor/Properties/AssemblyInfo.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using System.Reflection; | ||
using System.Runtime.CompilerServices; | ||
using System.Runtime.InteropServices; | ||
|
||
// Allgemeine Informationen über eine Assembly werden über die folgenden | ||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, | ||
// die mit einer Assembly verknüpft sind. | ||
[assembly: AssemblyTitle("Super Mario Land 3D Savegame Editor")] | ||
[assembly: AssemblyDescription("")] | ||
[assembly: AssemblyConfiguration("")] | ||
[assembly: AssemblyCompany("Microsoft")] | ||
[assembly: AssemblyProduct("Super Mario Land 3D Savegame Editor")] | ||
[assembly: AssemblyCopyright("Copyright © Microsoft 2015")] | ||
[assembly: AssemblyTrademark("")] | ||
[assembly: AssemblyCulture("")] | ||
|
||
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar | ||
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von | ||
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. | ||
[assembly: ComVisible(false)] | ||
|
||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird | ||
[assembly: Guid("e78b334b-54d0-4fd0-84bd-98ce56a6c092")] | ||
|
||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: | ||
// | ||
// Hauptversion | ||
// Nebenversion | ||
// Buildnummer | ||
// Revision | ||
// | ||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern | ||
// übernehmen, indem Sie "*" eingeben: | ||
// [assembly: AssemblyVersion("1.0.*")] | ||
[assembly: AssemblyVersion("1.0.0.0")] | ||
[assembly: AssemblyFileVersion("1.0.0.0")] |
83 changes: 83 additions & 0 deletions
83
Super Mario Land 3D Savegame Editor/Properties/Resources.Designer.cs
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.