Add Vortex Tracker to MPAGD Jason Oakley, May 23, 2020May 23, 2020 I’ve recently completed my Spectrum game and wanted to add music to it. A cool guy I met on Twitter by the name of Mike Richmond kindly wrote a wonderful tune for my game using Vortex Tracker. Unfortunately, it’s been quite the headache to get this working with my MPAGD game. But, I’ve finally done it! To start off, I’ve edited the trailer.txt file which comes in the MPAGD ZX Suite to the following: ay_player_base: .equ $e000 ay_player_init: .equ ay_player_base ay_player_play: .equ ay_player_base + $05 ay_player_mute: .equ ay_player_base + $08 ay_player_setup_flag: .equ ay_player_base + $0A ay_player_position: .equ ay_player_base + $0B corey_mod: .equ $e86E code_start: .equ $df00 .org code_start music_init: ld hl,corey_mod call ay_player_init ret music_play: call ay_player_play ret ay_player_inc: .org ay_player_base INCHOB "Corey_music.$c" savetap "test.tap",start I exported the music + player from Vortex: Vortex export Kees was kind enough to provide me with a user.asm file which he was using to preserve colour in MPAGD and allows USER X calls to run z80 code. I added my own code for USER 6 for MPAGD: chk6 cp 6 jr nz,chk7 ld hl,corey_mod call ay_player_init ret To initialise the music player, you need to call USER 6 in the INTRO MENU event script. I call is just after “EVENT INTROMENU”. You could possibly put it in the GAME INITIALISATION section but I have not tested that. Now for the tricky bit. You need to edit the EngineZX.asm file to play the music from the correct location. Edit the vsync0 section to add the call to the music player: vsync0 ld a,(23672) ; current clock reading. cp (hl) ; are they the same? jr z,vsync0 ; yes, wait until clock changes. ld (hl),a ; set new clock reading. call music_play ; COREYMUSIC! ret vsync5 call plsnd ; play sound. The player needs to be put here otherwise you will only hear a static hissing sound while the player isn’t being called due to the cpu being busy waiting for the vsync.Also, if you are using MPAGD v0.7.9 or later you will need to edit BUILD.BAT file and remove code where it does the ‘del user.asm’ part in the sjasm folder. And that’s all there is to it! VOILA! 🙂 Programming MPAGDZX Spectrum
Turbo Rascal Syntax Error “;” expected but BEGIN August 29, 2021December 18, 2021 This past week I became interested in this funky development environment called TRSE. They have… Read More
VZ Front End February 6, 2021February 6, 2021 Now that Guy has released a new version of VZEm emulator for VZ200 and VZ300… Read More
TRSE Demo for VZ200 September 5, 2021December 18, 2021 I’ve added in support for non-destructable sprites and fixed a few other things (one with… Read More