[הורדה] הוגו על הפסים - Hugo on the Train
מנהלים: Gordi, Radioactive Grandpa, Octarine, Og, אופיר
-
- משתמש רשום
- הודעות: 24
- הצטרף: ג' יולי 04, 2017 8:07 am
Re: [הורדה] הוגו על הפסים - Hugo on the Train
האם מישהו יכול לעשות את זה בשבילי (ליצור קובץ data.big שבו יש את כל הפלאגינים של שלבי יער הר ומטוס בהוגו על הפסים פתוחים) חדש ולהעלות אותו לנושא הזה בפורום להורדה, אוקיי?
-
- משתמש רשום
- הודעות: 24
- הצטרף: ג' יולי 04, 2017 8:07 am
Re: [הורדה] הוגו על הפסים - Hugo on the Train
אני אשמח מאוד אם מישהו יוכל לעשות את זה
Re: [הורדה] הוגו על הפסים - Hugo on the Train
כאמור, זאת משימה יחסית קשה, שדורשת ידע טכני מסויים, ושתקח הרבה מאוד זמן, ובכלל לא בטוח שזה מספיק (כלומר, אולי אחרי הכל זה עדיין לא יעבוד).
אני אישית לא אוכל לסייע בכך, מלבד ההכוונה שנתתי קודם.
זה יכול להיות אתגר למישהו עם ניסיון וזמן פנוי שמתעניין ב-Reverse Engineering. לכן, אם אתה רוצה, אתה יכול במקביל לחפש פורום או קהילה שעוסקים ב-Reverse Engineering ולשאול שם אם מישהו מוכן להרים את הכפפה.
אני אישית לא אוכל לסייע בכך, מלבד ההכוונה שנתתי קודם.
זה יכול להיות אתגר למישהו עם ניסיון וזמן פנוי שמתעניין ב-Reverse Engineering. לכן, אם אתה רוצה, אתה יכול במקביל לחפש פורום או קהילה שעוסקים ב-Reverse Engineering ולשאול שם אם מישהו מוכן להרים את הכפפה.
-
- משתמש רשום
- הודעות: 24
- הצטרף: ג' יולי 04, 2017 8:07 am
Re: [הורדה] הוגו על הפסים - Hugo on the Train
שלום לכם. חזרתי אחרי הרבה מאוד זמן... אני חושב שעכשיו אם צברתם יותר ידע תוכלו לפתוח את השלבים הנעולים ב "הוגו על הפנים" (הוגו על הפסים)
Re: [הורדה] הוגו על הפסים - Hugo on the Train
עוד שבוע וחצי יש לי מבחן, אבל כנראה אחר כך יהיה לי זמן לזה.
Re: [הורדה] הוגו על הפסים - Hugo on the Train
התחלתי להעיף על זה מבט, וזה נראה שאין באמת צורך לפתוח data.big, אלא מספיק לערוך את machine.cnf כדי לומר למשחק לטעון את הplugins החסרים, אפשר להעתיק את השורות המתאימות לmachine.cnf של הגרסא העברית מhugo gold.
בנוסף צריכים להעתיק לתיקיית config של הוגו את הplugins החסרים.
צריכים להעתיק את data.big מהhugo gold {נניח לקובץ בשם german_data.big}
לכל אחד מהplugins שהעתקנו מהגרסא הגרמנית, צריכים לשנות אותו בעורך טקסט ולהחליף את השורה:
ב:
בכל מקרה גורדי השקיע וניתח את פורמט הקובץ, אז חבל לא לשחק איתו.
הנה unpacker:
והנה packer:
שתיהם כתובים בפייתון 3.6, פשוט מורידים מהאינטרנט את הגרסא הכי חדשה של python, שמים אותם בתוך קובץ py בתיקייה של המשחק ולוחצים פעמיים את הקובץ כדי להריץ אותו.
כשמריצים את unpacker.py אז הוא פותח את data.big שנמצא באותו תיקייה כמוהו לתוך תיקייה בשם extracted.
כאשר מריצים את packer.py אז הוא לוקח את תיקיית extracted ויוצר ממנה data.big. במקרה שיש data.big קיים הוא יידרס.
עכשיו אני באמצע לשחק בקבצים של המשחקים {הגרמני והעברי כדי לראות איך הכי טוב לשלב אותם.}
גורדי - שאפו על הניתוח של הקובץ.
איתן - זה אפשרי, אבל זה דורש קצת יותר זמן.
בנוסף צריכים להעתיק לתיקיית config של הוגו את הplugins החסרים.
צריכים להעתיק את data.big מהhugo gold {נניח לקובץ בשם german_data.big}
לכל אחד מהplugins שהעתקנו מהגרסא הגרמנית, צריכים לשנות אותו בעורך טקסט ולהחליף את השורה:
קוד: בחירת הכל
1 = [$THISDIR]..\data.big (bigfile);
קוד: בחירת הכל
1 = [$THISDIR]..\german_data.big (bigfile);
הנה unpacker:
קוד: בחירת הכל
import os
import struct
MAX_PATH_LEN = 260
ENTRY_SIZE = struct.calcsize('260sII')
OUTPUT_DIRECTORY = 'extracted'
data = None
def initialize():
with open('data.big', 'rb') as fd:
global data
data = fd.read()
def offset_at(offset):
return struct.unpack_from('I', data, offset)[0]
def read_file_entry(offset):
file_name, file_offset, file_size = struct.unpack_from('260sII', data, offset)
try:
file_name = file_name.split(b'\0', 1)[0].decode('utf-8')
except Exception as e:
file_name = file_name.replace(b'\xe6', b'\xc3\xa6')
file_name = file_name.split(b'\0', 1)[0].decode('utf-8')
return file_name, file_offset, file_size
def create_directory(file_name):
try:
os.makedirs(file_name)
except FileExistsError:
pass
def extract_entry(offset):
file_name, file_offset, file_size = read_file_entry(offset)
print ('file name is:', str(file_name))
print ('file offset is:', hex(file_offset))
print ('file size is:', file_size)
print ()
if os.path.dirname(file_name) != '':
create_directory(os.path.dirname(file_name))
with open(file_name, 'wb') as fd:
fd.write(data[file_offset:file_offset + file_size])
def main():
initialize()
file_table_offset = offset_at(7)
offset = file_table_offset
create_directory(OUTPUT_DIRECTORY)
os.chdir(OUTPUT_DIRECTORY)
while offset < len(data):
extract_entry(offset)
offset += ENTRY_SIZE
if __name__ == '__main__':
main()
קוד: בחירת הכל
import os
import struct
MAX_PATH_LEN = 260
ENTRY_SIZE = struct.calcsize('260sII')
INPUT_DIRECTORY = 'extracted'
files = dict()
def create_file_entry(file_name, file_offset, file_size):
return struct.pack('260sII', file_name.encode().replace(b'\xc3\xa6', b'\xe6'), file_offset, file_size)
def scan_dir(directory_path='.\\'):
global files
current_dir = os.listdir(directory_path)
for file_name in current_dir:
file_name = directory_path + os.sep + file_name
if os.path.isdir(file_name):
scan_dir(file_name)
else:
with open(file_name, 'rb') as fd:
file_data = fd.read()
files[os.path.normpath(file_name)] = file_data
return
def write_output(output_filename):
file_to_offset = dict()
current_offset = 11
data = b''
for file_name in sorted(files):
file_to_offset[file_name] = current_offset
data += files[file_name]
current_offset += len(files[file_name])
data = b'BIGFILE' + struct.pack('I', current_offset) + data
for file_name in sorted(files):
data += create_file_entry(file_name, file_to_offset[file_name], len(files[file_name]))
with open(output_filename, 'wb') as fd:
fd.write(data)
def main():
original_cwd = os.getcwd()
os.chdir(INPUT_DIRECTORY)
scan_dir()
os.chdir(original_cwd)
write_output('data.big')
return
if __name__ == '__main__':
main()
כשמריצים את unpacker.py אז הוא פותח את data.big שנמצא באותו תיקייה כמוהו לתוך תיקייה בשם extracted.
כאשר מריצים את packer.py אז הוא לוקח את תיקיית extracted ויוצר ממנה data.big. במקרה שיש data.big קיים הוא יידרס.
עכשיו אני באמצע לשחק בקבצים של המשחקים {הגרמני והעברי כדי לראות איך הכי טוב לשלב אותם.}
גורדי - שאפו על הניתוח של הקובץ.
איתן - זה אפשרי, אבל זה דורש קצת יותר זמן.
Re: [הורדה] הוגו על הפסים - Hugo on the Train
מרשים מאוד!!
Re: [הורדה] הוגו על הפסים - Hugo on the Train
כן, זה בדרך כלל מה שקורה כשיש לך מבחן בעוד שבוע וחצי

בתקופות המבחנים הייתי מנגן מלאאאאאא שעות, במהלך הסמסטר והחופש לא הייתי מוציא את הכלי בכלל

Re: [הורדה] הוגו על הפסים - Hugo on the Train
הנה מה שעשיתי כדי להשיג גרסא עברית מורחבת:
הexe של הגרסא העברית לא מוכן לעבוד עם שאר המשחקים, ולכן לקחתי את הexe הגרמני.{ולקחתי גם קצת dll's מהדיסק הגרמני כדי שזה יעבוד.}
לקחתי את תיקיית הPlugins הגרמנית.
לקחתי את data.big הגרמני ועשיתי לו extract לאחר מכן לקחתי את data.big העברי ועשיתי לו extract לתיקייה אחרת, ואז לקחתי את התיקייה העברית, הדבקתי לתוך הגרמנית windows שאל אותי מה לעשות בנוגע לשמות קבצים שמתנגשים, ובחרתי בReplace all.
בתיקיית הPlugins:
שיניתי את loaderplugin כדי שישתמש באנימציות פתיחה מהגרסא העברית, שישתמש בcharmap הנכון ושיציג "המתינו בבקשה" בעברית.
שיניתי את menuplugin כדי שיציג את התפריטים בעברית.
בתוך data.big
מחקתי את:
_6575.RAW כי הוא שוקל מלא, ואין בו צורך בגרסא הגרמנית.
מחקתי את [IntroDir]\ite-media.lzp, את [IntroDir]\ite-media.wav ואת [IntroDir]\intro.raw כי החלטתי להשתמש בפתיח מהגרסא העברית.
רציתי לבדוק אם יש גרסאות אחרות מדובבות של שאר המשחקים כדי להעתיק מהם את הסאונד,
מצאתי את הוגו במכרה אבל הוא כנראה בכלל לא מדבר, והוא באנגלית
מצאתי גם את משחק הסקייטבורד ואת משחק היער - הידוע בשם "קפיצה גזעית" בהוגו1
במשחק הסקייטבורד קיימים קבצי הקול הבאים:
StartSpk - החלפתי בגרסא העברית
BeaverSpk
One_downSpk - החלפתי בגרסא העברית
Two_downSpk - החלפתי בגרסא העברית
FlyingSpk
DeadSpk - החלפתי בגרסא העברית
EndSpk
AvSpk
השגתי את הגרסא העברית באמצעות capture wav מdosbox {ctrl+f6}
אפשר להחליף גם את שאר המשפטים, אבל או שאני לא יודע מה הם אומרים, או שאין לי כוח להתקדם במשחק. בכל מקרה די קל לתקן את זה {דרושים מתנדבים}.
במשחק העברי מסיבה בלתי מובנת קיים הplugin של קפיצה גזעית, כנראה בגרסא יותר ישנה מהגרסא שיש בhugo gold כי חסרים בקובץ שורות, בכל מקרה הוא מצביע על קבצים שקיימים בdata.big הגרמני ולא בעברי.
קבצי הקול של המשחק הם:
start_snak - החלפתי
doed_1
synke
gedde
doed_2
svirpe
elg
doed_3
stamme_ruller
slut_snak
וזהו נגמר לי הכוח.
אני כבר מעלה את התוצאות, ומקווה שמישהו ימשיך את עבודתי.
שורה תחתונה כל המשחקים עובדים עכשיו, כל התפריטים בעברית, חלק מהדיבוב בעברית מסונכרנת נכון (המשחק הראשון) עוד טיפה בעברית חלקית, והשאר מדובב לגרמנית, אבל זה בידיים שלנו.
עריכה: עכשיו גיליתי שבנוגע למשחק של היער, טעיתי בהתייחסות אליו בקבצים, כי יש שתי משחקים של יער.
הexe של הגרסא העברית לא מוכן לעבוד עם שאר המשחקים, ולכן לקחתי את הexe הגרמני.{ולקחתי גם קצת dll's מהדיסק הגרמני כדי שזה יעבוד.}
לקחתי את תיקיית הPlugins הגרמנית.
לקחתי את data.big הגרמני ועשיתי לו extract לאחר מכן לקחתי את data.big העברי ועשיתי לו extract לתיקייה אחרת, ואז לקחתי את התיקייה העברית, הדבקתי לתוך הגרמנית windows שאל אותי מה לעשות בנוגע לשמות קבצים שמתנגשים, ובחרתי בReplace all.
בתיקיית הPlugins:
שיניתי את loaderplugin כדי שישתמש באנימציות פתיחה מהגרסא העברית, שישתמש בcharmap הנכון ושיציג "המתינו בבקשה" בעברית.
שיניתי את menuplugin כדי שיציג את התפריטים בעברית.
בתוך data.big
מחקתי את:
_6575.RAW כי הוא שוקל מלא, ואין בו צורך בגרסא הגרמנית.
מחקתי את [IntroDir]\ite-media.lzp, את [IntroDir]\ite-media.wav ואת [IntroDir]\intro.raw כי החלטתי להשתמש בפתיח מהגרסא העברית.
רציתי לבדוק אם יש גרסאות אחרות מדובבות של שאר המשחקים כדי להעתיק מהם את הסאונד,
מצאתי את הוגו במכרה אבל הוא כנראה בכלל לא מדבר, והוא באנגלית
מצאתי גם את משחק הסקייטבורד ואת משחק היער - הידוע בשם "קפיצה גזעית" בהוגו1
במשחק הסקייטבורד קיימים קבצי הקול הבאים:
StartSpk - החלפתי בגרסא העברית
BeaverSpk
One_downSpk - החלפתי בגרסא העברית
Two_downSpk - החלפתי בגרסא העברית
FlyingSpk
DeadSpk - החלפתי בגרסא העברית
EndSpk
AvSpk
השגתי את הגרסא העברית באמצעות capture wav מdosbox {ctrl+f6}
אפשר להחליף גם את שאר המשפטים, אבל או שאני לא יודע מה הם אומרים, או שאין לי כוח להתקדם במשחק. בכל מקרה די קל לתקן את זה {דרושים מתנדבים}.
במשחק העברי מסיבה בלתי מובנת קיים הplugin של קפיצה גזעית, כנראה בגרסא יותר ישנה מהגרסא שיש בhugo gold כי חסרים בקובץ שורות, בכל מקרה הוא מצביע על קבצים שקיימים בdata.big הגרמני ולא בעברי.
קבצי הקול של המשחק הם:
start_snak - החלפתי
doed_1
synke
gedde
doed_2
svirpe
elg
doed_3
stamme_ruller
slut_snak
וזהו נגמר לי הכוח.
אני כבר מעלה את התוצאות, ומקווה שמישהו ימשיך את עבודתי.
שורה תחתונה כל המשחקים עובדים עכשיו, כל התפריטים בעברית, חלק מהדיבוב בעברית מסונכרנת נכון (המשחק הראשון) עוד טיפה בעברית חלקית, והשאר מדובב לגרמנית, אבל זה בידיים שלנו.
עריכה: עכשיו גיליתי שבנוגע למשחק של היער, טעיתי בהתייחסות אליו בקבצים, כי יש שתי משחקים של יער.
Re: [הורדה] הוגו על הפסים - Hugo on the Train
קישור הורדה כאן.
אשמח אם מישהו יאשר שעובד לו.
אשמח אם מישהו יאשר שעובד לו.
Re: [הורדה] הוגו על הפסים - Hugo on the Train
דבר ראשון, כל הכבוד על ההשקעה. וגם בהצלחה במבחן.
רוב המשחקים עובדים. היחיד שלא ניתן לשחק בו זה הנהר, יש איזה גליץ' ברקע שלא מאפשר לראות את המסלול.
המשחק של מערת הקרח עובד, אבל בשער בסוף יש אותה בעיה גרפית שלא מאפשרת לראות את הקוד האחרון.
חוצמזה נראה שרק המשחק של הרכבת כולו בעברית, השאר כולם או חלקם בגרמנית - אבל מכיוון שמראש אמרת שלא החלפת את כל קבצי הדיבור, אני מניח שאתה יודע.
חוצמזה 2 נראה שאי אפשר להקליד שם בעברית בשביל מסך הניקוד.
רוב המשחקים עובדים. היחיד שלא ניתן לשחק בו זה הנהר, יש איזה גליץ' ברקע שלא מאפשר לראות את המסלול.
המשחק של מערת הקרח עובד, אבל בשער בסוף יש אותה בעיה גרפית שלא מאפשרת לראות את הקוד האחרון.
חוצמזה נראה שרק המשחק של הרכבת כולו בעברית, השאר כולם או חלקם בגרמנית - אבל מכיוון שמראש אמרת שלא החלפת את כל קבצי הדיבור, אני מניח שאתה יודע.
חוצמזה 2 נראה שאי אפשר להקליד שם בעברית בשביל מסך הניקוד.
Re: [הורדה] הוגו על הפסים - Hugo on the Train
שאפו על המאמץ וההשקעה!