Jump to content
IGNORED

Detecting if software is running on real hardware


peteym5

Recommended Posts

I'm curious about this also. A practical application would be handling paddle control "jitter" for example. Real-world paddles have quite a bit of physical jitter and, depending on the program, might require some jitter-compensation on real hardware to keep things from jumping all over the place when controlled by a paddle.

 

That said, implementing jitter control logic introduces some overhead and loss of accuracy.

 

So, it would be great to be able to apply some jitter control only if it is real hardware, and bypass that if emulating since emulation doesn't have jitter.

 

I guess a perfect emulator would emulate physical paddle jitter also. ;)

Link to comment
Share on other sites

I asked Phaeron/Avery about this a while ago in some thread which I cannot remember. It was probably around 3 or 4 years ago.

 

I wanted the emulator to look for a specific sequence of bytes set by the loaded program so that the emulator could then do something specific which a real Atari wouldn't. Perhaps it'd kick off an external program or would switch on certain features in the emulator.

Link to comment
Share on other sites

Detecting the emulator is almost always the wrong thing to do.

 

If you are trying to work around an emulation issue, then you need to test for that specific issue. Trying to detect emulators in general is wrong if for no other reason that there are lots of emulators out there with varying levels of accuracy. About the only time it is appropriate to test feature A to change handling of feature B is if you can't reliably test feature B, and that should only be used as a last resort. I've also seen a fair number of "emulator issues" turn into real bugs on real hardware -- the reproduction rate is just different.

 

If you are trying to detect an emulator just for the sake of doing so, there is no reliable way to do so that will work in the future. You have three active emulators with different behaviors (Altirra, Atari800, Atari++) and with continually rising levels of emulation accuracy, five classes of real hardware with slightly different behavior to avoid false positives on, and a handful of internal add-ons and FPGA emulators to throw an extra wrench into the works. There are ways to detect most emulators with a high level of accuracy, but many of those also have a significant risk of false positives on machines that have add-ons. About 80% of Acid800, for instance, will not work with a CPU accelerator. One test program reports an emulator if it sees an H: device... except that there is nothing preventing having an H: device on stock hardware.

 

I have received several requests over the years for a way to control Altirra from within the emulation, but that any such feature would never be enabled by default, both for security and for emulation accuracy reasons. You would not be able to depend on it.

 

Paddle noise is an interesting issue. I have, on my desk, a pair of paddles where paddle 0 is noisy to the point of uselessness and paddle 1 is perfectly clean. No idea how it came out this way, but it exists. Furthermore, there are at least two emulators that do emulate a minimal amount of pot noise in 5200 mode because there is at least one game that doesn't work without it (Galaxian). You can't assume emulator=clean, real hardware=noisy.

  • Like 5
Link to comment
Share on other sites

I think I accidentally came across an issue with Altirra trying to clear the console and waiting for all the console keys are up while initializing the title screen with DMACTL and NMIEN disabled Some of it is copy protection and the other reason is testing to make sure something works properly before it is burned to an EPROM image. I know the FastPot scan thing got fixed in Altirra.

Link to comment
Share on other sites

I completely respect Avery's opinion on not writing emulator specific code / bytes.

 

I'm not saying that it -should- be implemented, but if it was, you could have things like a graphic of the disk manual could be added. All the emulators wouldn't need to follow the same standard, those that didn't look for it wouldn't do anything other than normal emulation.

 

Then you have the opportunity to have encapsulated files. You could have a .xei (executable information) file which includes a .xex inside and a load of extra information. That would require the emulator to support it.

 

I'll repeat once more though that I am not saying that either of these options is a good idea - just a possibility. I can see the downsides.

Link to comment
Share on other sites

I suspect that he has a nefarious reason for all this. He is looking for a way to prevent his cartridges from being dumped and run on an emulator.

I (for one) will go out of my way to purchase his products, only to disable his protection and release them as .xex or .rom, or any easily usable format.

 

I am tired of this nonsense. Quit being paranoid about piracy. That just makes it a better challenge to see who can pirate your stuff.

 

Politically incorrect, but absolutely correct! Speak Freely, Vote Trump! :)

 

Edit: By the way, peteym5, you never know who purchased your product and released it if we all share dumps privately. That makes it easy to find out where the serial number and protection is. Even if compressed, your work will be pirated!

 

Have a nice day :)

Edited by Kyle22
  • Like 3
Link to comment
Share on other sites

It could well be that the intent is for emulator only code, which would allow trial versions on PC but not the real hardware.

 

Certain anomolies likely aren't necessarily reproduced in emulation, that's large part of the reasoning for Avery's Acid800 tests.

 

- Pokey's RANDOM and keycode readings when in INIT state and while returning to normal operation.

- "On demand" SEROC IRQ which isn't reproduced properly by all emulators.

 

- GTIA exploit to have a PM object remain showing for the entire display.

- GTIA behaviour when reloading shift register when a PM object is repositioned but still displaying (ORed, not simply loaded).

Link to comment
Share on other sites

Is this for "quality control" or to prevent software from running in an emulator. Rhetorical question of course.

 

Yup, a see through lie.....There's the old attitude again...

 

No one begrudges a person protecting their software but at least be honest about it and don't invent some nonsense about an emulator issue, it just puts you off his work which is a shame because most of what I've seen running is very nice.

Edited by Mclaneinc
  • Like 3
Link to comment
Share on other sites

I can't work out the thought process at Peteym HQ, lets insult the customers ahead of time and call them pirates, lets make a cock and bull story about emulator issues when anyone with half a brain (well I have a 3rd of a Brain and saw it) can see what this thread is about but most importantly he's almost begrudging about people owning the software?

 

But the facts are, anything that can be read can be disassembled and hacked, a seriously talented person could remove any protection, I mean we are talking about a 40yr old system that has had 40yrs of protection attempts that were all defeated over time so is it so important to make a big thing of the protection?

 

Petey, you seem to have missed the whole point of the community, we look after our own, people's paid software has never appeared on sites because even those with the skill to dump it either don't do it or don't spread it because of the respect for the developer, you have to remember that the respect goes both ways, your attitude really grates with people about certain topics as seen by Kyles angry post, its just anger over the paranoid attitude against people who HAVE purchased your stuff.

 

Protect as much as you like but keep it quiet please, telling us how much you want to protect your software simply prolongs this air of paranoia and distrust, in simple business ideals, its stupid...

 

Paul.

Edited by Mclaneinc
  • Like 1
Link to comment
Share on other sites

Madi’s mentality:

 

By the time "Parasites" are able to break the protection of my Software Gems, the sale target will be accomplished. The “PIRATES” may finally defeat the protection, but I would have milked the sales to the last possible penny (win/win). Possible scenario? :-D

 

Fact: Every one has the right to protect his/her work against illegal misuse/abuse.

 

madi

Edited by Madi
  • Like 2
Link to comment
Share on other sites

My suggestion about limiting software to work on emulation only - invent a hypothetical banked cartridge scheme that would be hard or expensive to reproduce in real hardware.

e.g. have 2 banking registers that have to be written to at addresses which aren't simply decoded like $A123 and $BFE8.

Have the cartridge otherwise functionally identical to an existing one WRT where banks are mapped etc.

Then a "demo" emulation only version could be released which won't work on a real cartridge or real machine.

 

But still it'd require the support of emulator developers which we already know isn't really there.

Link to comment
Share on other sites

Madi’s mentality:

 

By the time "Parasites" are able to break the protection of my Software Gems, the sale target will be accomplished. The “PIRATES” may finally defeat the protection, but I would have milked the sales to the last possible penny (win/win). Possible scenario? :-D

 

Fact: Every one has the right to protect his/her work against illegal misuse/abuse.

 

madi

 

Perhaps Peteym should start every reply "I know you are only here to rip me off" because that's how it comes across...

 

A unique selling point, but not in a good way...

 

Petey, over load the games with protection but do it quietly, concentrate on the selling point...Bored of being labelled a parasite, even posted a pic of me holding a genuine Venture packaged cart with a message to Sal to prove it was me....'Nuff said...

  • Like 4
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

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