My comments about all this ...
First, I think that almost everybody is aware that I'm running MAME on the "crappiest" computers of the world : a P133 with 48 Mb of RAM, and even a 486SX-25 with 8 Mo of RAM ...
I admit that I haven't tested yet 'ddsom*' (the game with the biggest number of cheats !), but the number of cheats for a game CAN'T have an incidence on the loading time as all the text file(s) is (are) read from the begining to the end ...
FYI, I'm loading FOUR cheat databases for a total of a 8 Mb text file, and there is no MAJOR slowdown, neither on the loading time, and neither when you activate some or all the cheats !
Splitting the big cheat file into small cheat databases can be done (that's what I do to avoid merging WIP games that aren't in latest MAME release), but not the way you want it for multiple reasons (some have already been mentioned) :
1) A file for each single game would cause LOTS of loss space on the hard drive ! Imagine a DOS user with 32 Kb (or even 64 Kb !) clusters, all cheat files will need more than 100 (or 200) Mb ... And zipping the files in a single cheat.zip file would be worst, as this would mean, if you don't have zipmagic or zipfolder, to write code to support this feature and the IMPOSSIBILITY to save the cheats while you are in MAME !
2) Having single files would be harder to maintain, especially when the game gets renamed, and as Pugsy said, there is a risk that you lose a file, so you lose some cheats
3) A file for each single game would mean, "one file = one game (= one ROM)", so there would be ?#! questions such as "I have a xxx cheat file, so where can I get xxx ROM ?", and this is AGAINST MAME licence !
4) Even if I have do some tricks (= "removing" some drivers/games) to make CheckCDB work again, the tool is VERY useful and it wasn't meant to work with multiple files ...
The clones/parent relationship CAN'T be used for the following reasons :
1) This would mean to have an "equivalence" cheat list ... I know that Pugsy has written one (or sort of), but I don't want to bother with this ...
2) Most of the time, clones on different hardware than the "main" set use different addresses, which isn't surprising as the memory mapping is different ...
3) Some manufacturers (eg: Williams or Konami) seem to be completely rewrite the game code during their revisions, so the "parent" cheats are useless ...
4) Some clones don't have the same number of players than the "main" set, so you would have unneeded or missing cheats for them ...
IMO, if you want to split the main cheat database, you can try to create a file for each manufacturer, but the "best" idea would be to create a file for each driver/system (eg: one for NEOGEO games, one for CPS games, one for Taito F3 games, and so long) ...
I now have a question : why don't you want to use TEXT files ? You can't imagine how easy to work on the cheat database this way (especially for people who only want new cheats so they only have to copy/paste the ones from the board into their file) ! And even with this, there are still some people asking ?#! questions ...
I'm now wondering too why the cheat stuff should be for PC only while the best advantage of MAME (besides the number of games) is that you can run it on many platforms, and you'd be surprised to know how many *nix or Mac users there are ... I know that the previous cheat engine was mainly DOS-based, but that's why it has almost fallen into oblivion for about 2 years !
My final question is why would you want to change the cheat engine ? My girlfriend JCK has added many features in it for a year (mid 1998 to mid 1999), and it took about another year to Ian (who is a far better C coder than her or me) to rewrite everything and include the many submissions we have asked for during this time ! And I don't think that Nicola would accept to check thousands of code lines again coming from an unknown person ...
Feel free now to comment all this
Steph from The Ultimate Patchers
Visit
The Ultimate Patchers' site 