Indivision AGA Mk3 HDTV Audio

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser. Please create an account and log in to see all content by default. This is a limitation of the forum software.

Also users that are not logged in can not create new threads. This is a, unfortunately needed, counter measure against spam. Please create an account and log in to start new threads.

Don't Panic. Please wash hands.
  • I've been doing quite a bit of games testing, it's taking a bit longer than I'd hoped but I should get it finished today, so I'll post the results later on... the update to audio is super awesome so far! :)

  • Is audio capability in monitors now detected automatically? I can now use a DVI monitor with audio enabled, I'm pretty sure that didn't work before.

    I did have some weirdness after the firmware upgrade, the monitor wouldn't recognize the signal until I tested a different resolution and after that everything was fine but it seems the overscan is different.

    I'll try some more audio stuff later, but so far no problems, but then again, I didn't have significant audio issues before, either.

  • Is audio capability in monitors now detected automatically?

    To my knowledge, there was no change on that part of EDID data evaluation. Maybe your monitor is only piccy about audio at certain frequencies, pixel clocks or screen sizes?

  • Hi again,

    Here's the results from my checking HDM* audio using the newest firmware and Indivision tool (2020-12-18), which the good folks at iComp released just before Christmas. Thank you very much indeed for the lovely festive present this has turned out to be! I intended to post this a few days ago but it took longer than I anticipated to check through so many titles. :)

    TLDR version:

    The line in the change log that says... "Fixed error in handling of ADKCON writes. Solves audio playback issues in some whdload games. (Xenon2, ShadowOfTheBeast)" is quite a wonderful understatement, and digital audio is now pretty much working perfectly for everything!

    Every game that had audio either partially or completely missing, now seems to have full working audio.

    Every game that had working audio previously, still seems to have audio working great.

    Long version:

    I've been working through the games I thought I knew well enough to recognise if the audio was fixed/improved, and so I've checked...

    Agony, Alien Breed, Alien Breed 2, Alien Breed 2 AGA, Alien Breed TA, Alien Breed 3D, Alien Breed 3D II, Another World, All Terrain Racing, Apydia, Arkanoid, Arkanoid Revenge of Doh, Awesome,

    B.C. Kid, Banshee AGA, Battle Squadron, Beneath a Steel Sky, Beneath a Steel Sky CD32, Black Crtypt, Body Blows, Body Blows AGA, Body Blows Galactic, Body Blows Galactic AGA, Breathless AGA, Brian the Lion, Brian the Lion AGA, Bubble'n'Squeak, Bubble'n'Squeak AGA,

    Cannon Fodder, Cannon Fodder 2, Castle Master, Castle Master 2, Chaos Engine, Chaos Engine AGA, Chaos Engine CD32, Chaos Engine 2, Chaos Engine 2 AGA, Chuck Rock, Chuck Rock 2,Crazy Sue, Cruise for a Corpse,

    Dan Dare, Darkmere, Dawn Patrol, Defender, Defender 2, Defender of the Crown, Defender of the Crown 2, Deflektor, Deliverance, Deluxe Galaga, Deluxe Galaga AGA, Deluxe Pac-Man, Denaris, Desert Strike, DGeneration, DGeneration AGA, Disposable Hero, Donkey Kong, Double Dragon 2, Double Dragon 3, DragonBreed, Dragon Spirit, Dragon's Lair, Dune, Dune 2 (oops, got stuck playing that for 2 hours...),

    Elfmania, Elf, Elite, Elite Advanced, Elvira, Elvira 2, Epic, Exile, Exile AGA, Eye of the Beholder, Eye of the Beholder AGA, Eye of the Beholder 2, Eye of the Beholder 2 AGA,

    F15 Strike Eagle, F29 Retaliato, Fightin Spirit, Fightin Spirit AGA, Final FIght, FIre and Ice, The First Samurai, Flashback, Flight of the Amazon Queen, Flimbo's Quest, Flink, Floor 13, Fly Harder, Forgotten Worlds, Frontier, Future Wars,

    Gem X, Ghosts 'n' Goblins, Ghouls 'n' Ghosts, Giana Sisters SE, Gods, Golden Axe, Guardian, Gunship 2000, Gunship 2000 AGA,

    Hammerfist, Hard 'n' Heavy, Harlequin, Heart of China, Heimdall, Heimdall 2, Heimdall 2 AGA, HeroQuest. HeroQuest 2, Hired Guns, Hybris,

    IK+, Immortal, Indy Jones and the Fate of Atlantis, It Came from the Desert,

    Jaguar XJ220, James Pond, James Pond 2 - Robocod, James Pond 3 - Operation Starfish, Jim Power,

    KGB, Killing Game Show, Knights of the Sky, Kwiksnax

    Last Ninja 2, Last Ninja Remix, Leander, Legend of Kyrandia, Lemmings, Lemmings 2, Liberation, Lionheart, Lion King, Liquid Kids, Loom, Lost Patrol, Lost Vikings, Lotus ETC, Lotus ETC 2, Lotus ETC 3, Lure of the Temptress

    Magic Pockets, Maniac Mansion, Marvin's Marvellous Adventure, Master Blaster, McDonald Land, Mean Arenas, Mean Streets, MegaBall, MegaBall AGA, Mega-lo-mania, MiG29 Fulcrum, Moonstone, Mortal Kombat, Mr. Heli, Mr. Nutz, Myth,

    Naughty Ones, Naughty Ones AGA, Nebulus, New Zealand Story, Ninja Spirit, Nitro, North & South, No Second Prize,

    Obitus, Oh No More Lemmings, Operation Stealth, Operation Thunderbolt, Operation Wolf, Overdive, Overkill AGA

    Pac Land, Pacmania, Pang, Panza Kick Boxing, Paradroid 90, Parasol Stars, Pierre Le Chef - Out to Lunch, Pinball Dreams, Pinball Fantasies, Pinball Fantasies AGA, Pinball Illusions AGA, Pirates!, Prince of Persia, Project X, Project X SE, Prophecy: The Viking Child, Puggsy, Push Over, Putty, Putty Squad AGA, Puzznic

    Quartz, Quik the Thunder Rabbit, Quik the Thunder Rabbit AGA, Qwak,

    Rainbow Islands, Rampage, Rampart, RBI Baseball 2, Realms, Realms of Arkania, Red Heat, Real Ghostbusters Real Popeye, Rebellion, Red Baron, Red Storm Rising, Red Zone, Renegade, Renegades, Return of the Jedi, Reunion, Reunion AGA, Revenge of the Mutant Camels, Rick Dangerous, Rick Dangerous 2, Rings of Medusa, Rise of the Dragon, Rise of the Robots, Rise of the Robots AGA, Risky Woods, Road Blasters, RoadKill, Road Rash, Robin Hood Legend Quest, Robinson's Requiem, Robinson's Requiem AGA, RoboCop, RoboCop 2, RoboCop 3, Rodland, Rocket Ranger, R-Type, R-Type 2, Ruff'n'Tumble, Rygar AGA,

    Sabre Team, Sabre Team AGA, Saint Dragon, Savage, Scramble Spirits, S.D.I., Second Samurai, Secret of Monkey Island, Secret of Monkey Island 2, Seek and Destroy, Seek and Destroy AGA, Sensible Golf, Sensible Soccer (all versions incl 2020), Settlers, Shadow Fighter, Shadow Fighter AGA, Shadow Lands, Shadow of the Beast, Shadow of the Beast 2, Shadow of the Beast 3, Shadow Sorcerer, Shadow Worlds, Shaq Fu, Shaq Fu AGA, Sim City, Simon the Sorcerer, Simon the Sorcerer AGA, Simulcra, Sink or Swim, Skeleton Krew, Skidmarks, Skidmarks AGA, Slam Tilt AGA, Sleepwalker, Sleepwalker AGA, Sly Spy, Smash TV, Snow Bros, Soccer Kid, Soccer Kid AGA, Space Ace, Space Ace 2, Space Crusade, Space Gun, Space Harrier, Space Harrier 2, Space Hulk, Speedball, Speedball 2, Spellbound Dizzy, Speris Legacy AGA, Spy vs Spy, Spy vs Spy 2, Spy vs Spy 3, Starblade, Star Control, Star Crusader AGA, Stardust, Starglider, Starglider 2, StarRay, StarTrek 25th Anniversary, Stormlord, Street Fighter 2, Strider, Subwar 2050 AGA, Super Cars, Super Cars 2, Super Cauldron, SuperFrog, Super Gem Z, Super Methane Bros, Super Off Road, Super Skidmarks, Super Space Invaders, Super Stardust AGA, Super Street Fighter 2/DX/AGA, Super Street Fighter 2 Turbo AGA, Switchblade, Switchblade 2, SWIV, Syndicate,

    Terminator 2 Arcade, Terminator 2 Judgement Day, Theme Park, Theme Park AGA, Thexder, Thunder Blade, Thunder Hawk, Thunderstrike, Tiger Road, Tintin on the Moon, Tiny Bobble, Titus the Fox, Toki, Top Gear 2, Top Gear 2 AGA, Tornado, Tornado AGA, Torvak the Warrior, Total Carnage AGA, Total Eclipse, Total Recall, Tower of Souls, Toyota Celica GT Rally, Transarctica, Transarctica AGA, Traps 'n' Treasures, Treasure Island Dizzy, Troddlers, Trog, Trolls, Trolls AGA, Tube Warriors AGA, Tubular Worlds, Tubular Worlds AGA, Turbo Trax, Turn'n'Burn, Turrican, Turrican 2, Turrican 3, Tusker, Twinworld, T-Zer0

    UFO Enemy Unknown, UFO Enemy Unknown AGA, Ugh!, UN Squadron, Universe, Unreal, Untouchables, Uridium 2, Utopia,

    Vac Suit Jack, Valhalla - Before the War, Vahalla - Lord of Infinity, Vaxine, Venom Wing, Venus the Flytrap, Video Kid, Virocop, Virocop AGA, Virtual Karting AGA, Virtual Karting 2 AGA, Virus, Vital Light, Volfied, Voyager,

    Walker, Warhead, War Zone, Wicked, Whizz AGA, Who Framed Roger Rabbit, Wing Commander, Wing Commander CD32, Wings, Wings of Death, Wings of Fury, Wizball, Wizkid, Wolfchild, Wonderboy in Monsterland, Wonderdog, Wonderdog SE, Woody's World, Worms Directors Cut AGA, Wrath of the Demon,

    Xenomorph, Xenon, Xenon 2, Xenophobe, X-It, X-Out, XP8, XP8 AGA, Xtreme Racing,

    Yo Joe, Yolanda,

    Zak McKraken and the Alien Mindbenders, Zany Golf, Zeewolf, Zeewolf 2, Zombi, Zombie Apocalypse, Zombie Apocalypse 2 AGA, Zool, Zool AGA, Zool 2, Zool 2 AGA, Z-Out, Zyconix, Zynaps far as I can tell, every game I've tried has fully functional audio on all channels, regardless of whether it is launched from disk or WHDLoad, which is where I was observing the difference in behaviour previously.

    I've only tested each of these for a little while, just enough to check the audio on the title screen, in game, gameover etc. It seems with the latest firmware that everything audio just works, and it will be a rare exception if we find anything that does not function correctly.

    I have noticed (probably because I have checked so many titles this week, that it seems like there is a larger variation in volume levels between games over HDM* versus the Amiga's analogue audio output. Some games are quieter than others via the normal analogue RCA connectors, by maybe 10-20% between different games but the same games over HDM* sound like the difference is more like 50-75%. It might just be my perception I guess because I was switching between a lot of titles, over and over, and I'm so used to all my devices normalising audio and music nowadays, that I think my ears have gotten a bit lazy!

    Lastly, as I was testing the audio I did find a 4-5 games where the audio seemed okay but the video was either unreliable in places, or outright missing via the digital out but where it was fine via the normal Amiga RGB analogue output. I'll put the details of those into a separate post in case it helps with further improvements.

    Thanks again for the update, have a great New Year! :)

    Cheers! :)

  • Yes, when A/B testing the most obvious thing is that the audio coming from the Amiga's line out is a good deal louder than the audio coming from the monitor's line out. Perhaps there is enough headroom in the HDMI audio channels to allow for increasing the volume a bit without risking clipping the audio?

    It also sounds a little (really just a little) different in a way that's hard to describe, but it's only reasonable that an 28-year-old 8-bit sound system is going to sound a bit different from a modern one.

    Everything I tested sounded really good, especially Paul van der Valk's excellent Hybris soundtrack. 8)

    I also tested playing back MP3s using AmigaAMP using AHI.

    The one thing I had an issue with earlier was playing MOD files in Protracker 3.15 running in a PAL screen and then switching back to a higher resolution screen. I think that was mostly/only an issue at 48 kHz, not or not nearly as much at 96 kHz. This now also works fine. (Tip: when you map different Amiga resolutions, such as PAL and DblPAL, to the same monitor resolution, the screen cycling doesn't trigger an HDMI reconfig so the display and audio don't blank out for a second. And if, like me, you're trying to use Protracker with a USB mouse and the RapidRoad, mouse clicks don't register, you need to click with the regular mouse.)

    However, I did encounter something weird when I tried the above. My Workbench was in DblPAL, so I tried switching it to DblNTSC while Protracker was running in the background. Testing the screen resolution was fine, but then activating it brought up a blue screen with some gray horizontal lines at the bottom, with the Indivision reporting a completely different resolution. The audio was garbled. However, I was able to get out of this with Amiga-M, Further cycling through screens didn't return me to the blue screen.

    Then it occurred to me that I run Copper-Demon, a utility that uses a custom copper list to create a background color gradient. After quitting Copper-Demon the issue didn't come back, but now I had a garbled mouse pointer after changing the Workbench screen resolution. But the mouse pointer returned to normal after switching screens. (The garbled mouse pointer also appeared on the Amiga's analog output, though.)

    However, I couldn't reproduce this after a reboot.

  • Thanks nuttie and iljitsch for your testing. Looks like you've had a lot of fun :-)

    Protracker messes with chip registers, which might confuse Indivision AGA - this has been known ever since we came out with the first Indivision AGA in 2008. The mouse pointer trouble may really be related to the copper list patch.

    The main takeaway from your posts is that we should look into loudness - the current implementation attempts to be as linear as possible, assuming that Paula is the same. If, however, the Paula implementation is non-linear, we probably need to measure the level of non-linearity and put that into our emulation, provided that we have enough FPGA space.

  • Yes, fun is the reason we keep our Amigas around, right?

    I connected two different sets of speakers to the Amiga and the monitor line outs, with one set of speakers on the left and the other on the right. I then changed the AmigaAMP volume. The relative volume of the two sets of speakers didn't change, the audio still seemed to come from the middle.

    Oh wait, that is of course not a good test, as AHI volume adjustments happen in software.

    Same test using Protracker: same result. And with the beep in Prefs also the same result. So it looks like the Paula's volume settings are sufficiently linear.

    Then the overall level. I did a few tests playing the same MP3 file to see how some line outs and output through the monitor compare, all measured through my iPhone microphone.

    iPod in dock: 75 dB

    Amiga line out: 70 dB

    Amiga Indivision MK3 HDMI to Dell monitor: 57 dB

    Mac Mini DisplayPort to Dell monitor: 74 dB

    So looks like the MK3 HDMI audio output can use a boost.

  • So it looks like the Paula's volume settings are sufficiently linear.

    My approach would be to generate a linear 8-bit ramp and measure that with an oscilloscope directly at the Paula pin, before the signal enters the filters. Next test would be to set one channel output to a fixed DC-high level and measure the 6-bit loudness register effect on the value (which isn't really six bits, but six bits plus one, causing additional trouble).

    The mere fact that the Amiga allows 14-bit playback still does not mean that both these influence values are linear. The Hardware reference manual does mention that it's far from perfect. The only way to find out is to measure both effects separately and also to implement any correction values separately.

    Then we have the problem that our filter uses integer calculation only - mainly for size reasons to make it fit into the FPGA. We do work with lots of extra bits in order to keep clipping from happening and not lose information at the lower end, but there may be limits to what we can do in this size of FPGA.

    I'll put these measurements on the todo-list, but can't promise when I'll have time for it.

  • That testing method looks very thorough, but is all of that really necessary?

    From my obviously imprecise test it looks like the 64-step volume setting is sufficiently linear as it matches the output over HDMI to a degree that there is no audible difference.

    It's likely that there are imperfections in the Amiga's DACs, but in my opinion there are two reasons not to worry about that:

    1. It's almost certain that such imperfections are different for different individual Amigas, as otherwise there wouldn't be any need to calibrate individual machines for AHI playback.

    2. I'd rather have audio output that's slightly better than the original than audio output that is equally imperfect. As far as I know such imperfections have never been exploited to create desired effects. (Probably because they're small and again, different for individual machines.)

    After listening to some Amiga audio with headphones I'm not too worried about improving the audio pipeline; most of it is very clearly 8-bit and rather low sampling rate, if not clipping. The big exception is AHI audio, I was surprised how good MP3s sound, even over the Amiga's line outs. But listening to MP3s is not a big usecase for Amigas, even the relatively few that are fast enough.

    However, I think it would be good to adjust the HDMI volume to better match other sources. For this you probably don't even need integer math, just shifting everything a few bits to the left should probably do it. 1 bit = 3 dB, right? So that would be shifting by 4 or 5 bits.

  • That testing method looks very thorough, but is all of that really necessary?

    Coming from the C64 side, I tend to say "yes" - ther's no point in making it "similar" if you only reach emulator-level accuracy. We're working with real hardware and want to provide the real experience. The only way to do that is to find a model that behaves *very* much like the original. If you set your goals any lower, someone else may come along and make a better product. I can't allow that to happen :-)

  • Hm, we'll have to disagree here then. I tried out the VICE C64 emulator recently, and I found the CRT emulation too accurate! It had all the fuzziness and color bleeding I remember from back in the 1980s. The THEC64, on the other hand, does have an option to add scanlines, but doesn't otherwise make the picture worse. That's my preferred option between simple scaling (with all those big pixels way too visible) and accurate CRT emulation.

    Don't forget that the Amiga's native line out is always still there for people who want the real thing!

    But as I said before, the current HDMI audio is really good, and the difference between that and the Amiga's native audio, which is slight and I can't really put my finger on it, is probably down to differences in the analog domain. It's just that the HDMI audio level is too low compared to other sources.

  • slightly offtopic, but:


    The THEC64, on the other hand, does have an option to add scanlines, but doesn't otherwise make the picture worse.

    a) THEC64 _is_ (a some years old version of) VICE

    b) in VICE, you can of course disable the CRT emulation and only add scanlines (or nothing at all)

  • I have a quick question; where does the Indivision AGA MK III get the audio from to output over HDMI? Looking at the schematics of the A1200, I don't see any Audio inputs from the Paula chip. Is it being taken from the bus somehow?

  • I have a quick question; where does the Indivision AGA MK III get the audio from to output over HDMI? Looking at the schematics of the A1200, I don't see any Audio inputs from the Paula chip. Is it being taken from the bus somehow?

    If you look at those same schematics you see many of the custom chips sharing the same RGA and data lines. This allows us to capture data meant for the Paula while not physically sitting on the Paula chip. The rest is pixie dust, magic rituals and creative guessing and audio comes out ;-)

  • So looks like the MK3 HDMI audio output can use a boost.

    That is correct the amplitude IS a bit low.

    However, I think it would be good to adjust the HDMI volume to better match other sources. For this you probably don't even need integer math, just shifting everything a few bits to the left should probably do it. 1 bit = 3 dB, right? So that would be shifting by 4 or 5 bits.

    I'm pretty sure on that scale 1 bit (doubling of volume) is 6 dB, I admit it has been a while I learned that stuff, so could be totally wrong.

    I've been observing what is send to the HDMI encoder to see if 4 or 5 bits could be correct (and no it isn't that much). So on the retro side of things the Amiga has a volume range of 0 to 64, which is exactly 1 value too much to nicely fit into 6 bits and thus requires 7 bits, but without using the full range at all (which is 0..127). One way to get extra volume is to map 64 back to 63 and shift everything by 1 bit to the left, but I don't really want to do that as that isn't fully accurate. So have been experimenting with scaling the volume before the mixer by 1.75, which is still relative easy to do in hardware (1 + 1/2 + 1/4) and gives most of the benefit without needing to truncate the volume register values. Now I occasionally see bit 14 toggling, so any further left shifting would cause clipping. At the moment it is impossible for me to debug what happens after I give the data to the video encoder chip, it could something with the amplitude, dunno. This volume scaling fix will be included in the next firmware release.

    And just for fun, a little technical screenshot what Amiga audio "looks" like for me during debugging.

    And I guess is what happens when you take the red pill (ref The Matrix 1999)

  • Audio seems to be about 6 dB louder, still about 6 dB less than Amiga line out and other HDMI sources.

    By the way, this is definitely the proper way to use an Amiga 1200 in 2021: with a 4K monitor over HDMI, a wireless mouse and a USB keyboard with RGB lighting. :love: