+Andrew Davie Posted January 27, 2021 Share Posted January 27, 2021 I would *really* like to see the CDFJ bankswitch scheme supported. This would allow me to see my current chess display on actual hardware. 1 Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted January 27, 2021 Share Posted January 27, 2021 CDFJ (and CDFJ+) is similar to DPC+ just the addresses and the sizes of the RAM and ROM differs. I planned to support DPC+ (patched ROMs) first and then CDFJ and CDFJ+ Link to comment Share on other sites More sharing options...
Prizrak Posted January 27, 2021 Share Posted January 27, 2021 I too look forward to this feature but I understand the amount of work needed to get this working. I use my Harmony for all games that use DPC and CDFJ and the Plus Cart for everything else.Sent from my SM-N960U using Tapatalk Link to comment Share on other sites More sharing options...
Wizzard Posted January 27, 2021 Share Posted January 27, 2021 What is DPC and CDFJ? Link to comment Share on other sites More sharing options...
Prizrak Posted January 27, 2021 Share Posted January 27, 2021 Bank switching methods. Ways for programmers to utilize the additional hardware in the Harmony Cart (Arm chip). Sent from my SM-N960U using Tapatalk 1 Link to comment Share on other sites More sharing options...
+Andrew Davie Posted January 27, 2021 Author Share Posted January 27, 2021 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. 3 1 Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted January 27, 2021 Share Posted January 27, 2021 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 More sharing options...
Wizzard Posted January 28, 2021 Share Posted January 28, 2021 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 More sharing options...
+Al_Nafuur Posted January 28, 2021 Share Posted January 28, 2021 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 More sharing options...
+Andrew Davie Posted January 28, 2021 Author Share Posted January 28, 2021 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 More sharing options...
Wizzard Posted January 28, 2021 Share Posted January 28, 2021 38 minutes ago, Al_Nafuur said: Can you open a new thread in the "Bug reports" section: https://atariage.com/forums/forum/290-bug-reports/ Sure, but do you think that it is a PlusCart bug? I would guess it is rather the console incompatibility. Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted January 28, 2021 Share Posted January 28, 2021 20 minutes ago, Wizzard said: Sure, but do you think that it is a PlusCart bug? I would guess it is rather the console incompatibility. The link is to the "PlusCart user" Club "Bug reports" thread. Link to comment Share on other sites More sharing options...
Wizzard Posted January 28, 2021 Share Posted January 28, 2021 So PlusCart should run on all Atari 2600 clones? Link to comment Share on other sites More sharing options...
Recommended Posts