Перейти к содержимому


Фотография

Mafia 2 - разбор ресурсов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 33

#21 Sergeanur

Sergeanur

    Активный участник

  • LCSTeam
  • PipPipPip
  • 270 сообщений
  • Пол:Мужчина


Отправлено 08 November 2010 - 19:42

Решил сделать порт на ПК эксклюзивного для консолей дополнения The Betrayal of Jimmy. Форматы файлов в основном похожи, но есть и свои особенности. Вот например в файлах текстур каждые вторые 4 байта отзеркалены. Было бы неплохо программу написать. Почти тоже и в файлах скриптов. BIK вовсе не читаем, проигрывается только одна секунда, а дальше, наверное снова что-то зеркалят. С BIK разобрался, это просто я извлёк коряво.

Сообщение отредактировал Sergeanur: 09 November 2010 - 12:26

GTA Stories ships in...


#22 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 08 November 2010 - 23:58

Что такое little endian и big endian знаешь?
You think your day was surreal? Try mine.

#23 Sergeanur

Sergeanur

    Активный участник

  • LCSTeam
  • PipPipPip
  • 270 сообщений
  • Пол:Мужчина


Отправлено 09 November 2010 - 12:26

Нет.

GTA Stories ships in...


#24 Sergeanur

Sergeanur

    Активный участник

  • LCSTeam
  • PipPipPip
  • 270 сообщений
  • Пол:Мужчина


Отправлено 09 November 2010 - 12:57

SDS Tool GUI v1.0.3 - программа для распаковки и упаковки SDS. Было бы неплохо написать её под версию Xbox360, там немного изменений в заголовке. Так только где исходник взять...
http://svn.gib.me/pu...illusion/trunk/ - тут что-то вроде исходников только для C++

Сообщение отредактировал Sergeanur: 09 November 2010 - 13:00

GTA Stories ships in...


#25 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 09 November 2010 - 13:22

http://ru.wikipedia....g/wiki/По%...ов

Что касается svn.gib.me - Rick традиционно пишет на C#.
You think your day was surreal? Try mine.

#26 GHOST

GHOST

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений
  • Пол:Мужчина
  • Город:Тамбов


Отправлено 12 November 2010 - 05:40

На ксентаксе кто-то попробовал написать ещё один экспортёр моделей на C#

http://forum.xentax....?p=44788#p44788

Прикрепленные файлы



#27 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 12 November 2010 - 08:20

кто-то уже пробовал модельки открывать? оно работает?

#28 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 13 November 2010 - 05:48

А как обстоят дела со скриптами? Как обычно наиболее перспективной и интересной отраслью моддинга может стать именно скриптинг). По началу шли ведь разговоры на этот счет, даже разработки были конкретные.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#29 GHOST

GHOST

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений
  • Пол:Мужчина
  • Город:Тамбов


Отправлено 13 November 2010 - 07:10

Chipsman

Скоро ожидаем мафия2-плагин для второй занозы. Со всеми вытекающими последствиями.

первый темповый лоад индексов и вертексов в занозу: (см.скрин ниже)


И

Олегу мы всю инфу еще в начале сентября дали


Об этом пишут на МафияПаб


Dageron

На счет скриптов пока только так (см.ниже):

http://www.mafiapub....h...t=0&start=0

Прикрепленные файлы


Сообщение отредактировал GHOST: 13 November 2010 - 07:10


#30 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 13 November 2010 - 17:51

как разберут до конца модели - конвертнем на 4ку :)

#31 GHOST

GHOST

    Активный участник

  • Пользователи
  • PipPipPip
  • 75 сообщений
  • Пол:Мужчина
  • Город:Тамбов


Отправлено 14 November 2010 - 09:08

http://www.pic-uploa.../view-7751484/d ... e.jpg.html
http://www.pic-uploa.../view-7751499/d ... e.jpg.html

http://forum.xentax....?p=44790#p44790

#32 Sergeanur

Sergeanur

    Активный участник

  • LCSTeam
  • PipPipPip
  • 270 сообщений
  • Пол:Мужчина


Отправлено 12 May 2011 - 20:07

как разберут до конца модели - конвертнем на 4ку :)

Можете приступать: http://cg.forexperts...l-from-mafia-2/

GTA Stories ships in...


#33 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 13 May 2011 - 04:54

это я уже видел, это почти фигня, до конца не разобрано плюс без материалов (только маппинг есть), а этого не достаточно чтобы написать автоматический конвернер (ну хотя-бы в оф)

#34 MaksSh

MaksSh

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 06 August 2017 - 11:03

Всем привет!

Пишу программу для раскодирования SDS файла(Спасибо товарищу San'OG за его подробное изложение структуры файла :) )

Уважаемые гуру не поможете разархивировать файл.

Делаю так:

unsigned char* input = new unsigned char[sd->compressedStreamSize];//
unsigned char* out = new unsigned char[sd->uncompressedStreamSize];

fread(input, 1, sd->compressedStreamSize, f);

UncompressData(input, sd->compressedStreamSize, out, sd->uncompressedStreamSize);

fwrite(out, 1, sd->uncompressedStreamSize, dest);

структура sd:

struct StreamData{
	int  compressedStreamSizeWithHeader;
	bool compress;//? если 0 идет какая - то неизвестная фигня вместо сжатого блока
	int  uncompressedStreamSize;// (по умолчанию 16384 байт или 16 КБайт)
	int iCount0;
	int iCount1;
	int iCount2;
	int compressedStreamSize;
	int iCount3;
	int iCount4;
	int iCount5;
};

int readStreamHeader(FILE* f, std::ofstream& ofst, StreamData& sd){
	int iSizeBuff = 0;
	ofst << "\n";
	ofst << "StreamHeader " << "\n";
	sd.compressedStreamSizeWithHeader;
	iSizeBuff += fread(&sd.compressedStreamSizeWithHeader, 1, 4, f);
	ofst << "  compressedStreamSizeWithHeader: " << sd.compressedStreamSizeWithHeader << "\n";

	bool bComp;// ? если 0 идет какая - то неизвестная фигня вместо сжатого блока
	iSizeBuff += fread(&bComp, 1, 1, f);
	ofst << "  compress: " << bComp << "\n";
	sd.uncompressedStreamSize;// (по умолчанию 16384 байт или 16 КБайт)
	iSizeBuff += fread(&sd.uncompressedStreamSize, 1, 4, f);
	ofst << "  uncompressedStreamSize: " << sd.uncompressedStreamSize << "\n";
	sd.iCount0;
	iSizeBuff += fread(&sd.iCount0, 1, 4, f);
	ofst << "  Count0: " << sd.iCount0 << "\n";
	sd.iCount1;
	iSizeBuff += fread(&sd.iCount1, 1, 4, f);
	ofst << "  Count1: " << sd.iCount1 << "\n";
	sd.iCount2;
	iSizeBuff += fread(&sd.iCount2, 1, 4, f);
	ofst << "  Count2: " << sd.iCount2 << "\n";
	sd.compressedStreamSize;
	iSizeBuff += fread(&sd.compressedStreamSize, 1, 4, f);
	ofst << "  compressedStreamSize: " << sd.compressedStreamSize << "\n";
	sd.iCount3;
	iSizeBuff += fread(&sd.iCount3, 1, 4, f);
	ofst << "  Count3: " << sd.iCount3 << "\n";
	sd.iCount4;
	iSizeBuff += fread(&sd.iCount4, 1, 4, f);
	ofst << "  Count4: " << sd.iCount4 << "\n";
	sd.iCount5;
	iSizeBuff += fread(&sd.iCount5, 1, 4, f);
	ofst << "  Count5: " << sd.iCount5 << "\n";

	return iSizeBuff;
};

Вроде все правильно и до разархивирования все работает.

Функция разархивирования:

int UncompressData(unsigned char* abSrc, int nLenSrc, unsigned char* abDst, int nLenDst)
{
	z_stream zInfo = { 0 };
	zInfo.total_in = zInfo.avail_in = nLenSrc;
	zInfo.total_out = zInfo.avail_out = nLenDst;
	zInfo.next_in = abSrc;
	zInfo.next_out = abDst;

	int nErr, nRet = -1;
	nErr = inflateInit(&zInfo);               // zlib function
	if (nErr == Z_OK) {
		nErr = inflate(&zInfo, Z_FINISH);     // zlib function
		if (nErr == Z_STREAM_END) {
			nRet = zInfo.total_out;
		}
	}
	inflateEnd(&zInfo);   // zlib function
	return(nRet); // -1 or len of output
}

Наверно не правильные размеры сжатого и разархивированного файлов передаю в функцию.


Сообщение отредактировал MaksSh: 06 August 2017 - 11:15





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных