diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2023-08-24 23:13:48 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2023-08-24 23:13:48 -0600 |
| commit | 64eddebf4d45b4775f6e9f248cbfaa1cb3ab55f2 (patch) | |
| tree | c0fc5b1aedb1021544bf50454d6b44ef20f2bffb /tools/text_offsets.js | |
| parent | 15a0cf5498b60fa1442d049dbe5bb856022b5641 (diff) | |
Added animation factory and some random tools
Diffstat (limited to 'tools/text_offsets.js')
| -rw-r--r-- | tools/text_offsets.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/text_offsets.js b/tools/text_offsets.js new file mode 100644 index 0000000..699078c --- /dev/null +++ b/tools/text_offsets.js @@ -0,0 +1,47 @@ +const fs = require('fs'); +const path = require('path'); + +let _parent = 'assets/reordered'; +let bytes = Buffer.alloc(0); + +function toHex(value) { + let hex = value.toString(16); + if ((hex.length % 2) > 0) { + hex = "0" + hex; + } + return `0x${hex.toUpperCase()}`; +} + +function toBEU16(num){ + let d = new Uint16Array(1); + d[0] = num; + return Buffer.from(d.buffer).swap16() +} + +async function parseAnim(file){ + let fimport = `./${file.replace('.js', '')}` + let data = require(fimport) + for(let id of fimport.split('_').slice(1)){ + let anim = data['anim_'+id]; + let hOffset = bytes.indexOf(Buffer.concat(anim.slice(0, 6).map(toBEU16))); + + let bswValues = Buffer.concat(anim[6].map(toBEU16)); + let vsOffset = bytes.indexOf(bswValues); + let bswIndices = Buffer.concat(anim[7].map(toBEU16)); + let idxOffset = bytes.indexOf(bswIndices); + console.log(`"assets/anims/anim_${id}.anim": ${JSON.stringify({ + header: [hOffset, 0x18], + values: [vsOffset, bswValues.length], + indices: [idxOffset, bswIndices.length], + })},`); + } +} + +async function main(){ + bytes = fs.readFileSync('./baserom.us.z64'); + let tst = [0x46,0x00,0x52,0x00,0x54,0x00,0x56,0x00,0x58,0x00,0x5a,0x00,0x5c,0x00,0x5e,0x00,0x60,0x00,0x62,0x00,0x64,0x00,0x67,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6f,0x00,0x71,0x00,0x73,0x00,0x75,0x00,0x77,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7f,0x00,0x81,0x00,0x83,0x00,0x85,0x00,0x87,0x00,0x89,0x00,0x8b,0x00,0x8d,0x00,0x8f,0x00,0x91,0x00,0x93,0x00,0x95,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x01,0x22,0x01,0x11,0x01,0x22,0x01,0x0e,0x01,0x13,0x01,0x0f,0x01,0x12,0x01,0x0b,0x01,0x0d,0x02,0x21,0x10,0x01,0x14,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x12,0x01,0x19,0x01,0x1f,0x01,0x21,0x01,0x1a,0x01,0x0e,0x01,0x1b,0x01,0x1a,0x01,0x1c,0x01,0x1d,0x01,0x25,0x01,0x14,0x01,0x20,0x01,0x1e,0x01,0x1b,0x01,0x1a,0x01,0x23,0x01,0x24,0x01,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]; + let text = Buffer.from(tst) + console.log(bytes.indexOf(text)) +} + +main();
\ No newline at end of file |
