Skip to content

Releases: chieltbest/dbpf

Latest Commit

07 Nov 17:41
7340101

Choose a tag to compare

Latest Commit Pre-release
Pre-release

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

This automatic release is built from the latest commit that has been successfully compiled and tested.

For Windows users:
Download the -setup.exe file, then click on the file to run the installer.

For Linux users:
Download the .AppImage file, then click on the file to run it.

Changelog

[unreleased]

🐛 Bug Fixes

  • (editor) Better error reporting if something goes wrong in DDS export

yape v0.7.0

25 Dec 10:07
yape/v0.7.0
89433c9

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.7.0] - 2025-12-25

🚀 Features

  • (editor) Shared updater system
  • Updater
  • (editor) Add changelog to updater UI
  • (editor) Remember opened headers when opening new SDSC tabs
  • (editor) Add OBJD build mode type and subsort flags

♿ Accessibility

  • (editor) Add check for update on startup tooltip

🐛 Bug Fixes

  • (editor) Properly display txtr resources with more than one embedded image
  • Fix wasm build
  • (editor) Mark VecEditor as changed when deleting elements
  • (editor) Do not panic when images are bigger than what can be loaded by egui
  • (yape) Fix tab ids across restarts
  • (yape) Make wasm file io functions public

📚 Documentation

  • Update supported editor filetypes in readme

⚡ Performance

  • (batl) Do not clone the entire filtered textures list every frame

🚜 Refactor

  • Rename set_version_info to init
  • Use tokio spawn_blocking instead of spawning a thread in async_execute
  • Add tracy feature to enable tracing with tracy
  • Dark/light mode and ui scale into shared settings
  • (yape) Split main into several files
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🎨 Styling

  • Apply light mode text fix to all graphical apps

📦️ Dependencies

  • (dbpf) Update gltf_kun and xmltree dependencies

yape v0.7.0 (latest)

24 Apr 01:56
89433c9

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.7.0] - 2025-12-25

🚀 Features

  • (editor) Shared updater system
  • Updater
  • (editor) Add changelog to updater UI
  • (editor) Remember opened headers when opening new SDSC tabs
  • (editor) Add OBJD build mode type and subsort flags

♿ Accessibility

  • (editor) Add check for update on startup tooltip

🐛 Bug Fixes

  • (editor) Properly display txtr resources with more than one embedded image
  • Fix wasm build
  • (editor) Mark VecEditor as changed when deleting elements
  • (editor) Do not panic when images are bigger than what can be loaded by egui
  • (yape) Fix tab ids across restarts
  • (yape) Make wasm file io functions public

📚 Documentation

  • Update supported editor filetypes in readme

⚡ Performance

  • (batl) Do not clone the entire filtered textures list every frame

🚜 Refactor

  • Rename set_version_info to init
  • Use tokio spawn_blocking instead of spawning a thread in async_execute
  • Add tracy feature to enable tracing with tracy
  • Dark/light mode and ui scale into shared settings
  • (yape) Split main into several files
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🎨 Styling

  • Apply light mode text fix to all graphical apps

📦️ Dependencies

  • (dbpf) Update gltf_kun and xmltree dependencies

batl v0.3.0

25 Dec 09:13
batl/v0.3.0
5461303

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.3.0] - 2025-12-25

🚀 Features

  • (dbpf) Add support for decoding bcon resources
  • (dbpf) Add support for decoding AudioReference resources
  • (dbpf) Add support for decoding ObjectFunctions resources
  • (dbpf) Add basic support for decoding BehaviourConstantsLabels and BehaviourFunctionLabels resources
  • (dbpf) Add api for adding mip levels
  • Add buttons to add/remove mipmap levels
  • Switch to using RawFileData debug print impl
  • (dbpf) Add support for decoding ObjectData resources
  • Add simple editor for ObjectData resource
  • (dbpf) Add equality operator for all resource types
  • Save original image when changing texture format
  • Add zoom area to texture viewer
  • Add preserve transparency option
  • (dbpf) Add dds import function
  • (dbpf) Add dds import conversion functions
  • (dbpf) Add dds export function
  • Add bidirectional texture shrink function
  • (dbpf) Add GeometricDataContainer decoder
  • Add proper parsing and display for more GMDC attributes
  • Add GMDC glTF export
  • Add resource export
  • Make list editor items re-orderable by dragging the delete button
  • (dbpf) Implement sim description parser
  • (dbpf) Add SimDescriptions to decoded resources
  • Updater
  • (batl) Add column sorting

🐛 Bug Fixes

  • (dbpf) Remove CatalogString from the list of TextList resources
  • (dbpf) Scale down mipmaps to 1x1 pixels in all cases
  • Change to using unicode comparison symbols
  • (dbpf) Properly write resource reference in cpf
  • (dbpf) Remove RawFileData utf-8 debug print check
  • (dbpf) Write textlist count in big endian for untagged string
  • Do not write file_name_repeat if resource block version is not V9
  • (dbpf) Premultiply alpha during texture shrink
  • (dbpf) Retain color information for fully transparent pixels
  • (dbpf) Also retain color information for rectangular shrink
  • (dbpf) Correctly write data during dds export
  • (dbpf) Fix alpha and luminance dds export header
  • (dbpf) Fix divide by zero
  • Rename Bulgarian -> Cyrillic
  • Export all unknown attributes is glTF
  • (dbpf) Fix missing/incorrect parsing information
  • (batl) Do not fetch the same image multiple times
  • Remove vestigial dark/light mode code
  • (batl) Keep enabled columns open when clicking checkboxes

📚 Documentation

  • Add missing copyright headers
  • Do not include dbpf_utils in yact and batl changelogs

⚡ Performance

  • (batl) Update filtered texture list in place
  • (batl) Do not clone the entire filtered textures list every frame
  • (batl) Enable reduce_texture_memory, increase number of cached images

🚜 Refactor

  • (dbpf) Move behaviour related resources into separate module
  • Make Timestamp and UserVersion fields public
  • Clean up
  • Rename texture formats to more closely align with the D3D texture format specification
  • (dbpf) Change texture resource purpose to enum
  • Pass glow OpenGL context to editor
  • Do not pass opengl context to show_editor function
  • (dbpf) Make SizedVec struct and refactor string to use it
  • Fix most clippy lints
  • Add code formatting with rustfmt
  • Add license and copyright information
  • Move gltf-kun patch to workspace Cargo.toml
  • Reverse z-buffer
  • (dbpf) Change index instance_id to newtype
  • (dbpf) Rename PDAT/Person Data to SDSC/Sim Description
  • (dbpf) Correct more information in sim description
  • (dbpf) More dbpf renames
  • (dbpf) Add BugCollectionFlags
  • (dbpf) Rename collection field to bug collection
  • (dbpf) Split SDSC into multiple files
  • (dbpf) Add mementos bitfield
  • (dbpf) Add TitlePostName enum
  • (dbpf) Split base game data into separate file
  • (dbpf) Add human name to Version
  • (dbpf) Add Sequence derive to all SDSC enums
  • (dbpf) Derive Copy for all SDSC data
  • (dbpf) More SDSC changes
  • Make SDSC height range -100 to 100
  • Add tracy feature to enable tracing with tracy
  • Dark/light mode and ui scale into shared settings
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🎨 Styling

  • (batl) Display texture memory size with units (kB/MB)

🧪 Testing

  • (dbpf) Add tests for string types
  • (dbpf) Assert that a nullstring cannot have nulls

📦️ Dependencies

  • (dbpf) Update refpack to 5.0.0
  • Update binrw to 0.15
  • Update modular-bitfield to 0.12
  • Update refpack
  • Update thiserror to 2.0
  • Update miniz-oxide to 0.8
  • Update log
  • Change serde_json dependency
  • Update lru to 0.16
  • Update egui and dependencies to 0.32
  • (dbpf) Update modular_bitfield to 0.13
  • (dbpf) Update gltf_kun and xmltree dependencies

batl v0.3.0 (latest)

22 Apr 17:39
5461303

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.3.0] - 2025-12-25

🚀 Features

  • (dbpf) Add support for decoding bcon resources
  • (dbpf) Add support for decoding AudioReference resources
  • (dbpf) Add support for decoding ObjectFunctions resources
  • (dbpf) Add basic support for decoding BehaviourConstantsLabels and BehaviourFunctionLabels resources
  • (dbpf) Add api for adding mip levels
  • Add buttons to add/remove mipmap levels
  • Switch to using RawFileData debug print impl
  • (dbpf) Add support for decoding ObjectData resources
  • Add simple editor for ObjectData resource
  • (dbpf) Add equality operator for all resource types
  • Save original image when changing texture format
  • Add zoom area to texture viewer
  • Add preserve transparency option
  • (dbpf) Add dds import function
  • (dbpf) Add dds import conversion functions
  • (dbpf) Add dds export function
  • Add bidirectional texture shrink function
  • (dbpf) Add GeometricDataContainer decoder
  • Add proper parsing and display for more GMDC attributes
  • Add GMDC glTF export
  • Add resource export
  • Make list editor items re-orderable by dragging the delete button
  • (dbpf) Implement sim description parser
  • (dbpf) Add SimDescriptions to decoded resources
  • Updater
  • (batl) Add column sorting

🐛 Bug Fixes

  • (dbpf) Remove CatalogString from the list of TextList resources
  • (dbpf) Scale down mipmaps to 1x1 pixels in all cases
  • Change to using unicode comparison symbols
  • (dbpf) Properly write resource reference in cpf
  • (dbpf) Remove RawFileData utf-8 debug print check
  • (dbpf) Write textlist count in big endian for untagged string
  • Do not write file_name_repeat if resource block version is not V9
  • (dbpf) Premultiply alpha during texture shrink
  • (dbpf) Retain color information for fully transparent pixels
  • (dbpf) Also retain color information for rectangular shrink
  • (dbpf) Correctly write data during dds export
  • (dbpf) Fix alpha and luminance dds export header
  • (dbpf) Fix divide by zero
  • Rename Bulgarian -> Cyrillic
  • Export all unknown attributes is glTF
  • (dbpf) Fix missing/incorrect parsing information
  • (batl) Do not fetch the same image multiple times
  • Remove vestigial dark/light mode code
  • (batl) Keep enabled columns open when clicking checkboxes

📚 Documentation

  • Add missing copyright headers
  • Do not include dbpf_utils in yact and batl changelogs

⚡ Performance

  • (batl) Update filtered texture list in place
  • (batl) Do not clone the entire filtered textures list every frame
  • (batl) Enable reduce_texture_memory, increase number of cached images

🚜 Refactor

  • (dbpf) Move behaviour related resources into separate module
  • Make Timestamp and UserVersion fields public
  • Clean up
  • Rename texture formats to more closely align with the D3D texture format specification
  • (dbpf) Change texture resource purpose to enum
  • Pass glow OpenGL context to editor
  • Do not pass opengl context to show_editor function
  • (dbpf) Make SizedVec struct and refactor string to use it
  • Fix most clippy lints
  • Add code formatting with rustfmt
  • Add license and copyright information
  • Move gltf-kun patch to workspace Cargo.toml
  • Reverse z-buffer
  • (dbpf) Change index instance_id to newtype
  • (dbpf) Rename PDAT/Person Data to SDSC/Sim Description
  • (dbpf) Correct more information in sim description
  • (dbpf) More dbpf renames
  • (dbpf) Add BugCollectionFlags
  • (dbpf) Rename collection field to bug collection
  • (dbpf) Split SDSC into multiple files
  • (dbpf) Add mementos bitfield
  • (dbpf) Add TitlePostName enum
  • (dbpf) Split base game data into separate file
  • (dbpf) Add human name to Version
  • (dbpf) Add Sequence derive to all SDSC enums
  • (dbpf) Derive Copy for all SDSC data
  • (dbpf) More SDSC changes
  • Make SDSC height range -100 to 100
  • Add tracy feature to enable tracing with tracy
  • Dark/light mode and ui scale into shared settings
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🎨 Styling

  • (batl) Display texture memory size with units (kB/MB)

🧪 Testing

  • (dbpf) Add tests for string types
  • (dbpf) Assert that a nullstring cannot have nulls

📦️ Dependencies

  • (dbpf) Update refpack to 5.0.0
  • Update binrw to 0.15
  • Update modular-bitfield to 0.12
  • Update refpack
  • Update thiserror to 2.0
  • Update miniz-oxide to 0.8
  • Update log
  • Change serde_json dependency
  • Update lru to 0.16
  • Update egui and dependencies to 0.32
  • (dbpf) Update modular_bitfield to 0.13
  • (dbpf) Update gltf_kun and xmltree dependencies

yact v0.2.0

24 Dec 12:25
yact/v0.2.0
317398a

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.2.0] - 2025-12-24

🚀 Features

  • (dbpf) Add function to replace all textures with a new texture
  • (dbpf) Add texture format recompression function
  • Add ability to edit texture format/compression type
  • (dbpf) Add support for BINX (Binary Index) resource type
  • (dbpf) Add all known XML file types
  • (dbpf) Add XML reader support for CPF resources
  • (dbpf) Add generic decode support for all known CPF types
  • Enable generic editor for CPF files
  • (dbpf) Add groups cache file type
  • (dbpf) Add support for decoding of Behaviour Function resources
  • Add primitive Behaviour Function editor/viewer
  • Add scan again button
  • (dbpf) Add support for decoding bcon resources
  • (dbpf) Add support for decoding AudioReference resources
  • (dbpf) Add support for decoding ObjectFunctions resources
  • (dbpf) Add basic support for decoding BehaviourConstantsLabels and BehaviourFunctionLabels resources
  • (dbpf) Add api for adding mip levels
  • Add buttons to add/remove mipmap levels
  • Switch to using RawFileData debug print impl
  • (dbpf) Add support for decoding ObjectData resources
  • Add simple editor for ObjectData resource
  • (dbpf) Add equality operator for all resource types
  • Save original image when changing texture format
  • Add zoom area to texture viewer
  • Add preserve transparency option
  • (dbpf) Add dds import function
  • (dbpf) Add dds import conversion functions
  • (dbpf) Add dds export function
  • Add bidirectional texture shrink function
  • (dbpf) Add GeometricDataContainer decoder
  • Add proper parsing and display for more GMDC attributes
  • Add GMDC glTF export
  • Add resource export
  • (dbpf) Implement sim description parser
  • (dbpf) Add SimDescriptions to decoded resources
  • Updater

🐛 Bug Fixes

  • Correct conversion into raw and grayscale textures
  • (dbpf) Fix reading of Sims 3/4 package files
  • Properly write CPF file header
  • Fix typo in Binary Index file write: stringindex -> stringsetidx
  • (dbpf) Correct name of XML-encoded cpf writer signed integer type (AnyInt -> AnySint32)
  • (dbpf) Fix reading and writing of all CPF files
  • (dbpf) Add additional error on XML CPF write to ensure that the key attribute can have no control chararcters
  • Fix writing of BigInt
  • (dbpf) Fix reading of textlist resources
  • (dbpf) Fix reading of rcol resources
  • (dbpf) Fix NullString conversion to String
  • Textures that have bad data are reported and will not crash the program
  • (dbpf) Decompression of dxt textures that are not a multiple of 4
  • (dbpf) Remove CatalogString from the list of TextList resources
  • (dbpf) Scale down mipmaps to 1x1 pixels in all cases
  • (dbpf) Properly write resource reference in cpf
  • (dbpf) Remove RawFileData utf-8 debug print check
  • (dbpf) Write textlist count in big endian for untagged string
  • Do not write file_name_repeat if resource block version is not V9
  • (dbpf) Premultiply alpha during texture shrink
  • (dbpf) Retain color information for fully transparent pixels
  • (dbpf) Also retain color information for rectangular shrink
  • (dbpf) Correctly write data during dds export
  • (dbpf) Fix alpha and luminance dds export header
  • (dbpf) Fix divide by zero
  • Rename Bulgarian -> Cyrillic
  • Export all unknown attributes is glTF
  • (dbpf) Fix missing/incorrect parsing information
  • Keep resources popup open on clicks
  • Remove vestigial dark/light mode code

📚 Documentation

  • Add missing copyright headers
  • Do not include dbpf_utils in yact and batl changelogs

🚜 Refactor

  • Move internal_file.rs to module
  • Properly calculate rcol index
  • Calcalate mipmap levels from amount of textures
  • (dbpf) Add mip_levels convenience function
  • Rework language code support
  • (dbpf) Add separate datatype enum for XML CPF version field
  • (dbpf) Rename String -> PascalString
  • (dbpf) Make PascalString take an integer type argument
  • (dbpf) Add maximum length/padding argument to NullString
  • Make BigString implementation an instance of PascalString
  • (dbpf) Move behaviour related resources into separate module
  • Make Timestamp and UserVersion fields public
  • Clean up
  • Rename texture formats to more closely align with the D3D texture format specification
  • (dbpf) Change texture resource purpose to enum
  • (dbpf) Make SizedVec struct and refactor string to use it
  • Fix most clippy lints
  • Add code formatting with rustfmt
  • Add license and copyright information
  • Move gltf-kun patch to workspace Cargo.toml
  • Reverse z-buffer
  • (dbpf) Change index instance_id to newtype
  • (dbpf) Rename PDAT/Person Data to SDSC/Sim Description
  • (dbpf) Correct more information in sim description
  • (dbpf) More dbpf renames
  • (dbpf) Add BugCollectionFlags
  • (dbpf) Rename collection field to bug collection
  • (dbpf) Split SDSC into multiple files
  • (dbpf) Add mementos bitfield
  • (dbpf) Add TitlePostName enum
  • (dbpf) Split base game data into separate file
  • (dbpf) Add human name to Version
  • (dbpf) Add Sequence derive to all SDSC enums
  • (dbpf) Derive Copy for all SDSC data
  • (dbpf) More SDSC changes
  • Make SDSC height range -100 to 100
  • Dark/light mode and ui scale into shared settings
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🧪 Testing

  • (dbpf) Add test for writing and then reading any CPF object
  • (dbpf) Add test asserting that strings may be invalid utf-8
  • (dbpf) Split CPF test to assert that XML CPF objects cannot contain invalid UTF-8
  • (dbpf) Split xml test to assert writing and reading separately
  • (dbpf) Add tests for string types
  • (dbpf) Assert that a nullstring cannot have nulls

📦️ Dependencies

  • (dbpf) Update refpack to 5.0.0
  • Update binrw to 0.15
  • Update modular-bitfield to 0.12
  • Update refpack
  • Update thiserror to 2.0
  • Update miniz-oxide to 0.8
  • Update log
  • Change serde_json dependency
  • Update egui and dependencies to 0.32
  • (dbpf) Update modular_bitfield to 0.13
  • (dbpf) Update gltf_kun and xmltree dependencies

yact v0.2.0 (latest)

22 Apr 17:32
317398a

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then either run the -setup.exe file to install the program with update capabilities,
or run the -portable.exe file to run the program directly without installing.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.2.0] - 2025-12-24

🚀 Features

  • (dbpf) Add function to replace all textures with a new texture
  • (dbpf) Add texture format recompression function
  • Add ability to edit texture format/compression type
  • (dbpf) Add support for BINX (Binary Index) resource type
  • (dbpf) Add all known XML file types
  • (dbpf) Add XML reader support for CPF resources
  • (dbpf) Add generic decode support for all known CPF types
  • Enable generic editor for CPF files
  • (dbpf) Add groups cache file type
  • (dbpf) Add support for decoding of Behaviour Function resources
  • Add primitive Behaviour Function editor/viewer
  • Add scan again button
  • (dbpf) Add support for decoding bcon resources
  • (dbpf) Add support for decoding AudioReference resources
  • (dbpf) Add support for decoding ObjectFunctions resources
  • (dbpf) Add basic support for decoding BehaviourConstantsLabels and BehaviourFunctionLabels resources
  • (dbpf) Add api for adding mip levels
  • Add buttons to add/remove mipmap levels
  • Switch to using RawFileData debug print impl
  • (dbpf) Add support for decoding ObjectData resources
  • Add simple editor for ObjectData resource
  • (dbpf) Add equality operator for all resource types
  • Save original image when changing texture format
  • Add zoom area to texture viewer
  • Add preserve transparency option
  • (dbpf) Add dds import function
  • (dbpf) Add dds import conversion functions
  • (dbpf) Add dds export function
  • Add bidirectional texture shrink function
  • (dbpf) Add GeometricDataContainer decoder
  • Add proper parsing and display for more GMDC attributes
  • Add GMDC glTF export
  • Add resource export
  • (dbpf) Implement sim description parser
  • (dbpf) Add SimDescriptions to decoded resources
  • Updater

🐛 Bug Fixes

  • Correct conversion into raw and grayscale textures
  • (dbpf) Fix reading of Sims 3/4 package files
  • Properly write CPF file header
  • Fix typo in Binary Index file write: stringindex -> stringsetidx
  • (dbpf) Correct name of XML-encoded cpf writer signed integer type (AnyInt -> AnySint32)
  • (dbpf) Fix reading and writing of all CPF files
  • (dbpf) Add additional error on XML CPF write to ensure that the key attribute can have no control chararcters
  • Fix writing of BigInt
  • (dbpf) Fix reading of textlist resources
  • (dbpf) Fix reading of rcol resources
  • (dbpf) Fix NullString conversion to String
  • Textures that have bad data are reported and will not crash the program
  • (dbpf) Decompression of dxt textures that are not a multiple of 4
  • (dbpf) Remove CatalogString from the list of TextList resources
  • (dbpf) Scale down mipmaps to 1x1 pixels in all cases
  • (dbpf) Properly write resource reference in cpf
  • (dbpf) Remove RawFileData utf-8 debug print check
  • (dbpf) Write textlist count in big endian for untagged string
  • Do not write file_name_repeat if resource block version is not V9
  • (dbpf) Premultiply alpha during texture shrink
  • (dbpf) Retain color information for fully transparent pixels
  • (dbpf) Also retain color information for rectangular shrink
  • (dbpf) Correctly write data during dds export
  • (dbpf) Fix alpha and luminance dds export header
  • (dbpf) Fix divide by zero
  • Rename Bulgarian -> Cyrillic
  • Export all unknown attributes is glTF
  • (dbpf) Fix missing/incorrect parsing information
  • Keep resources popup open on clicks
  • Remove vestigial dark/light mode code

📚 Documentation

  • Add missing copyright headers
  • Do not include dbpf_utils in yact and batl changelogs

🚜 Refactor

  • Move internal_file.rs to module
  • Properly calculate rcol index
  • Calcalate mipmap levels from amount of textures
  • (dbpf) Add mip_levels convenience function
  • Rework language code support
  • (dbpf) Add separate datatype enum for XML CPF version field
  • (dbpf) Rename String -> PascalString
  • (dbpf) Make PascalString take an integer type argument
  • (dbpf) Add maximum length/padding argument to NullString
  • Make BigString implementation an instance of PascalString
  • (dbpf) Move behaviour related resources into separate module
  • Make Timestamp and UserVersion fields public
  • Clean up
  • Rename texture formats to more closely align with the D3D texture format specification
  • (dbpf) Change texture resource purpose to enum
  • (dbpf) Make SizedVec struct and refactor string to use it
  • Fix most clippy lints
  • Add code formatting with rustfmt
  • Add license and copyright information
  • Move gltf-kun patch to workspace Cargo.toml
  • Reverse z-buffer
  • (dbpf) Change index instance_id to newtype
  • (dbpf) Rename PDAT/Person Data to SDSC/Sim Description
  • (dbpf) Correct more information in sim description
  • (dbpf) More dbpf renames
  • (dbpf) Add BugCollectionFlags
  • (dbpf) Rename collection field to bug collection
  • (dbpf) Split SDSC into multiple files
  • (dbpf) Add mementos bitfield
  • (dbpf) Add TitlePostName enum
  • (dbpf) Split base game data into separate file
  • (dbpf) Add human name to Version
  • (dbpf) Add Sequence derive to all SDSC enums
  • (dbpf) Derive Copy for all SDSC data
  • (dbpf) More SDSC changes
  • Make SDSC height range -100 to 100
  • Dark/light mode and ui scale into shared settings
  • (dbpf) Allow warning caused by binrw issue
  • Move shared dependency versions to workspace configuration

🧪 Testing

  • (dbpf) Add test for writing and then reading any CPF object
  • (dbpf) Add test asserting that strings may be invalid utf-8
  • (dbpf) Split CPF test to assert that XML CPF objects cannot contain invalid UTF-8
  • (dbpf) Split xml test to assert writing and reading separately
  • (dbpf) Add tests for string types
  • (dbpf) Assert that a nullstring cannot have nulls

📦️ Dependencies

  • (dbpf) Update refpack to 5.0.0
  • Update binrw to 0.15
  • Update modular-bitfield to 0.12
  • Update refpack
  • Update thiserror to 2.0
  • Update miniz-oxide to 0.8
  • Update log
  • Change serde_json dependency
  • Update egui and dependencies to 0.32
  • (dbpf) Update modular_bitfield to 0.13
  • (dbpf) Update gltf_kun and xmltree dependencies

yape v0.5.0

02 Nov 12:21
yape/v0.5.0
27c01e7

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then click on the .exe file to run it.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.5.0] - 2025-11-02

🚀 Features

  • GMDC viewer proof of concept
  • Add proper parsing and display for more GMDC attributes
  • Add GMDC glTF export
  • Add poly count and memory usage to GMDC viewer
  • Add draw call count to GMDC viewer
  • Add filename in GMDC editor
  • GMDC viewer blinn-phong shading
  • Add GMDC bounding mesh display
  • Add resource export
  • Add resource import function by dragging files

♿ Accessibility

  • Make text darker in light mode

🐛 Bug Fixes

  • Set filename during dds export
  • Set tracing console output to use compact output instead of pretty
  • Export all unknown attributes is glTF
  • Resolve wasm build errors
  • Free graphical memory objects when closing GMDC editor
  • Disable depth test during blit render pass
  • Enable backface culling
  • Set a closer near clipping plane
  • Properly calculate model bone transform matrix in the case of non-unitary bone weights
  • Properly display the backside of triangles if enabled
  • Properly set defaults on first time run
  • Disable DockArea leaf collapse function
  • Make the bounding mesh display more transparent
  • Make index tab not closable after egui_dock update
  • Set light mode text rendering to use dark mode alpha coverage instead
  • Fix broken compression edit combobox
  • Display instance field by splitting the u64 into two u32 text fields
  • Temporary workaround for broken popup-in-popup behaviour in egui 0.32
  • Properly mark EnumEditor as changed

🚜 Refactor

  • Pass glow OpenGL context to editor
  • Do not pass opengl context to show_editor function
  • Clean up
  • (dbpf) Make SizedVec struct and refactor string to use it
  • Fix most clippy lints
  • Add code formatting with rustfmt
  • Add license and copyright information
  • Move gltf-kun patch to workspace Cargo.toml
  • Remove trunk dist folder
  • Remember vertex attribute and uniform locations on init
  • Properly handle and display OpenGL errors
  • Show OpenGL error in UI
  • Show mesh information editor even when OpenGL init failed
  • Use UBO instead of uniforms
  • Retain fbo across frames
  • Fix build on wasm again
  • Collect vao and buffer into a single vec
  • Reverse z-buffer
  • Improve opengl error handling
  • Properly recreate fbo on resize
  • Make intermediate fbo only as big as the actual viewport
  • Reverse z in normal and tangent display modes
  • Add bounding mesh checkboxes to ui
  • Comment out currently unused functions and fix warnings
  • Temporarily disable glTF export button

📦️ Dependencies

  • (dbpf) Update refpack to 5.0.0
  • Update binrw to 0.15
  • Update modular-bitfield to 0.12
  • Update refpack
  • Update thiserror to 2.0
  • Update miniz-oxide to 0.8
  • Update log
  • Change serde_json dependency
  • Update egui and dependencies to 0.32

yape v0.6.0

27 Nov 17:23
yape/v0.6.0
0a95c91

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then click on the .exe file to run it.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.6.0] - 2025-11-27

🚀 Features

  • Allow changing display color of alpha textures
  • Make list editor items re-orderable by dragging the delete button
  • (dbpf) Implement sim description parser
  • (dbpf) Add SimDescriptions to decoded resources
  • Add SDSC editor

♿ Accessibility

  • Add explanation tooltips to texture format dropdown
  • Add tooltips to instance high and low halves
  • Add tooltip to 3idr group

🐛 Bug Fixes

  • Remove AltRawARGB32 and AltRawRGB24 from ui texture format dropdown
  • Fix duplicate item Ids when multiple vector editors are open
  • Set fixed width for language code enum editor
  • Change 3idr editor to use instance editor
  • Do not crash when opening a texture resource that has wrong encoding
  • Show texture decoding errors instead of only reporting them in the log
  • Focus editor node on opening
  • (dbpf) Fix missing/incorrect parsing information

📚 Documentation

  • Add missing copyright headers

🚜 Refactor

  • Remove unused VecEditor columns state
  • (dbpf) Change index instance_id to newtype
  • (dbpf) Rename PDAT/Person Data to SDSC/Sim Description
  • (dbpf) Correct more information in sim description
  • (dbpf) More dbpf renames
  • Move resource_collection file to mod
  • (dbpf) Add BugCollectionFlags
  • (dbpf) Rename collection field to bug collection
  • (dbpf) Split SDSC into multiple files
  • (dbpf) Add mementos bitfield
  • (dbpf) Add TitlePostName enum
  • (dbpf) Split base game data into separate file
  • (dbpf) Add human name to Version
  • (dbpf) Add Sequence derive to all SDSC enums
  • (dbpf) Derive Copy for all SDSC data
  • (dbpf) More SDSC changes
  • Make SDSC height range -100 to 100
  • Remove underscores in SDSC selection flags ui
  • Make decay range in SDSC -1000 to 1000
  • Reorder SDSC skills by if they are real
  • Clarify vampire and werewolf flags
  • Make SDSC body temperature a slider
  • Add '0x' prefix to hex drag values

🎨 Styling

  • Add separate drag handle for vector reorder
  • Change alpha preview color button to a more suitable location

📦️ Dependencies

  • (dbpf) Update modular_bitfield to 0.13

yape v0.4.2

12 Jun 22:48
yape/v0.4.2
ea8e892

Choose a tag to compare

Caution

These tools are currently EXPERIMENTAL!
Prepare for any packages you edit with them to be potentially broken.
Make proper backups accordingly.

Download/Run

Windows Download

Download the .zip archive, extract it, then click on the .exe file to run it.

Windows might give you a SmartScreen warning; Windows' SmartScreen doesn't like unsigned executables,
but since it's quite expensive to have executables signed this will be a known flaw for the time being.

Linux Download

Download the .zip archive, extract it, then click on the .AppImage file to run it.

Changelog

[0.4.2] - 2025-06-12

🚀 Features

  • (dbpf) Add GeometricDataContainer decoder

🐛 Bug Fixes

  • Do not recompress textures during mipmap operations