home.social

Search

267 results for “enhance_dev”

  1. Enhance Your Macbook with SEN Leather Cases
    Elevate the look and feel of your Macbook with SEN Leather Cases. Crafted from premium leather, our cases provide a luxurious touch while ensuring your device is well-protected. Perfect for professionals and students alike, these cases offer both style and functionality. Discover the elegance of SEN Leather today! 💻✨
    senleather.com/product/apple-m

  2. US Space Force to Develop Software Fusing Commercial, Military Tracking Data

    The US Space Force is developing software that combines commercial and military tracking data to enhance space control operations, with a focus on speed over precision. The new prototype, set to launch this fall, will prioritize timely situational awareness, even if it means accepting slightly less…

    osintsights.com/us-space-force

    #SpaceForce #MilitaryTechnology #SpaceControlOperations #MissionDelta2 #EmergingThreats

  3. US Space Force to Develop Software Fusing Commercial, Military Tracking Data

    The US Space Force is developing software that combines commercial and military tracking data to enhance space control operations, with a focus on speed over precision. The new prototype, set to launch this fall, will prioritize timely situational awareness, even if it means accepting slightly less…

    osintsights.com/us-space-force

    #SpaceForce #MilitaryTechnology #SpaceControlOperations #MissionDelta2 #EmergingThreats

  4. @hiisikoloart

    I agree.
    It feeds a ableist "standard" of imagerey, writing and music that is concidered worthy and other that is not.

    To tell disabled artists/writers/musicians thair work itself is not good enough, but using and Ai Tool to enhance is...is ableist as fuck.

    The aim should be to appreaciate, see and marvel at the artistic output of an individial human with the abilities they are give and skills they have obtained.

    Ai devalutates this efford, instead of enhance it.

    #Ai #Ki

  5. @hiisikoloart

    I agree.
    It feeds a ableist "standard" of imagerey, writing and music that is concidered worthy and other that is not.

    To tell disabled artists/writers/musicians thair work itself is not good enough, but using and Ai Tool to enhance is...is ableist as fuck.

    The aim should be to appreaciate, see and marvel at the artistic output of an individial human with the abilities they are give and skills they have obtained.

    Ai devalutates this efford, instead of enhance it.

    #Ai #Ki

  6. @hiisikoloart

    I agree.
    It feeds a ableist "standard" of imagerey, writing and music that is concidered worthy and other that is not.

    To tell disabled artists/writers/musicians thair work itself is not good enough, but using and Ai Tool to enhance is...is ableist as fuck.

    The aim should be to appreaciate, see and marvel at the artistic output of an individial human with the abilities they are give and skills they have obtained.

    Ai devalutates this efford, instead of enhance it.

    #Ai #Ki

  7. @hiisikoloart

    I agree.
    It feeds a ableist "standard" of imagerey, writing and music that is concidered worthy and other that is not.

    To tell disabled artists/writers/musicians thair work itself is not good enough, but using and Ai Tool to enhance is...is ableist as fuck.

    The aim should be to appreaciate, see and marvel at the artistic output of an individial human with the abilities they are give and skills they have obtained.

    Ai devalutates this efford, instead of enhance it.

    #Ai #Ki

  8. @hiisikoloart

    I agree.
    It feeds a ableist "standard" of imagerey, writing and music that is concidered worthy and other that is not.

    To tell disabled artists/writers/musicians thair work itself is not good enough, but using and Ai Tool to enhance is...is ableist as fuck.

    The aim should be to appreaciate, see and marvel at the artistic output of an individial human with the abilities they are give and skills they have obtained.

    Ai devalutates this efford, instead of enhance it.

    #Ai #Ki

  9. Rockwell To Redevelop Alabang Town Center

    Rockwell Land Corp. confirmed that it has a years-long plan to redevelop the famous Alabang Town Center (ATC) and turn it into a suburban lifestyle center, according to a Manila Bulletin news report.

    To put things in perspective, posted below is an excerpt from the Manila Bulletin report. Some parts in boldface…

    Rockwell Land Corp., the luxury property development arm of the Lopez Group, plans to redevelop Alabang Town Center (ATC) over the next decade to revitalize the commercial hub and restore what management describes as its original appeal.

    Nestor J. Padilla, Rockwell Land chairman and chief executive officer, said the developer envisions transforming the 17.5-hectare property in southern Metro Manila into a suburban lifestyle center over a five- to 10-year period.

    We will bring back the old charm of the town, as the locals like to call ATC. Over the next five to 10 years, our vision is to transform the town to become a suburban lifestyle center,” Padilla said.

    The front and drive-way of Alabang Town Center along Madrigal Avenue.

    To lead the master planning, Rockwell Land has engaged Carlos Ott, the Uruguayan-Canadian architect behind the company’s ultra-luxury Proscenium project in Makati and the designer of the Opéra Bastille in Paris. Ott is collaborating with local firm PRSP Architects, led by Vicente Rodriguez Jr., which has a history of design partnerships with the country’s major builders, including Ayala Land Inc.

    Preliminary planning and reviews for the estate began two months ago, Padilla said. The initial phase of the redevelopment over the next two years will focus on upgrading parking facilities and improving vehicular traffic circulation around the complex. Concurrently, Rockwell Land plans to adjust the retail tenancy mix to enhance the shopping experience.

    Valerie Soliven, Rockwell Land president and chief operating officer, said the acquisition of the commercial asset marked the expansion of the developer in the southern part of the capital.

    ATC has long held a special place within the Alabang community, and we are approaching its next chapter with both excitement and respect for what it already means to so many people,” Soliven added

    Meanwhile, Rockwell Land remains vigilant in its outlook amid geopolitical turmoil and local real estate industry challenges.

    “Moving forward, Rockwell is carefully navigating industry headwinds, maintaining a disciplined approach to project delivery and market expansion. The current times are a reminder that resilience and adaptability continue to define not only our industry, but also our company’s journey over our first three decades,” said Padilla.

    The company registered a 29 percent jump in earnings last year to ₱5.3 billion while posting an even higher 67 percent rise in net income to ₱1.29 billion in the first quarter of 2026.

    Let me end this post by asking you readers: What is your reaction to this recent development? Does Rockwell’s plan to redevelop Alabang Town Center sound good to you? Are you convinced that Rockwell truly cares about the interests of Alabang’s residents? Do you think the redevelopment plan could spark a wave of more commercial developments throughout the city of Muntinlupa?

    You may answer in the comments below. If you prefer to answer privately, you may do so by sending me a direct message online.

    +++++

    Thank you for reading. If you find this article engaging, please click the like button below, share this article to others and also please consider making a donation to support my publishing. If you are looking for a copywriter to create content for your special project or business, check out my services and my portfolio. Feel free to contact me with a private message. Also please feel free to visit my Facebook page Author Carlo Carrasco and follow me on Twitter at @CarloCarrascoPH as well as on Tumblr at https://carlocarrasco.tumblr.com/ and on Instagram athttps://www.instagram.com/authorcarlocarrasco

    For more South Metro Manila community news and developments, come back here soon. Also say NO to fake news, NO to irresponsible journalism, NO to misinformation, NO to plagiarists, NO to reckless publishers and NO to sinister propaganda when it comes to news and developments. For South Metro Manila community developments, member engagements, commerce and other relevant updates, join the growing South Metro Manila Facebook group at https://www.facebook.com/groups/342183059992673

    #Alabang #AlabangBlog #AlabangTownCenter #AlabangTownCenterATC #ASEAN #Asia #AssociationOfSoutheastAsianNationsASEAN #BarangayAyalaAlabang #business #businessNews #CarloCarrasco #ChatGPT #CityOfMuntinlupa #commerce #economics #economy #EconomyOfThePhilippines #Facebook #food #geek #Google #GoogleSearch #Investagrams #MetroManila #Muntinlupa #MuntinlupaCity #NationalCapitalRegionNCR #NCR #news #Philippines #PhilippinesBlog #Pinoy #Rockwell #RockwellLand #RockwellLandCorp #shopping #shoppingMalls #socialMedia #SouthMetroManila #SouthSnippets #SoutheastAsia #Southies #Tumblr #WordPress #WordPressCom
  10. Rockwell To Redevelop Alabang Town Center

    Rockwell Land Corp. confirmed that it has a years-long plan to redevelop the famous Alabang Town Center (ATC) and turn it into a suburban lifestyle center, according to a Manila Bulletin news report.

    To put things in perspective, posted below is an excerpt from the Manila Bulletin report. Some parts in boldface…

    Rockwell Land Corp., the luxury property development arm of the Lopez Group, plans to redevelop Alabang Town Center (ATC) over the next decade to revitalize the commercial hub and restore what management describes as its original appeal.

    Nestor J. Padilla, Rockwell Land chairman and chief executive officer, said the developer envisions transforming the 17.5-hectare property in southern Metro Manila into a suburban lifestyle center over a five- to 10-year period.

    We will bring back the old charm of the town, as the locals like to call ATC. Over the next five to 10 years, our vision is to transform the town to become a suburban lifestyle center,” Padilla said.

    The front and drive-way of Alabang Town Center along Madrigal Avenue.

    To lead the master planning, Rockwell Land has engaged Carlos Ott, the Uruguayan-Canadian architect behind the company’s ultra-luxury Proscenium project in Makati and the designer of the Opéra Bastille in Paris. Ott is collaborating with local firm PRSP Architects, led by Vicente Rodriguez Jr., which has a history of design partnerships with the country’s major builders, including Ayala Land Inc.

    Preliminary planning and reviews for the estate began two months ago, Padilla said. The initial phase of the redevelopment over the next two years will focus on upgrading parking facilities and improving vehicular traffic circulation around the complex. Concurrently, Rockwell Land plans to adjust the retail tenancy mix to enhance the shopping experience.

    Valerie Soliven, Rockwell Land president and chief operating officer, said the acquisition of the commercial asset marked the expansion of the developer in the southern part of the capital.

    ATC has long held a special place within the Alabang community, and we are approaching its next chapter with both excitement and respect for what it already means to so many people,” Soliven added

    Meanwhile, Rockwell Land remains vigilant in its outlook amid geopolitical turmoil and local real estate industry challenges.

    “Moving forward, Rockwell is carefully navigating industry headwinds, maintaining a disciplined approach to project delivery and market expansion. The current times are a reminder that resilience and adaptability continue to define not only our industry, but also our company’s journey over our first three decades,” said Padilla.

    The company registered a 29 percent jump in earnings last year to ₱5.3 billion while posting an even higher 67 percent rise in net income to ₱1.29 billion in the first quarter of 2026.

    Let me end this post by asking you readers: What is your reaction to this recent development? Does Rockwell’s plan to redevelop Alabang Town Center sound good to you? Are you convinced that Rockwell truly cares about the interests of Alabang’s residents? Do you think the redevelopment plan could spark a wave of more commercial developments throughout the city of Muntinlupa?

    You may answer in the comments below. If you prefer to answer privately, you may do so by sending me a direct message online.

    +++++

    Thank you for reading. If you find this article engaging, please click the like button below, share this article to others and also please consider making a donation to support my publishing. If you are looking for a copywriter to create content for your special project or business, check out my services and my portfolio. Feel free to contact me with a private message. Also please feel free to visit my Facebook page Author Carlo Carrasco and follow me on Twitter at @CarloCarrascoPH as well as on Tumblr at https://carlocarrasco.tumblr.com/ and on Instagram athttps://www.instagram.com/authorcarlocarrasco

    For more South Metro Manila community news and developments, come back here soon. Also say NO to fake news, NO to irresponsible journalism, NO to misinformation, NO to plagiarists, NO to reckless publishers and NO to sinister propaganda when it comes to news and developments. For South Metro Manila community developments, member engagements, commerce and other relevant updates, join the growing South Metro Manila Facebook group at https://www.facebook.com/groups/342183059992673

    #Alabang #AlabangBlog #AlabangTownCenter #AlabangTownCenterATC #ASEAN #Asia #AssociationOfSoutheastAsianNationsASEAN #BarangayAyalaAlabang #business #businessNews #CarloCarrasco #ChatGPT #CityOfMuntinlupa #commerce #economics #economy #EconomyOfThePhilippines #Facebook #food #geek #Google #GoogleSearch #Investagrams #MetroManila #Muntinlupa #MuntinlupaCity #NationalCapitalRegionNCR #NCR #news #Philippines #PhilippinesBlog #Pinoy #Rockwell #RockwellLand #RockwellLandCorp #shopping #shoppingMalls #socialMedia #SouthMetroManila #SouthSnippets #SoutheastAsia #Southies #Tumblr #WordPress #WordPressCom
  11. Rockwell To Redevelop Alabang Town Center

    Rockwell Land Corp. confirmed that it has a years-long plan to redevelop the famous Alabang Town Center (ATC) and turn it into a suburban lifestyle center, according to a Manila Bulletin news report.

    To put things in perspective, posted below is an excerpt from the Manila Bulletin report. Some parts in boldface…

    Rockwell Land Corp., the luxury property development arm of the Lopez Group, plans to redevelop Alabang Town Center (ATC) over the next decade to revitalize the commercial hub and restore what management describes as its original appeal.

    Nestor J. Padilla, Rockwell Land chairman and chief executive officer, said the developer envisions transforming the 17.5-hectare property in southern Metro Manila into a suburban lifestyle center over a five- to 10-year period.

    We will bring back the old charm of the town, as the locals like to call ATC. Over the next five to 10 years, our vision is to transform the town to become a suburban lifestyle center,” Padilla said.

    The front and drive-way of Alabang Town Center along Madrigal Avenue.

    To lead the master planning, Rockwell Land has engaged Carlos Ott, the Uruguayan-Canadian architect behind the company’s ultra-luxury Proscenium project in Makati and the designer of the Opéra Bastille in Paris. Ott is collaborating with local firm PRSP Architects, led by Vicente Rodriguez Jr., which has a history of design partnerships with the country’s major builders, including Ayala Land Inc.

    Preliminary planning and reviews for the estate began two months ago, Padilla said. The initial phase of the redevelopment over the next two years will focus on upgrading parking facilities and improving vehicular traffic circulation around the complex. Concurrently, Rockwell Land plans to adjust the retail tenancy mix to enhance the shopping experience.

    Valerie Soliven, Rockwell Land president and chief operating officer, said the acquisition of the commercial asset marked the expansion of the developer in the southern part of the capital.

    ATC has long held a special place within the Alabang community, and we are approaching its next chapter with both excitement and respect for what it already means to so many people,” Soliven added

    Meanwhile, Rockwell Land remains vigilant in its outlook amid geopolitical turmoil and local real estate industry challenges.

    “Moving forward, Rockwell is carefully navigating industry headwinds, maintaining a disciplined approach to project delivery and market expansion. The current times are a reminder that resilience and adaptability continue to define not only our industry, but also our company’s journey over our first three decades,” said Padilla.

    The company registered a 29 percent jump in earnings last year to ₱5.3 billion while posting an even higher 67 percent rise in net income to ₱1.29 billion in the first quarter of 2026.

    Let me end this post by asking you readers: What is your reaction to this recent development? Does Rockwell’s plan to redevelop Alabang Town Center sound good to you? Are you convinced that Rockwell truly cares about the interests of Alabang’s residents? Do you think the redevelopment plan could spark a wave of more commercial developments throughout the city of Muntinlupa?

    You may answer in the comments below. If you prefer to answer privately, you may do so by sending me a direct message online.

    +++++

    Thank you for reading. If you find this article engaging, please click the like button below, share this article to others and also please consider making a donation to support my publishing. If you are looking for a copywriter to create content for your special project or business, check out my services and my portfolio. Feel free to contact me with a private message. Also please feel free to visit my Facebook page Author Carlo Carrasco and follow me on Twitter at @CarloCarrascoPH as well as on Tumblr at https://carlocarrasco.tumblr.com/ and on Instagram athttps://www.instagram.com/authorcarlocarrasco

    For more South Metro Manila community news and developments, come back here soon. Also say NO to fake news, NO to irresponsible journalism, NO to misinformation, NO to plagiarists, NO to reckless publishers and NO to sinister propaganda when it comes to news and developments. For South Metro Manila community developments, member engagements, commerce and other relevant updates, join the growing South Metro Manila Facebook group at https://www.facebook.com/groups/342183059992673

    #Alabang #AlabangBlog #AlabangTownCenter #AlabangTownCenterATC #ASEAN #Asia #AssociationOfSoutheastAsianNationsASEAN #BarangayAyalaAlabang #business #businessNews #CarloCarrasco #ChatGPT #CityOfMuntinlupa #commerce #economics #economy #EconomyOfThePhilippines #Facebook #food #geek #Google #GoogleSearch #Investagrams #MetroManila #Muntinlupa #MuntinlupaCity #NationalCapitalRegionNCR #NCR #news #Philippines #PhilippinesBlog #Pinoy #Rockwell #RockwellLand #RockwellLandCorp #shopping #shoppingMalls #socialMedia #SouthMetroManila #SouthSnippets #SoutheastAsia #Southies #Tumblr #WordPress #WordPressCom
  12. (Linux news in previous posts)

    FOSS NEWS

    Mozilla is packing new features into Firefox:
    betanews.com/article/mozilla-i

    Is Firefox getting a new logo? Mozilla’s socials suggest so…:
    omgubuntu.co.uk/2026/03/is-fir

    Signal introduces group member labels, allowing you to specify your role or responsibility:
    alternativeto.net/news/2026/3/

    Blender 5.1 Open-Source 3D Graphics Software Released with Many New Features:
    9to5linux.com/blender-5-1-open

    LibreOffice 26.8 To Add A Donation Banner To Its Start Center:
    phoronix.com/news/LibreOffice-

    Mozilla Releases Llamafile 0.10 To Enhance Their AI Offering For Easy-To-Use LLMs:
    phoronix.com/news/Mozilla-AI-L

    Ollama integration brings all models to OpenClaw platform:
    alternativeto.net/news/2026/3/

    OpenShot 3.5 is (yet again) the ‘biggest’ and ‘fastest’ release ever:
    omgubuntu.co.uk/2026/03/opensh

    Bitwarden Send improves security with email verification for paid users:
    alternativeto.net/news/2026/3/

    SuperTux 0.7.0 Arcade Game Is Out with Complete Level Design, Revamped Graphics:
    9to5linux.com/supertux-0-7-0-a

    PlayStation 3 emulator RPCS3 gets easier to use with Steam:
    gamingonlinux.com/2026/03/play

    OpenTTD devs clarify store changes with Transport Tycoon Deluxe re-release as Atari contribute server funding:
    gamingonlinux.com/2026/03/open

    GNUnet 0.27 Released For Those With "Some Reasonable Pain Tolerance":
    phoronix.com/news/GNUnet-0.27-

    Immich 2.6 improves map side panel, asset viewer, shared link slugs & presets, and more:
    alternativeto.net/news/2026/3/

    (more FOSS news in comments)

    #WeeklyNews #OpenSource #FOSSNews #FOSS #OpenSourceNews #News #Firefox #Signal #Blender #LibreOffice #Llamafile #Ollama #OpenShot #Bitwarden #BitwardenSend #SuperTux #RPCS3 #OpenTTD #GNUnet #Immich #Browser #WebBrowser #VideoEditor #VideoEditing #ContentCreation #Gaming #FOSSGame #FOSSGaming #OpenSourceGame #PlayStation #PlayStation3 #FosseryTech

  13. (Linux news in previous posts)

    FOSS NEWS

    Mozilla is packing new features into Firefox:
    betanews.com/article/mozilla-i

    Is Firefox getting a new logo? Mozilla’s socials suggest so…:
    omgubuntu.co.uk/2026/03/is-fir

    Signal introduces group member labels, allowing you to specify your role or responsibility:
    alternativeto.net/news/2026/3/

    Blender 5.1 Open-Source 3D Graphics Software Released with Many New Features:
    9to5linux.com/blender-5-1-open

    LibreOffice 26.8 To Add A Donation Banner To Its Start Center:
    phoronix.com/news/LibreOffice-

    Mozilla Releases Llamafile 0.10 To Enhance Their AI Offering For Easy-To-Use LLMs:
    phoronix.com/news/Mozilla-AI-L

    Ollama integration brings all models to OpenClaw platform:
    alternativeto.net/news/2026/3/

    OpenShot 3.5 is (yet again) the ‘biggest’ and ‘fastest’ release ever:
    omgubuntu.co.uk/2026/03/opensh

    Bitwarden Send improves security with email verification for paid users:
    alternativeto.net/news/2026/3/

    SuperTux 0.7.0 Arcade Game Is Out with Complete Level Design, Revamped Graphics:
    9to5linux.com/supertux-0-7-0-a

    PlayStation 3 emulator RPCS3 gets easier to use with Steam:
    gamingonlinux.com/2026/03/play

    OpenTTD devs clarify store changes with Transport Tycoon Deluxe re-release as Atari contribute server funding:
    gamingonlinux.com/2026/03/open

    GNUnet 0.27 Released For Those With "Some Reasonable Pain Tolerance":
    phoronix.com/news/GNUnet-0.27-

    Immich 2.6 improves map side panel, asset viewer, shared link slugs & presets, and more:
    alternativeto.net/news/2026/3/

    (more FOSS news in comments)

    #WeeklyNews #OpenSource #FOSSNews #FOSS #OpenSourceNews #News #Firefox #Signal #Blender #LibreOffice #Llamafile #Ollama #OpenShot #Bitwarden #BitwardenSend #SuperTux #RPCS3 #OpenTTD #GNUnet #Immich #Browser #WebBrowser #VideoEditor #VideoEditing #ContentCreation #Gaming #FOSSGame #FOSSGaming #OpenSourceGame #PlayStation #PlayStation3 #FosseryTech

  14. (Linux news in previous posts)

    FOSS NEWS

    Mozilla is packing new features into Firefox:
    betanews.com/article/mozilla-i

    Is Firefox getting a new logo? Mozilla’s socials suggest so…:
    omgubuntu.co.uk/2026/03/is-fir

    Signal introduces group member labels, allowing you to specify your role or responsibility:
    alternativeto.net/news/2026/3/

    Blender 5.1 Open-Source 3D Graphics Software Released with Many New Features:
    9to5linux.com/blender-5-1-open

    LibreOffice 26.8 To Add A Donation Banner To Its Start Center:
    phoronix.com/news/LibreOffice-

    Mozilla Releases Llamafile 0.10 To Enhance Their AI Offering For Easy-To-Use LLMs:
    phoronix.com/news/Mozilla-AI-L

    Ollama integration brings all models to OpenClaw platform:
    alternativeto.net/news/2026/3/

    OpenShot 3.5 is (yet again) the ‘biggest’ and ‘fastest’ release ever:
    omgubuntu.co.uk/2026/03/opensh

    Bitwarden Send improves security with email verification for paid users:
    alternativeto.net/news/2026/3/

    SuperTux 0.7.0 Arcade Game Is Out with Complete Level Design, Revamped Graphics:
    9to5linux.com/supertux-0-7-0-a

    PlayStation 3 emulator RPCS3 gets easier to use with Steam:
    gamingonlinux.com/2026/03/play

    OpenTTD devs clarify store changes with Transport Tycoon Deluxe re-release as Atari contribute server funding:
    gamingonlinux.com/2026/03/open

    GNUnet 0.27 Released For Those With "Some Reasonable Pain Tolerance":
    phoronix.com/news/GNUnet-0.27-

    Immich 2.6 improves map side panel, asset viewer, shared link slugs & presets, and more:
    alternativeto.net/news/2026/3/

    (more FOSS news in comments)

    #WeeklyNews #OpenSource #FOSSNews #FOSS #OpenSourceNews #News #Firefox #Signal #Blender #LibreOffice #Llamafile #Ollama #OpenShot #Bitwarden #BitwardenSend #SuperTux #RPCS3 #OpenTTD #GNUnet #Immich #Browser #WebBrowser #VideoEditor #VideoEditing #ContentCreation #Gaming #FOSSGame #FOSSGaming #OpenSourceGame #PlayStation #PlayStation3 #FosseryTech

  15. (Linux news in previous posts)

    FOSS NEWS

    Mozilla is packing new features into Firefox:
    betanews.com/article/mozilla-i

    Is Firefox getting a new logo? Mozilla’s socials suggest so…:
    omgubuntu.co.uk/2026/03/is-fir

    Signal introduces group member labels, allowing you to specify your role or responsibility:
    alternativeto.net/news/2026/3/

    Blender 5.1 Open-Source 3D Graphics Software Released with Many New Features:
    9to5linux.com/blender-5-1-open

    LibreOffice 26.8 To Add A Donation Banner To Its Start Center:
    phoronix.com/news/LibreOffice-

    Mozilla Releases Llamafile 0.10 To Enhance Their AI Offering For Easy-To-Use LLMs:
    phoronix.com/news/Mozilla-AI-L

    Ollama integration brings all models to OpenClaw platform:
    alternativeto.net/news/2026/3/

    OpenShot 3.5 is (yet again) the ‘biggest’ and ‘fastest’ release ever:
    omgubuntu.co.uk/2026/03/opensh

    Bitwarden Send improves security with email verification for paid users:
    alternativeto.net/news/2026/3/

    SuperTux 0.7.0 Arcade Game Is Out with Complete Level Design, Revamped Graphics:
    9to5linux.com/supertux-0-7-0-a

    PlayStation 3 emulator RPCS3 gets easier to use with Steam:
    gamingonlinux.com/2026/03/play

    OpenTTD devs clarify store changes with Transport Tycoon Deluxe re-release as Atari contribute server funding:
    gamingonlinux.com/2026/03/open

    GNUnet 0.27 Released For Those With "Some Reasonable Pain Tolerance":
    phoronix.com/news/GNUnet-0.27-

    Immich 2.6 improves map side panel, asset viewer, shared link slugs & presets, and more:
    alternativeto.net/news/2026/3/

    (more FOSS news in comments)

    #WeeklyNews #OpenSource #FOSSNews #FOSS #OpenSourceNews #News #Firefox #Signal #Blender #LibreOffice #Llamafile #Ollama #OpenShot #Bitwarden #BitwardenSend #SuperTux #RPCS3 #OpenTTD #GNUnet #Immich #Browser #WebBrowser #VideoEditor #VideoEditing #ContentCreation #Gaming #FOSSGame #FOSSGaming #OpenSourceGame #PlayStation #PlayStation3 #FosseryTech

  16. (Linux news in previous posts)

    FOSS NEWS

    Mozilla is packing new features into Firefox:
    betanews.com/article/mozilla-i

    Is Firefox getting a new logo? Mozilla’s socials suggest so…:
    omgubuntu.co.uk/2026/03/is-fir

    Signal introduces group member labels, allowing you to specify your role or responsibility:
    alternativeto.net/news/2026/3/

    Blender 5.1 Open-Source 3D Graphics Software Released with Many New Features:
    9to5linux.com/blender-5-1-open

    LibreOffice 26.8 To Add A Donation Banner To Its Start Center:
    phoronix.com/news/LibreOffice-

    Mozilla Releases Llamafile 0.10 To Enhance Their AI Offering For Easy-To-Use LLMs:
    phoronix.com/news/Mozilla-AI-L

    Ollama integration brings all models to OpenClaw platform:
    alternativeto.net/news/2026/3/

    OpenShot 3.5 is (yet again) the ‘biggest’ and ‘fastest’ release ever:
    omgubuntu.co.uk/2026/03/opensh

    Bitwarden Send improves security with email verification for paid users:
    alternativeto.net/news/2026/3/

    SuperTux 0.7.0 Arcade Game Is Out with Complete Level Design, Revamped Graphics:
    9to5linux.com/supertux-0-7-0-a

    PlayStation 3 emulator RPCS3 gets easier to use with Steam:
    gamingonlinux.com/2026/03/play

    OpenTTD devs clarify store changes with Transport Tycoon Deluxe re-release as Atari contribute server funding:
    gamingonlinux.com/2026/03/open

    GNUnet 0.27 Released For Those With "Some Reasonable Pain Tolerance":
    phoronix.com/news/GNUnet-0.27-

    Immich 2.6 improves map side panel, asset viewer, shared link slugs & presets, and more:
    alternativeto.net/news/2026/3/

    (more FOSS news in comments)

    #WeeklyNews #OpenSource #FOSSNews #FOSS #OpenSourceNews #News #Firefox #Signal #Blender #LibreOffice #Llamafile #Ollama #OpenShot #Bitwarden #BitwardenSend #SuperTux #RPCS3 #OpenTTD #GNUnet #Immich #Browser #WebBrowser #VideoEditor #VideoEditing #ContentCreation #Gaming #FOSSGame #FOSSGaming #OpenSourceGame #PlayStation #PlayStation3 #FosseryTech

  17. Who Are These Clowns and Where Did They Put My Flesh Stapler? The AMG Staff Pick Their Top Ten(ish) of 2025 By Steel Druhm

    Listurnalia is now upon us once again! If you are not ready to be assailed by non-stop lists and bad opinions for the next week and change, I suggest you get fooking ready! Listurnalia cannot be stopped, nor contained. It can only be tolerated and endured!

    More than any year in recent history, 2025 saw more seasoned staffers step away from writing duties due to time constraints and life changes. To compensate for the loss of these slackwagoning quitters and shirkers, we added a gaggle of fresh new voices. This made for a bittersweet time around these parts as long-time friends departed and a bunch of untested, unknowns rose through the brutal n00b gauntlet to seize the means of promo production. These greenhorn neophytes have created great havoc at AMG HQ with their terrible taste, inability to follow directions, and steadfast refusal to ignore deathcore.

    We’ve been here before, though, and we always straighten out the newbie upstarts. The daily beatings, deprivations, and absence of positive reinforcement will wear them down, and if not, we have plenty of space in the rotpit out back. This is, and will ever be, the AMG modality.

    2026 will be an interesting year as the new crew members are shepherded by the olde while everyone is crushed beneath the iron heel of AMG management. Who will make it to 2027? Who will be sold off to Metal Wani for a box of bananas and Gorilla Glue? Place your bets in the official AMG Survival Pool!

    As you read the Top Ten(ish) lists below, remember, reading our content is free, but you get what you pay for.

    Grymm

    #10. Venomous Echoes // Dysmor
    #9. Blut Aus Nord // Ethereal Horizons
    #8. Dormant Ordeal // Tooth and Nail
    #7. Structure // Heritage
    #6. Lorna Shore // I Feel The Everblack Festering Within Me
    #5. Sigh // I Saw The World’s End – Hangman’s Hymn MMXXV
    #4. Imperial Triumphant // Goldstar
    #3. Am I In Trouble? // Spectrum
    #2. Dax Riggs // 7 Songs for Spiders
    #1. Paradise Lost // Ascension – I fully expected Paradise Lost to come out with quality music, which has been mostly par for the course in their storied almost-40-year career, and no one could blame them if they decided to coast along on their legendary sound. Instead, Ascension sees them giving a masterclass in songcraft and atmosphere, showing everyone, everywhere, how it’s done. With Black Sabbath now officially put to rest, Anathema long gone, and whatever the fuck is happening within My Dying Bride these days, somebody has to fly the British Doom flag high and proud, and Paradise Lost have done a bang-up job of doing so.

    Personal Highlight o’ the Year: Seeing Acid Bath live. I may or may not have cried during “Venus Blue,” and no, I don’t fucking care. 19-Year-Old me was pleased as punch that 48-Year-Old me got to see a legendary band (and one of his personal favorites) come back from tragedy to pay tribute to their fallen bassist and friend, Audie Pitre, by giving it another long-awaited go.

    Disappointment(s) o’ the Year:

    • Losing so many influential heroes (RIP Ozzy Osbourne, Ace Frehley, and Tomas Lindberg, among too many others)
    • My health: I was hoping to be a lot more active this year, but early on, I needed to, in the immortal words of David Lynch, “fix (my) heart or die.”1 Thankfully, after surgery, I feel a million times better, so you should see a lot more of me in 2026. You have been warned.

    Song o’ the Year:

    • Paradise Lost // “Salvation”

    El Cuervo

    #ish. Astronoid // Stargod
    #10. Ollie Wride // The Pressure Point
    #9. Kauan // Wayhome
    #8. Zéro Absolu // La Saignée
    #7. Mutagenic Host // The Diseased Machine
    #6. Asira // As Ink in Water
    #5. Bruit // The Age of Ephemerality
    #4. Saor // Amidst the Ruins
    #3. The Midnight // Syndicate
    #2. Steven Wilson // The Overview
    #1. Messa // The Spin – In a year replete with comfort picks—progressive rock, synthwave, and death metal abound—how is that Italy’s enigmatic, inscrutable Messa forged my Album o’ the Year? The Spin doesn’t take the trouble to make itself easily approachable. Doom, prog, and post influences circle around velvety melodies that sometimes sound like deliberate songs, and sometimes like jazz improvisation. But it’s these very qualities that belie its subtle allure; only with repetition and attention does The Spin shine. Messa gradually reveals rhythmic motifs, instrumental nuances, and rich compositions that enhance my life on so many days. “The Dress,” especially, is stunning. And though the record’s loungey whimsy defies metal conventions, each track prizes genuine grit through its top-drawer guitar riffs. With the devotion it demands, no record from 2025 was more rewarding than The Spin.

    Honorable Mentions:

    Song o’ the Year:

    • Ambush – “Maskirovka”

    

    GardensTale

    #ish. Structure // Heritage
    #10. In Mourning //The Immortal
    #9. Flummox // Southern Progress
    #8. Der Weg Einer Freiheit // Innern
    #7. Nephylim // Circuition
    #6. Besna // Krásno
    #5. Messa // The Spin
    #4. Labyrinthus Stellarum // Rift in Reality
    #3. Gazpacho // Magic 8 Ball
    #2. Dormant Ordeal// Tooth & Nail
    #1. Moron Police // Pachinko — I was a little nervous when I first read about the length and ambition behind Pachinko, especially in the context of the incredible and very concise A Boat on the Sea. I’ve never been this happy to be this wrong. Nothing in the last decade has overtaken my life as much as Pachinko has, and I’m listening to it yet again as I write this, and will probably restart it once it finishes. Pachinko has a lot in common with Everything Everywhere All At Once, one of my all-time favorite films, as a treatise on the chaos of life and the importance of friends and family. It treats its philosophy of silliness very seriously, laughing in the face of darkness in such a beautiful and inspiring way; it brightens my life every time I hear it. And it does all that in tribute to a dear friend who was gone too soon and too suddenly, and no other eulogistic album has let me feel like its subject’s soul touched mine. An astounding monument to friendship on top of an incredibly accomplished hour of music. Pachinko is a miracle.

    Honorable Mentions:

    Song o’ the Year:

    • Moron Police – “Giving up the Ghost”

    

    Non-metal Albums of the Year:

    • Lorde // Virgin
    • Jonathan Hultén // Eyes of the Living Night
    • Shayfer James // Summoning

    Mark Z.

    #ish. Malefic Throne // The Conquering Darkness
    #10. Urn // Demon Steel
    #9. Teitanblood // From the Visceral Abyss
    #8. Shed the Skin // The Carnage Cast Shadows
    #7. Guts // Nightmare Fuel
    #6. Dormant Ordeal // Tooth and Nail
    #5. Perdition Temple // Malign Apotheosis
    #4. Paradise Lost // Ascension
    #3. Revocation // New Gods, New Masters
    #2. Death Yell // Demons of Lust
    #1. Abominator // The Fire Brethren – It took me a few years after hearing this Australian duo’s last album, 2015’s Evil Proclaimed, to realize I was wrong about them. Their raw and relentless black-death metal wasn’t just good, it was fucking awesome. With their long-awaited sixth album, The Fire Brethren, Abominator has conjured flames that reach higher than ever. As always, the enraged rasps, scorching riffs, and endlessly pummeling rhythms are like plumes of hellfire shot directly into your ear canals. But amidst the bludgeoning is some genuinely great songwriting, with deep-cutting hooks (“The Templar’s Curse,” “Underworld Vociferations”), flashes of melody (“Progenitors of the Insurrection of Satan”), thrashy breaks (“Sulphur from the Heavens”), and just enough variety to keep everything hitting as hard as possible. It’s not for everyone, but for those into Angelcorpse and other music of that sort, The Fire Brethren is the type of album you just can’t get enough of.

    Honorable Mention:

    • Blasphamagoatachrist // Bestial Abominator

    Song (Title) o’ the Year:

    Song o’ the Year:

    • Fugitive – “Spheres of Virulence”

    

    Carcharodon

    #ish. Dax Riggs // 7 Songs for Spiders
    #10. Novarupta // Astral Sands
    #9. Atlantic // Timeworn
    #8. Structure // Heritage
    #7. Agriculture // The Spiritual Sound
    #6. Igorr // Amen
    #5. Messa // The Spin
    #4. Abigail Williams // A Void Within Existence
    #3. Cave Sermon // Fragile Wings
    #2. Dormant Ordeal // Tooth and Nail
    #1. Grima // Nightside – In each of 2019, 2021, and 2022, Grima released an album and, in each of those years, I listed said album (#5, HM, and #10). But this year, the year in which I have listened to the least metal and, of course, written the least since I started here in 2018, is also the year that Grima got everything dialled in to just what I want from a Grima album. On Nightside, the duo struck the perfect balance between the traditional influences of 2019’s Will of the Primordial and the propulsive, frozen atmosphere of Frostbitten (2022). The combination gives Nightside an almost hypnotic and weirdly tranquil flow, offset by Vilhelm’s rasping vocals, which remain among the best in the BM game. Every time I come back to this record, and the title track in particular, it’s even better than I remember it being, and I always end up spinning three or more times back-to-back. An album that can keep playing that trick deserves its #1 spot in my book.

    Honorable Mentions:

    Songs o’ the Year:

    • Messa – “Fire on the Roof”

    

    • Novarupta – “Now Here We Are (At the Inevitable End)”

    Mysticus Hugebeard

    #10. Orbit Culture // Death Above Life
    #9. An Abstract Illusion // The Sleeping City
    #8. Qrixkuor // The Womb of the World
    #7. Dormant Ordeal // Tooth and Nail
    #6. Panopticon // Laurentian Blue
    #5. Blackbraid // Blackbraid III
    #4. Arkhaaik // Uihtis
    #3. Kauan // Wayhome
    #2. Wardruna // Birna
    #1. Thumos // The Trial of SocratesI recall groggily stumbling upon ThumosThe Trial of Socrates at work one early morning, and I’m not sure if I’ve grown attached to it or it’s grown attached to me. It looms in my periphery, routinely interrupting my listening schedule for just one more spin. This gargantuan dive into ancient Greek philosophy and justice is melodically rich, laden with atmosphere, and fiercely intelligent. I love how this album stimulates my curiosity. I pore over The Trial of Socrates like a madman, piecing the puzzle together with feverish glee but never quite feeling finished, because every re-listen yields new shapes, new colors, new ideas. It eggs me on to research various topics on ancient Greek history or philosophy, and even made for an unlikely study partner during my long preparations for the German A1 exam. I always feel smarter by the end of it—hubris, I’m sure, but The Trial of Socrates genuinely sparks my imagination in ways few albums do. Time to go listen to “The Phædo” for the zillionth time.

    Honorable Mentions:

    Songs o’ the Year:

    • Disarmonia Mundi – “Outcast”

    The Dormant Stranger by Disarmonia Mundi

    • Jamie Page & Marcy Nabors – “Do No Harm (Ventricular Mix)”

    Do No Harm by Jamie Paige, Marcy Nabors, & Penny Parker

    • Thumos – “The Phædo”

    The Trial of Socrates by Thumos

    Disappointment(s) o’ the year:

    • The dissolution of Ante-Inferno: After Death’s Soliloquy topped my list last year, I was genuinely gutted to see Ante-Inferno’s post that they were no more. Still, I shall not weep but rather smile that they happened, because Ante-Inferno was a rare breed of genuinely moving black metal. Just that one album rooted itself so deeply within me, and I will be listening for a long time.
    • Arno Menses leaving Subsignal: Man, fuck. Fuck. Remember my nuclear-grade glaze of Subsignal, where I might as well have said Menses’ voice single-handedly justified the entire existence of music? How could I not break down in heaving sobs in the middle of this Denny’s when I heard that Menses and Subsignal have parted ways? It sucks, I tell ya. I will still listen to what Subsignal puts out in the future, because Markus Steffen is a talented musician, but it’s going to be a huge adjustment since Menses is nigh irreplaceable.

    Samguineous Maximus

    #ish. Imperial Triumphant // Goldstar
    #10. Primitive Man // Observance
    #9. Motherless // Do You Feel Safe?
    #8. Deafheaven // Lonely People with Power
    #7. Weeping Sores // The Convalescence Agonies
    #6. Between the Buried and Me // The Blue Nowhere
    #5. Calva Louise // Edge of the Abyss
    #4. 1914 // Viribus Unitis
    #3. Crippling Alcoholism // Camgirl
    #2. Crippling Alcoholism // Bible Songs II
    #1. Yellow Eyes // Confusion GateYellow Eyes are one of the best black metal bands in the game, and Confusion Gate is their most impressive work to date. It sees the band return to a more traditional atmospheric sound, but with the lessons learned from their explorations of dissonance and ambience. The result is a kaleidoscopic blend of gorgeous melodies, haunting riffs, and a pervasive sense of pathos that only the best art can achieve. Confusion Gate feels like communing with nature from the top of a wintry peak, embodying both impossible grandeur and awesome terror. This is a record that bypasses the analytical reviewer’s brain and just hits me right in the feeling. It offers a unique catharsis in a year where I truly needed it.

    Honorable Mentions

    Song o’ the Year:

    • Crippling Alcoholism – “Ladies Night”

    

    Spicie Forrest

    #ish. Cryptopsy // An Insatiable Violence
    #10. Crimson Shadows // Whispers of War
    #9. Oromet // The Sinking Isle
    #8. -ii- // Apostles of the Flesh
    #7. Suncraft // Welcome to the Coven
    #6. Suncraft // Profanation of the Adamic Covenant
    #5. Chestcrush // ΨΥΧΟΒΓΑΛΤΗΣ
    #4. Dormant Ordeal // Tooth and Nail
    #3. Qrixkuor // The Womb of the World
    #2. Primitive Man // Observance
    #1. Wytch Hazel // V: Lamentations – I know, I’m surprised too. But the bottom line is that I’ve been listening to V: Lamentations front to back at least once a week since it released on the most American of holidays, July 4th. For Steel, Wytch Hazel’s latest didn’t have the same staying power as previous efforts, but Lamentations is the first to truly resonate with me. Though musically consistent with their Wishbone Ash-meets-Eagles style, vocalist Colin Hendra brings a new sense of passion to the record, and the interplay between instruments, vocals, and lyrics hits me like a lightning bolt. Very possibly inspired by the core Christian tenet laid out in Romans 6:23-24,2 Lamentations is a masterful portrayal of what it means to perpetually fail, to know you’ll never be good enough, and in the face of a salvation that renders all efforts, deeds, and accomplishments worthless, to keep striving toward the impossible anyway. Even for godless sinners like me, Lamentations is a beautiful reminder that purpose is found in hardship, that the journey is the goal, and that falling down is merely an opportunity to stand up again.

    Honorable Mentions:

    Song o’ the Year:

    • Yellowcard – “honestly i”

    Grin Reaper

    (ish) Sallow Moth // Mossbane Lantern
    #10. Turian // Blood Quantum Blues
    #9. Calva Louise // Edge of the Abyss
    #8. Lychgate // Precipice
    #7. An Abstract Illusion // The Sleeping City
    #6. Thron // Vurias
    #5. Structure // Heritage
    #4. Species // Changelings
    #3. Havukruunu // Tavastland
    #2. Aephanemer // Utopie
    #1. 1914 // Viribus Unitis – I didn’t know Viribus Unitis would be my top album of the year the first time I listened to it, but I knew it would list. 1914’s naked emotion and rousing story of a Ukrainian soldier’s survival through World War I, reconciliation with his family, and inescapable return to war remains as gripping and bittersweet now as it did the first time I heard it. Across adrenaline-fueled riffing, oppressive marches, and somber dirges, 1914 never relents on musical or lyrical weight. Though Viribus Unitis was released late in the year, it quickly became the standard I used to appraise albums while going through listing season. 1914 paints war-torn life with savage grace, supplying devastating melody and grueling crawls that elevate the album to such heights that I’m genuinely moved each time I get to the end. Viribus Unitis is bleak, raw, and human, but for all that, I’m never deterred from listening. Ultimately, 1914 clutches the threads of hope and weaves an aural tapestry that brings tragedy and triumph to life, cementing Viribus Unitis as my undisputed top album of 2025.


    Honorable Mentions:

    Songs o’ the Year:

    • Aephanemer – “Le Cimetière Marin”

    • 1914 – “1918 Pt. III: ADE (A Duty to Escape)”

    Andy-War-Hall

    #ish: Dragon Skull // Chaos Fire Vengeance
    #10: Changeling // Changeling
    #9: Steel Arctus // Dreamruler
    #8: Abigail Williams //A Void Within Existence
    #7: Petrified Giant // Endless Ark
    #6: Imperial Triumphant // Goldstar
    #5: Structure // Heritage
    #4: Lipoma // No Cure for the Sick
    #3: Crippling Alcoholism // Camgirl
    #2: Hexrot // Formless Ruin of Oblivion
    #1: 1914 // Viribus Unitis Immersion defines great music and art for me. It is almost unfortunate how good 1914 are in this facet of their music. Their ability to transport the listener to the battlefield in all its violence, both carnal and psychological, is stupefying. The utter dehumanizing hatred with “1914 (The Siege of Przemyśl),” the ravenous bloodlust of “1917 (The Isonzo Front),” the hellish wails haunting “1918 Pt. 1 (WIA – Wounded in Action):” all portrayed vividly through 1914’s brilliantly caustic and composed musicianship and deeply personal lyricism. When Dmytro Ternushchak bellows “For three days / The Russians attacked / And accomplished nothing but / 40,000 dead pigs” [“1914 (The Siege of Przemyśl)”], it’s all you need to get into his character’s violent headspace. When 1914 mournfully sing in Ukrainian “Це моя земля3 [1915 (Easter Battle for the Zwinin Ridge)], you grasp how someone could put their life on the line for kin and country. When our soldier sings “My little girl reached out to me / But duty calls” [1919 (The Home Where I Died)]… well, shit, your heart just has to break, right? 1914 don’t play “history metal.” Viribus Unitis is as present and relevant as you can get.

    Honorable Mentions:

    Song o’ the Year:

    • Fell Omen – “The Fire is Still Warm”

    

    Lavender Larcenist

    #ish Spiritbox // Tsunami Sea
    #10. Sold Soul // Just Like That, I Disappear Entirely
    #9. Calva Louise // Edge of the Abyss
    #8. Dying Wish // Flesh Stays Together
    #7. Grima // Nightside
    #6. Aversed // Erasure of Color
    #5. Deafheaven // Lonely People With Power
    #4. Ghost Bath // Rose Thorn Necklace
    #3. Changeling // Changeling
    #2. Dormant Ordeal // Tooth and Nail
    #1. Crippling Alcoholism // Camgirl – Sometimes you listen to music, and you feel like it gets you. Camgirl was exactly that type of album, and it probably doesn’t say anything good about me. Ever since Crippling Alcoholism’s latest graced my ears and I shared it with my partner, we have been singing “I fucking hate the way I look, yeah I look like a fat fucking scumbag” way too often and mumbling “Mr. Ran away, ran away from family” every chance we get. The album is dripping with the atmosphere of neon-lit back rooms, seedy interactions, and terrible decision-making. It feels like a lens into the lives of those society has left behind, and I can’t help but feel a connection. The self-destructive nihilism, drugged-out sex, and abrupt violence that is all too common in those on the margins of life is something I think more and more we can all relate to, and Camgirl is the art that mirrors society back to us. As a result, it is an album that is just as ugly as it is terrifying and beautiful.


    Honorable Mentions:

    Song o’ the Year:

    • Crippling Alcoholism – “bedrot”

    Creeping Ivy

    #ish. Nite // Cult of the Serpent Sun
    #10. Blackbraid // Blackbraid III
    #9. Flummox // Southern Progress
    #8. 1914 // Viribus Unitis
    #7. Cave Sermon // Fragile Wings
    #6. Saor // Amidst the Ruins
    #5. Imperial Triumphant // Goldstar
    #4. Phantom Spell // Heather & Hearth
    #3. Coroner // Dissonance Theory
    #2. Messa // The Spin
    #1. Havukruunu // TavastlandOn their Bandcamp page, Havukruunu explain the concept of their fourth LP: ‘Tavastland tells how in 1237 the Tavastians rose in rebellion against the church of Christ and drove the popes naked into the frost to die.’ Sounds like the metal album of 2025 to me! But I didn’t crown Tavastland for its lyrics that I can’t understand. As Dr. A.N. Grier has been exhorting for a decade, Havukruunu stands as a model of Viking black metal consistency, having dropped only very good-to-great albums since 2015. Tavastland isn’t a radical improvement over 2020’s Uinuous syömein sota, but it’s an (arguably excellent) improvement nonetheless, making it Havukruunu’s finest work yet. Yes, these fiery Finns forge sounds reminiscent of Bathory and Immortal, but Tavastland seized my attention for its adventurous prog sensibilities. Some of this can be attributed to the return of Hümo, whose bass rattles like the four strings of Geddy Lee. But the prog is deep in the album craft, from the overture-style modulations of opener “Kuolematon laulunhenki” to the extended guitar wankery of closer “De miseriis fennorum.” Now if only I can learn Finnish, I’ll be able to appreciate the killer anti-popery narrative while headbanging to my Record o’ 2025.

    Honorable Mentions:

    Song o’ the Year:

    • Phantom Spell – “The Autumn Citadel”

    

    Baguette of Bodom

    #ish. In the Woods… // Otra
    #10. Species // Changelings
    #9. Dragon Skull // Chaos Fire Vengeance
    #8. A-Z // A2Z²
    #7. Apocalypse Orchestra // A Plague upon Thee
    #6. Amorphis // Borderland
    #5. Dolmen Gate // Echoes of Ancient Tales
    #4. Dormant Ordeal // Tooth and Nail
    #3. Amalekim // Shir Hashirim
    #2. Suotana // Ounas II
    #1. Buried Realm // The Dormant Darkness – Melodic tech death? Symphonic power metal? Who knows! Much like my 2025 in general, The Dormant Darkness has a bit of everything in one gigantic clusterfuck. The great news is, neither I nor the album crumbled under all that weight. In a year full of odd twists and turns, my list became more varied and unusual than ever. Buried Realm took this variety and gave me everything I like about metal in one dense package: blazing speeds, soaring guitars, majestic vocals, and relentless fury. It’s also inexplicably well-produced for how many layers there are to deal with. While 2025 was not a particularly star-studded release year—especially compared to most of the 2020s so far—it threw plenty of fun curveballs at me, and The Dormant Darkness exemplifies this with its Xothian fusion of metal subgenres in one big Ophidian I blender ov shred. I would also like to request several Christian Älvestam features on every album, please.

    Honorable Mentions:

    Song o’ the Year:

    • Dragon Skull – “Blood and Souls”

    Chaos Fire Vengeance by Dragon Skull

    #1914 #2025 #AZ #AbigailWilliams #Abominator #Aephanemer #Agriculture #AmIInTrouble #Amalekim #Ambush #Amorphis #AnAbstractIllusion #ApocalypseOrchestra #Arkhaaik #Asira #Astronoid #Atlantic #AvaMendozaGabbyFlukeMogalCarolinaPérez #Aversed #Besna #BetweenTheBuriedAndMe #Bianca #Blackbraid #Blasphamagoatachrist #Blindfolded #BlogLists #Bloodywood #BlutAusNord #Bruit #BuriedRealm #CalvaLouise #CaveSermon #Changeling #Chestcrush #Coroner #CrimsonShadows #CripplingAlcoholism #DawnOfSolace #DaxRiggs #Deafheaven #DeathYell #Décryptal #Defigurement #DerWegEinerFreiheit #DolmenGate #DormantOrdeal #DragonSkull #DyingWish #Dynazty #Fange #FellOmen #Flummox #Gazpacho #GhostBath #Gorycz #Grima #Guts #HangoverInMinsk #Hasard #Havukruunu #Hexrot #HoodedMenace #Igorr #Igorrr #II #ImperialTriumphant #JonathanHultén #Kauan #LabyrinthusStellarum #Lipoma #Lists #Lorde #LornaShore #Lychgate #MaleficThrone #Messa #MoronPolice #Motherless #MutagenicHost #Nephylim #NightFlightOrchestra #Nite #Novarupta #OllieWride #Ophelion #OrbitCulture #Oromet #Panopticon #ParadiseLost #PedestalForLeviathan #PerditionTemple #PetrifiedGiant #PhantomSpell #PrimitiveMan #Proscription #Psychonaut #PupilSlicer #Puteraeon #Qrixkuor #Revocation #SallowMoth #Saor #ShadowOfIntent #ShayferJames #ShedTheSkin #Sigh #SoldSoul #Species #Spiritbox #Starscourge #SteelArctus #StevenWilson #Strigiform #Structure #Suncraft #Suotana #Teitanblood #TheAMGStaffPickTheirTopTenIshOf2025 #TheMidnight #Thron #Thumos #Turian #ÜltraRaptör #Urn #VenomousEchoes #VictimOfFire #Walg #Wardruna #WeepingSores #WyattE #WytchHazel #YellowEyes #Yellowcard #ZéroAbsolu
  18. Who Are These Clowns and Where Did They Put My Flesh Stapler? The AMG Staff Pick Their Top Ten(ish) of 2025 By Steel Druhm

    Listurnalia is now upon us once again! If you are not ready to be assailed by non-stop lists and bad opinions for the next week and change, I suggest you get fooking ready! Listurnalia cannot be stopped, nor contained. It can only be tolerated and endured!

    More than any year in recent history, 2025 saw more seasoned staffers step away from writing duties due to time constraints and life changes. To compensate for the loss of these slackwagoning quitters and shirkers, we added a gaggle of fresh new voices. This made for a bittersweet time around these parts as long-time friends departed and a bunch of untested, unknowns rose through the brutal n00b gauntlet to seize the means of promo production. These greenhorn neophytes have created great havoc at AMG HQ with their terrible taste, inability to follow directions, and steadfast refusal to ignore deathcore.

    We’ve been here before, though, and we always straighten out the newbie upstarts. The daily beatings, deprivations, and absence of positive reinforcement will wear them down, and if not, we have plenty of space in the rotpit out back. This is, and will ever be, the AMG modality.

    2026 will be an interesting year as the new crew members are shepherded by the olde while everyone is crushed beneath the iron heel of AMG management. Who will make it to 2027? Who will be sold off to Metal Wani for a box of bananas and Gorilla Glue? Place your bets in the official AMG Survival Pool!

    As you read the Top Ten(ish) lists below, remember, reading our content is free, but you get what you pay for.

    Grymm

    #10. Venomous Echoes // Dysmor
    #9. Blut Aus Nord // Ethereal Horizons
    #8. Dormant Ordeal // Tooth and Nail
    #7. Structure // Heritage
    #6. Lorna Shore // I Feel The Everblack Festering Within Me
    #5. Sigh // I Saw The World’s End – Hangman’s Hymn MMXXV
    #4. Imperial Triumphant // Goldstar
    #3. Am I In Trouble? // Spectrum
    #2. Dax Riggs // 7 Songs for Spiders
    #1. Paradise Lost // Ascension – I fully expected Paradise Lost to come out with quality music, which has been mostly par for the course in their storied almost-40-year career, and no one could blame them if they decided to coast along on their legendary sound. Instead, Ascension sees them giving a masterclass in songcraft and atmosphere, showing everyone, everywhere, how it’s done. With Black Sabbath now officially put to rest, Anathema long gone, and whatever the fuck is happening within My Dying Bride these days, somebody has to fly the British Doom flag high and proud, and Paradise Lost have done a bang-up job of doing so.

    Personal Highlight o’ the Year: Seeing Acid Bath live. I may or may not have cried during “Venus Blue,” and no, I don’t fucking care. 19-Year-Old me was pleased as punch that 48-Year-Old me got to see a legendary band (and one of his personal favorites) come back from tragedy to pay tribute to their fallen bassist and friend, Audie Pitre, by giving it another long-awaited go.

    Disappointment(s) o’ the Year:

    • Losing so many influential heroes (RIP Ozzy Osbourne, Ace Frehley, and Tomas Lindberg, among too many others)
    • My health: I was hoping to be a lot more active this year, but early on, I needed to, in the immortal words of David Lynch, “fix (my) heart or die.”1 Thankfully, after surgery, I feel a million times better, so you should see a lot more of me in 2026. You have been warned.

    Song o’ the Year:

    • Paradise Lost // “Salvation”

    El Cuervo

    #ish. Astronoid // Stargod
    #10. Ollie Wride // The Pressure Point
    #9. Kauan // Wayhome
    #8. Zéro Absolu // La Saignée
    #7. Mutagenic Host // The Diseased Machine
    #6. Asira // As Ink in Water
    #5. Bruit // The Age of Ephemerality
    #4. Saor // Amidst the Ruins
    #3. The Midnight // Syndicate
    #2. Steven Wilson // The Overview
    #1. Messa // The Spin – In a year replete with comfort picks—progressive rock, synthwave, and death metal abound—how is that Italy’s enigmatic, inscrutable Messa forged my Album o’ the Year? The Spin doesn’t take the trouble to make itself easily approachable. Doom, prog, and post influences circle around velvety melodies that sometimes sound like deliberate songs, and sometimes like jazz improvisation. But it’s these very qualities that belie its subtle allure; only with repetition and attention does The Spin shine. Messa gradually reveals rhythmic motifs, instrumental nuances, and rich compositions that enhance my life on so many days. “The Dress,” especially, is stunning. And though the record’s loungey whimsy defies metal conventions, each track prizes genuine grit through its top-drawer guitar riffs. With the devotion it demands, no record from 2025 was more rewarding than The Spin.

    Honorable Mentions:

    Song o’ the Year:

    • Ambush – “Maskirovka”

    

    GardensTale

    #ish. Structure // Heritage
    #10. In Mourning //The Immortal
    #9. Flummox // Southern Progress
    #8. Der Weg Einer Freiheit // Innern
    #7. Nephylim // Circuition
    #6. Besna // Krásno
    #5. Messa // The Spin
    #4. Labyrinthus Stellarum // Rift in Reality
    #3. Gazpacho // Magic 8 Ball
    #2. Dormant Ordeal// Tooth & Nail
    #1. Moron Police // Pachinko — I was a little nervous when I first read about the length and ambition behind Pachinko, especially in the context of the incredible and very concise A Boat on the Sea. I’ve never been this happy to be this wrong. Nothing in the last decade has overtaken my life as much as Pachinko has, and I’m listening to it yet again as I write this, and will probably restart it once it finishes. Pachinko has a lot in common with Everything Everywhere All At Once, one of my all-time favorite films, as a treatise on the chaos of life and the importance of friends and family. It treats its philosophy of silliness very seriously, laughing in the face of darkness in such a beautiful and inspiring way; it brightens my life every time I hear it. And it does all that in tribute to a dear friend who was gone too soon and too suddenly, and no other eulogistic album has let me feel like its subject’s soul touched mine. An astounding monument to friendship on top of an incredibly accomplished hour of music. Pachinko is a miracle.

    Honorable Mentions:

    Song o’ the Year:

    • Moron Police – “Giving up the Ghost”

    

    Non-metal Albums of the Year:

    • Lorde // Virgin
    • Jonathan Hultén // Eyes of the Living Night
    • Shayfer James // Summoning

    Mark Z.

    #ish. Malefic Throne // The Conquering Darkness
    #10. Urn // Demon Steel
    #9. Teitanblood // From the Visceral Abyss
    #8. Shed the Skin // The Carnage Cast Shadows
    #7. Guts // Nightmare Fuel
    #6. Dormant Ordeal // Tooth and Nail
    #5. Perdition Temple // Malign Apotheosis
    #4. Paradise Lost // Ascension
    #3. Revocation // New Gods, New Masters
    #2. Death Yell // Demons of Lust
    #1. Abominator // The Fire Brethren – It took me a few years after hearing this Australian duo’s last album, 2015’s Evil Proclaimed, to realize I was wrong about them. Their raw and relentless black-death metal wasn’t just good, it was fucking awesome. With their long-awaited sixth album, The Fire Brethren, Abominator has conjured flames that reach higher than ever. As always, the enraged rasps, scorching riffs, and endlessly pummeling rhythms are like plumes of hellfire shot directly into your ear canals. But amidst the bludgeoning is some genuinely great songwriting, with deep-cutting hooks (“The Templar’s Curse,” “Underworld Vociferations”), flashes of melody (“Progenitors of the Insurrection of Satan”), thrashy breaks (“Sulphur from the Heavens”), and just enough variety to keep everything hitting as hard as possible. It’s not for everyone, but for those into Angelcorpse and other music of that sort, The Fire Brethren is the type of album you just can’t get enough of.

    Honorable Mention:

    • Blasphamagoatachrist // Bestial Abominator

    Song (Title) o’ the Year:

    Song o’ the Year:

    • Fugitive – “Spheres of Virulence”

    

    Carcharodon

    #ish. Dax Riggs // 7 Songs for Spiders
    #10. Novarupta // Astral Sands
    #9. Atlantic // Timeworn
    #8. Structure // Heritage
    #7. Agriculture // The Spiritual Sound
    #6. Igorr // Amen
    #5. Messa // The Spin
    #4. Abigail Williams // A Void Within Existence
    #3. Cave Sermon // Fragile Wings
    #2. Dormant Ordeal // Tooth and Nail
    #1. Grima // Nightside – In each of 2019, 2021, and 2022, Grima released an album and, in each of those years, I listed said album (#5, HM, and #10). But this year, the year in which I have listened to the least metal and, of course, written the least since I started here in 2018, is also the year that Grima got everything dialled in to just what I want from a Grima album. On Nightside, the duo struck the perfect balance between the traditional influences of 2019’s Will of the Primordial and the propulsive, frozen atmosphere of Frostbitten (2022). The combination gives Nightside an almost hypnotic and weirdly tranquil flow, offset by Vilhelm’s rasping vocals, which remain among the best in the BM game. Every time I come back to this record, and the title track in particular, it’s even better than I remember it being, and I always end up spinning three or more times back-to-back. An album that can keep playing that trick deserves its #1 spot in my book.

    Honorable Mentions:

    Songs o’ the Year:

    • Messa – “Fire on the Roof”

    

    • Novarupta – “Now Here We Are (At the Inevitable End)”

    Mysticus Hugebeard

    #10. Orbit Culture // Death Above Life
    #9. An Abstract Illusion // The Sleeping City
    #8. Qrixkuor // The Womb of the World
    #7. Dormant Ordeal // Tooth and Nail
    #6. Panopticon // Laurentian Blue
    #5. Blackbraid // Blackbraid III
    #4. Arkhaaik // Uihtis
    #3. Kauan // Wayhome
    #2. Wardruna // Birna
    #1. Thumos // The Trial of SocratesI recall groggily stumbling upon ThumosThe Trial of Socrates at work one early morning, and I’m not sure if I’ve grown attached to it or it’s grown attached to me. It looms in my periphery, routinely interrupting my listening schedule for just one more spin. This gargantuan dive into ancient Greek philosophy and justice is melodically rich, laden with atmosphere, and fiercely intelligent. I love how this album stimulates my curiosity. I pore over The Trial of Socrates like a madman, piecing the puzzle together with feverish glee but never quite feeling finished, because every re-listen yields new shapes, new colors, new ideas. It eggs me on to research various topics on ancient Greek history or philosophy, and even made for an unlikely study partner during my long preparations for the German A1 exam. I always feel smarter by the end of it—hubris, I’m sure, but The Trial of Socrates genuinely sparks my imagination in ways few albums do. Time to go listen to “The Phædo” for the zillionth time.

    Honorable Mentions:

    Songs o’ the Year:

    • Disarmonia Mundi – “Outcast”

    The Dormant Stranger by Disarmonia Mundi

    • Jamie Page & Marcy Nabors – “Do No Harm (Ventricular Mix)”

    Do No Harm by Jamie Paige, Marcy Nabors, & Penny Parker

    • Thumos – “The Phædo”

    The Trial of Socrates by Thumos

    Disappointment(s) o’ the year:

    • The dissolution of Ante-Inferno: After Death’s Soliloquy topped my list last year, I was genuinely gutted to see Ante-Inferno’s post that they were no more. Still, I shall not weep but rather smile that they happened, because Ante-Inferno was a rare breed of genuinely moving black metal. Just that one album rooted itself so deeply within me, and I will be listening for a long time.
    • Arno Menses leaving Subsignal: Man, fuck. Fuck. Remember my nuclear-grade glaze of Subsignal, where I might as well have said Menses’ voice single-handedly justified the entire existence of music? How could I not break down in heaving sobs in the middle of this Denny’s when I heard that Menses and Subsignal have parted ways? It sucks, I tell ya. I will still listen to what Subsignal puts out in the future, because Markus Steffen is a talented musician, but it’s going to be a huge adjustment since Menses is nigh irreplaceable.

    Samguineous Maximus

    #ish. Imperial Triumphant // Goldstar
    #10. Primitive Man // Observance
    #9. Motherless // Do You Feel Safe?
    #8. Deafheaven // Lonely People with Power
    #7. Weeping Sores // The Convalescence Agonies
    #6. Between the Buried and Me // The Blue Nowhere
    #5. Calva Louise // Edge of the Abyss
    #4. 1914 // Viribus Unitis
    #3. Crippling Alcoholism // Camgirl
    #2. Crippling Alcoholism // Bible Songs II
    #1. Yellow Eyes // Confusion GateYellow Eyes are one of the best black metal bands in the game, and Confusion Gate is their most impressive work to date. It sees the band return to a more traditional atmospheric sound, but with the lessons learned from their explorations of dissonance and ambience. The result is a kaleidoscopic blend of gorgeous melodies, haunting riffs, and a pervasive sense of pathos that only the best art can achieve. Confusion Gate feels like communing with nature from the top of a wintry peak, embodying both impossible grandeur and awesome terror. This is a record that bypasses the analytical reviewer’s brain and just hits me right in the feeling. It offers a unique catharsis in a year where I truly needed it.

    Honorable Mentions

    Song o’ the Year:

    • Crippling Alcoholism – “Ladies Night”

    

    Spicie Forrest

    #ish. Cryptopsy // An Insatiable Violence
    #10. Crimson Shadows // Whispers of War
    #9. Oromet // The Sinking Isle
    #8. -ii- // Apostles of the Flesh
    #7. Suncraft // Welcome to the Coven
    #6. Suncraft // Profanation of the Adamic Covenant
    #5. Chestcrush // ΨΥΧΟΒΓΑΛΤΗΣ
    #4. Dormant Ordeal // Tooth and Nail
    #3. Qrixkuor // The Womb of the World
    #2. Primitive Man // Observance
    #1. Wytch Hazel // V: Lamentations – I know, I’m surprised too. But the bottom line is that I’ve been listening to V: Lamentations front to back at least once a week since it released on the most American of holidays, July 4th. For Steel, Wytch Hazel’s latest didn’t have the same staying power as previous efforts, but Lamentations is the first to truly resonate with me. Though musically consistent with their Wishbone Ash-meets-Eagles style, vocalist Colin Hendra brings a new sense of passion to the record, and the interplay between instruments, vocals, and lyrics hits me like a lightning bolt. Very possibly inspired by the core Christian tenet laid out in Romans 6:23-24,2 Lamentations is a masterful portrayal of what it means to perpetually fail, to know you’ll never be good enough, and in the face of a salvation that renders all efforts, deeds, and accomplishments worthless, to keep striving toward the impossible anyway. Even for godless sinners like me, Lamentations is a beautiful reminder that purpose is found in hardship, that the journey is the goal, and that falling down is merely an opportunity to stand up again.

    Honorable Mentions:

    Song o’ the Year:

    • Yellowcard – “honestly i”

    Grin Reaper

    (ish) Sallow Moth // Mossbane Lantern
    #10. Turian // Blood Quantum Blues
    #9. Calva Louise // Edge of the Abyss
    #8. Lychgate // Precipice
    #7. An Abstract Illusion // The Sleeping City
    #6. Thron // Vurias
    #5. Structure // Heritage
    #4. Species // Changelings
    #3. Havukruunu // Tavastland
    #2. Aephanemer // Utopie
    #1. 1914 // Viribus Unitis – I didn’t know Viribus Unitis would be my top album of the year the first time I listened to it, but I knew it would list. 1914’s naked emotion and rousing story of a Ukrainian soldier’s survival through World War I, reconciliation with his family, and inescapable return to war remains as gripping and bittersweet now as it did the first time I heard it. Across adrenaline-fueled riffing, oppressive marches, and somber dirges, 1914 never relents on musical or lyrical weight. Though Viribus Unitis was released late in the year, it quickly became the standard I used to appraise albums while going through listing season. 1914 paints war-torn life with savage grace, supplying devastating melody and grueling crawls that elevate the album to such heights that I’m genuinely moved each time I get to the end. Viribus Unitis is bleak, raw, and human, but for all that, I’m never deterred from listening. Ultimately, 1914 clutches the threads of hope and weaves an aural tapestry that brings tragedy and triumph to life, cementing Viribus Unitis as my undisputed top album of 2025.


    Honorable Mentions:

    Songs o’ the Year:

    • Aephanemer – “Le Cimetière Marin”

    • 1914 – “1918 Pt. III: ADE (A Duty to Escape)”

    Andy-War-Hall

    #ish: Dragon Skull // Chaos Fire Vengeance
    #10: Changeling // Changeling
    #9: Steel Arctus // Dreamruler
    #8: Abigail Williams //A Void Within Existence
    #7: Petrified Giant // Endless Ark
    #6: Imperial Triumphant // Goldstar
    #5: Structure // Heritage
    #4: Lipoma // No Cure for the Sick
    #3: Crippling Alcoholism // Camgirl
    #2: Hexrot // Formless Ruin of Oblivion
    #1: 1914 // Viribus Unitis Immersion defines great music and art for me. It is almost unfortunate how good 1914 are in this facet of their music. Their ability to transport the listener to the battlefield in all its violence, both carnal and psychological, is stupefying. The utter dehumanizing hatred with “1914 (The Siege of Przemyśl),” the ravenous bloodlust of “1917 (The Isonzo Front),” the hellish wails haunting “1918 Pt. 1 (WIA – Wounded in Action):” all portrayed vividly through 1914’s brilliantly caustic and composed musicianship and deeply personal lyricism. When Dmytro Ternushchak bellows “For three days / The Russians attacked / And accomplished nothing but / 40,000 dead pigs” [“1914 (The Siege of Przemyśl)”], it’s all you need to get into his character’s violent headspace. When 1914 mournfully sing in Ukrainian “Це моя земля3 [1915 (Easter Battle for the Zwinin Ridge)], you grasp how someone could put their life on the line for kin and country. When our soldier sings “My little girl reached out to me / But duty calls” [1919 (The Home Where I Died)]… well, shit, your heart just has to break, right? 1914 don’t play “history metal.” Viribus Unitis is as present and relevant as you can get.

    Honorable Mentions:

    Song o’ the Year:

    • Fell Omen – “The Fire is Still Warm”

    

    Lavender Larcenist

    #ish Spiritbox // Tsunami Sea
    #10. Sold Soul // Just Like That, I Disappear Entirely
    #9. Calva Louise // Edge of the Abyss
    #8. Dying Wish // Flesh Stays Together
    #7. Grima // Nightside
    #6. Aversed // Erasure of Color
    #5. Deafheaven // Lonely People With Power
    #4. Ghost Bath // Rose Thorn Necklace
    #3. Changeling // Changeling
    #2. Dormant Ordeal // Tooth and Nail
    #1. Crippling Alcoholism // Camgirl – Sometimes you listen to music, and you feel like it gets you. Camgirl was exactly that type of album, and it probably doesn’t say anything good about me. Ever since Crippling Alcoholism’s latest graced my ears and I shared it with my partner, we have been singing “I fucking hate the way I look, yeah I look like a fat fucking scumbag” way too often and mumbling “Mr. Ran away, ran away from family” every chance we get. The album is dripping with the atmosphere of neon-lit back rooms, seedy interactions, and terrible decision-making. It feels like a lens into the lives of those society has left behind, and I can’t help but feel a connection. The self-destructive nihilism, drugged-out sex, and abrupt violence that is all too common in those on the margins of life is something I think more and more we can all relate to, and Camgirl is the art that mirrors society back to us. As a result, it is an album that is just as ugly as it is terrifying and beautiful.


    Honorable Mentions:

    Song o’ the Year:

    • Crippling Alcoholism – “bedrot”

    Creeping Ivy

    #ish. Nite // Cult of the Serpent Sun
    #10. Blackbraid // Blackbraid III
    #9. Flummox // Southern Progress
    #8. 1914 // Viribus Unitis
    #7. Cave Sermon // Fragile Wings
    #6. Saor // Amidst the Ruins
    #5. Imperial Triumphant // Goldstar
    #4. Phantom Spell // Heather & Hearth
    #3. Coroner // Dissonance Theory
    #2. Messa // The Spin
    #1. Havukruunu // TavastlandOn their Bandcamp page, Havukruunu explain the concept of their fourth LP: ‘Tavastland tells how in 1237 the Tavastians rose in rebellion against the church of Christ and drove the popes naked into the frost to die.’ Sounds like the metal album of 2025 to me! But I didn’t crown Tavastland for its lyrics that I can’t understand. As Dr. A.N. Grier has been exhorting for a decade, Havukruunu stands as a model of Viking black metal consistency, having dropped only very good-to-great albums since 2015. Tavastland isn’t a radical improvement over 2020’s Uinuous syömein sota, but it’s an (arguably excellent) improvement nonetheless, making it Havukruunu’s finest work yet. Yes, these fiery Finns forge sounds reminiscent of Bathory and Immortal, but Tavastland seized my attention for its adventurous prog sensibilities. Some of this can be attributed to the return of Hümo, whose bass rattles like the four strings of Geddy Lee. But the prog is deep in the album craft, from the overture-style modulations of opener “Kuolematon laulunhenki” to the extended guitar wankery of closer “De miseriis fennorum.” Now if only I can learn Finnish, I’ll be able to appreciate the killer anti-popery narrative while headbanging to my Record o’ 2025.

    Honorable Mentions:

    Song o’ the Year:

    • Phantom Spell – “The Autumn Citadel”

    

    Baguette of Bodom

    #ish. In the Woods… // Otra
    #10. Species // Changelings
    #9. Dragon Skull // Chaos Fire Vengeance
    #8. A-Z // A2Z²
    #7. Apocalypse Orchestra // A Plague upon Thee
    #6. Amorphis // Borderland
    #5. Dolmen Gate // Echoes of Ancient Tales
    #4. Dormant Ordeal // Tooth and Nail
    #3. Amalekim // Shir Hashirim
    #2. Suotana // Ounas II
    #1. Buried Realm // The Dormant Darkness – Melodic tech death? Symphonic power metal? Who knows! Much like my 2025 in general, The Dormant Darkness has a bit of everything in one gigantic clusterfuck. The great news is, neither I nor the album crumbled under all that weight. In a year full of odd twists and turns, my list became more varied and unusual than ever. Buried Realm took this variety and gave me everything I like about metal in one dense package: blazing speeds, soaring guitars, majestic vocals, and relentless fury. It’s also inexplicably well-produced for how many layers there are to deal with. While 2025 was not a particularly star-studded release year—especially compared to most of the 2020s so far—it threw plenty of fun curveballs at me, and The Dormant Darkness exemplifies this with its Xothian fusion of metal subgenres in one big Ophidian I blender ov shred. I would also like to request several Christian Älvestam features on every album, please.

    Honorable Mentions:

    Song o’ the Year:

    • Dragon Skull – “Blood and Souls”

    Chaos Fire Vengeance by Dragon Skull

    #1914 #2025 #AZ #AbigailWilliams #Abominator #Aephanemer #Agriculture #AmIInTrouble #Amalekim #Ambush #Amorphis #AnAbstractIllusion #ApocalypseOrchestra #Arkhaaik #Asira #Astronoid #Atlantic #AvaMendozaGabbyFlukeMogalCarolinaPérez #Aversed #Besna #BetweenTheBuriedAndMe #Bianca #Blackbraid #Blasphamagoatachrist #Blindfolded #BlogLists #Bloodywood #BlutAusNord #Bruit #BuriedRealm #CalvaLouise #CaveSermon #Changeling #Chestcrush #Coroner #CrimsonShadows #CripplingAlcoholism #DawnOfSolace #DaxRiggs #Deafheaven #DeathYell #Décryptal #Defigurement #DerWegEinerFreiheit #DolmenGate #DormantOrdeal #DragonSkull #DyingWish #Dynazty #Fange #FellOmen #Flummox #Gazpacho #GhostBath #Gorycz #Grima #Guts #HangoverInMinsk #Hasard #Havukruunu #Hexrot #HoodedMenace #Igorr #Igorrr #II #ImperialTriumphant #JonathanHultén #Kauan #LabyrinthusStellarum #Lipoma #Lists #Lorde #LornaShore #Lychgate #MaleficThrone #Messa #MoronPolice #Motherless #MutagenicHost #Nephylim #NightFlightOrchestra #Nite #Novarupta #OllieWride #Ophelion #OrbitCulture #Oromet #Panopticon #ParadiseLost #PedestalForLeviathan #PerditionTemple #PetrifiedGiant #PhantomSpell #PrimitiveMan #Proscription #Psychonaut #PupilSlicer #Puteraeon #Qrixkuor #Revocation #SallowMoth #Saor #ShadowOfIntent #ShayferJames #ShedTheSkin #Sigh #SoldSoul #Species #Spiritbox #Starscourge #SteelArctus #StevenWilson #Strigiform #Structure #Suncraft #Suotana #Teitanblood #TheAMGStaffPickTheirTopTenIshOf2025 #TheMidnight #Thron #Thumos #Turian #ÜltraRaptör #Urn #VenomousEchoes #VictimOfFire #Walg #Wardruna #WeepingSores #WyattE #WytchHazel #YellowEyes #Yellowcard #ZéroAbsolu
  19. Who Are These Clowns and Where Did They Put My Flesh Stapler? The AMG Staff Pick Their Top Ten(ish) of 2025 By Steel Druhm

    Listurnalia is now upon us once again! If you are not ready to be assailed by non-stop lists and bad opinions for the next week and change, I suggest you get fooking ready! Listurnalia cannot be stopped, nor contained. It can only be tolerated and endured!

    More than any year in recent history, 2025 saw more seasoned staffers step away from writing duties due to time constraints and life changes. To compensate for the loss of these slackwagoning quitters and shirkers, we added a gaggle of fresh new voices. This made for a bittersweet time around these parts as long-time friends departed and a bunch of untested, unknowns rose through the brutal n00b gauntlet to seize the means of promo production. These greenhorn neophytes have created great havoc at AMG HQ with their terrible taste, inability to follow directions, and steadfast refusal to ignore deathcore.

    We’ve been here before, though, and we always straighten out the newbie upstarts. The daily beatings, deprivations, and absence of positive reinforcement will wear them down, and if not, we have plenty of space in the rotpit out back. This is, and will ever be, the AMG modality.

    2026 will be an interesting year as the new crew members are shepherded by the olde while everyone is crushed beneath the iron heel of AMG management. Who will make it to 2027? Who will be sold off to Metal Wani for a box of bananas and Gorilla Glue? Place your bets in the official AMG Survival Pool!

    As you read the Top Ten(ish) lists below, remember, reading our content is free, but you get what you pay for.

    Grymm

    #10. Venomous Echoes // Dysmor
    #9. Blut Aus Nord // Ethereal Horizons
    #8. Dormant Ordeal // Tooth and Nail
    #7. Structure // Heritage
    #6. Lorna Shore // I Feel The Everblack Festering Within Me
    #5. Sigh // I Saw The World’s End – Hangman’s Hymn MMXXV
    #4. Imperial Triumphant // Goldstar
    #3. Am I In Trouble? // Spectrum
    #2. Dax Riggs // 7 Songs for Spiders
    #1. Paradise Lost // Ascension – I fully expected Paradise Lost to come out with quality music, which has been mostly par for the course in their storied almost-40-year career, and no one could blame them if they decided to coast along on their legendary sound. Instead, Ascension sees them giving a masterclass in songcraft and atmosphere, showing everyone, everywhere, how it’s done. With Black Sabbath now officially put to rest, Anathema long gone, and whatever the fuck is happening within My Dying Bride these days, somebody has to fly the British Doom flag high and proud, and Paradise Lost have done a bang-up job of doing so.

    Personal Highlight o’ the Year: Seeing Acid Bath live. I may or may not have cried during “Venus Blue,” and no, I don’t fucking care. 19-Year-Old me was pleased as punch that 48-Year-Old me got to see a legendary band (and one of his personal favorites) come back from tragedy to pay tribute to their fallen bassist and friend, Audie Pitre, by giving it another long-awaited go.

    Disappointment(s) o’ the Year:

    • Losing so many influential heroes (RIP Ozzy Osbourne, Ace Frehley, and Tomas Lindberg, among too many others)
    • My health: I was hoping to be a lot more active this year, but early on, I needed to, in the immortal words of David Lynch, “fix (my) heart or die.”1 Thankfully, after surgery, I feel a million times better, so you should see a lot more of me in 2026. You have been warned.

    Song o’ the Year:

    • Paradise Lost // “Salvation”

    El Cuervo

    #ish. Astronoid // Stargod
    #10. Ollie Wride // The Pressure Point
    #9. Kauan // Wayhome
    #8. Zéro Absolu // La Saignée
    #7. Mutagenic Host // The Diseased Machine
    #6. Asira // As Ink in Water
    #5. Bruit // The Age of Ephemerality
    #4. Saor // Amidst the Ruins
    #3. The Midnight // Syndicate
    #2. Steven Wilson // The Overview
    #1. Messa // The Spin – In a year replete with comfort picks—progressive rock, synthwave, and death metal abound—how is that Italy’s enigmatic, inscrutable Messa forged my Album o’ the Year? The Spin doesn’t take the trouble to make itself easily approachable. Doom, prog, and post influences circle around velvety melodies that sometimes sound like deliberate songs, and sometimes like jazz improvisation. But it’s these very qualities that belie its subtle allure; only with repetition and attention does The Spin shine. Messa gradually reveals rhythmic motifs, instrumental nuances, and rich compositions that enhance my life on so many days. “The Dress,” especially, is stunning. And though the record’s loungey whimsy defies metal conventions, each track prizes genuine grit through its top-drawer guitar riffs. With the devotion it demands, no record from 2025 was more rewarding than The Spin.

    Honorable Mentions:

    Song o’ the Year:

    • Ambush – “Maskirovka”

    

    GardensTale

    #ish. Structure // Heritage
    #10. In Mourning //The Immortal
    #9. Flummox // Southern Progress
    #8. Der Weg Einer Freiheit // Innern
    #7. Nephylim // Circuition
    #6. Besna // Krásno
    #5. Messa // The Spin
    #4. Labyrinthus Stellarum // Rift in Reality
    #3. Gazpacho // Magic 8 Ball
    #2. Dormant Ordeal// Tooth & Nail
    #1. Moron Police // Pachinko — I was a little nervous when I first read about the length and ambition behind Pachinko, especially in the context of the incredible and very concise A Boat on the Sea. I’ve never been this happy to be this wrong. Nothing in the last decade has overtaken my life as much as Pachinko has, and I’m listening to it yet again as I write this, and will probably restart it once it finishes. Pachinko has a lot in common with Everything Everywhere All At Once, one of my all-time favorite films, as a treatise on the chaos of life and the importance of friends and family. It treats its philosophy of silliness very seriously, laughing in the face of darkness in such a beautiful and inspiring way; it brightens my life every time I hear it. And it does all that in tribute to a dear friend who was gone too soon and too suddenly, and no other eulogistic album has let me feel like its subject’s soul touched mine. An astounding monument to friendship on top of an incredibly accomplished hour of music. Pachinko is a miracle.

    Honorable Mentions:

    Song o’ the Year:

    • Moron Police – “Giving up the Ghost”

    

    Non-metal Albums of the Year:

    • Lorde // Virgin
    • Jonathan Hultén // Eyes of the Living Night
    • Shayfer James // Summoning

    Mark Z.

    #ish. Malefic Throne // The Conquering Darkness
    #10. Urn // Demon Steel
    #9. Teitanblood // From the Visceral Abyss
    #8. Shed the Skin // The Carnage Cast Shadows
    #7. Guts // Nightmare Fuel
    #6. Dormant Ordeal // Tooth and Nail
    #5. Perdition Temple // Malign Apotheosis
    #4. Paradise Lost // Ascension
    #3. Revocation // New Gods, New Masters
    #2. Death Yell // Demons of Lust
    #1. Abominator // The Fire Brethren – It took me a few years after hearing this Australian duo’s last album, 2015’s Evil Proclaimed, to realize I was wrong about them. Their raw and relentless black-death metal wasn’t just good, it was fucking awesome. With their long-awaited sixth album, The Fire Brethren, Abominator has conjured flames that reach higher than ever. As always, the enraged rasps, scorching riffs, and endlessly pummeling rhythms are like plumes of hellfire shot directly into your ear canals. But amidst the bludgeoning is some genuinely great songwriting, with deep-cutting hooks (“The Templar’s Curse,” “Underworld Vociferations”), flashes of melody (“Progenitors of the Insurrection of Satan”), thrashy breaks (“Sulphur from the Heavens”), and just enough variety to keep everything hitting as hard as possible. It’s not for everyone, but for those into Angelcorpse and other music of that sort, The Fire Brethren is the type of album you just can’t get enough of.

    Honorable Mention:

    • Blasphamagoatachrist // Bestial Abominator

    Song (Title) o’ the Year:

    Song o’ the Year:

    • Fugitive – “Spheres of Virulence”

    

    Carcharodon

    #ish. Dax Riggs // 7 Songs for Spiders
    #10. Novarupta // Astral Sands
    #9. Atlantic // Timeworn
    #8. Structure // Heritage
    #7. Agriculture // The Spiritual Sound
    #6. Igorr // Amen
    #5. Messa // The Spin
    #4. Abigail Williams // A Void Within Existence
    #3. Cave Sermon // Fragile Wings
    #2. Dormant Ordeal // Tooth and Nail
    #1. Grima // Nightside – In each of 2019, 2021, and 2022, Grima released an album and, in each of those years, I listed said album (#5, HM, and #10). But this year, the year in which I have listened to the least metal and, of course, written the least since I started here in 2018, is also the year that Grima got everything dialled in to just what I want from a Grima album. On Nightside, the duo struck the perfect balance between the traditional influences of 2019’s Will of the Primordial and the propulsive, frozen atmosphere of Frostbitten (2022). The combination gives Nightside an almost hypnotic and weirdly tranquil flow, offset by Vilhelm’s rasping vocals, which remain among the best in the BM game. Every time I come back to this record, and the title track in particular, it’s even better than I remember it being, and I always end up spinning three or more times back-to-back. An album that can keep playing that trick deserves its #1 spot in my book.

    Honorable Mentions:

    Songs o’ the Year:

    • Messa – “Fire on the Roof”

    

    • Novarupta – “Now Here We Are (At the Inevitable End)”

    Mysticus Hugebeard

    #10. Orbit Culture // Death Above Life
    #9. An Abstract Illusion // The Sleeping City
    #8. Qrixkuor // The Womb of the World
    #7. Dormant Ordeal // Tooth and Nail
    #6. Panopticon // Laurentian Blue
    #5. Blackbraid // Blackbraid III
    #4. Arkhaaik // Uihtis
    #3. Kauan // Wayhome
    #2. Wardruna // Birna
    #1. Thumos // The Trial of SocratesI recall groggily stumbling upon ThumosThe Trial of Socrates at work one early morning, and I’m not sure if I’ve grown attached to it or it’s grown attached to me. It looms in my periphery, routinely interrupting my listening schedule for just one more spin. This gargantuan dive into ancient Greek philosophy and justice is melodically rich, laden with atmosphere, and fiercely intelligent. I love how this album stimulates my curiosity. I pore over The Trial of Socrates like a madman, piecing the puzzle together with feverish glee but never quite feeling finished, because every re-listen yields new shapes, new colors, new ideas. It eggs me on to research various topics on ancient Greek history or philosophy, and even made for an unlikely study partner during my long preparations for the German A1 exam. I always feel smarter by the end of it—hubris, I’m sure, but The Trial of Socrates genuinely sparks my imagination in ways few albums do. Time to go listen to “The Phædo” for the zillionth time.

    Honorable Mentions:

    Songs o’ the Year:

    • Disarmonia Mundi – “Outcast”

    The Dormant Stranger by Disarmonia Mundi

    • Jamie Page & Marcy Nabors – “Do No Harm (Ventricular Mix)”

    Do No Harm by Jamie Paige, Marcy Nabors, & Penny Parker

    • Thumos – “The Phædo”

    The Trial of Socrates by Thumos

    Disappointment(s) o’ the year:

    • The dissolution of Ante-Inferno: After Death’s Soliloquy topped my list last year, I was genuinely gutted to see Ante-Inferno’s post that they were no more. Still, I shall not weep but rather smile that they happened, because Ante-Inferno was a rare breed of genuinely moving black metal. Just that one album rooted itself so deeply within me, and I will be listening for a long time.
    • Arno Menses leaving Subsignal: Man, fuck. Fuck. Remember my nuclear-grade glaze of Subsignal, where I might as well have said Menses’ voice single-handedly justified the entire existence of music? How could I not break down in heaving sobs in the middle of this Denny’s when I heard that Menses and Subsignal have parted ways? It sucks, I tell ya. I will still listen to what Subsignal puts out in the future, because Markus Steffen is a talented musician, but it’s going to be a huge adjustment since Menses is nigh irreplaceable.

    Samguineous Maximus

    #ish. Imperial Triumphant // Goldstar
    #10. Primitive Man // Observance
    #9. Motherless // Do You Feel Safe?
    #8. Deafheaven // Lonely People with Power
    #7. Weeping Sores // The Convalescence Agonies
    #6. Between the Buried and Me // The Blue Nowhere
    #5. Calva Louise // Edge of the Abyss
    #4. 1914 // Viribus Unitis
    #3. Crippling Alcoholism // Camgirl
    #2. Crippling Alcoholism // Bible Songs II
    #1. Yellow Eyes // Confusion GateYellow Eyes are one of the best black metal bands in the game, and Confusion Gate is their most impressive work to date. It sees the band return to a more traditional atmospheric sound, but with the lessons learned from their explorations of dissonance and ambience. The result is a kaleidoscopic blend of gorgeous melodies, haunting riffs, and a pervasive sense of pathos that only the best art can achieve. Confusion Gate feels like communing with nature from the top of a wintry peak, embodying both impossible grandeur and awesome terror. This is a record that bypasses the analytical reviewer’s brain and just hits me right in the feeling. It offers a unique catharsis in a year where I truly needed it.

    Honorable Mentions

    Song o’ the Year:

    • Crippling Alcoholism – “Ladies Night”

    

    Spicie Forrest

    #ish. Cryptopsy // An Insatiable Violence
    #10. Crimson Shadows // Whispers of War
    #9. Oromet // The Sinking Isle
    #8. -ii- // Apostles of the Flesh
    #7. Suncraft // Welcome to the Coven
    #6. Suncraft // Profanation of the Adamic Covenant
    #5. Chestcrush // ΨΥΧΟΒΓΑΛΤΗΣ
    #4. Dormant Ordeal // Tooth and Nail
    #3. Qrixkuor // The Womb of the World
    #2. Primitive Man // Observance
    #1. Wytch Hazel // V: Lamentations – I know, I’m surprised too. But the bottom line is that I’ve been listening to V: Lamentations front to back at least once a week since it released on the most American of holidays, July 4th. For Steel, Wytch Hazel’s latest didn’t have the same staying power as previous efforts, but Lamentations is the first to truly resonate with me. Though musically consistent with their Wishbone Ash-meets-Eagles style, vocalist Colin Hendra brings a new sense of passion to the record, and the interplay between instruments, vocals, and lyrics hits me like a lightning bolt. Very possibly inspired by the core Christian tenet laid out in Romans 6:23-24,2 Lamentations is a masterful portrayal of what it means to perpetually fail, to know you’ll never be good enough, and in the face of a salvation that renders all efforts, deeds, and accomplishments worthless, to keep striving toward the impossible anyway. Even for godless sinners like me, Lamentations is a beautiful reminder that purpose is found in hardship, that the journey is the goal, and that falling down is merely an opportunity to stand up again.

    Honorable Mentions:

    Song o’ the Year:

    • Yellowcard – “honestly i”

    Grin Reaper

    (ish) Sallow Moth // Mossbane Lantern
    #10. Turian // Blood Quantum Blues
    #9. Calva Louise // Edge of the Abyss
    #8. Lychgate // Precipice
    #7. An Abstract Illusion // The Sleeping City
    #6. Thron // Vurias
    #5. Structure // Heritage
    #4. Species // Changelings
    #3. Havukruunu // Tavastland
    #2. Aephanemer // Utopie
    #1. 1914 // Viribus Unitis – I didn’t know Viribus Unitis would be my top album of the year the first time I listened to it, but I knew it would list. 1914’s naked emotion and rousing story of a Ukrainian soldier’s survival through World War I, reconciliation with his family, and inescapable return to war remains as gripping and bittersweet now as it did the first time I heard it. Across adrenaline-fueled riffing, oppressive marches, and somber dirges, 1914 never relents on musical or lyrical weight. Though Viribus Unitis was released late in the year, it quickly became the standard I used to appraise albums while going through listing season. 1914 paints war-torn life with savage grace, supplying devastating melody and grueling crawls that elevate the album to such heights that I’m genuinely moved each time I get to the end. Viribus Unitis is bleak, raw, and human, but for all that, I’m never deterred from listening. Ultimately, 1914 clutches the threads of hope and weaves an aural tapestry that brings tragedy and triumph to life, cementing Viribus Unitis as my undisputed top album of 2025.


    Honorable Mentions:

    Songs o’ the Year:

    • Aephanemer – “Le Cimetière Marin”

    • 1914 – “1918 Pt. III: ADE (A Duty to Escape)”

    Andy-War-Hall

    #ish: Dragon Skull // Chaos Fire Vengeance
    #10: Changeling // Changeling
    #9: Steel Arctus // Dreamruler
    #8: Abigail Williams //A Void Within Existence
    #7: Petrified Giant // Endless Ark
    #6: Imperial Triumphant // Goldstar
    #5: Structure // Heritage
    #4: Lipoma // No Cure for the Sick
    #3: Crippling Alcoholism // Camgirl
    #2: Hexrot // Formless Ruin of Oblivion
    #1: 1914 // Viribus Unitis Immersion defines great music and art for me. It is almost unfortunate how good 1914 are in this facet of their music. Their ability to transport the listener to the battlefield in all its violence, both carnal and psychological, is stupefying. The utter dehumanizing hatred with “1914 (The Siege of Przemyśl),” the ravenous bloodlust of “1917 (The Isonzo Front),” the hellish wails haunting “1918 Pt. 1 (WIA – Wounded in Action):” all portrayed vividly through 1914’s brilliantly caustic and composed musicianship and deeply personal lyricism. When Dmytro Ternushchak bellows “For three days / The Russians attacked / And accomplished nothing but / 40,000 dead pigs” [“1914 (The Siege of Przemyśl)”], it’s all you need to get into his character’s violent headspace. When 1914 mournfully sing in Ukrainian “Це моя земля3 [1915 (Easter Battle for the Zwinin Ridge)], you grasp how someone could put their life on the line for kin and country. When our soldier sings “My little girl reached out to me / But duty calls” [1919 (The Home Where I Died)]… well, shit, your heart just has to break, right? 1914 don’t play “history metal.” Viribus Unitis is as present and relevant as you can get.

    Honorable Mentions:

    Song o’ the Year:

    • Fell Omen – “The Fire is Still Warm”

    

    Lavender Larcenist

    #ish Spiritbox // Tsunami Sea
    #10. Sold Soul // Just Like That, I Disappear Entirely
    #9. Calva Louise // Edge of the Abyss
    #8. Dying Wish // Flesh Stays Together
    #7. Grima // Nightside
    #6. Aversed // Erasure of Color
    #5. Deafheaven // Lonely People With Power
    #4. Ghost Bath // Rose Thorn Necklace
    #3. Changeling // Changeling
    #2. Dormant Ordeal // Tooth and Nail
    #1. Crippling Alcoholism // Camgirl – Sometimes you listen to music, and you feel like it gets you. Camgirl was exactly that type of album, and it probably doesn’t say anything good about me. Ever since Crippling Alcoholism’s latest graced my ears and I shared it with my partner, we have been singing “I fucking hate the way I look, yeah I look like a fat fucking scumbag” way too often and mumbling “Mr. Ran away, ran away from family” every chance we get. The album is dripping with the atmosphere of neon-lit back rooms, seedy interactions, and terrible decision-making. It feels like a lens into the lives of those society has left behind, and I can’t help but feel a connection. The self-destructive nihilism, drugged-out sex, and abrupt violence that is all too common in those on the margins of life is something I think more and more we can all relate to, and Camgirl is the art that mirrors society back to us. As a result, it is an album that is just as ugly as it is terrifying and beautiful.


    Honorable Mentions:

    Song o’ the Year:

    • Crippling Alcoholism – “bedrot”

    Creeping Ivy

    #ish. Nite // Cult of the Serpent Sun
    #10. Blackbraid // Blackbraid III
    #9. Flummox // Southern Progress
    #8. 1914 // Viribus Unitis
    #7. Cave Sermon // Fragile Wings
    #6. Saor // Amidst the Ruins
    #5. Imperial Triumphant // Goldstar
    #4. Phantom Spell // Heather & Hearth
    #3. Coroner // Dissonance Theory
    #2. Messa // The Spin
    #1. Havukruunu // TavastlandOn their Bandcamp page, Havukruunu explain the concept of their fourth LP: ‘Tavastland tells how in 1237 the Tavastians rose in rebellion against the church of Christ and drove the popes naked into the frost to die.’ Sounds like the metal album of 2025 to me! But I didn’t crown Tavastland for its lyrics that I can’t understand. As Dr. A.N. Grier has been exhorting for a decade, Havukruunu stands as a model of Viking black metal consistency, having dropped only very good-to-great albums since 2015. Tavastland isn’t a radical improvement over 2020’s Uinuous syömein sota, but it’s an (arguably excellent) improvement nonetheless, making it Havukruunu’s finest work yet. Yes, these fiery Finns forge sounds reminiscent of Bathory and Immortal, but Tavastland seized my attention for its adventurous prog sensibilities. Some of this can be attributed to the return of Hümo, whose bass rattles like the four strings of Geddy Lee. But the prog is deep in the album craft, from the overture-style modulations of opener “Kuolematon laulunhenki” to the extended guitar wankery of closer “De miseriis fennorum.” Now if only I can learn Finnish, I’ll be able to appreciate the killer anti-popery narrative while headbanging to my Record o’ 2025.

    Honorable Mentions:

    Song o’ the Year:

    • Phantom Spell – “The Autumn Citadel”

    

    Baguette of Bodom

    #ish. In the Woods… // Otra
    #10. Species // Changelings
    #9. Dragon Skull // Chaos Fire Vengeance
    #8. A-Z // A2Z²
    #7. Apocalypse Orchestra // A Plague upon Thee
    #6. Amorphis // Borderland
    #5. Dolmen Gate // Echoes of Ancient Tales
    #4. Dormant Ordeal // Tooth and Nail
    #3. Amalekim // Shir Hashirim
    #2. Suotana // Ounas II
    #1. Buried Realm // The Dormant Darkness – Melodic tech death? Symphonic power metal? Who knows! Much like my 2025 in general, The Dormant Darkness has a bit of everything in one gigantic clusterfuck. The great news is, neither I nor the album crumbled under all that weight. In a year full of odd twists and turns, my list became more varied and unusual than ever. Buried Realm took this variety and gave me everything I like about metal in one dense package: blazing speeds, soaring guitars, majestic vocals, and relentless fury. It’s also inexplicably well-produced for how many layers there are to deal with. While 2025 was not a particularly star-studded release year—especially compared to most of the 2020s so far—it threw plenty of fun curveballs at me, and The Dormant Darkness exemplifies this with its Xothian fusion of metal subgenres in one big Ophidian I blender ov shred. I would also like to request several Christian Älvestam features on every album, please.

    Honorable Mentions:

    Song o’ the Year:

    • Dragon Skull – “Blood and Souls”

    Chaos Fire Vengeance by Dragon Skull

    #1914 #2025 #AZ #AbigailWilliams #Abominator #Aephanemer #Agriculture #AmIInTrouble #Amalekim #Ambush #Amorphis #AnAbstractIllusion #ApocalypseOrchestra #Arkhaaik #Asira #Astronoid #Atlantic #AvaMendozaGabbyFlukeMogalCarolinaPérez #Aversed #Besna #BetweenTheBuriedAndMe #Bianca #Blackbraid #Blasphamagoatachrist #Blindfolded #BlogLists #Bloodywood #BlutAusNord #Bruit #BuriedRealm #CalvaLouise #CaveSermon #Changeling #Chestcrush #Coroner #CrimsonShadows #CripplingAlcoholism #DawnOfSolace #DaxRiggs #Deafheaven #DeathYell #Décryptal #Defigurement #DerWegEinerFreiheit #DolmenGate #DormantOrdeal #DragonSkull #DyingWish #Dynazty #Fange #FellOmen #Flummox #Gazpacho #GhostBath #Gorycz #Grima #Guts #HangoverInMinsk #Hasard #Havukruunu #Hexrot #HoodedMenace #Igorr #Igorrr #II #ImperialTriumphant #JonathanHultén #Kauan #LabyrinthusStellarum #Lipoma #Lists #Lorde #LornaShore #Lychgate #MaleficThrone #Messa #MoronPolice #Motherless #MutagenicHost #Nephylim #NightFlightOrchestra #Nite #Novarupta #OllieWride #Ophelion #OrbitCulture #Oromet #Panopticon #ParadiseLost #PedestalForLeviathan #PerditionTemple #PetrifiedGiant #PhantomSpell #PrimitiveMan #Proscription #Psychonaut #PupilSlicer #Puteraeon #Qrixkuor #Revocation #SallowMoth #Saor #ShadowOfIntent #ShayferJames #ShedTheSkin #Sigh #SoldSoul #Species #Spiritbox #Starscourge #SteelArctus #StevenWilson #Strigiform #Structure #Suncraft #Suotana #Teitanblood #TheAMGStaffPickTheirTopTenIshOf2025 #TheMidnight #Thron #Thumos #Turian #ÜltraRaptör #Urn #VenomousEchoes #VictimOfFire #Walg #Wardruna #WeepingSores #WyattE #WytchHazel #YellowEyes #Yellowcard #ZéroAbsolu
  20. Who Are These Clowns and Where Did They Put My Flesh Stapler? The AMG Staff Pick Their Top Ten(ish) of 2025 By Steel Druhm

    Listurnalia is now upon us once again! If you are not ready to be assailed by non-stop lists and bad opinions for the next week and change, I suggest you get fooking ready! Listurnalia cannot be stopped, nor contained. It can only be tolerated and endured!

    More than any year in recent history, 2025 saw more seasoned staffers step away from writing duties due to time constraints and life changes. To compensate for the loss of these slackwagoning quitters and shirkers, we added a gaggle of fresh new voices. This made for a bittersweet time around these parts as long-time friends departed and a bunch of untested, unknowns rose through the brutal n00b gauntlet to seize the means of promo production. These greenhorn neophytes have created great havoc at AMG HQ with their terrible taste, inability to follow directions, and steadfast refusal to ignore deathcore.

    We’ve been here before, though, and we always straighten out the newbie upstarts. The daily beatings, deprivations, and absence of positive reinforcement will wear them down, and if not, we have plenty of space in the rotpit out back. This is, and will ever be, the AMG modality.

    2026 will be an interesting year as the new crew members are shepherded by the olde while everyone is crushed beneath the iron heel of AMG management. Who will make it to 2027? Who will be sold off to Metal Wani for a box of bananas and Gorilla Glue? Place your bets in the official AMG Survival Pool!

    As you read the Top Ten(ish) lists below, remember, reading our content is free, but you get what you pay for.

    Grymm

    #10. Venomous Echoes // Dysmor
    #9. Blut Aus Nord // Ethereal Horizons
    #8. Dormant Ordeal // Tooth and Nail
    #7. Structure // Heritage
    #6. Lorna Shore // I Feel The Everblack Festering Within Me
    #5. Sigh // I Saw The World’s End – Hangman’s Hymn MMXXV
    #4. Imperial Triumphant // Goldstar
    #3. Am I In Trouble? // Spectrum
    #2. Dax Riggs // 7 Songs for Spiders
    #1. Paradise Lost // Ascension – I fully expected Paradise Lost to come out with quality music, which has been mostly par for the course in their storied almost-40-year career, and no one could blame them if they decided to coast along on their legendary sound. Instead, Ascension sees them giving a masterclass in songcraft and atmosphere, showing everyone, everywhere, how it’s done. With Black Sabbath now officially put to rest, Anathema long gone, and whatever the fuck is happening within My Dying Bride these days, somebody has to fly the British Doom flag high and proud, and Paradise Lost have done a bang-up job of doing so.

    Personal Highlight o’ the Year: Seeing Acid Bath live. I may or may not have cried during “Venus Blue,” and no, I don’t fucking care. 19-Year-Old me was pleased as punch that 48-Year-Old me got to see a legendary band (and one of his personal favorites) come back from tragedy to pay tribute to their fallen bassist and friend, Audie Pitre, by giving it another long-awaited go.

    Disappointment(s) o’ the Year:

    • Losing so many influential heroes (RIP Ozzy Osbourne, Ace Frehley, and Tomas Lindberg, among too many others)
    • My health: I was hoping to be a lot more active this year, but early on, I needed to, in the immortal words of David Lynch, “fix (my) heart or die.”1 Thankfully, after surgery, I feel a million times better, so you should see a lot more of me in 2026. You have been warned.

    Song o’ the Year:

    • Paradise Lost // “Salvation”

    El Cuervo

    #ish. Astronoid // Stargod
    #10. Ollie Wride // The Pressure Point
    #9. Kauan // Wayhome
    #8. Zéro Absolu // La Saignée
    #7. Mutagenic Host // The Diseased Machine
    #6. Asira // As Ink in Water
    #5. Bruit // The Age of Ephemerality
    #4. Saor // Amidst the Ruins
    #3. The Midnight // Syndicate
    #2. Steven Wilson // The Overview
    #1. Messa // The Spin – In a year replete with comfort picks—progressive rock, synthwave, and death metal abound—how is that Italy’s enigmatic, inscrutable Messa forged my Album o’ the Year? The Spin doesn’t take the trouble to make itself easily approachable. Doom, prog, and post influences circle around velvety melodies that sometimes sound like deliberate songs, and sometimes like jazz improvisation. But it’s these very qualities that belie its subtle allure; only with repetition and attention does The Spin shine. Messa gradually reveals rhythmic motifs, instrumental nuances, and rich compositions that enhance my life on so many days. “The Dress,” especially, is stunning. And though the record’s loungey whimsy defies metal conventions, each track prizes genuine grit through its top-drawer guitar riffs. With the devotion it demands, no record from 2025 was more rewarding than The Spin.

    Honorable Mentions:

    Song o’ the Year:

    • Ambush – “Maskirovka”

    

    GardensTale

    #ish. Structure // Heritage
    #10. In Mourning //The Immortal
    #9. Flummox // Southern Progress
    #8. Der Weg Einer Freiheit // Innern
    #7. Nephylim // Circuition
    #6. Besna // Krásno
    #5. Messa // The Spin
    #4. Labyrinthus Stellarum // Rift in Reality
    #3. Gazpacho // Magic 8 Ball
    #2. Dormant Ordeal// Tooth & Nail
    #1. Moron Police // Pachinko — I was a little nervous when I first read about the length and ambition behind Pachinko, especially in the context of the incredible and very concise A Boat on the Sea. I’ve never been this happy to be this wrong. Nothing in the last decade has overtaken my life as much as Pachinko has, and I’m listening to it yet again as I write this, and will probably restart it once it finishes. Pachinko has a lot in common with Everything Everywhere All At Once, one of my all-time favorite films, as a treatise on the chaos of life and the importance of friends and family. It treats its philosophy of silliness very seriously, laughing in the face of darkness in such a beautiful and inspiring way; it brightens my life every time I hear it. And it does all that in tribute to a dear friend who was gone too soon and too suddenly, and no other eulogistic album has let me feel like its subject’s soul touched mine. An astounding monument to friendship on top of an incredibly accomplished hour of music. Pachinko is a miracle.

    Honorable Mentions:

    Song o’ the Year:

    • Moron Police – “Giving up the Ghost”

    

    Non-metal Albums of the Year:

    • Lorde // Virgin
    • Jonathan Hultén // Eyes of the Living Night
    • Shayfer James // Summoning

    Mark Z.

    #ish. Malefic Throne // The Conquering Darkness
    #10. Urn // Demon Steel
    #9. Teitanblood // From the Visceral Abyss
    #8. Shed the Skin // The Carnage Cast Shadows
    #7. Guts // Nightmare Fuel
    #6. Dormant Ordeal // Tooth and Nail
    #5. Perdition Temple // Malign Apotheosis
    #4. Paradise Lost // Ascension
    #3. Revocation // New Gods, New Masters
    #2. Death Yell // Demons of Lust
    #1. Abominator // The Fire Brethren – It took me a few years after hearing this Australian duo’s last album, 2015’s Evil Proclaimed, to realize I was wrong about them. Their raw and relentless black-death metal wasn’t just good, it was fucking awesome. With their long-awaited sixth album, The Fire Brethren, Abominator has conjured flames that reach higher than ever. As always, the enraged rasps, scorching riffs, and endlessly pummeling rhythms are like plumes of hellfire shot directly into your ear canals. But amidst the bludgeoning is some genuinely great songwriting, with deep-cutting hooks (“The Templar’s Curse,” “Underworld Vociferations”), flashes of melody (“Progenitors of the Insurrection of Satan”), thrashy breaks (“Sulphur from the Heavens”), and just enough variety to keep everything hitting as hard as possible. It’s not for everyone, but for those into Angelcorpse and other music of that sort, The Fire Brethren is the type of album you just can’t get enough of.

    Honorable Mention:

    • Blasphamagoatachrist // Bestial Abominator

    Song (Title) o’ the Year:

    Song o’ the Year:

    • Fugitive – “Spheres of Virulence”

    

    Carcharodon

    #ish. Dax Riggs // 7 Songs for Spiders
    #10. Novarupta // Astral Sands
    #9. Atlantic // Timeworn
    #8. Structure // Heritage
    #7. Agriculture // The Spiritual Sound
    #6. Igorr // Amen
    #5. Messa // The Spin
    #4. Abigail Williams // A Void Within Existence
    #3. Cave Sermon // Fragile Wings
    #2. Dormant Ordeal // Tooth and Nail
    #1. Grima // Nightside – In each of 2019, 2021, and 2022, Grima released an album and, in each of those years, I listed said album (#5, HM, and #10). But this year, the year in which I have listened to the least metal and, of course, written the least since I started here in 2018, is also the year that Grima got everything dialled in to just what I want from a Grima album. On Nightside, the duo struck the perfect balance between the traditional influences of 2019’s Will of the Primordial and the propulsive, frozen atmosphere of Frostbitten (2022). The combination gives Nightside an almost hypnotic and weirdly tranquil flow, offset by Vilhelm’s rasping vocals, which remain among the best in the BM game. Every time I come back to this record, and the title track in particular, it’s even better than I remember it being, and I always end up spinning three or more times back-to-back. An album that can keep playing that trick deserves its #1 spot in my book.

    Honorable Mentions:

    Songs o’ the Year:

    • Messa – “Fire on the Roof”

    

    • Novarupta – “Now Here We Are (At the Inevitable End)”

    Mysticus Hugebeard

    #10. Orbit Culture // Death Above Life
    #9. An Abstract Illusion // The Sleeping City
    #8. Qrixkuor // The Womb of the World
    #7. Dormant Ordeal // Tooth and Nail
    #6. Panopticon // Laurentian Blue
    #5. Blackbraid // Blackbraid III
    #4. Arkhaaik // Uihtis
    #3. Kauan // Wayhome
    #2. Wardruna // Birna
    #1. Thumos // The Trial of SocratesI recall groggily stumbling upon ThumosThe Trial of Socrates at work one early morning, and I’m not sure if I’ve grown attached to it or it’s grown attached to me. It looms in my periphery, routinely interrupting my listening schedule for just one more spin. This gargantuan dive into ancient Greek philosophy and justice is melodically rich, laden with atmosphere, and fiercely intelligent. I love how this album stimulates my curiosity. I pore over The Trial of Socrates like a madman, piecing the puzzle together with feverish glee but never quite feeling finished, because every re-listen yields new shapes, new colors, new ideas. It eggs me on to research various topics on ancient Greek history or philosophy, and even made for an unlikely study partner during my long preparations for the German A1 exam. I always feel smarter by the end of it—hubris, I’m sure, but The Trial of Socrates genuinely sparks my imagination in ways few albums do. Time to go listen to “The Phædo” for the zillionth time.

    Honorable Mentions:

    Songs o’ the Year:

    • Disarmonia Mundi – “Outcast”

    The Dormant Stranger by Disarmonia Mundi

    • Jamie Page & Marcy Nabors – “Do No Harm (Ventricular Mix)”

    Do No Harm by Jamie Paige, Marcy Nabors, & Penny Parker

    • Thumos – “The Phædo”

    The Trial of Socrates by Thumos

    Disappointment(s) o’ the year:

    • The dissolution of Ante-Inferno: After Death’s Soliloquy topped my list last year, I was genuinely gutted to see Ante-Inferno’s post that they were no more. Still, I shall not weep but rather smile that they happened, because Ante-Inferno was a rare breed of genuinely moving black metal. Just that one album rooted itself so deeply within me, and I will be listening for a long time.
    • Arno Menses leaving Subsignal: Man, fuck. Fuck. Remember my nuclear-grade glaze of Subsignal, where I might as well have said Menses’ voice single-handedly justified the entire existence of music? How could I not break down in heaving sobs in the middle of this Denny’s when I heard that Menses and Subsignal have parted ways? It sucks, I tell ya. I will still listen to what Subsignal puts out in the future, because Markus Steffen is a talented musician, but it’s going to be a huge adjustment since Menses is nigh irreplaceable.

    Samguineous Maximus

    #ish. Imperial Triumphant // Goldstar
    #10. Primitive Man // Observance
    #9. Motherless // Do You Feel Safe?
    #8. Deafheaven // Lonely People with Power
    #7. Weeping Sores // The Convalescence Agonies
    #6. Between the Buried and Me // The Blue Nowhere
    #5. Calva Louise // Edge of the Abyss
    #4. 1914 // Viribus Unitis
    #3. Crippling Alcoholism // Camgirl
    #2. Crippling Alcoholism // Bible Songs II
    #1. Yellow Eyes // Confusion GateYellow Eyes are one of the best black metal bands in the game, and Confusion Gate is their most impressive work to date. It sees the band return to a more traditional atmospheric sound, but with the lessons learned from their explorations of dissonance and ambience. The result is a kaleidoscopic blend of gorgeous melodies, haunting riffs, and a pervasive sense of pathos that only the best art can achieve. Confusion Gate feels like communing with nature from the top of a wintry peak, embodying both impossible grandeur and awesome terror. This is a record that bypasses the analytical reviewer’s brain and just hits me right in the feeling. It offers a unique catharsis in a year where I truly needed it.

    Honorable Mentions

    Song o’ the Year:

    • Crippling Alcoholism – “Ladies Night”

    

    Spicie Forrest

    #ish. Cryptopsy // An Insatiable Violence
    #10. Crimson Shadows // Whispers of War
    #9. Oromet // The Sinking Isle
    #8. -ii- // Apostles of the Flesh
    #7. Suncraft // Welcome to the Coven
    #6. Suncraft // Profanation of the Adamic Covenant
    #5. Chestcrush // ΨΥΧΟΒΓΑΛΤΗΣ
    #4. Dormant Ordeal // Tooth and Nail
    #3. Qrixkuor // The Womb of the World
    #2. Primitive Man // Observance
    #1. Wytch Hazel // V: Lamentations – I know, I’m surprised too. But the bottom line is that I’ve been listening to V: Lamentations front to back at least once a week since it released on the most American of holidays, July 4th. For Steel, Wytch Hazel’s latest didn’t have the same staying power as previous efforts, but Lamentations is the first to truly resonate with me. Though musically consistent with their Wishbone Ash-meets-Eagles style, vocalist Colin Hendra brings a new sense of passion to the record, and the interplay between instruments, vocals, and lyrics hits me like a lightning bolt. Very possibly inspired by the core Christian tenet laid out in Romans 6:23-24,2 Lamentations is a masterful portrayal of what it means to perpetually fail, to know you’ll never be good enough, and in the face of a salvation that renders all efforts, deeds, and accomplishments worthless, to keep striving toward the impossible anyway. Even for godless sinners like me, Lamentations is a beautiful reminder that purpose is found in hardship, that the journey is the goal, and that falling down is merely an opportunity to stand up again.

    Honorable Mentions:

    Song o’ the Year:

    • Yellowcard – “honestly i”

    Grin Reaper

    (ish) Sallow Moth // Mossbane Lantern
    #10. Turian // Blood Quantum Blues
    #9. Calva Louise // Edge of the Abyss
    #8. Lychgate // Precipice
    #7. An Abstract Illusion // The Sleeping City
    #6. Thron // Vurias
    #5. Structure // Heritage
    #4. Species // Changelings
    #3. Havukruunu // Tavastland
    #2. Aephanemer // Utopie
    #1. 1914 // Viribus Unitis – I didn’t know Viribus Unitis would be my top album of the year the first time I listened to it, but I knew it would list. 1914’s naked emotion and rousing story of a Ukrainian soldier’s survival through World War I, reconciliation with his family, and inescapable return to war remains as gripping and bittersweet now as it did the first time I heard it. Across adrenaline-fueled riffing, oppressive marches, and somber dirges, 1914 never relents on musical or lyrical weight. Though Viribus Unitis was released late in the year, it quickly became the standard I used to appraise albums while going through listing season. 1914 paints war-torn life with savage grace, supplying devastating melody and grueling crawls that elevate the album to such heights that I’m genuinely moved each time I get to the end. Viribus Unitis is bleak, raw, and human, but for all that, I’m never deterred from listening. Ultimately, 1914 clutches the threads of hope and weaves an aural tapestry that brings tragedy and triumph to life, cementing Viribus Unitis as my undisputed top album of 2025.


    Honorable Mentions:

    Songs o’ the Year:

    • Aephanemer – “Le Cimetière Marin”

    • 1914 – “1918 Pt. III: ADE (A Duty to Escape)”

    Andy-War-Hall

    #ish: Dragon Skull // Chaos Fire Vengeance
    #10: Changeling // Changeling
    #9: Steel Arctus // Dreamruler
    #8: Abigail Williams //A Void Within Existence
    #7: Petrified Giant // Endless Ark
    #6: Imperial Triumphant // Goldstar
    #5: Structure // Heritage
    #4: Lipoma // No Cure for the Sick
    #3: Crippling Alcoholism // Camgirl
    #2: Hexrot // Formless Ruin of Oblivion
    #1: 1914 // Viribus Unitis Immersion defines great music and art for me. It is almost unfortunate how good 1914 are in this facet of their music. Their ability to transport the listener to the battlefield in all its violence, both carnal and psychological, is stupefying. The utter dehumanizing hatred with “1914 (The Siege of Przemyśl),” the ravenous bloodlust of “1917 (The Isonzo Front),” the hellish wails haunting “1918 Pt. 1 (WIA – Wounded in Action):” all portrayed vividly through 1914’s brilliantly caustic and composed musicianship and deeply personal lyricism. When Dmytro Ternushchak bellows “For three days / The Russians attacked / And accomplished nothing but / 40,000 dead pigs” [“1914 (The Siege of Przemyśl)”], it’s all you need to get into his character’s violent headspace. When 1914 mournfully sing in Ukrainian “Це моя земля3 [1915 (Easter Battle for the Zwinin Ridge)], you grasp how someone could put their life on the line for kin and country. When our soldier sings “My little girl reached out to me / But duty calls” [1919 (The Home Where I Died)]… well, shit, your heart just has to break, right? 1914 don’t play “history metal.” Viribus Unitis is as present and relevant as you can get.

    Honorable Mentions:

    Song o’ the Year:

    • Fell Omen – “The Fire is Still Warm”

    

    Lavender Larcenist

    #ish Spiritbox // Tsunami Sea
    #10. Sold Soul // Just Like That, I Disappear Entirely
    #9. Calva Louise // Edge of the Abyss
    #8. Dying Wish // Flesh Stays Together
    #7. Grima // Nightside
    #6. Aversed // Erasure of Color
    #5. Deafheaven // Lonely People With Power
    #4. Ghost Bath // Rose Thorn Necklace
    #3. Changeling // Changeling
    #2. Dormant Ordeal // Tooth and Nail
    #1. Crippling Alcoholism // Camgirl – Sometimes you listen to music, and you feel like it gets you. Camgirl was exactly that type of album, and it probably doesn’t say anything good about me. Ever since Crippling Alcoholism’s latest graced my ears and I shared it with my partner, we have been singing “I fucking hate the way I look, yeah I look like a fat fucking scumbag” way too often and mumbling “Mr. Ran away, ran away from family” every chance we get. The album is dripping with the atmosphere of neon-lit back rooms, seedy interactions, and terrible decision-making. It feels like a lens into the lives of those society has left behind, and I can’t help but feel a connection. The self-destructive nihilism, drugged-out sex, and abrupt violence that is all too common in those on the margins of life is something I think more and more we can all relate to, and Camgirl is the art that mirrors society back to us. As a result, it is an album that is just as ugly as it is terrifying and beautiful.


    Honorable Mentions:

    Song o’ the Year:

    • Crippling Alcoholism – “bedrot”

    Creeping Ivy

    #ish. Nite // Cult of the Serpent Sun
    #10. Blackbraid // Blackbraid III
    #9. Flummox // Southern Progress
    #8. 1914 // Viribus Unitis
    #7. Cave Sermon // Fragile Wings
    #6. Saor // Amidst the Ruins
    #5. Imperial Triumphant // Goldstar
    #4. Phantom Spell // Heather & Hearth
    #3. Coroner // Dissonance Theory
    #2. Messa // The Spin
    #1. Havukruunu // TavastlandOn their Bandcamp page, Havukruunu explain the concept of their fourth LP: ‘Tavastland tells how in 1237 the Tavastians rose in rebellion against the church of Christ and drove the popes naked into the frost to die.’ Sounds like the metal album of 2025 to me! But I didn’t crown Tavastland for its lyrics that I can’t understand. As Dr. A.N. Grier has been exhorting for a decade, Havukruunu stands as a model of Viking black metal consistency, having dropped only very good-to-great albums since 2015. Tavastland isn’t a radical improvement over 2020’s Uinuous syömein sota, but it’s an (arguably excellent) improvement nonetheless, making it Havukruunu’s finest work yet. Yes, these fiery Finns forge sounds reminiscent of Bathory and Immortal, but Tavastland seized my attention for its adventurous prog sensibilities. Some of this can be attributed to the return of Hümo, whose bass rattles like the four strings of Geddy Lee. But the prog is deep in the album craft, from the overture-style modulations of opener “Kuolematon laulunhenki” to the extended guitar wankery of closer “De miseriis fennorum.” Now if only I can learn Finnish, I’ll be able to appreciate the killer anti-popery narrative while headbanging to my Record o’ 2025.

    Honorable Mentions:

    Song o’ the Year:

    • Phantom Spell – “The Autumn Citadel”

    

    Baguette of Bodom

    #ish. In the Woods… // Otra
    #10. Species // Changelings
    #9. Dragon Skull // Chaos Fire Vengeance
    #8. A-Z // A2Z²
    #7. Apocalypse Orchestra // A Plague upon Thee
    #6. Amorphis // Borderland
    #5. Dolmen Gate // Echoes of Ancient Tales
    #4. Dormant Ordeal // Tooth and Nail
    #3. Amalekim // Shir Hashirim
    #2. Suotana // Ounas II
    #1. Buried Realm // The Dormant Darkness – Melodic tech death? Symphonic power metal? Who knows! Much like my 2025 in general, The Dormant Darkness has a bit of everything in one gigantic clusterfuck. The great news is, neither I nor the album crumbled under all that weight. In a year full of odd twists and turns, my list became more varied and unusual than ever. Buried Realm took this variety and gave me everything I like about metal in one dense package: blazing speeds, soaring guitars, majestic vocals, and relentless fury. It’s also inexplicably well-produced for how many layers there are to deal with. While 2025 was not a particularly star-studded release year—especially compared to most of the 2020s so far—it threw plenty of fun curveballs at me, and The Dormant Darkness exemplifies this with its Xothian fusion of metal subgenres in one big Ophidian I blender ov shred. I would also like to request several Christian Älvestam features on every album, please.

    Honorable Mentions:

    Song o’ the Year:

    • Dragon Skull – “Blood and Souls”

    Chaos Fire Vengeance by Dragon Skull

    #1914 #2025 #AZ #AbigailWilliams #Abominator #Aephanemer #Agriculture #AmIInTrouble #Amalekim #Ambush #Amorphis #AnAbstractIllusion #ApocalypseOrchestra #Arkhaaik #Asira #Astronoid #Atlantic #AvaMendozaGabbyFlukeMogalCarolinaPérez #Aversed #Besna #BetweenTheBuriedAndMe #Bianca #Blackbraid #Blasphamagoatachrist #Blindfolded #BlogLists #Bloodywood #BlutAusNord #Bruit #BuriedRealm #CalvaLouise #CaveSermon #Changeling #Chestcrush #Coroner #CrimsonShadows #CripplingAlcoholism #DawnOfSolace #DaxRiggs #Deafheaven #DeathYell #Décryptal #Defigurement #DerWegEinerFreiheit #DolmenGate #DormantOrdeal #DragonSkull #DyingWish #Dynazty #Fange #FellOmen #Flummox #Gazpacho #GhostBath #Gorycz #Grima #Guts #HangoverInMinsk #Hasard #Havukruunu #Hexrot #HoodedMenace #Igorr #Igorrr #II #ImperialTriumphant #JonathanHultén #Kauan #LabyrinthusStellarum #Lipoma #Lists #Lorde #LornaShore #Lychgate #MaleficThrone #Messa #MoronPolice #Motherless #MutagenicHost #Nephylim #NightFlightOrchestra #Nite #Novarupta #OllieWride #Ophelion #OrbitCulture #Oromet #Panopticon #ParadiseLost #PedestalForLeviathan #PerditionTemple #PetrifiedGiant #PhantomSpell #PrimitiveMan #Proscription #Psychonaut #PupilSlicer #Puteraeon #Qrixkuor #Revocation #SallowMoth #Saor #ShadowOfIntent #ShayferJames #ShedTheSkin #Sigh #SoldSoul #Species #Spiritbox #Starscourge #SteelArctus #StevenWilson #Strigiform #Structure #Suncraft #Suotana #Teitanblood #TheAMGStaffPickTheirTopTenIshOf2025 #TheMidnight #Thron #Thumos #Turian #ÜltraRaptör #Urn #VenomousEchoes #VictimOfFire #Walg #Wardruna #WeepingSores #WyattE #WytchHazel #YellowEyes #Yellowcard #ZéroAbsolu
  21. Who Are These Clowns and Where Did They Put My Flesh Stapler? The AMG Staff Pick Their Top Ten(ish) of 2025 By Steel Druhm

    Listurnalia is now upon us once again! If you are not ready to be assailed by non-stop lists and bad opinions for the next week and change, I suggest you get fooking ready! Listurnalia cannot be stopped, nor contained. It can only be tolerated and endured!

    More than any year in recent history, 2025 saw more seasoned staffers step away from writing duties due to time constraints and life changes. To compensate for the loss of these slackwagoning quitters and shirkers, we added a gaggle of fresh new voices. This made for a bittersweet time around these parts as long-time friends departed and a bunch of untested, unknowns rose through the brutal n00b gauntlet to seize the means of promo production. These greenhorn neophytes have created great havoc at AMG HQ with their terrible taste, inability to follow directions, and steadfast refusal to ignore deathcore.

    We’ve been here before, though, and we always straighten out the newbie upstarts. The daily beatings, deprivations, and absence of positive reinforcement will wear them down, and if not, we have plenty of space in the rotpit out back. This is, and will ever be, the AMG modality.

    2026 will be an interesting year as the new crew members are shepherded by the olde while everyone is crushed beneath the iron heel of AMG management. Who will make it to 2027? Who will be sold off to Metal Wani for a box of bananas and Gorilla Glue? Place your bets in the official AMG Survival Pool!

    As you read the Top Ten(ish) lists below, remember, reading our content is free, but you get what you pay for.

    Grymm

    #10. Venomous Echoes // Dysmor
    #9. Blut Aus Nord // Ethereal Horizons
    #8. Dormant Ordeal // Tooth and Nail
    #7. Structure // Heritage
    #6. Lorna Shore // I Feel The Everblack Festering Within Me
    #5. Sigh // I Saw The World’s End – Hangman’s Hymn MMXXV
    #4. Imperial Triumphant // Goldstar
    #3. Am I In Trouble? // Spectrum
    #2. Dax Riggs // 7 Songs for Spiders
    #1. Paradise Lost // Ascension – I fully expected Paradise Lost to come out with quality music, which has been mostly par for the course in their storied almost-40-year career, and no one could blame them if they decided to coast along on their legendary sound. Instead, Ascension sees them giving a masterclass in songcraft and atmosphere, showing everyone, everywhere, how it’s done. With Black Sabbath now officially put to rest, Anathema long gone, and whatever the fuck is happening within My Dying Bride these days, somebody has to fly the British Doom flag high and proud, and Paradise Lost have done a bang-up job of doing so.

    Personal Highlight o’ the Year: Seeing Acid Bath live. I may or may not have cried during “Venus Blue,” and no, I don’t fucking care. 19-Year-Old me was pleased as punch that 48-Year-Old me got to see a legendary band (and one of his personal favorites) come back from tragedy to pay tribute to their fallen bassist and friend, Audie Pitre, by giving it another long-awaited go.

    Disappointment(s) o’ the Year:

    • Losing so many influential heroes (RIP Ozzy Osbourne, Ace Frehley, and Tomas Lindberg, among too many others)
    • My health: I was hoping to be a lot more active this year, but early on, I needed to, in the immortal words of David Lynch, “fix (my) heart or die.”1 Thankfully, after surgery, I feel a million times better, so you should see a lot more of me in 2026. You have been warned.

    Song o’ the Year:

    • Paradise Lost // “Salvation”

    El Cuervo

    #ish. Astronoid // Stargod
    #10. Ollie Wride // The Pressure Point
    #9. Kauan // Wayhome
    #8. Zéro Absolu // La Saignée
    #7. Mutagenic Host // The Diseased Machine
    #6. Asira // As Ink in Water
    #5. Bruit // The Age of Ephemerality
    #4. Saor // Amidst the Ruins
    #3. The Midnight // Syndicate
    #2. Steven Wilson // The Overview
    #1. Messa // The Spin – In a year replete with comfort picks—progressive rock, synthwave, and death metal abound—how is that Italy’s enigmatic, inscrutable Messa forged my Album o’ the Year? The Spin doesn’t take the trouble to make itself easily approachable. Doom, prog, and post influences circle around velvety melodies that sometimes sound like deliberate songs, and sometimes like jazz improvisation. But it’s these very qualities that belie its subtle allure; only with repetition and attention does The Spin shine. Messa gradually reveals rhythmic motifs, instrumental nuances, and rich compositions that enhance my life on so many days. “The Dress,” especially, is stunning. And though the record’s loungey whimsy defies metal conventions, each track prizes genuine grit through its top-drawer guitar riffs. With the devotion it demands, no record from 2025 was more rewarding than The Spin.

    Honorable Mentions:

    Song o’ the Year:

    • Ambush – “Maskirovka”

    

    GardensTale

    #ish. Structure // Heritage
    #10. In Mourning //The Immortal
    #9. Flummox // Southern Progress
    #8. Der Weg Einer Freiheit // Innern
    #7. Nephylim // Circuition
    #6. Besna // Krásno
    #5. Messa // The Spin
    #4. Labyrinthus Stellarum // Rift in Reality
    #3. Gazpacho // Magic 8 Ball
    #2. Dormant Ordeal// Tooth & Nail
    #1. Moron Police // Pachinko — I was a little nervous when I first read about the length and ambition behind Pachinko, especially in the context of the incredible and very concise A Boat on the Sea. I’ve never been this happy to be this wrong. Nothing in the last decade has overtaken my life as much as Pachinko has, and I’m listening to it yet again as I write this, and will probably restart it once it finishes. Pachinko has a lot in common with Everything Everywhere All At Once, one of my all-time favorite films, as a treatise on the chaos of life and the importance of friends and family. It treats its philosophy of silliness very seriously, laughing in the face of darkness in such a beautiful and inspiring way; it brightens my life every time I hear it. And it does all that in tribute to a dear friend who was gone too soon and too suddenly, and no other eulogistic album has let me feel like its subject’s soul touched mine. An astounding monument to friendship on top of an incredibly accomplished hour of music. Pachinko is a miracle.

    Honorable Mentions:

    Song o’ the Year:

    • Moron Police – “Giving up the Ghost”

    

    Non-metal Albums of the Year:

    • Lorde // Virgin
    • Jonathan Hultén // Eyes of the Living Night
    • Shayfer James // Summoning

    Mark Z.

    #ish. Malefic Throne // The Conquering Darkness
    #10. Urn // Demon Steel
    #9. Teitanblood // From the Visceral Abyss
    #8. Shed the Skin // The Carnage Cast Shadows
    #7. Guts // Nightmare Fuel
    #6. Dormant Ordeal // Tooth and Nail
    #5. Perdition Temple // Malign Apotheosis
    #4. Paradise Lost // Ascension
    #3. Revocation // New Gods, New Masters
    #2. Death Yell // Demons of Lust
    #1. Abominator // The Fire Brethren – It took me a few years after hearing this Australian duo’s last album, 2015’s Evil Proclaimed, to realize I was wrong about them. Their raw and relentless black-death metal wasn’t just good, it was fucking awesome. With their long-awaited sixth album, The Fire Brethren, Abominator has conjured flames that reach higher than ever. As always, the enraged rasps, scorching riffs, and endlessly pummeling rhythms are like plumes of hellfire shot directly into your ear canals. But amidst the bludgeoning is some genuinely great songwriting, with deep-cutting hooks (“The Templar’s Curse,” “Underworld Vociferations”), flashes of melody (“Progenitors of the Insurrection of Satan”), thrashy breaks (“Sulphur from the Heavens”), and just enough variety to keep everything hitting as hard as possible. It’s not for everyone, but for those into Angelcorpse and other music of that sort, The Fire Brethren is the type of album you just can’t get enough of.

    Honorable Mention:

    • Blasphamagoatachrist // Bestial Abominator

    Song (Title) o’ the Year:

    Song o’ the Year:

    • Fugitive – “Spheres of Virulence”

    

    Carcharodon

    #ish. Dax Riggs // 7 Songs for Spiders
    #10. Novarupta // Astral Sands
    #9. Atlantic // Timeworn
    #8. Structure // Heritage
    #7. Agriculture // The Spiritual Sound
    #6. Igorr // Amen
    #5. Messa // The Spin
    #4. Abigail Williams // A Void Within Existence
    #3. Cave Sermon // Fragile Wings
    #2. Dormant Ordeal // Tooth and Nail
    #1. Grima // Nightside – In each of 2019, 2021, and 2022, Grima released an album and, in each of those years, I listed said album (#5, HM, and #10). But this year, the year in which I have listened to the least metal and, of course, written the least since I started here in 2018, is also the year that Grima got everything dialled in to just what I want from a Grima album. On Nightside, the duo struck the perfect balance between the traditional influences of 2019’s Will of the Primordial and the propulsive, frozen atmosphere of Frostbitten (2022). The combination gives Nightside an almost hypnotic and weirdly tranquil flow, offset by Vilhelm’s rasping vocals, which remain among the best in the BM game. Every time I come back to this record, and the title track in particular, it’s even better than I remember it being, and I always end up spinning three or more times back-to-back. An album that can keep playing that trick deserves its #1 spot in my book.

    Honorable Mentions:

    Songs o’ the Year:

    • Messa – “Fire on the Roof”

    

    • Novarupta – “Now Here We Are (At the Inevitable End)”

    Mysticus Hugebeard

    #10. Orbit Culture // Death Above Life
    #9. An Abstract Illusion // The Sleeping City
    #8. Qrixkuor // The Womb of the World
    #7. Dormant Ordeal // Tooth and Nail
    #6. Panopticon // Laurentian Blue
    #5. Blackbraid // Blackbraid III
    #4. Arkhaaik // Uihtis
    #3. Kauan // Wayhome
    #2. Wardruna // Birna
    #1. Thumos // The Trial of SocratesI recall groggily stumbling upon ThumosThe Trial of Socrates at work one early morning, and I’m not sure if I’ve grown attached to it or it’s grown attached to me. It looms in my periphery, routinely interrupting my listening schedule for just one more spin. This gargantuan dive into ancient Greek philosophy and justice is melodically rich, laden with atmosphere, and fiercely intelligent. I love how this album stimulates my curiosity. I pore over The Trial of Socrates like a madman, piecing the puzzle together with feverish glee but never quite feeling finished, because every re-listen yields new shapes, new colors, new ideas. It eggs me on to research various topics on ancient Greek history or philosophy, and even made for an unlikely study partner during my long preparations for the German A1 exam. I always feel smarter by the end of it—hubris, I’m sure, but The Trial of Socrates genuinely sparks my imagination in ways few albums do. Time to go listen to “The Phædo” for the zillionth time.

    Honorable Mentions:

    Songs o’ the Year:

    • Disarmonia Mundi – “Outcast”

    The Dormant Stranger by Disarmonia Mundi

    • Jamie Page & Marcy Nabors – “Do No Harm (Ventricular Mix)”

    Do No Harm by Jamie Paige, Marcy Nabors, & Penny Parker

    • Thumos – “The Phædo”

    The Trial of Socrates by Thumos

    Disappointment(s) o’ the year:

    • The dissolution of Ante-Inferno: After Death’s Soliloquy topped my list last year, I was genuinely gutted to see Ante-Inferno’s post that they were no more. Still, I shall not weep but rather smile that they happened, because Ante-Inferno was a rare breed of genuinely moving black metal. Just that one album rooted itself so deeply within me, and I will be listening for a long time.
    • Arno Menses leaving Subsignal: Man, fuck. Fuck. Remember my nuclear-grade glaze of Subsignal, where I might as well have said Menses’ voice single-handedly justified the entire existence of music? How could I not break down in heaving sobs in the middle of this Denny’s when I heard that Menses and Subsignal have parted ways? It sucks, I tell ya. I will still listen to what Subsignal puts out in the future, because Markus Steffen is a talented musician, but it’s going to be a huge adjustment since Menses is nigh irreplaceable.

    Samguineous Maximus

    #ish. Imperial Triumphant // Goldstar
    #10. Primitive Man // Observance
    #9. Motherless // Do You Feel Safe?
    #8. Deafheaven // Lonely People with Power
    #7. Weeping Sores // The Convalescence Agonies
    #6. Between the Buried and Me // The Blue Nowhere
    #5. Calva Louise // Edge of the Abyss
    #4. 1914 // Viribus Unitis
    #3. Crippling Alcoholism // Camgirl
    #2. Crippling Alcoholism // Bible Songs II
    #1. Yellow Eyes // Confusion GateYellow Eyes are one of the best black metal bands in the game, and Confusion Gate is their most impressive work to date. It sees the band return to a more traditional atmospheric sound, but with the lessons learned from their explorations of dissonance and ambience. The result is a kaleidoscopic blend of gorgeous melodies, haunting riffs, and a pervasive sense of pathos that only the best art can achieve. Confusion Gate feels like communing with nature from the top of a wintry peak, embodying both impossible grandeur and awesome terror. This is a record that bypasses the analytical reviewer’s brain and just hits me right in the feeling. It offers a unique catharsis in a year where I truly needed it.

    Honorable Mentions

    Song o’ the Year:

    • Crippling Alcoholism – “Ladies Night”

    

    Spicie Forrest

    #ish. Cryptopsy // An Insatiable Violence
    #10. Crimson Shadows // Whispers of War
    #9. Oromet // The Sinking Isle
    #8. -ii- // Apostles of the Flesh
    #7. Suncraft // Welcome to the Coven
    #6. Suncraft // Profanation of the Adamic Covenant
    #5. Chestcrush // ΨΥΧΟΒΓΑΛΤΗΣ
    #4. Dormant Ordeal // Tooth and Nail
    #3. Qrixkuor // The Womb of the World
    #2. Primitive Man // Observance
    #1. Wytch Hazel // V: Lamentations – I know, I’m surprised too. But the bottom line is that I’ve been listening to V: Lamentations front to back at least once a week since it released on the most American of holidays, July 4th. For Steel, Wytch Hazel’s latest didn’t have the same staying power as previous efforts, but Lamentations is the first to truly resonate with me. Though musically consistent with their Wishbone Ash-meets-Eagles style, vocalist Colin Hendra brings a new sense of passion to the record, and the interplay between instruments, vocals, and lyrics hits me like a lightning bolt. Very possibly inspired by the core Christian tenet laid out in Romans 6:23-24,2 Lamentations is a masterful portrayal of what it means to perpetually fail, to know you’ll never be good enough, and in the face of a salvation that renders all efforts, deeds, and accomplishments worthless, to keep striving toward the impossible anyway. Even for godless sinners like me, Lamentations is a beautiful reminder that purpose is found in hardship, that the journey is the goal, and that falling down is merely an opportunity to stand up again.

    Honorable Mentions:

    Song o’ the Year:

    • Yellowcard – “honestly i”

    Grin Reaper

    (ish) Sallow Moth // Mossbane Lantern
    #10. Turian // Blood Quantum Blues
    #9. Calva Louise // Edge of the Abyss
    #8. Lychgate // Precipice
    #7. An Abstract Illusion // The Sleeping City
    #6. Thron // Vurias
    #5. Structure // Heritage
    #4. Species // Changelings
    #3. Havukruunu // Tavastland
    #2. Aephanemer // Utopie
    #1. 1914 // Viribus Unitis – I didn’t know Viribus Unitis would be my top album of the year the first time I listened to it, but I knew it would list. 1914’s naked emotion and rousing story of a Ukrainian soldier’s survival through World War I, reconciliation with his family, and inescapable return to war remains as gripping and bittersweet now as it did the first time I heard it. Across adrenaline-fueled riffing, oppressive marches, and somber dirges, 1914 never relents on musical or lyrical weight. Though Viribus Unitis was released late in the year, it quickly became the standard I used to appraise albums while going through listing season. 1914 paints war-torn life with savage grace, supplying devastating melody and grueling crawls that elevate the album to such heights that I’m genuinely moved each time I get to the end. Viribus Unitis is bleak, raw, and human, but for all that, I’m never deterred from listening. Ultimately, 1914 clutches the threads of hope and weaves an aural tapestry that brings tragedy and triumph to life, cementing Viribus Unitis as my undisputed top album of 2025.


    Honorable Mentions:

    Songs o’ the Year:

    • Aephanemer – “Le Cimetière Marin”

    • 1914 – “1918 Pt. III: ADE (A Duty to Escape)”

    Andy-War-Hall

    #ish: Dragon Skull // Chaos Fire Vengeance
    #10: Changeling // Changeling
    #9: Steel Arctus // Dreamruler
    #8: Abigail Williams //A Void Within Existence
    #7: Petrified Giant // Endless Ark
    #6: Imperial Triumphant // Goldstar
    #5: Structure // Heritage
    #4: Lipoma // No Cure for the Sick
    #3: Crippling Alcoholism // Camgirl
    #2: Hexrot // Formless Ruin of Oblivion
    #1: 1914 // Viribus Unitis Immersion defines great music and art for me. It is almost unfortunate how good 1914 are in this facet of their music. Their ability to transport the listener to the battlefield in all its violence, both carnal and psychological, is stupefying. The utter dehumanizing hatred with “1914 (The Siege of Przemyśl),” the ravenous bloodlust of “1917 (The Isonzo Front),” the hellish wails haunting “1918 Pt. 1 (WIA – Wounded in Action):” all portrayed vividly through 1914’s brilliantly caustic and composed musicianship and deeply personal lyricism. When Dmytro Ternushchak bellows “For three days / The Russians attacked / And accomplished nothing but / 40,000 dead pigs” [“1914 (The Siege of Przemyśl)”], it’s all you need to get into his character’s violent headspace. When 1914 mournfully sing in Ukrainian “Це моя земля”3 [1915 (Easter Battle for the Zwinin Ridge)], you grasp how someone could put their life on the line for kin and country. When our soldier sings “My little girl reached out to me / But duty calls” [1919 (The Home Where I Died)]… well, shit, your heart just has to break, right? 1914 don’t play “history metal.” Viribus Unitis is as present and relevant as you can get.

    Honorable Mentions:

    Song o’ the Year:

    • Fell Omen – “The Fire is Still Warm”

    

    Lavender Larcenist

    #ish Spiritbox // Tsunami Sea
    #10. Sold Soul // Just Like That, I Disappear Entirely
    #9. Calva Louise // Edge of the Abyss
    #8. Dying Wish // Flesh Stays Together
    #7. Grima // Nightside
    #6. Aversed // Erasure of Color
    #5. Deafheaven // Lonely People With Power
    #4. Ghost Bath // Rose Thorn Necklace
    #3. Changeling // Changeling
    #2. Dormant Ordeal // Tooth and Nail
    #1. Crippling Alcoholism // Camgirl – Sometimes you listen to music, and you feel like it gets you. Camgirl was exactly that type of album, and it probably doesn’t say anything good about me. Ever since Crippling Alcoholism’s latest graced my ears and I shared it with my partner, we have been singing “I fucking hate the way I look, yeah I look like a fat fucking scumbag” way too often and mumbling “Mr. Ran away, ran away from family” every chance we get. The album is dripping with the atmosphere of neon-lit back rooms, seedy interactions, and terrible decision-making. It feels like a lens into the lives of those society has left behind, and I can’t help but feel a connection. The self-destructive nihilism, drugged-out sex, and abrupt violence that is all too common in those on the margins of life is something I think more and more we can all relate to, and Camgirl is the art that mirrors society back to us. As a result, it is an album that is just as ugly as it is terrifying and beautiful.


    Honorable Mentions:

    Song o’ the Year:

    • Crippling Alcoholism – “bedrot”

    Creeping Ivy

    #ish. Nite // Cult of the Serpent Sun
    #10. Blackbraid // Blackbraid III
    #9. Flummox // Southern Progress
    #8. 1914 // Viribus Unitis
    #7. Cave Sermon // Fragile Wings
    #6. Saor // Amidst the Ruins
    #5. Imperial Triumphant // Goldstar
    #4. Phantom Spell // Heather & Hearth
    #3. Coroner // Dissonance Theory
    #2. Messa // The Spin
    #1. Havukruunu // TavastlandOn their Bandcamp page, Havukruunu explain the concept of their fourth LP: ‘Tavastland tells how in 1237 the Tavastians rose in rebellion against the church of Christ and drove the popes naked into the frost to die.’ Sounds like the metal album of 2025 to me! But I didn’t crown Tavastland for its lyrics that I can’t understand. As Dr. A.N. Grier has been exhorting for a decade, Havukruunu stands as a model of Viking black metal consistency, having dropped only very good-to-great albums since 2015. Tavastland isn’t a radical improvement over 2020’s Uinuous syömein sota, but it’s an (arguably excellent) improvement nonetheless, making it Havukruunu’s finest work yet. Yes, these fiery Finns forge sounds reminiscent of Bathory and Immortal, but Tavastland seized my attention for its adventurous prog sensibilities. Some of this can be attributed to the return of Hümo, whose bass rattles like the four strings of Geddy Lee. But the prog is deep in the album craft, from the overture-style modulations of opener “Kuolematon laulunhenki” to the extended guitar wankery of closer “De miseriis fennorum.” Now if only I can learn Finnish, I’ll be able to appreciate the killer anti-popery narrative while headbanging to my Record o’ 2025.

    Honorable Mentions:

    Song o’ the Year:

    • Phantom Spell – “The Autumn Citadel”

    

    Baguette of Bodom

    #ish. In the Woods… // Otra
    #10. Species // Changelings
    #9. Dragon Skull // Chaos Fire Vengeance
    #8. A-Z // A2Z²
    #7. Apocalypse Orchestra // A Plague upon Thee
    #6. Amorphis // Borderland
    #5. Dolmen Gate // Echoes of Ancient Tales
    #4. Dormant Ordeal // Tooth and Nail
    #3. Amalekim // Shir Hashirim
    #2. Suotana // Ounas II
    #1. Buried Realm // The Dormant Darkness – Melodic tech death? Symphonic power metal? Who knows! Much like my 2025 in general, The Dormant Darkness has a bit of everything in one gigantic clusterfuck. The great news is, neither I nor the album crumbled under all that weight. In a year full of odd twists and turns, my list became more varied and unusual than ever. Buried Realm took this variety and gave me everything I like about metal in one dense package: blazing speeds, soaring guitars, majestic vocals, and relentless fury. It’s also inexplicably well-produced for how many layers there are to deal with. While 2025 was not a particularly star-studded release year—especially compared to most of the 2020s so far—it threw plenty of fun curveballs at me, and The Dormant Darkness exemplifies this with its Xothian fusion of metal subgenres in one big Ophidian I blender ov shred. I would also like to request several Christian Älvestam features on every album, please.

    Honorable Mentions:

    Song o’ the Year:

    • Dragon Skull – “Blood and Souls”

    Chaos Fire Vengeance by Dragon Skull

    Show 3 footnotes

    1. Translated: I had atrial fibrillation and needed a cardiac ablation.
    2. “For all have sinned and fall short of the glory of God, and all are justified freely by his grace through the redemption that came by Christ Jesus.”
    3. “This is my land.”
    #1914 #2025 #AZ #AbigailWilliams #Abominator #Aephanemer #Agriculture #AmIInTrouble #Amalekim #Ambush #Amorphis #AnAbstractIllusion #ApocalypseOrchestra #Arkhaaik #Asira #Astronoid #Atlantic #AvaMendozaGabbyFlukeMogalCarolinaPérez #Aversed #Besna #BetweenTheBuriedAndMe #Bianca #Blackbraid #Blasphamagoatachrist #Blindfolded #BlogLists #Bloodywood #BlutAusNord #Bruit #BuriedRealm #CalvaLouise #CaveSermon #Changeling #Chestcrush #Coroner #CrimsonShadows #CripplingAlcoholism #DawnOfSolace #DaxRiggs #Deafheaven #DeathYell #Décryptal #Defigurement #DerWegEinerFreiheit #DolmenGate #DormantOrdeal #DragonSkull #DyingWish #Dynazty #Fange #FellOmen #Flummox #Gazpacho #GhostBath #Gorycz #Grima #Guts #HangoverInMinsk #Hasard #Havukruunu #Hexrot #HoodedMenace #Igorr #Igorrr #II #ImperialTriumphant #JonathanHultén #Kauan #LabyrinthusStellarum #Lipoma #Lists #Lorde #LornaShore #Lychgate #MaleficThrone #Messa #MoronPolice #Motherless #MutagenicHost #Nephylim #NightFlightOrchestra #Nite #Novarupta #OllieWride #Ophelion #OrbitCulture #Oromet #Panopticon #ParadiseLost #PedestalForLeviathan #PerditionTemple #PetrifiedGiant #PhantomSpell #PrimitiveMan #Proscription #Psychonaut #PupilSlicer #Puteraeon #Qrixkuor #Revocation #SallowMoth #Saor #ShadowOfIntent #ShayferJames #ShedTheSkin #Sigh #SoldSoul #Species #Spiritbox #Starscourge #SteelArctus #StevenWilson #Strigiform #Structure #Suncraft #Suotana #Teitanblood #TheAMGStaffPickTheirTopTenIshOf2025 #TheMidnight #Thron #Thumos #Turian #ÜltraRaptör #Urn #VenomousEchoes #VictimOfFire #Walg #Wardruna #WeepingSores #WyattE #WytchHazel #YellowEyes #Yellowcard #ZéroAbsolu
  22. Regarding the phenomenology of purely psychic or magical influences, when you think about someone, your mind shapes itself into a representation of that person, and in order to maximize rapport, sympathy, resonance, or decrease the distance between you and that person, there has to be an accurate representation. Your mind becomes more and more like that of the person you are trying to influence as you approach that person on a psychic plane.

    We can locate things in space and time by going to the space where it is at and the time where it is at and interacting with it. How do you find a non-physical, psychic entity, such as a concept? We locate these entities through symbols. Symbols point to concepts. In this case, your mind makes itself that symbol. The connection between the symbol and the concept is reinforced through redundancy. The more similar your mind is to that other person, the stronger the connection between your intent and that person. I can typically intuit whether a person is psychic or magical by the degree and clarity I can sense them. The clearer they are to me, the more similar we are.

    So, when you seek to influence a person, you open yourself up to that same influence. Magic is not a one-way thing because it is predicated on your intention, and your intention is connected to you, and is your mind using itself as a symbol and mediator. Your mind is the gateway and the mediator for magic. Everything has an inverse or a negation. If you are seeking to influence someone else per your will, then the inverse is them influencing you via their will. In the same way that every integer has an additive inverse, there is an inverse with this and by creating that object, you create a possible inverse.

    Psychokinesis and the Manipulation of Probability

    I was born with psychokinetic abilities more archetypal of science fiction than occultism. Many people do not understand how psychokinesis works. Probability, in the sense of luck, doesn’t actually exist. In statistical mechanics, probability corresponds to the frequency of occurrence of an event, often represented as a histogram. This probabilistic frequency is related to processes like absorption and emission of heat. Temperature, in the context of statistical mechanics, is associated with scalar quantities such as speed (the magnitude of velocity) and momentum (the product of mass and velocity). These are the statistical properties that a spell or psychokinesis influences, rather than luck. They are influencing kinetic properties with their intention, i.e., psychokinesis.

    Chthonic Infernal Powers

    Heat is disordered mechanical and rotational energy, so by manipulating disorder, entropy, and randomness, one is manipulating heat. As someone who exemplifies Chthonic, demonic, and draconic entities, I like to think of my psychokinesis and sorcerous abilities as a lower-dimensional manifestation of infernal powers. Influencing probabilities is a lower-dimensional manifestation of the iconic fire breath of a dragon or the fire powers of demons. It’s a lower-dimensional physical projection of the astral dragon’s fire breath. Astrologically, I am an Earth Dragon. This type of serpentine dragon is known as a Long, which is a wyrm similar to a Leviathan. Of course, this is a mythological narrative; however, it is a convenient abstraction and metaphor that encapsulates the connection among sorcery, psychokinesis, order, and statistical mechanical properties. As someone that is satanic, it also fits my spiritual beliefs, too. I am not an adept; instead, I am the serpent in the garden of Eden.

    The Blurring of Boundaries

    When you manipulate a probability, you are effectively determining the outcome or direction of things. On a smaller scale, you are influencing the oscillation of matter to perturb it. When a spell changes the odds of something happening, it is effectively organizing disorder, mechanical, and rotational energy – that is, heat – in a way that serves the practitioner’s desired outcome by creating a coordination of energy and matter. This might appear rather mechanical, but it isn’t. There is a psychic component to it.

    When I influence the movement of a candle flame or light a candle, I become that candle flame. My psychokinesis is an abstraction of clairvoyance and psychokinesis, which is why I have a hard time simply sensing the future with a precognitive application of clairvoyance. I explain that here: Influencing the Future, One Wave at a Time.

    Through verification and feedback, I can tell there is a veridical connection between that gestalt and fire. So, my mind is accurately shaping itself into the representation of fire, so in a sense, there is an aspect of me that is fire. Whenever I want to influence a candle flame or light a candle, I evoke that gestalt. There is a connection between me and the candle such that there is a blurring between me and the candle. I become the candle and that part of me becomes the candle flame. When you influence something with magic or psychic abilities, that illusion of separation disappears.

    Gestalts and Ideograms in Remote Viewing

    My consciousness will sense a candle flame in the other room clairvoyantly and will encode that noetic knowledge as a gestalt, an ideogram, into my internal schema. I can recognize that I am psychically sensing fire because of how it’s stored in the schema of my consciousness. I employ a similar system of gestalts that you might find in Controlled Remote Viewing (CRV), although I’ve developed my own model and templates. The sigils and magical languages I create and use denote those gestalts and act as ideograms. Gestalts are used differently in Parapsychological paradigms than in general Psychology.

    “The word “gestalt” is not a remote viewing term, even though that is the place you will hear it most. It is, in fact, a psychological term which means the basic conceptual quality or basic aspect of any one thing. For example, “dew”, “lake”, “ocean”, “sweat”, “rain”, “ice”, etc., all have the gestalt of “water”. If you were to add “gasoline”, “bleach”, and “oil” to that list, the basic gestalt would be “liquid”.

    Remote viewing starts off with the viewer getting the basic gestalts of the site, and then taking each gestalt individually and describing its individual qualities. So, a session might begin with the viewing finding that the target has the basic gestalts of “land”, “water”, and “manmade”. The second step or stage in the remote viewing process is to first give an actual description of the “land” at the site, then the “water” aspect of it, and then describe the “manmade” aspect of the target. In this way, a picture of the target builds up in a pollution-free environment.

    One way of understanding the word, “gestalt” is to say that it is the “—iness” of the target. That is, “the target has water-iness, land-iness, and manmade-iness to it.”
    Lyn Buchanan

    “Definitions:

    Major Gestalt: The overall impression presented by all elements of the site taken for their composite interactive meaning. The one concept that more than all others would be the best description of the site.

    Ideogram: The “I” component of the I/A/B sequence. The ideogram is the spontaneous graphic representation of the major gestalt, manifested by the motion of the viewer’s pen on paper, which motion is produced by the impingement of the signal line on the autonomic nervous system and the reflexive transmission of the resultant nervous energy to the muscles of the viewer’s hand and arm. The objectified ideogram has no “scale;” that is, the size of the ideogram relative to the paper seems to have no relevance to the actual size of any component at the site.

    “A” Component: The “feeling/motion” component of the ideogram. The “feeling/motion” is essentially the impression of the physical consistency (hard, soft, solid, fluid, gaseous, etc.) and contour/shape/motion of the site. For example, the monitor has selected, unknown to the viewer, a mountain as the trainee’s site. At the iteration of the coordinate, the trainee produces an appropriate ideogram, and responds verbally, at the same time as he writes it: “Rising up, peak, down.” This is the “motion” sensation he experienced as his pen produced the ideogram. He then says “solid,” having experienced the site as being solid as opposed to fluid or airy. This is the “feeling” component of the Stage 1 process. There are at least five possible types of feelings: solidity, liquidity, energetic, airiness (that is, where there is more air space than anything else, such as some suspension bridges might manifest), and temperature. Other feeling descriptors are possible, but encountered only in rare circumstances and connected with unusual sites. These components and how they are expressed in structure will be discussed more fully below. Though in discussions of theory this aspect is usually address as “feeling/motion,” it will normally be the case in actual session work that the motion aspect is decoded first with the feeling portion coming second.”

    CRV Stage 1–Coordinate (“Controlled”) Remote Viewing Manual

    I do know of a few chaos magicians – one in particular – who have taken Remote Viewing courses. They use gestalts and ideograms as the foundation for sigils, which they then enhance using editing programs like Gimp. The more experienced members of chaos magical orders will incorporate geographic coordinates and RV gestalts into the image layers of Gimp for sigils intended for group workings directed at a particular place or institution. I have witnessed one of these bizarre workings on Discord.

    Whatever you seek to create, you have to become to actualize that thing, so if you seek to create a negative, horrific future, you become horrific. You are what you cast.

    #anarchism #anarchists #anarchy #Animism #animistic #archetypes #astrology #chaosMagic #chaosMagick #Chthonic #conspiracyTheories #conspiracyTheory #CRV #demon #demons #DKMU #dragons #ESP #gestalt #gestalts #magick #occult #occultism #Parapsychology #psychic #Psychokinesis #RemoteViewing #RV #semiotic #semiotics #sigil #sigilMagick #sigils #sorcery #Stargate #UAP #UAPs #UFO #UFOs #witch #witchcraft

  23. Regarding the phenomenology of purely psychic or magical influences, when you think about someone, your mind shapes itself into a representation of that person, and in order to maximize rapport, sympathy, resonance, or decrease the distance between you and that person, there has to be an accurate representation. Your mind becomes more and more like that of the person you are trying to influence as you approach that person on a psychic plane.

    We can locate things in space and time by going to the space where it is at and the time where it is at and interacting with it. How do you find a non-physical, psychic entity, such as a concept? We locate these entities through symbols. Symbols point to concepts. In this case, your mind makes itself that symbol. The connection between the symbol and the concept is reinforced through redundancy. The more similar your mind is to that other person, the stronger the connection between your intent and that person. I can typically intuit whether a person is psychic or magical by the degree and clarity I can sense them. The clearer they are to me, the more similar we are.

    So, when you seek to influence a person, you open yourself up to that same influence. Magic is not a one-way thing because it is predicated on your intention, and your intention is connected to you, and is your mind using itself as a symbol and mediator. Your mind is the gateway and the mediator for magic. Everything has an inverse or a negation. If you are seeking to influence someone else per your will, then the inverse is them influencing you via their will. In the same way that every integer has an additive inverse, there is an inverse with this and by creating that object, you create a possible inverse.

    Psychokinesis and the Manipulation of Probability

    I was born with psychokinetic abilities more archetypal of science fiction than occultism. Many people do not understand how psychokinesis works. Probability, in the sense of luck, doesn’t actually exist. In statistical mechanics, probability corresponds to the frequency of occurrence of an event, often represented as a histogram. This probabilistic frequency is related to processes like absorption and emission of heat. Temperature, in the context of statistical mechanics, is associated with scalar quantities such as speed (the magnitude of velocity) and momentum (the product of mass and velocity). These are the statistical properties that a spell or psychokinesis influences, rather than luck. They are influencing kinetic properties with their intention, i.e., psychokinesis.

    Chthonic Infernal Powers

    Heat is disordered mechanical and rotational energy, so by manipulating disorder, entropy, and randomness, one is manipulating heat. As someone who exemplifies Chthonic, demonic, and draconic entities, I like to think of my psychokinesis and sorcerous abilities as a lower-dimensional manifestation of infernal powers. Influencing probabilities is a lower-dimensional manifestation of the iconic fire breath of a dragon or the fire powers of demons. It’s a lower-dimensional physical projection of the astral dragon’s fire breath. Astrologically, I am an Earth Dragon. This type of serpentine dragon is known as a Long, which is a wyrm similar to a Leviathan. Of course, this is a mythological narrative; however, it is a convenient abstraction and metaphor that encapsulates the connection among sorcery, psychokinesis, order, and statistical mechanical properties. As someone that is satanic, it also fits my spiritual beliefs, too. I am not an adept; instead, I am the serpent in the garden of Eden.

    The Blurring of Boundaries

    When you manipulate a probability, you are effectively determining the outcome or direction of things. On a smaller scale, you are influencing the oscillation of matter to perturb it. When a spell changes the odds of something happening, it is effectively organizing disorder, mechanical, and rotational energy – that is, heat – in a way that serves the practitioner’s desired outcome by creating a coordination of energy and matter. This might appear rather mechanical, but it isn’t. There is a psychic component to it.

    When I influence the movement of a candle flame or light a candle, I become that candle flame. My psychokinesis is an abstraction of clairvoyance and psychokinesis, which is why I have a hard time simply sensing the future with a precognitive application of clairvoyance. I explain that here: Influencing the Future, One Wave at a Time.

    Through verification and feedback, I can tell there is a veridical connection between that gestalt and fire. So, my mind is accurately shaping itself into the representation of fire, so in a sense, there is an aspect of me that is fire. Whenever I want to influence a candle flame or light a candle, I evoke that gestalt. There is a connection between me and the candle such that there is a blurring between me and the candle. I become the candle and that part of me becomes the candle flame. When you influence something with magic or psychic abilities, that illusion of separation disappears.

    Gestalts and Ideograms in Remote Viewing

    My consciousness will sense a candle flame in the other room clairvoyantly and will encode that noetic knowledge as a gestalt, an ideogram, into my internal schema. I can recognize that I am psychically sensing fire because of how it’s stored in the schema of my consciousness. I employ a similar system of gestalts that you might find in Controlled Remote Viewing (CRV), although I’ve developed my own model and templates. The sigils and magical languages I create and use denote those gestalts and act as ideograms. Gestalts are used differently in Parapsychological paradigms than in general Psychology.

    “The word “gestalt” is not a remote viewing term, even though that is the place you will hear it most. It is, in fact, a psychological term which means the basic conceptual quality or basic aspect of any one thing. For example, “dew”, “lake”, “ocean”, “sweat”, “rain”, “ice”, etc., all have the gestalt of “water”. If you were to add “gasoline”, “bleach”, and “oil” to that list, the basic gestalt would be “liquid”.

    Remote viewing starts off with the viewer getting the basic gestalts of the site, and then taking each gestalt individually and describing its individual qualities. So, a session might begin with the viewing finding that the target has the basic gestalts of “land”, “water”, and “manmade”. The second step or stage in the remote viewing process is to first give an actual description of the “land” at the site, then the “water” aspect of it, and then describe the “manmade” aspect of the target. In this way, a picture of the target builds up in a pollution-free environment.

    One way of understanding the word, “gestalt” is to say that it is the “—iness” of the target. That is, “the target has water-iness, land-iness, and manmade-iness to it.”
    Lyn Buchanan

    “Definitions:

    Major Gestalt: The overall impression presented by all elements of the site taken for their composite interactive meaning. The one concept that more than all others would be the best description of the site.

    Ideogram: The “I” component of the I/A/B sequence. The ideogram is the spontaneous graphic representation of the major gestalt, manifested by the motion of the viewer’s pen on paper, which motion is produced by the impingement of the signal line on the autonomic nervous system and the reflexive transmission of the resultant nervous energy to the muscles of the viewer’s hand and arm. The objectified ideogram has no “scale;” that is, the size of the ideogram relative to the paper seems to have no relevance to the actual size of any component at the site.

    “A” Component: The “feeling/motion” component of the ideogram. The “feeling/motion” is essentially the impression of the physical consistency (hard, soft, solid, fluid, gaseous, etc.) and contour/shape/motion of the site. For example, the monitor has selected, unknown to the viewer, a mountain as the trainee’s site. At the iteration of the coordinate, the trainee produces an appropriate ideogram, and responds verbally, at the same time as he writes it: “Rising up, peak, down.” This is the “motion” sensation he experienced as his pen produced the ideogram. He then says “solid,” having experienced the site as being solid as opposed to fluid or airy. This is the “feeling” component of the Stage 1 process. There are at least five possible types of feelings: solidity, liquidity, energetic, airiness (that is, where there is more air space than anything else, such as some suspension bridges might manifest), and temperature. Other feeling descriptors are possible, but encountered only in rare circumstances and connected with unusual sites. These components and how they are expressed in structure will be discussed more fully below. Though in discussions of theory this aspect is usually address as “feeling/motion,” it will normally be the case in actual session work that the motion aspect is decoded first with the feeling portion coming second.”

    CRV Stage 1–Coordinate (“Controlled”) Remote Viewing Manual

    I do know of a few chaos magicians – one in particular – who have taken Remote Viewing courses. They use gestalts and ideograms as the foundation for sigils, which they then enhance using editing programs like Gimp. The more experienced members of chaos magical orders will incorporate geographic coordinates and RV gestalts into the image layers of Gimp for sigils intended for group workings directed at a particular place or institution. I have witnessed one of these bizarre workings on Discord.

    Whatever you seek to create, you have to become to actualize that thing, so if you seek to create a negative, horrific future, you become horrific. You are what you cast.

    #anarchism #anarchists #anarchy #Animism #animistic #archetypes #astrology #chaosMagic #chaosMagick #Chthonic #conspiracyTheories #conspiracyTheory #CRV #demon #demons #DKMU #dragons #ESP #gestalt #gestalts #magick #occult #occultism #Parapsychology #psychic #Psychokinesis #RemoteViewing #RV #semiotic #semiotics #sigil #sigilMagick #sigils #sorcery #Stargate #UAP #UAPs #UFO #UFOs #witch #witchcraft

  24. Regarding the phenomenology of purely psychic or magical influences, when you think about someone, your mind shapes itself into a representation of that person, and in order to maximize rapport, sympathy, resonance, or decrease the distance between you and that person, there has to be an accurate representation. Your mind becomes more and more like that of the person you are trying to influence as you approach that person on a psychic plane.

    We can locate things in space and time by going to the space where it is at and the time where it is at and interacting with it. How do you find a non-physical, psychic entity, such as a concept? We locate these entities through symbols. Symbols point to concepts. In this case, your mind makes itself that symbol. The connection between the symbol and the concept is reinforced through redundancy. The more similar your mind is to that other person, the stronger the connection between your intent and that person. I can typically intuit whether a person is psychic or magical by the degree and clarity I can sense them. The clearer they are to me, the more similar we are.

    So, when you seek to influence a person, you open yourself up to that same influence. Magic is not a one-way thing because it is predicated on your intention, and your intention is connected to you, and is your mind using itself as a symbol and mediator. Your mind is the gateway and the mediator for magic. Everything has an inverse or a negation. If you are seeking to influence someone else per your will, then the inverse is them influencing you via their will. In the same way that every integer has an additive inverse, there is an inverse with this and by creating that object, you create a possible inverse.

    Psychokinesis and the Manipulation of Probability

    I was born with psychokinetic abilities more archetypal of science fiction than occultism. Many people do not understand how psychokinesis works. Probability, in the sense of luck, doesn’t actually exist. In statistical mechanics, probability corresponds to the frequency of occurrence of an event, often represented as a histogram. This probabilistic frequency is related to processes like absorption and emission of heat. Temperature, in the context of statistical mechanics, is associated with scalar quantities such as speed (the magnitude of velocity) and momentum (the product of mass and velocity). These are the statistical properties that a spell or psychokinesis influences, rather than luck. They are influencing kinetic properties with their intention, i.e., psychokinesis.

    Chthonic Infernal Powers

    Heat is disordered mechanical and rotational energy, so by manipulating disorder, entropy, and randomness, one is manipulating heat. As someone who exemplifies Chthonic, demonic, and draconic entities, I like to think of my psychokinesis and sorcerous abilities as a lower-dimensional manifestation of infernal powers. Influencing probabilities is a lower-dimensional manifestation of the iconic fire breath of a dragon or the fire powers of demons. It’s a lower-dimensional physical projection of the astral dragon’s fire breath. Astrologically, I am an Earth Dragon. This type of serpentine dragon is known as a Long, which is a wyrm similar to a Leviathan. Of course, this is a mythological narrative; however, it is a convenient abstraction and metaphor that encapsulates the connection among sorcery, psychokinesis, order, and statistical mechanical properties. As someone that is satanic, it also fits my spiritual beliefs, too. I am not an adept; instead, I am the serpent in the garden of Eden.

    The Blurring of Boundaries

    When you manipulate a probability, you are effectively determining the outcome or direction of things. On a smaller scale, you are influencing the oscillation of matter to perturb it. When a spell changes the odds of something happening, it is effectively organizing disorder, mechanical, and rotational energy – that is, heat – in a way that serves the practitioner’s desired outcome by creating a coordination of energy and matter. This might appear rather mechanical, but it isn’t. There is a psychic component to it.

    When I influence the movement of a candle flame or light a candle, I become that candle flame. My psychokinesis is an abstraction of clairvoyance and psychokinesis, which is why I have a hard time simply sensing the future with a precognitive application of clairvoyance. I explain that here: Influencing the Future, One Wave at a Time.

    Through verification and feedback, I can tell there is a veridical connection between that gestalt and fire. So, my mind is accurately shaping itself into the representation of fire, so in a sense, there is an aspect of me that is fire. Whenever I want to influence a candle flame or light a candle, I evoke that gestalt. There is a connection between me and the candle such that there is a blurring between me and the candle. I become the candle and that part of me becomes the candle flame. When you influence something with magic or psychic abilities, that illusion of separation disappears.

    Gestalts and Ideograms in Remote Viewing

    My consciousness will sense a candle flame in the other room clairvoyantly and will encode that noetic knowledge as a gestalt, an ideogram, into my internal schema. I can recognize that I am psychically sensing fire because of how it’s stored in the schema of my consciousness. I employ a similar system of gestalts that you might find in Controlled Remote Viewing (CRV), although I’ve developed my own model and templates. The sigils and magical languages I create and use denote those gestalts and act as ideograms. Gestalts are used differently in Parapsychological paradigms than in general Psychology.

    “The word “gestalt” is not a remote viewing term, even though that is the place you will hear it most. It is, in fact, a psychological term which means the basic conceptual quality or basic aspect of any one thing. For example, “dew”, “lake”, “ocean”, “sweat”, “rain”, “ice”, etc., all have the gestalt of “water”. If you were to add “gasoline”, “bleach”, and “oil” to that list, the basic gestalt would be “liquid”.

    Remote viewing starts off with the viewer getting the basic gestalts of the site, and then taking each gestalt individually and describing its individual qualities. So, a session might begin with the viewing finding that the target has the basic gestalts of “land”, “water”, and “manmade”. The second step or stage in the remote viewing process is to first give an actual description of the “land” at the site, then the “water” aspect of it, and then describe the “manmade” aspect of the target. In this way, a picture of the target builds up in a pollution-free environment.

    One way of understanding the word, “gestalt” is to say that it is the “—iness” of the target. That is, “the target has water-iness, land-iness, and manmade-iness to it.”
    Lyn Buchanan

    “Definitions:

    Major Gestalt: The overall impression presented by all elements of the site taken for their composite interactive meaning. The one concept that more than all others would be the best description of the site.

    Ideogram: The “I” component of the I/A/B sequence. The ideogram is the spontaneous graphic representation of the major gestalt, manifested by the motion of the viewer’s pen on paper, which motion is produced by the impingement of the signal line on the autonomic nervous system and the reflexive transmission of the resultant nervous energy to the muscles of the viewer’s hand and arm. The objectified ideogram has no “scale;” that is, the size of the ideogram relative to the paper seems to have no relevance to the actual size of any component at the site.

    “A” Component: The “feeling/motion” component of the ideogram. The “feeling/motion” is essentially the impression of the physical consistency (hard, soft, solid, fluid, gaseous, etc.) and contour/shape/motion of the site. For example, the monitor has selected, unknown to the viewer, a mountain as the trainee’s site. At the iteration of the coordinate, the trainee produces an appropriate ideogram, and responds verbally, at the same time as he writes it: “Rising up, peak, down.” This is the “motion” sensation he experienced as his pen produced the ideogram. He then says “solid,” having experienced the site as being solid as opposed to fluid or airy. This is the “feeling” component of the Stage 1 process. There are at least five possible types of feelings: solidity, liquidity, energetic, airiness (that is, where there is more air space than anything else, such as some suspension bridges might manifest), and temperature. Other feeling descriptors are possible, but encountered only in rare circumstances and connected with unusual sites. These components and how they are expressed in structure will be discussed more fully below. Though in discussions of theory this aspect is usually address as “feeling/motion,” it will normally be the case in actual session work that the motion aspect is decoded first with the feeling portion coming second.”

    CRV Stage 1–Coordinate (“Controlled”) Remote Viewing Manual

    I do know of a few chaos magicians – one in particular – who have taken Remote Viewing courses. They use gestalts and ideograms as the foundation for sigils, which they then enhance using editing programs like Gimp. The more experienced members of chaos magical orders will incorporate geographic coordinates and RV gestalts into the image layers of Gimp for sigils intended for group workings directed at a particular place or institution. I have witnessed one of these bizarre workings on Discord.

    Whatever you seek to create, you have to become to actualize that thing, so if you seek to create a negative, horrific future, you become horrific. You are what you cast.

    #anarchism #anarchists #anarchy #Animism #animistic #archetypes #astrology #chaosMagic #chaosMagick #Chthonic #conspiracyTheories #conspiracyTheory #CRV #demon #demons #DKMU #dragons #ESP #gestalt #gestalts #magick #occult #occultism #Parapsychology #psychic #Psychokinesis #RemoteViewing #RV #semiotic #semiotics #sigil #sigilMagick #sigils #sorcery #Stargate #UAP #UAPs #UFO #UFOs #witch #witchcraft

  25. LG Introduces NeoChef with African AutoCook Menus

    LG Electronics has introduced its enhanced NeoChef Microwave, featuring an African AutoCook Menu developed around the cooking preferences…
    #EuropeSays #Korea #KR #LGElectronics #Business #cybersecurity #economy #fintech #LG #Startups #TechNews #Techeconomy #telecoms
    europesays.com/korea/159297/

  26. AY-3-8912/8910 Hardware Emulation

    The 40-pin AY-3-8910 devices I’ve been playing with are no longer newly available, but they are pretty available if you are happy with a certain questionable quality (more on that here: Arduino and AY-3-8910).

    But the slightly shorter version (with fewer general purpose I/O pins), the 28 pin AY-3-8912, seems a lot harder to find, despite being widely used at the time. At least, to find on its own – i.e. not already soldered onto a circuit board. There is apparently also an even smaller AY-3-8913 in 24-pin format and a few other lesser used options too. But the 8912 is the variant most often found in the ZX Spectrum 128, Amstrad CPC, and many home computers from the time.

    A key modern option then is emulation and there is a very capable AVR emulation of the sound generator online including some on PCBs that directly fit within the 28-pin footprint of the original.

    One is Yevgeniy-Olexandrenko’s avr-ay-board for the AY-3-8910, AY-3-8912 and YM2149F devices, with a 8912-compatible DIP-28 PCB design using an ATMega48.

    Another is published on https://www.avray.ru/, but that appears to be the firmware only. There is a board that uses this firmware built for an ATMega8P here and another for a two-device (dual AY-3-8912 for 6 channel support is often called “Turbosound”) here.

    I don’t believe either of these approaches emulate the general purpose IO pins of the 8912/8910, which might be an issue using them “as is” in a retro system. I know the ZX spectrum 128 uses the IO for example.

    Some options for replacing original AY-3-8912 devices:

    But perhaps my favourite so far is the slightly random, “building an AY-3-8910 out of discrete logic” that I must have a proper look at, at some point: https://github.com/mengstr/Discrete-AY-3-8910

    This post looks at how AVR emulation of AY devices works in a little more detail and maybe take some starter steps to reproduce my own.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    AVR-AY-Board

    The avr-ay-board is a fully open source design and can use an ATMega48, 88, 168 or 328. The ATMega328P is very commonly used on an Arduino Uno or Nano.

    Full details, including a schematic, gerber files, BOM, and firmware are available here: https://github.com/Yevgeniy-Olexandrenko/avr-ay-board.

    It shares a lot of firmware heritage with the source available from https://www.avray.ru/. Up until Feb this year there was a link back to the original source, but that has since been removed and it appears to have mostly diverged some time in 2022. There is a list of differences here, but much of the discussion that follows would probably apply to both versions of the code.

    The only difference between the ATMega48, 88, 168 and 328 is the amount of memory. They are named for the amount of flash memory – 4K, 8K, 16K, 32K respectively. But otherwise they are functionally identical. Here is the key data from the datasheet:

    Note that the ATMega328PB is an enhanced version of the ATMega328P which itself is a slightly lower power (as I understand things) version of the original ATMega328. Application note “AT15007: Differences between ATmega328/P and ATmega328PB” lists the full set of enhancements, but it includes additional UART, SPI, I2C, and timers, although it is essentially backwards compatible with the 328/328P.

    All of this means that a standard Arduino Uno or Nano might be able to run the bespoke AY-3-8912 emulation firmware and with the appropriate pin connections might also be able to emulate an AY-3-8912 in another system. Naturally it will be physically larger than the original chip, but electrically it should all work fine.

    The Circuit

    The original ABR-AY-Board is relatively straight forward. The full schematic is available in the GitHub repository and shows the following:

    • A minimal ATTMega48P support circuit (capacitors, oscillator, power, LED).
    • Three low-pass filters to filter PWM to an audio output expecting a 1K load (apparently).
    • A mapping onto the AY-3-8912 28-pin pinout.

    There used to be a detailed “usage” section on the GitHub but that has since been removed, but from the published schematic (v1.5) the pins are accessed and mapped as follows.

    AY-3-8912SchematicATMega48PArduino EquivalentD0-D5D0-D5PC0-PC5A0-A5D6-D7D6-D7PD6-PD7D6-D7A8MISO_A8PB4D12BC1BC1PD2D2BC2SCKPB5D13BDIRBDIRPD3D3CLOCKCLOCKPD4D4RESETRESETPC6RESETTESTMOSI_PWM_BPB3D11IOA7-IOA0N/CCOUT_C / PWM_CPB2D10BOUT_B / MOSI_PWM_BPB3D11AOUT_A / PWM_APB1D9CFG0PB0D8CFG1PD5D5RXPD0D0TXPD1D1VCCVCCVCCVCCGNDGNDGNDGND

    There is a UART header (TX, RX, VCC, GND), ICSP header (MISO, MOSI, SCK, RESET, VCC, GND), and two configuration jumpers (CFG0, CFG1).

    One point that might cause issues mapping over to an Arduino Uno or Nano is that the avr-ay-board has a 27MHz oscillator, whereas the Arduino only runs at 16MHz. That will almost certainly need some looking at.

    The Clocks

    So about that 27MHz clock. The default Arduino has a 16MHz oscillator so could this run on an unmodified Arduino?

    Looking through the code, there seems to be one specific mention of the CPU frequency:

        ; --------------------------------------------------------------------------
    ; Init Timer0
    ; --------------------------------------------------------------------------

    ; Fast PWM, TOP = OCR0A
    ldi r16, (1 << WGM01) | (1 << WGM00)
    OutReg TCCR0A, r16
    ldi r16, (1 << WGM02) | (1 << CS00);
    OutReg TCCR0B, r16

    ; 219512 Hz internal update clock
    ;ldi r16, (27000000 / (1750000 / 8) - 1)
    ;out OCR0A, r16
    OutReg EEARL, YH ; set EEPROM address 2
    sbi EECR, b0
    InReg r18, EEDR ; load byte 2 from EEPROM to r18
    OutReg OCR0A, r18 ; set PWM speed from byte 2 of EEPROM (affect AY chip frequency)

    In the commented out code, there is reference to 27000000. But then that appears to be replaced with code that is reading the PWM frequency from EEPROM.

    At the start of the main file is the comment:

    ; ==============================================================================
    ; Configuration
    ; ==============================================================================

    ; EEPROM Config:
    ; byte 0 - Serial interface enable (1 - enabled)
    ; byte 1 - Parallel interface enable (1 - enabled)
    ; byte 2 - PWM speed depending on AY chip frequency and MCU clock frequency
    ; byte 3 - USART baud speed depending on MCU clock frequency

    In the build area there is the main hex firmware and then three configurations with the following contents:

    ; firmware/v1.0/compiled/config-1.75mhz.hex
    :0500000001017A3AFF46
    :00000001FF

    ; firmware/v1.0/compiled/config-1.78mhz.hex
    :050000000101783AFF48
    :00000001FF

    ; firmware/v1.0/compiled/config-2.00mhz.hex
    :0500000001016B3AFF55
    :00000001FF

    We can see these differing in the values after 0500000. The next two bytes (0101) map to serial and parallel interface being enabled. These define how the AY-3-8912 registers can be accessed, either using the original device’s parallel data bus or via a newer serial link. The serial link can be used to send register-value pairs to the device rather than use a real AY compatible parallel bus interface.

    Then there is a differing byte (7A, 78, or 6B respectively) which is pulled into the timer 0 frequency code and used to set OCR0A in the previous code.

    Finally that last byte of the configuration (3A) relating to USART baud, which I infer from older comments in the README file will be 57600, but this is as yet unverified.

    On studying the code, it quickly becomes apparent that the whole execution is optimised for specific MCU clock frequencies. This is particularly notable in the interrupt routines, for example, the following:

    ; ==============================================================================
    ; Parallel communication mode (BC1 on PD2/INT0, BDIR on PD3/INT1)
    ; ==============================================================================
    ISR_INT0: ; [4] enter interrupt
    sbic PinD, PD_BDIR ; [2/1] check BDIR bit, skip next if clear
    rjmp LATCH_REG_ADDR ; [0/2]

    ; [ READ MODE ] (BC1=1, BDIR=0)
    ; --------------------------------------------------------------------------
    ; 350ns max to set data bus, 8 cycles to set
    ; 8 * 37ns = 296ns for 27MHz O.K.
    ; 8 * 40ns = 320ns for 25MHz O.K.
    ; 8 * 42ns = 336ns for 24MHz O.K.
    ; 8 * 50ns = 400ns for 20MHz !!!!
    OutReg DDRC, BusOut1 ; [1] output -> low level on D0-D5
    OutReg DDRD, BusOut2 ; [1] output -> low level on D6-D7

    Here we can see that running at 20MHz (for example) violates the timing constraint to respond with the data on the bus. Running at 24MHz, 25MHz and 27MHz appears to be fine. There are a number of other places in the code where similar comments have been made.

    The conclusion seems pretty clear. A standard Arduino Uno or Nano running at 16MHz would not work. Something at 20MHz might do the job with some limits, but there is definitely a reason the board is using 27MHz.

    There is a key issue however. AVR 8-bit microcontrollers are typically only specified for up to 20MHz operation. I’ve certainly not found any ATMega48 through to ATMega328 that has a higher frequency specification. There are some newer 8-bit devices that might stretch to 24MHz.

    But I’m now wondering if the MCU is being overclocked on this board. It would appear, according to some superficial searching, that people have been overclocking AVRs for years…

    Timer Configuration and PWM Output

    The emulator is using PWM to produce audio from the AVR. The PWM channels/timers are allocated as follows:

    AVR PinTimer OutputCompare RegisterTimerSystem ClockD4 / PD4N/AOCR0A0Channel AD9 / PB1OC1AOCR1AL1Channel BD11 / PB3OC2AOCR2A2Channel CD10 / PB2OC1BOCR1BL1

    The first timer, Timer 0, I’ve already mentioned, is used to set the basic internal system “clock” for the emulation. In the real AY PSG the internal clock for tones is set to the external clock / 16 and for envelopes is external clock / 256. In the emulation this is all set in code and the CLOCK input is ignored.

    The 8-bit Timer 0 configuration is as follows:

    • TCCR0A/TCCR0B = WGM00 | WGM01 | WGM02 | CS00
    • OCR0A = value from EEPROM (as mentioned previously)

    This uses timer 0 in Fast PWM mode (WGM = 7) with TOP = OCR0A and no prescaler. There is a check in the main loop for Timer 0 overflow which is then used to determine if the sound generation should be processed. This effectively sets the CLOCK for the emulation. The AY CLOCK input is meant to be between 1MHz and 2MHz and EEPROM configurations are provided to emulate 1.75MH, 1.78MHz and 2.0MHz external clocks.

    In Fast PWM mode, from the ATMega328 datasheet, for Timer 0, the frequency is given by:

    • FreqPWM = FreqCLOCK / (N * 256)

    Where N is the prescaler factor, so in this case 1. But this appears to be stated for the case when TOP = 255. If the TOP is reduced, so when TOP = OC0A, then presumably that 256 should be (TOP + 1). Assuming this to be the case, then with a 27MHz clock and the previously mentioned values from the EEPROM, we have

    • 0x7A = 122 -> timer freq = 27 MHz / 123 = 219.5 kHz
    • 0x78 = 120 -> timer freq = 27 MHz / 121 = 223 kHz
    • 0x6B = 107 -> timer freq = 27 MHz / 108 = 250 kHz

    These give a basic operating frequency of between 3.5MHz and 4MHz which is twice as fast as the real PSG. I’m guessing that this is because the sound generation code (later) toggles the output value on each period, which therefore requires doubling the frequency to generate the high and low periods.

    Note that although this timer is configured in Fast PWM mode, it isn’t actually running PWM, it is just used as a timer. The timer also never “triggers” as such – it is polled for overflow within the main code loop.

    The 16-bit Timer 1 configuration:

    • TCCR1A/TCCR1B = WGM10 | WGM12 | COM1A1 | COM1B1 | CS10
    • PB1 and PB2 set to OUPUT for PWM out on OC1A and OC1B.

    This uses timer 1 in 8-bit Fast PWM mode (WGM = 5) with TOP = 0xFF. There is no pre-scaling and OC1A/OC1B cleared on compare match with OC1A/OC1B set at BOTTOM (non-inverting mode).

    The 8-bit Timer 2 configuration:

    • TCCR2A/TCCR2B = WGM20 | WGM21 | COM2A1 | CS20
    • PB3 set to OUTPUT for PWM out on OC2A.

    This uses timer 2 in Fast PWM module with TOP = 0xFF (WGM = 3). OC2 is clear on match and set at BOTTOM (non-inverting again).

    The PWM resolution for both Timer 1 and Timer 2 will be 8-bits (0 to 255) and the frequency for the output is given by the same formula used for Timer 0, giving a PWM frequency of:

    • FreqPWM = 27 MHz / (255+1) = 105.5kHz

    Bus Access

    There is a comprehensive bus access protocol defined in the AY-3-8910/12 datasheet with several possible modes involving the control signals BC1, BC2, BDIR, and A8 plus /A9 (in the case of the 8910). In particular, there is some redundancy in how the “LATCH” is indicated (see section 2.3 in the “AY-3-8910/8912 Programmable Sound Generator Data Manual” – more here: AY-3-8910 Experimenter PCB Design).

    For the emulator, BC1 is tied into the AVR INT0 (via PD2/D2) and BDIR is tied into AVR INT1 (via PD3/D3). If the serial interface is used then there is also an interrupt for the UART. BC2 is ignored so all responses are enacted upon as if BC2 is set to HIGH.:

    The basic operation, as far as I can see, is as follows:

    INT0 ISR - triggered on BC1 -> 1
    IF BDIR == 0 // BC1=1; BDIR=0: Read data
    Set data lines to OUTPUT
    Write BusOut to the data bus
    WAIT for BC1 -> 0
    Set data lines to INPUT

    ELSE BDIR == 1 // BC1; BDIR=1: Latch Address for read
    Read ADDR from data lines
    Grab value from pseudo register in RAM into BusOut

    INT1 ISR - triggered on BDIR -> 1
    IF BC1 == 0 // BC1=0; BDIR=1: Write data
    Read DATA from data lines
    Store value to pseudo register in RAM

    ELSE BC1 == 1 // BC1=1; BDIR=1: Latch Address for write
    Read ADDR from data lines

    There is a pseudo image of all AY registers stored in RAM which is used by the main loop for the sound processing. This RAM image is updated when the AY is written to and can be accessed when the AY is read.

    Note that there is no access control. If an interrupt comes in part way through an update to the sound generators they will stop process and then continue from that point unaware than any register updates have taken place. This does mean that if any registers are accessed twice, it is quite possible that they would have changed by the time of the second access.

    Similar logic happens within the UART interrupt handler, but instead address and data values are obtained over the serial port and interactions with RAM updated according to the bytes recieved.

    I’ve not looked further into the serial handling at this time other than to note that all updating is performed withing the UART ISR which is receive only.

    Main Sound Processing Loop

    The main logic free runs as follows:

    MAIN Loop:
    IF Timer 0 Overflow Flag is SET:
    Process envelope generator
    Process noise generator
    Process tone generator for channel A
    Process tone generator for channel B
    Process tone generator for channel C
    Process mixer control
    Process amplitude control for channel A
    Process amplitude control for channel B
    Process amplitude control for channel C
    Update PWM values in OCR1AL (ch A), OCR2A (ch B), OCR1BL (ch C)

    So the loop essentially pauses until timer 0 overflows at which point all sound generation activity undertakes a single scan and then the PWM sound generation registers are updated.

    Before I dive in, I should note that the register definitions are of the form AY_REGnn where nn is a decimal from 00 to 15. The datasheet describes Ro where o is an octal value from R0 to R7, then R10 to R17. I will be using the decimal versions here to match with the code.

    I’m not going to work through how the sound generation works in its entirety right now, but I will just include a note about the tone generation. Here is the code for channel A.

        ; Channel A
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    brpl CH_A_NO_CHANGE ; CntA >= 0
    lds CntAL, AY_REG00 ; update channel A tone period counter
    lds CntAH, AY_REG01
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    eor TNLevel, ZH ; TNLevel xor 1 (change logical level of channel A)
    CH_A_NO_CHANGE:

    All counters (CntAL and CntAH for channel A) are 16-bit values. AY_REG00 and AY_REG01 are the RAM copies of the two tone generator registers for channel A.

    We can see that the channel counter is decremented on each scan through the routine implementing the following pseudo code:

    counter--
    IF (counter == 0):
    Reset counter from AY_REG00 and AY_REG01
    Toggle logic level for channel A

    This means that the output square wave value for channel A will toggle between HIGH and LOW every time the counter reaches zero and that the counter will have to count to zero twice to make a complete cycle of the square wave.

    The datasheet states that the tone registers define a 12-bit tone generator period:

    The resulting sound frequency is given by the equation:

    As we have to count twice to get our square wave output, we can see why the timer 0 “clock” frequency has to be twice the desired running CLOCK of the AY-3-8912. An alternative implementation could have been to add an additional check as part of the countdown to change the waveform half-way through.

    This does mean that all sound generator registers are processed twice as quickly as expected so that might have to be taken into account when calculating other parameters.

    The main impact would be for the envelope generator, which according to the data sheet runs a frequency CLOCK / 256. There is a EG period counter defined by AY_REG11 and AY_REG12 (R13 and R14) for further subdivision, so a full sweep of the envelope will happen with a frequency of CLOCK / (256 * EGcounter).

    The datasheet also notes that “the envelope generator further counts down the envelope frequency by 16 producing a 16-state per cycle envelope pattern”. This means that the frequency required to process each individual step of these 16 states is: 16 * CLOCK / (256 * EGCounter) or CLOCK / (16 * EGCounter).

    The Envelope Code is essentially doing the following:

    Every LOOP scan:
    IF env reg updated:
    Reinitialise EG
    Reset EGCounter from AY_REG11, AY_REG12
    EGPeriod = 31
    Re-enable EG

    ELSE
    IF EG enabled:
    EGCounter --
    IF EGCounter == 0:
    EGPeriod --
    IF EGperiod == 0:
    EGPeriod = 31
    Disable EG

    Reset EGCounter from AY_REG11, AY_REG12
    Eval = Envelope value

    This implies that a full sweep of the envelope takes EGcounter * 32 scans of the main LOOP. As the LOOP is running at twice the frequency of the CLOCK. this gives an EG frequency of:

    • LOOP / (32 * EGcounter) = CLOCK * 2 / (32 * EGCounter) = CLOCK / (16 * EGCounter)

    Which matches the datasheet. So the doubling of the LOOP frequency is taken into account by having 32 steps for the EG base period rather than 16.

    A few other observations from the code:

    • The envelope period counters are stored in AY_REG11 and AY_REG12 (R13 and R14) and managed using CntEL and CntEH via r26 and r27.
    • The line ‘sbiw CntEL, 0x01’ is a 16-bit instruction and so acts on both r26 (CntEL) and r27 (CntEH) at the same time as a HIGH/LOW 16-bit pair.
    • The counter updating currently happens at the LOOP frequency which is 2 * CLOCK. Every time the counter hits 0 the step is advanced. It therefore takes 32 * counter passes through the LOOP to process the entire cycle of the envelope.
    • The envelope period is managed using TabP which is initilised to 0x1F (31 decimal).
    • Whenever the envelope counter reaches 0 the next envelope period is selected via TabP.
    • The resultant envelope value is stored in Eval which is used as the maximum value for the amplitude calculations later in the loop.

    Curiously there are two envelope volume tables provided as options. The first (“AY_TABLE”) distinctly shows the doubling of levels turning 16 values into 32 values. The second (“YM_TABLE”) appears to have some interpolation between values giving a higher resolution envelope.

    From wikipedia: “The input clock is first divided by 16 (or by 8 in the YM2149, because the envelope generator has twice as many steps, and thus needs twice as many clocks to complete a full cycle), and then by the 16-bit value.”

    So by starting with double the CLOCK frequency, we effectively get YM compatibility “for free”.

    Only a single envelope table is required – it defines a linear incrementing pattern that is then used and reused in various ways according to the EG control bits in AY_REG13 (R15) as per figure 7 in the datasheet. I’m not going to dig into that further at this point. I might come back to it in the future.

    I’m also not going to dig into the noise generation, mixer or amplitude control at this time.

    Closing Thoughts

    I really like I feel I know a lot more about how the AY-3-8910/8912 work now and certainly am, as usual, in awe of those who figured all this out and then how to emulate it on a modern (ish) microcontroller.

    It is also interesting to note that the emulation hasn’t been updated, as far as I know, for anything more capable than an 8-bit AVR. I guessing it just isn’t necessary and avoiding the whole 3V3/5V logic thing has a certain appeal.

    The two commercially available solutions I’ve seen from RC2014 for the WhyEm sound card and the vRetro 28-pin direct replacements, stick with AVR and overclock as far as I can tell. RC2014 using ATMega48AP at 27MHz and vRetro using two ATTiny MCUs and what I think is a 30MHz oscillator.

    I would like to see if I can get a standard ATMega328P running the code and then I’d be really interested in seeing if it could be made to run on a Logic Green LGT8F328 “AVR clone” that apparently should be able to run at 32MHz.

    I believe I’ve convinced myself not to attempt to build the AY-3-8910 out of discrete logic…

    Kevin

    #arduino #atmega328 #avr #ay38910 #ay38912 #vretro
  27. AY-3-8912/8910 Hardware Emulation

    The 40-pin AY-3-8910 devices I’ve been playing with are no longer newly available, but they are pretty available if you are happy with a certain questionable quality (more on that here: Arduino and AY-3-8910).

    But the slightly shorter version (with fewer general purpose I/O pins), the 28 pin AY-3-8912, seems a lot harder to find, despite being widely used at the time. At least, to find on its own – i.e. not already soldered onto a circuit board. There is apparently also an even smaller AY-3-8913 in 24-pin format and a few other lesser used options too. But the 8912 is the variant most often found in the ZX Spectrum 128, Amstrad CPC, and many home computers from the time.

    A key modern option then is emulation and there is a very capable AVR emulation of the sound generator online including some on PCBs that directly fit within the 28-pin footprint of the original.

    One is Yevgeniy-Olexandrenko’s avr-ay-board for the AY-3-8910, AY-3-8912 and YM2149F devices, with a 8912-compatible DIP-28 PCB design using an ATMega48.

    Another is published on https://www.avray.ru/, but that appears to be the firmware only. There is a board that uses this firmware built for an ATMega8P here and another for a two-device (dual AY-3-8912 for 6 channel support is often called “Turbosound”) here.

    I don’t believe either of these approaches emulate the general purpose IO pins of the 8912/8910, which might be an issue using them “as is” in a retro system. I know the ZX spectrum 128 uses the IO for example.

    Some options for replacing original AY-3-8912 devices:

    But perhaps my favourite so far is the slightly random, “building an AY-3-8910 out of discrete logic” that I must have a proper look at, at some point: https://github.com/mengstr/Discrete-AY-3-8910

    This post looks at how AVR emulation of AY devices works in a little more detail and maybe take some starter steps to reproduce my own.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    AVR-AY-Board

    The avr-ay-board is a fully open source design and can use an ATMega48, 88, 168 or 328. The ATMega328P is very commonly used on an Arduino Uno or Nano.

    Full details, including a schematic, gerber files, BOM, and firmware are available here: https://github.com/Yevgeniy-Olexandrenko/avr-ay-board.

    It shares a lot of firmware heritage with the source available from https://www.avray.ru/. Up until Feb this year there was a link back to the original source, but that has since been removed and it appears to have mostly diverged some time in 2022. There is a list of differences here, but much of the discussion that follows would probably apply to both versions of the code.

    The only difference between the ATMega48, 88, 168 and 328 is the amount of memory. They are named for the amount of flash memory – 4K, 8K, 16K, 32K respectively. But otherwise they are functionally identical. Here is the key data from the datasheet:

    Note that the ATMega328PB is an enhanced version of the ATMega328P which itself is a slightly lower power (as I understand things) version of the original ATMega328. Application note “AT15007: Differences between ATmega328/P and ATmega328PB” lists the full set of enhancements, but it includes additional UART, SPI, I2C, and timers, although it is essentially backwards compatible with the 328/328P.

    All of this means that a standard Arduino Uno or Nano might be able to run the bespoke AY-3-8912 emulation firmware and with the appropriate pin connections might also be able to emulate an AY-3-8912 in another system. Naturally it will be physically larger than the original chip, but electrically it should all work fine.

    The Circuit

    The original ABR-AY-Board is relatively straight forward. The full schematic is available in the GitHub repository and shows the following:

    • A minimal ATTMega48P support circuit (capacitors, oscillator, power, LED).
    • Three low-pass filters to filter PWM to an audio output expecting a 1K load (apparently).
    • A mapping onto the AY-3-8912 28-pin pinout.

    There used to be a detailed “usage” section on the GitHub but that has since been removed, but from the published schematic (v1.5) the pins are accessed and mapped as follows.

    AY-3-8912SchematicATMega48PArduino EquivalentD0-D5D0-D5PC0-PC5A0-A5D6-D7D6-D7PD6-PD7D6-D7A8MISO_A8PB4D12BC1BC1PD2D2BC2SCKPB5D13BDIRBDIRPD3D3CLOCKCLOCKPD4D4RESETRESETPC6RESETTESTMOSI_PWM_BPB3D11IOA7-IOA0N/CCOUT_C / PWM_CPB2D10BOUT_B / MOSI_PWM_BPB3D11AOUT_A / PWM_APB1D9CFG0PB0D8CFG1PD5D5RXPD0D0TXPD1D1VCCVCCVCCVCCGNDGNDGNDGND

    There is a UART header (TX, RX, VCC, GND), ICSP header (MISO, MOSI, SCK, RESET, VCC, GND), and two configuration jumpers (CFG0, CFG1).

    One point that might cause issues mapping over to an Arduino Uno or Nano is that the avr-ay-board has a 27MHz oscillator, whereas the Arduino only runs at 16MHz. That will almost certainly need some looking at.

    The Clocks

    So about that 27MHz clock. The default Arduino has a 16MHz oscillator so could this run on an unmodified Arduino?

    Looking through the code, there seems to be one specific mention of the CPU frequency:

        ; --------------------------------------------------------------------------
    ; Init Timer0
    ; --------------------------------------------------------------------------

    ; Fast PWM, TOP = OCR0A
    ldi r16, (1 << WGM01) | (1 << WGM00)
    OutReg TCCR0A, r16
    ldi r16, (1 << WGM02) | (1 << CS00);
    OutReg TCCR0B, r16

    ; 219512 Hz internal update clock
    ;ldi r16, (27000000 / (1750000 / 8) - 1)
    ;out OCR0A, r16
    OutReg EEARL, YH ; set EEPROM address 2
    sbi EECR, b0
    InReg r18, EEDR ; load byte 2 from EEPROM to r18
    OutReg OCR0A, r18 ; set PWM speed from byte 2 of EEPROM (affect AY chip frequency)

    In the commented out code, there is reference to 27000000. But then that appears to be replaced with code that is reading the PWM frequency from EEPROM.

    At the start of the main file is the comment:

    ; ==============================================================================
    ; Configuration
    ; ==============================================================================

    ; EEPROM Config:
    ; byte 0 - Serial interface enable (1 - enabled)
    ; byte 1 - Parallel interface enable (1 - enabled)
    ; byte 2 - PWM speed depending on AY chip frequency and MCU clock frequency
    ; byte 3 - USART baud speed depending on MCU clock frequency

    In the build area there is the main hex firmware and then three configurations with the following contents:

    ; firmware/v1.0/compiled/config-1.75mhz.hex
    :0500000001017A3AFF46
    :00000001FF

    ; firmware/v1.0/compiled/config-1.78mhz.hex
    :050000000101783AFF48
    :00000001FF

    ; firmware/v1.0/compiled/config-2.00mhz.hex
    :0500000001016B3AFF55
    :00000001FF

    We can see these differing in the values after 0500000. The next two bytes (0101) map to serial and parallel interface being enabled. These define how the AY-3-8912 registers can be accessed, either using the original device’s parallel data bus or via a newer serial link. The serial link can be used to send register-value pairs to the device rather than use a real AY compatible parallel bus interface.

    Then there is a differing byte (7A, 78, or 6B respectively) which is pulled into the timer 0 frequency code and used to set OCR0A in the previous code.

    Finally that last byte of the configuration (3A) relating to USART baud, which I infer from older comments in the README file will be 57600, but this is as yet unverified.

    On studying the code, it quickly becomes apparent that the whole execution is optimised for specific MCU clock frequencies. This is particularly notable in the interrupt routines, for example, the following:

    ; ==============================================================================
    ; Parallel communication mode (BC1 on PD2/INT0, BDIR on PD3/INT1)
    ; ==============================================================================
    ISR_INT0: ; [4] enter interrupt
    sbic PinD, PD_BDIR ; [2/1] check BDIR bit, skip next if clear
    rjmp LATCH_REG_ADDR ; [0/2]

    ; [ READ MODE ] (BC1=1, BDIR=0)
    ; --------------------------------------------------------------------------
    ; 350ns max to set data bus, 8 cycles to set
    ; 8 * 37ns = 296ns for 27MHz O.K.
    ; 8 * 40ns = 320ns for 25MHz O.K.
    ; 8 * 42ns = 336ns for 24MHz O.K.
    ; 8 * 50ns = 400ns for 20MHz !!!!
    OutReg DDRC, BusOut1 ; [1] output -> low level on D0-D5
    OutReg DDRD, BusOut2 ; [1] output -> low level on D6-D7

    Here we can see that running at 20MHz (for example) violates the timing constraint to respond with the data on the bus. Running at 24MHz, 25MHz and 27MHz appears to be fine. There are a number of other places in the code where similar comments have been made.

    The conclusion seems pretty clear. A standard Arduino Uno or Nano running at 16MHz would not work. Something at 20MHz might do the job with some limits, but there is definitely a reason the board is using 27MHz.

    There is a key issue however. AVR 8-bit microcontrollers are typically only specified for up to 20MHz operation. I’ve certainly not found any ATMega48 through to ATMega328 that has a higher frequency specification. There are some newer 8-bit devices that might stretch to 24MHz.

    But I’m now wondering if the MCU is being overclocked on this board. It would appear, according to some superficial searching, that people have been overclocking AVRs for years…

    Timer Configuration and PWM Output

    The emulator is using PWM to produce audio from the AVR. The PWM channels/timers are allocated as follows:

    AVR PinTimer OutputCompare RegisterTimerSystem ClockD4 / PD4N/AOCR0A0Channel AD9 / PB1OC1AOCR1AL1Channel BD11 / PB3OC2AOCR2A2Channel CD10 / PB2OC1BOCR1BL1

    The first timer, Timer 0, I’ve already mentioned, is used to set the basic internal system “clock” for the emulation. In the real AY PSG the internal clock for tones is set to the external clock / 16 and for envelopes is external clock / 256. In the emulation this is all set in code and the CLOCK input is ignored.

    The 8-bit Timer 0 configuration is as follows:

    • TCCR0A/TCCR0B = WGM00 | WGM01 | WGM02 | CS00
    • OCR0A = value from EEPROM (as mentioned previously)

    This uses timer 0 in Fast PWM mode (WGM = 7) with TOP = OCR0A and no prescaler. There is a check in the main loop for Timer 0 overflow which is then used to determine if the sound generation should be processed. This effectively sets the CLOCK for the emulation. The AY CLOCK input is meant to be between 1MHz and 2MHz and EEPROM configurations are provided to emulate 1.75MH, 1.78MHz and 2.0MHz external clocks.

    In Fast PWM mode, from the ATMega328 datasheet, for Timer 0, the frequency is given by:

    • FreqPWM = FreqCLOCK / (N * 256)

    Where N is the prescaler factor, so in this case 1. But this appears to be stated for the case when TOP = 255. If the TOP is reduced, so when TOP = OC0A, then presumably that 256 should be (TOP + 1). Assuming this to be the case, then with a 27MHz clock and the previously mentioned values from the EEPROM, we have

    • 0x7A = 122 -> timer freq = 27 MHz / 123 = 219.5 kHz
    • 0x78 = 120 -> timer freq = 27 MHz / 121 = 223 kHz
    • 0x6B = 107 -> timer freq = 27 MHz / 108 = 250 kHz

    These give a basic operating frequency of between 3.5MHz and 4MHz which is twice as fast as the real PSG. I’m guessing that this is because the sound generation code (later) toggles the output value on each period, which therefore requires doubling the frequency to generate the high and low periods.

    Note that although this timer is configured in Fast PWM mode, it isn’t actually running PWM, it is just used as a timer. The timer also never “triggers” as such – it is polled for overflow within the main code loop.

    The 16-bit Timer 1 configuration:

    • TCCR1A/TCCR1B = WGM10 | WGM12 | COM1A1 | COM1B1 | CS10
    • PB1 and PB2 set to OUPUT for PWM out on OC1A and OC1B.

    This uses timer 1 in 8-bit Fast PWM mode (WGM = 5) with TOP = 0xFF. There is no pre-scaling and OC1A/OC1B cleared on compare match with OC1A/OC1B set at BOTTOM (non-inverting mode).

    The 8-bit Timer 2 configuration:

    • TCCR2A/TCCR2B = WGM20 | WGM21 | COM2A1 | CS20
    • PB3 set to OUTPUT for PWM out on OC2A.

    This uses timer 2 in Fast PWM module with TOP = 0xFF (WGM = 3). OC2 is clear on match and set at BOTTOM (non-inverting again).

    The PWM resolution for both Timer 1 and Timer 2 will be 8-bits (0 to 255) and the frequency for the output is given by the same formula used for Timer 0, giving a PWM frequency of:

    • FreqPWM = 27 MHz / (255+1) = 105.5kHz

    Bus Access

    There is a comprehensive bus access protocol defined in the AY-3-8910/12 datasheet with several possible modes involving the control signals BC1, BC2, BDIR, and A8 plus /A9 (in the case of the 8910). In particular, there is some redundancy in how the “LATCH” is indicated (see section 2.3 in the “AY-3-8910/8912 Programmable Sound Generator Data Manual” – more here: AY-3-8910 Experimenter PCB Design).

    For the emulator, BC1 is tied into the AVR INT0 (via PD2/D2) and BDIR is tied into AVR INT1 (via PD3/D3). If the serial interface is used then there is also an interrupt for the UART. BC2 is ignored so all responses are enacted upon as if BC2 is set to HIGH.:

    The basic operation, as far as I can see, is as follows:

    INT0 ISR - triggered on BC1 -> 1
    IF BDIR == 0 // BC1=1; BDIR=0: Read data
    Set data lines to OUTPUT
    Write BusOut to the data bus
    WAIT for BC1 -> 0
    Set data lines to INPUT

    ELSE BDIR == 1 // BC1; BDIR=1: Latch Address for read
    Read ADDR from data lines
    Grab value from pseudo register in RAM into BusOut

    INT1 ISR - triggered on BDIR -> 1
    IF BC1 == 0 // BC1=0; BDIR=1: Write data
    Read DATA from data lines
    Store value to pseudo register in RAM

    ELSE BC1 == 1 // BC1=1; BDIR=1: Latch Address for write
    Read ADDR from data lines

    There is a pseudo image of all AY registers stored in RAM which is used by the main loop for the sound processing. This RAM image is updated when the AY is written to and can be accessed when the AY is read.

    Note that there is no access control. If an interrupt comes in part way through an update to the sound generators they will stop process and then continue from that point unaware than any register updates have taken place. This does mean that if any registers are accessed twice, it is quite possible that they would have changed by the time of the second access.

    Similar logic happens within the UART interrupt handler, but instead address and data values are obtained over the serial port and interactions with RAM updated according to the bytes recieved.

    I’ve not looked further into the serial handling at this time other than to note that all updating is performed withing the UART ISR which is receive only.

    Main Sound Processing Loop

    The main logic free runs as follows:

    MAIN Loop:
    IF Timer 0 Overflow Flag is SET:
    Process envelope generator
    Process noise generator
    Process tone generator for channel A
    Process tone generator for channel B
    Process tone generator for channel C
    Process mixer control
    Process amplitude control for channel A
    Process amplitude control for channel B
    Process amplitude control for channel C
    Update PWM values in OCR1AL (ch A), OCR2A (ch B), OCR1BL (ch C)

    So the loop essentially pauses until timer 0 overflows at which point all sound generation activity undertakes a single scan and then the PWM sound generation registers are updated.

    Before I dive in, I should note that the register definitions are of the form AY_REGnn where nn is a decimal from 00 to 15. The datasheet describes Ro where o is an octal value from R0 to R7, then R10 to R17. I will be using the decimal versions here to match with the code.

    I’m not going to work through how the sound generation works in its entirety right now, but I will just include a note about the tone generation. Here is the code for channel A.

        ; Channel A
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    brpl CH_A_NO_CHANGE ; CntA >= 0
    lds CntAL, AY_REG00 ; update channel A tone period counter
    lds CntAH, AY_REG01
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    eor TNLevel, ZH ; TNLevel xor 1 (change logical level of channel A)
    CH_A_NO_CHANGE:

    All counters (CntAL and CntAH for channel A) are 16-bit values. AY_REG00 and AY_REG01 are the RAM copies of the two tone generator registers for channel A.

    We can see that the channel counter is decremented on each scan through the routine implementing the following pseudo code:

    counter--
    IF (counter == 0):
    Reset counter from AY_REG00 and AY_REG01
    Toggle logic level for channel A

    This means that the output square wave value for channel A will toggle between HIGH and LOW every time the counter reaches zero and that the counter will have to count to zero twice to make a complete cycle of the square wave.

    The datasheet states that the tone registers define a 12-bit tone generator period:

    The resulting sound frequency is given by the equation:

    As we have to count twice to get our square wave output, we can see why the timer 0 “clock” frequency has to be twice the desired running CLOCK of the AY-3-8912. An alternative implementation could have been to add an additional check as part of the countdown to change the waveform half-way through.

    This does mean that all sound generator registers are processed twice as quickly as expected so that might have to be taken into account when calculating other parameters.

    The main impact would be for the envelope generator, which according to the data sheet runs a frequency CLOCK / 256. There is a EG period counter defined by AY_REG11 and AY_REG12 (R13 and R14) for further subdivision, so a full sweep of the envelope will happen with a frequency of CLOCK / (256 * EGcounter).

    The datasheet also notes that “the envelope generator further counts down the envelope frequency by 16 producing a 16-state per cycle envelope pattern”. This means that the frequency required to process each individual step of these 16 states is: 16 * CLOCK / (256 * EGCounter) or CLOCK / (16 * EGCounter).

    The Envelope Code is essentially doing the following:

    Every LOOP scan:
    IF env reg updated:
    Reinitialise EG
    Reset EGCounter from AY_REG11, AY_REG12
    EGPeriod = 31
    Re-enable EG

    ELSE
    IF EG enabled:
    EGCounter --
    IF EGCounter == 0:
    EGPeriod --
    IF EGperiod == 0:
    EGPeriod = 31
    Disable EG

    Reset EGCounter from AY_REG11, AY_REG12
    Eval = Envelope value

    This implies that a full sweep of the envelope takes EGcounter * 32 scans of the main LOOP. As the LOOP is running at twice the frequency of the CLOCK. this gives an EG frequency of:

    • LOOP / (32 * EGcounter) = CLOCK * 2 / (32 * EGCounter) = CLOCK / (16 * EGCounter)

    Which matches the datasheet. So the doubling of the LOOP frequency is taken into account by having 32 steps for the EG base period rather than 16.

    A few other observations from the code:

    • The envelope period counters are stored in AY_REG11 and AY_REG12 (R13 and R14) and managed using CntEL and CntEH via r26 and r27.
    • The line ‘sbiw CntEL, 0x01’ is a 16-bit instruction and so acts on both r26 (CntEL) and r27 (CntEH) at the same time as a HIGH/LOW 16-bit pair.
    • The counter updating currently happens at the LOOP frequency which is 2 * CLOCK. Every time the counter hits 0 the step is advanced. It therefore takes 32 * counter passes through the LOOP to process the entire cycle of the envelope.
    • The envelope period is managed using TabP which is initilised to 0x1F (31 decimal).
    • Whenever the envelope counter reaches 0 the next envelope period is selected via TabP.
    • The resultant envelope value is stored in Eval which is used as the maximum value for the amplitude calculations later in the loop.

    Curiously there are two envelope volume tables provided as options. The first (“AY_TABLE”) distinctly shows the doubling of levels turning 16 values into 32 values. The second (“YM_TABLE”) appears to have some interpolation between values giving a higher resolution envelope.

    From wikipedia: “The input clock is first divided by 16 (or by 8 in the YM2149, because the envelope generator has twice as many steps, and thus needs twice as many clocks to complete a full cycle), and then by the 16-bit value.”

    So by starting with double the CLOCK frequency, we effectively get YM compatibility “for free”.

    Only a single envelope table is required – it defines a linear incrementing pattern that is then used and reused in various ways according to the EG control bits in AY_REG13 (R15) as per figure 7 in the datasheet. I’m not going to dig into that further at this point. I might come back to it in the future.

    I’m also not going to dig into the noise generation, mixer or amplitude control at this time.

    Closing Thoughts

    I really like I feel I know a lot more about how the AY-3-8910/8912 work now and certainly am, as usual, in awe of those who figured all this out and then how to emulate it on a modern (ish) microcontroller.

    It is also interesting to note that the emulation hasn’t been updated, as far as I know, for anything more capable than an 8-bit AVR. I guessing it just isn’t necessary and avoiding the whole 3V3/5V logic thing has a certain appeal.

    The two commercially available solutions I’ve seen from RC2014 for the WhyEm sound card and the vRetro 28-pin direct replacements, stick with AVR and overclock as far as I can tell. RC2014 using ATMega48AP at 27MHz and vRetro using two ATTiny MCUs and what I think is a 30MHz oscillator.

    I would like to see if I can get a standard ATMega328P running the code and then I’d be really interested in seeing if it could be made to run on a Logic Green LGT8F328 “AVR clone” that apparently should be able to run at 32MHz.

    I believe I’ve convinced myself not to attempt to build the AY-3-8910 out of discrete logic…

    Kevin

    #arduino #atmega328 #avr #ay38910 #ay38912 #vretro
  28. AY-3-8912/8910 Hardware Emulation

    The 40-pin AY-3-8910 devices I’ve been playing with are no longer newly available, but they are pretty available if you are happy with a certain questionable quality (more on that here: Arduino and AY-3-8910).

    But the slightly shorter version (with fewer general purpose I/O pins), the 28 pin AY-3-8912, seems a lot harder to find, despite being widely used at the time. At least, to find on its own – i.e. not already soldered onto a circuit board. There is apparently also an even smaller AY-3-8913 in 24-pin format and a few other lesser used options too. But the 8912 is the variant most often found in the ZX Spectrum 128, Amstrad CPC, and many home computers from the time.

    A key modern option then is emulation and there is a very capable AVR emulation of the sound generator online including some on PCBs that directly fit within the 28-pin footprint of the original.

    One is Yevgeniy-Olexandrenko’s avr-ay-board for the AY-3-8910, AY-3-8912 and YM2149F devices, with a 8912-compatible DIP-28 PCB design using an ATMega48.

    Another is published on https://www.avray.ru/, but that appears to be the firmware only. There is a board that uses this firmware built for an ATMega8P here and another for a two-device (dual AY-3-8912 for 6 channel support is often called “Turbosound”) here.

    I don’t believe either of these approaches emulate the general purpose IO pins of the 8912/8910, which might be an issue using them “as is” in a retro system. I know the ZX spectrum 128 uses the IO for example.

    Some options for replacing original AY-3-8912 devices:

    But perhaps my favourite so far is the slightly random, “building an AY-3-8910 out of discrete logic” that I must have a proper look at, at some point: https://github.com/mengstr/Discrete-AY-3-8910

    This post looks at how AVR emulation of AY devices works in a little more detail and maybe take some starter steps to reproduce my own.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    AVR-AY-Board

    The avr-ay-board is a fully open source design and can use an ATMega48, 88, 168 or 328. The ATMega328P is very commonly used on an Arduino Uno or Nano.

    Full details, including a schematic, gerber files, BOM, and firmware are available here: https://github.com/Yevgeniy-Olexandrenko/avr-ay-board.

    It shares a lot of firmware heritage with the source available from https://www.avray.ru/. Up until Feb this year there was a link back to the original source, but that has since been removed and it appears to have mostly diverged some time in 2022. There is a list of differences here, but much of the discussion that follows would probably apply to both versions of the code.

    The only difference between the ATMega48, 88, 168 and 328 is the amount of memory. They are named for the amount of flash memory – 4K, 8K, 16K, 32K respectively. But otherwise they are functionally identical. Here is the key data from the datasheet:

    Note that the ATMega328PB is an enhanced version of the ATMega328P which itself is a slightly lower power (as I understand things) version of the original ATMega328. Application note “AT15007: Differences between ATmega328/P and ATmega328PB” lists the full set of enhancements, but it includes additional UART, SPI, I2C, and timers, although it is essentially backwards compatible with the 328/328P.

    All of this means that a standard Arduino Uno or Nano might be able to run the bespoke AY-3-8912 emulation firmware and with the appropriate pin connections might also be able to emulate an AY-3-8912 in another system. Naturally it will be physically larger than the original chip, but electrically it should all work fine.

    The Circuit

    The original ABR-AY-Board is relatively straight forward. The full schematic is available in the GitHub repository and shows the following:

    • A minimal ATTMega48P support circuit (capacitors, oscillator, power, LED).
    • Three low-pass filters to filter PWM to an audio output expecting a 1K load (apparently).
    • A mapping onto the AY-3-8912 28-pin pinout.

    There used to be a detailed “usage” section on the GitHub but that has since been removed, but from the published schematic (v1.5) the pins are accessed and mapped as follows.

    AY-3-8912SchematicATMega48PArduino EquivalentD0-D5D0-D5PC0-PC5A0-A5D6-D7D6-D7PD6-PD7D6-D7A8MISO_A8PB4D12BC1BC1PD2D2BC2SCKPB5D13BDIRBDIRPD3D3CLOCKCLOCKPD4D4RESETRESETPC6RESETTESTMOSI_PWM_BPB3D11IOA7-IOA0N/CCOUT_C / PWM_CPB2D10BOUT_B / MOSI_PWM_BPB3D11AOUT_A / PWM_APB1D9CFG0PB0D8CFG1PD5D5RXPD0D0TXPD1D1VCCVCCVCCVCCGNDGNDGNDGND

    There is a UART header (TX, RX, VCC, GND), ICSP header (MISO, MOSI, SCK, RESET, VCC, GND), and two configuration jumpers (CFG0, CFG1).

    One point that might cause issues mapping over to an Arduino Uno or Nano is that the avr-ay-board has a 27MHz oscillator, whereas the Arduino only runs at 16MHz. That will almost certainly need some looking at.

    The Clocks

    So about that 27MHz clock. The default Arduino has a 16MHz oscillator so could this run on an unmodified Arduino?

    Looking through the code, there seems to be one specific mention of the CPU frequency:

        ; --------------------------------------------------------------------------
    ; Init Timer0
    ; --------------------------------------------------------------------------

    ; Fast PWM, TOP = OCR0A
    ldi r16, (1 << WGM01) | (1 << WGM00)
    OutReg TCCR0A, r16
    ldi r16, (1 << WGM02) | (1 << CS00);
    OutReg TCCR0B, r16

    ; 219512 Hz internal update clock
    ;ldi r16, (27000000 / (1750000 / 8) - 1)
    ;out OCR0A, r16
    OutReg EEARL, YH ; set EEPROM address 2
    sbi EECR, b0
    InReg r18, EEDR ; load byte 2 from EEPROM to r18
    OutReg OCR0A, r18 ; set PWM speed from byte 2 of EEPROM (affect AY chip frequency)

    In the commented out code, there is reference to 27000000. But then that appears to be replaced with code that is reading the PWM frequency from EEPROM.

    At the start of the main file is the comment:

    ; ==============================================================================
    ; Configuration
    ; ==============================================================================

    ; EEPROM Config:
    ; byte 0 - Serial interface enable (1 - enabled)
    ; byte 1 - Parallel interface enable (1 - enabled)
    ; byte 2 - PWM speed depending on AY chip frequency and MCU clock frequency
    ; byte 3 - USART baud speed depending on MCU clock frequency

    In the build area there is the main hex firmware and then three configurations with the following contents:

    ; firmware/v1.0/compiled/config-1.75mhz.hex
    :0500000001017A3AFF46
    :00000001FF

    ; firmware/v1.0/compiled/config-1.78mhz.hex
    :050000000101783AFF48
    :00000001FF

    ; firmware/v1.0/compiled/config-2.00mhz.hex
    :0500000001016B3AFF55
    :00000001FF

    We can see these differing in the values after 0500000. The next two bytes (0101) map to serial and parallel interface being enabled. These define how the AY-3-8912 registers can be accessed, either using the original device’s parallel data bus or via a newer serial link. The serial link can be used to send register-value pairs to the device rather than use a real AY compatible parallel bus interface.

    Then there is a differing byte (7A, 78, or 6B respectively) which is pulled into the timer 0 frequency code and used to set OCR0A in the previous code.

    Finally that last byte of the configuration (3A) relating to USART baud, which I infer from older comments in the README file will be 57600, but this is as yet unverified.

    On studying the code, it quickly becomes apparent that the whole execution is optimised for specific MCU clock frequencies. This is particularly notable in the interrupt routines, for example, the following:

    ; ==============================================================================
    ; Parallel communication mode (BC1 on PD2/INT0, BDIR on PD3/INT1)
    ; ==============================================================================
    ISR_INT0: ; [4] enter interrupt
    sbic PinD, PD_BDIR ; [2/1] check BDIR bit, skip next if clear
    rjmp LATCH_REG_ADDR ; [0/2]

    ; [ READ MODE ] (BC1=1, BDIR=0)
    ; --------------------------------------------------------------------------
    ; 350ns max to set data bus, 8 cycles to set
    ; 8 * 37ns = 296ns for 27MHz O.K.
    ; 8 * 40ns = 320ns for 25MHz O.K.
    ; 8 * 42ns = 336ns for 24MHz O.K.
    ; 8 * 50ns = 400ns for 20MHz !!!!
    OutReg DDRC, BusOut1 ; [1] output -> low level on D0-D5
    OutReg DDRD, BusOut2 ; [1] output -> low level on D6-D7

    Here we can see that running at 20MHz (for example) violates the timing constraint to respond with the data on the bus. Running at 24MHz, 25MHz and 27MHz appears to be fine. There are a number of other places in the code where similar comments have been made.

    The conclusion seems pretty clear. A standard Arduino Uno or Nano running at 16MHz would not work. Something at 20MHz might do the job with some limits, but there is definitely a reason the board is using 27MHz.

    There is a key issue however. AVR 8-bit microcontrollers are typically only specified for up to 20MHz operation. I’ve certainly not found any ATMega48 through to ATMega328 that has a higher frequency specification. There are some newer 8-bit devices that might stretch to 24MHz.

    But I’m now wondering if the MCU is being overclocked on this board. It would appear, according to some superficial searching, that people have been overclocking AVRs for years…

    Timer Configuration and PWM Output

    The emulator is using PWM to produce audio from the AVR. The PWM channels/timers are allocated as follows:

    AVR PinTimer OutputCompare RegisterTimerSystem ClockD4 / PD4N/AOCR0A0Channel AD9 / PB1OC1AOCR1AL1Channel BD11 / PB3OC2AOCR2A2Channel CD10 / PB2OC1BOCR1BL1

    The first timer, Timer 0, I’ve already mentioned, is used to set the basic internal system “clock” for the emulation. In the real AY PSG the internal clock for tones is set to the external clock / 16 and for envelopes is external clock / 256. In the emulation this is all set in code and the CLOCK input is ignored.

    The 8-bit Timer 0 configuration is as follows:

    • TCCR0A/TCCR0B = WGM00 | WGM01 | WGM02 | CS00
    • OCR0A = value from EEPROM (as mentioned previously)

    This uses timer 0 in Fast PWM mode (WGM = 7) with TOP = OCR0A and no prescaler. There is a check in the main loop for Timer 0 overflow which is then used to determine if the sound generation should be processed. This effectively sets the CLOCK for the emulation. The AY CLOCK input is meant to be between 1MHz and 2MHz and EEPROM configurations are provided to emulate 1.75MH, 1.78MHz and 2.0MHz external clocks.

    In Fast PWM mode, from the ATMega328 datasheet, for Timer 0, the frequency is given by:

    • FreqPWM = FreqCLOCK / (N * 256)

    Where N is the prescaler factor, so in this case 1. But this appears to be stated for the case when TOP = 255. If the TOP is reduced, so when TOP = OC0A, then presumably that 256 should be (TOP + 1). Assuming this to be the case, then with a 27MHz clock and the previously mentioned values from the EEPROM, we have

    • 0x7A = 122 -> timer freq = 27 MHz / 123 = 219.5 kHz
    • 0x78 = 120 -> timer freq = 27 MHz / 121 = 223 kHz
    • 0x6B = 107 -> timer freq = 27 MHz / 108 = 250 kHz

    These give a basic operating frequency of between 3.5MHz and 4MHz which is twice as fast as the real PSG. I’m guessing that this is because the sound generation code (later) toggles the output value on each period, which therefore requires doubling the frequency to generate the high and low periods.

    Note that although this timer is configured in Fast PWM mode, it isn’t actually running PWM, it is just used as a timer. The timer also never “triggers” as such – it is polled for overflow within the main code loop.

    The 16-bit Timer 1 configuration:

    • TCCR1A/TCCR1B = WGM10 | WGM12 | COM1A1 | COM1B1 | CS10
    • PB1 and PB2 set to OUPUT for PWM out on OC1A and OC1B.

    This uses timer 1 in 8-bit Fast PWM mode (WGM = 5) with TOP = 0xFF. There is no pre-scaling and OC1A/OC1B cleared on compare match with OC1A/OC1B set at BOTTOM (non-inverting mode).

    The 8-bit Timer 2 configuration:

    • TCCR2A/TCCR2B = WGM20 | WGM21 | COM2A1 | CS20
    • PB3 set to OUTPUT for PWM out on OC2A.

    This uses timer 2 in Fast PWM module with TOP = 0xFF (WGM = 3). OC2 is clear on match and set at BOTTOM (non-inverting again).

    The PWM resolution for both Timer 1 and Timer 2 will be 8-bits (0 to 255) and the frequency for the output is given by the same formula used for Timer 0, giving a PWM frequency of:

    • FreqPWM = 27 MHz / (255+1) = 105.5kHz

    Bus Access

    There is a comprehensive bus access protocol defined in the AY-3-8910/12 datasheet with several possible modes involving the control signals BC1, BC2, BDIR, and A8 plus /A9 (in the case of the 8910). In particular, there is some redundancy in how the “LATCH” is indicated (see section 2.3 in the “AY-3-8910/8912 Programmable Sound Generator Data Manual” – more here: AY-3-8910 Experimenter PCB Design).

    For the emulator, BC1 is tied into the AVR INT0 (via PD2/D2) and BDIR is tied into AVR INT1 (via PD3/D3). If the serial interface is used then there is also an interrupt for the UART. BC2 is ignored so all responses are enacted upon as if BC2 is set to HIGH.:

    The basic operation, as far as I can see, is as follows:

    INT0 ISR - triggered on BC1 -> 1
    IF BDIR == 0 // BC1=1; BDIR=0: Read data
    Set data lines to OUTPUT
    Write BusOut to the data bus
    WAIT for BC1 -> 0
    Set data lines to INPUT

    ELSE BDIR == 1 // BC1; BDIR=1: Latch Address for read
    Read ADDR from data lines
    Grab value from pseudo register in RAM into BusOut

    INT1 ISR - triggered on BDIR -> 1
    IF BC1 == 0 // BC1=0; BDIR=1: Write data
    Read DATA from data lines
    Store value to pseudo register in RAM

    ELSE BC1 == 1 // BC1=1; BDIR=1: Latch Address for write
    Read ADDR from data lines

    There is a pseudo image of all AY registers stored in RAM which is used by the main loop for the sound processing. This RAM image is updated when the AY is written to and can be accessed when the AY is read.

    Note that there is no access control. If an interrupt comes in part way through an update to the sound generators they will stop process and then continue from that point unaware than any register updates have taken place. This does mean that if any registers are accessed twice, it is quite possible that they would have changed by the time of the second access.

    Similar logic happens within the UART interrupt handler, but instead address and data values are obtained over the serial port and interactions with RAM updated according to the bytes recieved.

    I’ve not looked further into the serial handling at this time other than to note that all updating is performed withing the UART ISR which is receive only.

    Main Sound Processing Loop

    The main logic free runs as follows:

    MAIN Loop:
    IF Timer 0 Overflow Flag is SET:
    Process envelope generator
    Process noise generator
    Process tone generator for channel A
    Process tone generator for channel B
    Process tone generator for channel C
    Process mixer control
    Process amplitude control for channel A
    Process amplitude control for channel B
    Process amplitude control for channel C
    Update PWM values in OCR1AL (ch A), OCR2A (ch B), OCR1BL (ch C)

    So the loop essentially pauses until timer 0 overflows at which point all sound generation activity undertakes a single scan and then the PWM sound generation registers are updated.

    Before I dive in, I should note that the register definitions are of the form AY_REGnn where nn is a decimal from 00 to 15. The datasheet describes Ro where o is an octal value from R0 to R7, then R10 to R17. I will be using the decimal versions here to match with the code.

    I’m not going to work through how the sound generation works in its entirety right now, but I will just include a note about the tone generation. Here is the code for channel A.

        ; Channel A
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    brpl CH_A_NO_CHANGE ; CntA >= 0
    lds CntAL, AY_REG00 ; update channel A tone period counter
    lds CntAH, AY_REG01
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    eor TNLevel, ZH ; TNLevel xor 1 (change logical level of channel A)
    CH_A_NO_CHANGE:

    All counters (CntAL and CntAH for channel A) are 16-bit values. AY_REG00 and AY_REG01 are the RAM copies of the two tone generator registers for channel A.

    We can see that the channel counter is decremented on each scan through the routine implementing the following pseudo code:

    counter--
    IF (counter == 0):
    Reset counter from AY_REG00 and AY_REG01
    Toggle logic level for channel A

    This means that the output square wave value for channel A will toggle between HIGH and LOW every time the counter reaches zero and that the counter will have to count to zero twice to make a complete cycle of the square wave.

    The datasheet states that the tone registers define a 12-bit tone generator period:

    The resulting sound frequency is given by the equation:

    As we have to count twice to get our square wave output, we can see why the timer 0 “clock” frequency has to be twice the desired running CLOCK of the AY-3-8912. An alternative implementation could have been to add an additional check as part of the countdown to change the waveform half-way through.

    This does mean that all sound generator registers are processed twice as quickly as expected so that might have to be taken into account when calculating other parameters.

    The main impact would be for the envelope generator, which according to the data sheet runs a frequency CLOCK / 256. There is a EG period counter defined by AY_REG11 and AY_REG12 (R13 and R14) for further subdivision, so a full sweep of the envelope will happen with a frequency of CLOCK / (256 * EGcounter).

    The datasheet also notes that “the envelope generator further counts down the envelope frequency by 16 producing a 16-state per cycle envelope pattern”. This means that the frequency required to process each individual step of these 16 states is: 16 * CLOCK / (256 * EGCounter) or CLOCK / (16 * EGCounter).

    The Envelope Code is essentially doing the following:

    Every LOOP scan:
    IF env reg updated:
    Reinitialise EG
    Reset EGCounter from AY_REG11, AY_REG12
    EGPeriod = 31
    Re-enable EG

    ELSE
    IF EG enabled:
    EGCounter --
    IF EGCounter == 0:
    EGPeriod --
    IF EGperiod == 0:
    EGPeriod = 31
    Disable EG

    Reset EGCounter from AY_REG11, AY_REG12
    Eval = Envelope value

    This implies that a full sweep of the envelope takes EGcounter * 32 scans of the main LOOP. As the LOOP is running at twice the frequency of the CLOCK. this gives an EG frequency of:

    • LOOP / (32 * EGcounter) = CLOCK * 2 / (32 * EGCounter) = CLOCK / (16 * EGCounter)

    Which matches the datasheet. So the doubling of the LOOP frequency is taken into account by having 32 steps for the EG base period rather than 16.

    A few other observations from the code:

    • The envelope period counters are stored in AY_REG11 and AY_REG12 (R13 and R14) and managed using CntEL and CntEH via r26 and r27.
    • The line ‘sbiw CntEL, 0x01’ is a 16-bit instruction and so acts on both r26 (CntEL) and r27 (CntEH) at the same time as a HIGH/LOW 16-bit pair.
    • The counter updating currently happens at the LOOP frequency which is 2 * CLOCK. Every time the counter hits 0 the step is advanced. It therefore takes 32 * counter passes through the LOOP to process the entire cycle of the envelope.
    • The envelope period is managed using TabP which is initilised to 0x1F (31 decimal).
    • Whenever the envelope counter reaches 0 the next envelope period is selected via TabP.
    • The resultant envelope value is stored in Eval which is used as the maximum value for the amplitude calculations later in the loop.

    Curiously there are two envelope volume tables provided as options. The first (“AY_TABLE”) distinctly shows the doubling of levels turning 16 values into 32 values. The second (“YM_TABLE”) appears to have some interpolation between values giving a higher resolution envelope.

    From wikipedia: “The input clock is first divided by 16 (or by 8 in the YM2149, because the envelope generator has twice as many steps, and thus needs twice as many clocks to complete a full cycle), and then by the 16-bit value.”

    So by starting with double the CLOCK frequency, we effectively get YM compatibility “for free”.

    Only a single envelope table is required – it defines a linear incrementing pattern that is then used and reused in various ways according to the EG control bits in AY_REG13 (R15) as per figure 7 in the datasheet. I’m not going to dig into that further at this point. I might come back to it in the future.

    I’m also not going to dig into the noise generation, mixer or amplitude control at this time.

    Closing Thoughts

    I really like I feel I know a lot more about how the AY-3-8910/8912 work now and certainly am, as usual, in awe of those who figured all this out and then how to emulate it on a modern (ish) microcontroller.

    It is also interesting to note that the emulation hasn’t been updated, as far as I know, for anything more capable than an 8-bit AVR. I guessing it just isn’t necessary and avoiding the whole 3V3/5V logic thing has a certain appeal.

    The two commercially available solutions I’ve seen from RC2014 for the WhyEm sound card and the vRetro 28-pin direct replacements, stick with AVR and overclock as far as I can tell. RC2014 using ATMega48AP at 27MHz and vRetro using two ATTiny MCUs and what I think is a 30MHz oscillator.

    I would like to see if I can get a standard ATMega328P running the code and then I’d be really interested in seeing if it could be made to run on a Logic Green LGT8F328 “AVR clone” that apparently should be able to run at 32MHz.

    I believe I’ve convinced myself not to attempt to build the AY-3-8910 out of discrete logic…

    Kevin

    #arduino #atmega328 #avr #ay38910 #ay38912 #vretro
  29. AY-3-8912/8910 Hardware Emulation

    The 40-pin AY-3-8910 devices I’ve been playing with are no longer newly available, but they are pretty available if you are happy with a certain questionable quality (more on that here: Arduino and AY-3-8910).

    But the slightly shorter version (with fewer general purpose I/O pins), the 28 pin AY-3-8912, seems a lot harder to find, despite being widely used at the time. At least, to find on its own – i.e. not already soldered onto a circuit board. There is apparently also an even smaller AY-3-8913 in 24-pin format and a few other lesser used options too. But the 8912 is the variant most often found in the ZX Spectrum 128, Amstrad CPC, and many home computers from the time.

    A key modern option then is emulation and there is a very capable AVR emulation of the sound generator online including some on PCBs that directly fit within the 28-pin footprint of the original.

    One is Yevgeniy-Olexandrenko’s avr-ay-board for the AY-3-8910, AY-3-8912 and YM2149F devices, with a 8912-compatible DIP-28 PCB design using an ATMega48.

    Another is published on https://www.avray.ru/, but that appears to be the firmware only. There is a board that uses this firmware built for an ATMega8P here and another for a two-device (dual AY-3-8912 for 6 channel support is often called “Turbosound”) here.

    I don’t believe either of these approaches emulate the general purpose IO pins of the 8912/8910, which might be an issue using them “as is” in a retro system. I know the ZX spectrum 128 uses the IO for example.

    Some options for replacing original AY-3-8912 devices:

    But perhaps my favourite so far is the slightly random, “building an AY-3-8910 out of discrete logic” that I must have a proper look at, at some point: https://github.com/mengstr/Discrete-AY-3-8910

    This post looks at how AVR emulation of AY devices works in a little more detail and maybe take some starter steps to reproduce my own.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    AVR-AY-Board

    The avr-ay-board is a fully open source design and can use an ATMega48, 88, 168 or 328. The ATMega328P is very commonly used on an Arduino Uno or Nano.

    Full details, including a schematic, gerber files, BOM, and firmware are available here: https://github.com/Yevgeniy-Olexandrenko/avr-ay-board.

    It shares a lot of firmware heritage with the source available from https://www.avray.ru/. Up until Feb this year there was a link back to the original source, but that has since been removed and it appears to have mostly diverged some time in 2022. There is a list of differences here, but much of the discussion that follows would probably apply to both versions of the code.

    The only difference between the ATMega48, 88, 168 and 328 is the amount of memory. They are named for the amount of flash memory – 4K, 8K, 16K, 32K respectively. But otherwise they are functionally identical. Here is the key data from the datasheet:

    Note that the ATMega328PB is an enhanced version of the ATMega328P which itself is a slightly lower power (as I understand things) version of the original ATMega328. Application note “AT15007: Differences between ATmega328/P and ATmega328PB” lists the full set of enhancements, but it includes additional UART, SPI, I2C, and timers, although it is essentially backwards compatible with the 328/328P.

    All of this means that a standard Arduino Uno or Nano might be able to run the bespoke AY-3-8912 emulation firmware and with the appropriate pin connections might also be able to emulate an AY-3-8912 in another system. Naturally it will be physically larger than the original chip, but electrically it should all work fine.

    The Circuit

    The original ABR-AY-Board is relatively straight forward. The full schematic is available in the GitHub repository and shows the following:

    • A minimal ATTMega48P support circuit (capacitors, oscillator, power, LED).
    • Three low-pass filters to filter PWM to an audio output expecting a 1K load (apparently).
    • A mapping onto the AY-3-8912 28-pin pinout.

    There used to be a detailed “usage” section on the GitHub but that has since been removed, but from the published schematic (v1.5) the pins are accessed and mapped as follows.

    AY-3-8912SchematicATMega48PArduino EquivalentD0-D5D0-D5PC0-PC5A0-A5D6-D7D6-D7PD6-PD7D6-D7A8MISO_A8PB4D12BC1BC1PD2D2BC2SCKPB5D13BDIRBDIRPD3D3CLOCKCLOCKPD4D4RESETRESETPC6RESETTESTMOSI_PWM_BPB3D11IOA7-IOA0N/CCOUT_C / PWM_CPB2D10BOUT_B / MOSI_PWM_BPB3D11AOUT_A / PWM_APB1D9CFG0PB0D8CFG1PD5D5RXPD0D0TXPD1D1VCCVCCVCCVCCGNDGNDGNDGND

    There is a UART header (TX, RX, VCC, GND), ICSP header (MISO, MOSI, SCK, RESET, VCC, GND), and two configuration jumpers (CFG0, CFG1).

    One point that might cause issues mapping over to an Arduino Uno or Nano is that the avr-ay-board has a 27MHz oscillator, whereas the Arduino only runs at 16MHz. That will almost certainly need some looking at.

    The Clocks

    So about that 27MHz clock. The default Arduino has a 16MHz oscillator so could this run on an unmodified Arduino?

    Looking through the code, there seems to be one specific mention of the CPU frequency:

        ; --------------------------------------------------------------------------
    ; Init Timer0
    ; --------------------------------------------------------------------------

    ; Fast PWM, TOP = OCR0A
    ldi r16, (1 << WGM01) | (1 << WGM00)
    OutReg TCCR0A, r16
    ldi r16, (1 << WGM02) | (1 << CS00);
    OutReg TCCR0B, r16

    ; 219512 Hz internal update clock
    ;ldi r16, (27000000 / (1750000 / 8) - 1)
    ;out OCR0A, r16
    OutReg EEARL, YH ; set EEPROM address 2
    sbi EECR, b0
    InReg r18, EEDR ; load byte 2 from EEPROM to r18
    OutReg OCR0A, r18 ; set PWM speed from byte 2 of EEPROM (affect AY chip frequency)

    In the commented out code, there is reference to 27000000. But then that appears to be replaced with code that is reading the PWM frequency from EEPROM.

    At the start of the main file is the comment:

    ; ==============================================================================
    ; Configuration
    ; ==============================================================================

    ; EEPROM Config:
    ; byte 0 - Serial interface enable (1 - enabled)
    ; byte 1 - Parallel interface enable (1 - enabled)
    ; byte 2 - PWM speed depending on AY chip frequency and MCU clock frequency
    ; byte 3 - USART baud speed depending on MCU clock frequency

    In the build area there is the main hex firmware and then three configurations with the following contents:

    ; firmware/v1.0/compiled/config-1.75mhz.hex
    :0500000001017A3AFF46
    :00000001FF

    ; firmware/v1.0/compiled/config-1.78mhz.hex
    :050000000101783AFF48
    :00000001FF

    ; firmware/v1.0/compiled/config-2.00mhz.hex
    :0500000001016B3AFF55
    :00000001FF

    We can see these differing in the values after 0500000. The next two bytes (0101) map to serial and parallel interface being enabled. These define how the AY-3-8912 registers can be accessed, either using the original device’s parallel data bus or via a newer serial link. The serial link can be used to send register-value pairs to the device rather than use a real AY compatible parallel bus interface.

    Then there is a differing byte (7A, 78, or 6B respectively) which is pulled into the timer 0 frequency code and used to set OCR0A in the previous code.

    Finally that last byte of the configuration (3A) relating to USART baud, which I infer from older comments in the README file will be 57600, but this is as yet unverified.

    On studying the code, it quickly becomes apparent that the whole execution is optimised for specific MCU clock frequencies. This is particularly notable in the interrupt routines, for example, the following:

    ; ==============================================================================
    ; Parallel communication mode (BC1 on PD2/INT0, BDIR on PD3/INT1)
    ; ==============================================================================
    ISR_INT0: ; [4] enter interrupt
    sbic PinD, PD_BDIR ; [2/1] check BDIR bit, skip next if clear
    rjmp LATCH_REG_ADDR ; [0/2]

    ; [ READ MODE ] (BC1=1, BDIR=0)
    ; --------------------------------------------------------------------------
    ; 350ns max to set data bus, 8 cycles to set
    ; 8 * 37ns = 296ns for 27MHz O.K.
    ; 8 * 40ns = 320ns for 25MHz O.K.
    ; 8 * 42ns = 336ns for 24MHz O.K.
    ; 8 * 50ns = 400ns for 20MHz !!!!
    OutReg DDRC, BusOut1 ; [1] output -> low level on D0-D5
    OutReg DDRD, BusOut2 ; [1] output -> low level on D6-D7

    Here we can see that running at 20MHz (for example) violates the timing constraint to respond with the data on the bus. Running at 24MHz, 25MHz and 27MHz appears to be fine. There are a number of other places in the code where similar comments have been made.

    The conclusion seems pretty clear. A standard Arduino Uno or Nano running at 16MHz would not work. Something at 20MHz might do the job with some limits, but there is definitely a reason the board is using 27MHz.

    There is a key issue however. AVR 8-bit microcontrollers are typically only specified for up to 20MHz operation. I’ve certainly not found any ATMega48 through to ATMega328 that has a higher frequency specification. There are some newer 8-bit devices that might stretch to 24MHz.

    But I’m now wondering if the MCU is being overclocked on this board. It would appear, according to some superficial searching, that people have been overclocking AVRs for years…

    Timer Configuration and PWM Output

    The emulator is using PWM to produce audio from the AVR. The PWM channels/timers are allocated as follows:

    AVR PinTimer OutputCompare RegisterTimerSystem ClockD4 / PD4N/AOCR0A0Channel AD9 / PB1OC1AOCR1AL1Channel BD11 / PB3OC2AOCR2A2Channel CD10 / PB2OC1BOCR1BL1

    The first timer, Timer 0, I’ve already mentioned, is used to set the basic internal system “clock” for the emulation. In the real AY PSG the internal clock for tones is set to the external clock / 16 and for envelopes is external clock / 256. In the emulation this is all set in code and the CLOCK input is ignored.

    The 8-bit Timer 0 configuration is as follows:

    • TCCR0A/TCCR0B = WGM00 | WGM01 | WGM02 | CS00
    • OCR0A = value from EEPROM (as mentioned previously)

    This uses timer 0 in Fast PWM mode (WGM = 7) with TOP = OCR0A and no prescaler. There is a check in the main loop for Timer 0 overflow which is then used to determine if the sound generation should be processed. This effectively sets the CLOCK for the emulation. The AY CLOCK input is meant to be between 1MHz and 2MHz and EEPROM configurations are provided to emulate 1.75MH, 1.78MHz and 2.0MHz external clocks.

    In Fast PWM mode, from the ATMega328 datasheet, for Timer 0, the frequency is given by:

    • FreqPWM = FreqCLOCK / (N * 256)

    Where N is the prescaler factor, so in this case 1. But this appears to be stated for the case when TOP = 255. If the TOP is reduced, so when TOP = OC0A, then presumably that 256 should be (TOP + 1). Assuming this to be the case, then with a 27MHz clock and the previously mentioned values from the EEPROM, we have

    • 0x7A = 122 -> timer freq = 27 MHz / 123 = 219.5 kHz
    • 0x78 = 120 -> timer freq = 27 MHz / 121 = 223 kHz
    • 0x6B = 107 -> timer freq = 27 MHz / 108 = 250 kHz

    These give a basic operating frequency of between 3.5MHz and 4MHz which is twice as fast as the real PSG. I’m guessing that this is because the sound generation code (later) toggles the output value on each period, which therefore requires doubling the frequency to generate the high and low periods.

    Note that although this timer is configured in Fast PWM mode, it isn’t actually running PWM, it is just used as a timer. The timer also never “triggers” as such – it is polled for overflow within the main code loop.

    The 16-bit Timer 1 configuration:

    • TCCR1A/TCCR1B = WGM10 | WGM12 | COM1A1 | COM1B1 | CS10
    • PB1 and PB2 set to OUPUT for PWM out on OC1A and OC1B.

    This uses timer 1 in 8-bit Fast PWM mode (WGM = 5) with TOP = 0xFF. There is no pre-scaling and OC1A/OC1B cleared on compare match with OC1A/OC1B set at BOTTOM (non-inverting mode).

    The 8-bit Timer 2 configuration:

    • TCCR2A/TCCR2B = WGM20 | WGM21 | COM2A1 | CS20
    • PB3 set to OUTPUT for PWM out on OC2A.

    This uses timer 2 in Fast PWM module with TOP = 0xFF (WGM = 3). OC2 is clear on match and set at BOTTOM (non-inverting again).

    The PWM resolution for both Timer 1 and Timer 2 will be 8-bits (0 to 255) and the frequency for the output is given by the same formula used for Timer 0, giving a PWM frequency of:

    • FreqPWM = 27 MHz / (255+1) = 105.5kHz

    Bus Access

    There is a comprehensive bus access protocol defined in the AY-3-8910/12 datasheet with several possible modes involving the control signals BC1, BC2, BDIR, and A8 plus /A9 (in the case of the 8910). In particular, there is some redundancy in how the “LATCH” is indicated (see section 2.3 in the “AY-3-8910/8912 Programmable Sound Generator Data Manual” – more here: AY-3-8910 Experimenter PCB Design).

    For the emulator, BC1 is tied into the AVR INT0 (via PD2/D2) and BDIR is tied into AVR INT1 (via PD3/D3). If the serial interface is used then there is also an interrupt for the UART. BC2 is ignored so all responses are enacted upon as if BC2 is set to HIGH.:

    The basic operation, as far as I can see, is as follows:

    INT0 ISR - triggered on BC1 -> 1
    IF BDIR == 0 // BC1=1; BDIR=0: Read data
    Set data lines to OUTPUT
    Write BusOut to the data bus
    WAIT for BC1 -> 0
    Set data lines to INPUT

    ELSE BDIR == 1 // BC1; BDIR=1: Latch Address for read
    Read ADDR from data lines
    Grab value from pseudo register in RAM into BusOut

    INT1 ISR - triggered on BDIR -> 1
    IF BC1 == 0 // BC1=0; BDIR=1: Write data
    Read DATA from data lines
    Store value to pseudo register in RAM

    ELSE BC1 == 1 // BC1=1; BDIR=1: Latch Address for write
    Read ADDR from data lines

    There is a pseudo image of all AY registers stored in RAM which is used by the main loop for the sound processing. This RAM image is updated when the AY is written to and can be accessed when the AY is read.

    Note that there is no access control. If an interrupt comes in part way through an update to the sound generators they will stop process and then continue from that point unaware than any register updates have taken place. This does mean that if any registers are accessed twice, it is quite possible that they would have changed by the time of the second access.

    Similar logic happens within the UART interrupt handler, but instead address and data values are obtained over the serial port and interactions with RAM updated according to the bytes recieved.

    I’ve not looked further into the serial handling at this time other than to note that all updating is performed withing the UART ISR which is receive only.

    Main Sound Processing Loop

    The main logic free runs as follows:

    MAIN Loop:
    IF Timer 0 Overflow Flag is SET:
    Process envelope generator
    Process noise generator
    Process tone generator for channel A
    Process tone generator for channel B
    Process tone generator for channel C
    Process mixer control
    Process amplitude control for channel A
    Process amplitude control for channel B
    Process amplitude control for channel C
    Update PWM values in OCR1AL (ch A), OCR2A (ch B), OCR1BL (ch C)

    So the loop essentially pauses until timer 0 overflows at which point all sound generation activity undertakes a single scan and then the PWM sound generation registers are updated.

    Before I dive in, I should note that the register definitions are of the form AY_REGnn where nn is a decimal from 00 to 15. The datasheet describes Ro where o is an octal value from R0 to R7, then R10 to R17. I will be using the decimal versions here to match with the code.

    I’m not going to work through how the sound generation works in its entirety right now, but I will just include a note about the tone generation. Here is the code for channel A.

        ; Channel A
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    brpl CH_A_NO_CHANGE ; CntA >= 0
    lds CntAL, AY_REG00 ; update channel A tone period counter
    lds CntAH, AY_REG01
    subi CntAL, 0x01 ; CntA - 1
    sbci CntAH, 0x00
    eor TNLevel, ZH ; TNLevel xor 1 (change logical level of channel A)
    CH_A_NO_CHANGE:

    All counters (CntAL and CntAH for channel A) are 16-bit values. AY_REG00 and AY_REG01 are the RAM copies of the two tone generator registers for channel A.

    We can see that the channel counter is decremented on each scan through the routine implementing the following pseudo code:

    counter--
    IF (counter == 0):
    Reset counter from AY_REG00 and AY_REG01
    Toggle logic level for channel A

    This means that the output square wave value for channel A will toggle between HIGH and LOW every time the counter reaches zero and that the counter will have to count to zero twice to make a complete cycle of the square wave.

    The datasheet states that the tone registers define a 12-bit tone generator period:

    The resulting sound frequency is given by the equation:

    As we have to count twice to get our square wave output, we can see why the timer 0 “clock” frequency has to be twice the desired running CLOCK of the AY-3-8912. An alternative implementation could have been to add an additional check as part of the countdown to change the waveform half-way through.

    This does mean that all sound generator registers are processed twice as quickly as expected so that might have to be taken into account when calculating other parameters.

    The main impact would be for the envelope generator, which according to the data sheet runs a frequency CLOCK / 256. There is a EG period counter defined by AY_REG11 and AY_REG12 (R13 and R14) for further subdivision, so a full sweep of the envelope will happen with a frequency of CLOCK / (256 * EGcounter).

    The datasheet also notes that “the envelope generator further counts down the envelope frequency by 16 producing a 16-state per cycle envelope pattern”. This means that the frequency required to process each individual step of these 16 states is: 16 * CLOCK / (256 * EGCounter) or CLOCK / (16 * EGCounter).

    The Envelope Code is essentially doing the following:

    Every LOOP scan:
    IF env reg updated:
    Reinitialise EG
    Reset EGCounter from AY_REG11, AY_REG12
    EGPeriod = 31
    Re-enable EG

    ELSE
    IF EG enabled:
    EGCounter --
    IF EGCounter == 0:
    EGPeriod --
    IF EGperiod == 0:
    EGPeriod = 31
    Disable EG

    Reset EGCounter from AY_REG11, AY_REG12
    Eval = Envelope value

    This implies that a full sweep of the envelope takes EGcounter * 32 scans of the main LOOP. As the LOOP is running at twice the frequency of the CLOCK. this gives an EG frequency of:

    • LOOP / (32 * EGcounter) = CLOCK * 2 / (32 * EGCounter) = CLOCK / (16 * EGCounter)

    Which matches the datasheet. So the doubling of the LOOP frequency is taken into account by having 32 steps for the EG base period rather than 16.

    A few other observations from the code:

    • The envelope period counters are stored in AY_REG11 and AY_REG12 (R13 and R14) and managed using CntEL and CntEH via r26 and r27.
    • The line ‘sbiw CntEL, 0x01’ is a 16-bit instruction and so acts on both r26 (CntEL) and r27 (CntEH) at the same time as a HIGH/LOW 16-bit pair.
    • The counter updating currently happens at the LOOP frequency which is 2 * CLOCK. Every time the counter hits 0 the step is advanced. It therefore takes 32 * counter passes through the LOOP to process the entire cycle of the envelope.
    • The envelope period is managed using TabP which is initilised to 0x1F (31 decimal).
    • Whenever the envelope counter reaches 0 the next envelope period is selected via TabP.
    • The resultant envelope value is stored in Eval which is used as the maximum value for the amplitude calculations later in the loop.

    Curiously there are two envelope volume tables provided as options. The first (“AY_TABLE”) distinctly shows the doubling of levels turning 16 values into 32 values. The second (“YM_TABLE”) appears to have some interpolation between values giving a higher resolution envelope.

    From wikipedia: “The input clock is first divided by 16 (or by 8 in the YM2149, because the envelope generator has twice as many steps, and thus needs twice as many clocks to complete a full cycle), and then by the 16-bit value.”

    So by starting with double the CLOCK frequency, we effectively get YM compatibility “for free”.

    Only a single envelope table is required – it defines a linear incrementing pattern that is then used and reused in various ways according to the EG control bits in AY_REG13 (R15) as per figure 7 in the datasheet. I’m not going to dig into that further at this point. I might come back to it in the future.

    I’m also not going to dig into the noise generation, mixer or amplitude control at this time.

    Closing Thoughts

    I really like I feel I know a lot more about how the AY-3-8910/8912 work now and certainly am, as usual, in awe of those who figured all this out and then how to emulate it on a modern (ish) microcontroller.

    It is also interesting to note that the emulation hasn’t been updated, as far as I know, for anything more capable than an 8-bit AVR. I guessing it just isn’t necessary and avoiding the whole 3V3/5V logic thing has a certain appeal.

    The two commercially available solutions I’ve seen from RC2014 for the WhyEm sound card and the vRetro 28-pin direct replacements, stick with AVR and overclock as far as I can tell. RC2014 using ATMega48AP at 27MHz and vRetro using two ATTiny MCUs and what I think is a 30MHz oscillator.

    I would like to see if I can get a standard ATMega328P running the code and then I’d be really interested in seeing if it could be made to run on a Logic Green LGT8F328 “AVR clone” that apparently should be able to run at 32MHz.

    I believe I’ve convinced myself not to attempt to build the AY-3-8910 out of discrete logic…

    Kevin

    #arduino #atmega328 #avr #ay38910 #ay38912 #vretro