Jump to content
  • entries
    657
  • comments
    2,699
  • views
    900,547

bye bye digital audio


SpiceWare

1,321 views

hello 2 channel sound

 

The bug in the ARM chip had me >this close< to cancelling Frantic. Thanks to the help of GroovyBee, I'm now using the bug workaround which is to set the ARM's MAM to Mode 1. That partially disables the ARM's cache, which introduces a performance hit in the ARM code.

 

To make the drop in performance easier to address, I've turned off the random selection of where robots appear - instead robots appear in every slot they can so I can test worst case scenario. You should definitely encounter jitter in this build (except in Stella as it doesn't emulate run-time for ARM code), especially in the Frenzy layout which has more robots to move around. In the Frenzy maze you might notice the 2nd robot killed uses a half explosion if the explosion for the first robot killed is still in progress. That's due to the routines hitting the maximum number of supported sprites. You shouldn't notice that during normal game play as fewer robots will normally show up in each room.

 

Stella does not know how to set MAM though, it throws up a fatal error screen - so I'm now including a Stella compatible version of the ROM. Since the digital audio is removed, I reverted to the DPC+ driver. As such, Stella should automatically recognize the new Stella specific build.

 

Digital Audio support takes quite a bit of time that's going to need to be used for the game logic (I also had issues with it when using MAM Mode 1). As such, they've been eliminated. Speech will still be supported via the AtariVox - hopefully Rev 2 will be out soon as the AtariVox has been unavailable for quite some time. Since I don't need to reserve a sound channel for voice anymore, I've updated the sound effect routines to support using both channels so there can now be 2 concurrent sound effects active.

 

I was hoping to gain back some ARM processing time by turning off the IRQ updating of AUDV0 during the ARM routines; however, they were already turned off! That's probably why the voice samples weren't as clear as they should have been. Wish I'd noticed that before as the voices are much better with the IRQ turned on :(

 

This coming week I'm going to optimize the Collision() function. It's used the most and thus any improvements should go a long way towards offsetting the performance seen by using MAM Mode 1.

 

ROMs

frantic_harmony_20111001.bin

frantic_stella_20111001.bin

 

Source

Frantic20111001.zip

6 Comments


Recommended Comments

To make the drop in performance easier to address, I've turned off the random selection of where robots appear - instead robots appear in every slot they can so I can test worst case scenario.

You've got the makings of a nice version of Robotron 2084 here. ;)

Link to comment

Did not try the quad byte audio routine as I've repurposed the audio buffer RAM to speed up other routines to compensate for the drop in performance caused by having to disable cache.

 

The boss? Evil Otto (the smiley face)? If so then yeah, there's lots of tweaks like that which I've not looked at yet as I'd been too busy fighting with the bug in the ARM chip.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...