(https://i.imgur.com/36xOiSm.jpg)
Nome Original: Akumajou Dracula X: Gekka no Yasoukyoku
Nome Traduzido (Japonês): Castlevania Dracula X: Noturno ao Luar
Nome Traduzido (Inglês): Castlevania Dracula X: Sinfonia ao Luar
Plataforma: Sega Saturn
Gênero: Metroidvania, RPG eletrônico de ação, Jogo eletrônico de ação e aventura
Data de lançamento inicial: 25 de Junho de 1998
Série: Castlevania
Estúdio: KCEN
Desenvolvedores: KONAMI
Tradutor: Rafael Silva
TÓPICO MOVIDO PARA LANÇAMENTOS
a versão do saturn n sabia que tinha projeto, pessoal anda fazendo projetos secretos ai rsrs, mas muito legal hein? entra lá no chat rhbr pra conversar com o pessoal, tem vários que entendem de compressão lzss (não sei se do saturn estão familiarizados) mas deve ser bem parecido.
Citação de: ajkmetiuk online Maio 16, 2021, 23:32:20 PM
a versão do saturn n sabia que tinha projeto, pessoal anda fazendo projetos secretos ai rsrs, mas muito legal hein? entra lá no chat rhbr pra conversar com o pessoal, tem vários que entendem de compressão lzss (não sei se do saturn estão familiarizados) mas deve ser bem parecido.
Eu coloquei o código do meu discord lá e apareceu aguardando aprovação do bot, mas não aconteceu nada no discord e eu não uso muito ele, então não entendo quase nada.
Provavelmente é uma variação das LZKN encontradas no Mega Drive.
Tentei ler sua explicação, mas talvez por falta de conhecimento seu na área, não faz sentido algum da forma como você colocou.
Vou tentar facilitar pra você explicar melhor a compressão:
1 - LZ trabalha com um par de BYTE, comumente chamados de WORD, ou 16 bits.
2 - O tamanho da cadeia é definido nesse par em bits, sendo X bits pro tamanho e Y bits pro offset no buffer.
Ou seja se você tem a word $FF00 por exemplo:
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
\________/\___________________/
tamanho offset
O tamanho do MÁXIMO DA JANELA LZ pelo que você indicou é 0x800
Agora resta só você indicar quantos bits são para o tamanho e quantos bits são para o offset.
Citação de: Anime_World online Maio 17, 2021, 05:02:54 AM
Se não descomprimir com as PRS Tools, provavelmente é uma variação das LZKN encontradas no Mega Drive.
Tentei ler sua explicação, mas talvez por falta de conhecimento seu na área, não faz sentido algum da forma como você colocou.
Vou tentar facilitar pra você explicar melhor a compressão:
1 - LZ trabalha com um par de BYTE, comumente chamados de WORD, ou 16 bits.
2 - O tamanho da cadeia é definido nesse par em bits, sendo X bits pro tamanho e Y bits pro offset no buffer.
Ou seja se você tem a word $FF00 por exemplo:
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
\________/\___________________/
tamanho offset
O tamanho do MÁXIMO DA JANELA LZ pelo que você indicou é 0x800
Agora resta só você indicar quantos bits são para o tamanho e quantos bits são para o offset.
Desculpa eu quis simplificar já que é parecido com lzss.
vou colocar a informação completa hoje a noite, mas o esquema é diferente desse citado, o índice é 1 byte seguido de 8 valores que podem ser 1 ou 2 bytes cada valor, enfim mais tarde coloco o arquivo com a informação completa da compressão, sou leigo em programação mas dá pra explicar tudo sim já que eu consigo manipular manualmente.
Citação de: Mistura_De_Bits online Maio 17, 2021, 17:30:09 PM
Desculpa eu quis simplificar já que é parecido com lzss.
vou colocar a informação completa hoje a noite, mas o esquema é diferente desse citado, o índice é 1 byte seguido de 8 valores que podem ser 1 ou 2 bytes cada valor, enfim mais tarde coloco o arquivo com a informação completa da compressão, sou leigo em programação mas dá pra explicar tudo sim já que eu consigo manipular manualmente.
Conversando com o denim hoje, analisamos por cima, realmente é uma variação da LZKN3 que eu usei no Castlevania Bloodlines.
Portanto são 13 bits para o offset e 5 bits para o tamanho. O que me deixa preocupado agora é se tem as exceções para executar diferentes tarefas dentro da compressão.
Quanto a sua explicação, você explicou em digitos e não em bits. Por isso tem que fazer aquele calculo maluco pro 3 e 4 digito. Se usar em bits não precisa.
O calculo correto fica assim para o par LZ 0x7E36
01111110 00110110
\_______________/
par LZ
01111110 001 10110
\__________/ \___/
ponteiro tamanho
os 3 ultimos bits do ponteiro por estarem
no segundo byte passam para o começo
001 01111110 = 0x17E
e o tamanho soma 3 que é o tamanho minímo da cadeia
10110 = 22
22+3 = 25
portanto,
ponteiro: 0x17E
tamanho: 25
pra calcular mais rapidamente pode usar essa formula:
w16 = 0x7e36
ponteiro = ((w16 &0xE0) << 3) | (w16 >> 8)
tamanho = (w16 &0x1F) + 3
funciona em qualquer linguagem, mas aqui tem uma calculadora em python:
https://www.online-python.com/K4TbnY52Dl
Citação de: Anime_World online Maio 17, 2021, 18:35:29 PM
Citação de: Mistura_De_Bits online Maio 17, 2021, 17:30:09 PM
Desculpa eu quis simplificar já que é parecido com lzss.
vou colocar a informação completa hoje a noite, mas o esquema é diferente desse citado, o índice é 1 byte seguido de 8 valores que podem ser 1 ou 2 bytes cada valor, enfim mais tarde coloco o arquivo com a informação completa da compressão, sou leigo em programação mas dá pra explicar tudo sim já que eu consigo manipular manualmente.
Conversando com o denim hoje, analisamos por cima, realmente é uma variação da LZKN3 que eu usei no Castlevania Bloodlines.
Portanto são 13 bits para o offset e 5 bits para o tamanho. O que me deixa preocupado agora é se tem as exceções para executar diferentes tarefas dentro da compressão.
Quanto a sua explicação, você explicou em digitos e não em bits. Por isso tem que fazer aquele calculo maluco pro 3 e 4 digito. Se usar em bits não precisa.
O calculo correto fica assim para o par LZ 0x7E36
01111110 00110110
\_______________/
par LZ
01111110 001 10110
\__________/ \___/
ponteiro tamanho
os 3 ultimos bits do ponteiro por estarem
no segundo byte passam para o começo
001 01111110 = 0x17E
e o tamanho soma 3 que é o tamanho minímo da cadeia
10110 = 22
22+3 = 25
portanto,
ponteiro: 0x17E
tamanho: 25
pra calcular mais rapidamente pode usar essa formula:
w16 = 0x7e36
ponteiro = ((w16 &0xE0) << 3) | (w16 >> 8)
tamanho = (w16 &0x1F) + 3
funciona em qualquer linguagem, mas aqui tem uma calculadora em python:
https://www.online-python.com/K4TbnY52Dl
Eu fiz uma explicação detalhada, pra começar eu escrevi errado, são só 0x400 de cache.
A compressão usa um cache de 0x400 mas ela começa a escrever
nesse cache no endereço 3DE.
Para começar temos um índice de 2 nibbles que é lido de trás pra frente em
binário.
No valor binário, 1 indica leitura e gravação direta de um byte
já o 0 indica que há uma compressão formada por 4 Nibbles
Exemplo:
61 00 DE 7F 00 1F 22 1F 3E 18 01 11 5E 08
61=0110 0001
Onde os bytes em parenteses são compressão.
00 (DE 7F) (00 1F) (22 1F) (3E 18) 01 11 (5E 08)
Como funciona a compressão
Neste mesmo exemplo começamos com o valor 00 que será escrito no endereço
inicial do cache "3DE", logo após vem um valor de compressão (DE 7F), onde
os 3 primeiros Nibbles são o endereço e os dois últimos são a quantidade
de bytes a ser lida.
O terceiro nibble "7" será jogado para o começo, ele deve ser
sempre um caractere par e deve ser dividido por 2, o que sobrar
é jogado para a quantidade de bytes a ser lido+3
Sendo assim:
(DE 7f)
(7 DE)(F+3) -> jogamos o 7 para o começo
(6DE) (1F+3) -> tiramos 1 do 7 e juntamos com o F+3
(3DE) (22) -> dividimos o 6 por 2 e somamos o 1F+3.
Sendo assim temos uma leitura de 34 bytes no endereço 0x3DE, porém como só
existe o valor 00 a partir deste endereço por enquanto, esse valor será
repetido até chegar a quantidade pedida.
Depois teremos mais duas escritas de 34 zeros e uma de 27 até chegar nos valores sem compressão "01 11", se tudo der certo esse "01 11" deve começar no endereço do cache 0x60.
O que eu preciso é de uma tool pra fazer isso sozinha.
Citação de: Mistura_De_Bits online Maio 17, 2021, 19:47:37 PM
Eu fiz uma explicação detalhada, pra começar eu escrevi errado, são só 0x400 de cache.
A compressão usa um cache de 0x400 mas ela começa a escrever
nesse cache no endereço 3DE.
Para começar temos um índice de 2 nibbles que é lido de trás pra frente em
binário.
No valor binário, 1 indica leitura e gravação direta de um byte
já o 0 indica que há uma compressão formada por 4 Nibbles
Exemplo:
61 00 DE 7F 00 1F 22 1F 3E 18 01 11 5E 08
61=0110 0001
Onde os bytes em parenteses são compressão.
00 (DE 7F) (00 1F) (22 1F) (3E 18) 01 11 (5E 08)
Como funciona a compressão
Neste mesmo exemplo começamos com o valor 00 que será escrito no endereço
inicial do cache "3DE", logo após vem um valor de compressão (DE 7F), onde
os 3 primeiros Nibbles são o endereço e os dois últimos são a quantidade
de bytes a ser lida.
O terceiro nibble "7" será jogado para o começo, ele deve ser
sempre um caractere par e deve ser dividido por 2, o que sobrar
é jogado para a quantidade de bytes a ser lido+3
Sendo assim:
(DE 7f)
(7 DE)(F+3) -> jogamos o 7 para o começo
(6DE) (1F+3) -> tiramos 1 do 7 e juntamos com o F+3
(3DE) (22) -> dividimos o 6 por 2 e somamos o 1F+3.
Sendo assim temos uma leitura de 34 bytes no endereço 0x3DE, porém como só
existe o valor 00 a partir deste endereço por enquanto, esse valor será
repetido até chegar a quantidade pedida.
Depois teremos mais duas escritas de 34 zeros e uma de 27 até chegar nos valores sem compressão "01 11", se tudo der certo esse "01 11" deve começar no endereço do cache 0x60.
O que eu preciso é de uma tool pra fazer isso sozinha.
Continua errada sua explicação. O indíce ao qual você se refere é lido em bits e não em nibbles, sendo cada bit uma flag que indica se há ou não compressão no byte. E como já mencionei o par LZ não é lido em nibbles e sim em bits, por ler em nibbles você precisou criar aquela tabela de correção.
Quanto ao cache da janela é o mesmo da LZKN3 bem como o offset de início da janela.
Suspeito ainda que haja um controle para diferentes modos de escrita da janela, na LZKN1 e LZKN3 são 4 modos: ponteiro, ponteiro relativo ao final da janela, copia de x bytes direta e byte sem compressão.
Como é de costume a produtora reaproveitar rotinas, dúvido que fuja à regra.
Outro detalhe, não sei se você cortou o arquivo mas é comum ter 2 bytes (1 word) com o tamanho do arquivo decomprimido antes do 0x61
------
Bom, o programa está pronto... supondo que existam os 2 bytes iniciais com o tamanho no inicio do arquivo.
import os
import sys
import io
import struct
import argparse
import textwrap
from os import SEEK_SET, SEEK_CUR, SEEK_END
class RingBuffer:
MAX_WINDOW_SIZE = 0
CURSOR = 0
def __init__(self, max_window_size=0x1024, start_offset=0, fill_byte=0x0):
self.MAX_WINDOW_SIZE = max_window_size
self.CURSOR = start_offset
self._buffer = bytearray([fill_byte]*self.MAX_WINDOW_SIZE)
def append(self, byte):
self._buffer[self.CURSOR] = byte
self.CURSOR=(self.CURSOR+1)%self.MAX_WINDOW_SIZE
def get(self, offset):
return self._buffer[offset%self.MAX_WINDOW_SIZE]
class ROM(io.BytesIO):
"""
Class to manipulate generic ROM files
"""
CURSOR = 0
SIZE = 0
def __init__(self, filename):
try:
self.raw = open(filename, 'rb').read()
except FileNotFoundError:
print('[ERROR] Unable to found file')
exit(0)
super(ROM, self).__init__(self.raw)
self.SIZE = len(self.raw)
def read_8(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>B',self.read(1))[0]
self.CURSOR+=1
return readed
def read_16(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>H',self.read(2))[0]
self.CURSOR+=2
return readed
def read_32(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>I',self.read(4))[0]
self.CURSOR+=4
return readed
def set_offset(self, offset=0):
self.CURSOR=offset
self.seek(self.CURSOR, SEEK_SET)
def get_offset(self):
return self.tell()
class LZKN4:
_buffer = bytearray()
def __init__(self, input_data):
self.DATA = input_data
def append(self, value):
self._buffer.append(value)
self._window.append(value)
return 1
def append_from_data(self, length=0):
count=0
for i in range(length):
tmp = self.DATA.read_8()
count += self.append(tmp)
return count
def append_from_window(self, length=0, offset=0):
count = 0
for i in range(length):
tmp = self._window.get(offset+i)
count += self.append(tmp)
return count
def decompress(self, offset=0):
self._window = RingBuffer(0x400, 0x3DE)
self._buffer = bytearray()
uncompressed_size = self.DATA.read_16()
_decoded = 0
while (_decoded < uncompressed_size):
control = self.DATA.read_8()
for readed_bits in range(8):
bit = bool((control >> readed_bits) &0x1)
if not bit:
_readed = self.DATA.read_16()
length = (_readed &0x1F) + 3
offset = ((_readed &0xE0) << 3) | (_readed >> 8)
_decoded += self.append_from_window(length, offset)
else:
_readed = self.DATA.read_8()
_decoded += self.append(_readed)
return self._buffer
class Application(argparse.ArgumentParser):
title = '''
[Saturn] Castlevania SOTN - Decompressor
---------------------------------------------------------
Tool to decompress graphics from:
[SATURN] Castlevania - Symphony of the Night (US)
[SATURN] Akumajou Dracula X: Gekka no Yasoukyoku (JP)
'''
argument_list = [
{
'name' : 'input',
'nargs' : '?',
'type' : argparse.FileType('rb'),
'default' : sys.stdin,
'help' : 'Compressed File (.bin)'
}
]
def __init__(self):
super(Application, self).__init__()
self.formatter_class=argparse.RawDescriptionHelpFormatter
self.description=textwrap.dedent(self.title)
for argument in self.argument_list:
self.add_argument(
argument['name'],
nargs=argument['nargs'],
type=argument['type'],
default=argument['default'],
help=argument['help']
)
args = self.parse_args()
if args.input.name != '<stdin>':
binary = ROM(args.input.name)
lzkn = LZKN4(binary)
data = lzkn.decompress(binary)
try:
os.stat('output/')
except:
os.mkdir('output/')
out = open("output/"+args.input.name, 'wb')
out.write(data)
out.close()
else:
self.print_help()
if __name__=="__main__":
app = Application()
Citação de: Anime_World online Maio 17, 2021, 20:38:37 PM
Citação de: Mistura_De_Bits online Maio 17, 2021, 19:47:37 PM
Eu fiz uma explicação detalhada, pra começar eu escrevi errado, são só 0x400 de cache.
A compressão usa um cache de 0x400 mas ela começa a escrever
nesse cache no endereço 3DE.
Para começar temos um índice de 2 nibbles que é lido de trás pra frente em
binário.
No valor binário, 1 indica leitura e gravação direta de um byte
já o 0 indica que há uma compressão formada por 4 Nibbles
Exemplo:
61 00 DE 7F 00 1F 22 1F 3E 18 01 11 5E 08
61=0110 0001
Onde os bytes em parenteses são compressão.
00 (DE 7F) (00 1F) (22 1F) (3E 18) 01 11 (5E 08)
Como funciona a compressão
Neste mesmo exemplo começamos com o valor 00 que será escrito no endereço
inicial do cache "3DE", logo após vem um valor de compressão (DE 7F), onde
os 3 primeiros Nibbles são o endereço e os dois últimos são a quantidade
de bytes a ser lida.
O terceiro nibble "7" será jogado para o começo, ele deve ser
sempre um caractere par e deve ser dividido por 2, o que sobrar
é jogado para a quantidade de bytes a ser lido+3
Sendo assim:
(DE 7f)
(7 DE)(F+3) -> jogamos o 7 para o começo
(6DE) (1F+3) -> tiramos 1 do 7 e juntamos com o F+3
(3DE) (22) -> dividimos o 6 por 2 e somamos o 1F+3.
Sendo assim temos uma leitura de 34 bytes no endereço 0x3DE, porém como só
existe o valor 00 a partir deste endereço por enquanto, esse valor será
repetido até chegar a quantidade pedida.
Depois teremos mais duas escritas de 34 zeros e uma de 27 até chegar nos valores sem compressão "01 11", se tudo der certo esse "01 11" deve começar no endereço do cache 0x60.
O que eu preciso é de uma tool pra fazer isso sozinha.
Continua errada sua explicação. O indíce ao qual você se refere é lido em bits e não em nibbles, sendo cada bit uma flag que indica se há ou não compressão no byte. E como já mencionei o par LZ não é lido em nibbles e sim em bits, por ler em nibbles você precisou criar aquela tabela de correção.
Quanto ao cache da janela é o mesmo da LZKN3 bem como o offset de início da janela.
Suspeito ainda que haja um controle para diferentes modos de escrita da janela, na LZKN1 e LZKN3 são 4 modos: ponteiro, ponteiro relativo ao final da janela, copia de x bytes direta e byte sem compressão.
Como é de costume a produtora reaproveitar rotinas, dúvido que fuja à regra.
Outro detalhe, não sei se você cortou o arquivo mas é comum ter 2 bytes (1 word) com o tamanho do arquivo decomprimido antes do 0x61
------
Bom, o programa está pronto... supondo que existam os 2 bytes iniciais com o tamanho no inicio do arquivo.
import os
import sys
import io
import struct
import argparse
import textwrap
from os import SEEK_SET, SEEK_CUR, SEEK_END
class RingBuffer:
MAX_WINDOW_SIZE = 0
CURSOR = 0
def __init__(self, max_window_size=0x1024, start_offset=0, fill_byte=0x0):
self.MAX_WINDOW_SIZE = max_window_size
self.CURSOR = start_offset
self._buffer = bytearray([fill_byte]*self.MAX_WINDOW_SIZE)
def append(self, byte):
self._buffer[self.CURSOR] = byte
self.CURSOR=(self.CURSOR+1)%self.MAX_WINDOW_SIZE
def get(self, offset):
return self._buffer[offset%self.MAX_WINDOW_SIZE]
class ROM(io.BytesIO):
"""
Class to manipulate generic ROM files
"""
CURSOR = 0
SIZE = 0
def __init__(self, filename):
try:
self.raw = open(filename, 'rb').read()
except FileNotFoundError:
print('[ERROR] Unable to found file')
exit(0)
super(ROM, self).__init__(self.raw)
self.SIZE = len(self.raw)
def read_8(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>B',self.read(1))[0]
self.CURSOR+=1
return readed
def read_16(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>H',self.read(2))[0]
self.CURSOR+=2
return readed
def read_32(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>I',self.read(4))[0]
self.CURSOR+=4
return readed
def set_offset(self, offset=0):
self.CURSOR=offset
self.seek(self.CURSOR, SEEK_SET)
def get_offset(self):
return self.tell()
class LZKN4:
_buffer = bytearray()
def __init__(self, input_data):
self.DATA = input_data
def append(self, value):
self._buffer.append(value)
self._window.append(value)
return 1
def append_from_data(self, length=0):
count=0
for i in range(length):
tmp = self.DATA.read_8()
count += self.append(tmp)
return count
def append_from_window(self, length=0, offset=0):
count = 0
for i in range(length):
tmp = self._window.get(offset+i)
count += self.append(tmp)
return count
def decompress(self, offset=0):
self._window = RingBuffer(0x400, 0x3DE)
self._buffer = bytearray()
uncompressed_size = self.DATA.read_16()
_decoded = 0
while (_decoded < uncompressed_size):
control = self.DATA.read_8()
for readed_bits in range(8):
bit = bool((control >> readed_bits) &0x1)
if not bit:
_readed = self.DATA.read_16()
length = (_readed &0x1F) + 3
offset = ((_readed &0xE0) << 3) | (_readed >> 8)
_decoded += self.append_from_window(length, offset)
else:
_readed = self.DATA.read_8()
_decoded += self.append(_readed)
return self._buffer
class Application(argparse.ArgumentParser):
title = '''
[Saturn] Castlevania SOTN - Decompressor
---------------------------------------------------------
Tool to decompress graphics from:
[SATURN] Castlevania - Symphony of the Night (US)
[SATURN] Akumajou Dracula X: Gekka no Yasoukyoku (JP)
'''
argument_list = [
{
'name' : 'input',
'nargs' : '?',
'type' : argparse.FileType('rb'),
'default' : sys.stdin,
'help' : 'Compressed File (.bin)'
}
]
def __init__(self):
super(Application, self).__init__()
self.formatter_class=argparse.RawDescriptionHelpFormatter
self.description=textwrap.dedent(self.title)
for argument in self.argument_list:
self.add_argument(
argument['name'],
nargs=argument['nargs'],
type=argument['type'],
default=argument['default'],
help=argument['help']
)
args = self.parse_args()
if args.input.name != '<stdin>':
binary = ROM(args.input.name)
lzkn = LZKN4(binary)
data = lzkn.decompress(binary)
try:
os.stat('output/')
except:
os.mkdir('output/')
out = open("output/"+args.input.name, 'wb')
out.write(data)
out.close()
else:
self.print_help()
if __name__=="__main__":
app = Application()
O tamanho compactado e extraído fica em outro local, não fica junto com o arquivo em si, obrigado pelo seu tempo e conhecimento, não entendo de programação, apesar de ter traduzido 99% do jogo eu uso programas de edição de imagem e editores hexa, encontro as programações pelo dump de memoria do yabause, eita emulador ruim, mas quebra um galho nessa parte.
Estou acompanhando a tradução pra inglês também, apesar de não ter curtido a fonte que ele usou pois só cabe os textos da versão americana, no meu método cabe os textos japoneses apesar de eu ter abreviado muitos com medo de não ter espaço no arquivo, agora já posso remover essas abreviações.
Citação de: Mistura_De_Bits online Maio 17, 2021, 21:43:45 PM
O tamanho compactado e extraído fica em outro local, não fica junto com o arquivo em si, obrigado pelo seu tempo e conhecimento, não entendo de programação, apesar de ter traduzido 99% do jogo eu uso programas de edição de imagem e editores hexa, encontro as programações pelo dump de memoria do yabause, eita emulador ruim, mas quebra um galho nessa parte.
Estou acompanhando a tradução pra inglês também, apesar de não ter curtido a fonte que ele usou pois só cabe os textos da versão americana, no meu método cabe os textos japoneses apesar de eu ter abreviado muitos com medo de não ter espaço no arquivo, agora já posso remover essas abreviações.
import os
import sys
import io
import struct
import argparse
import textwrap
from os import SEEK_SET, SEEK_CUR, SEEK_END
class RingBuffer:
MAX_WINDOW_SIZE = 0
CURSOR = 0
def __init__(self, max_window_size=0x1024, start_offset=0, fill_byte=0x0):
self.MAX_WINDOW_SIZE = max_window_size
self.CURSOR = start_offset
self._buffer = bytearray([fill_byte]*self.MAX_WINDOW_SIZE)
def append(self, byte):
self._buffer[self.CURSOR] = byte
self.CURSOR=(self.CURSOR+1)%self.MAX_WINDOW_SIZE
def get(self, offset):
return self._buffer[offset%self.MAX_WINDOW_SIZE]
class ROM(io.BytesIO):
"""
Class to manipulate generic ROM files
"""
CURSOR = 0
SIZE = 0
def __init__(self, filename):
try:
self.raw = open(filename, 'rb').read()
except FileNotFoundError:
print('[ERROR] Unable to found file')
exit(0)
super(ROM, self).__init__(self.raw)
self.SIZE = len(self.raw)
def read_8(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>B',self.read(1))[0]
self.CURSOR+=1
return readed
def read_16(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>H',self.read(2))[0]
self.CURSOR+=2
return readed
def read_32(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>I',self.read(4))[0]
self.CURSOR+=4
return readed
def set_offset(self, offset=0):
self.CURSOR=offset
self.seek(self.CURSOR, SEEK_SET)
def get_offset(self):
return self.tell()
class LZKN4:
_buffer = bytearray()
def __init__(self, input_data):
self.DATA = input_data
def append(self, value):
self._buffer.append(value)
self._window.append(value)
return 1
def append_from_data(self, length=0):
count=0
for i in range(length):
tmp = self.DATA.read_8()
count += self.append(tmp)
return count
def append_from_window(self, length=0, offset=0):
count = 0
for i in range(length):
tmp = self._window.get(offset+i)
count += self.append(tmp)
return count
def decompress(self, offset=0, size=0):
self._window = RingBuffer(0x400, 0x3DE)
self._buffer = bytearray()
uncompressed_size = size
_decoded = 0
while (_decoded < uncompressed_size):
control = self.DATA.read_8()
for readed_bits in range(8):
bit = bool((control >> readed_bits) &0x1)
if not bit:
_readed = self.DATA.read_16()
length = (_readed &0x1F) + 3
offset = ((_readed &0xE0) << 3) | (_readed >> 8)
_decoded += self.append_from_window(length, offset)
else:
_readed = self.DATA.read_8()
_decoded += self.append(_readed)
return self._buffer
class Application(argparse.ArgumentParser):
title = '''
[Saturn] Castlevania SOTN - Decompressor
---------------------------------------------------------
Tool to decompress graphics from:
[SATURN] Castlevania - Symphony of the Night (US)
[SATURN] Akumajou Dracula X: Gekka no Yasoukyoku (JP)
'''
argument_list = [
{
'name' : 'input',
'nargs' : '?',
'type' : argparse.FileType('rb'),
'default' : sys.stdin,
'help' : 'Compressed File (.bin)'
},
{
'name' : 'uncompressed_size',
'nargs' : '?',
'type' : lambda x: int(x, 0),
'default' : 0,
'help' : 'Uncompressed Size'
}
]
def __init__(self):
super(Application, self).__init__()
self.formatter_class=argparse.RawDescriptionHelpFormatter
self.description=textwrap.dedent(self.title)
for argument in self.argument_list:
self.add_argument(
argument['name'],
nargs=argument['nargs'],
type=argument['type'],
default=argument['default'],
help=argument['help']
)
args = self.parse_args()
if args.input.name != '<stdin>':
binary = ROM(args.input.name)
lzkn = LZKN4(binary)
data = lzkn.decompress(binary, args.uncompressed_size)
try:
os.stat('output/')
except:
os.mkdir('output/')
out = open("output/"+args.input.name, 'wb')
out.write(data)
out.close()
else:
self.print_help()
if __name__=="__main__":
app = Application()
Essa versão modifiquei pra passar o tamanho decomprimido na linha de comando
Salvar como decoder.py e rodar usando o Python 3
Comando:
python decoder.py arquivo.bin tamanho
Citação de: Anime_World online Maio 17, 2021, 21:48:58 PM
Citação de: Mistura_De_Bits online Maio 17, 2021, 21:43:45 PM
O tamanho compactado e extraído fica em outro local, não fica junto com o arquivo em si, obrigado pelo seu tempo e conhecimento, não entendo de programação, apesar de ter traduzido 99% do jogo eu uso programas de edição de imagem e editores hexa, encontro as programações pelo dump de memoria do yabause, eita emulador ruim, mas quebra um galho nessa parte.
Estou acompanhando a tradução pra inglês também, apesar de não ter curtido a fonte que ele usou pois só cabe os textos da versão americana, no meu método cabe os textos japoneses apesar de eu ter abreviado muitos com medo de não ter espaço no arquivo, agora já posso remover essas abreviações.
import os
import sys
import io
import struct
import argparse
import textwrap
from os import SEEK_SET, SEEK_CUR, SEEK_END
class RingBuffer:
MAX_WINDOW_SIZE = 0
CURSOR = 0
def __init__(self, max_window_size=0x1024, start_offset=0, fill_byte=0x0):
self.MAX_WINDOW_SIZE = max_window_size
self.CURSOR = start_offset
self._buffer = bytearray([fill_byte]*self.MAX_WINDOW_SIZE)
def append(self, byte):
self._buffer[self.CURSOR] = byte
self.CURSOR=(self.CURSOR+1)%self.MAX_WINDOW_SIZE
def get(self, offset):
return self._buffer[offset%self.MAX_WINDOW_SIZE]
class ROM(io.BytesIO):
"""
Class to manipulate generic ROM files
"""
CURSOR = 0
SIZE = 0
def __init__(self, filename):
try:
self.raw = open(filename, 'rb').read()
except FileNotFoundError:
print('[ERROR] Unable to found file')
exit(0)
super(ROM, self).__init__(self.raw)
self.SIZE = len(self.raw)
def read_8(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>B',self.read(1))[0]
self.CURSOR+=1
return readed
def read_16(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>H',self.read(2))[0]
self.CURSOR+=2
return readed
def read_32(self):
self.seek(self.CURSOR, SEEK_SET)
readed = struct.unpack('>I',self.read(4))[0]
self.CURSOR+=4
return readed
def set_offset(self, offset=0):
self.CURSOR=offset
self.seek(self.CURSOR, SEEK_SET)
def get_offset(self):
return self.tell()
class LZKN4:
_buffer = bytearray()
def __init__(self, input_data):
self.DATA = input_data
def append(self, value):
self._buffer.append(value)
self._window.append(value)
return 1
def append_from_data(self, length=0):
count=0
for i in range(length):
tmp = self.DATA.read_8()
count += self.append(tmp)
return count
def append_from_window(self, length=0, offset=0):
count = 0
for i in range(length):
tmp = self._window.get(offset+i)
count += self.append(tmp)
return count
def decompress(self, offset=0, size=0):
self._window = RingBuffer(0x400, 0x3DE)
self._buffer = bytearray()
uncompressed_size = size
_decoded = 0
while (_decoded < uncompressed_size):
control = self.DATA.read_8()
for readed_bits in range(8):
bit = bool((control >> readed_bits) &0x1)
if not bit:
_readed = self.DATA.read_16()
length = (_readed &0x1F) + 3
offset = ((_readed &0xE0) << 3) | (_readed >> 8)
_decoded += self.append_from_window(length, offset)
else:
_readed = self.DATA.read_8()
_decoded += self.append(_readed)
return self._buffer
class Application(argparse.ArgumentParser):
title = '''
[Saturn] Castlevania SOTN - Decompressor
---------------------------------------------------------
Tool to decompress graphics from:
[SATURN] Castlevania - Symphony of the Night (US)
[SATURN] Akumajou Dracula X: Gekka no Yasoukyoku (JP)
'''
argument_list = [
{
'name' : 'input',
'nargs' : '?',
'type' : argparse.FileType('rb'),
'default' : sys.stdin,
'help' : 'Compressed File (.bin)'
},
{
'name' : 'uncompressed_size',
'nargs' : '?',
'type' : lambda x: int(x, 0),
'default' : 0,
'help' : 'Uncompressed Size'
}
]
def __init__(self):
super(Application, self).__init__()
self.formatter_class=argparse.RawDescriptionHelpFormatter
self.description=textwrap.dedent(self.title)
for argument in self.argument_list:
self.add_argument(
argument['name'],
nargs=argument['nargs'],
type=argument['type'],
default=argument['default'],
help=argument['help']
)
args = self.parse_args()
if args.input.name != '<stdin>':
binary = ROM(args.input.name)
lzkn = LZKN4(binary)
data = lzkn.decompress(binary, args.uncompressed_size)
try:
os.stat('output/')
except:
os.mkdir('output/')
out = open("output/"+args.input.name, 'wb')
out.write(data)
out.close()
else:
self.print_help()
if __name__=="__main__":
app = Application()
Essa versão modifiquei pra passar o tamanho decomprimido na linha de comando
Salvar como decoder.py e rodar usando o Python 3
Comando:
python decoder.py arquivo.bin tamanho
Tipo, eu executei aqui, não testei ainda mas vi que ele serve para extrair correto?
Eu já tenho os arquivos devidamente extraídos o que estou fazendo manualmente é recomprimir, tem algum meio de modificar pra compactar de volta?
Desde já agradeço pela boa vontade de ajudar esse noob aqui. XD
Cara eu tentei registrar no discord mas não dá em nada, copiei minha id e colei lá as não tive resultado, criei até um server novo pra ver no que ia dar.
Citação de: Mistura_De_Bits online Maio 17, 2021, 22:01:51 PM
Tipo, eu executei aqui, não testei ainda mas vi que ele serve para extrair correto?
Eu já tenho os arquivos devidamente extraídos o que estou fazendo manualmente é recomprimir, tem algum meio de modificar pra compactar de volta?
Desde já agradeço pela boa vontade de ajudar esse noob aqui. XD
Cara eu tentei registrar no discord mas não dá em nada, copiei minha id e colei lá as não tive resultado, criei até um server novo pra ver no que ia dar.
Teste o decompressor, se estiver 100% funcional eu faço o compressor. E te passo no privado, não por aqui.
Quanto ao discord, ao entrar no servidor você precisa ir no canal #recem-chegados e se apresentar, após isso vai receber acesso de membro.
Citação de: Anime_World online Maio 17, 2021, 22:07:43 PM
Citação de: Mistura_De_Bits online Maio 17, 2021, 22:01:51 PM
Tipo, eu executei aqui, não testei ainda mas vi que ele serve para extrair correto?
Eu já tenho os arquivos devidamente extraídos o que estou fazendo manualmente é recomprimir, tem algum meio de modificar pra compactar de volta?
Desde já agradeço pela boa vontade de ajudar esse noob aqui. XD
Cara eu tentei registrar no discord mas não dá em nada, copiei minha id e colei lá as não tive resultado, criei até um server novo pra ver no que ia dar.
Teste o decompressor, se estiver 100% funcional eu faço o compressor. E te passo no privado, não por aqui.
Quanto ao discord, ao entrar no servidor você precisa ir no canal #recem-chegados e se apresentar, após isso vai receber acesso de membro.
Opa, deu certo aqui com o scrypt que usa o tamanho dos dois primeiros bytes do arquivo, eu adicionei aqui, já o de baixo eu coloquei o 61dd na linha de comando mas ficou dizendo que não era um comando reconhecido, ai preferi fazer com o tamanho no começo mesmo.
Discussão acalorada sobre programação. Continuem...
O importante é chegar lá...
https://media.giphy.com/media/3o7TKra9XDoRiC6dQ4/giphy.gif
Estou pensando em uma possibilidade e preciso da opinião de vocês...
Estou pensando se vale a pena colocar faixas pretas nos diálogos já que a faixa azul atrás é semitransparente.
Sem a faixa:
(https://i.imgur.com/etCmUcO.png)
Com a faixa:
(https://i.imgur.com/CgpldIJ.png)
Outra opção seria mudar a leitura da faixa e remover a transparência, assim não precisaria sompra nos textos, estou procurando a configuração dela para remover a transparência.
Citação de: Mistura_De_Bits online Setembro 13, 2021, 15:11:39 PM
Estou pensando em uma possibilidade e preciso da opinião de vocês...
Estou pensando se vale a pena colocar faixas pretas nos diálogos já que a faixa azul atrás é semitransparente.
Sem a faixa:
(https://i.imgur.com/etCmUcO.png)
Com a faixa:
(https://i.imgur.com/CgpldIJ.png)
Outra opção seria mudar a leitura da faixa e remover a transparência, assim não precisaria sompra nos textos, estou procurando a configuração dela para remover a transparência.
Prefiro sem, com a faixa achei meio feio. :hehe:
também acho que sem a faixa esta bem melhor esteticamente.
Sobre transparencias, viu esse Hack novo (13 de Setembro): https://www.romhacking.net/hacks/6184/
Não sei se pode colocar o link, caso não Desculpe; :sermao:
E por favor sem faixas. :choro2:
Muito Obrigado pela Tradução. :parabens:
Citação de: Viking Spirit online Setembro 14, 2021, 19:03:34 PM
Sobre transparencias, viu esse Hack novo (13 de Setembro): https://www.romhacking.net/hacks/6184/
Não sei se pode colocar o link, caso não Desculpe; :sermao:
E por favor sem faixas. :choro2:
Muito Obrigado pela Tradução. :parabens:
Nossa! Muito bom esse hack.
Bom, fiz alguns testes aqui com o patch do paul e com a faixa opaca, agora só falta ver qual ficou melhor.
Faixa Opaca:
(https://i.imgur.com/AdIKwkb.png)
Patch do Paul Sem Sombra:
(https://i.imgur.com/wD1zNQz.png)
Patch do Paul com Sombra:
(https://i.imgur.com/4PK03wY.png)
E ai o que vocês acham?
MAS QUE LINDO! :cuteeyes:
[1] Com Sombra e [2] Sem Sombra;
Jogando o seu Release Passado, do seu Blog do Mistura, com sombras.
MUITO OBRIGADO Rafael Silva AKA Mistura_De_Bits. :parabens:
Uma pergunta, nesse Hack o Richter está com a Capa, mas quando ele vira-se, e começa a falar com o Dracula, a capa SOME, voltando com o Sprite Original, será que o "paul_met" não conseguiu alterar os Sprites dessa parte? :hein:
Citação de: Viking Spirit online Setembro 15, 2021, 20:03:49 PM
MAS QUE LINDO! :cuteeyes:
[1] Com Sombra e [2] Sem Sombra;
Jogando o seu Release Passado, do seu Blog do Mistura, com sombras.
MUITO OBRIGADO Rafael Silva AKA Mistura_De_Bits. :parabens:
Uma pergunta, nesse Hack o Richter está com a Capa, mas quando ele vira-se, e começa a falar com o Dracula, a capa SOME, voltando com o Sprite Original, será que o "paul_met" não conseguiu alterar os Sprites dessa parte? :hein:
Pelo que sei ele não modificou os sprites, só programou para iniciar com a roupa alternativa, esses sprites do dialogo são fáceis de modificar, mas eu pretendo deixar a roupa original do jogo.
Consegui deixar a cor da faixa mais agradável, fiz um teste com sombra e sem:
(https://media.discordapp.net/attachments/844022330022821938/888095906224799764/unknown.png)
(https://media.discordapp.net/attachments/844022330022821938/888094781085978714/unknown.png)
Esse aqui eu gostei mais:
(https://media.discordapp.net/attachments/844022330022821938/888120598285385758/unknown.png)
Também curti essa ultima cor faixa, Rafael
Citação de: Mistura_De_Bits online Setembro 16, 2021, 13:39:23 PM
Consegui deixar a cor da faixa mais agradável, fiz um teste com sombra e sem:
(https://media.discordapp.net/attachments/844022330022821938/888095906224799764/unknown.png)
(https://media.discordapp.net/attachments/844022330022821938/888094781085978714/unknown.png)
Esse aqui eu gostei mais:
(https://media.discordapp.net/attachments/844022330022821938/888120598285385758/unknown.png)
Essa última tá linda :apaixonado2:
Citação de: Mistura_De_Bits online Setembro 16, 2021, 13:39:23 PM
Consegui deixar a cor da faixa mais agradável, fiz um teste com sombra e sem:
(https://media.discordapp.net/attachments/844022330022821938/888095906224799764/unknown.png)
(https://media.discordapp.net/attachments/844022330022821938/888094781085978714/unknown.png)
Esse aqui eu gostei mais:
(https://media.discordapp.net/attachments/844022330022821938/888120598285385758/unknown.png)
Não vi diferenças nenhuma em ambas as 3. Alias a 3a so vi que faltou a ultima linha. kkk
Citação de: babylon online Setembro 19, 2021, 18:18:39 PM
Não vi diferenças nenhuma em ambas as 3. Alias a 3a so vi que faltou a ultima linha. kkk
A diferença esta em dar um Zoom nas imagens e ver que nas comparações as letras tem sobras ou não.
Quanto à ultima imagem, ele fez a captura em tempo real. Logo se percebe que o fez ao iniciar a fala.
Tudo muito simples e objetivo.
Citação de: Mistura_De_Bits online Maio 17, 2021, 22:33:58 PM
Tipo, eu executei aqui, não testei ainda mas vi que ele serve para extrair correto?
Mistura de Bits, viu que saiu um emulador de Saturn dentro do jogo Cotton Guardian Force Saturn Tribute para Switch e portaram os gringo a versão Dracula X Symphony de saturno em .xci para rodar nele, sera que voce nao consegue olhar e portar a versão BR e ja rodar no Switch?
https://www.youtube.com/watch?v=cZkbGTxrYVA
E poderia deixar um patch separado pra a versão de saturn? Queria aplicar ela em uma versão melhorada do jogo aqui pra o saturn que corrige umas coisas no jogo.
(https://i.imgur.com/G4PBXYL.png)
Quero agradecer ao pessoal que fez parte dessa tradução. Muito obrigado.
Primeiramente, desculpem o sumiço, aconteceram muitas coisas ano passado que me deixaram sem tempo.
Já finalizei toda a parte normal do jogo, está tudo traduzido certinho, falta apenas a parte que é carregada no Cartucho 4mb.
Como estou usando o arquivo kanji.fon com os caracteres AHCI, sobrou muito espaço nele, por isso consegui alterar a leitura de vários graficos compactados para serem lidos direto dele sem compactação, isso acelera os loadings mesmo sem cartucho 4mb e facilitou muito para editar tbm, não precisando mais extrair-recomprimir.
(https://i.imgur.com/EvIouaE.png)
(https://i.imgur.com/kJdyelU.png)
Ola feliz ano novo para você.
A proposito saiu hoje a tradução do hack Dracula X Nocturne in the Moonlight Extended (v1.5) chamado de Dracula X Nocturne in the Moonlight Extended (Ultimate 1.0), segue video:
https://www.youtube.com/watch?v=DyQ9Fcajy7k
Tacaram a dublagem do PSP!
Paul_Met atualizou sua versão do jogo Dracula X: Nocturne in the Moonlight - Ultimate ( Akumajou Dracula X : Gekka no Yasoukyoku ) :
De acordo com o mesmo, esta é a versão mais completa e avançada do jogo, com diversas melhorias comparadas com ao original.
São as seguintes alterações:
* Versão totalmente traduzida para o inglês ( legendas e vozes ) - PSP ver;
* Restauração de transparências de diversos objetos;
* Acesso direto e ajustes no mapa;
* Restauração de proporções originais de alguns sprites;
* Removido as barras pretas horizontais da tela;
* Possibilidade de "pular" vídeos e diálogos do jogo;
* Acesso direto as vestimenta alternativa do Ritcher;
* Redução do tempo de carregamento;
* Suporte ao cartucho de 4MB;
* Diversos acertos de bugs;
* Habilitado modo difícil;
Basic changes to the «Ultimate» version of the game:
- Fully translation into English; -Restoration of translucency of many objects;
-Direct access to the global map; -Finalization of the global map;
-Restoration of the original proportions of some sprites;
-Removing horizontal black bars of the screen;
-Skipping videos and dialogues; -Access to Richter's alternate costume;
-Reduced loading time;
-Support for 4MB expansion card;
-Bug fixes;
-Hard Mode;
Patch (v1.0):
https://mega.nz/file/shMihIyb#o-2S_b2822NIsX8NY8EC48U71p9NVG8nGdkGoJErgAE
Se puder traduzir essa versão para nosso idioma PTBR seria uma boa, sera tem como?
Alias o que muda da versão japonesa desse hack a Dracula X Nocturne in the Moonlight Extended (v1.5) para essa chamada de Dracula X Nocturne in the Moonlight Extended (Ultimate 1.0) fora audios e legendas em ingles?
A sim, seria top esse jogo com a hack traduzido pra PTBR.
Já estou portando tudo para a Versão Ultimate, está indo até rápido, já foram todos os itens, estou na metade dos monstros, dai vai faltar os dialogos, vou fazer duas versões, jap e eng.
PS:Os itens serão mantidos da versão japonesa, só vou fazer duas versões de dialogos.
(https://i.imgur.com/egdx3BI.png)
Citação de: Mistura_De_Bits online Janeiro 28, 2024, 10:32:00 AMJá estou portando tudo para a Versão Ultimate, está indo até rápido, já foram todos os itens, estou na metade dos monstros, dai vai faltar os dialogos, vou fazer duas versões, jap e eng.
PS:Os itens serão mantidos da versão japonesa, só vou fazer duas versões de dialogos.
(https://i.imgur.com/egdx3BI.png)
Ansioso por essa tradução, voce tem mais imagens ou video para mostrar ate lançamento?
Obg.
Download adicionado para quem quiser testar tudo e me reportar se encontrar algum erro.
:parabens:
Aqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Citação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Você colocou os arquivos originais com os nomes corretos como está no arquivo Leia?
A pasta deve ficar assim:
7z.exe
Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M) (Track 1).bin
Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M) (Track 2).bin
Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M).cue
Aplicar.bat
Dracula_X_PT-BR.7z
os traduzidos ficam assim:
Akumajou Dracula X - Gekka no Yasoukyoku (PT-BR) (2M) (Track 1).bin
Akumajou Dracula X - Gekka no Yasoukyoku (PT-BR) (2M) (Track 2).bin
Akumajou Dracula X - Gekka no Yasoukyoku (PT-BR) (2M).cue
Fiz assim e o windows apaga os arquivos e fica só o leia. Mandei para outro amigo meu e deu a mesma coisa...
Citação de: EvaldoCeBr online Maio 02, 2024, 19:34:55 PMFiz assim e o windows apaga os arquivos e fica só o leia. Mandei para outro amigo meu e deu a mesma coisa...
Descompacta os arquivo compactado e tenta novamente.
Mandei para duas pessoas, uma delas formada em TI para ver se conseguiam e não conseguiram.Quando o aplicar.bat é executado apaga os arquivos. Se alguem puder disponibilizar um link já colocado o pacht eu agradeço.
Sou muito fan do trabalho desse cara!
Citação de: EvaldoCeBr online Maio 02, 2024, 19:34:55 PMFiz assim e o windows apaga os arquivos e fica só o leia. Mandei para outro amigo meu e deu a mesma coisa...
se tiver caractere especial na pasta de usuário pode ser que dê ruim, cria uma pasta no disco c: direto
https://drive.google.com/file/d/1Dt_KU92Q65uXuQtuqix3Cxx1CcMIoF_g/view
Citação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Oi, eu consegui ja patchear a iso, esta perfeita, por algum motivo só teve uma vez depois da morte o balão insistia continuar, ai resetei foi perfeito, o jogo estava com um proporção de tela estranha, acho é Saturn, o jogo ta bem mexido... mas depois vi rodei novamente e esta perfeito a proporção.
Citação de: babylon online Maio 03, 2024, 01:17:31 AMCitação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Oi, eu consegui ja patchear a iso, esta perfeita, por algum motivo só teve uma vez depois da morte o balão insistia continuar, ai resetei foi perfeito, o jogo estava com um proporção de tela estranha, acho é Saturn, o jogo ta bem mexido... mas depois vi rodei novamente e esta perfeito a proporção.
Tentei tudo que disseram e não teve jeito. Libera o acesso ao drive pf.
Achei o Erro do patch, ele tem 2 del a mais, e nao executou direito para extrair a pasta zip, avho que precisaria so rever a logica do arquivo.bat
Adendum, faltou colocar a dll do 7z para descompactar os arquivos do zip, e com isso criar a estrutura que foi mencionada pelo criador, espero que tenha ajudado aqueles que estao com dificuldades
Citação de: Gugabrsp online Maio 03, 2024, 16:52:45 PMAchei o Erro do patch, ele tem 2 del a mais, e nao executou direito para extrair a pasta zip, avho que precisaria so rever a logica do arquivo.bat
Adendum, faltou colocar a dll do 7z para descompactar os arquivos do zip, e com isso criar a estrutura que foi mencionada pelo criador, espero que tenha ajudado aqueles que estao com dificuldades
Obrigado, como eu já tinha o 7z instalado no pc não exigiu a dll, já o arquivo bat está com o script correto, só faltava o dll mesmo, já corrigi.
Citação de: Mistura_De_Bits online Maio 03, 2024, 18:16:52 PMCitação de: Gugabrsp online Maio 03, 2024, 16:52:45 PMAchei o Erro do patch, ele tem 2 del a mais, e nao executou direito para extrair a pasta zip, avho que precisaria so rever a logica do arquivo.bat
Adendum, faltou colocar a dll do 7z para descompactar os arquivos do zip, e com isso criar a estrutura que foi mencionada pelo criador, espero que tenha ajudado aqueles que estao com dificuldades
Obrigado, como eu já tinha o 7z instalado no pc não exigiu a dll, já o arquivo bat está com o script correto, só faltava o dll mesmo, já corrigi.
Finalmente consegui por a tradução obrigado pela ajuda.
Vcs que estão emulando com o Yaba Sanshiro para Android quando abre os mapas aparecem uns caracteres diferentes na parte de cima da tela de uma ponta a outra? Será que é bug do jogo ou do emulador?
Citação de: EvaldoCeBr online Maio 04, 2024, 12:46:39 PMVcs que estão emulando com o Yaba Sanshiro para Android quando abre os mapas aparecem uns caracteres diferentes na parte de cima da tela de uma ponta a outra? Será que é bug do jogo ou do emulador?
Era um erro na paleta de cores, já corrigi, postei o patch novo.
corrigi tbm alguns itens que estavam com a descrição errada e o Sealled dor que por algum motivo ficou em inglês.
No segundo encontro com a morte no castelo invertido a legenda da conversa está em inglês.
Boa Tarde meus amigos. Como podem ver sou novo aqui. Primeiramente agradecendo do fundo do coração nosso amigo Rafael Silva. MUITO OBRIGADO MESMO por essa pérola traduzida, ainda mais do nosso querido Sega Saturn, ou seja, a melhor versão de todas de CASTLEVANIA. Venho nessa mensagem igual disse no post que era para TESTAR O JOGO E RELATAR possíveis erros. Então, estou jogando no RETROARCH e usando a MARIA no momento de salvar a legenda está toda em JAPONÊS. Igual o amigo acima disse, não sei se pode ser o emulador e outra coisa quando jogo com ALUCARD fica com uns BUGS na parte inferior do MAPA. Se quiser eu tiro foto e posto aqui, mais não sei como???
Desde já muito obrigado meu amigo... Esse jogo é da época DOURADA DOS GAMES. PARABÉNS!!!!! :parabens: :parabens: :parabens:
Opa. Pergunta rápida: como você fez pra aplicar as mudanças do patch Ultimate da Meduza Team, mas manter as vozes em japonês? Eu tentei só trocar os arquivos de áudio mas as vozes cortavam antes do diálogo terminar
Citação de: EvaldoCeBr online Maio 08, 2024, 13:38:42 PMNo segundo encontro com a morte no castelo invertido a legenda da conversa está em inglês.
Pow cara, eu traduzi essa parte e testei kkkk
mas como eu tava passando pro HD externo deve ter dado algum erro de sincronia, enfim, hoje vou verificar os arquivos e corrigir isso, sobre o save da maria, vou verificar tbm os arquivos dela, vlw pessoal, eu não tenho muito tempo pra testar hoje em dia, é muito importante vocês ajudarem.
Citação de: Xalusc online Maio 08, 2024, 17:22:24 PMOpa. Pergunta rápida: como você fez pra aplicar as mudanças do patch Ultimate da Meduza Team, mas manter as vozes em japonês? Eu tentei só trocar os arquivos de áudio mas as vozes cortavam antes do diálogo terminar
tem que reprogramar os dialogos, não é só texto, tem uma programação por trás.
EX: Qual áudio vai ser reproduzido, quantas letras serão exibidas, qual o tamanho da faixa de áudio a ser reproduzida, pausas, acelerar o texto, etc.
Se não me engano, cortar o áudio é 0b000000
Boa noite amigo Rafael, tudo bem. Que DEUS ti abençoe. Perdão mais lembrei que na campanha do RICHTER, também no momento de salvar o jogo, as legendas estão também todas em JAPONÊS... OBRIGADO E SUCESSO... :cuteeyes: :cuteeyes: :cuteeyes:
preciso que vocês testem também as portas azuis e as grades com a maria e richter.
Se vai aparecer as mensagens corretamente.
Boa tarde amigo RAFAEL tudo bem.
Só umas dúvidas, no canal SEGA SATURN MANIA BR que eu acompanho, você disse que vai lançar uma versão AMERICANA????
Outra dúvida, esse PATCH e da versão ULTIMATE 1.0 ou 1.1???
Porque não sei se você sabe, mais o MEDUSA TEAM, lançou a versão 1.1 que corrige mais uns BUGS no GAME!!!!!
Como por exemplo, eles terminaram o cenário superior no início do jogo com RICHTER!!!!
MAIS UMA VEZ MEU AMIGO EU SÓ AGRADEÇO POR EXISTIR VOCÊ E O PESSOAL DO MEDUSA TEAM POR TORNAR ESSE SONHO EM REALIDADE POR NÓS, MUITO OBRIGADO!!!!!!!! :torico: :torico: :parabens: :parabens: :angel: :angel:
Citação de: FR Oliveira online Maio 14, 2024, 13:39:26 PMBoa tarde amigo RAFAEL tudo bem.
Só umas dúvidas, no canal SEGA SATURN MANIA BR que eu acompanho, você disse que vai lançar uma versão AMERICANA????
Outra dúvida, esse PATCH e da versão ULTIMATE 1.0 ou 1.1???
Porque não sei se você sabe, mais o MEDUSA TEAM, lançou a versão 1.1 que corrige mais uns BUGS no GAME!!!!!
Como por exemplo, eles terminaram o cenário superior no início do jogo com RICHTER!!!!
MAIS UMA VEZ MEU AMIGO EU SÓ AGRADEÇO POR EXISTIR VOCÊ E O PESSOAL DO MEDUSA TEAM POR TORNAR ESSE SONHO EM REALIDADE POR NÓS, MUITO OBRIGADO!!!!!!!! :torico: :torico: :parabens: :parabens: :angel: :angel:
Ola, ele disse vai sair sim uma versão americana e somente, a com audio ingles baseada no PSP como o medusa fez e essa em jap.
Quanto a outra duvida, ambas eram em ingles porem o 1.0 que lançaram eram com audio japones depois eles colocaram com audio em ingles e colocaram titulo 1.1, ambas baseadas no Extended (v1.5) o hack que inicialmente era todo japones usando 4MB.
Citação de: babylon online Maio 14, 2024, 15:26:36 PMCitação de: FR Oliveira online Maio 14, 2024, 13:39:26 PMBoa tarde amigo RAFAEL tudo bem.
Só umas dúvidas, no canal SEGA SATURN MANIA BR que eu acompanho, você disse que vai lançar uma versão AMERICANA????
Outra dúvida, esse PATCH e da versão ULTIMATE 1.0 ou 1.1???
Porque não sei se você sabe, mais o MEDUSA TEAM, lançou a versão 1.1 que corrige mais uns BUGS no GAME!!!!!
Como por exemplo, eles terminaram o cenário superior no início do jogo com RICHTER!!!!
MAIS UMA VEZ MEU AMIGO EU SÓ AGRADEÇO POR EXISTIR VOCÊ E O PESSOAL DO MEDUSA TEAM POR TORNAR ESSE SONHO EM REALIDADE POR NÓS, MUITO OBRIGADO!!!!!!!! :torico: :torico: :parabens: :parabens: :angel: :angel:
Ola, ele disse vai sair sim uma versão americana e somente, a com audio ingles baseada no PSP como o medusa fez e essa em jap.
Quanto a outra duvida, ambas eram em ingles porem o 1.0 que lançaram eram com audio japones depois eles colocaram com audio em ingles e colocaram titulo 1.1, ambas baseadas no Extended (v1.5) o hack que inicialmente era todo japones usando 4MB.
Usei o patch com dublagem americana do psp, porém eu reprogramei para voltar a ficar em japa.
NOSSA QUE LEGAL, pensei que teria que traduzir tudo de novo e passar para o INGLÊS. Pois esse jogo só foi lançado no JAPÃO e nunca na AMÉRICA.
ANSIOSISSÍMO (nem sei se essa palavra existe) pela versão AMERICANA!!!!
Essa realmente será a versão MEGAPOWER DAS GÁLAXIAS desse jogo, para o nosso querido SEGA SATURN!!!!!
VAAAAAAAALLLLLLLLLEEEEEEEUUUUUU!!!!!!!!!!!!1 :cuteeyes: :cuteeyes: :cuteeyes: :parabens: :parabens: :parabens: :parabens:
Citação de: Mistura_De_Bits online Maio 13, 2024, 10:20:01 AMCitação de: Xalusc online Maio 08, 2024, 17:22:24 PMOpa. Pergunta rápida: como você fez pra aplicar as mudanças do patch Ultimate da Meduza Team, mas manter as vozes em japonês? Eu tentei só trocar os arquivos de áudio mas as vozes cortavam antes do diálogo terminar
tem que reprogramar os dialogos, não é só texto, tem uma programação por trás.
EX: Qual áudio vai ser reproduzido, quantas letras serão exibidas, qual o tamanho da faixa de áudio a ser reproduzida, pausas, acelerar o texto, etc.
Se não me engano, cortar o áudio é 0b000000
Tô querendo fazer uma versão do Ultimate, em inglês mesmo, só trocando as vozes de volta pro japonês.
Eu sou programador, mas não faço ideia de como começar a mexer nisso. Tem como tu me dar uma luz?
Me tire uma duvida.
Sua linha de comando no path abaixo me deixou confuso.
Preciso ter a rom japonês e também a patheada em inglês para depois ficar em português??
7z x Dracula_X_PT-BR.7z
Patch1.exe Patch1.imageDiff "Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M) (Track 1).bin" "Akumajou Dracula X - Gekka no Yasoukyoku (Eng) (2M) (Track 1).bin"
xdelta -d -s "Akumajou Dracula X - Gekka no Yasoukyoku (Eng) (2M) (Track 1).bin" "Patch2.xdelta" "Akumajou Dracula X - Gekka no Yasoukyoku (POR) (2M) (Track 1).bin"
del "Akumajou Dracula X - Gekka no Yasoukyoku (Eng) (2M) (Track 1).bin"
del "Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M) (Track 1).bin"
del Patch1.exe
del Patch1.imageDiff
del Patch2.xdelta
del xdelta.exe
del 7z.exe
del 7z.dll
del Dracula_X_PT-BR.7z
ren "Akumajou Dracula X - Gekka no Yasoukyoku (POR) (2M) (Track 1).bin" "Akumajou Dracula X - Gekka no Yasoukyoku (PT-BR) (2M) (Track 1).bin"
del "Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M) (Track 2).bin"
del "Akumajou Dracula X - Gekka no Yasoukyoku (Japan) (2M).cue"
del "[SAT]Dracula_X_PT-BR.7z"
del "Aplicar.bat"
Apliquei o patch ontem e o pc acusou o aplicativo como mau instalado depois de acabar e sumir com tudo hahehahe ficou só o jogo traduzido, nem sei se era pra ser assim, pois tentei emular com o Retroarch no pc e fechava toda vez que ia abrir, mas pra tirar a prova mesmo eu passei pro celular...
Bom, o que eu vim passar aqui de primeiras impressões é que encontrei um erro na hora em que a Maria fala o nome dela pro Alucard no meio do castelo, ela fala "maria" em minúsculo... fora isso foram uns bugs gráficos na hora de pegar itens chave, tipo o Cubo da Zoe, pode ser a emulação ou sei lá, também me ocorreu dos ataques de fogo do primeiro chefe sumirem, assim como outros efeitos visuais, tipo sangue... aparentemente bugaram quando eu voltei na parte onde a Morte pega os itens do Alucard e usei um ataque com o fantasma ou seja lá o que aquilo for...
Como é minha primeira vez jogando a versão do Saturno, estou gravando pra postar em minha conta do YouTube... quando eu upar lá, edito aqui e ponho o link caso queira ver...
Citação de: Swanz online Maio 28, 2024, 18:23:03 PMApliquei o patch ontem e o pc acusou o aplicativo como mau instalado depois de acabar e sumir com tudo hahehahe ficou só o jogo traduzido, nem sei se era pra ser assim, pois tentei emular com o Retroarch no pc e fechava toda vez que ia abrir, mas pra tirar a prova mesmo eu passei pro celular...
Bom, o que eu vim passar aqui de primeiras impressões é que encontrei um erro na hora em que a Maria fala o nome dela pro Alucard no meio do castelo, ela fala "maria" em minúsculo... fora isso foram uns bugs gráficos na hora de pegar itens chave, tipo o Cubo da Zoe, pode ser a emulação ou sei lá, também me ocorreu dos ataques de fogo do primeiro chefe sumirem, assim como outros efeitos visuais, tipo sangue... aparentemente bugaram quando eu voltei na parte onde a Morte pega os itens do Alucard e usei um ataque com o fantasma ou seja lá o que aquilo for...
Como é minha primeira vez jogando a versão do Saturno, estou gravando pra postar em minha conta do YouTube... quando eu upar lá, edito aqui e ponho o link caso queira ver...
Boa tarde, obrigado pelo feedback.
O nome das reliquias dentro da caixa transparente fica quase ilegivel na maioria dos emuladores.
Sobre o sangue, foi algum erro de emulação ai, acabei de testar e tá perfeito.
(https://i.imgur.com/57CanPt.png)
O nome da maria acabei de corrigir, vou atualizar a ISO.
Citação de: babylon online Maio 03, 2024, 01:17:31 AMCitação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Oi, eu consegui ja patchear a iso, esta perfeita, por algum motivo só teve uma vez depois da morte o balão insistia continuar, ai resetei foi perfeito, o jogo estava com um proporção de tela estranha, acho é Saturn, o jogo ta bem mexido... mas depois vi rodei novamente e esta perfeito a proporção.
Pode me dizer como conseguiu? Segui direitinho mas o Windows deixa só o track 02, o cue e o leia.
Edit.: Esqueci de mencionar, tô aplicando direto na versão ultimate.
Citação de: alexsgb online Maio 30, 2024, 14:24:08 PMCitação de: babylon online Maio 03, 2024, 01:17:31 AMCitação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Oi, eu consegui ja patchear a iso, esta perfeita, por algum motivo só teve uma vez depois da morte o balão insistia continuar, ai resetei foi perfeito, o jogo estava com um proporção de tela estranha, acho é Saturn, o jogo ta bem mexido... mas depois vi rodei novamente e esta perfeito a proporção.
Pode me dizer como conseguiu? Segui direitinho mas o Windows deixa só o track 02, o cue e o leia.
Edit.: Esqueci de mencionar, tô aplicando direto na versão ultimate.
Não sei o que acontece nesse patch, também tenho o mesmo problema ao tentar aplicar. Pelo fato da tradução está sendo feito na versão Ultimate e nela que estou com essa dificuldade.
Um fato curioso, eu excluir todas as linhas de comando contendo o @Del... O patch cria um arquivo ISO zero bit como se fosse uma versão USA. Fiz minha indagação dois post acima mas ainda não tive resposta.
Citação de: Elizomar online Maio 30, 2024, 19:59:24 PMCitação de: alexsgb online Maio 30, 2024, 14:24:08 PMCitação de: babylon online Maio 03, 2024, 01:17:31 AMCitação de: EvaldoCeBr online Maio 02, 2024, 16:54:54 PMAqui no meu Windows quando eu clico em aplicar ele apaga todos os arquivos... Já tentei de tudo e não encontrei solução! :desisto:
Oi, eu consegui ja patchear a iso, esta perfeita, por algum motivo só teve uma vez depois da morte o balão insistia continuar, ai resetei foi perfeito, o jogo estava com um proporção de tela estranha, acho é Saturn, o jogo ta bem mexido... mas depois vi rodei novamente e esta perfeito a proporção.
Pode me dizer como conseguiu? Segui direitinho mas o Windows deixa só o track 02, o cue e o leia.
Edit.: Esqueci de mencionar, tô aplicando direto na versão ultimate.
Não sei o que acontece nesse patch, também tenho o mesmo problema ao tentar aplicar. Pelo fato da tradução está sendo feito na versão Ultimate e nela que estou com essa dificuldade.
Um fato curioso, eu excluir todas as linhas de comando contendo o @Del... O patch cria um arquivo ISO zero bit como se fosse uma versão USA. Fiz minha indagação dois post acima mas ainda não tive resposta.
Vou ver se faço depois o seu procedimento. Brigado por responder. ;D
Eu apliquei de acordo como tá escrito no arquivo de texto, pegar os arquivos de tradução e por na mesma pasta do jogo que tem duas track e o arquivo cue, então clicar no arquivo bat e esperar aplicar, da um erro de programa instalado incorretamente, mas acho que é porque apaga tudo após aplicar e fica só o jogo traduzido...
E não é pra aplicar na versão ultimate, é pra aplicar na versão original limpa, o patch foi feito com base na ultimate, pelo menos foi assim que eu entendi e fiz...
Sobre a tradução eu vi um "e" sem acento em uma das falas da Maria com Alucard, eu estou jogando e postando no YouTube, estou pra enfrentar aquele chefe que é um minotauro e um lobisomen (onde aparece o Richter de fundo no cenário)
Se tiver como, muda a cor verde do nome dos monstros, em alguns ambientes fica difícil entender o que tá escrito, outra coisa, ao pegar alguns itens chave a cor é verde e azul ao mesmo tempo, se puder mudar também... fica bem estranho ao pegar alguns deles, até agora acho que todos que peguei, bom exemplo é o cubo de materialização e de dar pulo no ar... estou evitando usar poder da alma pois costuma bugar alguns efeitos no jogo, acho que é do emulador, igual tá na imagem de quando peguei o cubo da Zoe...
(https://i.imgur.com/CPEF0TY.jpeg)
(https://i.imgur.com/0ecmw5x.jpeg)
(https://i.imgur.com/kHBcEjl.jpeg)
(https://i.imgur.com/q53CnXW.jpeg)
Good News
Estou portando a dublagem do ps1 para a versão de saturn, não se preocupem
que terá a parte da luta contra a maria certinho.
Tem uns estalinhos no final dos áudios que é da versão original msm, eu vou remover antes de lançar.
Boa noite, tudo bem. Excelente, perfeito, magnífico. A melhor dublagem é a clássica do PS1. :cuteeyes: :cuteeyes: :cuteeyes: :torico: :torico: :torico: :angel: :angel: :angel:
Citação de: Mistura_De_Bits online Julho 14, 2024, 13:08:33 PMGood News
Estou portando a dublagem do ps1 para a versão de saturn, não se preocupem
que terá a parte da luta contra a maria certinho.
Tem uns estalinhos no final dos áudios que é da versão original msm, eu vou remover antes de lançar.
Que top, vai ter versão dublada ptbr?
Acho que mal tem jogos dublados pra saturno, seria uma boa.
Obg.
A nova versão lançada em 07/09/2024, como você intitularia? 1.1, 2.0? Seria bom você manter um changelog no post. :caidentro: E parabéns pela nova versão, bastante coisa foi melhorada em comparação com a versão de 2019. :charuto:
Boa tarde amigo Rafael. Tudo bem espero que sim. Está ESMERANDO o CASTLEVANIA, ficando perfeito. ANSIOSISSIMO para jogar essa versão do nosso querido SATURNO com a dublagem clássica do PS1, que no meu ver é a melhor até hoje.
Você corrigiu muitos BUGs em relação a versão anterior.
Só uma observação no menu do Alucard nos atributos está RES e quando vai equipar os itens está CON. Me corrija se eu estiver errado.
Desde já meu amigo tá ficando PERFEITO seu trabalho não desista. Todos os DIAS venho aqui olhar se tem uma novidade.
OBRIGADO e DEUS o ABENÇOE... :torico: :torico: :torico: :parabens: :parabens: :parabens:
@Mistura_De_Bits tudo joia? Obrigado pelo patch, ta incrível!
Poderia me explicar quais as vantagens de jogar com o cartucho de 4MB? E ele ativa o uso sozinho ou precisa segurar alguma sequência em algum momento do load do jogo?
Outra solicitação, não apague a dublagem Japonesa, mantenha as duas opções pra quem curte a original por favor! 😁🙏🏻
Citação de: Mistura_De_Bits online Julho 14, 2024, 13:08:33 PMGood News
Estou portando a dublagem do ps1 para a versão de saturn, não se preocupem
que terá a parte da luta contra a maria certinho.
Tem uns estalinhos no final dos áudios que é da versão original msm, eu vou remover antes de lançar.
@Mistura_De_Bits, hello, an English-speaking person here. What you're doing is outstanding work!! I want to ask though
1. Are there tools and easy documentation online for editing Dracula X? Specifically text-editing, sprite and sound-editing? I would really love to know as I wish to tweak the outdated localization of enemies/items using Meduza Team's patch as a base, and I can't seem to find any guides on editing the game
2. Are there plans to make an Undub version of Meduza's Ultimate patch? Many would appreciate it, because unfortunately that team said they don't plan on ever making an Undub alt. version :(
Have an amazing day!
A última versão de setembro não funciona com cartucho de expansão da RAM. Começa a engasgar desde o logo da Sega e no Sonic Carregando até que volta pra BIOS do Saturn.
Patch atualizado, agora a quantidade de itens aparece em seu devido lugar...
(https://i.imgur.com/7layzId.png)
Eu tinha parado com minha gameplay desse jogo por questões de preguiça, pois tenho que conectar um controle de PS3 no celular usando otg e nisso não fica as mil maravilhas de jogar, enquanto que a bateria vai embora, mas vou prosseguir agora testando até o fim usando essa nova versão... uma dica pra ti, quando for postar a nova versão (que acredito ser a ultima), tenta por o nome da iso traduzida pra ficar mais ou menos assim...
Akumajou Dracula X (J) [Ultimate BR V1.6] (Track 1).bin
Akumajou Dracula X (J) [Ultimate BR V1.6] (Track 2).bin
Akumajou Dracula X (J) [Ultimate BR V1.6].cue
Vai ficar melhor apresentável, pois informa que o jogo original é japones, mostra que tá usando o patch ultimate e mostra a versão da tradução, tudo de uma vez, sem que seja preciso modificar após aplicar o patch... eu curto deixar as coisas assim organizadas e bem apresentáveis, dae acho que seria boa essa dica
Boa madrugada, FELIZ NATAL atraso e um próspero ANO NOVO para você e toda sua FAMÍLIA. Muito obrigado por esse grande presente que é essa nova versão, o projeto está ficando cada dia mais perto da PERFEIÇÃO. No mais só te falar uns errinhos que notei:
1. Menu do Alucard o atributo CON (constituição) está escrito RES???
2. Quando PAUSA o jogo com a MARIA aparece PUSH START???
3. Ainda tem planos de lançar uma versão com a dublagem clássica do PS1???
Desde já é um sonho jogar esse clássico no nosso querido SATURN com legendas em PT-BR.
MUITO OBRIGADO E CONTINUE ESMERANDO QUE COM CERTEZA CHEGARÁ A PERFEIÇÃO... QUE DEUS ABENÇOE!!!
:torico: :torico: :angel: :angel: :cuteeyes: :cuteeyes: :parabens: :parabens:
Opa valeu. Tentei jogar no Switch, mas o jogo sofre umas lentidões. A tradução por si só, está muito boa.
Boa tarde senhores. Utilizo Fenrir com Cartucho de 4M.
Infelizmente fico travado no primeiro Loading do jogo após selecionar o personagem.
No momento estou portando a dublagem do PS1 em inglês, refazendo algumas transparencias, corrigindo alguns erros do patch da Medusa Team e desenhando os sprites que faltam.
(https://i.imgur.com/f9XuTVV.jpeg)
No final do diálogo do drácula, ele diz "Have at you!" e foi traduzida como "guarde para você!", mas...
"Have at you!" é uma expressão antiga e um pouco formal que era frequentemente usada em situações de duelo, combate ou confrontação. Basicamente, significa algo como "En garde!" ou "Prepare-se!" em português. É um desafio direto ao oponente, indicando que está pronto para lutar ou enfrentar a outra pessoa.
Essa expressão é bastante comum em peças de teatro e filmes que retratam épocas passadas, como as obras de Shakespeare, onde é usada para adicionar dramaticidade às cenas de conflito.
"oque é um homem" nao se trata de uma tradução errada pro ingles?
Citação de: joselitol online Fevereiro 20, 2025, 15:17:00 PMNo final do diálogo do drácula, ele diz "Have at you!" e foi traduzida como "guarde para você!", mas...
"Have at you!" é uma expressão antiga e um pouco formal que era frequentemente usada em situações de duelo, combate ou confrontação. Basicamente, significa algo como "En garde!" ou "Prepare-se!" em português. É um desafio direto ao oponente, indicando que está pronto para lutar ou enfrentar a outra pessoa.
Essa expressão é bastante comum em peças de teatro e filmes que retratam épocas passadas, como as obras de Shakespeare, onde é usada para adicionar dramaticidade às cenas de conflito.
Creio que esteja falando da expressão "Have at thee!"
Como não encontrei informação sobre a expressão have at you, traduzi com base no japonês que é "vamos ver quem está certo aqui"
Dai pensei no guarde para você.
MAs vou dar mais uma pesquisada, se puder me mostrar algum exemplo dessa fase em uma cena.
Uma expressão clássica!
"Hark" ou "Have at thee" é uma expressão arcaica que vem do inglês medieval. Ela é frequentemente usada em contextos literários, teatrais ou cinematográficos para evocar uma atmosfera de época.
A expressão pode ser traduzida como "Vamos lá!" ou "Ataca!". Ela é frequentemente usada para desafiar alguém para uma luta ou um duelo.
No entanto, é importante notar que a expressão "Hark" é mais comumente usada para introduzir uma declaração ou um aviso, como em "Hark! Quem vem lá?".
Já "Have at thee" é uma expressão mais agressiva, que pode ser traduzida como "Vai para cima de você!" ou "Ataca você!". Ela é frequentemente usada em cenas de luta ou batalha.
Em resumo, "Have at thee" é uma expressão arcaica que significa "Ataca!" ou "Vai para cima de você!", enquanto "Hark" é uma expressão que significa "Vamos lá!" ou "Atenção!".
Citação de: crysmx3 online Fevereiro 20, 2025, 17:03:19 PM"oque é um homem" nao se trata de uma tradução errada pro ingles?
A frase, na verdade, é uma citação de um autor francês chamado André Malraux. Ele foi um escritor, aventureiro e político, e essa frase é uma tradução de uma de suas reflexões sobre a condição humana. É algo filosófico mesmo.
Citação de: joselitol online Fevereiro 21, 2025, 11:26:37 AMCitação de: crysmx3 online Fevereiro 20, 2025, 17:03:19 PM"oque é um homem" nao se trata de uma tradução errada pro ingles?
A frase, na verdade, é uma citação de um autor francês chamado André Malraux. Ele foi um escritor, aventureiro e político, e essa frase é uma tradução de uma de suas reflexões sobre a condição humana. É algo filosófico mesmo.
Entendi, se trata de uma localização no ingles. Vi que o texto em japones era outro por isso pensei que se tratava de um erro.
Citação de: Mistura_De_Bits online Fevereiro 16, 2025, 11:37:34 AMNo momento estou portando a dublagem do PS1 em inglês, refazendo algumas transparencias, corrigindo alguns erros do patch da Medusa Team e desenhando os sprites que faltam.
(https://i.imgur.com/f9XuTVV.jpeg)
:cuteeyes: Incrivel, essa Restauração dos Sprites (Isso era o que mais me incomodava, nessa Restauração da Roupa Classica, essa falta de alguns Sprites)... Você é um Artista... Tradução e Restauração dos Graficos...
Muito Obrigado. :torico:
Teria como ter fazer uma versão do jogo com o áudio em japonês e os textos traduzidos da versão japonesa?
Achei algumas pessoas e sites que já traduziram o texto japonês no passado.
https://legendsoflocalization.com/articles/castlevania-sotn-miserable-pile-of-secrets/
O lendas da localização já traduziu uma vez o texto da abertura para o inglês.
https://beevean.tumblr.com/post/704200678424363008/re-translating-symphony-of-the-night
E esse usuário do tumblr já traduziu os textos de todas as outras conversas do jogo para o inglês.
Adicionado opção de dublagem em Inglês ou japonês, tudo devidamente traduzido!
Tópico movido para Lançamentos.