[הורדה] הוגו על הפסים - 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

שליחה על ידי איתיחובבהוגו »

אני אשמח מאוד אם מישהו יוכל לעשות את זה
סמל אישי של משתמש
Gordi
מנהל ראשי
מנהל ראשי
הודעות: 6864
הצטרף: ו' ספטמבר 27, 2002 2:19 pm
מיקום: מאחוריך
איש קשר:

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי Gordi »

כאמור, זאת משימה יחסית קשה, שדורשת ידע טכני מסויים, ושתקח הרבה מאוד זמן, ובכלל לא בטוח שזה מספיק (כלומר, אולי אחרי הכל זה עדיין לא יעבוד).
אני אישית לא אוכל לסייע בכך, מלבד ההכוונה שנתתי קודם.

זה יכול להיות אתגר למישהו עם ניסיון וזמן פנוי שמתעניין ב-Reverse Engineering. לכן, אם אתה רוצה, אתה יכול במקביל לחפש פורום או קהילה שעוסקים ב-Reverse Engineering ולשאול שם אם מישהו מוכן להרים את הכפפה.
איתיחובבהוגו
משתמש רשום
משתמש רשום
הודעות: 24
הצטרף: ג' יולי 04, 2017 8:07 am

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי איתיחובבהוגו »

שלום לכם. חזרתי אחרי הרבה מאוד זמן... אני חושב שעכשיו אם צברתם יותר ידע תוכלו לפתוח את השלבים הנעולים ב "הוגו על הפנים" (הוגו על הפסים)
zibib
משתמש רשום
משתמש רשום
הודעות: 333
הצטרף: ה' אפריל 13, 2017 6:54 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי zibib »

עוד שבוע וחצי יש לי מבחן, אבל כנראה אחר כך יהיה לי זמן לזה.
zibib
משתמש רשום
משתמש רשום
הודעות: 333
הצטרף: ה' אפריל 13, 2017 6:54 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי zibib »

התחלתי להעיף על זה מבט, וזה נראה שאין באמת צורך לפתוח data.big, אלא מספיק לערוך את machine.cnf כדי לומר למשחק לטעון את הplugins החסרים, אפשר להעתיק את השורות המתאימות לmachine.cnf של הגרסא העברית מhugo gold.
בנוסף צריכים להעתיק לתיקיית 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()
והנה packer:

קוד: בחירת הכל

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()
שתיהם כתובים בפייתון 3.6, פשוט מורידים מהאינטרנט את הגרסא הכי חדשה של python, שמים אותם בתוך קובץ py בתיקייה של המשחק ולוחצים פעמיים את הקובץ כדי להריץ אותו.
כשמריצים את unpacker.py אז הוא פותח את data.big שנמצא באותו תיקייה כמוהו לתוך תיקייה בשם extracted.
כאשר מריצים את packer.py אז הוא לוקח את תיקיית extracted ויוצר ממנה data.big. במקרה שיש data.big קיים הוא יידרס.

עכשיו אני באמצע לשחק בקבצים של המשחקים {הגרמני והעברי כדי לראות איך הכי טוב לשלב אותם.}

גורדי - שאפו על הניתוח של הקובץ.
איתן - זה אפשרי, אבל זה דורש קצת יותר זמן.
סמל אישי של משתמש
Gordi
מנהל ראשי
מנהל ראשי
הודעות: 6864
הצטרף: ו' ספטמבר 27, 2002 2:19 pm
מיקום: מאחוריך
איש קשר:

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי Gordi »

מרשים מאוד!!
סמל אישי של משתמש
איתן
משתמש רשום
משתמש רשום
הודעות: 1723
הצטרף: ד' יוני 16, 2004 6:59 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי איתן »

zibib כתב: ה' אוקטובר 31, 2019 5:28 pm עוד שבוע וחצי יש לי מבחן, אבל כנראה אחר כך יהיה לי זמן לזה.
zibib כתב: ש' נובמבר 02, 2019 8:28 pm התחלתי להעיף על זה מבט
... (עבודה של כמה שעות טובות)
עכשיו אני באמצע לשחק בקבצים של המשחקים
כן, זה בדרך כלל מה שקורה כשיש לך מבחן בעוד שבוע וחצי 8)
בתקופות המבחנים הייתי מנגן מלאאאאאא שעות, במהלך הסמסטר והחופש לא הייתי מוציא את הכלי בכלל :lol:
zibib
משתמש רשום
משתמש רשום
הודעות: 333
הצטרף: ה' אפריל 13, 2017 6:54 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי zibib »

הנה מה שעשיתי כדי להשיג גרסא עברית מורחבת:

ה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
וזהו נגמר לי הכוח.

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

עריכה: עכשיו גיליתי שבנוגע למשחק של היער, טעיתי בהתייחסות אליו בקבצים, כי יש שתי משחקים של יער.
zibib
משתמש רשום
משתמש רשום
הודעות: 333
הצטרף: ה' אפריל 13, 2017 6:54 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי zibib »

קישור הורדה כאן.
אשמח אם מישהו יאשר שעובד לו.
סמל אישי של משתמש
Octarine
מנהל
מנהל
הודעות: 3884
הצטרף: ג' יולי 07, 2009 11:48 pm
מיקום: בין חושך לאור

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי Octarine »

דבר ראשון, כל הכבוד על ההשקעה. וגם בהצלחה במבחן.

רוב המשחקים עובדים. היחיד שלא ניתן לשחק בו זה הנהר, יש איזה גליץ' ברקע שלא מאפשר לראות את המסלול.
המשחק של מערת הקרח עובד, אבל בשער בסוף יש אותה בעיה גרפית שלא מאפשרת לראות את הקוד האחרון.
חוצמזה נראה שרק המשחק של הרכבת כולו בעברית, השאר כולם או חלקם בגרמנית - אבל מכיוון שמראש אמרת שלא החלפת את כל קבצי הדיבור, אני מניח שאתה יודע.
חוצמזה 2 נראה שאי אפשר להקליד שם בעברית בשביל מסך הניקוד.
סמל אישי של משתמש
הטופיק
משתמש רשום
משתמש רשום
הודעות: 518
הצטרף: ה' אפריל 22, 2004 4:20 pm

Re: [הורדה] הוגו על הפסים - Hugo on the Train

שליחה על ידי הטופיק »

שאפו על המאמץ וההשקעה!
שלח תגובה הנושא הקודםהנושא הבא