User Tag List

Страница 694 из 695 ПерваяПервая ... 690691692693694695 ПоследняяПоследняя
Показано с 6,931 по 6,940 из 6944

Тема: Версии игр и софта, найденные на кассетах

  1. #6931

    Регистрация
    28.08.2023
    Адрес
    г. Брест, Беларусь
    Сообщений
    142
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    33 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JeRrS Посмотреть сообщение
    Народ, а здесь как-то можно пофиксить точку входа? чтобы не было мусора на экране. Методом проб и ошибок если заменить 246-ой байт заменить на 739B то оно стартует без мусора, но тогда портятся рельсы
    Не понял, что такое «246-й байт» и как туда записать слово, но вот какие есть мысли по этому поводу.

    Оригинал стартует с 0x9B53 (после первоначальной распаковки чего-то), но там до 0x9b73 тоже что-то куда-то копируется. Я бы сказал, что потенциальными точками повторного входа в образ памяти являются 0x9B73 или 0x9B85. Точка входа читается восстановителем дампа памяти из стека, RET по адресу 0x46da, в тот момент SP=0x5CE8. Думаю, начать надо с 0x9b85. Вот только где это в TZX блоках... Ну, в смысле, понятно, что в предпоследнем, но он как-то зашифрован(?), не могу сообразить, как там оно устроено. Предпоследний блок загружается по адресу 0x4002 и копируется на 0x5b00. То есть править надо 0x1E8 (0x5ce8-0x5b00) от 0x4002/начала данных предпоследнего блока.

  2. #6931
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #6932

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Chwe, 246-ой байт это если просто кинуть TZX какой он есть) сам блок да, он зашифрован (на 1 байт приходится 9 бит) во время загрузки игры можно снимать дамп с памяти чтобы оттуда уже можно было считать нормально читаемые данные.

    p.s: чтобы сильно не заморачиваться над подменной байтов в заколдованном блоке (т.е если не охота будет искать и переделывать сам tzx чтобы получить рабочий вариант), просто можешь сказать что при загрузке такого-то блока в памяти спектрума ячейку № такую-то содержимое заменить на то-то то-то и я уже сам пойму какой это будет по счету заколдованный байт в самом релизе и сам заменю.
    Последний раз редактировалось JeRrS; 22.10.2025 в 16:21.
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

  4. #6933

    Регистрация
    28.08.2023
    Адрес
    г. Брест, Беларусь
    Сообщений
    142
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    33 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JeRrS Посмотреть сообщение
    Chwe, 246-ой байт это если просто кинуть TZX какой он есть) сам блок да, он зашифрован (на 1 байт приходится 9 бит) во время загрузки игры можно снимать дамп с памяти чтобы оттуда уже можно было считать нормально читаемые данные.

    p.s: чтобы сильно не заморачиваться над подменной байтов в заколдованном блоке (т.е если не охота будет искать и переделывать сам tzx чтобы получить рабочий вариант), просто можешь сказать что при загрузке такого-то блока в памяти спектрума ячейку № такую-то содержимое заменить на то-то то-то и я уже сам пойму какой это будет по счету заколдованный байт в самом релизе и сам заменю.
    Кажется, разобрался. Думаю, переделать труда не составит, просто прямо сейчас мне трудно нужный код написать, попозже попробую. В общем, мне кажется надо так: менять надо два байта по смещению 0x1e8 в третьем блоке, с 0xF5FC на 0x9B85 0x9B73.. Сразу после загрузки третьего блока это вот 0x4002+0x1e8=0x41ea.

    Как менять: структура TZX там несколько поломанная, в блоке 0x11 в данных НЕТ ни флага, ни контрольной суммы, там тупо поток бит идёт, нормально разобрать и собрать нечем, да и незачем, можно править «наживую». Шифрования, как такового, нет, просто перед каждым байтом данных вставляется бит «1» (уж кто его знает, зачем такое). Поэтому, технология простая: взять кусок данных, хоть из памяти, поменять там что надо и вставить эти девятые биты. Всё ясно как пень, просто написать пока не могу, по техническим причинам. Попозже сделаю.

    «правильный» адрес старта


    По поводу, откуда начинать, с 0x9b73 идёт косвенная инициализация стека и очистка FF6E-FF88:
    Код:
        DI
        LD SP, (FF6B)
        LD HL, FF6E
        LD (HL), 00
        LD DE, FF6F
        LD BC, 0019
        LDIR
    В оригинале по адресу FF6B лежит F0 5C, в крякнутом -- то же самое, поэтому считаю правильным начинать с 9B73. На что циферки в имени файла намекают, как я понимаю
    [свернуть]


    Upd: вот исправленный вариант, должен стартовать с 0x9B73.
    Последний раз редактировалось Chwe; 24.10.2025 в 18:07.

    Этот пользователь поблагодарил Chwe за это полезное сообщение:

    JeRrS(25.10.2025)

  5. #6934

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Chwe, будет возможность перевыложить на другой обменник? этот вообще перестал открываться
    p.s: хоть и далеко не с первого раза но скачать удалось, спасибо за fix!
    Последний раз редактировалось JeRrS; 25.10.2025 в 10:45.
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

  6. #6935

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Народ, пытаюсь тут восстановить еще один битый релиз от felix'a, остался вопрос по последнему блоку длиною в 1800 байт. Я ради эксперимента подставил первый попавшийся на котором игра стартанула, но понятное дело нужно восстановить под саму игру. Я насколько понял эти 1800 байт это обычный непожатый набор байтов где-то после адреса 23296. Правда первые 30 байт в этом блоке явно какие-то "свои"

    То что получилось: https://transfiles.ru/5ebk4
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

  7. #6936

    Регистрация
    28.08.2023
    Адрес
    г. Брест, Беларусь
    Сообщений
    142
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    33 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JeRrS Посмотреть сообщение
    Народ, пытаюсь тут восстановить еще один битый релиз от felix'a, остался вопрос по последнему блоку длиною в 1800 байт. Я ради эксперимента подставил первый попавшийся на котором игра стартанула, но понятное дело нужно восстановить под саму игру. Я насколько понял эти 1800 байт это обычный непожатый набор байтов где-то после адреса 23296. Правда первые 30 байт в этом блоке явно какие-то "свои"

    То что получилось: https://transfiles.ru/5ebk4
    Там ничего ценного ниже 0x5cd0 0x61a8, вроде, нет, всё начинается оттуда и игра может все нужные области памяти проинициализировать заново, если её запустить со штатной точки 0x7b00. То есть, кузнец последний блок вообще не нужен.

    Единственная тонкость -- там заставка предполагает, что на экране осталась картинка. Правильно было бы загрузчик изменить, последний блок вообще выкинуть и вместо 5FD5: CALL 6039 : CALL 6172 : JP 4000 вставить LD SP, FFE8 : JP 7B00 (да и убрать зависимость от uncontended RAM), но... загрузчик там как-то запакован/зашифрован... Можно, конечно, загрузчик расшифрованый взять и перезаписать в Бейсик, но у меня до этого руки не дойдут пока

    Тупой вариант -- заменить последний блок на 6 байт LD SP, FFE8 : JP 7B00, но тогда придётся смотреть на полупустой экран пока титры идут.

    Вариант похитрее, в последнем блоке добавить код, чтобы пропускать заставку, что-то вроде

    asm


    Код:
        DEVICE ZXSPECTRUM48
    
        ORG 0x4000
    
        LD SP, 0xFFE8
        LD HL, 0x7B3F
        LD (HL), 0xc3
        LD HL, 0x7cc2
        LD (0x7B40), HL
        JP 0x7B00
    
        SAVE3DOS "t.t.s.2",0x4000,$-0x4000
    [свернуть]

    aka
    Код:
    31 E8 FF 21  3F 7B 36 C3  21 C2 7C 22  40 7B C3 00 7B
    ну, и, соответственно, поправить заголовки, контрольные суммы и прочее. А, да, смысла в TZX там нет никакого, всё можно в TAP перепаковать. Если получится, попозже сделаю.




    Что-то неожиданно появилось время и зачесались руки, переделал загрузчик, стараясь сохранять историческую ценность:

    - выкинул «защиту», оптимизировал использование памяти, там была куча явного мусора -- размер уменьшился с 983 до 550.
    - соответственно, выкинул последний блок нафиг, ибо он там не нужен (еще -1821)
    - убрал зависимость от наших клонов с uncontended memory «внизу», теперь работает на оригинальном железе (путём переноса кода загрузки «вверх», там навалом места)
    - сделал выход из загрузки блока напрямую, в оригинале была явная описка и дергался просто RET (выход из SA-BYTES, явная ерунда, явно хотели SA/LD-RET), с другой стороны, SA/LD-RET выкинет в Бейсик, если держать BREAK
    - сделал Бейсик загрузчик перемещаемым, теперь запускается везде, и с TR-DOS, и без, и даже на моём любимом +3

    Оригинальная упаковка и оригинальный загрузчик сохранены, по сути переделана Бейсик-обвязка. Если кто умеет включать оригинальную «защиту» (там просто три или четыре слоя запутывания/obfuscation), исходники прилагаются, можно попытаться сделать совсем как в оригинале.

    Yandex Disk | Mega старые ссылки убраны, см. ниже

    P.S. Надеюсь, с яндекса скачается без проблем. Если не сработает -- подскажите, куда ещё можно. Mega, она не моя, но именно поэтому живая, даже если я туда заходить не буду, шанс, что протухнет, есть, конечно, но невелик.

    Upd: 2025 11 08

    Ой, факир был... Ну, неудивительно, праздники же

    Но, на самом деле, там, скорее всего, нужен только маленький кусочек 0x60E0-0x61A7 и, может быть, какая-то мелочь «ввeрху». В общем, так как оригинал восстановили, я сделал полностью свой вариант на загрузчике от felix Всё различие в сжатии основного блока zx0'м, ну, и вот что там описано выше.

    Я дошёл до бабки, послал её и упёрся в стену, дальше, вроде, пути нет -- ничего не сломалось.

    Yandex Disk | Mega
    Последний раз редактировалось Chwe; 08.11.2025 в 12:57.

  8. #6937

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Chwe, ничего ты размахнулся!) Последний блок все-же нужен ибо если дойти в игре по правую сторону то рано или поздно экран превратится в мусор)

    p.s: если что, то уже коллеги по цеху помогли восстановить последний блок.
    Последний раз редактировалось JeRrS; 05.11.2025 в 10:39.
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

  9. #6938

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот в релизе от PSV можно как-то понять чем они компрессировали кодовый блок? Я косвенно предполагаю блок был пожат так же как обычно это делается в релизах сделанные через снапшот микродрайва (m1 loading) потому что сделав выгрузку очень много совпадении получилось (не шибко последовательно, местами есть разделения в несколько байт но тем не менее). При распаковке битого блока данные полностью совпадают начиная с адреса 25000.

    https://transfiles.ru/r9m6q - ссылка на битый релиз и другой рабочий
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

  10. #6939

    Регистрация
    28.08.2023
    Адрес
    г. Брест, Беларусь
    Сообщений
    142
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    33 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JeRrS Посмотреть сообщение
    А вот в релизе от PSV можно как-то понять чем они компрессировали кодовый блок? Я косвенно предполагаю блок был пожат так же как обычно это делается в релизах сделанные через снапшот микродрайва (m1 loading) потому что сделав выгрузку очень много совпадении получилось (не шибко последовательно, местами есть разделения в несколько байт но тем не менее). При распаковке битого блока данные полностью совпадают начиная с адреса 25000.

    https://transfiles.ru/r9m6q - ссылка на битый релиз и другой рабочий
    Ну, там кода только один блок из двух, и тот 7124 байт вместо 38667, но это, как я понимаю, и без меня все видят. Распаковщик там вот такой*:

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


    Код:
    ; z80dasm 1.1.6
    ; command line: z80dasm -g 0x5cd2 -l unpack.dump
    
            org     05cd2h
    
            pop de          ; 0x694a
            ld hl,061a8h
            ld b,000h
    l5cd8h:
            ld a,b
            or a
            jr z,l5ce1h
            ld a,c
    l5cddh:
            dec b
    l5cdeh:
            ld (hl),a
            jr l5cefh
    l5ce1h:
            ld a,(de)
            inc de
            cp 04ah
            jr nz,l5cdeh
            ld a,(de)
            inc de
            ld b,a
            ld a,(de)
            inc de
            ld c,a
            jr l5cddh
    l5cefh:
            inc hl
            push hl
            push bc
            ld bc,0fc00h
            or a
            sbc hl,bc
            pop bc
            pop hl
            jr nz,l5cd8h
            ret
    [свернуть]


    А дальше оно загружает третий (отсутствующий) блок и запускает его. Мне кажется, если нет хотя бы частичного третьего блока, это восстанавливать никак, только как вот я делаю, просто заново паковать в меру своей собственной фантазии. Там, кстати, загрузчик целиком на Бейске, мне кажется, наибольшую ценность представляет заставка (сохранившаяся).

    *) там, похоже, RLE без особых извращений с 0x4A как маркет последовательности. Т.е., если байт 0x4A то за ним идёт BYTE COUNT COUNT BYTE, т.e. BYTE повторяется COUNT раз, иначе -- просто копируется. 0x4a идёт как 0x4a 0x01 0x4a. Два и более 0x4a в оригинале не встречаются


    Вот такая штука получилась. `E.FORCE.fix.tap` -- восстановлено в меру разумения, а вот `E.FORCE.chwe.tap` -- это как я люблю, «по мотивам», мои фантазии на тему, просто оригинальный блок сжатый zx0'м. Технические детали попозже выложу, что и как, уже вечер, я ещё нет...

    Yandex Disk | Mega


    Upd: 2025 11 09

    Второй блок, будем считать, более или менее честно восстановлен -- взят код из оригинала, вырезан нужный кусок и сжат вот тем RLE0x4A. Похоже, у этого PSV был не совсем оригинальный код, полного совпадения по сжатым кускам (уцелевшая часть) получить не удалось, но, на скорость влиять не должно (если я всё правильно сделал).

    Третий блок я жать не стал, там экономия 100 байт (всего там чуть больше килобайта) и там распаковщик примерно столько и займёт . IMHO смысла не имеет, поэтому там простой `LDIR`.

    Второй блок распаковывается интересным кодом. Во-первых, он полностью перемещаемым. Во-вторых, он перемещается для работы в свободную область Бейсика (не WORKSPACE, а "spare area", между STKEND и процессорным стеком) с проверкой наличия достаточного количества свободной памяти.

    Вот все инструменты и принадлежности, чтобы проделать то же самое в домашних условиях:

    Yandex Disk | Mega
    Последний раз редактировалось Chwe; 09.11.2025 в 19:43.

  11. #6940

    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    1,546
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    155
    Поблагодарили
    106 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можете посмотреть в этой интрошке при нажатии на клавиши с 1 по 9 какие в итоге блоки он ожидает загрузить? https://transfiles.ru/jfm9s
    Предполагаю что в начале он ждет что-то короткое (для определение нужной части) а потом сам блок этой части
    Группа в ВК, посвященная кассетным версиям игр для спектрума
    В коллекции:Plazma-128K (YM+TR-DOS), Кворум 128+, Эксперт-006, Квант V3.а, Квант (Didaktik), Компаньон-2 (V2.2), Radon Plus, Урал 8-64К, Byte, Хоббит, Байт, Compact-256, Profi-128K (Kramis V.02), Himac 48K

Страница 694 из 695 ПерваяПервая ... 690691692693694695 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Исходники софта
    от Sayman в разделе Софт
    Ответов: 3
    Последнее: 14.08.2009, 18:11
  2. Полезные ссылки вновь найденные:
    от AAA в разделе Разный софт
    Ответов: 3
    Последнее: 23.06.2008, 20:10
  3. моя коллекция софта
    от moroz1999 в разделе Игры
    Ответов: 7
    Последнее: 25.07.2007, 12:21
  4. Перегон софта PC-ZX
    от spleen в разделе Утилиты
    Ответов: 12
    Последнее: 14.05.2007, 17:33
  5. Архив софта от Himik's ZxZ/PoS-WT
    от himik в разделе Софт
    Ответов: 23
    Последнее: 12.01.2007, 06:41

Ваши права

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