Skip to content

Add a loader for CheatDevice Remastered and other small tweaks...#36

Open
danssmnt wants to merge 3 commits intoFreakler:mainfrom
danssmnt:main
Open

Add a loader for CheatDevice Remastered and other small tweaks...#36
danssmnt wants to merge 3 commits intoFreakler:mainfrom
danssmnt:main

Conversation

@danssmnt
Copy link
Collaborator

@danssmnt danssmnt commented Mar 25, 2026

Just verify everything is ok and compiles and doesn't crash with some new beautiful magical error introduced and allat stuff...

This should fix these issues:

Important

We'll have to change readme for the installation, where we can now point to cdr_loader instead for real hardware (loader and both cdr plugin versions need to be in the same directory).
PPSSPP installation maintains exactly the same (the loader ISN'T made for PPSSPP at all)

danssmnt added 3 commits March 25, 2026 21:14
Now, we can solve a bunch of issues like:
 - Choosing the correct version of CDR to run
 - Not running CDR all times on older CFWs
 - Facilitating cdr installation
@JoseAaronLopezGarcia
Copy link
Contributor

1 - Why do we need the loader? Sounds like an extra step that'll just make things more confusing for users, as well as making the bootup a bit slower.

2 - Does the loader get offloaded once cdr is loaded? Otherwise we're wasting memory.

@danssmnt
Copy link
Collaborator Author

1 - Why do we need the loader? Sounds like an extra step that'll just make things more confusing for users, as well as making the bootup a bit slower.

CDR infamously crashes most games when loaded in memory on older CFWs (PRO, ME...) and even Adrenaline. And this is the main reason of complaint by most users. This loader will load it ONLY when playing GTA (so no 400+ KB plugin clogging up memory when not needed, hence why this loader is REALLY small (around 2 KB)) and will load the full or lite version based on Extra Memory / High Memory Layout setting.

It won't be used for PPSSPP as this isn't a problem there.

And by the way, it will make it easier for users to install CDR because you will only need to worry about adding cdr_loader to GAME.txt / PLUGINS.TXT and we'll take care of the rest.

(I recommend you read the main.c giant comment I left for more info if needed)

2 - Does the loader get offloaded once cdr is loaded? Otherwise we're wasting memory.

The plugin will unload as soon as it finishes what it needs to do, whether it fails / needs or not to load CDR.

@danssmnt
Copy link
Collaborator Author

Also, you can still load/run the plugin as before, this is an add-on for CDR, so you can still do it the "old" way if you prefer/need.

@JoseAaronLopezGarcia
Copy link
Contributor

IMO having to do so many changes and extra work just to support old outdated CFWs that haven't been maintained in over a decade is completely overkill and doesn't justify the extra work that is gonna be needed for maintenance.
Specially since Adrenaline-8 and ARK-5 fixes these issues and actually implements what this loader does, but on a CFW level, making it transparent for plugin devs. Making this PR completely redundant, except for the three reddit users that still use PRO/LME cause "reasons".

I also don't like the idea of separating the PSP from PPSSPP just for this. If we're gonna be doing that, we might as well actually make two separate plugins, we could use with lots of cleanup on the PSP by removing functions and using the CFW API instead.

@JoseAaronLopezGarcia
Copy link
Contributor

Ok so maybe we can rework on naming and instructions:

1 - instead of cdr_loader, perhaps it's best to call it cdr_compat.

2 - make it clear in the readme that cdr_compat is only for older CFWs (PRO, LME, og Adrenaline) and that for newer CFWs it's best to use the cdr plugin directly (this should allow us CFW devs to have more control over how the plugin loads, which is always preferable, and should also make the cdr_compat plugin need less maintenance since older CFWs never change).

@danssmnt
Copy link
Collaborator Author

we could use with lots of cleanup on the PSP by removing functions and using the CFW API instead.

Tbh you could do a cleanup of the entire plugin at this point there's lots of "coded as fast as possible" areas here, i think using CFW API is the least of our worries lmao

But now on some actual serious talk,
I do understand making this specifically for people that use older CFWs seems kinda overkill (and honestly it kinda is), but we do still get complaints to THIS day about this and seems kinda wrong to do nothing about it, "just install ARK-4" isn't a satisfying solution neither for them nor for us, almost seems like we're dragging the problem and not actually solving it.

This is more of a way to maintain compatibility and work with all CFWs (this is ALSO one of the reasons the lite version was made) and if we need to do a little extra work in order to achieve this compatibility, why not do it?
(There's isn't much more to be done anyways, the loader works with all CFWs afaik)

Observation: Adrenaline-8 still isn't out, so, technically, this is still a problem with recent "CFWs".

@JoseAaronLopezGarcia
Copy link
Contributor

Adrenaline-8 and ARK-5 are "out", they are just in beta phase. And one of the features they will have is the ability to load user plugins on extra ram without actually changing the ram layout, thus leaving regular p2 ram intact.

@danssmnt
Copy link
Collaborator Author

danssmnt commented Mar 25, 2026

1 - instead of cdr_loader, perhaps it's best to call it cdr_compat.

Idk, seems kinda misleading, almost like some kind of different CDR version made for older CFWs, and you probably know people are gonna confuse this really quickly and that's what we're trying to avoid already
The name is correct, of course, it will only need to be used with older CFWs but it also works with modern ones (e.g.: ARK-4 works as well), so I do think "loader" is a better and more digestable name for it

2 - make it clear in the readme that cdr_compat is only for older CFWs (PRO, LME, og Adrenaline) and that for newer CFWs it's best to use the cdr plugin directly (this should allow us CFW devs to have more control over how the plugin loads, which is always preferable, and should also make the cdr_compat plugin need less maintenance since older CFWs never change).

I agree, we were already thinking of doing this
The installation readme will feature a dedicated part for older CFWs

@JoseAaronLopezGarcia
Copy link
Contributor

I think that cdr_loader is also misleading as it will make people think it's necessary, when it's only there for compatibility with old CFWs. That's why I thought of cdr_compat.

@danssmnt
Copy link
Collaborator Author

I think that cdr_loader is also misleading as it will make people think it's necessary, when it's only there for compatibility with old CFWs. That's why I thought of cdr_compat.

Good point, but I can't think of a better name for it to be honest.
Maybe join them together to get something like cdr_compat_loader?

@JoseAaronLopezGarcia
Copy link
Contributor

I think that cdr_loader is also misleading as it will make people think it's necessary, when it's only there for compatibility with old CFWs. That's why I thought of cdr_compat.

Good point, but I can't think of a better name for it to be honest. Maybe join them together to get something like cdr_compat_loader?

That actually sounds even better. It makes it clear that it's a loader and not another version of the plugin and also makes it clear that it is used for compatibility.

@danssmnt
Copy link
Collaborator Author

Well, cdr_compat_loader it is then. I'll modify the makefile after Freakler merges this pull request.

This add-on will have its own folder (which will be besides source/) so everything about it will be located at loader/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants