Forgot password?
login to RetroAchievements:
User: 
Pass: 

Mandatory NeoGeo UniBIOS protection

AuthorMessage

Salsa
Posted: 30 Apr, 2018 19:52
Last Edit: 30 Apr, 2018 19:57
UniBIOS allows several debugging options, but also access to the database of individual cheats for every game, and that's why all achievements for NeoGeo need to be protected from abusing it. The simpliest solution here is disallowing UniBIOS usage completely, directly from the level of achievement code.
Fortunately part of UniBIOS data seems to be reflected in two address strings in the RAM: 0x00fe30 and 0x00fe50. While UniBIOS is active 0x00fe30 in 32-bit size seems to always brings the same value (for every NeoGeo game) which is 80025632, and it doesn't seem to change after the ROM was loaded. For any other BIOS is always 0, except for the moment the RAM is overloaded by the diagnostic program, after the ROM was loaded.
To protect achievments from using UniBIOS all we need to do is to include a simple protection which will reset when 0x00fe30 in 32-bit size is not equal to 0. This additionally, eventually protect the achievement from unlocking during RAM diagnostic process.

Here is how the protection should look alike (selected in the Achievement Editor):
bit.ly/UniNeo1

Here is how the same RAM region looks when other BIOS are used (here MSV):
bit.ly/UniNeo2

jplima
Posted: 30 May, 2018 00:36
Is there any mandatory about difficulty levels for CPS1 and CPS2?

Salsa
Posted: 30 May, 2018 04:53
UniBIOS only applies to NeoGeo. But generally the best is to use default options (until they are not specified), thus certain protection is recommended.

jplima
Posted: 25 Jun, 2018 02:25
Thanks.

login

login to RetroAchievements:
User: 
Pass: 
or create a new account