added smash bros ultimate and super kirby clash editors

This commit is contained in:
Marc Robledo
2019-09-12 20:32:11 +02:00
parent d1a143ba9a
commit f4e2fc05ad
13 changed files with 587 additions and 7 deletions

View File

@@ -88,24 +88,27 @@ h6 a:hover{
<div class="row">
<a class="three columns game" href="/acnl-editor/"><img src="thumb.png" id="thumb-acnl" /><div>Animal Crossing: New Leaf <small>(Welcome amiibo!)</small></div></a>
<a class="three columns game" href="zelda-botw/"><img src="thumb.png" id="thumb-zelda-botw" /><div>The legend of Zelda: Breath of the wild</div></a>
<a class="three columns game" href="team-kirby-clash-dx/"><img src="thumb.png" id="thumb-team-kirby-clash-dx" /><div>Team Kirby Clash Deluxe</div></a>
<a class="three columns game" href="super-kirby-clash/"><img src="thumb.png" id="thumb-super-kirby-clash" /><div>Super Kirby Clash <b>NEW!</b></div></a>
</div>
<div class="row">
<a class="three columns game" href="kid-icarus-uprising/"><img src="thumb.png" id="thumb-kid-icarus-uprising" /><div>Kid Icarus: Uprising</div></a>
<a class="three columns game" href="hyrule-warriors/"><img src="thumb.png" id="thumb-hyrule-warriors" /><div>Hyrule Warriors</div></a>
<a class="three columns game" href="pokemon-shuffle/"><img src="thumb.png" id="thumb-pokemon-shuffle" /><div>Pokémon Shuffle</div></a>
<a class="three columns game" href="smash-bros-ultimate/"><img src="thumb.png" id="thumb-smash-bros-ultimate" /><div>Super Smash Bros. Ultimate <b>NEW!</b></div></a>
</div>
<div class="row">
<a class="four columns game" href="kirbys-blowout-blast/"><img src="thumb.png" id="thumb-kirbys-blowout-blast" /><div>Kirby's Blowout Blast</div></a>
<a class="four columns game" href="picross-3d-round-2/"><img src="thumb.png" id="thumb-picross-3d-round-2" /><div>Picross 3D: Round 2</div></a>
<a class="four columns game" href="pokemon-picross/"><img src="thumb.png" id="thumb-pokemon-picross" /><div>Pokémon Picross</div></a>
<a class="four columns game" href="team-kirby-clash-dx/"><img src="thumb.png" id="thumb-team-kirby-clash-dx" /><div>Team Kirby Clash Deluxe</div></a>
<a class="four columns game" href="pokemon-shuffle/"><img src="thumb.png" id="thumb-pokemon-shuffle" /><div>Pokémon Shuffle</div></a>
<a class="four columns game" href="final-fantasy-explorers/"><img src="thumb.png" id="thumb-final-fantasy-explorers" /><div>Final Fantasy Explorers</div></a>
<a class="four columns game" href="kirbys-blowout-blast/"><img src="thumb.png" id="thumb-kirbys-blowout-blast" /><div>Kirby's Blowout Blast</div></a>
</div>
<div class="row">
<a class="four columns game" href="zelda-botw-master/"><img src="thumb.png" id="thumb-zelda-botw-master" /><div>The legend of Zelda: Breath of the wild (Master editor)</div></a>
<a class="four columns game" href="pokemon-picross/"><img src="thumb.png" id="thumb-pokemon-picross" /><div>Pokémon Picross</div></a>
<a class="four columns game" href="rhythm-paradise-megamix/"><img src="thumb.png" id="thumb-rhythm-paradise-megamix" /><div>Rhythm Paradise Megamix</div></a>
<a class="four columns game" href="streetpass-mii-plaza/"><img src="thumb.png" id="thumb-streetpass-mii-plaza" /><div>StreetPass Mii Plaza</div></a>
<a class="four columns game" href="mario-kart-7/"><img src="thumb.png" id="thumb-mario-kart-7" /><div>Mario Kart 7 <b>NEW!</b></div></a>
<a class="four columns game" href="mario-kart-7/"><img src="thumb.png" id="thumb-mario-kart-7" /><div>Mario Kart 7</div></a>
</div>
<div class="row">
<a class="four columns game" href="picross-3d-round-2/"><img src="thumb.png" id="thumb-picross-3d-round-2" /><div>Picross 3D: Round 2</div></a>
</div>
<hr/>

View File

@@ -0,0 +1,82 @@
/*
Cache Service Worker template by mrc 2019
mostly based in:
https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/basic/service-worker.js
https://github.com/chriscoyier/Simple-Offline-Site/blob/master/js/service-worker.js
https://gist.github.com/kosamari/7c5d1e8449b2fbc97d372675f16b566e
Note for GitHub Pages:
there can be an unexpected behaviour (cache not updating) when site is accessed from
https://user.github.io/repo/ (without index.html) in some browsers (Firefox)
use absolute paths if hosted in GitHub Pages in order to avoid it
also invoke sw with an absolute path:
navigator.serviceWorker.register('/repo/_cache_service_worker.js', {scope: '/repo/'})
*/
/* MOD: fix old caches for mrc */
caches.keys().then(function(cacheNames){
for(var i=0; i<cacheNames.length; i++){
if(
cacheNames[i]==='runtime' ||
/^precache-\w+$/.test(cacheNames[i]) ||
/^precache-editor-([\w\+]+)-\w+$/.test(cacheNames[i]) ||
/^v?\d+\w?$/.test(cacheNames[i])
){
console.log('deleting old cache: '+cacheNames[i]);
caches.delete(cacheNames[i]);
}
}
});
var PRECACHE_ID='smash-bros-ultimate-editor';
var PRECACHE_VERSION='v1';
var PRECACHE_URLS=[
'/savegame-editors/smash-bros-ultimate/','/savegame-editors/smash-bros-ultimate/index.html',
'/savegame-editors/smash-bros-ultimate/favicon.png',
'/savegame-editors/smash-bros-ultimate/smash-bros-ultimate.js',
'/savegame-editors/savegame-editor.js',
'/savegame-editors/savegame-editor.css'
];
// install event (fired when sw is first installed): opens a new cache
self.addEventListener('install', evt => {
evt.waitUntil(
caches.open('precache-'+PRECACHE_ID+'-'+PRECACHE_VERSION)
.then(cache => cache.addAll(PRECACHE_URLS))
.then(self.skipWaiting())
);
});
// activate event (fired when sw is has been successfully installed): cleans up old outdated caches
self.addEventListener('activate', evt => {
evt.waitUntil(
caches.keys().then(cacheNames => {
return cacheNames.filter(cacheName => (cacheName.startsWith('precache-'+PRECACHE_ID+'-') && !cacheName.endsWith('-'+PRECACHE_VERSION)));
}).then(cachesToDelete => {
return Promise.all(cachesToDelete.map(cacheToDelete => {
console.log('delete '+cacheToDelete);
return caches.delete(cacheToDelete);
}));
}).then(() => self.clients.claim())
);
});
// fetch event (fired when requesting a resource): returns cached resource when possible
self.addEventListener('fetch', evt => {
if(evt.request.url.startsWith(self.location.origin)){ //skip cross-origin requests
evt.respondWith(
caches.match(evt.request).then(cachedResource => {
if (cachedResource) {
return cachedResource;
}else{
return fetch(evt.request);
}
})
);
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

View File

@@ -0,0 +1,125 @@
<!DOCTYPE html>
<html>
<head>
<title>Savegame Editor &ndash; Super Smash Bros. Ultimate</title>
<meta http-equiv="content-Type" content="text/html; charset=UTF-8"/>
<meta name="description" content="A savegame editor for Super Smash Bros. Ultimate. It can let you edit your skill orbs, spirit points, items and more!"/>
<meta name="keywords" content="html5, savegame, save, editor, hack, exploit, switch, super, smash, bros, ultimate, skill, orbs, spirit, points, money, items"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<link rel="shortcut icon" href="favicon.png"/>
<link type="text/css" rel="stylesheet" href="../savegame-editor.css" media="all"/>
<script type="text/javascript" src="../savegame-editor.js"></script>
<script type="text/javascript" src="./smash-bros-ultimate.js"></script>
<script type="text/javascript"><!--
/* service worker */
var FORCE_HTTPS=true;
window.addEventListener('load',function(){
if(location.protocol==='http:' && FORCE_HTTPS)
location.replace(window.location.href.replace('http:','https:'));
else if(location.protocol==='https:' && 'serviceWorker' in navigator)
navigator.serviceWorker.register('/savegame-editors/smash-bros-ultimate/_cache_service_worker.js', {scope: '/savegame-editors/smash-bros-ultimate/'});
}, false);
--></script>
</head>
<body>
<!-- HEADER -->
<div id="header">
<div id="header-top">
<div class="row wrapper">
<h1 class="six columns text-left"><img src="favicon.png" /> Savegame Editor <small>for Super Smash Bros. Ultimate</small></h1>
<div class="six columns header-buttons text-right">
by <a href="/">Marc Robledo</a>
<i class="icon github"></i> <a href="https://github.com/marcrobledo/savegame-editors/tree/master/smash-bros-ultimate" target="_blank">See on GitHub</a>
<i class="icon heart"></i> <a href="https://www.paypal.me/marcrobledo/5" target="_blank" rel="nofollow">Donate</a>
</div>
</div>
<div class="hidden row wrapper" id="toolbar">
<div class="twelve columns text-center">
<button class="close" onclick="closeFile()"><i class="icon close"></i> Close file</button>
<button class="colored" onclick="saveChanges()"><i class="icon accept"></i> Save changes</button>
</div>
</div>
</div>
</div>
<!-- THE EDITOR -->
<div id="the-editor" class="wrapper hidden">
<!-- MAIN -->
<h3 class="orange">Main</h3>
<div class="container">
<div class="row">
<div class="six columns center"><label for="number-tickets">Tickets</label></div>
<div class="four columns center"><input id="number-tickets" type="text" /></div>
<div class="six columns center"><label for="number-gold">Gold</label></div>
<div class="four columns center"><input id="number-gold" type="text" /></div>
<div class="six columns center"><label for="number-hammers">Hammers</label></div>
<div class="four columns center"><input id="number-hammers" type="text" /></div>
</div>
</div>
<!-- SPIRITS -->
<h3 class="green">Spirits</h3>
<div class="container">
<div class="row">
<div class="six columns center"><label for="number-snacks-s">Snacks (S)</label></div>
<div class="four columns center"><input id="number-snacks-s" type="text" /></div>
<div class="six columns center"><label for="number-snacks-m">Snacks (M)</label></div>
<div class="four columns center"><input id="number-snacks-m" type="text" /></div>
<div class="six columns center"><label for="number-snacks-l">Snacks (L)</label></div>
<div class="four columns center"><input id="number-snacks-l" type="text" /></div>
<div class="six columns center"><label for="number-sp">SP</label></div>
<div class="four columns center"><input id="number-sp" type="text" /></div>
</div>
</div>
<!-- SPIRIT BOARD ITEMS -->
<h3 class="blue">Spirit board items</h3>
<div class="container">
<div class="row">
<div class="six columns center"><label for="number-items-shuffle-all">Shuffle all</label></div>
<div class="four columns center"><input id="number-items-shuffle-all" type="text" /></div>
<div class="six columns center"><label for="number-items-all-primaries">All primaries</label></div>
<div class="four columns center"><input id="number-items-all-primaries" type="text" /></div>
<div class="six columns center"><label for="number-items-all-supports">All supports</label></div>
<div class="four columns center"><input id="number-items-all-supports" type="text" /></div>
<div class="six columns center"><label for="number-items-filler">Filler</label></div>
<div class="four columns center"><input id="number-items-filler" type="text" /></div>
<div class="six columns center"><label for="number-items-rematch">Rematch</label></div>
<div class="four columns center"><input id="number-items-rematch" type="text" /></div>
<div class="six columns center"><label for="number-items-50-damage">50% damage</label></div>
<div class="four columns center"><input id="number-items-50-damage" type="text" /></div>
<div class="six columns center"><label for="number-items-slow-fs-charging">Slow FS charging</label></div>
<div class="four columns center"><input id="number-items-slow-fs-charging" type="text" /></div>
<div class="six columns center"><label for="number-items-weaken-minions">Weaken minions</label></div>
<div class="four columns center"><input id="number-items-weaken-minions" type="text" /></div>
<div class="six columns center"><label for="number-items-health-drain">Health drain</label></div>
<div class="four columns center"><input id="number-items-health-drain" type="text" /></div>
<div class="six columns center"><label for="number-items-disable-items">Dsiable items</label></div>
<div class="four columns center"><input id="number-items-disable-items" type="text" /></div>
<div class="six columns center"><label for="number-items-shield-spacer">Shield spacer</label></div>
<div class="four columns center"><input id="number-items-shield-spacer" type="text" /></div>
<div class="six columns center"><label for="number-items-sluggish-shield">Sluggish shield</label></div>
<div class="four columns center"><input id="number-items-sluggish-shield" type="text" /></div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
/*
Super Smash Bros. Ultimate for HTML5 Save Editor v2019
by Marc Robledo 2019
INFO: https://github.com/CapitanRetraso/Ultimate-Smasher
*/
SavegameEditor={
Name:'Super Smash Bros. Ultimate',
Filename:'system_data.bin',
Offsets:{
ITEMS_SHUFFLE_ALL:0x4831c0,
ITEMS_ALL_PRIMARIES:0x4831c1,
ITEMS_ALL_SUPPORTS:0x4831c2,
ITEMS_FILLER:0x4831c3,
ITEMS_REMATCH:0x4831c4,
ITEMS_50_DAMAGE:0x4831c6,
ITEMS_SLOW_FS_CHARGING:0x4831c7,
ITEMS_WEAKEN_MINIONS:0x4831c8,
ITEMS_HEALTH_DRAIN:0x4831c9,
ITEMS_DISABLE_ITEMS:0x4831ca,
ITEMS_SHIELD_SPACER:0x4831cb,
ITEMS_SLUGGISH_SHIELD:0x4831cc,
SNACK_S: 0x4831ce,
SNACK_M: 0x4831d0,
SNACK_L: 0x4831d2,
SPIRIT_POINTS: 0x4831e4,
TICKETS: 0x5506cc,
GOLD: 0x5506dc,
HAMMERS: 0x555e5c
},
/* check if savegame is valid */
checkValidSavegame:function(){
return (tempFile.fileSize===5982968)
},
/* preload function */
preload:function(){
setNumericRange('items-shuffle-all', 0, 99);
setNumericRange('items-all-primaries', 0, 99);
setNumericRange('items-all-supports', 0, 99);
setNumericRange('items-filler', 0, 99);
setNumericRange('items-rematch', 0, 99);
setNumericRange('items-50-damage', 0, 99);
setNumericRange('items-slow-fs-charging', 0, 99);
setNumericRange('items-weaken-minions', 0, 99);
setNumericRange('items-health-drain', 0, 99);
setNumericRange('items-disable-items', 0, 99);
setNumericRange('items-shield-spacer', 0, 99);
setNumericRange('items-sluggish-shield', 0, 99);
setNumericRange('snacks-s', 0, 999);
setNumericRange('snacks-m', 0, 999);
setNumericRange('snacks-l', 0, 999);
setNumericRange('sp', 0, 999999);
setNumericRange('tickets', 0, 99);
setNumericRange('gold', 0, 999999);
setNumericRange('hammers', 0, 9);
},
/* load function */
load:function(){
tempFile.fileName='system_data.bin';
tempFile.littleEndian=true;
setValue('items-shuffle-all', tempFile.readU8(this.Offsets.ITEMS_SHUFFLE_ALL));
setValue('items-all-primaries', tempFile.readU8(this.Offsets.ITEMS_ALL_PRIMARIES));
setValue('items-all-supports', tempFile.readU8(this.Offsets.ITEMS_ALL_SUPPORTS));
setValue('items-filler', tempFile.readU8(this.Offsets.ITEMS_FILLER));
setValue('items-rematch', tempFile.readU8(this.Offsets.ITEMS_REMATCH));
setValue('items-50-damage', tempFile.readU8(this.Offsets.ITEMS_50_DAMAGE));
setValue('items-slow-fs-charging', tempFile.readU8(this.Offsets.ITEMS_SLOW_FS_CHARGING));
setValue('items-weaken-minions', tempFile.readU8(this.Offsets.ITEMS_WEAKEN_MINIONS));
setValue('items-health-drain', tempFile.readU8(this.Offsets.ITEMS_HEALTH_DRAIN));
setValue('items-disable-items', tempFile.readU8(this.Offsets.ITEMS_DISABLE_ITEMS));
setValue('items-shield-spacer', tempFile.readU8(this.Offsets.ITEMS_SHIELD_SPACER));
setValue('items-sluggish-shield', tempFile.readU8(this.Offsets.ITEMS_SLUGGISH_SHIELD));
setValue('snacks-s', tempFile.readU16(this.Offsets.SNACK_S));
setValue('snacks-m', tempFile.readU16(this.Offsets.SNACK_M));
setValue('snacks-l', tempFile.readU16(this.Offsets.SNACK_L));
setValue('sp', tempFile.readU32(this.Offsets.SPIRIT_POINTS));
setValue('tickets', tempFile.readU8(this.Offsets.TICKETS));
setValue('gold', tempFile.readU32(this.Offsets.GOLD));
setValue('hammers', tempFile.readU8(this.Offsets.HAMMERS));
},
/* save function */
save:function(){
tempFile.writeU8(this.Offsets.HAMMERS, getValue('hammers'));
}
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -0,0 +1,82 @@
/*
Cache Service Worker template by mrc 2019
mostly based in:
https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/basic/service-worker.js
https://github.com/chriscoyier/Simple-Offline-Site/blob/master/js/service-worker.js
https://gist.github.com/kosamari/7c5d1e8449b2fbc97d372675f16b566e
Note for GitHub Pages:
there can be an unexpected behaviour (cache not updating) when site is accessed from
https://user.github.io/repo/ (without index.html) in some browsers (Firefox)
use absolute paths if hosted in GitHub Pages in order to avoid it
also invoke sw with an absolute path:
navigator.serviceWorker.register('/repo/_cache_service_worker.js', {scope: '/repo/'})
*/
/* MOD: fix old caches for mrc */
caches.keys().then(function(cacheNames){
for(var i=0; i<cacheNames.length; i++){
if(
cacheNames[i]==='runtime' ||
/^precache-\w+$/.test(cacheNames[i]) ||
/^precache-editor-([\w\+]+)-\w+$/.test(cacheNames[i]) ||
/^v?\d+\w?$/.test(cacheNames[i])
){
console.log('deleting old cache: '+cacheNames[i]);
caches.delete(cacheNames[i]);
}
}
});
var PRECACHE_ID='super-kirby-clash-editor';
var PRECACHE_VERSION='v1';
var PRECACHE_URLS=[
'/savegame-editors/super-kirby-clash/','/savegame-editors/super-kirby-clash/index.html',
'/savegame-editors/super-kirby-clash/favicon.png',
'/savegame-editors/super-kirby-clash/super-kirby-clash.js',
'/savegame-editors/savegame-editor.js',
'/savegame-editors/savegame-editor.css'
];
// install event (fired when sw is first installed): opens a new cache
self.addEventListener('install', evt => {
evt.waitUntil(
caches.open('precache-'+PRECACHE_ID+'-'+PRECACHE_VERSION)
.then(cache => cache.addAll(PRECACHE_URLS))
.then(self.skipWaiting())
);
});
// activate event (fired when sw is has been successfully installed): cleans up old outdated caches
self.addEventListener('activate', evt => {
evt.waitUntil(
caches.keys().then(cacheNames => {
return cacheNames.filter(cacheName => (cacheName.startsWith('precache-'+PRECACHE_ID+'-') && !cacheName.endsWith('-'+PRECACHE_VERSION)));
}).then(cachesToDelete => {
return Promise.all(cachesToDelete.map(cacheToDelete => {
console.log('delete '+cacheToDelete);
return caches.delete(cacheToDelete);
}));
}).then(() => self.clients.claim())
);
});
// fetch event (fired when requesting a resource): returns cached resource when possible
self.addEventListener('fetch', evt => {
if(evt.request.url.startsWith(self.location.origin)){ //skip cross-origin requests
evt.respondWith(
caches.match(evt.request).then(cachedResource => {
if (cachedResource) {
return cachedResource;
}else{
return fetch(evt.request);
}
})
);
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

View File

@@ -0,0 +1,111 @@
<!DOCTYPE html>
<html>
<head>
<title>Savegame Editor &ndash; Super Kirby Clash</title>
<meta http-equiv="content-Type" content="text/html; charset=UTF-8"/>
<meta name="description" content="A savegame editor for Super Kirby Clash. It can edit values for your apple and materials."/>
<meta name="keywords" content="html5, savegame, save, editor, hack, exploit, switch, super kirby clash, free, apples"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<link rel="shortcut icon" href="favicon.png"/>
<link type="text/css" rel="stylesheet" href="../savegame-editor.css" media="all"/>
<script type="text/javascript" src="../savegame-editor.js"></script>
<script type="text/javascript" src="./super-kirby-clash.js"></script>
<script type="text/javascript"><!--
/* service worker */
var FORCE_HTTPS=true;
window.addEventListener('load',function(){
if(location.protocol==='http:' && FORCE_HTTPS)
location.replace(window.location.href.replace('http:','https:'));
else if(location.protocol==='https:' && 'serviceWorker' in navigator)
navigator.serviceWorker.register('/savegame-editors/super-kirby-clash/_cache_service_worker.js', {scope: '/savegame-editors/super-kirby-clash/'});
}, false);
--></script>
</head>
<body>
<!-- HEADER -->
<div id="header">
<div id="header-top">
<div class="row wrapper">
<h1 class="six columns text-left"><img src="favicon.png" /> Savegame Editor <small>for Super Kirby Clash</small></h1>
<div class="six columns header-buttons text-right">
by <a href="/">Marc Robledo</a>
<i class="icon github"></i> <a href="https://github.com/marcrobledo/savegame-editors/tree/master/super-kirby-clash" target="_blank">See on GitHub</a>
<i class="icon heart"></i> <a href="https://www.paypal.me/marcrobledo/5" target="_blank" rel="nofollow">Donate</a>
</div>
</div>
<div class="hidden row wrapper" id="toolbar">
<div class="twelve columns text-center">
<button class="close" onclick="closeFile()"><i class="icon close"></i> Close file</button>
<button class="colored" onclick="saveChanges()"><i class="icon accept"></i> Save changes</button>
</div>
</div>
</div>
</div>
<!-- THE EDITOR -->
<div id="the-editor" class="wrapper hidden">
<!-- PROFILE -->
<!-- <h3 class="orange">Profile</h3>
<div class="container">
<div class="row">
<div class="nine columns"><label for="input-name">Message</label></div>
<div class="three columns"><input id="input-name" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="input-time">Played time <small>(in seconds)</small></label></div>
<div class="three columns"><input id="input-time" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="input-missions">Completed missions</label></div>
<div class="three columns"><input id="input-missions" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="input-encounters">Encounters</label></div>
<div class="three columns"><input id="input-encounters" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="input-multiplayerbattles">Multiplayer battles</label></div>
<div class="three columns"><input id="input-multiplayerbattles" type="text" class="fw" /></div>
</div>
</div> -->
<!-- APPLE GEMS -->
<h3 class="red">Apple gems</h3>
<div class="container">
<div class="row">
<div class="nine columns"><label for="number-applegems">Apple gems</label></div>
<div class="three columns"><input id="number-applegems" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="number-boughtapplegems">Bought apple gems <small>(affects tree)</small></label></div>
<div class="three columns"><input id="number-boughtapplegems" type="text" class="fw" /></div>
</div>
</div>
<!-- CRYSTAL SHARDS -->
<h3 class="green">Crystal shards</h3>
<div class="container">
<div class="row">
<div class="nine columns"><label for="number-shards-red">Fire shards</label></div>
<div class="three columns"><input id="number-shards-red" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="number-shards-blue">Water shards</label></div>
<div class="three columns"><input id="number-shards-blue" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="number-shards-yellow">Light shards</label></div>
<div class="three columns"><input id="number-shards-yellow" type="text" class="fw" /></div>
</div>
<div class="row">
<div class="nine columns"><label for="number-shards-rare">Rare shards</label></div>
<div class="three columns"><input id="number-shards-rare" type="text" class="fw" /></div>
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

View File

@@ -0,0 +1,82 @@
/*
Super Kirby Clash savegame editor v20190912
by Marc Robledo 2019
*/
SavegameEditor={
Name:'Super Kirby Clash',
Filename:'savedata.dat',
/* Constants */
Offsets:{
APPLE_GEMS:0x3ef0,
BOUGHT_APPLE_GEMS:0x3f00,
SHARDS_RED:0x3f20,
SHARDS_BLUE:0x3f24,
SHARDS_YELLOW:0x3f28,
SHARDS_RARE:0x3f2c
//PROFILE_NAME:0x1bb4,
//PROFILE_PLAYED_TIME:0x1b74,
//PROFILE_COMPLETED_MISSIONS:0x1b90,
//PROFILE_MULTIPLAYER_BATTLES:0x1b94,
//PROFILE_MULTIPLAYER_ENCOUNTERS:0x1b64
},
/* check if savegame is valid */
checkValidSavegame:function(){
return (tempFile.fileSize===54344)
},
/* preload function */
preload:function(){
setNumericRange('applegems', 0, 99999);
setNumericRange('boughtapplegems', 0, 5000);
setNumericRange('shards-red', 0, 9999);
setNumericRange('shards-blue', 0, 9999);
setNumericRange('shards-yellow', 0, 9999);
setNumericRange('shards-rare', 0, 9999);
//setNumericRange('encounters', 0, 65535);
//setNumericRange('multiplayerbattles', 0, 65535);
//setNumericRange('time', 0, 0xffffffff);
//setNumericRange('missions', 0, 0xffffffff);
},
/* load function */
load:function(){
tempFile.littleEndian=true;
tempFile.fileName='savedata.dat';
/* load data */
//setValue('name', tempFile.readU16String(this.Offsets.PROFILE_NAME, 16));
//setValue('time', tempFile.readU32(this.Offsets.PROFILE_PLAYED_TIME));
//setValue('missions', tempFile.readU32(this.Offsets.PROFILE_COMPLETED_MISSIONS));
//setValue('encounters', tempFile.readU32(this.Offsets.PROFILE_MULTIPLAYER_ENCOUNTERS));
//setValue('multiplayerbattles', tempFile.readU32(this.Offsets.PROFILE_MULTIPLAYER_BATTLES));
setValue('applegems', tempFile.readU32(this.Offsets.APPLE_GEMS));
setValue('boughtapplegems', tempFile.readU16(this.Offsets.BOUGHT_APPLE_GEMS));
setValue('shards-red', tempFile.readU16(this.Offsets.SHARDS_RED));
setValue('shards-blue', tempFile.readU16(this.Offsets.SHARDS_BLUE));
setValue('shards-yellow', tempFile.readU16(this.Offsets.SHARDS_YELLOW));
setValue('shards-rare', tempFile.readU16(this.Offsets.SHARDS_RARE));
},
/* save function */
save:function(){
//tempFile.writeU16String(this.Offsets.PROFILE_NAME, 16, getValue('name'));
//tempFile.writeU32(this.Offsets.PROFILE_PLAYED_TIME, getValue('time'));
//tempFile.writeU32(this.Offsets.PROFILE_COMPLETED_MISSIONS, getValue('missions'));
//tempFile.writeU32(this.Offsets.PROFILE_MULTIPLAYER_ENCOUNTERS, getValue('encounters'));
//tempFile.writeU32(this.Offsets.PROFILE_MULTIPLAYER_BATTLES, getValue('multiplayerbattles'));
tempFile.writeU32(this.Offsets.APPLE_GEMS, getValue('applegems'));
tempFile.writeU16(this.Offsets.BOUGHT_APPLE_GEMS, getValue('boughtapplegems'));
tempFile.writeU16(this.Offsets.SHARDS_RED, getValue('shards-red'));
tempFile.writeU16(this.Offsets.SHARDS_BLUE, getValue('shards-blue'));
tempFile.writeU16(this.Offsets.SHARDS_YELLOW, getValue('shards-yellow'));
tempFile.writeU16(this.Offsets.SHARDS_RARE, getValue('shards-rare'));
}
}

BIN
super-kirby-clash/thumb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB