English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 28 April 2021, 13:44   #21
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,607
8bitbubsy: Is it

Great work by the way. Cool to have this on my Amiga 1200/030
nikosidis is offline  
Old 28 April 2021, 13:48   #22
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
New version!

You now have to press ESC to stop the song, instead of holding down the mouse button (which would sometimes stop the song if you did other things with the mouse in Workbench).
However, ESC is still listened to even if the window is not in focus, and I don't know how to change that.

http://16-bits.org/etc/xmaplay_v026b.zip

Last edited by 8bitbubsy; 19 June 2021 at 12:48.
8bitbubsy is offline  
Old 19 June 2021, 12:49   #23
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
Updated again.

1) asl.library was not closed after closing the file requester instead of selecting a file
2) Remove spaces from end of string (fixes kingcon usage)

Still no changes to how audio is mixed (e.g. it can still hog the system if the song is too heavy for the CPU).

http://16-bits.org/etc/xmaplay_v027b.zip
8bitbubsy is offline  
Old 10 November 2022, 16:08   #24
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
xmaplay060 (68060+ version) is now included in the latest version of HippoPlayer.
It can be enabled by ticking the "Enable xmaplay060" checkbox in the Play-2 preference tab.

It uses Paula for output, at 14-bit 27710Hz.
Here's an example from WinUAE on how it sounds: https://www.dropbox.com/s/u0b7jel94y...ay060.mp3?dl=0
(it probably has a bit more noise on a real Amiga since it is uncalibrated)

Here's the standalone version of xmaplay060 v0.40 w/ source code:
https://16-bits.org/etc/xmaplay060_v040.zip

The non-060 version is now obsolete and considered buggy, as I decided to only go for a high-quality 68060 version (and fixed a ton of bugs at the same time).
8bitbubsy is offline  
Old 10 November 2022, 16:19   #25
TCD
HOL/FTP busy bee
 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,519
Quote:
Originally Posted by 8bitbubsy View Post
It uses Paula for output, at 14-bit 27710Hz.
Here's an example from WinUAE on how it sounds: https://www.dropbox.com/s/u0b7jel94y...ay060.mp3?dl=0
How many channels does that XM use? Sounds amazing
TCD is online now  
Old 10 November 2022, 16:22   #26
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
32 channels. It's " sofa surfin' " by falcon.
https://modarchive.org/index.php?req...id&query=61744
8bitbubsy is offline  
Old 10 November 2022, 16:46   #27
TCD
HOL/FTP busy bee
 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,519
Thank you
TCD is online now  
Old 10 November 2022, 19:34   #28
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,098
Nice. Tried it with a few modules and seems to sound fine (but I'm not musician). Had a brief look at the source code, and I think you can speed up the mixing code with a relatively simple change. The mixing macros all look more or less like:
Code:
	movem.w	(a3,d2.l*X),d4{/d5}
        ;
	add.w	a4,d7
	addx.l	d1,d2
When unrolled you have a 2-3 (depending on X) cycle "change/use" register stall on d2 (MC68060UM ยง10.3) . If you move the add/addx sequence a few instructions up (which I think should be possible) it can be avoided.

Probably move.w (...),d4 \ ext.l d4 is also faster than movem.w (..),d4 since ext is (pOEP|sOEP), but would require more changes.
paraj is offline  
Old 10 November 2022, 20:04   #29
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
Thanks, I'll do some benchmarks with your changes on my 68060 50MHz A1200.

How many instructions should I have inbetween D2 change (addx) and D2 use (move.w) for most optimal performance?

Last edited by 8bitbubsy; 10 November 2022 at 20:17.
8bitbubsy is offline  
Old 10 November 2022, 20:23   #30
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,098
Quote:
Originally Posted by 8bitbubsy View Post
Thanks, I'll do some benchmarks with your changes on my 68060 50MHz A1200.

How many instructions should I have inbetween D2 change (addx) and D2 use (move.w) for most optimal performance?
Just move them up as far as you can
After
addx.l d1,d2
it's 2 cycles until it's ready for (a3,d2.l) or 3 cycles for (a3,d2.l*2). So you could in principle fit in up to 6 instructions if they fit nicely (but I don' think that's likely in your case).
paraj is offline  
Old 10 November 2022, 20:57   #31
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
So moving the D2 change code did make a speed improvement!
movem -> move+ext however, turned out to not be any faster (but also not slower). Didn't try it for the 16-bit mixer, as it would require 2x move and 2x ext, which I assume will be slower.

I released a new version (w/ source) with the optimizations. If I were to guess, it should be around 1-4% faster.
https://16-bits.org/etc/xmaplay060_v041.zip

I spent a lot of time shuffling code around, and this is the fastest I could get it (even if it may look like more stuff should go inbetween D2 change and D2 use).

Last edited by 8bitbubsy; 10 November 2022 at 21:46.
8bitbubsy is offline  
Old 14 November 2022, 12:02   #32
Bruce Abbott
Registered User
 
Bruce Abbott's Avatar
 
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,544
Quote:
Originally Posted by 8bitbubsy View Post
The non-060 version is now obsolete and considered buggy, as I decided to only go for a high-quality 68060 version (and fixed a ton of bugs at the same time).
Yet another reason to avoid XM format.
Bruce Abbott is offline  
Old 14 November 2022, 13:37   #33
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
Quote:
Originally Posted by Bruce Abbott View Post
Yet another reason to avoid XM format.
Thanks...
8bitbubsy is offline  
Old 14 November 2022, 17:11   #34
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
xmaplay060 v0.42 released. It's now reading the ESC key properly, as some people had issues with it before.

https://16-bits.org/etc/xmaplay060_v042.zip
8bitbubsy is offline  
Old 15 November 2022, 15:45   #35
khph_re
Registered User
 
Join Date: Feb 2008
Location: Northampton/UK
Posts: 524
[QUOTE
The non-060 version is now obsolete and considered buggy, as I decided to only go for a high-quality 68060 version (and fixed a ton of bugs at the same time).[/QUOTE]

Well, only obsolete for 060 users.
khph_re is offline  
Old 17 November 2022, 19:34   #36
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
Since certain entitled gentlemen complained about me abandoning the horrible-sounding xmaplay020, I decided to update it to match the xmaplay060's level of bug-fixing.
This version can only do somewhere around 24-28 voices on a 68030 50MHz, and it has no interpolation nor volume ramping (click fest).

Download + source-code:
https://16-bits.org/etc/xmaplay020_v042.zip

Use this version if you have a 68060 or Vampire:
https://16-bits.org/etc/xmaplay060_v042.zip
8bitbubsy is offline  
Old 24 November 2022, 22:51   #37
TCD
HOL/FTP busy bee
 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,519
[ Show youtube player ]
I'm so pissed that people didn't stick with ProTracker and actually went on using more than 4 channels. /s
Edit: [ Show youtube player ]
TCD is online now  
Old 08 January 2023, 12:51   #38
8bitbubsy
Registered User
 
8bitbubsy's Avatar
 
Join Date: Sep 2009
Location: Norway
Posts: 1,710
25.11.2022: The volume output was wrong (slightly too quiet) on xmaplay020. Fixed.

08.01.2023: Fixed a bug where writes to a wrong memory address were happening while playing a song (thanks to koobo/K-P for discovering it).

15.01.2023: Fixed a bug where DisableAudioMixer could make the mixing loop freeze. This could potentially happen on exit (have never had it happen), or when calling SetPos/NextPattern/PrevPattern (would often happen).

19.02.2023: graphics.library would sometimes not open because of non-initialized d0 register. dos.library would also be closed instead of graphics.library on exit.

01.04.2023: Sample loop unrolling was sometimes wrong on pingpong/bidi samples. Minor change to BPM calculation (SamplesPerTick). xmaplay060: Linear interpolation tap sample fix for non-looping samples.

30.06.2023: xmaplay020 had a potential rare buffering issue for non-looping samples. xmaplay060 was not affected.

Download + source-code:
https://16-bits.org/etc/xmaplay020_v048.zip

(use this better-sounding version if you have a 68060 or Vampire: https://16-bits.org/etc/xmaplay060_v046.zip)

Last edited by 8bitbubsy; 30 June 2023 at 18:12.
8bitbubsy is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Tool to convert asm to gnu asm (gas) Asman Coders. Asm / Hardware 13 30 December 2020 11:57
ASM: Asm-ONE or AsmPro - how to set a Hello amiga coders, I hope it is ok to hijack ? Fireball Coders. Asm / Hardware 2 24 April 2020 21:16
Asm: 4 bitplanes starfield (68020+) alkis Coders. Asm / Hardware 20 06 September 2013 07:30
Replayer archive? absence Coders. General 4 17 March 2011 14:24
Best MOD replayer RickyD-II Coders. General 8 09 July 2007 03:04

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:20.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11333 seconds with 15 queries