Важная информация

User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 60

Тема: Помогите перевести игры в TR-DOS

  1. #21
    Member
    Регистрация
    16.05.2009
    Адрес
    Stavropol
    Сообщений
    52
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Самостоятельно перегнал Nether Earth (Защитник Земли). Кто хочет, может скачивать. Это перевод от студии КИС.

    Итого, совместными c Prusak усилиями, осталось две игрухи: Ninja Massacre и BallBreaker. Че-то никак их не осилю.

    Прикрепляю их тоже. Все файлы уже скопированы в tr-dos, однако оригинальные пусковые файлы (бэйсиковские) не правлены - они так и остались для запуска с ленты. Плюс эти же пусковые файлы лежат отдельно в формате hobeta.

    Собственно, все что нужно - это написать загрузчик. Кто сможет?
    Вложения Вложения

  2. #22
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,795
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Немного помощи по Ball Breaker:

    Отключив автостарт Бейсик-загрузчика, находим в нем такой кусок:

    Скрытый текст


    Код:
    5D81	DI	
    	LD	HL,(#5C53)
    	LD	DE,#005A
    	ADD	HL,DE
    	LD	DE,#5B00
    	PUSH	DE
    	LD	BC,#0106
    	LDIR	
    	JP	#5B00
    [свернуть]


    как с проверкой переменной начала Бейсик-программы 5C53, так и с точкой останова в 5B00 (или логически) можно выяснить, что далее с 5B00 будет выполняться кусок кода - загрузчик,- лежащий в Бейсик-файле сразу за этим куском выше, с 5D95. Предполагаемые изменения отмечены в тексте:

    Скрытый текст


    Код:
    5B00	POP	HL			; тот же адрес, куда перемещен код, #5B00
    	LD	DE,#004E
    	ADD	HL,DE			; HL указывает на данные о грузимых блоках
    	LD	E,(HL)
    	INC	HL
    	LD	D,(HL)			; стартовый адрес первого блока
    	INC	HL
    	LD	SP,#5C80		; стек слишком низко для DOS, еще ниже
    					; он снова перемещается, так что
    		 			; безболезненно поднимаем на #5E80
    					; т.к. блоки грузятся намного выше
    	PUSH	DE			;1 --- 1 --- этот кусок надо переделать
    	LD	E,(HL)			;1 достаточно старшего байта
    	INC	HL			;1 только помещаемого в B, т.к. грузить
    	LD	D,(HL)			;1 будем секторами, только для длины #416A
    	POP	IX			;2 выйдет #42 сектора. Старт-ад надо в HL,
    	PUSH	HL			;1 а не IX. Еще надо LD C,5 и LD DE,(#5CF4)
    	XOR	A			;1 это все не нужно, и даст нам место 
    	DEC	A			;1
    	SCF				;1
    	EX	AF,AF'			;1=11 байт
    	CALL	#056C			; --- 1 --- а вызывать надо будет #3D13
    	DI	
    	POP	HL
    	INC	HL			; хотя адрес-длина блока вынесены, и все
    	LD	E,(HL)			; похоже на подпрограмму, второй блок
    	INC	HL			; грузится уже этим местом программы
    	LD	D,(HL)
    	INC	HL
    	PUSH	DE			;1 --- 2 --- отсюда начнем переделку куска
    	LD	E,(HL)			;1 аналогично первому
    	INC	HL			;1
    	LD	D,(HL)			;1
    	POP	IX			;2
    	XOR	A			;1
    	DEC	A			;1
    	SCF				;1
    	EX	AF,AF'			;1=10 байт
    	CALL	#056C			; --- 2 ---
    	DI				; дальше все оставляем, код можно изменить
    	LD	DE,#004C		; так, чтоб даже данные старт-длины не
    	LD	HL,#5B00		; менять (судя по копирующей процедуре
    	ADD	HL,DE			; слева, они куда-то еще переносятся, 
    	LD	DE,#4000		; вдруг нужны в неизменном виде?
    	LD	A,#06			; :) хотя вряд ли)
    	LD	BC,#0020
    	LDIR	
    	INC	D
    	LD	E,#00
    	DEC	A
    	JR	NZ,$-#09
    	LD	SP,#401F
    	JP	#4200
    5B4C	NOP	
    	DEC	DE
    5B4E	JR	NZ,$+#80		;  но это данные, байты DB	#20, #7E, #6A, #41
    	LD	L,D
    	LD	B,C
    5B52	ADC	DD			; DB	#8A, #BF, #77, #40
    	CP	A
    	LD	(HL),A
    	LD	B,B
    [свернуть]


    Наши правки приводят к чему-то такому (изменения отмечены комментариями):

    Скрытый текст


    Код:
    5D95	POP	HL
    	LD	DE,#004E
    	ADD	HL,DE	
    	LD	E,(HL)
    	INC	HL
    	LD	D,(HL)
    	INC	HL
    	LD	SP,#5E80		; стек повыше для DOS
    	INC	HL			;1
    	LD	B,(HL)			;1
    	INC	B			;1
    	LD	C,#05			;2
    	PUSH	HL			;1
    	LD	HL,(#5CF4)		;3
    	XOR	A			;1
    	EX	DE,HL			;1=11 байт
    	CALL	#3D13			;
    	DI	
    	POP	HL
    	INC	HL
    	LD	E,(HL)
    	INC	HL
    	LD	D,(HL)
    	INC	HL
    	INC	HL			;1
    	LD	B,(HL)			;1
    	INC	B			;1
    	LD	C,#05			;2
    	LD	HL,(#5CF4)		;3
    	XOR	A			;1
    	EX	DE,HL			;1=10 байт
    	CALL	#3D13			;
    [свернуть]


    Теперь исправленный загрузчик можно сохранить с тем же LINE-автостартом, который мы убрали. Такой метод посекторной подгрузки, естественно, работает, когда подгружаемые файлы лежат за загрузчиком всегда в одинаковом заданном порядке.

    И все, что остается для получения красивой версии в едином файле - в каком-нибудь дисковом редакторе увеличить длину файла загрузчика в секторах, чтобы она была равна сумме длин в секторах всех трех файлов игры. Затем с этой дискеты можно скопировать только новый "длинный" Бейсик-файл, и кодовые блоки будут уже копироваться вместе с ним, "охваченные" его длиной. В то же время грузиться программа будет, как обычно, т.к. параметры старт-длина у Бейсик-файла не менялись. Теперь порядок файлов перепутать не удастся.

    Загрузчик мог бы приложить, но думаю, что для тренировки это лучше сделать другим.

    ---------- Post added at 16:57 ---------- Previous post was at 16:55 ----------

    (тему действительно надо бы переместить в соответствующий раздел)
    Последний раз редактировалось TomCaT; 03.07.2010 в 18:10.
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  3. #23
    Member
    Регистрация
    16.05.2009
    Адрес
    Stavropol
    Сообщений
    52
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а по Ninja Massacre что скажете?

  4. #24
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,795
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По Ninja Massacre:
    Весь загрузчик в code1, выдержки из которого приводить не буду, но где с самого начала видно, что:
    1) сразу портиться IY. Исследование загрузки с стоп-точками показывает, что он используется в своем нестандартном загрузчике, которым грузяться 2 блока (почти с начала файла идут LD IX , LD DE, CALL <нестандартный загрузчик>). Так что от этого изменения IY смело отказываемся.
    2) первый блок = картинка + немалый кусок, с адреса #4000, длиной #2400 - это code2. Кусок перекроет и буфер принтера (смертельно для не 48к), и Бейсик, и DOS
    Его придется разрезать на блоки #1B и 9 секторов длиной, и, если как попроще, не упаковывая игру и не делая 128-версию с загрузкой в другую страницу - грузить вторую часть блока - последней по порядку; наверное, на картинку, с адреса #4700 или другого. На картинке много подсказок по русской раскладке и паролям, и этого жаль. Хотя бы надо еще добавить паузу при загрузке, позволив это немного рассмотреть.
    3) второй нестандартно загружается с #6400, длину загрузчик хитро берет по адресу (#4104) - т.е. с картинки (но это настоящая длина файла, #9600, как и у code3. К счастью, защита касается способа загрузки, а не зашифровки файлов).
    4) После этого уже стандартно с помощью ПЗУ загружается остаток code4 по адресу #FA00 (64000, где лежал нестандартный загрузчик), с правильной длиной #600. На стеке загрузчик оставляет адрес #4000, куда после загрузки будет переход из подпрограммы LOAD-BYTES ПЗУ.
    5) Там лежит что-то вроде выхода из MAGIC - восстановление всех регистров со стека и переход в игру тоже на стеке. Это немного портит картинку поверху.

    Так что в Бейсик-загрузчике с дискеты можно выставить CLEAR ниже 25600, загрузить по нужным адресам первую часть code1 (не забыть и паузу, например тут), весь code3 и code4, потом загрузить обломок code2 и, т.к. картинка безвозвратно попорчена, туда же поместить код (из DATA в Бейсике, или еще лучше, заранее приписать эти полтора десятка байт ко второй части code2) :

    а) ОБЯЗАТЕЛЬНОЕ DI, т.к. затираем не только буфер принтера, нужный при 128-прерываниях, но даже и стек. Стек будет сразу перемщен кодом с #4000
    б) перемещение подгруженной части code2 на свое место за картинкой
    в) переход на 4000.
    Последний раз редактировалось TomCaT; 03.07.2010 в 18:58.
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  5. #25
    Member
    Регистрация
    16.05.2009
    Адрес
    Stavropol
    Сообщений
    52
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мда. Че-то все слишком страшно. Ассемблер для меня и так дебри. Попытаюсь, конечно, но по-видимому, не справлюсь.

    Может, кто-нибудь все же возьмется, да и переведет, наконец, эти две игрушки?!
    Последний раз редактировалось fwmakc; 04.07.2010 в 11:28. Причина: отчаяние

  6. #26
    Guru Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,085
    Спасибо Благодарностей отдано 
    743
    Спасибо Благодарностей получено 
    452
    Поблагодарили
    251 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomCaT Посмотреть сообщение
    Эээ, вот насчет TDCOPY вопрос - встречал в своей коллекции несколько игр, в которых первой заставкой идет рекламка, как при загрузке TDCOPY, а потом - медленная загрузка. В то же вермя - TDCOPY у меня был, и именно с его помощью скопировал десяток программ с кассеты на дискету тогда, когда был реал. Но хоть убей, не знаю, как делались программы с таким загрузчиком, с заставкой TDCOPY (и с медленной загрузкой)...
    Ну у авторов есть сайт http://www.thd.ru/. Можно их там спросить или тут же на форуме.

  7. #27
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,795
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Ну у авторов есть сайт http://www.thd.ru/. Можно их там спросить или тут же на форуме.
    Спасибо, послал вопрос...


    Цитата Сообщение от fwmakc Посмотреть сообщение
    Мда. Че-то все слишком страшно. Ассемблер для меня и так дебри. Попытаюсь, конечно, но по-видимому, не справлюсь.

    Может, кто-нибудь все же возьмется, да и переведет, наконец, эти две игрушки?!
    Э-эх. Но дело стоило изучения ассемблера, пусть и с нуля.

    Ну, да ладно.

    Кстати, игра 89-го, а все-таки использует рамку с картинки слева прямо в игре, не восстанавливая ее. Здесь она портится, так что этот спецэффект, требующий для устранения бОльшего мозговарения, придется убирать самому, если необходимо.

    Цитата Сообщение от goodboy Посмотреть сообщение
    может перенести тему в раздел `для начинающих` ?
    +
    Вложения Вложения
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  8. #28
    Member
    Регистрация
    16.05.2009
    Адрес
    Stavropol
    Сообщений
    52
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо. На самом деле, спасибо огромное!

  9. #29
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    TomCaT, а ты его к себе на курсы по дисковёртингу игр пригласи...
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  10. #30
    Member
    Регистрация
    16.05.2009
    Адрес
    Stavropol
    Сообщений
    52
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заманчиво, конечно, но слишком много времени. Мне ж ассемблер с нуля учить придется! Так что я бы все равно отказался. Статус уверенного пользователя меня устраивает. Каждому свое. Тем более, что мне важны были только эти игрушки

    TomCaT, еще раз большое человеческое спасибо.

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите перевести DSK в ROM
    от makler_ в разделе MSX
    Ответов: 0
    Последнее: 23.12.2009, 23:49
  2. Ответов: 6
    Последнее: 29.09.2008, 00:05
  3. Помогите с названием игры!
    от Mat1sha в разделе Игры
    Ответов: 4
    Последнее: 19.01.2008, 22:44
  4. Помогите перевести стихи (для пати)
    от newart в разделе Разный софт
    Ответов: 3
    Последнее: 28.02.2007, 00:56
  5. Помогите с названием игры!
    от Levit в разделе Игры
    Ответов: 29
    Последнее: 01.11.2006, 13:01

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •