瀏覽代碼

Massagezeugs und noch mehr codegezilse

LH 3 月之前
父節點
當前提交
6e938a7f3b

+ 41 - 0
QuickStuff/src/main/java/QuickVerifyCrap/GEXWPatternMasseuse.java

@@ -0,0 +1,41 @@
+package QuickVerifyCrap;
+
+import java.io.RandomAccessFile;
+
+public class GEXWPatternMasseuse
+{
+    public static void main(String[] args) throws Exception{
+        RandomAccessFile base = new RandomAccessFile("/home/lh/code/LOA-23/HAXXZ0r_TESTS/GEXWING.BIN","r");
+
+        RandomAccessFile frq = new RandomAccessFile("/home/lh/code/LOA-23/HAXXZ0r_TESTS/GEXWING.BIN.freq.unified","rw");
+
+        for(int f=0;f<40;f++)
+        {
+
+            base.seek(0);
+            byte[] freqmap = new byte[256];
+
+            int fcnt = Integer.reverseBytes(base.readInt());
+
+            base.seek(0x200);
+            for(int i=0;i<fcnt;i++)
+            {
+                int len = Integer.reverseBytes(base.readInt())-2;
+                base.readShort(); //ignored, constant
+                byte[] content = new byte[len];
+                base.read(content);
+                for(int j=f;j<len;j+=40)
+                {
+                    int freqidx = ((int)content[j])&0xFF;
+                    if(freqmap[freqidx]!=-1)
+                    {
+                        freqmap[freqidx] = (byte) (freqmap[freqidx]+1);
+                    }
+                }
+            }
+
+            frq.write(freqmap);
+        }
+
+    }
+}

+ 18 - 9
QuickStuff/src/main/java/QuickVerifyCrap/GEXWZilsnerator.java

@@ -9,8 +9,8 @@ public class GEXWZilsnerator {
         //r.setLength(0);
         r.seek(0x200);
 
-        int i_max=38;
-        int j_max=16;
+        int i_max=256;
+        int j_max=2;
 
         r.writeInt(Integer.reverseBytes(i_max*j_max*40+2));
 
@@ -27,21 +27,30 @@ public class GEXWZilsnerator {
             for(int i=0;i<i_max;i++)
             {
 
-                int i_internal = 0xF3;
+                int i_internal = 0xFC;
+                int j_internal = j>0?0xC:0x4;
                 //i_internal = (i>>1)+(i%2==0?128:0);
 
                 frame = new byte[40];
 
                 //frame[1: scaling<<4
                 //frame[1: type <<0
-                frame[1]=(byte)((j)<<0|8<<4);
+                frame[1]=(byte)((j_internal<<0)|8<<4);
                 frame[0]=(byte)i_internal;
-                for(int k=2;k<40;k++)
+                /**/
+                frame[2]=-1;
+
+                //frame[37]=-1;
+
+                frame[38]=(byte)i;
+                frame[39]=-1;
+                for(int k=2;k<38;k++)
                 {
-                    if((k-2)==i)
-                    {
-                        frame[k]=(byte)0xF3;
-                    }
+                    //frame[k]=(byte)(((k%16)<<4)|(k%16));
+                    //if((k-2)==i)
+                    //{
+                    //    frame[k]=(byte)0xF3;
+                    //}
                 }
                 r.write(frame);
             }