bye bye digital audio
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
Source
6 Comments
Recommended Comments