Jump to content
IGNORED

Smurf Rescue - alternative rom with wF8 bankswitch format


RevEng

Recommended Posts

Thanks in large part to the perseverance and ingenuity of @raz0red, we now have a dump of the Smurf Rescue variant we ran across as part of the 2600+ improvement work.

Smurf Rescue - wF8 bankswitching.bin

 

This rom variant doesn't seem to differ in game play from the common Smurf Rescue dump - just 17 bytes differ from the common dump - so the main reason for this release is historical documentation. The variant uses different cart hardware and a different bankswitch scheme from the common F8 Smurf Rescue, which we're calling wF8. Unlike the regular F8 scheme, wF8 only has a single 1FF8 hotspot, and uses the D3 data line to determine which bank to switch to.

 

Stella doesn't presently support wF8, nor do the flash carts, so don't expect much if you try to play the rom.

[edit - Gopher2600 and StellaDS now support wF8!]

 

For the curious, here's the difference between the common smurf dump's banking routines, and the variant...

ROM bytes FE4-FE9 * bankswitch routine, first bank
        Common
            lda     $dff9   
            lda     $dff8   

        Variant
            lda     #$04                    
            sta     $fff8                   

ROM bytes 1FEE-1FF3 * bankswitch routine, second bank
        Common
            lda     $fff9                   
            lda     $fff8                   

        Variant
            lda     #$00                    
            sta     $fff8  

 

  • Like 6
  • Thanks 3
Link to comment
Share on other sites

10 minutes ago, TrekMD said:

I downloaded it and tried on Stella but it did not work.  It does not display correctly.  Is that to be expected?

Yep, that's the expected result. The game can't switch banks to get to all of it's code.

  • Thanks 1
Link to comment
Share on other sites

37 minutes ago, chad5200 said:

Do you think it will eventually be able to work with Stella?  And thus the 2600+?  I have one of these carts and would love to see it running on the 2600+

It's a pretty trivial implementation, and we have the cart dumping, so I don't foresee anything stopping us from adding support for it to the 2600+.

 

Its up to Stella team whether they want to take on wF8 support or not, for Stella proper.

  • Like 1
Link to comment
Share on other sites

33 minutes ago, RevEng said:

It's a pretty trivial implementation, and we have the cart dumping, so I don't foresee anything stopping us from adding support for it to the 2600+.

Awesome!  That’s great news. Thanks!

 

  • Like 1
Link to comment
Share on other sites

Posted (edited)

Many thanks.

It's archived in my collection.

BTW: was the cart a Coleco cart or a CBS Electronics cart?

 

Edit: the game shows up in Stella 6.7, but the lower part of the screen is black.

8)

Edited by Rom Hunter
Link to comment
Share on other sites

Hi there,

6 hours ago, Rom Hunter said:

BTW: was the cart a Coleco cart or a CBS Electronics cart?

This would be great to know.

 

I briefly looked at the dump and compared it with my disassembly. There appears to be more differences than just the bank switching routine. I'll be diving into it more today.

  • Like 3
Link to comment
Share on other sites

Posted (edited)
6 hours ago, Rom Hunter said:

BTW: was the cart a Coleco cart or a CBS Electronics cart?

It is a white Coleco cart.

 

It is likely that the same format is used on some Zaxxon carts. We will be looking into that shortly.

 

Thanks,

Chris.

Edited by raz0red
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

I'm done with the analysis of this dump.

 

49 minutes ago, DEBRO said:

I briefly looked at the dump and compared it with my disassembly. There appears to be more differences than just the bank switching routine.

I was incorrect. I missed one byte in the first brief look.

 

Assuming this is NTSC of course, here are the changes...

 

BANK0 starting at $D000

$DFE4

   lda #4
   sta BANK1_REORG | BANK0STROBE

   .byte $DF                        ; assuming left over from F8 bankswitching

$DFF8

   .byte $FF

 

BANK1 starting at $F000

$F000

   lda #0
   sta BANK1_REORG | BANK0STROBE
      
   .byte $DF                        ; assuming left over from F8 bankswitching

$FFEE

   lda #0
   sta BANK1_REORG | BANK0STROBE

   .byte $FF                        ; assuming left over from F8 bankswitching

$FFF8

   .byte $FF

 

I'm not sure if the hotspot locations have to be set to $FF but they were changed for this ROM.

 

Thank you for dumping and sharing this with us. 

  • Like 4
Link to comment
Share on other sites

I'm interested in historic preservation too and so I've implemented WF8 in Gopher2600. I can confirm that it is a very straightforward scheme and could be added to Stella quickly and easily. I also ran the game in comparison mode with the F8 version of Smurf and confirm that it plays exactly the same.

  • Like 6
Link to comment
Share on other sites

On 5/27/2024 at 11:43 AM, JetSetIlly said:

I'm interested in historic preservation too and so I've implemented WF8 in Gopher2600. I can confirm that it is a very straightforward scheme and could be added to Stella quickly and easily. I also ran the game in comparison mode with the F8 version of Smurf and confirm that it plays exactly the same.

I've similarly added it to StellaDS with auto-detection for the two known dumps that utilize it. 

 

Given how trivial it looked, it took me a hot minute when it didn't work at first... until I realized that D3 is actually bit 2. Curse hardware and their propensity for naming Address lines starting at A0 but data lines at D1 :)

  • Like 2
Link to comment
Share on other sites

I've updated the first post with the info that Gopher2600 and StellaDS support the format, just so casual readers don't walk away with the wrong impression. I'll continue to update if other emulators or flash carts add support.

  • Like 1
Link to comment
Share on other sites

On 5/26/2024 at 7:24 PM, RevEng said:

It's a pretty trivial implementation, and we have the cart dumping, so I don't foresee anything stopping us from adding support for it to the 2600+.

I have this wF8 version of Smurfs Rescue cartridge and a 2600+ if you need someone to test out a dumper/firmware update to confirm it's working.

Link to comment
Share on other sites

3 hours ago, chad5200 said:

I have this wF8 version of Smurfs Rescue cartridge and a 2600+ if you need someone to test out a dumper/firmware update to confirm it's working.

Thanks for the kind offer - Chris actually snagged one himself too, so I think we're good for now. :)

Link to comment
Share on other sites

Hi there,

 

Not sure if this helps with the bankswitch mystery (as I call it) but I found this in Henry’s first notebook. The locations referenced are different than in the final ROM but you can see them using LDA for their bankswitching.

IMG_0035.jpeg

  • Like 8
Link to comment
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.
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...