Skip to content

Commit

Permalink
Main commit
Browse files Browse the repository at this point in the history
  • Loading branch information
binarymaster committed Jan 17, 2015
1 parent 0fe3055 commit a3eb7d6
Show file tree
Hide file tree
Showing 17 changed files with 3,319 additions and 2 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Changelog:

v1.0
- 7th Level file format understanding is totally finished, except some bytes in the file header and some resource types. Now we have entry table with resources and aliases (which isn't an actual resources)
- Added ability to import and export from/to project directory for modding game resources
- Added ability to save 7th Level binary executable files
- Added ability to preview/play resources directly in program using ActiveMovie player
v0.2
- 7th Level file format updated, now we can see identifiers of resources
- MIDI converter now can encode and decode from/to MIDI 0 format
v0.1
- Basic 7th Level file format understanding and reading/extracting only
- ADPCM codec is fully functional with ability to decode and encode mono/stereo WAV files
- MIDI converter can only decode game music to MIDI 0 format
14 changes: 14 additions & 0 deletions CHANGELOG_RU
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
История изменений:

v1.0
- Формат файла 7th Level полностью изучен, за исключением нескольких байт в заголовке файла и некоторых типов ресурсов. Теперь таблица записей делится на ресурсы и псевдонимы (которые не являются ресурсами)
- Добавлена возможность импортировать и экспортировать из/в директорию проекта, для возможности изменять игровые ресурсы
- Добавлена возможность сохранять исполняемые бинарные файлы 7th Level
- Добавлена возможность предпросмотра/воспроизведения ресурсов прямо в программе, используя проигрыватель ActiveMovie
v0.2
- Обновлена поддержка формата файла, теперь можно увидеть идентификаторы ресурсов
- Конвертер MIDI теперь может кодировать и декодировать из/в формат MIDI 0
v0.1
- Формат файла 7th Level изучен на базовом уровне, реализовано только чтение и извлечение
- Кодек ADPCM полностью функционален, с возможностью декодировать и кодировать моно/стерео WAV файлы
- Конвертер MIDI может лишь декодировать музыку из игры в формат MIDI 0
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
# 7thLevelFile
7th Level File Manager
# 7th Level File Manager

This tool was made for extracting some resources from 7th Level Inc games and for game modding. Tested on "Disney's Timon & Pumbaa's Jungle Games".

Internal formats supported:
- 7th Level Audio files (ADPCM compressed)
- 7th Level MIDI files

7th Level Audio converter may also encode .WAV files to 7th Level ADPCM format.
7th Level MIDI converter can convert from internal to standard MIDI format, and vice versa.
10 changes: 10 additions & 0 deletions README_RU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 7th Level File Manager

Данная программа была создана для извлечения ресурсов из игр от 7th Level Inc, а также для их изменения (создания модов). Проверено на игре "Disney's Timon & Pumbaa's Jungle Games".

Поддерживаются следующие внутренние форматы:
- Аудио файлы 7th Level (сжатые собственным ADPCM кодеком)
- MIDI файлы 7th Level

7th Level аудио конвертер также может кодировать из .WAV файла во внутренний стандарт 7th Level ADPCM.
7th Level MIDI конвертер может конвертировать из внутреннего формата в стандартный MIDI файл и наоборот.
Binary file added res/7thlevel.ico
Binary file not shown.
Binary file added res/7thlevel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added res/Logo2.ico
Binary file not shown.
Binary file added res/Logo2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions src/FM7L.dpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
7th Level File Manager v1.0 by Stas'M
This tool was made for extracting some resources from 7th Level Inc games and for game modding. Tested on "Disney's Timon & Pumbaa's Jungle Games".
Copyright (C) Stas'M Corp. 2012
http://stascorp.com/
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
}
program FM7L;

{$R *.dres}

uses
Forms,
MainUnit in 'MainUnit.pas' {MainForm},
LicenseUnit in 'LicenseUnit.pas' {LicenseForm};

{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := '7th Level File Manager';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TLicenseForm, LicenseForm);
Application.Run;
end.
Binary file added src/FM7L.res
Binary file not shown.
47 changes: 47 additions & 0 deletions src/LicenseUnit.dfm
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
object LicenseForm: TLicenseForm
Left = 0
Top = 0
BorderIcons = []
BorderStyle = bsDialog
Caption = 'License Agreement'
ClientHeight = 344
ClientWidth = 386
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poOwnerFormCenter
PixelsPerInch = 96
TextHeight = 13
object mText: TMemo
Left = 8
Top = 8
Width = 370
Height = 297
ReadOnly = True
ScrollBars = ssBoth
TabOrder = 0
WordWrap = False
end
object bAccept: TButton
Left = 115
Top = 311
Width = 75
Height = 25
Caption = '&Accept'
ModalResult = 1
TabOrder = 1
end
object bDecline: TButton
Left = 196
Top = 311
Width = 75
Height = 25
Caption = '&Decline'
ModalResult = 2
TabOrder = 2
end
end
43 changes: 43 additions & 0 deletions src/LicenseUnit.pas
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
Copyright 2014 Stas'M Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
}

unit LicenseUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TLicenseForm = class(TForm)
mText: TMemo;
bAccept: TButton;
bDecline: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;

var
LicenseForm: TLicenseForm;

implementation

{$R *.dfm}

end.
146 changes: 146 additions & 0 deletions src/MainUnit.dfm
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
object MainForm: TMainForm
Left = 0
Top = 0
Caption = '7th Level File Manager v1.0 by Stas'#39'M'
ClientHeight = 282
ClientWidth = 413
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
Menu = Menu
OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object SG: TStringGrid
Left = 0
Top = 0
Width = 413
Height = 282
Align = alClient
ColCount = 4
DefaultRowHeight = 16
FixedCols = 0
RowCount = 2
TabOrder = 0
OnDblClick = Extractselectedresource1Click
end
object Menu: TMainMenu
Left = 264
Top = 80
object File1: TMenuItem
Caption = '&File'
object Open1: TMenuItem
Caption = '&Open'
ShortCut = 16463
OnClick = Open1Click
end
object Close1: TMenuItem
Caption = 'Close'
ShortCut = 16499
OnClick = Close1Click
end
object Save1: TMenuItem
Caption = 'Save'
ShortCut = 16467
OnClick = Save1Click
end
object N1: TMenuItem
Caption = '-'
end
object Importasproject1: TMenuItem
Caption = 'Import from &project...'
ShortCut = 16457
OnClick = Importasproject1Click
end
object Exportasproject1: TMenuItem
Caption = '&Export to project...'
ShortCut = 16453
OnClick = Exportasproject1Click
end
object N2: TMenuItem
Caption = '-'
end
object Exit1: TMenuItem
Caption = '&Exit'
OnClick = Exit1Click
end
end
object Extract1: TMenuItem
Caption = '&Tools'
object Fileinformation1: TMenuItem
Caption = '&Information'
ShortCut = 73
OnClick = Fileinformation1Click
end
object N3: TMenuItem
Caption = '-'
end
object Extractselectedresource1: TMenuItem
Caption = 'E&xtract selected resource'
ShortCut = 69
OnClick = Extractselectedresource1Click
end
object Extractallresources1: TMenuItem
Caption = 'Extract &all resources'
OnClick = Extractallresources1Click
end
object Extractallresourcesbytype1: TMenuItem
Caption = 'Extract all resources by &type...'
OnClick = Extractallresourcesbytype1Click
end
object N4: TMenuItem
Caption = '-'
end
object Previewplayselectedresource1: TMenuItem
Caption = 'Pre&view/play selected resource'
ShortCut = 32
OnClick = Previewplayselectedresource1Click
end
object Convert1: TMenuItem
Caption = '&Convert resources'
object Sounds1: TMenuItem
Caption = '&Sounds'
OnClick = Sounds1Click
end
object Music1: TMenuItem
Caption = '&Music'
OnClick = Music1Click
end
end
end
object Help1: TMenuItem
Caption = '&Help'
object License1: TMenuItem
Caption = '&License agreement'
OnClick = License1Click
end
object About1: TMenuItem
Caption = '&About'
OnClick = About1Click
end
end
end
object Open: TOpenDialog
Filter = '7th Level executable binary (*.bin)|*.bin|All files (*.*)|*.*'
Left = 264
Top = 32
end
object Save: TSaveDialog
Filter = '7th Level Audio File|*.7la'
Left = 304
Top = 32
end
object PlayerChk: TTimer
Enabled = False
Interval = 50
OnTimer = PlayerChkTimer
Left = 304
Top = 80
end
end
Loading

0 comments on commit a3eb7d6

Please sign in to comment.