It's written in a custom version of Monkey2 (called MX2). This is a version of BASIC.
The audio is a custom written system called QasarBeach, which provides all audio, synth and sequencer functions. In essence it is configured as a 16 voice synth with samples, wavetables, modulation etc. QasarBeach has full sequencing features, so it was a case of getting the right sounds (single sound for 48k, 3 sounds + noise for 128k, and 8 sounds for Next) These all reside together and depending on the spectrum type, sounds are muted and not played.
The graphics were done in FontSprite using a ZX-Spectrum palette. This gives 256 ''characters' to play with. There are multiple fonts being used with the general character size being 16x16 pixels.
The map is created in FontMap. And uses multiple layers to create the map and item locations. There are read in and partly randomised so that each game has different locations for items.