AY music: PT3 player!

Probably the most technical forum around. It does not have to be coding related, or assembly code only. Just talk about how you can use the AY chip to do cool sounding things :)
Post Reply
User avatar
Wing Commander
Posts: 1334
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria

AY music: PT3 player!

Post by iss »

Hello all!
Great news: our Oric has PT3 player!

Thanks to French Touch, who shared his incredible work, now everyone can create new demos, add PT3 music to games and enjoy these high quality tunes.

Visit French Touch youtube channel to see his demos.
There you can find zipped sources and some DSKready to play. (I attach below the same ZIP just to mirror this precioussss;)).

Fun detail is that I was following the work of deater78 on comp.sys.apple2, planing to port his code for Oric... and surprise, surprise - French Touch come with his master piece - ready to use PT3 player!!!

Merci beaucoup, French Touch!
(1 MiB) Downloaded 365 times

User avatar
Game master
Posts: 2839
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN

Re: AY music: PT3 player!

Post by Chema »

I have just downloaded and tested it and I am quite impressed!!!

At least a pro-tracker for our Oric which is compatible with Vortex... is this true?

I'll give a look at the size and CPU usage (which I guess will be quite high), but it is indeed a great job. And excelent news for our community.

User avatar
Site Admin
Posts: 3790
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway

Re: AY music: PT3 player!

Post by Dbug »

Very cool :)

The code is a bit confusing, is that actually a Z80 emulator???

Code: Select all

    ; "registers" Z80
    ; A = A
    ; F = flags
    z80_A   .dsb 1      ; save A
    z80_C   .dsb 1
    z80_B   .dsb 1
    z80_E   .dsb 1
    z80_D   .dsb 1
    z80_L   .dsb 1
    z80_H   .dsb 1
    z80_IX  .dsb 2
    z80_AP  .dsb 1      ; save A'
to anyone trying to optimize it: There's a lot of self modified code that is not obvious at first glance.

Like for example:

Code: Select all

        LDA #$AC             <-- Put AC in A
        STA z80_E
        STA (z80_IX),Y
        LDA #$AC             <-- Look mum, an optimization, I can just remove that one!
        STA z80_D
        STA (z80_IX),Y

	LDY #Note   							    				
	LDA (z80_IX),Y
	STA PrNote+1												
	LDY #CrTnSl    		    						    		
	LDA (z80_IX),Y                                              
	STA PrSlide+1	   <-- Not so fast! Patches the first one!
	LDA (z80_IX),Y											
	STA PrSlide+8	   <-- Not so fast! Patches the second one!

Post Reply