diff --git a/dump_features.java b/dump_features.java
index ffc90e7..e25e78c 100644
--- a/dump_features.java
+++ b/dump_features.java
@@ -324,19 +324,31 @@
                     }
                     for (int i = 0; i < 2; i++) {
                         String half = "ABCDEFGH".substring(4 * i, 4 * (i + 1));
-                        if (!haveff[i])
+                        if (!haveff[i]) {
+                            tfeat.add(half + "FF.LATCH.USED.0");
+                            tfeat.add(half + "FF.FF.USED.0");
                             continue;
+                        }
                         String primtype = latch[i] ? "LATCH" : "FF";
-                        tfeat.add(half + "FF." + primtype);
+                        tfeat.add(half + "FF." + primtype + ".USED.1");
                         tfeat.add(half + "FF." + primtype + ".CLKINV." + (clkinv[i] ? "1" : "0"));
                         tfeat.add(half + "FF." + primtype + ".SRINV." + (srinv[i] ? "1" : "0"));
-                        if (ffsync[i])
-                            tfeat.add(half + "FF." + primtype + ".SYNC");
+                        if (ffsync[i]) {
+                            tfeat.add(half + "FF." + primtype + ".SYNC.SYNC");
+                        } else {
+                            tfeat.add(half + "FF." + primtype + ".SYNC.ASYNC");
+                        }
                         for (int j = 0; j < 2; j++) {
-                            if (srused[i * 2 + j])
-                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".SRUSED");
-                            if (ceused[i * 2 + j])
-                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".CEUSED");
+                            if (srused[i * 2 + j]) {
+                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".SRUSED.1");
+                            } else {
+                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".SRUSED.0");
+                            }
+                            if (ceused[i * 2 + j]) {
+                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".CEUSED.1");
+                            } else {
+                                tfeat.add(half + "FF" + (j == 1 ? "2" : "") + ".CEUSED.0");
+                            }
                         }
                     }
                     for (SitePIP sp : si.getUsedSitePIPs()) {
diff --git a/old_generate.sh b/old_generate.sh
index 910226a..48a9117 100755
--- a/old_generate.sh
+++ b/old_generate.sh
@@ -6,6 +6,6 @@
 export CLASSPATH=${RAPIDWRIGHT_PATH}/bin:$(echo ${RAPIDWRIGHT_PATH}/jars/*.jar | tr ' ' ':'):${PRJURAY_PROTOTYPE}
 
 cd $1/build
-find -name design.dcp | xargs -n5 java dump_features
-find -name design.dcp | xargs -n5 java dump_clocking
-find -name design.dcp | xargs -n5 java dump_bram
+find -name design.dcp | xargs -n25 java dump_features
+find -name design.dcp | xargs -n25 java dump_clocking
+find -name design.dcp | xargs -n25 java dump_bram
diff --git a/old_generate_1_dir.sh b/old_generate_1_dir.sh
new file mode 100755
index 0000000..03c88f4
--- /dev/null
+++ b/old_generate_1_dir.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+export PATH=/usr/lib/jvm/java-13-openjdk-amd64/bin:$PATH
+export RAPIDWRIGHT_PATH=/usr/local/google/home/keithrothman/Downloads/RapidWright/RapidWright
+export PRJURAY_PROTOTYPE=~/cat_x/prjuray_prototype/prjuray-norelease
+export CLASSPATH=${RAPIDWRIGHT_PATH}/bin:$(echo ${RAPIDWRIGHT_PATH}/jars/*.jar | tr ' ' ':'):${PRJURAY_PROTOTYPE}
+
+cd $1/build
+java dump_features $2
+java dump_clocking $2
+java dump_bram $2
