Jump to content
IGNORED

CDFJ


Andrew Davie

Recommended Posts

3 hours ago, Wizzard said:

What is DPC and CDFJ?

Cartridges over the years have been developed to allow extra memory (RAM and/or ROM) to be available to the '2600.

But because of the rather limited ability of the '2600 to access anything more than 4K of ROM (and little/no extra RAM), these cartridges switch in blocks of memory into areas the '2600 can access. By letting the '2600 control which blocks of memory are switched in (by, effectively, sending a command to the bank-switching circuitry on the cartridge), we can develop games that are much bigger than the standard 4K of ROM and 128 bytes of RAM. This bank-switching can be done in any number of ways, and has been. Each different way of doing it is called a different bank-switching scheme and given a name by us programmers/developers. Names such as 3E, CDFJ, F8, etc., etc. There are quite a few of them.

Now, along with the extra memory on a cartridge, it has been possible to put extra processing power on a cartridge. That allows the cartridge to act as an efective "co-processor" for the '2600. Again, this can be controlled by the '2600 sending "commands" to the cartridge. Some bankswitching schemes use this to extend the power of the machine by doing things more quickly than the bare-bones machine could do it. Over the years, developers have invented some impressive techniques to allow the base '2600 hardware do amazing stuff. May of these techniques rely on the extra power/memory/assistance provided by the circuitry on the cartridge.

Modern '2600 cartridge hardware allows relatively powerful ARM chips running at 70MHz (compared to the '2600 1.19MHz) to emulate (pretend to be) various bank-switching schemes, so you can have an all-in-one cartridge that can play just about every '2600 game ever written. In principle, anyway, provided the bankswitching scheme is correctly emulated by the ARM chip on the cartridge.

Now the PlusCart is my favourite bit of hardware at the moment. And I'm learning about a very interesting bank-switching scheme called "CDFJ". This scheme provides some assists to the '2600 that makes it possible to do more complex stuff on the screen in real-time.  The CDFJ scheme is supported by the Harmony Cart - a multi-bankswitch emulation cartridge similar to the PlusCart and others (UnoCart, Cuttle Cart, Krokodil Cart, etc.). But I don't have a Harmony Cart, and the CDFJ scheme is not currently supported by the PlusCart. So I can't see the stuff that I write (using the CDFJ bank-switching scheme) on actual hardware. I have to use a '2600 emulator such as Stella to see what my code would look like on the real thing.

But that's not always ideal, and I want to run on actual hardware. 

So... I was asking for the PlusCart to support the CDFJ bank-switch scheme as soon as possible.  That basically means that some code needs to be added to the firmware on the cartridge so that it can pretend to be a genuine CDFJ cartridge -- by emulating the things that the CDFJ cartridge does. This is not a simple task, but nor is it unduly difficult. The code for emulating CDFJ is already written and publicly available in the Stella '2600 emulator. It's just a matter of doing exactly what it does, and then CDFJ will work on the PlusCart too. 
I could do this - I'm just less experienced than others at dealing with this kind of stuff.

 

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

1 hour ago, Andrew Davie said:

So... I was asking for the PlusCart to support the CDFJ bank-switch scheme as soon as possible.  That basically means that some code needs to be added to the firmware on the cartridge so that it can pretend to be a genuine CDFJ cartridge -- by emulating the things that the CDFJ cartridge does. This is not a simple task, but nor is it unduly difficult.

 

1 hour ago, Andrew Davie said:

The code for emulating CDFJ is already written and publicly available in the Stella '2600 emulator. It's just a matter of doing exactly what it does, and then CDFJ will work on the PlusCart too.

Yes the stella code was mostly the starting point for a new bankswitching on the PlusCart or UnoCart. But there are some differences between Stella and a MultiCart. Stella is emulating the 2600 and the cartridge. Therefor Stella can distinguish between a read and a write, the cartridge alone can't do this.

 

1 hour ago, Andrew Davie said:

I could do this - I'm just less experienced than others at dealing with this kind of stuff.

 

I have posted some modified DPC+ code in the PlusCart thread last year. You can see how to modify the code (basically the base addresses of RAM and ROM). The "STM32_OFFSET" param is now obsolete and can be ommited. The base addresses that have to be modified are:

RAM  (0x40000000) -> (0x10000000)

ROM (0x0000) -> (0x20000000)

these changes have to be done in the code (*.c and *.h) and in the linker script (custom.boot.lds).

 

 

Link to comment
Share on other sites

I tried my PlusCart on Taiwanese Atari clone with integrated games and it seems it does not work there, there is only blank screen. Is it because that clone may not support some bankswitching method? Or is it because that console is not 100% identical to official Atari hardware? I believe it is some Atari on the chip, like all of these consoles, it also contains a few hundred of games. Regular 32 in 1 cartridge works fine.

Link to comment
Share on other sites

3 hours ago, Wizzard said:

I tried my PlusCart on Taiwanese Atari clone with integrated games and it seems it does not work there, there is only blank screen. Is it because that clone may not support some bankswitching method? Or is it because that console is not 100% identical to official Atari hardware? I believe it is some Atari on the chip, like all of these consoles, it also contains a few hundred of games. Regular 32 in 1 cartridge works fine.

Can you open a new thread in the "Bug reports" section:
https://atariage.com/forums/forum/290-bug-reports/

 

Link to comment
Share on other sites

3 hours ago, Wizzard said:

I tried my PlusCart on Taiwanese Atari clone with integrated games and it seems it does not work there, there is only blank screen. Is it because that clone may not support some bankswitching method? Or is it because that console is not 100% identical to official Atari hardware? I believe it is some Atari on the chip, like all of these consoles, it also contains a few hundred of games. Regular 32 in 1 cartridge works fine.

 

I wonder if it's to do with some strange startup on the machine which causes it to behave differently, and this is affecting the pluscart...?

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...