![]() |
(PSX) Platform (RU) Русские версии жанра - Platform |
Реклама | |
Теги |
abe's, abe's oddysee, oddworld, oddworld: abe's oddysee, oddysee |
![]() |
|
Опции темы |
![]() |
#41 |
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,359
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Графики много не перерисовано, ещё и глюки с кнопками. А что хоть за формат тут такой? Нашёл только конвертер для ПК CAM>BMP и обратно, а вот про PS1 пишут что тут mdec. Нашёл только скрипт для питона, но что-то как-то не ясно.
Код:
""" Extract PlayStation MDEC bitstreams from an Oddworld PlayStation .CAM file (found in .LVL files) and converts those bitstreams to images with jPSXdec. The resulting images will need to be stitched together for form a full frame. Note that there is other data in .CAM files that this tool ignores. Usage: python cam2bs.py cam-file """ import sys, os, struct # Customize the jPSXdec command with quality and output options (see manual) JPSXDEC_COMMAND = "java -jar jpsxdec.jar -f {0} -static bs -dim {1}x{2}" class CamFramePiece: ''' One piece of a .CAM file frame. All pieces are 240 pixels high, and all but the last piece is 32 pixels wide. The last piece is 16 pixels wide. The piece format is simple: 4 bytes (little-endian): size of the bitstream data bitstream data ''' def __init__(self, iPiece, fileStream): self.iPiece = iPiece self.iFilePos = fileStream.tell() sbinPieceLen = fileStream.read(4) self.iPieceLen, = struct.unpack('i', sbinPieceLen) if self.iPieceLen <= 0: raise Exception('BAD: %s frame len <= 0' % self) self.bitstreamBytes = fileStream.read(self.iPieceLen) iMarker00, iMarker38 = struct.unpack('xxBB', self.bitstreamBytes[0:4]) if iMarker00 != 0x00 or iMarker38 != 0x38: raise Exception('BAD: %s missing 0x0038' % self) def savePiece(self, sSrcFile): if self.iPiece == 11: self.iWidth = 16 else: self.iWidth = 32 self.sFileName = '%s_%02d_%dx%d.bs' % (sSrcFile, self.iPiece, self.iWidth, 240) print 'Saving %s piece %d as %s' % (sSrcFile, self.iPiece, self.sFileName) with open(self.sFileName, 'wb') as f: f.write(self.bitstreamBytes) def decodePiece(self): print 'Converting %s to image with jPSXdec' % self.sFileName sCmd = JPSXDEC_COMMAND.format(self.sFileName, self.iWidth, 240) print sCmd os.system(sCmd) def __str__(self): return '#%d @%d: Len=%d' % (self.iPiece, self.iFilePos, self.iPieceLen) def __repr__(self): return self.__str__() class CamFile: ''' Oddworld .CAM file. Contains 12 separate images (CamFramePiece). When combined together, forms a 368x240 frame. The header is unknown, and there are quite a few bytes at the end of the file that are unknown. 8 bytes: unknown 4 bytes (big-endian): string "Bits" 4 bytes: unknown body (variable size): 12 frame pieces (see CamFramePiece) remaining (variable size): unknown ''' def __init__(self, sFile): print 'Extracting bitstream pieces from %s' % sFile with open(sFile, 'rb') as fileStream: self.sSrcFile = sFile self.lstPieces = [] fileStream.read(8) # unknown 8 bytes sBits = fileStream.read(4) if sBits != 'Bits': raise Exception(sBits+' != Bits') fileStream.read(4) # unknown 4 bytes for iPiece in xrange(12): self.lstPieces.append(CamFramePiece(iPiece, fileStream)) def saveBitstreams(self): for piece in self.lstPieces: piece.savePiece(self.sSrcFile) def decodeBitstreams(self): for piece in self.lstPieces: piece.decodePiece() print def printInfo(self): for piece in self.lstPieces: print piece def main(lstArgs): camFile = CamFile(lstArgs[0]) camFile.printInfo() print camFile.saveBitstreams() print camFile.decodeBitstreams() return 0 if __name__ == '__main__': sys.exit(main(sys.argv[1:])) |
![]() |
![]() |
Реклама | |
![]() |
![]() |
#42 |
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,359
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Исправил текстуры на поледних локациях, там где не были видны платформы.
|
![]() |
![]() |
Эти 3 пользователи сказали Спасибо DruchaPucha за это сообщение: |
![]() |
#43 |
PSX Planet Elite Supporter
![]() Регистрация: 25.11.2008
Адрес: BY, Minsk
Пол: Мужской
![]()
Сообщений: 2,778
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
DruchaPucha, так ты разобрался как в mdec (bs) перегонять? можно тогда во второй части вставить всю графику из ПК от Фаргуса
|
![]() |
![]() |
![]() |
#44 | |||||||||||||||
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,359
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Golden Leon полность перерисовали всю графику в Exodus, но там была PAL версия, да и самого дампа не было в сети http://rgdb.info/base/rus-00788 BS поддерживает Sony Movie Converter 3.1, но я что-то не смог открыть. Выше я скрипт для питона скинул, он в свзяке с jpsxdec работает, но я с этим питоном неочень дружен. |
|||||||||||||||
![]() |
![]() |
![]() |
#46 | |||||||||||||||
PSX Planet Elite Supporter
![]() Регистрация: 26.06.2014
Адрес: Санкт-Петербург
Пол: Мужской
![]()
Сообщений: 415
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
__________________
Terabox, скачка файла БЕЗ установки ПО: Перейти по ссылке>выполнить вход в Terabox через Google>"Сохранить в Terabox">"Все файлы">"Смотреть сейчас">"Скачать">"Продолжить скачивание">после скачки удалить файл со своего Terabox. Если не работают кнопки Terabox или т.п. ищем проблему в браузере (в некоторых случаях работает подмена .com на .app в ссылке). |
|||||||||||||||
![]() |
![]() |
![]() |
#47 | |||||||||||||||
Person Of The Community
![]() Регистрация: 05.11.2008
Пол: Мужской
![]()
Сообщений: 16
![]() |
|
|||||||||||||||
![]() |
![]() |
![]() |
#48 | |||||||||||||||
PSX Planet Elite Supporter
![]() Регистрация: 26.06.2014
Адрес: Санкт-Петербург
Пол: Мужской
![]()
Сообщений: 415
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
__________________
Terabox, скачка файла БЕЗ установки ПО: Перейти по ссылке>выполнить вход в Terabox через Google>"Сохранить в Terabox">"Все файлы">"Смотреть сейчас">"Скачать">"Продолжить скачивание">после скачки удалить файл со своего Terabox. Если не работают кнопки Terabox или т.п. ищем проблему в браузере (в некоторых случаях работает подмена .com на .app в ссылке). |
|||||||||||||||
![]() |
![]() |
Сказали спасибо NightRaven |
![]() |
#49 | |||||||||||||||
Person Of The Community
![]() Регистрация: 05.11.2008
Пол: Мужской
![]()
Сообщений: 16
![]() |
|
|||||||||||||||
![]() |
![]() |
Сказали спасибо Tricker42 |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Oddworld: Abe's Oddysee [SLUS-00190] | alan3107 | (PSX) Platform (U/C) | 9 | 03.10.2024 07:30 |
Oddworld: Abe's Oddysee [SLUS-00190] [Russian] [Kudos] | Vinlan | (PSX) Platform (RU) | 18 | 17.03.2022 05:57 |
[2 In 1] Oddworld: Abe's Oddysee & Exoddus [Russian] [Вектор] | BrotherFOX | SONY PlayStation Collector's Disk | 11 | 04.05.2021 22:55 |
Oddworld: Abe's Oddysee (Russian) | BrotherFOX | (PC) Action/Adventure | 6 | 06.03.2015 11:20 |