Reverse engineered SPA format

A gift from me to the Mario Kart DS community (i think these are used in
Pokemon too). Might work on ingame particle emitters now that I'm the
only person ever to have tried reading these stupid files.
This commit is contained in:
RHY3756547 committed 2018-03-22 01:30:10 +00:00
1 parent ea1053578e
commit 245a3f314c
3 files changed
+481 -1

No files matched your search

+1 -1
View File
@@ -1 +1 @@
<head> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-title" content="mkjs"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, user-scalable=no"> <!-- Client Code Includes --> <script src="code/engine/largeSphereCollider.js"></script> <script src="code/engine/collisionTypes.js"></script> <script src="code/engine/mkdsConst.js"></script> <script src="code/engine/ingameRes.js"></script> <script src="code/engine/itemController.js"></script> <script src="code/IndexedDBShim.min.js"></script> <script src="code/engine/storage/fileStore.js"></script> <script src="code/engine/controls/controlDefault.js"></script> <script src="code/engine/controls/controlRaceCPU.js"></script> <script src="code/engine/controls/controlNetwork.js"></script> <script src="code/engine/cameras/cameraIngame.js"></script> <script src="code/engine/cameras/cameraSpectator.js"></script> <script src="code/engine/cameras/cameraIntro.js"></script> <script src="code/engine/scenes/sceneDrawer.js"></script> <script src="code/engine/scenes/courseScene.js"></script> <script src="code/engine/scenes/clientScene.js"></script> <script src="code/engine/scenes/singleScene.js"></script> <script src="code/ui/race3DUI.js"></script> <script src="code/formats/net/netKart.js"></script> <script src="code/entities/objDatabase.js"></script> <script src="code/entities/trafficCar.js"></script> <script src="code/entities/water.js"></script> <script src="code/entities/itembox.js"></script> <script src="code/entities/decorations.js"></script> <script src="code/entities/rotatingGear.js"></script> <script src="code/entities/bowserPlatforms.js"></script> <script src="code/entities/soundMaker.js"></script> <script src="code/particles/itemboxShard.js"></script> <script src="code/entities/shell.js"></script> <script src="code/entities/kart.js"></script> <script src="code/formats/kcl.js"></script> <script src="code/formats/ndsFS.js"></script> <script src="code/formats/nitro.js"></script> <script src="code/formats/nsbtx.js"></script> <script src="code/formats/nsbmd.js"></script> <script src="code/formats/nsbta.js"></script> <script src="code/formats/nsbca.js"></script> <script src="code/formats/nsbtp.js"></script> <script src="code/formats/nftr.js"></script> <script src="code/formats/narc.js"></script> <script src="code/formats/lz77.js"></script> <script src="code/formats/nkm.js"></script> <script src="code/formats/kartphysicalparam.js"></script> <script src="code/formats/kartoffsetdata.js"></script> <script src="code/render/nitroRender.js"></script> <script src="code/render/nitroShaders.js"></script> <script src="code/render/shadowRender.js"></script> <script src="code/render/nitroAnimator.js"></script> <script src="code/glmatrix/gl-matrix.js"></script> <script src="code/formats/sdat.js"></script> <script src="code/formats/swav.js"></script> <script src="code/formats/swar.js"></script> <script src="code/formats/sbnk.js"></script> <script src="code/formats/sseq.js"></script> <script src="code/formats/ssar.js"></script> <script src="code/audio/sseqPlayer.js"></script> <script src="code/audio/nitroAudio.js"></script> <!-- Inline code (because that's always a good idea) --> <script> var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; window.requestAnimationFrame = requestAnimationFrame; var files = {}; var fileQuota; var filesLoaded = 0; var mobile = (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(Line truncated
<head> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-title" content="mkjs"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, user-scalable=no"> <!-- Client Code Includes --> <script src="code/engine/largeSphereCollider.js"></script> <script src="code/engine/collisionTypes.js"></script> <script src="code/engine/mkdsConst.js"></script> <script src="code/engine/ingameRes.js"></script> <script src="code/engine/itemController.js"></script> <script src="code/IndexedDBShim.min.js"></script> <script src="code/engine/storage/fileStore.js"></script> <script src="code/engine/controls/controlDefault.js"></script> <script src="code/engine/controls/controlRaceCPU.js"></script> <script src="code/engine/controls/controlNetwork.js"></script> <script src="code/engine/cameras/cameraIngame.js"></script> <script src="code/engine/cameras/cameraSpectator.js"></script> <script src="code/engine/cameras/cameraIntro.js"></script> <script src="code/engine/scenes/sceneDrawer.js"></script> <script src="code/engine/scenes/courseScene.js"></script> <script src="code/engine/scenes/clientScene.js"></script> <script src="code/engine/scenes/singleScene.js"></script> <script src="code/ui/race3DUI.js"></script> <script src="code/formats/net/netKart.js"></script> <script src="code/entities/objDatabase.js"></script> <script src="code/entities/trafficCar.js"></script> <script src="code/entities/water.js"></script> <script src="code/entities/itembox.js"></script> <script src="code/entities/decorations.js"></script> <script src="code/entities/rotatingGear.js"></script> <script src="code/entities/bowserPlatforms.js"></script> <script src="code/entities/soundMaker.js"></script> <script src="code/particles/itemboxShard.js"></script> <script src="code/entities/shell.js"></script> <script src="code/entities/kart.js"></script> <script src="code/formats/kcl.js"></script> <script src="code/formats/ndsFS.js"></script> <script src="code/formats/nitro.js"></script> <script src="code/formats/nsbtx.js"></script> <script src="code/formats/nsbmd.js"></script> <script src="code/formats/nsbta.js"></script> <script src="code/formats/nsbca.js"></script> <script src="code/formats/nsbtp.js"></script> <script src="code/formats/nftr.js"></script> <script src="code/formats/narc.js"></script> <script src="code/formats/lz77.js"></script> <script src="code/formats/spa.js"></script> <script src="code/formats/nkm.js"></script> <script src="code/formats/kartphysicalparam.js"></script> <script src="code/formats/kartoffsetdata.js"></script> <script src="code/render/nitroRender.js"></script> <script src="code/render/nitroShaders.js"></script> <script src="code/render/shadowRender.js"></script> <script src="code/render/nitroAnimator.js"></script> <script src="code/glmatrix/gl-matrix.js"></script> <script src="code/formats/sdat.js"></script> <script src="code/formats/swav.js"></script> <script src="code/formats/swar.js"></script> <script src="code/formats/sbnk.js"></script> <script src="code/formats/sseq.js"></script> <script src="code/formats/ssar.js"></script> <script src="code/audio/sseqPlayer.js"></script> <script src="code/audio/nitroAudio.js"></script> <!-- Inline code (because that's always a good idea) --> <script> var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; window.requestAnimationFrame = requestAnimationFrame; var files = {}; var fileQuota; var filesLoaded = 0; var mobile = (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mLine truncated