Jump to content
IGNORED

3F bankswitching with 16/32K ROM


Punji

Recommended Posts

Hi, I could not find a topic on this specific subject, so I'm crating a new one. Sorry if I missed something in the forums.

 

The 3F bankswitching works fine on Hamrmony 1.05 when using an 8K ROM images, like Espial.

I tried that on my homebrew 16K ROM and it fails to start the game.

 

What I have as test code for this issue is a very small routine that sits at the $3800 startup address and sets the audio registers to play a tone and loop forever.

The binary is properly formated as 7 x 2K banks plus 1 x 2K bank in sequence (the later is the one that contains the startup code at the very begining).

The extension was renamed to ".3f". The code runs fine on Stella, but it crashes on Harmony, i.e., the tone does not play and some bars appear in the screen.

Note that I'm not even doing any bankswitching here, i.e., the test code is placed on the last 2K bank, right at the startup address.

 

Is there anything special I need to do here? Isn't this supported on Harmony?

 

Thanks.

Link to comment
Share on other sites

Something else I found after some more tests:

 

- It works just fine if the ROM has 32K (16 banks) and the address range is $F000-$FFFF (this is what Dancing baby uses) and the extension is ".3f".

 

- It works fine if the ROM has 8K (4 banks) and the address range is $3000-$3FFF (this is what Espial uses) and the extension is ".bin".

 

- It does NOT work if the ROM has 16K (8 banks) and the address range is either $3000-$3FFF or $F000-$FFFF, regardless for the extension used.

 

I understand the bankswitching auto-detection could fail for a homebrew game, but it is strange that forcing the extension won't work either...

Link to comment
Share on other sites

Harmony only supports 8k or 32k 3F when loaded from the menu. I expect that all will work if you use the "development" tab to load the game directly to the Harmony's memory. At the time, I didn't add 16k support because I didn't have any 16k 3F binaries to test it with. I just looked at the code and it wouldn't be too hard to add, so I'll try to build a test BIOS later. Are you using NTSC or PAL?

Link to comment
Share on other sites

I'll look into the 16k fix, but this won't be an official BIOS update (there are a few other things that are in progress, and other things that need to be addressed, which we may not be able to finish until after the holidays.) Users may not want to update BIOS until the official one is released.

 

If you want others to play it, an immediate solution would be to post a 16k and 32k version. I think all you'd have to do is combine two copies of the 16k into a 32k binary.

Link to comment
Share on other sites

Sure, no hush. I'm currently on the bad side of the 80/20 rule, it will take a while yet to get rid of some nasty bugs and design a playable level.

 

Until there I will just waste 16K of ROM as you suggested, something almost unberable for someone doing an Atari game...

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