Jump to content







Photo

bye bye digital audio

Posted by SpiceWare, in Frantic 01 October 2011 · 232 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
Attached File  frantic_harmony_20111001.bin (32K)
downloads: 20
Attached File  frantic_stella_20111001.bin (32K)
downloads: 29

Source
Attached File  Frantic20111001.zip (913.31K)
downloads: 20




Too bad this bug happens.
Nothing like to code for a bug free processor, the 6507 :)
  • Report
I feel your pain. And so do Tom and Jerry.
  • Report

Quote

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. ;)
  • Report
Did you try the quad byte audio processing code?
  • Report
Frantic is great but I think the boss comes too early.
  • Report
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.
  • Report

May 2012

S M T W T F S
  12345
6789101112
13141516171819
2021 22 23242526
2728293031  

Recent Entries

Recent Comments

1 user(s) viewing

0 members, 1 guests, 0 anonymous users

Search My Blog

Latest Visitors