Jump to content
PacManPlus

Pac-Man Collection - 40th Anniversary Edition

Recommended Posts

12 minutes ago, darryl1970 said:

Maybe I didn't find it.

 

I just got my Dragonfly.

 

Is there a version that activates the Yamaha sound on this? The version that came with it displays "XM", but I think it's still playing TIA.

 

I thought I read something when I didn't yet have my DF. Now I can't seem to find it.

 

Thanks,

 

Darryl

The Pac-Man XM with Yamaha is actually in both the HB folder under the P folder, and also in the YM folder. I've used the one in the YM2151 folder to play and it definitely doesn't the sound the same as the standard TIA version (Which is still amazing honestly). If you see XM on the title screen when you load up the rom, then it has detected the YM module and the extra RAM expansion the cart provides to operate. If you only see the logo and do NOT see the XM Enhanced logo to the lower left of the main game logo, then the ROM didn't detect all the hardware.

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, -^CrossBow^- said:

The Pac-Man XM with Yamaha is actually in both the HB folder under the P folder, and also in the YM folder. I've used the one in the YM2151 folder to play and it definitely doesn't the sound the same as the standard TIA version (Which is still amazing honestly). If you see XM on the title screen when you load up the rom, then it has detected the YM module and the extra RAM expansion the cart provides to operate. If you only see the logo and do NOT see the XM Enhanced logo to the lower left of the main game logo, then the ROM didn't detect all the hardware.

 

 

It didn't activate the YM sound for me until I set the RAM to forced. Is that the expected behavior?

Share this post


Link to post
Share on other sites
56 minutes ago, darryl1970 said:

It didn't activate the YM sound for me until I set the RAM to forced. Is that the expected behavior?

Yes and I thought I had mentioned that but maybe not? I know I mentioned this in my video overview of the Dragonfly.

 

  • Like 1

Share this post


Link to post
Share on other sites


Hi guys - sorry for the late reply...

 

I'm a little confused...  The 'dragonfly' SD cart emulates the YM?  How does it get activated?  I have to pass a certain value to $470 in order to activate it on the XM, is it the same in this case?

Share this post


Link to post
Share on other sites
2 minutes ago, PacManPlus said:

The 'dragonfly' SD cart emulates the YM?  How does it get activated?

This is probably a question for @rj1307, the DragonFly creator. But yes, the DragonFly has an optional Yamaha module. I think @RevEng and maybe a couple other folks have been discussing allocating bits in the .A78 header format to handle stand-alone YM sound, without necessarily all the rest that is assumed by the existing XM bits. (Of course, I might be misremembering stuff and conflating a few things ... )

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, PacManPlus said:

I'm a little confused...  The 'dragonfly' SD cart emulates the YM?  How does it get activated?  I have to pass a certain value to $470 in order to activate it on the XM, is it the same in this case?

From the manual:

 

 

image.png.9ee6b0d431635f1c934a691b38aa0f7f.png

 

image.thumb.png.5c02443b88834f65795db3ea88d9a546.png

 

image.thumb.png.79a57db811c71876d178d52bb98ac291.png

 

image.png.347c0d0124647b348b057ded21e17e7e.png

 

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, PacManPlus said:

I'm a little confused...  The 'dragonfly' SD cart emulates the YM?  How does it get activated?  I have to pass a certain value to $470 in order to activate it on the XM, is it the same in this case?

I think it's enough to just have XM flagged in the A78 header. Dragonfly doesn't do the whole XM register thing, so no need to hit $470 or any of the XM CTRL registers. Just use $460/461 for the YM as usual. IIRC your game probes XM memory as a sort of XM detection, which is why the guys are talking about forcing memory on in the Dragonfly.

 

I've also added a couple bits to the A78 header for just indicating YM or second pokey, without indicating a full-blown XM  This was announced in the header thread, but I don't know if Dragonfly itself is yet parsing those header bits.

  • Like 4

Share this post


Link to post
Share on other sites

Thanks guys!

 

So I watched the video of @ZeroPage Homebrew playing this (noticed that they took that cartridge out quickly :P )  and right off the bat there was a bug (2nd player with random mazes, no dots).  That only happened if a 2-player random maze (any random maze game) was the first game played after booting the cart up.  What are the chances? 

 

Anyway, I fixed that bug - thanks James! :D 

 

PMC_XM.A78 PMC_XM.BIN

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
56 minutes ago, sramirez2008 said:

I see you made one other change too.😉

 

986EE425-0FBE-440F-BA74-EC84D1BDA40D.jpeg

This one make sense given that the XM isn't officially a released product and might be confusing. The main thing that the XM Enhanced logo was showing us, was that it was using the YM synth sound. This make more sense going forward and will make it that more clear to others when the game detects the YM module or not. I'm curious if it still requires the RAM expansion in forced on mode now that Bob knows how to look for and address the YM module without requiring the detection of the extra RAM from the XM?

 

  • Like 1

Share this post


Link to post
Share on other sites
2 minutes ago, -^CrossBow^- said:

I'm curious if it still requires the RAM expansion in forced on mode

I checked. Still requires the FORCE.

  • Like 1

Share this post


Link to post
Share on other sites
5 hours ago, PacManPlus said:

So I watched the video of @ZeroPage Homebrew playing this (noticed that they took that cartridge out quickly :P )

Hahah, we'll definitely be playing a lot of your games, including that one, coming up on some near future streams (plus your Developer Spotlight!). Sadly we had to rush through games that night to get through the 18 nominees! 🙂

 

5 hours ago, PacManPlus said:

  and right off the bat there was a bug (2nd player with random mazes, no dots).  That only happened if a 2-player random maze (any random maze game) was the first game played after booting the cart up.  What are the chances? 

 

Anyway, I fixed that bug - thanks James! :D 

 

Oh wow, I didn't even know it was a bug, I thought it was just a really easy random level where you only had to get the four power pellets! Glad we could find a very specific case bug so you could squash it. 🙂 

 

- James

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites

I'm wondering if I should change the detection of the Yamaha...

 

...but I should probably try to keep it universal so that either the XM or the Dragonfly detects it.

So, I can keep the write to $470, but are there any series of bytes I can look at that only exist on the Yamaha?  (Like I do with the Pokey and the 'Random Bytes' check)

Share this post


Link to post
Share on other sites
4 hours ago, PacManPlus said:

So, I can keep the write to $470, but are there any series of bytes I can look at that only exist on the Yamaha?  (Like I do with the Pokey and the 'Random Bytes' check)

My initial thought here was to send a register update to $460 and check how many loops it takes for the ready status to show up in $461, but sometimes the register update is completed in the first loop, so it doesn't appear to be a good heuristic.

 

I was able to reliably get "$60" in the DetectYM variable when XM is there and YM is enabled (and 0 otherwise) using the following code...

 

 asm
  jsr xmym_init_jsr
YMDetectRoutine
  lda #$ff
  ldx #1 
  jsr WriteToYM_X ; YM test mode bits all high
  ldy #255
YMDetectRoutineloop
  lda $461
  bmi YMDetectRoutineloop
  sta DetectYM ; save the value pulled from the status register
  lda #0
  ldx #1
  jsr WriteToYM_X ; reset the YM test mode bits
end

 

The init routine just enables the YM within the XM, and clears some program specific memory. The WriteToYM_X sub is at the wiki, though you probably have an equivalent already.

 

I haven't experimented with which test mode bits are important here. It might be good to understand the minimal set required.

 

One problem is the emulators unsurprisingly haven't implemented these test mode bits, since they're undocumented. (beyond the link I provided) So this would be a real-hardware only solution until the emulators catch up.

 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks RevEng, gambler172 :)

 

Actually it's Yamaha and TIA - no Pokey sounds in this one. ;) 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
18 minutes ago, PacManPlus said:

Thanks RevEng, gambler172 :)

 

Actually it's Yamaha and TIA - no Pokey sounds in this one. ;) 

only Tia?

wow....sounds good 😁

  • Thanks 1

Share this post


Link to post
Share on other sites

(yeah, I didn't believe it either. :) )

Share this post


Link to post
Share on other sites

Just a heads up. Leaving the Dragonfly set to Force RAM means other stuff has problems. BallBlazer (PAL) for example does some weird stuff with the POKEY music and the Galaxian WIP doesn't detect the POKEY. Setting the RAM to Enable however (where it is turned on based on the header) then editing the header for PMC40 to SuperGame RAM and everything behaves as it should and you don't need to change any setting to run anything. So PMC40 runs with YM sound, no music corruption on BallBlazer and POKEY detected on Galaxian.

Edited by juansolo

Share this post


Link to post
Share on other sites
2 hours ago, juansolo said:

Just a heads up. Leaving the Dragonfly set to Force RAM means other stuff has problems. BallBlazer (PAL) for example does some weird stuff with the POKEY music and the Galaxian WIP doesn't detect the POKEY. Setting the RAM to Enable however (where it is turned on based on the header) then editing the header for PMC40 to SuperGame RAM and everything behaves as it should and you don't need to change any setting to run anything. So PMC40 runs with YM sound, no music corruption on BallBlazer and POKEY detected on Galaxian.

Thanks @juansolo. Is there a guide or somewhere I can find some pointers for editing the header? I've not done it before and wouldn't know where to start or what to use. 

Share this post


Link to post
Share on other sites
31 minutes ago, Muddyfunster said:

Thanks @juansolo. Is there a guide or somewhere I can find some pointers for editing the header? I've not done it before and wouldn't know where to start or what to use. 

There's a utility that comes with 7800 basic ( https://github.com/7800-devtools/7800basic/releases/ ) called 7800header. Run that on the rom name and it displays the current header and what you can set it to. Flip out whatever it is as standard (can't remember) for Supergame RAM. Should end up looking something like this:

Headerage.thumb.jpeg.419fe03dbef25e8dba04d4a5bed981fc.jpeg

Edited by juansolo
  • Like 1
  • Thanks 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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