wolfenstein demo for sega genesis

Announce (tech) demos or games releases

Moderator: Mask of Destiny

Post Reply
Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef »

Yeah, i can confirm the audio is still bad in the later version.
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

I tried both and I am quite sure the problem is writing things too quick to the YM. Every reset results in different tones, and on tune loops things change too.
Also FM freq register write order is not optional, it has to be done the right way.

EDIT: I let the ROM sit for a while, I think one problem is the Key On/Off register, I hear stuck notes every once in a while. Bad sounds can happen when not all the operator bits get set the right way.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef »

What is weird is that it does work perfectly on my MD1, it seems to affects only systems with YM3438.. i remember there is something different about the timers with YM3438, but it may be related to the status register itself.
gasega68k
Very interested
Posts: 141
Joined: Thu Aug 22, 2013 3:47 am
Location: Venezuela - Caracas
Contact:

Post by gasega68k »

Yeah, i can confirm the audio is still bad in the later version.
Thanks, good to know, now I can try it in both genesis that I have (when I finish building the test cartridge). I will post some pictures of the test cartridge when it is finished. :wink:

When I finished programming the game I will release the source code, also the tools I use to make textures and sprites, so anyone could use it to make your own version of the game or maybe do a completely different game with this. :D
Mask of Destiny
Very interested
Posts: 628
Joined: Thu Nov 30, 2006 6:30 am

Post by Mask of Destiny »

It wouldn't be that surprising if the minimum wait time between register writes was different between the YM2612 and YM3438. I've been meaning to test that actually.
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

The wait times are different, but I did not measure how much different.
Also vanilla YM3438 differs from one in MD2. Hellfire has 2x slower music on MD2 and no music at all with 3438.

The ROMs are not working on my MD1 though.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef »

It wouldn't be that surprising if the minimum wait time between register writes was different between the YM2612 and YM3438. I've been meaning to test that actually.
Probably but from his code he is actually testing for the busy bit before each write so that should not cause any troubles.
When I finished programming the game I will release the source code, also the tools I use to make textures and sprites, so anyone could use it to make your own version of the game or maybe do a completely different game with this.
Awesome ! i would be love to look into the sources :D
Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef »

TmEE co.(TM) wrote:The wait times are different, but I did not measure how much different.
Also vanilla YM3438 differs from one in MD2. Hellfire has 2x slower music on MD2 and no music at all with 3438.

The ROMs are not working on my MD1 though.
You mean the wolf3D game does not sound correctly on your MD1 ?
which version you actually own ? I should test on my other MD1 as well.
gasega68k
Very interested
Posts: 141
Joined: Thu Aug 22, 2013 3:47 am
Location: Venezuela - Caracas
Contact:

Post by gasega68k »

If the problem is to write quick to Ym regs, instead of reading to $4000 for wait status and then write, I could do just counting cycles and then write to the Ym regs. What do you think?
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

I my MD sound engine I do strategically placed NOPs and arrange code so that there's some action happen between writes so I waste least time possible.

My MD1 is a VA6. I have not tested on VA1/2/3/4.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
Mixail
Very interested
Posts: 133
Joined: Thu Nov 18, 2010 4:47 pm

Post by Mixail »

gasega68k, how's it going?
gasega68k
Very interested
Posts: 141
Joined: Thu Aug 22, 2013 3:47 am
Location: Venezuela - Caracas
Contact:

Post by gasega68k »

I'm still building the test cartridge (I think it will be finished tomorrow) to try both versions of sega sega genesis that I have, because I want to find out why the music does not play well in some models, but in the meantime I made a version, which had not really thought of uploading yet, because I wanted to test it first. This version I changed the way to write to the YM regs in a similar way as they do in sonic1, although admittedly I have not much hope that now works well but ...
Here is the link to download it:
http://www.mediafire.com/download/3t6dh ... _b2_sn.rar
Sdw
Newbie
Posts: 8
Joined: Mon Oct 10, 2011 7:20 pm
Contact:

Post by Sdw »

I think you are onto something - this version played correctly as far as I could tell!
Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef »

Curious to know about the difference in register writes :)
gasega68k
Very interested
Posts: 141
Joined: Thu Aug 22, 2013 3:47 am
Location: Venezuela - Caracas
Contact:

Post by gasega68k »

Sdw wrote:I think you are onto something - this version played correctly as far as I could tell!
Wow! :o Can others confirm this?
Stef wrote:Curious to know about the difference in register writes :)
I changed several things, now the Z80 is disabled during the loop of tfc replayer (in previous versions the Z80 was disabled before writing to the YM regs and then enabled again after writing), but I think this is not the cause the problem because before had already made ​​a version with the Z80 disabled but that did not work. Also now after writing to $4000($4002) and before the wait status, I add 3 NOPs, and also the wait status was changed, instead of reading through the reg "a0" ("tst.b (a0)") as it was before, I do: "tst.b ($ a04000)". This is the code to write to the YM regs:

Code: Select all

;..............................................
         ;d0 = reg,  d1 = val,  d2 = bank
ym2612wr:
   ;lea  $a04000,a0
wait1:
   tst.b  ($a04000)        ;waitstatus
   bmi.s wait1
   move.b d0,0(a0,d2)
   nop
   nop
   nop
wait2:
   tst.b  ($a04000)        ;waitstatus
   bmi.s wait2
   move.b d1,1(a0,d2)
   rts
If finally confirmed that this version works well, I think the cause could be the 3 NOPs I added.
Post Reply