News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_mr_lou

Creative ideas for copy protection?

Started by mr_lou, 15:48, 29 December 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mr_lou

I know there are gamedevs on the CPC who's tired of people pirating their games.
One example is Cwiiis and his "Oh Chute!" game (https://cwiiis.itch.io/oh-chute), which was made as a cartridge CPR file as well as a DSK.

He's experiencing people selling cartridges on eBay with his game without his permission. And I know other devs has had the same experience as well.

This has made me curious about whether there exists any clever creative ways gamedevs can protect their games against piracy.

On Atari Jaguar it's possible to check for the presense of a flash cartridge, and that way prevent the game from running.
I have no idea what kind of checks is possible to do on the Amstrad CPC though.

Anyone has any creative ideas on how gamedevs can be in more control of the distribution of their games?
What's actually possible to check?

One idea (Cwiiis himself) to prevent games running on real hardware, would be to "not fully initialize the CRTC". That way it'll still run on emulators, but will just give a blank screen on real hardware. Whether you find that useful or not is another matter. But just an example of something that could be done in order to control where the game is playable.



P.S.: This thread is not about your personal opinion about whether or not you think it's a problem or not. This thread is about the technical aspect, regardless of how anyone might feel about it. Thankyou.
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

andycadley

Quote from: mr_lou on 15:48, 29 December 24One idea (Cwiiis himself) to prevent games running on real hardware, would be to "not fully initialize the CRTC". That way it'll still run on emulators, but will just give a blank screen on real hardware. Whether you find that useful or not is another matter. But just an example of something that could be done in order to control where the game is playable.

That'll just cause it to fail on more accurate emulators and eventually be lost to time as software that doesn't really work (or inevitably has to be a cracked version for anyone to use).

Ultimately all methods of copy protection (including the Jaguar methods you've mentioned) are defeatable. Even back in the commercial days, professional techniques were only ever good for a very short period and as a deterrent to casual piracy. Pretty much the only guaranteed mechanism is to give it away for free and rely solely on donations if you want some sort of income from it, at least that makes most piracy unnecessary (though probably won't stop grifters trying to sell versions etc)

mr_lou

Of course nothing is unbeatable. No one is saying that. That's not what this thread is about. Please do not derail it.
This is only about creative ideas on what techniques could be applied.
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

Gryzor

I don't think he's derailing the thread. He's replying to the possible protection suggestion you made...

mr_lou

Quote from: mr_lou on 15:48, 29 December 24P.S.: This thread is not about your personal opinion about whether or not you think it's a problem or not. This thread is about the technical aspect, regardless of how anyone might feel about it. Thankyou.

I'm only asking for ideas. Not whether or not you think it's a good idea. I tried making that clear.

So please, back to the actual topic - if anyone even has any ideas. Thankyou.
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

Gryzor

Have the player call the developer to get a code, compare it with one-way encryption against a table of good codes. Charges may apply.

mr_lou

Well, that's basically how many devs did it for copy protection in general. Except the manual included a codesheet instead of needing a phonecall, but basically the same idea apart from that.

In the case of Cwiiis, his game is freely downloadable, so no codes needed. His only problem is that people are burning the rom to cartridges and selling it on eBay.

Does the CPC offer any ways to detect from what media the game is running? I don't expect so. Seems Atari Jaguar has much more options there.
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

Targhan

One possibility (related to what Gryzor said) is to have a different build for every copy. "This copy belongs to Robert Johnson", and the bytes of some files could simply be XORed according to a simple key (probably no need to do something more complicated). Having a personalised build may be enough for people not to give their copy away.
Targhan/Arkos

Arkos Tracker 3.2.6 now released! - Follow the news on Twitter!
Disark - A cross-platform Z80 disassembler/source converter
FDC Tool 1.1 - Read Amsdos files without the system

Imperial Mahjong
Orion Prime

andycadley

Quote from: mr_lou on 17:40, 29 December 24Does the CPC offer any ways to detect from what media the game is running? I don't expect so. Seems Atari Jaguar has much more options there.
It doesn't. And neither does the Jaguar. There is a small community of Jaguar developers who basically agreed to keep some aspects of the cartridge mechanism secret, so it's just security through obscurity. It's not that difficult to defeat if you so choose though (and if you've actually released anything on the Jaguar then you basically have the exact mechanism to do so to all other Jaguar releases).

The problem with trying to do copy protection on any emulated system is the emulators are incredibly good debugging tools.

Gryzor


mr_lou

Quote from: Targhan on 18:36, 29 December 24One possibility (related to what Gryzor said) is to have a different build for every copy. "This copy belongs to Robert Johnson", and the bytes of some files could simply be XORed according to a simple key (probably no need to do something more complicated). Having a personalised build may be enough for people not to give their copy away.
Yes. Not a technical aspect though. And easy to just register a copy to John Doe.

Could also put a startup-screen like: "THIS GAME IS FREE! IF YOU PAYED FOR IT YOU WERE SCAMMED!"

And yes of course such screens can be removed with a certain amount of effort, yes I know.

But do we really have no technical options?
Like e.g.... when running a game on GX4000 via cartridge, is there no way of detecting whether it's running from M4 or real cartridge?
For example via methods provided by M4 that aren't there for a real cartridge? Anything?
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

andycadley

On a Plus/GX4000 you can require RMR2 and/or abuse RAM paging so that it'll break on anything that doesn't properly cope with the advanced Plus features. But that won't stop someone putting it on an actual cartridge.

Ultimately your choices are:

1) Require a hardware expansion that does more than just check for validation. Running the software will require that hardware and this piracy requires developing an equivalent.

2) Charge enough money for a copy that you can afford a lawyer and claim suitable recompense for every stolen copy sold. 

3) Just accept it and make people aware these are scammers and shouldn't be funded.

robcfg

The problems is that hardware solutions would make things expensive and from the software side of things there isn't much you can do.

On top of that, you can have the game downloaded for free and burn it on an eprom for your favourite multi-cartridge solution. It's impossible to distinguish it from a 'pirate copy'.

And once the program is loaded in memory you have no way of knowing where it came from.

Maybe you can contact eBay and tell them that the programs are being sold without any authorization from the owner of the rights to that game.

mr_lou

Quote from: robcfg on 19:33, 29 December 24And once the program is loaded in memory you have no way of knowing where it came from.
Is it possible to check if a tape drive is available without giving an error if it isn't? Possible to check if a diskdrive is present without resulting in an error if it isn't? Possible to test if a cartridge is available? Possible to try to load a specific file from a specific source? That would be one way of checking where it came from at least, if possible.
Do you need music for your Amstrad CPC game project?
Take a look at IndieGameMusic.com - that's where I put my tracks.

andycadley

Quote from: mr_lou on 19:48, 29 December 24
Quote from: robcfg on 19:33, 29 December 24And once the program is loaded in memory you have no way of knowing where it came from.
Is it possible to check if a tape drive is available without giving an error if it isn't? Possible to check if a diskdrive is present without resulting in an error if it isn't? Possible to test if a cartridge is available? Possible to try to load a specific file from a specific source? That would be one way of checking where it came from at least, if possible.
It's really, really easy to patch any such code out. And, in any case, will fail if you load on a machine that doesn't have a tape drive or a disk drive or whatever.

robcfg

Quote from: mr_lou on 19:48, 29 December 24
Quote from: robcfg on 19:33, 29 December 24And once the program is loaded in memory you have no way of knowing where it came from.
Is it possible to check if a tape drive is available without giving an error if it isn't? Possible to check if a diskdrive is present without resulting in an error if it isn't? Possible to test if a cartridge is available? Possible to try to load a specific file from a specific source? That would be one way of checking where it came from at least, if possible.
You could possibly, but it's far easier to to remove that check from the code and burn that into the eprom.

eto

I like the idea of having personalized copies for downloads. Add a name and serial-number and things could become awkward for whoever shares his copy. Or the message "THIS GAME IS FREE! IF YOU PAYED FOR IT YOU WERE SCAMMED!". Maybe not immediately into the game, but after a couple of minutes with an email address to report the scammer. Surely this can be removed by a really skilled pirate but I guess most of these sellers do not have those skills and just use what is given to them. 

For physical cartridge release you could add some additional logic that cannot be easily replicated. That would kill emulation though. 

Or maybe make it possible for sellers to sell a legal cartridge. At least as long as there is no C4CPC successor many people struggle to play games on a real machine so it could even be a great opportunity for some to play it on a real machine. Maybe allow it if the price is "fair" or request that the seller has donated an acceptable amount to the developer?

And for anything that is violating the license, always report it. Especially on Ebay, the seller should be gone sooner or later if he is regularly reported for selling illegal items.

vasilisk

ZaptBalls the advanced edition had a personalized message in the beginning. It was one of the 2 games that I bought original back in the days, and it had the name of the store owner. At the time it wasn't cracked immediately. 

Anthony Flack

It's hard to talk about the technical side without giving a philosophical answer - that any kind of software lock will be trivial to circumvent, a waste of the developer's time to implement, and most likely to cause compatibility issues for legitimate users, if anything. You'd only be repeating the mistakes of the past.

Honestly for all the good it would do, a link to a Patreon account or something like that on your title page would be a better return for less effort. Sign every cart you sell. Write your customers a thank you note. How many carts are you intending to make, anyway?

I am honestly amazed to hear there are people making bootleg GX carts out there. There can't be much profit in it. That actually encourages me to write a GX/Plus game, thinking that there are bootleggers out there who might help circulate more physical carts. Maybe even write a game especially for those guys; call it Bloggo's Pow...

Please support your local bootlegger and play this game on a physical cartridge. 

reidrac

#19
I recall only one case of one guy making GX4000 cartridges of some recent games, and I don't know if it was with permissions of the copyright holders (he may have permission, I don't know!).

Personally I got asked a couple of times about my games, and I gave permissions as there was no profit and the cartridges were made for someone that was fan of my games (clarifying here: so people don't think that I don't care -- don't sell copies of my games, please :picard:).

In my point of view the issue is not necessarily those people making cartridges, it is the people that buys them. I don't believe there are protections worth implementing, is more about the community protecting the few people putting the time to make the games.

P.S.: This thread is not about your personal opinion about whether or not you think it's a problem or not. This thread is about the technical aspect, regardless of how anyone might feel about it. Thankyou.

Oh, well. I didn't see that.

I think the best option is to include a prominent message stating that the game shouldn't be sold or whatever. I assume the people doing the copies will be lazy enough to not remove that; but back to my off-topic response, the people buying them may choose to ignore it as well.
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse, Brick Rick, Hyperdrive and The Heart of Salamanderland for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

Prodatron

#20
Quote from: vasilisk on 20:51, 29 December 24ZaptBalls [...] At the time it wasn't cracked immediately.
IIRC Zap't'Balls has been cracked by XOR only weeks after beeing sold in France. Already on the release party at Marabu EGS found out that he made a mistake with his Anti-Multiface copy protection, so there was no chance.
BTW, I completely agree to andycadley and Anthony Flack.
It always sucked a lot in the past (even regarding demos as well), when people thought they can make a cool new disc system, which is then not working on different machines, is slow, or whatever.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

McArti0

Release the game on RP2354 in enigma code.

CPC:
LD HL,nn
LD DE,mm
LD BC,xx
LDIR

Copy

LD HL,nn
LD DE,mm
LD BC,xx
LDIR

copy OTHER DATA!
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
One chip drver for 512kB extRAM 6128
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

McArti0

Soft for emulatrors working ONLY when eCPC can not unrefreshing VRAM
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
One chip drver for 512kB extRAM 6128
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

vasilisk

Quote from: Prodatron on 22:50, 29 December 24
Quote from: vasilisk on 20:51, 29 December 24ZaptBalls [...] At the time it wasn't cracked immediately.
IIRC Zap't'Balls has been cracked by XOR only weeks after beeing sold in France. Already on the release party at Marabu EGS found out that he made a mistake with his Anti-Multiface copy protection, so there was no chance.


In Greece, I can't recall when. After the purchase, I didnt keep up on the subject.

Brocky

#24
copy protection is non existent on the CPC...every technique available has been used and broken....just my 2c worth....
the only real way would be to require additional hardware eg a security chip on the cart.. but even that can be circumvented


let me pose a hypothetical question...(no im not selling on ebay!)


am i not allowed to build and sell HARDWARE that i spent good time and money on?.. and sell it with FREE software pre-burned on the eeprom?
..i do not see a software licence (eg GPL,EULA) anywhere in relation to that game saying i cant...



Powered by SMFPacks Menu Editor Mod