Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Распаковка LaserCompact картинок... (http://zx-pk.ru/showthread.php?t=14063)

newart 18th October 2010 00:11

Распаковка LaserCompact картинок...
 
Пытаюсь распаковать картинки запакованые Laser Compact'om из BGE без распаковщика. В лучшем случае получается покоробленая картинка.

Мето такой: запаковал картинки с паковщиком и без, вычел длинну, и сохранил распоквщик, потом стыкую к распокощику картинку без распаковщика. :v2_conf2:

Лас 18th October 2010 00:14

Файлы можно поглядеть?

newart 18th October 2010 00:55

1 Attachment(s)
Вот

Лас 18th October 2010 02:11

1 Attachment(s)
В картинке, записанной с распаковщиком, отсутствует сигнатура LCMP5 (признак пакованной Laser Compact картинки) и другая информация (напр. комментарий). А в картинке, которая пишется без распаковщика, присутствуют в начале файла эти N байт служебной инфы (сигнатура и комментарий), таким образом:
1. Данные картинки, которая записана с распаковщиком на N байт меньше, чем данные картинки без распаковщика. Длину распаковщика не учитываем.
2. Распаковщик не ожидаает встретить сигнатуру и комментарий.
3. Чтобы нормально распаковывать этим приписываемым распаковщиком картинки без распаковщика (с сигнатурой), надо просто пропатчить в распаковщике указатель на данные, чтобы были пропущены сигнатура и комментарий и указатель был установлен сразу на упакованные данные картинки.
4. А лучше использовать готовый релоцируемый распаковщик (во вложении скомпилированный файл).
Используется так:
Загружаете распаковщик куда вам удобно.
Загружаете картинку или несколько картинок.

LD HL,packed_scr ;адрес загруженной пакованной картинки бе распаковщика.
CALL depacker ;распаковка картинки на экран.


исходный код депакера:

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



Code:

;---------------------------------------
; Depacker Laser Compact 5.2
; +0(5): "LCMP5"
; +5(2): Length screen without header
; +7(1): Additional info length:
;-------
; 11 byte - File name
; N byte - Comment.
;-------
;(C) Hrumer. 06.12.99. Hrumer@inbox.ru
;
; IN: HL - Address of compressed screen
;---------------------------------------


ADR    EQU #4000;#8000;#C000

DECOMPR
        LD DE,7;SKIP "LCMP5" & LENGTH
        ADD HL,DE

        LD A,(HL)
        INC HL
        LD E,A
        ADD HL,DE

        LD A,(HL)
        LD E,A ;разрыв

        AND 3
        RLCA
        RLCA
        RLCA
        OR ADR/256

        EXX
        LD D,A ;начало
        LD E,0
        EXX

        LD A,(HL)
        INC HL
        XOR ADR/256+#18
        AND #FC
        LD HX,A ;конец ч.изо.

DLC1    LD A,(HL)
        INC HL
        LD LX,#FF
DLC2
        EXX
        JR NZ,DLC10
        LD B,1

DLC3    EXA
        SLA D
        JR NZ,$+6
        LD D,(HL)
        INC HL
        SLI D

        DJNZ DLC7

        JR C,DLC1

        INC B
;-----------
DLC4    LD C,%01010110
        LD A,#FE
DLC5    SLA D
        JR NZ,$+6
        LD D,(HL)
        INC HL
        RL D
        RLA
        SLA C
        JR Z,DLC6
        JR C,DLC5
        RRCA
        JR NC,DLC5
        SUB 8
DLC6    ADD A,9
;---------
        DJNZ DLC3

        CP 0-8+1
        JR NZ,$+4
        LD A,(HL)
        INC HL

        ADC A,#FF
        LD LX,A
        JR C,DLC4
        LD HL,#2758
        EXX
        RET
;-------------
DLC7    LD A,(HL)
        INC HL

        EXX
        LD L,A
        EXA
        LD H,A
        ADD HL,DE

        CP #FF-2
        JR NC,DLC8
        DEC LX
DLC8
        LD A,H
        CP HX
        JR NC,DLC13
        XOR L
        AND #F8
        XOR L
        LD B,A
        XOR L
        XOR H
        RLCA
        RLCA
        LD C,A

DLC9    EXA
        LD A,(BC)
DLC10  EXA
        LD A,D
        CP HX
        JR NC,DLC14
        XOR E
        AND #F8
        XOR E
        LD B,A
        XOR E
        XOR D
        RLCA
        RLCA
        LD C,A

DLC11  EXA
        LD (BC),A

        INC DE
        JR NC,$+4
        DEC HL
        DEC HL
        INC HL
        EXA
        INC LX
        JR NZ,DLC8
        JR DLC2

DLC13  SCF
DLC14  PUSH AF
        EXX
        ADD A,E
        EXX
        LD B,A
        POP AF
        LD C,E
        JR NC,DLC11
        LD C,L
        JR DLC9
LENGDEC EQU $-DECOMPR

[свернуть]

newart 18th October 2010 02:19

Quote:

Originally Posted by Лас (Post 323728)
В картинке, записанной с распаковщиком, отсутствует сигнатура LCMP5

В картинке без распаковщика сигнатуры тем более нет.
Ты путаешь BGE LC и LC 5.2, к которому поставляется распаковщик.

Лас 18th October 2010 02:32

Quote:

Originally Posted by newart (Post 323731)
В картинке без распаковщика сигнатуры тем более нет.
Ты путаешь BGE LC и LC 5.2, к которому поставляется распаковщик.

Я говорю о картинках, упакованных и сохраненных в BGE с помощью плагина BLC1.2
А ты о чем?

newart 18th October 2010 02:43

Quote:

Originally Posted by Лас (Post 323735)
Я говорю о картинках, упакованных и сохраненных в BGE с помощью плагина BLC1.2
А ты о чем?

О них же. Они были в моем TRD, и там никакой сигнатуры нет и впомине.

Лас 18th October 2010 02:55

Quote:

Originally Posted by newart (Post 323741)
О них же. Они были в моем TRD, и там никакой сигнатуры нет и впомине.

В приложенном .trd картинки, записанные с депакером - нормальные.
С картинками, записанными без упаковщика проблема - там все, что угодно, только не пакованный скрин. Это 100%.
Советую проверить либо настройки BGE в части плагинов, либо настройки эмуля в части памяти.

Лас 18th October 2010 03:02

2 Attachment(s)
Вот что у меня пишет из BGE плагин Burial Laser Compact 1.02:

newart 18th October 2010 03:06

Quote:

Originally Posted by Лас (Post 323744)
Вот что у меня пишет из BGE

Какая версия BGE? У меня 2.x


All times are GMT +4. The time now is 20:59.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.