10 November 2014, 15:20 | #1 |
Retro Gamer
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... |
11 November 2014, 12:15 | #2 |
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. |
14 November 2014, 19:11 | #3 |
Retro Gamer
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. |
15 November 2014, 05:17 | #4 |
Registered User
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?
|
15 November 2014, 09:06 | #5 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
|
|
15 November 2014, 11:57 | #6 |
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..) |
15 November 2014, 12:00 | #7 |
Global Caturator
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
|
15 November 2014, 12:09 | #8 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
|
|
15 November 2014, 14:22 | #9 | |
Registered User
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,773
|
Quote:
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. |
|
15 November 2014, 15:20 | #10 |
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...) |
17 November 2014, 13:25 | #11 |
Retro Gamer
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 |
17 November 2014, 20:13 | #12 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
|
Quote:
|
|
19 November 2014, 17:46 | #13 |
Retro Gamer
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. |
20 November 2014, 09:20 | #14 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
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 Code:
Fingerprint: $7000 $7200 $4e75 $41f9 $0000 $0000 $4e75 The mask: $ffff $ffff $ffff $ffff $0000 $0000 $ffff 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. |
20 November 2014, 09:27 | #15 |
Registered User
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,773
|
|
20 November 2014, 16:23 | #16 |
Retro Gamer
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... |
20 November 2014, 17:24 | #17 |
WinUAE end user
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... |
20 November 2014, 17:51 | #18 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
|
Quote:
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. |
|
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 |
|
|