Skip to content

Commit

Permalink
PMD-85 port
Browse files Browse the repository at this point in the history
  • Loading branch information
gameblabla committed Mar 24, 2023
1 parent e5d0858 commit fd3bb8c
Show file tree
Hide file tree
Showing 59 changed files with 1,995 additions and 0 deletions.
Binary file added PMD85/BAKURA.ZX0
Binary file not shown.
Binary file added PMD85/BAKURA.ZX1
Binary file not shown.
Binary file added PMD85/BAKURAPMD.85A
Binary file not shown.
Binary file added PMD85/BAKURAPMD.85D
Binary file not shown.
Binary file added PMD85/BAKURAPMD.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PMD85/BAKURAPMD_COLORACE.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PMD85/BAKURA_COLORACE.85h
Binary file not shown.
Binary file added PMD85/BAKURA_COLORACE.BIN
Binary file not shown.
Binary file added PMD85/CACA/DaDither.exe
Binary file not shown.
Binary file added PMD85/CACA/FRAME1.85H
Binary file not shown.
Binary file added PMD85/CACA/FRAME1C.BIN
Binary file not shown.
Binary file added PMD85/CACA/FRAME2.85H
Binary file not shown.
Binary file added PMD85/CACA/FRAME2C.BIN
Binary file not shown.
Binary file added PMD85/CACA/FRAME3.85H
Binary file not shown.
Binary file added PMD85/CACA/FRAME3C.BIN
Binary file not shown.
Binary file added PMD85/CACA/FRAME4.85H
Binary file not shown.
Binary file added PMD85/CACA/FRAME4C.BIN
Binary file not shown.
Binary file added PMD85/CACA/FRAMES.zip
Binary file not shown.
Binary file added PMD85/DaDither.exe
Binary file not shown.
Binary file added PMD85/FRAME1.85H
Binary file not shown.
Binary file added PMD85/FRAME1.bin
Binary file not shown.
Binary file added PMD85/FRAME1C.BIN
Binary file not shown.
Binary file added PMD85/FRAME1C.ZX1
Binary file not shown.
Binary file added PMD85/FRAME2.bin
Binary file not shown.
Binary file added PMD85/FRAME2C.BIN
Binary file not shown.
Binary file added PMD85/FRAME2C.ZX1
Binary file not shown.
Binary file added PMD85/FRAME2_COLORACE.85H
Binary file not shown.
Binary file added PMD85/FRAME3.bin
Binary file not shown.
Binary file added PMD85/FRAME3C.BIN
Binary file not shown.
Binary file added PMD85/FRAME3C.ZX1
Binary file not shown.
Binary file added PMD85/FRAME4C.BIN
Binary file not shown.
Binary file added PMD85/FRAME4C.ZX1
Binary file not shown.
Binary file added PMD85/IMG.AP
Binary file not shown.
Binary file added PMD85/IMG.ZX0
Binary file not shown.
Binary file added PMD85/IMG.ZX1
Binary file not shown.
Binary file added PMD85/IMG.ZX5
Binary file not shown.
15 changes: 15 additions & 0 deletions PMD85/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Copyright Infringement PMD-85 version
======================================

Here's the PMD-85 version of the game.
Sadly it's not as good as i wanted it to be, in part because
the ZX1 decompressor was extremely slow on this machine so i had to resort
to reducing the frame's size.

This version takes advantage of ColorAce if you have it on your machine
however it will work in B&W too.

This was a mostly straight forward machine.
I was confused at first until i looked at the memory map on MAME then it was mostly straight forward.
I encountered Intel 8080 specific issues especially since it's still not fully supported
so i had to import my own copies of ZX1 and ZX0.
Binary file added PMD85/SCREEN.BIN
Binary file not shown.
Binary file added PMD85/TITLE.BIN
Binary file not shown.
Binary file added PMD85/TITLE.ZX0
Binary file not shown.
Binary file added PMD85/TITLEC.BIN
Binary file not shown.
Binary file added PMD85/_IMG.ZX0
Binary file not shown.
Binary file added PMD85/a.bin
Binary file not shown.
Binary file added PMD85/copyright_infringement_pmd85_gameblabla.ptp
Binary file not shown.
Binary file added PMD85/cut.85A
Binary file not shown.
Binary file added PMD85/cut.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PMD85/cut1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added PMD85/cut2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions PMD85/data.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
SECTION data_user

PUBLIC _bakura_data
PUBLIC _title_data
PUBLIC _frame1_data
PUBLIC _frame2_data
PUBLIC _frame3_data
PUBLIC _frame4_data

_bakura_data:
INCBIN "BAKURA.ZX0"
_title_data:
INCBIN "TITLE.ZX0"


_frame1_data:
INCBIN "FRAME1C.BIN"
_frame2_data:
INCBIN "FRAME2C.BIN"
_frame3_data:
INCBIN "FRAME3C.BIN"
_frame4_data:
INCBIN "FRAME4C.BIN"

75 changes: 75 additions & 0 deletions PMD85/dzx0.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
PUBLIC _dzx0_decompress

_dzx0_decompress:
lxi h,0FFFFh
push h
inx h
mvi a,080h
dzx0_literals:
call dzx0_elias
call dzx0_ldir
jc dzx0_new_offset
call dzx0_elias
dzx0_copy:
xchg
xthl
push h
dad b
xchg
call dzx0_ldir
xchg
pop h
xthl
xchg
jnc dzx0_literals
dzx0_new_offset:
call dzx0_elias

mov h,a
pop psw
xra a
sub l
rz
push h
rar\ mov h,a
ldax d
rar\ mov l,a
inx d

xthl
mov a,h
lxi h,1
cnc dzx0_elias_backtrack

inx h
jmp dzx0_copy
dzx0_elias:
inr l
dzx0_elias_loop:
add a
jnz dzx0_elias_skip
ldax d
inx d
ral
dzx0_elias_skip:
rc
dzx0_elias_backtrack:
dad h
add a
jnc dzx0_elias_loop
jmp dzx0_elias

dzx0_ldir:
push psw
dzx0_ldir1:
ldax d
stax b
inx d
inx b
dcx h
mov a,h
ora l
jnz dzx0_ldir1
pop psw
add a
ret
118 changes: 118 additions & 0 deletions PMD85/dzx1.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
; -----------------------------------------------------------------------------
; ZX1 8080 decoder by Ivan Gorodetsky
; Based on ZX1 z80 decoder by Einar Saukas
; Compile with The Telemark Assembler (TASM) 3.2
; v1 (2021-02-16) - 131 bytes forward / 135 bytes backward
; v2 (2021-02-17) - 129 bytes forward / 133 bytes backward
; v3 (2021-02-22) - 124 bytes forward / 128 bytes backward
; v4 (2021-02-25) - 124 bytes forward / 128 bytes backward (faster version)
; v5 (2021-02-25) - 128 bytes forward / 132 bytes backward (+4 bytes, bug fix)
; -----------------------------------------------------------------------------
; Parameters (forward):
; DE: source address (compressed data)
; BC: destination address (decompressing)
;
; Parameters (backward):
; DE: last source address (compressed data)
; BC: last destination address (decompressing)
; -----------------------------------------------------------------------------

PUBLIC _dzx1_decompress

_dzx1_decompress:
lxi h,0FFFFh
shld Offset
mvi a,080h
cdzx1s_literals:
call cdzx1s_elias
push psw
dcx h
inr l
cdzx1s_ldir1:
ldax d
stax b
inx d
inx b
dcr l
jnz cdzx1s_ldir1
xra a
ora h
jz $+7
dcr h
jmp cdzx1s_ldir1
pop psw
add a
jc cdzx1s_new_offset
call cdzx1s_elias
cdzx1s_copy:
push d
xchg
lhld Offset
dad b
push psw
dcx d
inr e
cdzx1s_ldir2:
mov a,m
stax b
inx h
inx b
dcr e
jnz cdzx1s_ldir2
xra a
ora d
jz $+7
dcr d
jmp cdzx1s_ldir2
pop psw
xchg
pop d
add a
jnc cdzx1s_literals
cdzx1s_new_offset:
dcr h
push psw
ldax d
inx d
rar
mov l,a
jnc cdzx1s_msb_skip
ldax d
inx d
rar
inr a
jz cdzx1s_exit
mov h,a
mov a,l
ral
mov l,a
cdzx1s_msb_skip:
pop psw
shld Offset
call cdzx1s_elias
inx h
jmp cdzx1s_copy
cdzx1s_elias:
lxi h,1
cdzx1s_elias_loop:
add a
rnc
jnz cdzx1s_elias_skip
ldax d
inx d
ral
rnc
cdzx1s_elias_skip:
dad h
add a
jnc cdzx1s_elias_loop
inr l
jmp cdzx1s_elias_loop
cdzx1s_exit:
pop psw
ret

Offset:
defw 0
135 changes: 135 additions & 0 deletions PMD85/dzx5.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
; -----------------------------------------------------------------------------
; ZX5v2 8080 decoder by Ivan Gorodetsky
; Based on ZX5 z80 decoder by Einar Saukas
; v1 (2021-10-05) - 150 bytes code + 5 bytes variables
; v2 (2022-05-07) - 147 bytes code + 4 bytes variables
; -----------------------------------------------------------------------------
; Parameters (forward):
; HL: source address (compressed data)
; BC: destination address (decompressing)
;
; Parameters (backward):
; HL: last source address (compressed data)
; BC: last destination address (decompressing)
; -----------------------------------------------------------------------------

;#define BACKWARD


PUBLIC _dzx5
GLOBAL _dzx5

_dzx5:
lxi d,0FFFFh
push d
inx d
mvi a,080h
dzx5_literals:
call dzx5_elias
call ldir
jc dzx5_other_offset
dzx5_last_offset:
call dzx5_elias
dzx5_copy:
xthl
push h
dad b
call ldir
pop h
xthl
jnc dzx5_literals
dzx5_other_offset:
add a
jnz dzx5_other_offset_skip
mov a,m
inx h
ral
dzx5_other_offset_skip:
jnc dzx5_prev_offset
dzx5_new_offset:
xthl
push h
lhld dzx5_offset2
shld dzx5_offset3
pop h
shld dzx5_offset2
mov h,a
add a
xthl
mvi e,0FEh
call dzx5_elias_loop
inr e
jz dzx5_elias_exit
mov d,e
mov e,m
inx h
xchg
xthl
dcr h
xchg
lxi d,1
cp dzx5_elias_backtrack
inx d
jmp dzx5_copy
dzx5_prev_offset:
add a
xthl
push h
xchg
xthl
push h
lhld dzx5_offset3
xchg
lhld dzx5_offset2
jnc dzx5_second_offset
xchg
dzx5_second_offset:
xthl
shld dzx5_offset2
xchg
shld dzx5_offset3
pop h
xthl
xchg
pop h
xthl
jmp dzx5_last_offset

dzx5_elias:
inr e
dzx5_elias_loop:
add a
jnz dzx5_elias_skip
mov a,m
inx h
ral
dzx5_elias_skip:
rc
dzx5_elias_backtrack:
xchg\ dad h\ xchg
add a
jnc dzx5_elias_loop
jmp dzx5_elias
ldir:
push psw
ldir_loop:
mov a,m
stax b
inx h
inx b
dcx d
mov a,d
ora e
jnz ldir_loop
dzx5_elias_exit:
pop psw
add a
ret

dzx5_offset2:
defw 0
dzx5_offset3:
defw 0

.end
Binary file added PMD85/latest?cb=20170515095008
Binary file not shown.
Loading

0 comments on commit fd3bb8c

Please sign in to comment.