Action Replay Demon: Memory Control & SupraDrive Issues
Hey everyone!
I'm really excited to share my experiences with the Action Replay on my Amiga 500. I've been a long-time enthusiast, even going so far as to translate the entire manual into Spanish so I could really dive deep into all the commands. I've recently run into some interesting issues with the Action Replay Demon and thought I'd share my findings and ask for some insights.
My Amiga Setup
Here's a quick rundown of my Amiga 500:
- ROM: 2.0 (37.175)
 - DKB Megachip: For 2MB of Chip RAM
 - SupraDrive 500XP (Zulu SCSI): Configurable for 2, 4, or 8 MB of Fast RAM (via jumpers)
 - Action Replay: DEMON v1
 
The Problem: Demon Freezing with 4MB Fast RAM
I recently stumbled upon a comment on the EAB forums where Phantasm mentioned that certain features, specifically Memory Control, might only play nice with Kickstart 1.3. This got me thinking about my own setup.
When I connect my external SCSI SupraDrive 500XP with 4MB of Fast RAM, the Amiga boots up without a hitch. However, the moment I press the red button on the Demon, the Amiga freezes on whatever image is currently displayed. It just sits there, unresponsive. This is quite a contrast to my experience with the original Datel Action Replay MKIII cartridge, which works perfectly fine.
Now, you might be wondering how the MKIII handles this, especially since it uses the $400000 memory area, which falls within the 4MB range of my Fast RAM. Well, the MKIII is pretty smart. It recognizes this and automatically manages the SupraDrive memory without requiring any user adjustments. It cleverly places the memory between addresses $600000 and $A00000. I've included a photo below to illustrate this:
SysInfo also confirms that the 4MB of the SupraDrive is indeed located between addresses $600000 and $A00000:
It's a bit strange, because the MKIII sometimes throws a "resident program" message that isn't actually true, but despite that, it's always worked flawlessly for me over the years:
A Workaround: 2MB of Fast RAM
I discovered that if I configure the SupraDrive 500XP for only 2MB of Fast RAM, the Action Replay Demon actually works! But, of course, that means sacrificing 2MB of valuable memory.
With the MKIII and 2MB of Fast RAM, the Memory Control screen looks like this:
And the Demon's Memory Control screen appears different:
The Question: Can MKIII Features Be Added to Demon?
So, here's my question to the experts: How difficult would it be to incorporate the memory management features of the MKIII into the Action Replay Demon? The MKIII's ability to automatically handle the SupraDrive memory is a huge advantage, and it would be fantastic if the Demon could do the same.
I'm really grateful for all the hard work you guys are putting into these projects. Keep up the amazing work!
Diving Deeper into the Memory Control Mystery
Let's really get into the nitty-gritty of this memory control issue. The Action Replay has always been a staple for Amiga users, providing powerful tools for debugging, cheating, and exploring the system's inner workings. The difference in behavior between the Action Replay MKIII and the Action Replay Demon when it comes to handling Fast RAM on a SupraDrive 500XP is quite intriguing.
The fact that the MKIII can intelligently manage the memory, even with its limitations, shows a level of sophistication that the Demon seems to be lacking, at least in my specific configuration. We're talking about seamless integration here, where the user doesn't have to fiddle with settings or worry about conflicts. It just works. This is a huge selling point, especially for users who aren't necessarily experts in Amiga hardware and software.
Now, the freezing issue with the Demon and 4MB of Fast RAM points to a potential conflict in memory addressing or resource allocation. It's possible that the Demon is trying to access a memory region that's already in use by the SupraDrive, or that there's some kind of incompatibility with the way the Demon initializes itself in the presence of extended memory. This is where understanding the inner workings of both the Action Replay and the SupraDrive becomes crucial.
The workaround of using only 2MB of Fast RAM is a clear indication that the problem lies in the amount of memory being used. It suggests that the Demon might have a hardcoded limit or a bug that's triggered when it detects more than a certain amount of Fast RAM. This is something that could potentially be addressed with a software update or a configuration tweak, but it requires a deep understanding of the Demon's codebase.
The differences in the Memory Control screens between the MKIII and the Demon further highlight the variations in their memory management strategies. The MKIII's screen shows a clear allocation of memory, while the Demon's screen might be displaying incorrect information or failing to properly detect the Fast RAM. This could be due to differences in the way they probe the system's memory map or the way they interpret the data returned by the SupraDrive.
Kickstart Version and Memory Management
It's also important to consider the role of the Kickstart version in all of this. As Phantasm mentioned on the EAB forums, some features might be dependent on Kickstart 1.3. This is because different Kickstart versions have different memory management routines and system calls. It's possible that the Demon relies on certain features that are only available in older Kickstart versions, or that it's not properly handling the changes introduced in later versions like Kickstart 2.0.
In my case, I'm using Kickstart 2.0 (37.175), which could be a contributing factor to the issues I'm experiencing. It would be interesting to test the Demon with Kickstart 1.3 to see if it behaves differently. This could help narrow down the source of the problem and determine whether it's a compatibility issue with the Kickstart version.
Furthermore, the interaction between the Action Replay, the SupraDrive, and the DKB Megachip could be creating additional complexities. The DKB Megachip adds 2MB of Chip RAM, which can affect the way the system allocates and manages memory. It's possible that the Demon is not correctly accounting for the additional Chip RAM, leading to conflicts with the SupraDrive's Fast RAM.
Reverse Engineering and Potential Solutions
Ultimately, solving this issue might require some reverse engineering of the Action Replay Demon's code. By disassembling the code and analyzing its memory management routines, it might be possible to identify the source of the problem and develop a patch or a workaround. This is a challenging task, but it could be well worth the effort for those who want to fully utilize the Demon's features with extended memory.
Another potential solution would be to contact the creators of the Action Replay Demon and see if they have any insights or suggestions. They might be aware of this issue and have a fix in the works, or they might be able to provide some guidance on how to configure the system to avoid conflicts.
In the meantime, I'll continue to experiment with different configurations and settings to see if I can find a more optimal setup. I'm also planning to try the Demon with Kickstart 1.3 to see if that makes a difference. I'll be sure to share my findings with the community so that others can benefit from my experiences.
This whole adventure really underscores the complexities of working with vintage hardware and software. It's a constant process of experimentation, troubleshooting, and learning. But that's also what makes it so rewarding. There's a real sense of accomplishment when you finally get everything working the way you want it to.
The Importance of Community and Shared Knowledge
And that's where the Amiga community comes in. We're all in this together, sharing our knowledge, experiences, and solutions. By working together, we can keep these classic machines alive and kicking for years to come. Thanks for reading guys!