Search the web
Sign In
New User? Sign Up
gbadev
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Show off your group to the world. Share a photo of your group with us.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Detection of emulator   Message List  
Reply | Forward Message #13452 of 15019 |
Re: [gbadev] Re: Detection of emulator

yerricde wrote:

>dir /s /b \visualboyadvance.exe
>
Heh ;-)

>Oh, you mean you want the GBA program to detect which GBA model
>or emulator it's running on. In other words, you seek emulation
>inaccuracies visible to the running program. I can think of two
>reasons why you'd want to do this:
>1. to present a simplified display to compensate for slow
> computers or inaccurate but popular emulators, or
>2. to discourage unauthorized redistribution of proprietary
> game software.
>
Nah, if I wanted #2 I wouldn't be discussing it in a public forum. ;-)
Actually our code can compensate for the (horribly flawed) gamma
on the real GameBoy, but we want it to also look right in the
emulator. There are many other subtle bugs/differences which
could be compensated for during development.

>Theoretically, it should be impossible for game console software
>to determine whether it's running on Nintendo brand hardware or
>Gateway brand hardware. As emulators mature, the simple tricks
>used to distinguish environments begin to fail. For example, in
>the early days of NES emulation, four lines of 6502 code could
>distinguish the popular emulators from the Nintendo hardware (see
>http://everything2.com/?node=nesticle). But now, as NES emulators
>have matured, it's much harder for NES code to tell where it's
>running.
>
Well, e.g. consider this quote from the VisualBoy Advance FAQ:

5. You have to fix it because "XXX" doesn't work?
If you really want to play "XXX", buy yourself a GBA and "XXX"
and play it. The emulator may never emulate the GBA perfectly,
so some stuff may never work.

This suggests that some hardware features are currently very difficult.
Maybe they could be used to detect the emulator. My first idea was
to time the number of cycles in a loop with different wait-state
settings, maybe that would be slightly different?

>Also try looking at initial values of readable registers that
>may be set differently by the Nintendo release BIOS vs. the
>clone BIOS built into an emulator.
>
Yeah I thought of that also, but unfortunately we use a real BIOS
image with our emulator. (What would be nice, is if the emulators
could provide a standard way to detect them. Of course, it could
be switched off as an option.)

I guess what I'm really looking for is some code that someone
else wrote, so I don't have to reinvent a wheel, but... maybe it
has not been invented yet? :-)

Thanks for your input!

Cheers,
-Pete






Sat Dec 7, 2002 1:55 am

gonz1242
Offline Offline
Send Email Send Email

Forward
Message #13452 of 15019 |
Expand Messages Author Sort by Date

Does anyone have code for detecting the presence of an emulator? Thanks, -Pete...
Pete Gonzalez
gonz1242
Offline Send Email
Dec 6, 2002
4:52 pm

PG> Does anyone have code for detecting the presence of an emulator? under boycott advance DMA copy from null adress gives 0xFFFF and 0x0000 on real hw. ...
porneL
pornelkurna
Offline Send Email
Dec 6, 2002
6:41 pm

... Easy. dir /s /b \visualboyadvance.exe Oh, you mean you want the GBA program to detect which GBA model or emulator it's running on. In other words, you...
yerricde
Offline Send Email
Dec 6, 2002
7:36 pm

... You hit the nail on the head with this article. Indeed if what you are doing is looking for inaccuracies in emulation, then as emulation improves, the...
Graham Toal <gtoal@...>
graham_toal
Offline Send Email
Dec 13, 2002
4:00 pm

... This works pretty well. It has to be run from RAM, of course. detectGBA: ;returns 0 if emulated mov r0,#0 str r0,_0 _0: mov r0,#1 mov pc,lr ... ...
Neal Tew
x4344739
Offline Send Email
Dec 6, 2002
11:01 pm

... Heh ;-) ... Nah, if I wanted #2 I wouldn't be discussing it in a public forum. ;-) Actually our code can compensate for the (horribly flawed) gamma on the...
Pete Gonzalez
gonz1242
Offline Send Email
Dec 7, 2002
3:55 am

... something that works the same on gb/gbc/gba and can detect any known emulator of these systems is to check the voice 3 userdefined waveform.... i dont ...
Groepaz
groepaz2000
Offline Send Email
Dec 7, 2002
11:25 am

Maybe it would be easier to approach this from a different angle. Since you say that you are not attempting to achieve #2 then I assume that your program will...
Phantasm
phantasm4489
Offline Send Email
Dec 7, 2002
2:13 pm

... Thanks, that was exactly what I needed. ;-) Cheers, -Pete P.S. His code works by overwriting the next instruction with a NOP. On a real CPU, the old...
Pete Gonzalez
gonz1242
Offline Send Email
Dec 7, 2002
10:15 pm

I don't know how they could force an emulator to use a copyright protection because the program doesn't aid in copying anything. Plus it's just doing the job...
TJ
treyjazz2k2
Offline Send Email
Dec 14, 2002
4:51 pm

... Well, this is rock-solid for home devving, but it'll not work for commercial software, because the extracode mechanism will be well-known for public (i.e....
Ped
ped_7g
Offline Send Email
Dec 15, 2002
10:42 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help