Skip to content

Commit 77f5ed0

Browse files
More repo rework
1 parent 8d54116 commit 77f5ed0

19 files changed

Lines changed: 86 additions & 61 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.exe
2+
src/build/*
3+
git_update.bat

FileFormats.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# File Formats of Climax's Silent Hill games
2-
This page covers some of the file formats from Silent Hill games Develop by Climax (Silent Hill: Origins [Both Climax Los Angeles {CLA} Prototypes and Climax United Kingdom {CUK} versions] and Silent Hill: Shattered Memories.)
2+
This page covers some of the file formats from Silent Hill games develop by Climax Studios (Silent Hill: Origins [Both Climax Los Angeles {CLA} Prototypes and Climax Porthmouth {CUK} versions] and Silent Hill: Shattered Memories.)
33

4-
The main focus of this research are Climax's Silent Hill games however some of the findings can be applied for the 2007's Ghost Rider game, Overlord: Dark Legend and the cancelled PSP version of The Elders Scrolls IV: Oblivion.
4+
The main focus of this research are Climax's Silent Hill games, however, some of this investigation can be applied for the 2007's Ghost Rider game, Overlord: Dark Legend and The Elders Scrolls Travels: Oblivion (a cancelled PSP version of The Elders Scrolls IV: Oblivion).
55

66
This file format covered in this page:
77
* <a href="#arc-file-container">\*.ARC (File Containers)</a>
@@ -12,7 +12,7 @@ This file format covered in this page:
1212
* <a href="#videos-file-format">Video File Format</a>
1313

1414
## *.ARC (File container)
15-
Inside files with this extension are the files used by the games. Each game has little variations of the format. Only SHO (CUK) seems to change between PS2 and PSP by a slight detail. All games compression uses ZLib.
15+
Inside files with this extension are the files used by the games. All games compression uses ZLib.
1616

1717
In both SHO (CUK & CLA) and SHSM file data has a special space reserved for them, in SHO cases I wasn't able to figure out which could be the minimun space reserved, likely it is between 16 or 32 bytes, but in Shattered Memories the space is 2048 bytes (2 Megabytes), if the file or sector of the file is bigger than that the size of the space reserved is enlarged by 2 MBs more until it fully covers the file.
1818
### *.ARC - Silent Hill: Origins (CLA)
@@ -103,9 +103,9 @@ After this normally reading values is impossible, but there seems to be a patter
103103
## RenderWare Stream Files
104104
As previously mention, Climax used RenderWare version 3.7.0.2 and it seem that many of the file formats that comes with base RenderWare are used. However most RenderWare files and some extra data are stored inside files, like a file container. [Leeao made a QuickBMS script for extracting exclusively RenderWare files](https://github.com/leeao/SilentHillOriginsPS2/blob/main/fmt_SilentHillOrigins_PS2_Unpack_Resource.bms) which works with all games in both PlayStation systems, but not in Wii (SHSM) because data has to be read as Big Endian while PS systems are fully read in Little Endian. [In this repository an adjusted version of the script can be found that works with Wii (SHSM).](https://github.com/IWILLCRAFT-M0d/RenderEclipse-Tools-Priv/blob/main/Extra%20tools%20and%20scripts/ClimaxSH_Unpack_Resource.bms) What it do is read the first value which contains the size of the file information header, normally the value is not bigger than 600 bytes and as reading Big Endian values as Little Endian normally gives gigantic values I expect it will never be bigger than 1024 bytes (1 Megabyte). Also a little program coded in C++ (code available in the repository) can be found and it fully extracts all data, although it is not recommended to use with the May 2006 Silent Hill: Origins prototype as it may not work due all files having in the start a 192 byte sector full of undetectable giberish data which may cause the tool to not properly run causing either the tool to crash or a memory saturation.
105105
## \*.snd/\*.mus (Audio) - Silent Hill: Shattered Memories
106-
Shattered Memories uses FMOD as per the official page describe it ["FMOD is an end-to-end solution for adding sound and music to any game. Build adaptive audio using the FMOD Studio and play it in-game using the FMOD Engine."](https://www.fmod.com/studio). Shattered Memories uses version 4. Wii is the console that takes more advantage from it as it uses reverb and has dynamic music which files can be found in data.arc labeled with the extension \*.mus, they are simply \*.xm files with a different file extension and a extra 72 bytes long header. In PSP and PS2 they only use static audios, most of them can be found in igc.arc with the extension \*.snd.
106+
Shattered Memories uses FMOD as per the official page describe it ["FMOD is an end-to-end solution for adding sound and music to any game. Build adaptive audio using the FMOD Studio and play it in-game using the FMOD Engine."](https://www.fmod.com/studio) Shattered Memories uses version 4. Wii is the console that takes more advantage from it as it uses reverb and has dynamic music which files can be found in data.arc labeled with the extension \*.mus, they are simply \*.xm files with a different file extension and a extra 72 bytes long header. In PSP and PS2 they only use static audios, most of them can be found in igc.arc with the extension \*.snd.
107107

108-
The \*.snd files are mini-file containers, they contain an \*.fev and \*.fsb files. They can be extracted with DataSplitter.exe. \*.fsb files can be exported or reproduced with [FSBExt](https://github.com/gdawg/fsbext,) [vgsmtream](https://github.com/vgmstream/vgmstream) and [foobar2000](https://www.foobar2000.org/download) with the [vgmstream component for foobar2000.](https://github.com/vgmstream/vgmstream-releases/releases/download/nightly/foo_input_vgmstream.fb2k-component)
108+
The \*.snd files are mini-file containers, they contain an \*.fev and \*.fsb files. They can be extracted with DataSplitter.exe. \*.fsb files can be exported or reproduced with [FSBExt,](https://github.com/gdawg/fsbext) [vgsmtream](https://github.com/vgmstream/vgmstream) and [foobar2000](https://www.foobar2000.org/download) with the [vgmstream component for foobar2000.](https://github.com/vgmstream/vgmstream-releases/releases/download/nightly/foo_input_vgmstream.fb2k-component)
109109

110110
The \*.mus files can be open with audio players that supports \*.xm files (a convenient one being VLC), but the first 72 bytes of the file has to be deleted in other to play them.
111111

MiscResearch.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
Interesting or curious information unrelated to file formats.
2-
1+
Research beyond file formats like cheats or information that can't be covered on The Cutting Room Floor.
32

43
# Codes
54
Addresses in the game executable made as codes for emulators. PSP codes are intented to be added as CWCheat codes, the same with PS2 codes, but as \*.pnach and Wii codes are intented to be added as Gecko Codes.

README.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,42 @@
1919
This repository contains tools and documentation specifically made for Climax's Silent Hill games (Silent Hill: Origins [both Climax Los Angeles and Climax UK versions] and Silent Hill: Shattered Memories).
2020

2121
## <a href="https://github.com/IWILLCRAFT-M0d/RenderEclipse-Tools/releases">RenderEclipse Tools</a>
22-
This tool can export files from and import files to \*.ARC files from all Climax's Silent Hill games.
22+
This toolset for extracting files from all Climax's Silent Hill games.
2323

24+
### Climax ARC Manager
2425
Silent Hill: Shattered Memories hash the file names (unlike Silent Hill: Origins), the tool features an extensive list with most of unhashed filenames. Importing file in this case requires the usage of another tool in order to modify the game executable as the data table that the game uses in order to access to the \*.ARC file is inside the game executable, completely ignoring the one found inside the game's file.
2526

2627
For it usage open an \*.ARC file through the menubar. For now it only extract files, for extract a singular file left click on one of the files and extract it, if you want to extract all files left click on the root element of the list and select extract all files.
2728

28-
Sorry if the program lag this is my first time doing something like this...
29+
Sorry if it lags, this is my first time doing something like this...
2930

30-
## <a href="./Extra tools and scripts/External Programs Scripts/tex_SilentHillClimax.py">tex_SilentHillClimax.py</a>
31-
This plugin for [Noesis](https://www.richwhitehouse.com/index.php?content=inc_projects.php&showproject=91) previews and extract textures from Climax's SH Games from all platforms, however this tool does not work properly under some textures PS2 and Wii textures that are less than 32 pixel of height and/or width.
31+
### DataSplitter
32+
DataSplitter is a CLI tool that extracts RenderWare Stream and Silent Hill: Shattered Memories \*.snd files. For it usage drag and drop the proper file over the *.exe and it will start working.
3233

33-
For it usage it is required to download this library (https://github.com/Zheneq/Noesis-Plugins/blob/master/lib_zq_nintendo_tex.py), and for extracting data you will need to create a folder named "textures" in the same folder you have the \*.txd file you are trying to open.
34+
Silent Hill: Origins PS2 May 17, 2006 requires some modifications with an Hex editor as files contains 192 bytes of gibberish data at the beginning of each file.
3435

35-
## <a href="./Extra tools and scripts/DataSplitter/DataSplitter.exe">DataSplitter</a>
36-
DataSplitter.exe is a CLI tool that splits RenderWare Stream and Silent Hill: Shattered Memories \*.snd files. For it usage drag and drop the proper file over the *.exe and it will start working.
36+
### DataSplitter-IGCStream
37+
DataSplitter-IGCStream is a experimental CLI tool that extracts files from Silent Hill: Shattered Memories \*.IGCStream files. For it usage drag and drop the proper file over the *.exe and it will start working.
3738

38-
Silent Hill: Origins PS2 May 17, 2006 requires some modifications with an Hex editor as files contains 192 bytes of gibberish data at the beginning of each file.
39+
This tool currently only intends to work with Shattered Memories.
3940

40-
## <a href="./Extra tools and scripts/FBXFtest/FBXFtest.exe">FBXFtest</a>
41-
FBXFtest.exe is a CLI barebones reader of the obfusctation method of \*.XML/\*.XAML files from Silent Hill: Shattered Memories. For it usage drag and drop the proper file over the \*.exe and it will start working.
41+
### FBXFtest
42+
FBXFtest is a CLI barebones reader of the obfusctation method of \*.XML/\*.XAML files from Silent Hill: Shattered Memories. For it usage drag and drop the proper file over the \*.exe and it will start working.
4243

43-
## <a href="./Extra tools and scripts/RETH/RETH.exe">RETH.exe</a>
44-
RETH.exe is a CLI tool made for detecting and adding values to a \*.RETH file (Silent Hill: Shattered Memories hashing table for RenderEclipse Tool).
44+
### RETH
45+
RETH is a CLI tool made for detecting and adding values to a \*.RETH file (Silent Hill: Shattered Memories hashing table for RenderEclipse Tools).
4546

4647
For it usage, make two \*.txt files in the same folder where the executable is, name the files as "Filenames.txt" and "ARCS.txt". In "Filenames.txt" put all names you want to check if they could or not be the name of the missing unhashed files. In "ARCS.txt" put the directory of your ARC file, in case of not creating this file the tool will add any name put in "Filenames.txt" without checking it.
4748

48-
## <a href="./Extra tools and scripts/External Programs Scripts/ClimaxSH_Unpack_Resource.bms">Fixed RenderWare Stream Quick BMS Script</a>
49+
## <a href="./scripts/ClimaxSH_Unpack_Resource.bms">Fixed RenderWare Stream Quick BMS Script</a>
4950
This script is a adjusted version from [this script](https://github.com/leeao/SilentHillOriginsPS2/blob/main/fmt_SilentHillOrigins_PS2_Unpack_Resource.bms), it comes with the benefit of properly extract Wii's Silent Hill: Shattered Memories RenderWare Stream files.
5051

52+
## <a href="./scripts/tex_SilentHillClimax.py">tex_SilentHillClimax.py</a>
53+
This plugin for [Noesis](https://www.richwhitehouse.com/index.php?content=inc_projects.php&showproject=91) previews and extract textures from Climax's SH Games from all platforms, however this tool does not work properly under some textures PS2 and Wii textures that are less than 32 pixel of height and/or width.
54+
55+
For it usage it is required to download this library (https://github.com/Zheneq/Noesis-Plugins/blob/master/lib_zq_nintendo_tex.py), and for extracting data you will need to create a folder named "textures" in the same folder you have the \*.txd file you are trying to open.
56+
57+
5158
# External tools and scripts
5259
Tools and scripts made by people unrelated to this repository.
5360
* <a href="https://gtaforums.com/topic/851436-relopensrc-magictxd/">Magic.TXD</a> a tool for extracting and replacing RenderWare textures that fully works with PS2 and Wii textures.
File renamed without changes.
File renamed without changes.

src/CAM/Icon.rc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
PROGRAM_ICON ICON "sprog.ico"
2+
#include <wx/msw/wx.rc>
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#include <wx/wx.h>
22
#include "wxwindow.h"
3+
34
wxIMPLEMENT_APP(App);
45

56
bool App::OnInit() {
6-
MainFrame* mainWin = new MainFrame("RenderEclipse Tools");
7-
mainWin->SetIcon(wxIcon(wxT("sprog.ico"), wxBITMAP_TYPE_ICO));
7+
MainFrame* mainWin = new MainFrame("Climax ARC Manager");
8+
mainWin->SetIcon(wxICON(PROGRAM_ICON));
89
mainWin->Show();
910
mainWin->Maximize(true);
1011
return true;
11-
}
12+
}

0 commit comments

Comments
 (0)