English Amiga Board


Go Back   English Amiga Board > Requests > request.UAE Wishlist

 
 
Thread Tools
Old 10 November 2014, 15:20   #1
Anubis
Retro Gamer
 
Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,065
Would be possible to get cheat option in EMU?

I think it would be nice to have some sort cheat menu with option to save search/cheats per game/configuration, rather then use limited AR. Option to search memory (if bigger then 2MB) and option to save and enable/disable cheats would be great addition to one of best emulators, imho.

I know we talk about this years ago... but wonder if opinion (and will to implement it) changed at all...
Anubis is offline  
Old 11 November 2014, 12:15   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Same problem: no one has invented (or found existing solution) that is good enough to handle it properly: cheat MUST keep working even when addresses change (if program uses dos loading or if memory config is different).

Easy if you know m68k and know how the code works but that should not be requirement for using cheat feature.
Toni Wilen is offline  
Old 14 November 2014, 19:11   #3
Anubis
Retro Gamer
 
Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,065
So, in short - it will not happen.

Too bad, feature would be good addition to WinUAE.
Anubis is offline  
Old 15 November 2014, 05:17   #4
Hewitson
Registered User
 
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,773
Most games are already trained, what's the point of reinventing the wheel?
Hewitson is offline  
Old 15 November 2014, 09:06   #5
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Quote:
Originally Posted by Hewitson View Post
Most games are already trained, what's the point of reinventing the wheel?
Thats most pointless reason for doing or not doing something.
Toni Wilen is offline  
Old 15 November 2014, 11:57   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Little explanation about problem:

What I don't accept: config specific cheats. In other words, absolute address (for example number of lives) that only works if system has exactly same config. Many games do use absolute addresses but many also don't. It needs to work, even if game is 100% system friendly and loads in "random" addresses.

What is acceptable: some kind of finger print of code that accesses (for example) address that contains number of lives. Emulator in background keeps looking for fingerprint, when it is found, address is calculated and then frozen. (frozen because it also prevents modifications by possible other parts of game code)

Not difficult but complex and boring. As usual.

Cheat Engine (Windows cheat system, open source) does use similar system but it is also really complex, it even supports scripting. Probably (really) too complex for Amiga cheat use case but it does appear to do everything I need (and much more)

(Technically you can use it for emulated game cheats too but I think thats a bit too hacky solution..)
Toni Wilen is offline  
Old 15 November 2014, 12:00   #7
Shoonay
Global Caturator
 
Shoonay's Avatar
 
Join Date: Aug 2004
Location: Porando
Age: 43
Posts: 6,107
There's a super-easy tool for cheating called Cheat ‘O Matic v0.99b

Attached Files
File Type: zip Cheat 'O matic 0.99b.zip (142.6 KB, 158 views)
Shoonay is offline  
Old 15 November 2014, 12:09   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Quote:
Originally Posted by Shoonay View Post
There's a super-easy tool for cheating called Cheat ‘O Matic v0.99b
What does it have to do with this topic?
Toni Wilen is offline  
Old 15 November 2014, 14:22   #9
Hewitson
Registered User
 
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,773
Quote:
Originally Posted by Toni Wilen View Post
Thats most pointless reason for doing or not doing something.
Sorry but I don't understand the point of implementing something that is in most cases already available.

If people wish to cheat with WHDLoad slaves then it would be more appropriate to contact the authors of those slaves.

Last edited by Hewitson; 15 November 2014 at 14:47.
Hewitson is offline  
Old 15 November 2014, 15:20   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
OP surely knows about existing alternatives which don't solve the problem if you want some custom trainer that can be easily used by other emulator users too.

No WHDLoad author is going to bother with those either. (and probably shouldn't except for basic options). Perhaps whdload also should have separate cheat file support instead of having them slave built-in. It probably would not be that complex because whdload already knows address space of game data and code.

Anyway, the point is to have better and generic option. (Which I want to do. Has been in my "features to do " list for many years already...)
Toni Wilen is offline  
Old 17 November 2014, 13:25   #11
Anubis
Retro Gamer
 
Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,065
I am not sure if you will be able to get 'not configuration specific' cheat options. I was thinking something like 'configuration string - this codes work - leave it up to cheat creator to setup each separate configuration, or something close to your default configurations from WinUAE.

I am excited you are even considering making it option in WinUAE, no matter how long it takes to wait.


@Hewitson - games that I would use this for I will not play on WHDLoad anyway. It would be use of built in HD install. Also, most of them don't have trainers...

@Shooney
Anubis is offline  
Old 17 November 2014, 20:13   #12
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Quote:
Originally Posted by Anubis View Post
I am not sure if you will be able to get 'not configuration specific' cheat options. I was thinking something like 'configuration string - this codes work - leave it up to cheat creator to setup each separate configuration, or something close to your default configurations from WinUAE.
Not acceptable. None of dos loaded (relocatable) games would work even if only number of drives changes, different HD config (even single different command in startup-sequence, number of buffers, everything) would make it incompatible and so on.. Totally not acceptable. It MUST work with dos loaded and HD loaded games too. Transparently. Not just trackloaded games.
Toni Wilen is offline  
Old 19 November 2014, 17:46   #13
Anubis
Retro Gamer
 
Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,065
I see what you mean. But what if you just make it searchable in session... no save option for begging?

That would be good start... - start game, search what you need, make change, save or play... once session is closed, you loose your search.
Anubis is offline  
Old 20 November 2014, 09:20   #14
Codetapper
2 contact me: email only!
 
Codetapper's Avatar
 
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
Question

How about some kind of fingerprint that determines a known position, then an offset from that to store the cheat, and allow a mask to be applied for addresses that can change?

For example, maybe the game does a subq.w #1,d0 at a vital point, but perhaps 10 bytes before that is a unique value (possibly masked) that could determine where the cheat is. If you activate that game, you scan for the unique value, and once found, can patch the game.

Code:
        moveq   #0,d0           ;$7000
        moveq   #0,d1           ;$7200
        rts                     ;$4e75
        lea     $12345,a0       ;$41f9 $0001 $2345 - changes so must be masked!
        rts                     ;$4e75
        subq    #1,d0           ;$5340
        move.w  d0,$123456      ;$33c0 $0012 $3456 - changes so must be masked!
        rts                     ;$4e75
You could store the fingerprint and mask as:

Code:
Fingerprint: $7000 $7200 $4e75 $41f9 $0000 $0000 $4e75 
   The mask: $ffff $ffff $ffff $ffff $0000 $0000 $ffff
And finally the cheat would be stored with a label like "Infinite lives", the patch data $4e71 at offset 14 from the fingerprint, and perhaps a type like one off write, rewrite value every frame or something.

It would be up to the trainer maker to identify a safe area for the fingerprint, and if it's using relative addresses, to make sure the mask eliminates those.

WWarp uses a similar thing to identify custom disk formats.
Codetapper is offline  
Old 20 November 2014, 09:27   #15
Hewitson
Registered User
 
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,773
Quote:
Originally Posted by Anubis View Post
@Hewitson - games that I would use this for I will not play on WHDLoad anyway. It would be use of built in HD install. Also, most of them don't have trainers...
Can you give some examples?
Hewitson is offline  
Old 20 November 2014, 16:23   #16
Anubis
Retro Gamer
 
Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,065
Sure: BurnTime, Civilization, Colonization,... Sometimes even run from RAM rather than from HD.

Sure, I can use AR3 if I select 2MB emulation and that is it.

For those games, even if you use WHDLoad and preload option, you need more RAM.

Happy? Hope you prove your point that nothing should be done... because you don't see reason for it...


@Codetapper - that is why nowhere in my nick said 'code'... man, you lost me there...
Anubis is offline  
Old 20 November 2014, 17:24   #17
Michael Sykes
WinUAE end user
 
Michael Sykes's Avatar
 
Join Date: Jan 2014
Location: Bremen
Age: 44
Posts: 649
In a nutshell...
Real men don't need cheats.
sorry for the trouble.

And keep it up.

Last edited by Michael Sykes; 20 November 2014 at 19:44. Reason: ...no idea what I had in mind...
Michael Sykes is offline  
Old 20 November 2014, 17:51   #18
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Quote:
Originally Posted by Codetapper View Post
And finally the cheat would be stored with a label like "Infinite lives", the patch data $4e71 at offset 14 from the fingerprint, and perhaps a type like one off write, rewrite value every frame or something.

It would be up to the trainer maker to identify a safe area for the fingerprint, and if it's using relative addresses, to make sure the mask eliminates those.
Yeah, something like that.

Also cheat data should include approximate offset so that search works instantly in "normal" use case (My plan is to keep searching very slowly, like 10-100 kilobytes/sec, in background all the time which would not really affect emulation speed). No one should care if cheat activation needs 10 seconds or so. Possibly even use usage data from CPU emulator, search only addresses that CPU has executed.

Background search is also needed to handle cases where game loads different code for different parts of game.

In hunk mode "approximate" offset would be counted from hunk number x. In this mode search only checks all loaded hunks only (=dos processes).

Normal cheats (like infinite lives/energy) should never modify code, it would use UAE debugger's memory breakpoint feature to keep memory address contents frozen or forced to some specific value.

btw, No real men or politics or other stupid topics here.
Toni Wilen is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
ZX emu? Baboon Retrogaming General Discussion 8 11 June 2010 19:58
C64 Boulder Dash: any online emu ? or standalone emu? keropi Retrogaming General Discussion 5 13 November 2007 13:03
68060 emu? Tolismlf New to Emulation or Amiga scene 1 01 December 2004 17:20
EMU-UK Problems Paul Amiga scene 6 19 February 2003 14:35
How many emu's can be run within an emu? Fissuras Retrogaming General Discussion 3 11 July 2002 16:55

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:04.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10555 seconds with 16 queries