Просьба к желающим, потестируйте игру, а то все основное время уходит на перевод Splatterhouse 3.Если не сложно с косяками, делайте скрины, а я буду поправлять. Как минимум один косяк будет,не влезет фраза в инвентаре.Так как дойти до места,где эта фраза появится не смог из за нехватки времени,тому кто дойдет, сделайте пожалуйста скрин места или действия при котором она появляется. Буду вам очень признателен.
Пробовал поиграть. Как в ЭТУ игру ВООБЩЕ играть? :o
В чем проблема??? Что не получается????
Не понятен смысл игры. Что там делать? :)
Людей спасать от чужих?
Ага. Только после получения ключа и карты они уже бегают по зданию, а патронов и оружия нет. >:(
полохо искал)))выходишь из лазарета и идешь направо(если мне память не изменяет) там вход в вентиляцию,проходишь в другой уровень, там в шкафчике находишь карточку с этой карточкой открывается дверь где лежит пестик и пульки))) щас уже не помню,для меня была проблема вообще понять,что пимпа на земле это какой то предмет)) пока случайно стоя рядом с ней я не открыл инвентарь))) Ну не всем же играм быть такими, как alien 3 на snes)))) Я тоже был в шоке от увиденного, но разобравшись понял,игра имеет смысл жить, фанаты будут играть))))) Я же играл))) только не прошел)))
Активно затестировали игру)))) Будет свободное время буду тестировать сам, но мало ли кто то все таки будет играть, отписывайтесь))
И так, что у нас нового?? А вот что, мы нашли автомат, паяльную лампу и огнемёт.Выявлено несколько опечаток и неправильно поставленных поинтеров. Слова топливо заменено на смесь,так как в огнемётах используется именно она, и заправляется он теперь из баллона.К сожалению в худе уместилось только баллон - 09 на букву а не хватило места.Так как изначально вставлял текст в заставки без поиска поинтеров, они там в принципе не нужны были,но несколько фраз не уместилось именно так как мне хотелось сегодня я нашел все поинтеры и поменял всю первую половину текста, именно так как должно быть.Завтра,точнее уже сегодня попробую доделать вторую часть и выложить новую версию перевода.
и еще вопрос к знатокам англицкого!!! Как более уместно перевести фразу сattle prod - ибо электопогонялка как то не звучит))может электропрут или электро дубинка??
Электропрут подойдёт, я думаю.
"ОБОйМЫ" не очень смотрится как-то. Лучше все буквы поменьше сделать.
меньше будет страшно непонятно, там буквы 3х5, куда уж меньше, тем более в новой версии это поправил)))спасибо cool-spot и джинни,
Ну вот наконец то перевод игры и добрался до финальной версии 1.0, просьба всех желающих её еще раз потестировать.Все было поправлено, опечатки найдены и жестоко подчищены.Это нереально долгий перевод подошел к концу.))) УРА, Кстати игра проходится за какие то 45 минут, но можно и быстрее)))) И в конце есть даже мини мультик, с улетающим корабликом)))
Актуальная версия перевода в первом посте?
На сайте JurasskPark, более актуальная или в базе шеф-нета, но я уже сделал проект к ней, ну чтоб вооще всё было круто, вот только времени в последнее время мало. вот уволюсь, опять буду ромхомячить)))
В моей базе точно не актуальная, потому что я ее взял отсюда. :) Что титулку не перерисовал?
На сайте JurasskPark'а есть только Alien 3 для SNES.
Потому, как считаю надо кое что переделать и перерисовать заставку))) пока не до неё увиделю что перевод не стал пользоваться популярностью))) хотя меня игра приколола, доделаю обязательно))) надо только текст подправить)) и уперед)))
Такс седня пересобрал проект, то как я его делал изначально((( позор))))))) Перевёл весь текст заново без сокращений и попыток впихнуть его в то место что было)))) Теперь это нормальный и полный перевод. Осталось кое что по мелочам и конечно же ЗАСТАВКА!!!! ;D
Ждёмс обновления. :)
Как всё сделаешь, внесу в базу переводов апдейт.
С заставкой пока стопэ((( Я её перерисовал, выводится надпись спрайтами, а вот где карта лежит ентого дела неизвестно мене(((( можно конечно тупо зафигачить ром поганкой и попытаться найти)))
В дебагере BGB есть просмоторщик спрайтов. На геймбоях они 4-х байтные. В роме соответственно будут идти как XYNA.
Два байта координаты (XY), один индекс тайла (N) и один атрибут спрайта (A). Все эти данные можно увидеть через Vram viewer.
[Дата добавления: 02 марта 2013, 03:25:48]
Также попробуй отладочные инструменты в дебагере NO$GMB. Знать бы адрес спрайтового буфера на GBC, тогда мы быстро нашли твои спрайты. Надпись в движении постоянно и координаты генерируются на ходу. Поэтому простым поиском по комбинации надпись не найдешь.
[Дата добавления: 02 марта 2013, 04:18:39]
Ищи в районе x19EA0 и дальше.
А не может такого быть, как вариант, что смотреть эти координаты , когда надпись окажется в самом низу?
На этом форуме кто-нибудь ещё ромхакингом занимается? ;D
Я асм сходу не смог понять. Там как-то в дебагере замудрено всё и непонятно. Надпись скролится и скорее всего для координат определенная процедура занята.
Джинн щас не отвечает((( Вася дебажить не умеет, плюс он как появился, мы ему заданий уже надавали))) Оракулума в аське не вижу, он вроде как дебажит)) Но я думаю там вот какая фишка. Я пакостником ковырял, значит карта заставки чужого идет очень интересно. Там не по одному тайлу собирается картинка, а есть байт например 01 - под этим кодом подразумевается кусок спрайта из 4 тайлов 16х16. Поковырял вчера и надпись, там судя по всему 1 код указывает на спрайт из 2 тайлов 8х16. Изменение байт пока ничего не дало, кроме того, что надпись пропадает, пытался анализировать байты, пока никакого решения не нашел, завтра еще посмотрю, может получится разобраться. перевод идет потихоньку
Цитата: greengh0st от 06 марта 2013, 17:09:42Вася дебажить не умеет, плюс он как появился, мы ему заданий уже надавали)))
Ну, для твое проги я как раз дебажил... ::)
:o значит теперь ты умеешь дебажить?!!! Тогда мы идем к вам))))
Цитата: greengh0st от 07 марта 2013, 01:03:53:o значит теперь ты умеешь дебажить?!!!
Ну, опыта у меня ещё не очень много, но вот этот код я разобрал:
D000: ldi a,(hl)//загрузка дополнительного флагового байта
D001: adc a //получает 3-й флаговый бит (10X) и добавляет бит конца флагового байта
D002: jr D037 //возвращает обратно
D004: ldi a,(hl)//загрузка дополнительного флагового байта
D005: adc a //получает 4-й флаговый бит (10XX) и добавляет бит конца флагового байта
D006: jr D03C //возвращает обратно
D008: ldi a,(hl)//загрузка дополнительного флагового байта
D009: adc a //получает 4-й флаговый бит (10X1Y) и добавляет бит конца флагового байта
D00A: jr D041 //возвращает обратно
D00C: ldi a,(hl)//загрузка дополнительного флагового байта
D00D: adc a //получает флаговый бит и добавляет бит конца флагового байта
D00E: jr D050 //возврат обратно в цикл
D010: ldi a,(hl)//загрузка дополнительного флагового байта
D011: adc a //получает флаговый бит (10111X...) и добавляет бит конца флагового байта
D012: jr D019 //возвращает обратно
D014: ld c,04 //(10111)задаёт счётчик 4 (вместо длины 9)
D016: add a //получает флаговый бит (10111X...)
D017: jr z,D010 //если флаговые биты кончились(10111|1), то переход
D019: rl b //вталкивает бит в b (b shl 1) + bit
D01B: dec c //уменьшает счётчик на 1
D01C: jr nz,D016//если счётчик не = 0, то повторить цикл (цикл идёт 4 раза)
D01E: push af //скидывает флаги в стек
D01F: ld a,03 //задаёт минимальную длину непожатого отрезка (a=3): LEN = 3
D021: add b //a = 3 + b | LEN = 3..18
D022: add a //a = a + a | LEN = 6..26 (только чётные)
D023: ld c,a //скидывает a в c | LEN в байтах = 12..52 (кратно 4)
D024: ldi a,(hl)//загружает байт из рома
D025: ld (de),a //копирует байт в буфер
D026: inc de //увеличивает адрес буфера
D027: ldi a,(hl)//загружает байт из рома
D028: ld (de),a //копирует байт в буфер
D029: inc de //увеличивает адрес буфера
D02A: dec c //уменьшает c
D02B: jr nz,D024//если счётчик не обнулился - повторить
D02D: pop af //возвращает флаги
D02E: jr D089 //назад к циклу
D030: ldi a,(hl)//загрузка дополнительного флагового байта
D031: adc a //получает 2-й флаговый бит (1X) и добавляет бит конца флагового байта
D032: jr c,D09E //если флаговые биты (11), вернуться обратно в цикл
D034: add a //получает 3-й флаговый бит (10X)
D035: jr z,D000 //если флаговые биты кончились (10|1), то переход
D037: rl c //третий (10X) флаговый бит становится младшим битом длины отрезка((2 shl 1) + carry) (длина 4-5), carry обнуляется
D039: add a //получает 4-й флаговый бит (10XX)
D03A: jr z,D004 //если флаговые биты кончились (10X|1), то переход
D03C: jr nc,D04D//если последний флаговый бит был 0 (10X0), то переход
D03E: add a //получает 5-й флаговый бит (10X1X)
D03F: jr z,D008 //если флаговые биты кончились (10X1|1), то переход
D041: dec c //(10X1X) уменьшение длины отрезка на 1 (длина временно 3-4)
D042: push hl //скидывает адрес в роме в стек (освобождает временно hl)
D043: ld h,a //скидывает флаговые биты в h
D044: ld a,c //копирует длину в a
D045: adc a //предыдущий флаговый бит (10X1Y) идёт в длину((LEN shl 1) + Y) (длина 6-9)
D046: ld c,a //длина скидывается обратно в c
D047: cp a,09 //сравнивает длину с 9: если LEN=9, то z=1; если LEN<9, тогда carry=1
D049: ld a,h //возвращает флаговые биты обратно
D04A: pop hl //возвращает адрес в роме
D04B: jr z,D014 //если LEN=9, то переход, если же LEN<9, то идём дальше
D04D: add a //>>LEN>>получает флаговый бит (X)
D04E: jr z,D00C //если флаговые биты кончились (пример: |1), то переход
D050: jr nc,D06C//если флаговый бит = 0, то переход к копированию
D052: add a //получает 2-й флаговый бит (1X)
D053: jr nz,D057//если флаговые биты не кончились (пример: 1|1) то перескочить
D055: ldi a,(hl)//получение дополнительного флагового байта
D056: adc a //получает 2-й флаговый бит (1X) и добавляет +1 (флаг конца цикла)
D057: rl b //скидывает в b последний флаговый бит
D059: add a //получает 3-й флаговый бит (1XY)
D05A: jr nz,D05E//если флаговые биты не кончились (1X|1) то перескочить
D05C: ldi a,(hl)//получение дополнительного флагового байта
D05D: adc a //получает 3-й флаговый бит (1XY) и добавляет +1 (флаг конца цикла)
D05E: jr c,D0C1 //если 3-й флаговый бит 1 (1X1), то переход
D060: inc b //(1X0)\
D061: dec b // |проверка на 0
D062: jr nz,D06C//если b = 1 (110), то переход к копированию
D064: inc b //если b = 0 (100), то b = 1
D065: add a //получает 4-й (или 5-й, если пришёл с D0D1) флаговый бит (100X)
D066: jr nz,D06A//если флаговые биты не кончились (100|1), то перепрыгнуть
D068: ldi a,(hl)//получение дополнительного флагового байта
D069: adc a //получает 4-й флаговый бит (100X)
D06A: rl b //вталкивает последний флаговый бит в b | b = (b shl 1) + X
D06C: push af //>>>начало копирования>>>скидывает флаги в стек
D06D: ld a,e //копирует младшую часть адреса буфера
D06E: sub (hl) //a-(hl) вычитает байт смещения (считывая его из рома)
D06F: push hl //скидывает адрес в роме в стек (освобождает временно hl)
D070: ld l,a //скидывает адрес копирования в младшую часть hl
D071: ld a,d //копирует старшую часть адреса буфера
D072: sbc b //a-(b+carry) считает старшую часть адреса в буфере
D073: ld h,a //скидывает адрес копирования в старшую часть hl
D074: dec hl //уменьшает адрес копирования на 1
D075: ldi a,(hl)//копирует из буфера повторный (сжатый) байт и увеличивает hl
D076: ld (de),a //вставяет повторный байт в буфер
D077: inc de //увеличивает адрес буфера
D078: dec c //уменьшает счётчик повторных байтов
D079: jr nz,D075//если счётчик не обнулился - вернуться к копированию
D07B: pop hl //возвращает из стека адрес в роме
D07C: inc hl //увеличение адреса в роме
D07D: pop af //возвращает флаги из стека
D07E: jr D089 //переход обратно к циклу
D080: ldi a,(hl)//>>>загрузка следующего флагового байта, увеличение адреса в роме
D081: adc a //получает 1-й флаговый бит (X) и добавляет +1 (флаг конца цикла)
D082: jr c,D096 //если идёт сжатие (1), то переход
D084: push af //скидывает флаги в стек
D085: ldi a,(hl)//зарузает непожатый байт, увеличивает адрес в роме
D086: ld (de),a //копирует байт в буфер
D087: inc de //увеличивает адрес в буфере
D088: pop af //возвращает флаги
D089: add a //получает 1-й флаговый бит (X)
D08A: jr c,D094 //если идёт сжатие (1), то переход
D08C: push af //скидывает флаги в стек
D08D: ldi a,(hl)//загружает непожатый байт из адреса hl
D08E: ld (de),a //и скидывает его в буфер по адресу de
D08F: inc de //увеличивает адрес в буфере
D090: pop af //возвращает флаги из стека
D091: add a //получает 1-й флаговый бит
D092: jr nc,D084//если идёт непожатый байт (флаг = 0), то переход
D094: jr z,D080 //если флаговые биты кончились, то переход
D096: ld bc,0002//задание минимальной (2) длины копируемого сегмента
D099: add a //получает 2-й флаговый бит (1X)
D09A: jr z,D030 //если флаговый байт уже обнулился (флаг 1|1), то идём грузить слудующий благовый байт
D09C: jr nc,D034//если флаговые биты (10), то переход
D09E: add a //получает 3-й флаговый бит (11X)
D09F: jr z,D0D3 //если флаговый байт уже обнулился (флаг 11|1), то идём грузить слудующий благовый байт
D0A1: jr nc,D06C//если флаговые биты были 110, то переход к копированию отрезка (длина: 2)
D0A3: inc c //длина увеличивается до 3
D0A4: add a //получает 4-й флаговый бит (111X)
D0A5: jr z,D0D7 //если флаговый байт уже обнулился (флаг 111|1), то идём грузить слудующий благовый байт
D0A7: nc,D04D //если флаговые биты были 1110, то переход
D0A9: ld c,(hl) //загружает длину копируемого семента (флаговые биты: 1111)
D0AA: inc hl //увеличивает адрес в роме
D0AB: inc c //\
D0AC: dec c //проверка на 0
D0AD: jr z,D0DB //если длина = 0, то переход (проверка на конец процедуры)
D0AF: push af //скидывает флаги с стек
D0B0: ld a,c //перекидывает длину в a
D0B1: add a,08 //увеличение длины на 08
D0B3: ld c,a //байт перекидывается обратно в c
D0B4: pop af //грузит флаги обратно
D0B5: jr D04D //переход
D0B7: ld bc,0012//<<начало>>
D0BA: add hl,bc //пропускает h12 байт (заголовок?)
D0BB: csf //ставит флаг С
D0BС: ldi a,(hl)//загружает флаговый байт
D0BD: adc a //A*A+Carry - получает флаговый бит (не используется)
D0BE: add a //A*A - получает флаговый бит (не используется)
D0BF: jr D089 //переход к циклу
D0C1: add a //(b = X) получает 4-й флаговый бит (1X1Y)
D0C2: jr nz,D0C6//если флаговые биты не кончились (1X1|1) то перескочить
D0C4: ldi a,(hl)//получение дополнительного флагового байта
D0C5: adc a //получает 4-й флаговый бит (1X1Y) и добавляет +1 (флаг конца цикла)
D0C6: rl b //вталкивает последний флаговый бит в b | b = X * 2 + Y
D0C8: set 2,b //b = 4 + X*2 + Y
D0CA: add a //получает 5-й флаговый бит (1X1YZ)
D0CB: jr nz,D0CF//если флаговые биты не кончились (1X1Y|1), перескочить
D0CD: ldi a,(hl)//получение дополнительного флагового байта
D0CE: adc a //получает 5-й флаговый бит (1X1YZ) и добавляет +1 (флаг конца цикла)
D0CF: jr c,D06C //если последний флаговый бит 1 (1X1Y1), то переход ккопированию
D0D1: jr D065 //если последний флаговый бит 0 (1X1Y0), то возьмём ещё бит
D0D3: ldi a,(hl)//получение дополнительного флагового байта
D0D4: adc a //получает 3-й флаговый бит (пример: 11X) и добавляет +1 (флаг конца цикла)
D0D5: jr D0A1 //возврат обратно в цикл
D0D7: ldi a,(hl)//получение дополнительного флагового байта
D0D8: adc a //получает 4-й флаговый бит (пример: 111X) и добавляет +1 (флаг конца цикла)
D0D9: jr D0A7 //возврат обратно в цикл
D0DB: add a //(флаг 1111, LEN=0) получает 5-й флаговый бит (1111X)
D0DC: jr nz,D0E0//если флаговые биты не кончились, то переход
D0DE: ldi a,(hl)//получение дополнительного флагового байта
D0DF: adс a //получает 5-й флаговый бит (1111X)
D0E0: jr c,D089 //если пятый бит единица (11111), то начать цикл сначала
D0E2: ret //конец распаковки
И так пока времени особо не было, но весь текст и графу удалось привести в порядок, спасибо Пауку, за то что взялся пройти игру и потестить))
[Дата добавления: 15 марта 2013, 12:28:01]
Заставка по прежнему не сделана))) Времени не хватает))