diff --git a/checksums.sha256 b/checksums.sha256 index 567f18d45..965426034 100644 --- a/checksums.sha256 +++ b/checksums.sha256 @@ -3242,6 +3242,82 @@ a8e9afe204dc62d55a0cbd012b8946de3a6d6dd4771eea40d78058d73e42a306 build/map/dw20 542e5b247b60e629c47da75cd2e5033b1dfcca6a6f2db7232df8eede0773bd70 build/map/dw2003/z_stage/S895PACK.bin 5da33ac4211c21cc969161d82aea17f43958da38b259cab865b850d3999f0744 build/misc/dummy 7d67e519eb55c4aa65587a5df209840753a61eaefd3792905cabb3c04d80a49d build/pack/dw2003/card/carddata.bin +5d216b7af7ca3a1ae1c79f129d4d87be44f4103f03fe05e3b9df2e9729b1e00e build/pack/dw2003/country/eng/esdmg200.bin +26c494e3a6329b5cc7e9934f2e486f01d492dc68d54dc0bebefb61490bf6483a build/pack/dw2003/country/eng/esdmg260.bin +cfce7e8c4e3bc623aaa956da39bcef4f91b4e4f9478a1b44b228eb08865df35d build/pack/dw2003/country/eng/esdmg270.bin +a2d9bd333d52216defa7bfd569613a341299fef4604cae447dc711cfda76f2a4 build/pack/dw2003/country/eng/esdmg300.bin +2b111d046de5d9ac8011bf41327507beb65ca3207baa573b4812e0e062b2493d build/pack/dw2003/country/eng/esdmg305.bin +5443871686256508f4ce87f1a2999837dc702d8f2f15dfe1a158919e72dc1671 build/pack/dw2003/country/eng/esdmg400.bin +772e7c854d1b0c61844e8824f1cd92483c5e2424cb6840100946901134061913 build/pack/dw2003/country/eng/esdmg500.bin +1b281ea030b39d7eb43b16ce50a3f0b108b2bc7a272661a849db435953f9ebf3 build/pack/dw2003/country/eng/esdmg600.bin +c625e04fb669ffc20954da74d7a8c2d35d3cf8bd124faa7752ccf40f2c6ff4e6 build/pack/dw2003/country/eng/esdmg700.bin +08336582b5b0222b193d814bb609e076147a0810e61cb666044d8f37d150af59 build/pack/dw2003/country/eng/esdmg800.bin +bcf10ebf6f82394e228f7746ffcc0b9144408e429a3048c08cfb09d34c09e333 build/pack/dw2003/country/eng/esdmg900.bin +b7aa35c878b0d3a28425fff4b7217f7e52af3566a6afb95e50eece982223c4db build/pack/dw2003/country/fra/fsdmg200.bin +372dd264f9697fb30d0fa23f3667d27fdd570ca07f5bd187d28a5fe1c48289e2 build/pack/dw2003/country/fra/fsdmg260.bin +8a8ce9e89c7f55e654f0e85950f34d0d6588c21298f586b7e876a701db07438c build/pack/dw2003/country/fra/fsdmg270.bin +ecb726b1f3fd5aa0fb6c772becd05b34c693eedb887fa65d136bc95534b654db build/pack/dw2003/country/fra/fsdmg300.bin +0fb51345285a0c4028f86b8c4ef83a1bd3b9ae14e76eb50715c0193903f696fc build/pack/dw2003/country/fra/fsdmg305.bin +5061d6b66c7f1636f8f07fcc918b82c25b9c71a313f3ef128a76155033f076de build/pack/dw2003/country/fra/fsdmg400.bin +f471c5c0094be219e3d4e91860b9b027cb4c31fbf3c63e05721e797485556e8a build/pack/dw2003/country/fra/fsdmg500.bin +52caa236808f68d207cea4f61469162e5df5e22386206f298c6b09bf73cffd29 build/pack/dw2003/country/fra/fsdmg600.bin +3206728f85d6a35d369c88a416db10e906c5c42264b7b5196e74d94e3b7c7fc0 build/pack/dw2003/country/fra/fsdmg700.bin +c73c18bcbcce0166a5dd9c669e972cbe9fcebad9593d87638c37bdc9bef78621 build/pack/dw2003/country/fra/fsdmg800.bin +bae88917379634d79419319cc366b3d477a8e803d44c6abf778bcb36da313bf5 build/pack/dw2003/country/fra/fsdmg900.bin +85ca1e777c3ca332c499cfdfaf5683978817c86a16afc19a22b767dfe588cc19 build/pack/dw2003/country/ger/dsdmg200.bin +5e7d15495a6a672bd62560879dfb10dfe6db6ef742957b9dc660107b8f923443 build/pack/dw2003/country/ger/dsdmg260.bin +fc349b27b415c519bcf1d7bd76f72f37288a988b280924949ef3d4af496ed56e build/pack/dw2003/country/ger/dsdmg270.bin +8704a6516080fedbcb082abe2312c3309f91a92eed812e060ad8d2d96de0eb35 build/pack/dw2003/country/ger/dsdmg300.bin +e0d5dd2a6f5822d112042af74c15b6e455e4a68e9ba2f07d6c43c09d4b747233 build/pack/dw2003/country/ger/dsdmg305.bin +699e0463819be420caf2e27f0f303e403fb0fb83761ab317a4ea2e4ffb913a17 build/pack/dw2003/country/ger/dsdmg400.bin +48e708ad60fb94b75f5ae1ff890911e31416ceb0d6571c5402b53a43338eaca9 build/pack/dw2003/country/ger/dsdmg500.bin +7181c16a8cc189c60aba34626dc778aaefa96aabc41fb009bca025b10b39bf81 build/pack/dw2003/country/ger/dsdmg600.bin +b8f0a9438c5684978d3c362511de2d557d75d73ee8b87ac8995faa6ee3a62c55 build/pack/dw2003/country/ger/dsdmg700.bin +7b042a1da1ae242f44fe9e86d70d08138d01345684e265d113116d91bc8275a8 build/pack/dw2003/country/ger/dsdmg800.bin +5ca8c67208af56923b52a31226d5a223341b59e035fc3964ae017c135c0f3458 build/pack/dw2003/country/ger/dsdmg900.bin +38b4327153383d4af227a5caf5be2c623206356bac7e995a43c628878a866331 build/pack/dw2003/country/ita/isdmg200.bin +d31aef9e1210225d51e70f33cf87be57d9a5ec710accd7ffe8a4d3eee68ebd59 build/pack/dw2003/country/ita/isdmg260.bin +d1f3a3e58758d6847f8f793980a8f776fe0711438bdd9d975acea146f57ea627 build/pack/dw2003/country/ita/isdmg270.bin +227844ad249a26e24004e3a5add82dcc7fb4fda56dc519d8f8b833f762c1aa29 build/pack/dw2003/country/ita/isdmg300.bin +47e2acc41eecd69c0f7287cfef0187f75f3bec27cb00d9ef0c25c3a4d0524055 build/pack/dw2003/country/ita/isdmg305.bin +e00699add4de6d510563a2cfa1893b6fe53a78951e9bf6bdd543d6dccf2c551e build/pack/dw2003/country/ita/isdmg400.bin +3be1cf63bb4e4372f513b1621119d51813a34a82dab6c2d06e486fb911d502a7 build/pack/dw2003/country/ita/isdmg500.bin +27cc3bc86601c26f3f26c6d6d7eace0a69ab24049d4babdc3d8e831c1b116ecd build/pack/dw2003/country/ita/isdmg600.bin +a6cabe94e89b140314c666a65040f5f121a89596e0721045c36abf897970abb3 build/pack/dw2003/country/ita/isdmg700.bin +6104ada00c061a9aa5362eb37bfe933a3b5e9ffe9f2f61a61ecae6668e87ef05 build/pack/dw2003/country/ita/isdmg800.bin +3b8e5d4b112eebf1749a0cd83f2718a0acad241123e2e4af3220faafc683acab build/pack/dw2003/country/ita/isdmg900.bin +e1945a81af72392e5c9fc58f2befa90850098d5fe103cd109947bbbf4375f383 build/pack/dw2003/country/jpn/msdmg200.bin +6e9309542ff17b53d601a54cec3dd396cc08c2eb74670ca9eb293e25ddb3fdaf build/pack/dw2003/country/jpn/msdmg260.bin +a9b584329f7db253c020e3cca97b7727e90c78d7a3714f70be1f23b4e696a36b build/pack/dw2003/country/jpn/msdmg270.bin +3c0456db5ec26339e732696ed8a94dfe2bc90bbda0c041b24d12d834e6202064 build/pack/dw2003/country/jpn/msdmg300.bin +0ee0087f2c7ae925ef8c8f2a6d15d37573f737c4d1b276c01ef9bc07454ef1e0 build/pack/dw2003/country/jpn/msdmg305.bin +f3f1e5e56d4ff47b3f6f1c21f8029f1fd79715ae5b84a5848f5ee73c089bc109 build/pack/dw2003/country/jpn/msdmg400.bin +26a263afcf3c8a99cc4fb229fab57680cc9a107d12442930325c1fc3045b639a build/pack/dw2003/country/jpn/msdmg500.bin +006d66ae526b1ccd3d9b3a0e236e5b2fa9ae8c04ff50e824a29eb40f863cd452 build/pack/dw2003/country/jpn/msdmg600.bin +8f43b4f1e463049e466a9a0a143c000f465248fe8a0059ef6abcff3caad9b215 build/pack/dw2003/country/jpn/msdmg700.bin +22078ed3cc39aadcbd6e86c4a0da7a1f9a1bb5a6fdc9096761dfa03ab4ec0164 build/pack/dw2003/country/jpn/msdmg800.bin +f7fa1e2ce13e5b698ac95b0cf13fbb3fff96fd2f6f77b105bd069858a552ad91 build/pack/dw2003/country/jpn/msdmg900.bin +18c6eb7772586f23ed2e9c51ec495d77bf1d6a699c18bbb8d581746522281625 build/pack/dw2003/country/spn/ssdmg200.bin +d22e95604fdc668abd8e952f4bef268f70128c39d1b3b8b533143e7489d6b811 build/pack/dw2003/country/spn/ssdmg260.bin +463dc260f15a54ddf88cf6ccab40fe5847a620a017a29fc4194c5bf02c956ef1 build/pack/dw2003/country/spn/ssdmg270.bin +34d6d80b2e8d2e22fbb6332d1a725a9d3799fb4a5e1bc26fb1dc567ba292ab9d build/pack/dw2003/country/spn/ssdmg300.bin +1ea64ae9c267cc6c77d8787fec49f44efde961246e3ac9ce8333ff34317c957e build/pack/dw2003/country/spn/ssdmg305.bin +973c7f573083cb08430914f71e8c803add4dc5c30f2e40770e14dd40cd9f287a build/pack/dw2003/country/spn/ssdmg400.bin +f906bf1de7137d2da1203e402173728909a5dea5fb5b55b61e2952f464feb81b build/pack/dw2003/country/spn/ssdmg500.bin +854d67d053261861fe167d7134a9b74f0d49f9af3db2791c9591e0c8ed330d64 build/pack/dw2003/country/spn/ssdmg600.bin +72841a2f77a0d8a3206bd5a03a10be00f356021004e25c4e6921447a3169728d build/pack/dw2003/country/spn/ssdmg700.bin +45a50f1ba32d81af1603e6d6016b64218cac51d78addaacb71b4be0733b04820 build/pack/dw2003/country/spn/ssdmg800.bin +98fb13e733f9d8771c5f0c078e147e415180043bde9b2bf303823b0b2cfab445 build/pack/dw2003/country/spn/ssdmg900.bin +4ec8f6772588d1cef858964499eb8e2d197d58f0c24c40c97f575616d05fa8f6 build/pack/dw2003/country/usa/usdmg200.bin +26c494e3a6329b5cc7e9934f2e486f01d492dc68d54dc0bebefb61490bf6483a build/pack/dw2003/country/usa/usdmg260.bin +cfce7e8c4e3bc623aaa956da39bcef4f91b4e4f9478a1b44b228eb08865df35d build/pack/dw2003/country/usa/usdmg270.bin +a2d9bd333d52216defa7bfd569613a341299fef4604cae447dc711cfda76f2a4 build/pack/dw2003/country/usa/usdmg300.bin +2b111d046de5d9ac8011bf41327507beb65ca3207baa573b4812e0e062b2493d build/pack/dw2003/country/usa/usdmg305.bin +5443871686256508f4ce87f1a2999837dc702d8f2f15dfe1a158919e72dc1671 build/pack/dw2003/country/usa/usdmg400.bin +772e7c854d1b0c61844e8824f1cd92483c5e2424cb6840100946901134061913 build/pack/dw2003/country/usa/usdmg500.bin +1b281ea030b39d7eb43b16ce50a3f0b108b2bc7a272661a849db435953f9ebf3 build/pack/dw2003/country/usa/usdmg600.bin +c625e04fb669ffc20954da74d7a8c2d35d3cf8bd124faa7752ccf40f2c6ff4e6 build/pack/dw2003/country/usa/usdmg700.bin +08336582b5b0222b193d814bb609e076147a0810e61cb666044d8f37d150af59 build/pack/dw2003/country/usa/usdmg800.bin 84950c330aa7faf5dbbc5ade3dd443f7e123dec14d626188c6efde86120327c8 build/pack/dw2003/field/sprite/p001play.bin e084ae3ffc2c97a2c389c19262fdd4e25bf728db85f003ae98ddf87823c04516 build/pack/dw2003/field/sprite/p002play.bin 63bbcd501fe66f4d99294e84714442f61cc7238866a6b48ed13636a292afffa2 build/pack/dw2003/field/sprite/p002plyd.bin diff --git a/tools/ddw3-mkpack/src/main.rs b/tools/ddw3-mkpack/src/main.rs index d49a0e2c6..e6058ec02 100644 --- a/tools/ddw3-mkpack/src/main.rs +++ b/tools/ddw3-mkpack/src/main.rs @@ -14,7 +14,7 @@ use { clap::Parser, std::{ fs, - io::{self, BufReader, BufWriter, Seek}, + io::{self, BufReader, BufWriter, Seek, Write}, path::PathBuf, }, }; @@ -56,7 +56,17 @@ fn main() -> Result<(), anyhow::Error> { let mut entry = fs::File::open(&*entry_path).context("Unable to open entry file")?; // And copy it to the output - io::copy(&mut entry, &mut output).context("Unable to copy entry file to output")?; + let entry_len = io::copy(&mut entry, &mut output).context("Unable to copy entry file to output")?; + + // Then pad the entry to word size + let cur_pos = entry_pos + entry_len; + if cur_pos % 4 != 0 { + let remaining = 4 - (cur_pos % 4); + let remaining = usize::try_from(remaining).expect("Pad size didn't fit into `usize`"); + output + .write_all(&[0u8; 4][..remaining]) + .context("Unable to pad output to word size")?; + } Ok::<_, anyhow::Error>(entry_pos) })