Re: [hatari-devel] Chambers of Shaolin

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Le 28/11/2021 à 12:13, Grazey a écrit :
Hi guys,

I am in the process of fixing some Automation menus & cracks for the forthcoming official site. Currently I am fixing menu 450 which contains Thalion's Chambers of Shaolin.

The crack has 4 code paths :-

ST 1/2 meg
ST > 1/2 meg
STe 1/2 meg
STe > 1/2 Meg

For both half meg code paths the game plays standard YM chip music in the intro (after the generic Thalion intro). On the ST if you have at least 1 meg you can select to see the sample intro, this features a YM digi routine. Similarly on the STe for 1 meg it will play sample music using DMA.

Both ST code paths work fine under Hatari, as does the half meg STe code path (YM). However the STe digi music does not play correctly, the intro music can be heard for a couple of seconds then silence.

The MSA I'm using can be found here

http://d-bug.me/shw/A_450v2.msa

I also ripped the STe music for the SNDH archive :

http://sndh.atari.org/sndh/sndh_sf/mad_max/games/cos_ste.snd

This exhibits the same behaviour through SND-Player and Hatari.

I'm using Hatari 2.31 but also tried 2.4 development version.

Any ideas?


Hi

from a quick look at the STX version (to be sure the problem is not due to a bad crack), I can hear the same problem under Hatari.

but looking at the traces for dma sound, I see this when intro music starts :

DMA snd frame start low: 0xb0 at pos 0/0 video_cyc=23332 292@45 pc=4368 instr_cycle 12 DMA snd frame start med: 0x02 at pos 0/0 video_cyc=23368 328@45 pc=436e instr_cycle 12 DMA snd frame start high: 0x08 at pos 0/0 video_cyc=23404 364@45 pc=4374 instr_cycle 12 DMA snd frame end low: 0xd3 at pos 0/0 video_cyc=23420 380@45 pc=437a instr_cycle 12 DMA snd frame end med: 0x62 at pos 0/0 video_cyc=23456 416@45 pc=4380 instr_cycle 12 DMA snd frame end high: 0x08 at pos 0/0 video_cyc=23492 452@45 pc=4386 instr_cycle 12
DMA snd control write: 0x0001 video_cyc=23504 464@45 pc=438a instr_cycle 12
DMA snd control write: starting dma sound output
DMA snd new frame start=802b0 end=862d2

[.. then lots of dma sound reading until current address reaches dma end...]

DMA snd fifo pull pos 0 nb 8 fc
DMA snd fifo pull pos 1 nb 7 fa
DMA snd fifo refill adr=862d0 pos 2 nb 6 fa fb
DMA snd end of frame


So, it seems the sound replay sets dma start/end only once, not using loop mode, which explains why sound stops just after a few seconds. At first sight it doesn't look like an emulation issue.

does it works on real STE with 1MB RAM or more ?

Nicolas



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/