Skip to content
This repository has been archived by the owner on Sep 26, 2023. It is now read-only.

Commit

Permalink
1.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
JKAnderson committed Dec 12, 2018
1 parent d41119d commit ec2bbc0
Show file tree
Hide file tree
Showing 15 changed files with 85 additions and 65 deletions.
31 changes: 3 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,7 @@
# Yabber
An unpacker/repacker for Demon's Souls, Dark Souls 1-3, and Bloodborne container formats. Supports .bnd, .bhd/.bdt, .tpf, and .dcx.
Does not support dvdbnds (dvdbnd0.bhd5 etc in DS1, GameDataEbl.bhd etc in DS2, Data1.bhd etc in DS3); use [UDSFM](https://www.nexusmods.com/darksouls/mods/1304) or [UXM](https://www.nexusmods.com/darksouls3/mods/286) to unpack those first.
Requires [.NET 4.7.2](https://www.microsoft.com/net/download/thank-you/net472) - Windows 10 users should already have this.
[NexusMods Page](https://www.nexusmods.com/darksouls3/mods/305)

# Usage
Drag-and-drop a file onto Yabber.exe to unpack it. Drag-and-drop an unpacked folder onto the exe to repack it. Multiple files can be selected and dropped at a time.
DCX versions of supported formats like `c0000.chrbnd.dcx` can be dropped directly onto Yabber; you only need to use Yabber.DCX if you want to decompress other formats like `c0000.esd.dcx`. To recompress these, drag-and-drop the uncompressed file back onto Yabber.DCX.

# Formats
### BND3
Extension: `.*bnd`
A generic file container used in DeS and DS1. DS1 is fully supported; DeS is mostly supported.

### BND4
Extension: `.*bnd`
A generic file container used in DS2, BB, and DS3.

### BXF3
Extensions: `.*bhd`, `.*bdt`
A generic file container split into a header and data file, used in DS1. Only drag-and-drop the .bhd to unpack it; the .bdt is assumed to be in the same directory.

### BXF4
Extensions: `.*bhd`, `.*bdt`
A generic file container split into a header and data file, used in DS2, BB, and DS3. Only drag-and-drop the .bhd to unpack it; the .bdt is assumed to be in the same directory.

### DCX
Extension: `*.dcx`
A single compressed file, used in all games.

### TPF
Extension: `.tpf`
A DDS texture container, used in all games. Console versions are not supported.
Please see the included readme for detailed instructions.
3 changes: 3 additions & 0 deletions Yabber.Context/Program.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
using Microsoft.Win32;
using System;
using System.IO;
using System.Reflection;

namespace Yabber.Context
{
class Program
{
static void Main(string[] args)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Console.Write(
$"{assembly.GetName().Name} {assembly.GetName().Version}\n\n" +
"This program will register Yabber.exe and Yabber.DCX.exe\n" +
"so that they can be run by right-clicking on a file or folder.\n" +
"Enter R to register, U to unregister, or anything else to exit.\n" +
Expand Down
16 changes: 10 additions & 6 deletions Yabber.Context/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Yabber.Context")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("Yabber.Context")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2018")]
[assembly: AssemblyDescription("Registers the other Yabber applications to the context menu.")]
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyCompany("JKAnderson")]
[assembly: AssemblyProduct("Yabber")]
[assembly: AssemblyCopyright("Copyright © Joseph Anderson 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -33,4 +37,4 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0")]
6 changes: 6 additions & 0 deletions Yabber.Context/Yabber.Context.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand All @@ -49,5 +52,8 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Binary file added Yabber.Context/icon.ico
Binary file not shown.
14 changes: 7 additions & 7 deletions Yabber.DCX/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ static void Main(string[] args)
{
if (args.Length == 0)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Console.WriteLine(
"\n" +
" Yabber.DCX has no GUI.\n" +
" Drag and drop a DCX onto the exe to decompress it,\n" +
" or a decompressed file to recompress it.\n\n" +
" Yabber.DCX version: " + Assembly.GetExecutingAssembly().GetName().Version + "\n" +
" Press any key to exit."
$"{assembly.GetName().Name} {assembly.GetName().Version}\n\n" +
"Yabber.DCX has no GUI.\n" +
"Drag and drop a DCX onto the exe to decompress it,\n" +
"or a decompressed file to recompress it.\n\n" +
"Press any key to exit."
);
Console.ReadKey();
return;
Expand All @@ -30,7 +30,7 @@ static void Main(string[] args)
{
try
{
if (Path.GetExtension(path) == ".dcx")
if (DCX.Is(path))
{
pause |= Decompress(path);
}
Expand Down
18 changes: 11 additions & 7 deletions Yabber.DCX/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Yabber.DCX")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Yabber.DCX")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyDescription("Decompresses/recompresses DCX files.")]
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyCompany("JKAnderson")]
[assembly: AssemblyProduct("Yabber")]
[assembly: AssemblyCopyright("Copyright © Joseph Anderson 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -32,5 +36,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.1.0.0")]
[assembly: AssemblyFileVersion("0.1.0.0")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0")]
6 changes: 6 additions & 0 deletions Yabber.DCX/Yabber.DCX.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand All @@ -57,5 +60,8 @@
<Name>SoulsFormats</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Binary file added Yabber.DCX/icon.ico
Binary file not shown.
19 changes: 9 additions & 10 deletions Yabber/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,16 @@ static void Main(string[] args)
{
if (args.Length == 0)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Console.WriteLine(
"\n" +
" Yabber has no GUI.\n" +
" Drag and drop a file onto the exe to unpack it,\n" +
" or an unpacked folder to repack it.\n\n" +
" DCX files will be transparently decompressed and recompressed;\n" +
" If you need to decompress or recompress an unsupported format,\n" +
" use Yabber.DCX.exe instead.\n\n" +
" Yabber version: " + Assembly.GetExecutingAssembly().GetName().Version + "\n" +
" Supported formats: BND3, BND4, BXF3, BXF4, TPF\n" +
" Press any key to exit."
$"{assembly.GetName().Name} {assembly.GetName().Version}\n\n" +
"Yabber has no GUI.\n" +
"Drag and drop a file onto the exe to unpack it,\n" +
"or an unpacked folder to repack it.\n\n" +
"DCX files will be transparently decompressed and recompressed;\n" +
"If you need to decompress or recompress an unsupported format,\n" +
"use Yabber.DCX instead.\n\n" +
"Press any key to exit."
);
Console.ReadKey();
return;
Expand Down
4 changes: 2 additions & 2 deletions Yabber/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.2.0.0")]
[assembly: AssemblyFileVersion("0.2.0.0")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0")]
3 changes: 2 additions & 1 deletion Yabber/YBUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ static class YBUtil
@"N:\DemonsSoul\data\",
@"N:\DemonsSoul\",
@"Z:\data\",
// Ninja Blade
@"I:\NinjaBlade\",
// Dark Souls 1
@"N:\FRPG\data\INTERROOT_win32\",
@"N:\FRPG\data\INTERROOT_win64\",
Expand Down Expand Up @@ -46,7 +48,6 @@ public static string UnrootBNDPath(string path, out string root)
{
foreach (string pathRoot in pathRoots)
{
// This tolowering is only here because DSR has 3 files that start with "n:\"
if (path.ToLower().StartsWith(pathRoot.ToLower()))
{
root = path.Substring(0, pathRoot.Length);
Expand Down
6 changes: 6 additions & 0 deletions Yabber/Yabber.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand Down Expand Up @@ -83,5 +86,8 @@
<Name>SoulsFormats</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Binary file added Yabber/icon.ico
Binary file not shown.
24 changes: 20 additions & 4 deletions dist/readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,30 @@
--| https://github.com/JKAnderson/Yabber

An unpacker/repacker for Demon's Souls, Dark Souls 1-3, and Bloodborne container formats. Supports .bnd, .bhd/.bdt, .tpf, and .dcx.
Does not support dvdbnds (dvdbnd0.bhd5 etc in DS1, GameDataEbl.bhd etc in DS2, Data1.bhd etc in DS3); use UDSFM or UXM to unpack those first.
https://www.nexusmods.com/darksouls/mods/1304
https://www.nexusmods.com/darksouls3/mods/286
Requires .NET 4.7.2 - Windows 10 users should already have this.
https://www.microsoft.com/net/download/thank-you/net472


--| Usage
--| Yabber.exe

Drag-and-drop a file onto Yabber.exe to unpack it. Drag-and-drop an unpacked folder onto the exe to repack it. Multiple files can be selected and dropped at a time.
DCX versions of supported formats like `c0000.chrbnd.dcx` can be dropped directly onto Yabber; you only need to use Yabber.DCX if you want to decompress other formats like `c0000.esd.dcx`. To recompress these, drag-and-drop the uncompressed file back onto Yabber.DCX.
This program is for unpacking and repacking container files. Drag and drop a file (bnd, bhd, or tpf) onto the exe to unpack it; drag and drop an unpacked folder to repack it. Multiple files or folders can be selected and dropped at a time.
DCX versions of supported formats can be dropped directly onto Yabber.exe without decompressing them separately; they will automatically be recompressed when repacking.
Edit the .xml file in the unpacked folder to add, remove or rename files before repacking.


--| Yabber.DCX.exe

This program is for decompressing and recompressing any DCX file. Drag and drop a DCX file onto the exe to decompress it; drag and drop the decompressed file to recompress it. Multiple files can be selected and dropped at a time.
You don't need to use this to decompress container formats before dropping them on Yabber.exe; this is only for compressed formats that aren't otherwise supported by Yabber.


--| Yabber.Context.exe

This program registers the other two so that they can be run by right-clicking on a file or folder. Run it to choose whether to register or unregister them.
The other two programs are assumed to be in the same folder. If you move them, just run it again from the new location.


--| Formats
Expand All @@ -34,7 +50,7 @@ Extensions: .*bhd, .*bdt
A generic file container split into a header and data file, used in DS2, BB, and DS3. Only drag-and-drop the .bhd to unpack it; the .bdt is assumed to be in the same directory.

DCX
Extension: *.dcx
Extension: .dcx
A single compressed file, used in all games.

TPF
Expand Down

0 comments on commit ec2bbc0

Please sign in to comment.