Jump to content

Tony Cruise

  • Content Count

  • Joined

  • Last visited

Community Reputation

412 Excellent

About Tony Cruise

  • Rank

Profile Information

  • Gender
  • Location
    Tasmania, Australia
  • Interests
    Specravideo & MSX developer from back in the day, now a collector of retro systems. Looking at porting my Spectravideo & MSX titles to the Colecovision.
  • Currently Playing
    Diablo III PS4, No Mans Sky & Tomb Raider
  • Playing Next
    Berzerk arcade

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Well that took far less time than expected, Lunar Rescue is now early beta, playable, couple of little niggles but not far off being released! Just need to work on 1/2 player mode, high score, additional intro screen and any fixes from play testing.
  2. I think I might have put my hand up for that on one of the other threads. I haven’t started any work on it though. Sent from my iPhone using Tapatalk
  3. Toby at Collectorvision indicated today that he has two copies left of the 2nd run, so message him and he will set you up with a copy.
  4. You might want to look at some different International postage options, the priority shipping you have as the only selection is more than the price of the game.
  5. I use Sublime text editor, GitKraken for source control, TNIASM, and BlueMSX with it's inbuilt debugger on a Windows machine. And of course my Sprite and Tile Editor
  6. Version 1.0.7923.34004 Uploaded. Main change is to re-published with a new app signing certificate as the other one had expired. This provider, Sectigo, is more trusted so less people should have issues installing on Windows 10 and pass most Malware and Anti-virus scanners as trusted. More actual functionality updates soon.
  7. Ok key things is how the RAM tables are setup, here is a full example: Code to initialise: ; Initialise sound LD B,SoundDataCount ;Max number of active voices+effects LD HL,SoundAddrs CALL SOUND_INIT Wrapper function for PLAY_IT: ; ; Play a sound, protects the calling routine from common ; registers being changed. ; B = Sound to play SOUND: PUSH IX PUSH IY PUSH HL PUSH DE CALL PLAY_IT POP DE POP HL POP IY POP IX RET My standard NMI: ; ; NMI routine ; NMI: PUSH AF PUSH BC PUSH DE PUSH HL PUSH IX PUSH IY EX AF,AF' PUSH AF EXX PUSH BC PUSH DE PUSH HL ; update our time counter LD HL,(TIME) DEC HL LD (TIME),HL ;Now we can safely call any OS7 calls CALL PLAY_SONGS ;Update active music CALL SOUND_MAN ;Prepare for next go at music ; write sprite table CALL SPRWRT LD A,(VDU_HOOK) CP 0cdh JR NZ,NMI2 CALL VDU_HOOK NMI2: CALL TIME_MGR ;Now restore everything POP HL POP DE POP BC EXX POP AF EX AF,AF' POP IY POP IX POP HL POP DE POP BC CALL READ_REGISTER ;Side effect allows another NMI to happen POP AF RETN ;Non maskable interrupt Sound data area in ROM: ;************************************************************************************************** ; Sound and music data area ;************************************************************************************************** ; Shoot shoot1: DB $c3,$30,$71,$0d,$32,$10,$14,$12 ; tone freq 1962,5Hz swept down - vol 12 swept down - len 4 DB $90 ; end ; Explode explode1: DB 002h,006h,20,01fh,041h DB 010h DW 00000h enemyshoot: DB $81,$87,$30,$04,$12,$02 ; tone freq 828,6Hz swept down - vol 12 - length 6 DB $81,$87,$50,$04,$12,$02 ; tone freq 828,6Hz swept down - vol 10 - length 6 DB $81,$87,$70,$04,$12,$02 ; tone freq 828,6Hz swept down - vol 8 - length 6 DB $90 ; end bonus: DB 0c1h, 095h, 070h, 002h, 031h, 040h ; C5 035 V15 DB 090h DW 0000 sfx_EXPLOSION3_0: DB $00,$00,$37,84 DB $10 sfx_EXPLOSION3_3: DB $c0,$e7,$f3,1 DB $c0,$d1,$f3,1 DB $c0,$91,$f3,1 DB $c0,$55,$f1,1 DB $c0,$45,$f3,1 DB $c0,$59,$f1,1 DB $c0,$53,$f1,1 DB $c0,$59,$f3,1 DB $c0,$45,$f1,2 DB $c0,$59,$f3,1 DB $c0,$45,$f1,1 DB $c0,$65,$f3,1 DB $c0,$61,$f3,1 DB $c0,$53,$f0,1 DB $c0,$51,$f0,1 DB $c0,$5b,$f3,1 DB $c0,$4f,$f0,1 DB $c0,$7b,$f3,1 DB $c0,$77,$f3,1 DB $c0,$53,$f0,1 DB $c0,$47,$f0,1 DB $c0,$77,$f3,2 DB $c0,$47,$f0,2 DB $c0,$7d,$f3,2 DB $c0,$55,$f0,2 DB $c0,$71,$f3,1 DB $c0,$55,$f0,1 DB $c0,$53,$f0,1 DB $c0,$6d,$f3,1 DB $c0,$63,$f3,1 DB $c0,$5f,$f1,2 DB $c0,$67,$f3,1 DB $c0,$5f,$f1,2 DB $c0,$91,$f3,1 DB $c0,$9d,$f3,1 DB $c0,$e7,$f3,1 DB $c0,$d1,$f3,1 DB $c0,$91,$f3,1 DB $c0,$55,$f1,1 DB $c0,$45,$f3,1 DB $c0,$59,$f1,1 DB $c0,$53,$f1,1 DB $c0,$59,$f3,1 DB $c0,$45,$f1,2 DB $c0,$59,$f3,1 DB $c0,$45,$f1,1 DB $c0,$65,$f3,1 DB $c0,$61,$f3,1 DB $c0,$53,$f0,1 DB $c0,$51,$f0,1 DB $c0,$5b,$f3,1 DB $c0,$4f,$f0,1 DB $c0,$7b,$f3,1 DB $c0,$77,$f3,1 DB $c0,$53,$f0,1 DB $c0,$47,$f0,1 DB $c0,$77,$f3,2 DB $c0,$47,$f0,2 DB $c0,$7d,$f3,2 DB $c0,$55,$f0,2 DB $c0,$71,$f3,1 DB $c0,$55,$f0,1 DB $c0,$53,$f0,1 DB $c0,$6d,$f3,1 DB $c0,$63,$f3,1 DB $c0,$5f,$f1,2 DB $c0,$67,$f3,1 DB $c0,$5f,$f1,2 DB $c0,$91,$f3,1 DB $c0,$9d,$f3,1 DB $d0 ;************************************************************************************************** ; Sound settings ;************************************************************************************************** SoundDataCount: EQU 7 Len_SoundDataArea: EQU 10*SoundDataCount+1 ;7 data areas SoundAddrs: DW shoot1,SoundDataArea ; 1 drop depth charge sound (Channel 1) DW explode1,SoundDataArea+30 ; 2 enemy explode DW bonus,SoundDataArea+20 ; 3 add bonus points DW enemyshoot,SoundDataArea+10 ; 4 enemy shoot DW sfx_EXPLOSION3_0,SoundDataArea+40 ; 5 Ship explosion DW sfx_EXPLOSION3_3,SoundDataArea+50 ; 6 Ship explosion DW 0,0 And finally the RAM definition: ; Sound Data area - 7 songs SoundDataArea: DS Len_SoundDataArea Key here is which sound buffer you want each sound to use, so the explosion is triggered and plays on two different channels and buffers and will continue even if other sounds are played at the same time. To trigger the explosion I would use the following code: LD B,5 CALL SOUND LD B,6 CALL SOUND All the above is from the Colecovision version of Depth Charge.
  8. I'll PM you. There is a java based tool that can help too (with a little bit of manual adjustment to what it generates).
  9. Version 1.0.7882.36063 Uploaded. Minor update shows four sprite patterns on the right hand side. Click in each segment to change that segment to the current sprite.
  10. Yep I agree looks to be in the native format for the BIOS sound routines. They work quite well, for the amount of memory and cycles it uses. I manage to squeeze Cavern Fighter into stock Colecovision by reducing the buffers the sound routines use.
  11. Both good suggestions, I'll see what I can do. Also I had another thing I wanted for myself (specifically with the bigger sprites needed in Kangaroo and the mothership in Lunar Rescue), the ability to view final sprites together. So you still edit one at a time, but you can lay out more than one sprite in perhaps up to a 2 x 2 grid of sprite shapes.
  12. Yeah my physical Colecovision is 50Hz, BlueMSX defaults to 60Hz. The samples play well and don't slow the gameplay down. I can hear the voices, but others can't understand them. I have compressed everything in Berzerk down to 17.7k with the existing samples, so I was thinking of also including samples for the MSX/SGM graphics chip, if detected and they will be able to use the larger number of volume graduations and it will still fit in a 32k ROM.
  13. Released a new version, with some bug fixes to the repainting the sprite list when you change the order of the sprites i.e. move them up or down in the list. Fixed a crash when loading an old file.
  • Create New...