11 March 2021, 00:24 | #1 |
Registered User
Join Date: Apr 2013
Location: paris
Posts: 133
|
A new really fast MOD replayer
Hi!
Another Amiga MOD replayer! Key feature of this one is .. speed Average speed per frame is 6 times faster than previous fastest amiga player. Hope you'll appreciate! https://www.pouet.net/prod.php?which=88177 |
11 March 2021, 00:28 | #2 |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
Yay. Can’t wait to try out. Just commented on pouet - how does it work as replayer code looks nothing like replay code would love an insight.
|
11 March 2021, 00:30 | #3 |
Registered User
Join Date: Jun 2020
Location: Druidia
Posts: 387
|
Sounds incredible!
Could you possibly write up some details on how players normally work and how you managed such an amazing improvement? I would be fascinated to hear the details! Thanks regardless! Awesome contribution! |
11 March 2021, 00:37 | #4 | |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
Quote:
[ Show youtube player ] |
|
11 March 2021, 00:47 | #5 |
Registered User
Join Date: Apr 2013
Location: paris
Posts: 133
|
basically all magic is in the converter and the new data format. The converter is really processing the music file (all mod fx are supported), and basically output a stream of direct amiga hardware register values. To keep the final data size reasonable I tested tons of various data encoding and I'm happy with the final result. LSP files are "almost" same size as original .mod file ( sometimes smaller, sometimes bigger, depends of the .mod)
The "insane" mode is a generated source code using a dedicated piece of code for every combine of hardware registers to set per frame. Obviously all combine won't fit, so only patterns used in the specific .mod are generated. I wrote LSP when I was writing some Amiga world records and I was annoyed by the "peak" time of all other player. Like if you want to beat a sinus-dots demo, every cycle count |
11 March 2021, 00:54 | #6 |
Registered User
Join Date: Jun 2020
Location: Druidia
Posts: 387
|
Thanks Leonard!
When can we see these record breaking effects? Revision???!! |
11 March 2021, 00:54 | #7 |
Registered User
Join Date: Feb 2012
Location: United Kingdom
Posts: 3,173
|
Already posted on another topic for the same player, but well done @leonard on this. I wonder how this will change things for the future of demo scene where every byte counts! I know there are some demo competitions for very small files on pouet so this could be a game changer - is there scope to use this on PC for say .xm type files?
|
11 March 2021, 00:54 | #8 |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
So sounds similar to the really old school spectrum 128 files where it’s a stream of output.
Current intro I’m working on is deep into note triggers and/or e8 triggeres. Can I message you about those? |
11 March 2021, 04:59 | #9 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,039
|
Took a quick look at the standard player. One question: are there any restrictions regarding the minimum sample size? It looks like you are using the same method to set the repeats as P61 in noshortsamples mode (postponed until the next frame, instead of after ~11 raster lines). |
11 March 2021, 09:11 | #10 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,409
|
This is really cool, I'll be checking it out for sure!
Great stuff, the code seems easy to integrate as well |
11 March 2021, 09:42 | #11 | |
Registered User
Join Date: Apr 2013
Location: paris
Posts: 133
|
Quote:
I still have some features I want to add for next version: - ability to "sync" music with demo effects, without losing any cycle if you don't need to sync ( probably generating a table with frame number <-> mod position. Then it's up to the user to sync using the frame count number - LSPConverter already "simulate" the complete mod and warn you if some samples are not played completely. Right now it's just a warn, but I can just strip the end of the sample ( I think no amiga tool is doing that right now ) |
|
11 March 2021, 09:51 | #12 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
|
Great stuff Leonard!
Quote:
|
|
11 March 2021, 09:56 | #13 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
|
@leonard
Would using the Copper as a feeder to the registers behind the visible portion of the display be a plausible upgrade path? It would allow the CPU portion of the player to mesh with the "copper node" sorting and interleaving so that multiple calls for when the tempo would have required multiple CIA interrupts to be replaced by a callback hook in the copper list generation. A fortunate side effect of counting timing by rows of rasters at 15KHz would work equally well on PAL and NTSC modes. Having to wrap around the vertical blank with copper activity would seem to be the only side effect, other than the music nodes being stored in Chip RAM. |
11 March 2021, 11:03 | #14 |
Registered User
Join Date: Apr 2013
Location: paris
Posts: 133
|
that's is definitively a good idea: doesn't slow down the replayer at all. I never found an audio issue with really short sample. Do you know any .mod file that have this "frame delay to set replen" issue I can test?
|
11 March 2021, 11:16 | #15 | |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
|
Quote:
That's really cool! If you do strip away the unused data, though, be sure to take care of PAL/NTSC base clock differences, and maybe leave a few bytes' headroom for the benefit of non-cycle-exact emulation? I'd also like to say thank you for sharing the source of your tiny LZ4 depacker. |
|
11 March 2021, 11:37 | #16 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,337
|
Very cool. I wonder... does it save anywhere near enough cycles to software mix two channels into one? Leaving 1 channel free for SFX?
|
11 March 2021, 12:03 | #17 |
Needs a life
Join Date: Jan 2008
Location: England
Posts: 1,707
|
Brilliant, especially to keep size down too. Could this be the basis of a new format for Amiga audio...? (Realise it's basically a format that's setting hardware registers, but all the same it could be the right thing at the right time on that front too!)
|
11 March 2021, 12:55 | #18 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
|
|
11 March 2021, 13:53 | #19 |
Registered User
Join Date: Aug 2010
Location: Italy
Posts: 787
|
Congratulations and thanks!
|
11 March 2021, 14:28 | #20 | |
Registered User
Join Date: Aug 2018
Location: Untergrund/Germany
Posts: 408
|
Quote:
Inspired by LFT from C64 I tried the same a year ago with my Pretracker replayer but my data exploded. A 3 minute song took around 50kb of replayer data when the original song only had 7kb of pattern data, so i scrapped it |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Replayer dissasembly request | passing_by | Coders. Asm / Hardware | 6 | 18 December 2017 16:25 |
Digibooster 2 Replayer Routine | Emufr3ak | Coders. Asm / Hardware | 2 | 13 June 2017 07:29 |
Replayer archive? | absence | Coders. General | 4 | 17 March 2011 14:24 |
acurate protracker replayer! | h0ffman | Coders. General | 1 | 12 December 2010 10:19 |
Best MOD replayer | RickyD-II | Coders. General | 8 | 09 July 2007 03:04 |
|
|