Detecting OpenMSX or RealMSX?

Page 8/10
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10

By Accumulator

Champion (331)

Accumulator's picture

04-03-2023, 03:02

Just wondering.... If someone tested the routines, does it give desired results?
Or I am I far off and just being autistic and living in my own world where it works?

By Wlcracks

Hero (565)

Wlcracks's picture

04-03-2023, 08:42

Doesn't work on MSX1 oO
Maybe this code could fail after an update of openMSX? So do you think this is a stable function?

By Manuel

Ascended (19462)

Manuel's picture

04-03-2023, 11:32

Please be clear on why you would like to detect the emulator... As Wouter explained, the goal of perfect emulation is that it cannot be detected. So a good detection routine is an emulator flaw that should be corrected.

By Wlcracks

Hero (565)

Wlcracks's picture

04-03-2023, 13:05

Well a perfect emulator cannot speedup processing, save states, save screens, pause games etc... So i don't really think that's really a reason for ignoring this option. It still should be available in the openMSX options, and default off. Like i said before, would be cool to read the openMSX debug I/O port if its available.
For me its easy to explain, I want my MSX software in debug mode running on openMSX and in release state on realMSX. While in developing stage, the final release should ignore the debug mode.

By Manuel

Ascended (19462)

Manuel's picture

04-03-2023, 14:15

I disagree: the perfect emulator can do all these things, but the running software will not be affected by it, i.e. doesn't have a way to know whether this was done or not.

Detecting an emulator is not the same as having debug options. But these do not have to be detected in the running MSX software, do they?

By Wlcracks

Hero (565)

Wlcracks's picture

04-03-2023, 14:40

ok

By Accumulator

Champion (331)

Accumulator's picture

05-03-2023, 03:50

@WIcracks,
Which one does not work on MSX1? If you increase the quantity of checking the F flag , still negative result?
I used the minimal quantity of refresh (MSX2 works), maybe increasing the value of RFRSHQ to 16 instead of 8 might resolve in the result.
Please inform!

In my opinion an emulator can ALWAYS be detected.. Depending on CPU and VDP. The base criteria is the official documentation of the/chip. If go outside the box, it is detectable. Like undocumented opcodes or undocumented VDP registers . Not to forgot, substituted registers, for example is there are only 16 registers, try register 140... different result is not emulated correctly..... MSX1 or 2.. VDP register 1, bit 7, or VDP register 9, bit 6......... Many possibilities possible!!

If it does not work on MSX1, i will buy one and test it. I am 100% sure it will work with changing the qty of checking F state.

Note: the more simplistic the cpu or vdp the more easy it is is to detect.
Detection of TMS9928A/TMS9918A/TMS9929A is possible using refresh register, 50/60HZ,
emulation is completely different type of game.
Emulation is always detectable, in one way or another......

By Wlcracks

Hero (565)

Wlcracks's picture

05-03-2023, 10:16

here you go
vg8020/00

By Wlcracks

Hero (565)

Wlcracks's picture

05-03-2023, 10:18

I think exact timing on a MSX1 is a interesting thing, because a lot of MSX1 use stock chips and logic, the timing can all be slightly off versus an MSX engine (yamaha) chip.

By Manuel

Ascended (19462)

Manuel's picture

05-03-2023, 15:32

@accumulator for all of these examples, I'd like to see a demo program to prove it is working. I think most of them are either correctly emulated or also vary between real MSX models.

Page 8/10
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10