DjGiza
Продвинутые пользователи-
Публикации
1 266 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
5
Все публикации пользователя DjGiza
-
где спутанный пол? Какие загадки? Все руфицированы. Всё проходится. 96 ненужных текстур? В аудио везде есть сабы. Твой перевод видел, тоже дословный прям прям дословный и не в духе чата. Там юмор всего в пару местах, не надо придумывать там где нет юмора. Не много пропусков, те что пропущено, это специально пропущено. Ну да все твои переводы такого и хуже уровня делается за день. Не лукавь тут. Ты сильно врёшь во всех своих сообщениях почти и не краснеешь. Не буду тут уже ворошить это как ты врёшь своей же аудитории так покажи, мне никто не показывает, вот и нет правок) И как же ты быстро прошёл с русиком что непроходимые места поймал. Открою секрет, если ты запустил свой сейв, конечно не будет работать, ибо у игры часть данных текста сохраняется в сейв файл.
-
с чего ты взял что не связан? Это знакомый. Это как бы так задумано. Если ты про клаву, то интерфейс делал смотря на свой смартфон. У меня в лкавише не написано на русском. Это не такой уж важный элемент. Не все. Ибо я не художник. но все важные сделаны. А те что не сделаны, они не важны на русском именно чтобы было надпись. Ибо о них говорят прям в чатах или текстах. Игру прошёл кто не знает английский. Ему было всё понятно почти без подсказок.
-
уже 3? ладно два я понял, а 3 какой? не насолить. Я просто сначала как писал из чистого интереса что там сложного как ты описал учитывая что ты всё делаешь с ии, а не сам. Я ещё шутканул по этому поводу. Но тебя это задело и сам сказал что же не сделал. Вот сделал. Если бы не написал, то наверное и не сделал бы. Просто в твоём посте много воды было. сделано хорошо, а не на отъебись
-
Русификатор (и не понадобилось даже недели xD) Русификатор SIMULACRA (Steam\Windows) - mastertranslate | Boosty проходится на все 100%(все загадки адаптированы под руссий), люди уже прошли. Но если будет косяки пишите, поправлю. @SerGEAnt
-
Ну можешь думать так, не запрещаю
-
Никто не просил и не знал про игру) Мои переводы ни один не закрыть под пейволом
-
Решил глянуть ради интереса, так сказать профициональный интерес. шифровка? пф… легкотня учитывая что ява декомпилируется легко. Посмотреть код и написать свой не составить сложности. Шифровка Key=MD5(name.getBytes("UTF-8")) т.е. для такого это почти что стандартно. Ещё есть unlockKey, это для получение SHA-1 хеши. Ну т.е. в коде всё есть, либо скармливать этот код просто в яве, либо написать аналог на пайтоне. Про клавиатуру: Код игры декомпилируется и компилируется, делай с игрой что хочешь. Хоть перепиши игру. Дальше там ещё текстуры есть и прощее, который така же есть в коде чтобы понять как работают. Про всё даже месяца не понадобилось. А учитывая что делался перевод с ии, то ещё быстрее.
-
а я не понимаю таких как ты. Где я говорил что игра срань? Я говорил про техническую реализацию.
-
Не появится
-
кто нибудь да сделает. Игра хуйня для перевода. Разрабы за пару лет так и не перевели на другой язык, оставили только англ. Причина просто, они изначально не думали даже переводить и делали игры на ляп тяп вставив тексты всюду отдельно. По тому что видел их разработку, у них даже у самих нет единой базы текста.
-
Metal Gear Solid HD Collection (PS Vita)
DjGiza ответил в тему пользователя mazinilya1999 в Русификаторы
Ну удачи -
Увеличение длины текста для Shellshock 2: Blood Trails
DjGiza ответил в тему пользователя Original_Death в Вскрытие игровых ресурсов
//------------------------------------------------ //--- 010 Editor Binary Template // // File: Asura_TXTH.bt // Authors: Giza+AI // Description: Asura Engine Text Resource (.ASRBE / .ASR / TXTH chunk) // File Mask: *.ASRBE,*.asr,*.bin // ID Bytes: 41 73 75 72 61 20 20 20 54 58 54 48 // "Asura TXTH" //------------------------------------------------ BigEndian(); // ------------------------------------------------ // Header Definition (36 bytes / 0x24) // ------------------------------------------------ struct HEADER { char magic[8] <comment="Engine signature: 'Asura '">; char chunkType[4] <comment="Chunk signature: 'TXTH' (Text Header)">; uint32 chunkSize <comment="Total size of remaining chunk payload (FileSize - 24)">; uint32 version <comment="Structure version (typically 1)">; uint32 flags <comment="Resource flags">; uint32 entryCount <comment="Number of localized string entries">; uint32 archiveHash <format=hex, comment="Archive/File 32-bit Hash ID">; uint32 totalTextBytes <comment="Total raw byte size of all UTF-16 text data">; } header <style=sHeading1>; // ------------------------------------------------ // Localized Text Entry // ------------------------------------------------ typedef struct { uint32 keyHash <format=hex, comment="32-bit hash identifier for the key name">; uint32 charCount <comment="String length in UTF-16 characters (including null terminator)">; wchar_t text[charCount] <comment="UTF-16BE encoded text">; // 4-byte padding alignment local int textBytes = charCount * 2; if ((textBytes % 4) != 0) { ubyte padding[4 - (textBytes % 4)] <comment="Alignment padding">; } } TEXT_ENTRY <read=ReadTextEntry>; wstring ReadTextEntry(TEXT_ENTRY &entry) { return entry.text; } // ------------------------------------------------ // Text Entries Table // ------------------------------------------------ struct TEXT_ENTRIES { TEXT_ENTRY entries[header.entryCount] <optimize=false>; } textEntries <style=sSection1>; // ------------------------------------------------ // Key Names Table (ASCII / null-delimited) // ------------------------------------------------ typedef struct { string keyName <comment="Identifier key corresponding 1-to-1 with entry index">; } KEY_ENTRY <read=ReadKeyEntry>; string ReadKeyEntry(KEY_ENTRY &k) { return k.keyName; } struct KEY_TABLE { uint32 keyTableSize <comment="Total size in bytes of raw string table">; KEY_ENTRY keys[header.entryCount] <optimize=false>; // Remaining alignment padding to EOF (aligned to 16 bytes) if (!FEof()) { ubyte filePadding[FileSize() - FTell()] <comment="End-of-file padding">; } } keyTable <style=sSection2>; на основе этого ии написал пайтон скрипт: #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Asura Engine TXTH (.ASRBE) Text Exporter & Importer Supports Big-Endian Asura text archives (PS3 / Xbox 360). """ import sys import os import struct import json import argparse def export_asrbe(file_path, output_path=None): if output_path is None: output_path = os.path.splitext(file_path)[0] + ".json" with open(file_path, "rb") as f: data = f.read() if len(data) < 36: raise ValueError("File is too small to be a valid ASRBE file.") magic = data[:8].decode("latin1") chunk_type = data[8:12].decode("latin1") if magic != "Asura " or chunk_type != "TXTH": raise ValueError(f"Invalid header signature: {magic!r} / {chunk_type!r}") chunk_size, version, flags, entry_count, archive_hash, total_text_bytes = struct.unpack(">IIIIII", data[12:36]) offset = 36 entries_data = [] for i in range(entry_count): key_hash, char_count = struct.unpack(">II", data[offset:offset+8]) offset += 8 text_raw = data[offset:offset + char_count * 2] text = text_raw.decode("utf-16-be").rstrip("\x00") offset += char_count * 2 # 4-byte padding alignment if offset % 4 != 0: offset += 4 - (offset % 4) entries_data.append({ "key_hash": f"0x{key_hash:08X}", "raw_hash": key_hash, "text": text }) # Read Key Table key_table_size = struct.unpack(">I", data[offset:offset+4])[0] offset += 4 keys_raw = data[offset:offset + key_table_size] # Split null-delimited keys key_names = [k.decode("latin1") for k in keys_raw.split(b"\x00") if k] # Combine keys and entries output_entries = [] for i in range(entry_count): k_name = key_names[i] if i < len(key_names) else f"UNKNOWN_KEY_{i}" output_entries.append({ "index": i, "key": k_name, "key_hash": entries_data[i]["key_hash"], "text": entries_data[i]["text"] }) meta = { "format": "Asura_TXTH", "endian": "big", "version": version, "flags": flags, "archive_hash": f"0x{archive_hash:08X}", "raw_archive_hash": archive_hash, "entry_count": entry_count, "entries": output_entries } with open(output_path, "w", encoding="utf-8") as f: json.dump(meta, f, ensure_ascii=False, indent=2) print(f"[+] Successfully exported {entry_count} entries to {output_path}") def import_asrbe(json_path, output_path): with open(json_path, "r", encoding="utf-8") as f: meta = json.load(f) entries = meta["entries"] entry_count = len(entries) version = meta.get("version", 1) flags = meta.get("flags", 0) archive_hash = meta.get("raw_archive_hash") if archive_hash is None: archive_hash = int(meta["archive_hash"], 16) # Build text entries block text_entries_bytes = bytearray() total_text_bytes = 0 for entry in entries: raw_hash = entry.get("raw_hash") if raw_hash is None: raw_hash = int(entry["key_hash"], 16) text = entry["text"] + "\x00" # include null terminator text_utf16 = text.encode("utf-16-be") char_count = len(text) entry_bytes = bytearray() entry_bytes.extend(struct.pack(">II", raw_hash, char_count)) entry_bytes.extend(text_utf16) # 4-byte padding text_len = len(text_utf16) total_text_bytes += text_len if len(entry_bytes) % 4 != 0: pad_len = 4 - (len(entry_bytes) % 4) entry_bytes.extend(b"\x00" * pad_len) text_entries_bytes.extend(entry_bytes) # Build keys table keys_raw = bytearray() for entry in entries: keys_raw.extend(entry["key"].encode("latin1")) keys_raw.append(0) # null terminator key_table_bytes = bytearray() key_table_bytes.extend(struct.pack(">I", len(keys_raw))) key_table_bytes.extend(keys_raw) # Payload = text entries + key table payload = text_entries_bytes + key_table_bytes # Pad payload to 16 bytes alignment pad_rem = len(payload) % 16 if pad_rem != 0: payload.extend(b"\x00" * (16 - pad_rem)) # Total chunk size = total file size - 24 # Header is 36 bytes -> header[24:] is 12 bytes + payload chunk_size = 12 + len(payload) header = bytearray() header.extend(b"Asura ") header.extend(b"TXTH") header.extend(struct.pack(">IIIIII", chunk_size, version, flags, entry_count, archive_hash, total_text_bytes)) full_data = header + payload with open(output_path, "wb") as f: f.write(full_data) print(f"[+] Successfully packed {entry_count} entries to {output_path} ({len(full_data)} bytes)") def main(): parser = argparse.ArgumentParser(description="Asura Engine TXTH (.ASRBE) Converter") subparsers = parser.add_subparsers(dest="command", required=True) # Export p_export = subparsers.add_parser("export", help="Export .ASRBE to .json") p_export.add_argument("input_file", help="Path to input .ASRBE file") p_export.add_argument("-o", "--output", help="Path to output .json file") # Import p_import = subparsers.add_parser("import", help="Import .json back to .ASRBE") p_import.add_argument("input_json", help="Path to input .json file") p_import.add_argument("output_file", help="Path to output .ASRBE file") args = parser.parse_args() if args.command == "export": export_asrbe(args.input_file, args.output) elif args.command == "import": import_asrbe(args.input_json, args.output_file) if __name__ == "__main__": main()- 3 ответа
-
- 1
-
-
Увеличение длины текста для Shellshock 2: Blood Trails
DjGiza ответил в тему пользователя Original_Death в Вскрытие игровых ресурсов
в 0xC размер блока указана. Скрипт видимо его не меняет у вас. Отсчёт начинается с 0x18, не скажу что прям во всех файлах. Но то что скинули так. -
Metal Gear Solid HD Collection (PS Vita)
DjGiza ответил в тему пользователя mazinilya1999 в Русификаторы
извини конечно, но ты основной архив псп не смог распаковать, а говоришь про перевод сделашь. Это как? -
GameResX — распаковка и локализация игровых ресурсов
DjGiza ответил в тему пользователя ChrisNWO в Вскрытие игровых ресурсов
Если бы там было что-то, там тоже самое что прога выдала по ним ничего не написать) -
GameResX — распаковка и локализация игровых ресурсов
DjGiza ответил в тему пользователя ChrisNWO в Вскрытие игровых ресурсов
предлагает типа запустить grx с командой, но саму команду ни выделить, ни скопировать. Т.е. предлагает вручную прописывать и открывать консоль, что уже сложность прибавляет. 5. Текст на юнити: предлагает использовать grx external чтобы открыть во внешней программе и скрипт который ничего хорошего не предложил. Да и запуск во внешней программе не предложил, хотя казалось бы, но это надо искать пользователю самому и открывать. Т.е. всё время предлагает самому открывать и делать что-то. Какой в этом тогда смысл? Зачем uabea когда есть unitypy например и можно было внедрить тупо его в интерфейс. 6. лабортория нашёл сигнатуру mp3 типа, но там и близко такого нет, в итоге он ничего не хочет делать. Выделение ничего не делает, как работать вообще не ясно. Написали проверьте шрифты. А как? В самой проге ничего такого не увидел. В целом как будто ИИ всё это делал, как и тексты писал ИИ(это очень видно т.к. есть странные формулировки) -
GameResX — распаковка и локализация игровых ресурсов
DjGiza ответил в тему пользователя ChrisNWO в Вскрытие игровых ресурсов
хотел протестировать, но: 1. консоль такой ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ зачем в консоле на русском писать, оно много где ломается) Ну или укажи чтобы сразу использовал нужную кодировку. 2. Сразу же упал в тестовом файле, а grx выдал бред. Формат не такой уж и сложный был, просто типа отсчёт начинается с место оффсета до текста, в другом случае оффсет начинается считаться именно с текста поэтому прога его не нашла, ещё другой случай оффсеты в разных местах, но логика присутствует(но это отдельный случай). если 2 это специфика всякое. То вот в одно ± нашёл оффсеты правильно, но дальше что? В программе открылся, а текстов нет. А так же конечно же он нашёл оффсеты, но вот особенности которые перед этим оффсетом есть конечно же не учёл. Т.е. там был размер всех текстов блока. Если их не учесть, то игра падает. А сделать такое автоматический только писать отдельно скрипты, что равно написанию своей проги уже. Создание форматов похож на прогу из серии игр Kuro no Kiseki, впрочем это не так уж плохо. -
«Добро пожаловать в Гильдию искателей!» - это дедуктивная логическая головоломка, в которой вам предстоит восстановить учётные записи отрядов гильдии, отмечающей 1000 дней со дня своего основания. Вглядываясь в события минувших 1000 дней, выясните, к какому из 20 отрядов принадлежал каждый из 78 авантюристов, определите их истинные классы и с помощью дедукции раскройте, какая судьба постигла каждого из них! Что ж... Счастливого пути! Скачать русификатор: Русификатор ギルド探求団へようこそ!(Welcome To The Guild Explorers) (Steam) - mastertranslate | Boosty
-
а почему я должен? это не ко мне. Хотя я могу глянуть, но мне пока лень. Ну чел реально потерялся, где он хз. Может на СВО попал, а может что похуже
-
а как был не отредактированный таким и остался)
-
Да нет, лучший перевод. Мне лень скрины делать. Все шутки на месте.
-
Метки: Симулятор свиданий, Визуальная новелла Платформы: PC Разработчик: 土豆花制作组 Издатель: 土豆花制作组 Дата выхода: 16 июл. 2026 г. Отзывы Steam: 690 отзывов, 92,52% положительных В визуальной новелле «Вечность, звёзды и повседневность» (Eternity, Stars, and Everyday Life) вы играете за Линь Сяоцоу, обычного офисного сотрудника, чья жизнь переворачивается с ног на голову, когда к нему неожиданно подселяются две девушки из другого мира. Сможете ли вы среди беззаботных и радостных будней найти то самое особенное счастье для каждого? Скачать русификатор: Русификатор Our Brief Eternity (Steam) - mastertranslate | Boosty
-
The Ratchet & Clank Trilogy (HD Collection)
DjGiza ответил в тему пользователя AlexLAN в Русификаторы
Да это с самого начала было понятно, просто хочу тоже вот увидеть его работы и норм ответ, а несвязанные вопрос на вопрос) -
The Ratchet & Clank Trilogy (HD Collection)
DjGiza ответил в тему пользователя AlexLAN в Русификаторы
Гугли что сделал. Как минимум ты пользуешься софтом который я в том числе писал -
The Ratchet & Clank Trilogy (HD Collection)
DjGiza ответил в тему пользователя AlexLAN в Русификаторы
Дурака включил?) Диплом как раз таки защищать надо тебе, а не нам Только в твоей маньямирке озвучил видать. Делается если умеешь Это как раз значит что ты не пишешь. Если пишешь покажи свои проекты