From 3696c99b53ce3b2d9fed1af22524bd0ae2788271 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sat, 16 Jul 2022 17:41:47 -0500 Subject: [PATCH 1/7] EMIPGenerator Unity 2019 Support --- scripts/EMIPGenerator.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/EMIPGenerator.py b/scripts/EMIPGenerator.py index c6c9798..6ebad72 100644 --- a/scripts/EMIPGenerator.py +++ b/scripts/EMIPGenerator.py @@ -32,12 +32,17 @@ class AssetEdit: output = len(self.name).to_bytes(4, byteorder="little") output += self.name.encode("utf-8") output += b"\0" * ((4 - len(self.name)) % 4) + if unityVersion[0] == 2019: + output += (4).to_bytes(4, byteorder="little") # m_ForcedFallbackFormat + output += (0).to_bytes(4, byteorder="little") # m_DownscaleFallback output += image.width.to_bytes(4, byteorder="little") output += image.height.to_bytes(4, byteorder="little") output += len(imageData).to_bytes(4, byteorder="little") output += (4).to_bytes(4, byteorder="little") # m_TextureFormat output += (1).to_bytes(4, byteorder="little") # m_MipCount output += b"\0\x01\0\0" # Flags + if unityVersion[0] == 2019: + output += (0).to_bytes(4, byteorder="little") # m_StreamingMipmapsPriority output += (1).to_bytes(4, byteorder="little") # m_ImageCount output += (2).to_bytes(4, byteorder="little") # m_TextureDimension output += (2).to_bytes(4, byteorder="little") # m_FilterMode @@ -45,7 +50,7 @@ class AssetEdit: output += (0).to_bytes(4, byteorder="little") # m_MipBias if unityVersion[0] == 5: output += (1).to_bytes(4, byteorder="little") # m_WrapMode - elif unityVersion[0] == 2017: + elif unityVersion[0] == 2017 or unityVersion[0] == 2019: output += (1).to_bytes(4, byteorder="little") * 3 # m_wrap{U,V,W} else: sys.stderr.write("Warning: Unrecognized Unity version: " + str(unityVersion[0])) From de71806233af708740157d7a4bbc6929319152e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Sun, 17 Jul 2022 08:11:58 +0200 Subject: [PATCH 2/7] Re-enable text edits --- src/main.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 18b668e..a035460 100644 --- a/src/main.rs +++ b/src/main.rs @@ -66,18 +66,16 @@ fn main() { assert_eq!(unity, &version.trim()); // 1. texts - if arc_number.clone() < 9 { - let status = Command::new("python") - .env("PYTHONIOENCODING", "utf-8") - .arg("scripts/UnityTextModifier.py") - .arg(&assets) - .arg("assets/text-edits.json") - .arg(&directory_assets) - .status() - .expect("failed to execute UnityTextModifier.py"); + let status = Command::new("python") + .env("PYTHONIOENCODING", "utf-8") + .arg("scripts/UnityTextModifier.py") + .arg(&assets) + .arg("assets/text-edits.json") + .arg(&directory_assets) + .status() + .expect("failed to execute UnityTextModifier.py"); - assert!(status.success()); - } + assert!(status.success()); // 2. images copy_images("assets/images/shared", &directory_assets); From c2e5a30a22a83e9e9c9eb97b65416c73fcefc4d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Sun, 17 Jul 2022 08:16:30 +0200 Subject: [PATCH 3/7] Compile unix rei assets --- compileall.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compileall.sh b/compileall.sh index b6ec2fe..3ffaa58 100644 --- a/compileall.sh +++ b/compileall.sh @@ -22,4 +22,5 @@ cargo run matsuribayashi 5.6.7f1 win && \ cargo run matsuribayashi 5.6.7f1 unix && \ cargo run matsuribayashi 2017.2.5 unix && \ cargo run matsuribayashi 2017.2.5 win && \ -cargo run rei 2019.4.3 win +cargo run rei 2019.4.3 win && \ +cargo run rei 2019.4.3 unix From aee3cd5880c8afa0fe77debe509dbfe74e448bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Mon, 18 Jul 2022 17:15:50 +0200 Subject: [PATCH 4/7] Fix rei menu --- src/main.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index a035460..3d5d28b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,7 +31,6 @@ fn main() { } let arc_number = chapters.get(&chapter[..]).unwrap().clone(); - let arc_type = if arc_number <= 4 { "question_arcs" } else { "answer_arcs" }; let assets = format!("assets/vanilla/{}/{}-{}/sharedassets0.assets", &chapter, &system, &unity); let directory_assets = "output/assets"; let directory_data = format!("output/HigurashiEp{:02}_Data", arc_number); @@ -79,7 +78,11 @@ fn main() { // 2. images copy_images("assets/images/shared", &directory_assets); - copy_images(format!("assets/images/{}", &arc_type).as_ref(), &directory_assets); + if arc_number <= 4 { + copy_images("assets/images/question_arcs", &directory_assets); + } else if arc_number <= 8 { + copy_images("assets/images/answer_arcs", &directory_assets); + }; copy_images(format!("assets/images/specific/{}", &chapter).as_ref(), &directory_assets); let version_specific_path = format!("assets/images/version-specific/{}-{}", &chapter, &unity); copy_images(version_specific_path.as_ref(), &directory_assets); From f898644b165b9ae08ad8a57340cc25f16869d21c Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 27 Jul 2022 00:43:28 -0500 Subject: [PATCH 5/7] Unity 2019 Sprites --- .../files-2019.2/SGCaret000000_0_Sprite.dat | Bin 0 -> 512 bytes .../files-2019.2/SGCaret000000_1_Sprite.dat | Bin 0 -> 520 bytes .../files-2019.2/SGCaret000000_2_Sprite.dat | Bin 0 -> 528 bytes .../files-2019.2/SGCaret000100_0_Sprite.dat | Bin 0 -> 476 bytes .../files-2019.2/SGCaret000100_1_Sprite.dat | Bin 0 -> 476 bytes .../files-2019.2/SGCaret000100_2_Sprite.dat | Bin 0 -> 476 bytes scripts/BinaryTemplates/Unity2019.2Sprite.tcl | 147 ++++++++++++++++++ 7 files changed, 147 insertions(+) create mode 100644 assets/files-2019.2/SGCaret000000_0_Sprite.dat create mode 100644 assets/files-2019.2/SGCaret000000_1_Sprite.dat create mode 100644 assets/files-2019.2/SGCaret000000_2_Sprite.dat create mode 100644 assets/files-2019.2/SGCaret000100_0_Sprite.dat create mode 100644 assets/files-2019.2/SGCaret000100_1_Sprite.dat create mode 100644 assets/files-2019.2/SGCaret000100_2_Sprite.dat create mode 100644 scripts/BinaryTemplates/Unity2019.2Sprite.tcl diff --git a/assets/files-2019.2/SGCaret000000_0_Sprite.dat b/assets/files-2019.2/SGCaret000000_0_Sprite.dat new file mode 100644 index 0000000000000000000000000000000000000000..fdc9533885059997092406d36e7fa954cd468c5e GIT binary patch literal 512 zcmd;QU|-2q}dLiB;f9U-1y02BwC<-h<2U_MZcfdK$c)hzY^ literal 0 HcmV?d00001 diff --git a/assets/files-2019.2/SGCaret000000_1_Sprite.dat b/assets/files-2019.2/SGCaret000000_1_Sprite.dat new file mode 100644 index 0000000000000000000000000000000000000000..d54ecd27560123322d357650bf73a96e4535e65a GIT binary patch literal 520 zcmd;QU|c1;yH>6!xNO8`} z+r>6piP;qVI2>ePaBzgE0nu!+sEU0BddlQUcCEK9F_* zs%x-k0*bSP<-l$LiZ3_-vD*OT7DomKFb!ls0Eq)>1)x|1R87NvNFX=>`3w#q^MEuE JfcXbNEC5G$Fb)6! literal 0 HcmV?d00001 diff --git a/assets/files-2019.2/SGCaret000000_2_Sprite.dat b/assets/files-2019.2/SGCaret000000_2_Sprite.dat new file mode 100644 index 0000000000000000000000000000000000000000..f33cbcb28256b3f36dee1824b93b024921c96299 GIT binary patch literal 528 zcmd;QU|QgENo-f&)$v4B=st4fa4WFlK~G7GM2$#q5T(>k28( zS$VtIW~(r}!lW>?t73>i1YjE2(BxUr_{dxyFo%(W2?!Y(m>EE7`5+3Ik<|gsWE|&lR literal 0 HcmV?d00001 diff --git a/assets/files-2019.2/SGCaret000100_0_Sprite.dat b/assets/files-2019.2/SGCaret000100_0_Sprite.dat new file mode 100644 index 0000000000000000000000000000000000000000..0a34121f33e1b01a58419ee335e34b09f85800f1 GIT binary patch literal 476 zcmd;QU|ti`-s|vF#ObSE0A%+M<0H%QrO`ZjfkIdx(a~K(zfRK@anE|Ah52An>Ssl=9 zCS*P?b^uty;UF+993g5zG@K0*2VxKai$mEE5&R^sux;4Sz|gSY0j#+JNEHC%07N?g j 0 ? $alignment : 0] + return [expr $size - $extra + $newExtra] +} + +proc alignPos {alignment} { + goto [align [pos] $alignment] +} + +proc pptr {name} { + section $name { + int32 "m_FileID" + int64 "m_PathID" + } +} + +proc rectf {name} { + section $name { + float "x" + float "y" + float "width" + float "height" + } +} + +proc vector2f {name} { + section $name { + float "x" + float "y" + } +} + +proc vector3f {name} { + section $name { + float "x" + float "y" + float "z" + } +} + +proc vector4f {name} { + section $name { + float "x" + float "y" + float "z" + float "w" + } +} + +set nameLen [uint32 "Name Length"] +str [align $nameLen 4] "utf8" "Name" +rectf "m_Rect" +vector2f "m_Offset" +vector4f "m_Border" +float "m_PixelsToUnits" +vector2f "m_Pivot" +uint32 "m_Extrude" +uint8 "m_IsPolygon" +alignPos 4 +section "m_RenderDataKey" { + uuid "first" + int64 "second" +} +uint32 "m_AtlasTags.size" +pptr "m_SpriteAtlas" +section "m_RD" { + pptr "texture" + pptr "alphaTexture" + section "secondaryTextures" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these? + } + } + section "m_SubMeshes" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "Submesh" { + uint32 "firstByte" + uint32 "indexCount" + int32 "topology" + uint32 "baseVertex" + uint32 "firstVertex" + uint32 "vertexCount" + section "localAABB" { + vector3f "m_Center" + vector3f "m_Extent" + } + } + } + } + section "m_IndexBuffer" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + uint8 "data" + } + } + section "m_VertexData" { + uint32 "m_VertexCount" + section "m_Channels" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "ChannelInfo" { + uint8 "stream" + uint8 "offset" + uint8 "format" + uint8 "dimension" + } + } + } + set dlen [uint32 "dataSize"] + bytes $dlen "data" + } + section "m_Bindpose" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these + } + } + rectf "textureRect" + vector2f "textureRectOffset" + vector2f "atlasRectOffset" + uint32 "settingsRaw" + vector4f "uvTransform" + float "downscaleMultiplier" +} + +section "m_PhysicsShape" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "Entry" { + set blen [int32 "size"] + for {set j 0} {$j < $blen} {incr j} { + vector2f "data" + } + } + } +} + +section "m_Bones" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these + } +} \ No newline at end of file From 782682dd08bbde74932c9ba6ed4927b791c2720a Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 27 Jul 2022 00:58:44 -0500 Subject: [PATCH 6/7] Name Unity 2019 folder correctly --- .../SGCaret000000_0_Sprite.dat | Bin .../SGCaret000000_1_Sprite.dat | Bin .../SGCaret000000_2_Sprite.dat | Bin .../SGCaret000100_0_Sprite.dat | Bin .../SGCaret000100_1_Sprite.dat | Bin .../SGCaret000100_2_Sprite.dat | Bin 6 files changed, 0 insertions(+), 0 deletions(-) rename assets/{files-2019.2 => files-2019.4}/SGCaret000000_0_Sprite.dat (100%) rename assets/{files-2019.2 => files-2019.4}/SGCaret000000_1_Sprite.dat (100%) rename assets/{files-2019.2 => files-2019.4}/SGCaret000000_2_Sprite.dat (100%) rename assets/{files-2019.2 => files-2019.4}/SGCaret000100_0_Sprite.dat (100%) rename assets/{files-2019.2 => files-2019.4}/SGCaret000100_1_Sprite.dat (100%) rename assets/{files-2019.2 => files-2019.4}/SGCaret000100_2_Sprite.dat (100%) diff --git a/assets/files-2019.2/SGCaret000000_0_Sprite.dat b/assets/files-2019.4/SGCaret000000_0_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000000_0_Sprite.dat rename to assets/files-2019.4/SGCaret000000_0_Sprite.dat diff --git a/assets/files-2019.2/SGCaret000000_1_Sprite.dat b/assets/files-2019.4/SGCaret000000_1_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000000_1_Sprite.dat rename to assets/files-2019.4/SGCaret000000_1_Sprite.dat diff --git a/assets/files-2019.2/SGCaret000000_2_Sprite.dat b/assets/files-2019.4/SGCaret000000_2_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000000_2_Sprite.dat rename to assets/files-2019.4/SGCaret000000_2_Sprite.dat diff --git a/assets/files-2019.2/SGCaret000100_0_Sprite.dat b/assets/files-2019.4/SGCaret000100_0_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000100_0_Sprite.dat rename to assets/files-2019.4/SGCaret000100_0_Sprite.dat diff --git a/assets/files-2019.2/SGCaret000100_1_Sprite.dat b/assets/files-2019.4/SGCaret000100_1_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000100_1_Sprite.dat rename to assets/files-2019.4/SGCaret000100_1_Sprite.dat diff --git a/assets/files-2019.2/SGCaret000100_2_Sprite.dat b/assets/files-2019.4/SGCaret000100_2_Sprite.dat similarity index 100% rename from assets/files-2019.2/SGCaret000100_2_Sprite.dat rename to assets/files-2019.4/SGCaret000100_2_Sprite.dat From 1fe34a3b5a2b6d1d945794359d64c76e58bf4bca Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 27 Jul 2022 00:59:42 -0500 Subject: [PATCH 7/7] Name Unity 2019 template correctly --- .../{Unity2019.2Sprite.tcl => Unity2019.4Sprite.tcl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/BinaryTemplates/{Unity2019.2Sprite.tcl => Unity2019.4Sprite.tcl} (100%) diff --git a/scripts/BinaryTemplates/Unity2019.2Sprite.tcl b/scripts/BinaryTemplates/Unity2019.4Sprite.tcl similarity index 100% rename from scripts/BinaryTemplates/Unity2019.2Sprite.tcl rename to scripts/BinaryTemplates/Unity2019.4Sprite.tcl