From 817f7a2b1c9484dca7c578c903a2713caba726d3 Mon Sep 17 00:00:00 2001 From: root <182859762@qq.com> Date: Wed, 28 Dec 2022 15:47:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=80=E9=95=BFcheat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/gba.acl | Bin 5019360 -> 5019360 bytes tools/cheat-builder/build.js | 12 +++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/resources/gba.acl b/resources/gba.acl index de4d78251285872c6cf24697e00ddf936d7c8740..6a376b42f3338b5a300bedf97820013a8fd046d2 100644 GIT binary patch delta 248 zcmWN_Syn*-0D$2`uD@u~K#EivG#H9fG`QUc#il&`Td<2>I;X|-c9+7#_wvO*zsY!x zFd8R1L1uy^Bq_|~|Wlu^{mVK$n zfgH+_ROMJsw{j diff --git a/tools/cheat-builder/build.js b/tools/cheat-builder/build.js index 55e2816..0b918ff 100644 --- a/tools/cheat-builder/build.js +++ b/tools/cheat-builder/build.js @@ -115,15 +115,16 @@ const format = roms => { } const getnametable = list => list.reduce( (r,{serial, cheat}, idx, arr) => { const val = serial.slice(0, -1); - if( val != r[3] ){ + if( val != r[4] ){ r[0] = concat( r[0], enc.encode(val) ) r[1] = concat( r[1], [ r[2] ] ); - r[3] = val; + r[4] = val; } + if( cheat.length > r[3] ) r[3] = cheat.length; r[2] = r[2] + cheat.length; if( idx+1 == arr.length ) r[1] = concat( r[1], [ r[2] ] ); return r; - }, [new Uint8Array(), new Uint16Array(), 0, ""] ); + }, [new Uint8Array(), new Uint16Array(), 0, 0, ""] ); const expandcheat = (list, base) => list.reduce( (r, {cheat, serial}) => { const val = serial.charCodeAt(3); @@ -136,7 +137,7 @@ const format = roms => { return [c, e, r[2]]; }, [new Uint32Array(), new Uint8Array(), align(base, 32)] ); - const [sers, offs, chtc] = getnametable( valid ); + const [sers, offs, chtc, maxl] = getnametable( valid ); const [cheats, expanded] = expandcheat( valid, 8+sers.length+offs.length*2+chtc*8 ); console.info( `name: ${sers.length} cheats: ${chtc}` ); @@ -155,7 +156,8 @@ const format = roms => { writter.setUint8(3, 1); const slen = sers.length / 3; - writter.setUint32(4, slen, true); + writter.setUint16(4, slen, true); + writter.setUint16(6, maxl, true); let ret = new Uint8Array( output ); ret.set( sers, serialbase );