Jump to content
IGNORED

Beef Drop work in progress


Recommended Posts

Am I right in assuming then that the file detects if you are booting TIA or Pokey (via the entry in CC2) and starts the music as appropriate?
It attempts to autodetect if a pokey is present. Currently all it does is use the pokey random register but I am worried that could produce false positives so I may get to refining it some more. If it detects a pokey and one is not present, a lot of music and maybe some sounds will be missing.

So I see heh... couple of pictures for you to check colours etc.

 

beefdrop2.jpg

 

beefdrop1.jpg

 

Only one problem: I don't get any Pokey sound (and yes I've got the entry set to 78POKEY and 78BIOS in the menu file). I've still got the last separate Beefdrop revision that just ran Pokey sound and I compared that to this; that one plays how it should. The sound I get from this latest revision is definitely TIA. So maybe the detection isn't working properly for me? :(

Pokey music & sound still is not present with the latest WIP (05 Jan 2005 22:07 - posting) under MESS.  You here TIA music & sound only.  Is there any way to fix this?

 

Thanks In Advance,

-Trebor

It looks like MESS doesnt implement reading from POKEY for the 7800. I only see "write" handlers being installed for it. So I am not sure why it every worked since I am reading the RANDOM register in my POKEY detection routines. Maybe I had a bug and fixed it in the beef drop code.
Pokey music & sound still is not present with the latest WIP (05 Jan 2005 22:07 - posting) under MESS.  You here TIA music & sound only.  Is there any way to fix this?

 

Thanks In Advance,

-Trebor

It looks like MESS doesnt implement reading from POKEY for the 7800. I only see "write" handlers being installed for it. So I am not sure why it every worked since I am reading the RANDOM register in my POKEY detection routines. Maybe I had a bug and fixed it in the beef drop code.

 

Thanks, kenfused for the reply back. I appreciate you taking the time to explain why things work/don't work on top of the fantastic work you're doing with Beef Drop.

 

Pardon my ignorance, I know very little (Read "Zero") about programming/coding. Could you possibly elaborate on why Beef Drop seems to trigger bugs in MESS why other game don't. The best two examples in this scenario for instance, Commando and Ballblazer. They both utilize the Pokey chip and they play Pokey sound/music under MESS. Additionally, there is no speed issue with either one of these two titles under MESS. However, Beef Drop has problems both with playing speed and with the Pokey Sound/Music under MESS. I would like to understand better why, if at all possible.

 

Again, I apologize. I'm just fascinated at what prgorammers/developers with both games and emulation do. I would just like to have a clearer understanding of what Beef Drop does exactly that seems to expose what other games (I.E. Commando and BallBlazer), never did.

 

Thanks In Advance For Any Replies or Information,

Trebor

Pardon my ignorance, I know very little (Read "Zero") about programming/coding. Could you possibly elaborate on why Beef Drop seems to trigger bugs in MESS why other game don't. The best two examples in this scenario for instance, Commando and Ballblazer. They both utilize the Pokey chip and they play Pokey sound/music under MESS. Additionally, there is no speed issue with either one of these two titles under MESS. However, Beef Drop has problems both with playing speed and with the Pokey Sound/Music under MESS. I would like to understand better why, if at all possible.

 

MESS has many different builds over the years to test with those two titles and Beef Drop is a new title. At a really high simplistic level, that's the problem. All of the code for the 7800 emulator in MESS was tested with existing 7800 ROMs ... and it still doesn't get the original 7800 games right in all cases.

Pardon my ignorance, I know very little (Read "Zero") about programming/coding.   Could you possibly elaborate on why Beef Drop seems to trigger bugs in MESS why other game don't.

(Well, I guess that settles the question on whether you are Robert Woodhead or not...)

 

The problem is that the 7800 wasn't around long enough to have games push it to its limits. I managed to find a bug in older versions of MESS (the Mac version still not having been updated past 0.70) with regards to 320-pixel video mode. As people start to write code for the 7800, problems with the emulators are going to show up.

 

In particular, no 7800 emulator that I am aware of is cycle-accurate because the games from the '80s tended to use vsync waits and didn't try to use the extra cycles that they could get from not having the Maria DMA steal cycles. So they didn't actually need to be cycle-accurate, as long as the emulator was more forgiving than the real hardware. And to be truly 100% cycle-accurate, an emulator would also have to emulate the clock frequency slowdown for RIOT/TIA accesses, which would be a lot of work.

So then what is the reason that Beef Drop still runs slightiy faster in MESS than it does in EMU7800?

 

And why is EMU7800 able to get the clock on One on ONe Basketball right when MESS is WAAAAY off?

 

Just curious...I think maybe the answer to closer to accurate emulation lies somewhere between these two....

 

 

BTW, I LOOOOVE the animation during the intro, Ken.

So then what is the reason that Beef Drop still runs slightiy faster in MESS than it does in EMU7800?  

 

And why is EMU7800 able to get the clock on One on ONe Basketball right when MESS is WAAAAY off?  

 

Just curious...I think maybe the answer to closer to accurate emulation lies somewhere between these two....

 

 

BTW, I LOOOOVE the animation during the intro, Ken.

 

There are 3 ways the main loop of a programming could probably be timed:

(1) synced to the display

(2) Free running with time killing loops

(3) Use the RIOT timers

 

Beef Drop used (2) in the first versions and ran way to fast in MESS. I later used (3) to get a little more even timing and also ran way to fast in MESS with the original RIOT emulation.

 

The timing in MESS is not accurate as far as cycles being eaten up by the video display (as I understand it) and I think it does not switch the clock to the lower speed when the RIOT is accessed.

 

I may have some code in beef drop that is outside the timed code that is running too fast, and might play with it some eventually since I am curious why it would still run a little too fast. Essentially I set the riot timer at the top of the loop, do a lot of stuff, and after that check the timer and loop until it has reached the value. THere may be more stuff I do after the timer check that would be significant enough to account for the difference. Just a guess at this point.

But as I said, I'm not getting any POKEY sound either and I'm playing the latest build on a CC2 that has a POKEY in it. So I don't think it's MESS here, it's something wrong in the code possibly...?
There may be some bugs in the POKEY detection that will hopefully be fixed in the lastest version. I was not initializing a register in POKEY so the Random register would work so it might be luck or machine dependent on if the detection works.

 

Essentially what I am doing in the next version.

(1)

Turn on POKEY's random number generator.

Read the register 255 times, and if doesnt change at all, no pokey

(2)

Turn off POKEY's random number generator

Read the register 255 times, and if changes even once, no pokey.

 

I havent determined yet if this will be robust enough or not.

 

The main reason I am having problems vs. Ballblazer, is Ballblazer knows it has a pokey. I am trying to program it so it will work with and without a POKEY.

 

The timing in MESS is not accurate as far as cycles being eaten up by the video display (as I understand it) and I think it does not switch the clock to the lower speed when the RIOT is accessed.

 

I may have some code in beef drop that is outside the timed code that is running too fast, and might play with it some eventually since I am curious why it would still run a little too fast.  Essentially I set the riot timer at the top of the loop, do a lot of stuff, and after that check the timer and loop until it has reached the value.  THere may be more stuff I do after the timer check that would be significant enough to account for the difference.  Just a guess at this point.

Also, just the act of checking the RIOT timer will slow the clock down for the timers. I have a little time killing loop delay around checking the RIOT to see if the is expired so it is not slowed down a lot, but maybe that isnt enough.

(1) Changed pokey detection some. Pokey still will not be autodetected in current versions of MESS. Let me know of any problems in CC2.

(2) Included two new a78 files with POKEY forced off and on in MESS instead of attempting to autodetect.

(3) Fix problem when player two looses all lives before player one.

(4) Pokey sound now sounds better IMO, RIOT timer is not read in a tight loop so maybe the clock rate will not flip back and forth as much?

 

Still runs too fast in MESS :-(

 

--Ken

bd7800.zip

What banking should I be using to get the pokey sound working on the cc2?

 

I have it set up on 78HSCPOK for the banking and HSC for the startup. And I still believe that it is tia sound with the off tone note in the beginning of the background music. And the pokey chip is still working with commando.

What banking should I be using to get the pokey sound working on the cc2?  

 

I have it set up on 78HSCPOK for the banking and HSC for the startup. And I still believe that it is tia sound with the off tone note in the beginning of the background music. And the pokey chip is still working with commando.

I haven't tried the pokey+HSC new bank file yet because my only MMC reader is in my notebook and the display went flaky on it. I guess I can try hooking it up to an external monitor. Does the version that forces pokey to be enabled work? (you will have to remove the a78 header).

If I use 78POKEY with either HSC or HSCQUICK then Pokey sound does not seem to work, even if I bypass the detection and force pokey to enabled. Has anyone used the new POKEY+HSC successfully? With older versions? With the current version?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   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...