Initial commit

This commit is contained in:
mcphail committed 2024-10-21 08:30:19 +00:00
commit 64b7536fd5
7 files changed
+1251

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
*.tap
sounds/
+8
View File
@@ -0,0 +1,8 @@
limmysswearingxylophone.tap: loader.tap xylo.tap
cat loader.tap xylo.tap > limmysswearingxylophone.tap
loader.tap: loader.bas
zmakebas -l -a @code -n "limxylo" -o loader.tap loader.bas
xylo.tap: xylo.asm sample.asm
pasmo --tap xylo.asm xylo.tap
+19
View File
@@ -0,0 +1,19 @@
# Limmy's Swearing Xylophone ZX Spectrum Port
This is a simple ZX Spectrum port of [Limmy's Swearing Xylophone](https://daftlimmy.github.io/SwearingXylophone/).
The website and this port are **not safe for work**. You have been warned.
## Files
|File|Purpose|
|----|-----------|
|README.md|This file.|
|Makefile|Run `make` to build the project. It requires `pasmo` and `zmakebas` to be installed on your system and produces the `limmysswearingxylophone.tap` file which can be loaded in a Spectrum emulator.|
|loader.bas|BASIC file which will be converted to a `tap` file by `zmakebas`. It loads the machine code and sets the screen.|
|xylo.asm|Z80 assembler file which reads keystrokes and calls the relevant sample routines.|
|sample.asm|Z80 assembler file created by [BeepFX](https://shiru.untergrund.net/software.shtml) containing the sample player code and sample data. The generated code is given under a permissive licence. It has been hand-edited to remove spurious code.|
|limmy.spj|Project file for BeepFX. The samples were downloaded from Limmy's original site and down-converted with `sox -V3 -D file.mp3 -r 9560 -b 8 -e unsigned -c1 file.wav` before being loaded into the project.|
## Licence
This is just a bit of fun. I made it to explore using sampled sound on a ZX Spectrum. Most of the code is generated by BeepFX, and the original application, design and samples are all Limmy's. Please don't distribute binaries or sell this without permission from the man himself. You can edit the bits which are my code as you wish and distribute that code however you see fit. Patches welcome.
+1
View File
@@ -0,0 +1 @@
SoundEffectsProjectV2 25 You_1 1 3 10 1000 200 0 100 0 128 0 19 0 0 You_2 1 3 10 1000 200 0 100 0 128 0 19 1 0 You_3 1 3 10 1000 200 0 100 0 128 0 19 2 0 You_4 1 3 10 1000 200 0 100 0 128 0 19 3 0 You_5 1 3 10 1000 200 0 100 0 128 0 19 4 0 Are_1 1 3 10 1000 200 0 100 0 128 0 19 5 0 Are_2 1 3 10 1000 200 0 100 0 128 0 19 6 0 Are_3 1 3 10 1000 200 0 100 0 128 0 19 7 0 Are_4 1 3 10 1000 200 0 100 0 128 0 19 8 0 Are_5 1 3 10 1000 200 0 100 0 128 0 19 9 0 A_1 1 3 10 1000 200 0 100 0 128 0 19 10 0 A_2 1 3 10 1000 200 0 100 0 128 0 19 11 0 A_3 1 3 10 1000 200 0 100 0 128 0 19 12 0 A_4 1 3 10 1000 200 0 100 0 128 0 19 13 0 A_5 1 3 10 1000 200 0 100 0 128 0 19 14 0 Fucking_1 1 3 10 1000 200 0 100 0 128 0 19 15 0 Fucking_2 1 3 10 1000 200 0 100 0 128 0 19 16 0 Fucking_3 1 3 10 1000 200 0 100 0 128 0 19 17 0 Fucking_4 1 3 10 1000 200 0 100 0 128 0 19 18 0 Fucking_5 1 3 10 1000 200 0 100 0 128 0 19 19 0 Cunt_1 1 3 10 1000 200 0 100 0 128 0 19 20 0 Cunt_2 1 3 10 1000 200 0 100 0 128 0 19 21 0 Cunt_3 1 3 10 1000 200 0 100 0 128 0 19 22 0 Cunt_4 1 3 10 1000 200 0 100 0 128 0 19 23 0 Cunt_5 1 3 10 1000 200 0 100 0 128 0 19 24 0 460 19 1_1.mp3 255 255 255 0 0 0 0 15 255 255 255 255 255 217 0 0 0 0 7 255 255 255 191 255 34 0 0 0 0 111 255 255 254 239 217 147 0 0 0 1 255 255 255 255 255 236 0 0 0 3 255 255 255 255 255 224 0 0 1 31 255 255 191 255 255 192 0 0 8 255 255 201 255 255 240 0 0 1 223 255 176 159 255 254 0 0 0 55 255 224 31 255 255 0 0 0 25 255 240 7 255 255 128 0 0 15 255 224 3 255 255 64 0 0 7 255 232 1 255 255 128 0 0 7 255 224 1 255 255 192 0 0 3 255 240 0 255 255 224 0 0 3 255 240 0 255 255 224 0 0 3 255 240 0 255 255 224 0 0 3 255 240 0 127 255 240 0 0 3 255 240 0 255 255 240 0 0 1 255 248 0 127 255 248 0 0 1 255 248 0 127 255 248 0 0 0 255 252 0 63 255 252 32 0 0 127 254 0 31 255 255 16 0 0 63 255 0 31 255 255 128 0 0 63 255 0 15 255 255 128 0 0 31 255 128 7 255 255 198 0 0 15 255 192 7 255 255 227 128 0 7 255 224 3 255 255 112 192 0 3 255 240 1 255 255 184 48 0 1 255 248 1 255 255 220 16 0 1 255 248 1 255 255 204 48 0 1 255 248 0 255 255 196 16 0 1 255 248 1 255 255 196 0 0 3 255 240 1 255 255 136 0 0 3 255 224 1 255 255 8 0 0 7 255 224 3 255 255 24 64 0 7 255 224 3 255 255 19 224 0 7 255 192 7 255 254 19 224 0 7 255 224 7 255 254 31 240 0 7 255 224 3 255 255 31 240 0 3 255 240 3 255 253 143 252 0 0 255 236 0 255 255 127 254 0 0 31 252 0 127 255 255 255 192 0 0 255 240 31 255 255 255 252 0 0 0 3 255 255 255 255 255 248 0 0 0 0 1 255 255 255 255 254 0 0 0 0 0 31 239 255 255 239 252 0 0 0 0 0 0 0 0 0 0 2 0 63 32 0 0 0 0 0 0 61 231 255 255 224 3 499 19 1_2.mp3 255 248 0 0 31 255 255 255 254 0 0 0 63 255 255 240 0 0 0 6 255 255 160 7 255 255 64 0 0 3 255 255 252 0 0 0 3 127 255 254 223 255 255 128 0 1 255 255 255 255 255 240 0 0 63 255 255 255 255 255 0 0 3 255 255 255 255 255 224 0 0 127 255 255 255 255 252 0 0 63 255 255 255 255 255 0 0 31 255 255 79 255 254 0 0 31 255 251 23 255 252 0 0 31 255 240 31 255 248 0 0 31 255 192 31 255 240 0 1 63 255 128 63 255 192 0 3 127 252 0 63 255 128 0 3 127 248 1 127 255 0 0 6 255 248 7 255 254 0 0 31 255 224 15 255 252 0 0 63 255 0 31 255 240 0 0 239 252 0 127 255 192 0 3 255 240 0 255 255 128 0 7 255 224 3 255 252 0 0 31 255 128 15 255 224 0 0 127 254 0 63 255 128 0 1 255 248 0 255 255 0 0 7 255 224 3 255 252 0 0 31 255 128 31 255 240 0 0 127 254 0 127 255 192 0 3 255 240 3 255 254 0 0 15 255 192 15 255 248 0 0 127 254 0 127 255 224 0 1 255 248 1 255 255 0 0 15 255 192 15 255 248 0 0 63 255 0 127 255 224 0 1 255 248 1 255 255 0 0 7 255 224 15 255 252 0 0 63 255 0 127 255 160 0 1 255 248 3 255 255 128 0 15 254 192 31 255 236 0 0 127 246 0 255 255 96 0 3 255 176 7 255 251 0 0 31 253 128 63 255 216 0 0 255 236 1 255 254 192 0 7 255 96 15 255 228 0 0 63 247 0 127 255 32 0 1 255 184 7 255 241 0 0 15 253 128 63 255 136 0 0 127 236 1 255 252 64 0 3 255 240 15 255 226 0 0 15 255 128 63 255 128 0 0 63 255 0 255 255 0 0 0 255 252 1 255 254 0 0 1 255 248 3 255 248 0 0 3 255 240 15 255 252 0 0 3 255 252 79 255 240 0 0 0 255 255 255 255 255 192 0 0 7 255 255 255 255 254 0 0 0 127 255 255 255 255 254 0 0 0 63 255 255 255 255 255 0 0 0 3 191 255 255 255 243 8 0 0 63 255 255 255 255 255 240 0 15 255 255 658 19 1_3.mp3 254 255 255 189 216 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 255 248 0 0 3 255 255 224 0 0 63 255 248 0 3 255 255 128 0 255 255 255 255 255 255 255 255 255 255 255 255 160 0 31 255 255 254 0 0 1 255 255 255 0 0 0 15 255 255 255 255 0 0 7 255 255 255 252 0 0 0 255 255 255 248 0 0 0 63 255 255 255 240 0 0 3 255 255 255 236 128 0 0 127 255 255 255 64 0 0 47 255 255 255 208 0 0 47 255 255 255 251 0 0 31 255 255 255 252 0 0 31 255 255 255 240 0 0 255 255 255 255 224 0 15 255 255 255 255 0 0 255 255 255 255 240 0 15 255 253 159 254 0 1 255 255 25 255 192 0 63 255 225 63 248 0 7 255 240 63 254 0 1 255 248 15 255 128 0 127 254 3 255 224 0 31 255 128 127 248 0 23 255 224 31 254 0 5 255 248 15 255 128 3 255 246 3 255 224 0 255 255 1 255 240 0 127 254Line truncated
+18
View File
@@ -0,0 +1,18 @@
border 0: paper 0: ink 7: bright 1: cls
print at 0,7;"\ .\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\. "
for i=1 to 15
print at i,7;"\ :\{0x11}\{5} \{0x11}\{6} \{0x11}\{4} \{0x11}\{3} \{0x11}\{1} \{0x11}\{0}\: "
next i
print " \ '\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\' "
print
print " 1 2 3 4 5"
print
print "https://daftlimmy.github.io/"
print " SwearingXylophone"
randomize usr 51000
@code:
clear 50999
load ""code
run
+1140
View File
File diff suppressed because it is too large. Load diff
+63
View File
@@ -0,0 +1,63 @@
org 51000
zero_counter:
xor a
set_counter:
ld (counter), a
read_keyboard:
ld bc, &f7fe
in a, (c)
srl a
jr nc, key_1
srl a
jr nc, key_2
srl a
jr nc, key_3
srl a
jr nc, key_4
srl a
jr nc, key_5
jr read_keyboard
key_1:
ld a, (counter)
call play
jr inc_counter
key_2:
ld a, (counter)
inc a
call play
jr inc_counter
key_3:
ld a, (counter)
inc a
inc a
call play
jr inc_counter
key_4:
ld a, (counter)
add a, 3
call play
jr inc_counter
key_5:
ld a, (counter)
add a, 4
call play
inc_counter:
ld a, (counter)
add a, 5
cp 25
jr nz, set_counter
jr zero_counter
counter:
defb 0
INCLUDE "sample.asm"