Jump to content
CPUWIZ

New homebrew board coming soon...

Recommended Posts

Due to lack of interest, I never re-submitted the fixed boards to my manufacturer. I sit on too many things already, like 100 of these.

Something like this won't move right away. It's the "Field of Dreams" effect at play here.

 

I thought I'd propose something, though. Once a bankswitch scheme is set, it seems difficult to change. However, I'd propose changing the hotspot range for DF and BF to 1FD0-1FEF and 1FB0-1FEF, respectively. No board changes required, just some minor changes in PLD code are needed and you free up 16-48 bytes in each bank.

Share this post


Link to post
Share on other sites

Due to lack of interest, I never re-submitted the fixed boards to my manufacturer. I sit on too many things already, like 100 of these.

 

I was hoping to use the largest ROM board possible for Tunnel's & Trolls as batari BASIC now supports way over 32k

 

Are there still options for 64k+ boards?

 

UPDATE: Just PM'ed CPUWIZ. No 64k+ w/o RAM either.

Share this post


Link to post
Share on other sites

The regular AA bankswitch board supports 64k without RAM.

 

I wasn't going to do a "Melody Encore" but I'll look into it if the CPUWIZ board won't happen. If I do, this will be a through-hole deal, and there will be quite a few parts to solder on (I won't do any soldering except the ARM chip.)

  • Like 1

Share this post


Link to post
Share on other sites

Rev.B is in the house, still needs testing, just came from China about half an hour ago. You can thank 'theloon' for this being made. Supports SuperBanking technique, without SARA, which means no wasted bytes in the ROM space.

 

Excuse me, but I need to solder some sockets now...

 

 

IMG_1026.JPG

  • Like 6

Share this post


Link to post
Share on other sites

Some sockets later...

 

(RevEng will understand this picture)

 

 

IMG_1028.JPG

  • Like 2

Share this post


Link to post
Share on other sites
On 11/28/2013 at 9:57 PM, CPUWIZ said:

Happy T'Day everyone,

 

here is something I cooked up with RevEng (bBasic support will come). It's a board that can handle 27C128, 27C256, 27C512, 27C010 and 27C020 EPROM's and it uses a 22V10 PLD to do the bankswitching (sorry, no 20V8 and not backward compatible with any other board). Every single pin on the PLD is used for 256K, so even if you have a suggestion, it's too late. It also supports SARA chips, so in essence, it's a 10 in 1. Two new bankswitching schemes have been designed, RevEng already has a locally hacked copy of Stella (once flushed out, Stephena will likely put it into the official version).

 

So, bankswitching:

 

F4, F4SC, F6, F6SC, EF, EFSC, DF, DFSC, BF and BFSC.

 

DF/DFSC is the new 128K bankswitching scheme, touch $1FC0 to $1FDF to select 32 banks.

BF/BFSC is the new 256K bankswitching scheme, touch $1F80 to $1FBF to select 64 banks.

 

Here are a couple pics, both of the routed new board and my hacked up SARA board to deal with all the above mentioned methods (currently configured to 256K, no SARA).

 

:)

SuperCart0.JPG

SuperCart1.JPG

SuperCart.png

Boa noite, por favor, tou tentando montar uma placa dessa, vc pode ajudar? vc pode mostrar seu desenho ?

Share this post


Link to post
Share on other sites
 
Desculpe, meus designs não são de código aberto.

Share this post


Link to post
Share on other sites

I've been experimenting with DFSC, and got it to work in Stella, but I have to manually set the bankswitching type for it to work. What does Stella look for when trying to autodetect these bankswitching schemes?

Share this post


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

What does Stella look for when trying to autodetect these bankswitching schemes?

 

Look at CartDetector.cxx for that. It appears to be looking for a 128K file and the letters DFSC at $FFF8.

Bankswitch::Type CartDetector::autodetectType(const ByteBuffer& image, size_t size)
{
  ...
    
  else if(size == 128_KB)
  {
    if(isProbably3E(image, size))
      type = Bankswitch::Type::_3E;
    else if(isProbablyDF(image, size, type))
      ; // type has been set directly in the function
    else if(isProbably3F(image, size))
      type = Bankswitch::Type::_3F;
    else if(isProbably4A50(image, size))
      type = Bankswitch::Type::_4A50;
    else if(isProbablySB(image, size))
      type = Bankswitch::Type::_SB;
  }

...
  
}


bool CartDetector::isProbablyDF(const ByteBuffer& image, size_t size,
                                Bankswitch::Type& type)
{

  // BF carts store strings 'DFDF' and 'DFSC' starting at address $FFF8
  // This signature is attributed to "RevEng" of AtariAge
  uInt8 df[]   = { 'D', 'F', 'D', 'F' };
  uInt8 dfsc[] = { 'D', 'F', 'S', 'C' };
  if(searchForBytes(image.get()+size-8, 8, df, 4, 1))
  {
    type = Bankswitch::Type::_DF;
    return true;
  }
  else if(searchForBytes(image.get()+size-8, 8, dfsc, 4, 1))
  {
    type = Bankswitch::Type::_DFSC;
    return true;
  }

  return false;
}

 

  • Thanks 1

Share this post


Link to post
Share on other sites
10 hours ago, SpiceWare said:

 

Look at CartDetector.cxx for that. It appears to be looking for a 128K file and the letters DFSC at $FFF8.

Bankswitch::Type CartDetector::autodetectType(const ByteBuffer& image, size_t size)
{
  ...
    
  else if(size == 128_KB)
  {
    if(isProbably3E(image, size))
      type = Bankswitch::Type::_3E;
    else if(isProbablyDF(image, size, type))
      ; // type has been set directly in the function
    else if(isProbably3F(image, size))
      type = Bankswitch::Type::_3F;
    else if(isProbably4A50(image, size))
      type = Bankswitch::Type::_4A50;
    else if(isProbablySB(image, size))
      type = Bankswitch::Type::_SB;
  }

...
  
}


bool CartDetector::isProbablyDF(const ByteBuffer& image, size_t size,
                                Bankswitch::Type& type)
{

  // BF carts store strings 'DFDF' and 'DFSC' starting at address $FFF8
  // This signature is attributed to "RevEng" of AtariAge
  uInt8 df[]   = { 'D', 'F', 'D', 'F' };
  uInt8 dfsc[] = { 'D', 'F', 'S', 'C' };
  if(searchForBytes(image.get()+size-8, 8, df, 4, 1))
  {
    type = Bankswitch::Type::_DF;
    return true;
  }
  else if(searchForBytes(image.get()+size-8, 8, dfsc, 4, 1))
  {
    type = Bankswitch::Type::_DFSC;
    return true;
  }

  return false;
}

 

Hmm, you found a typo in the comments: BF vs. DF.

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