I'm trying to start something constructive here at beginning of new year.
Seen that some people is interested in this - like guy who wants to use some special controllers for better gameplay. And generally, people is curious how so called "cracking", "patching", adapting goes.
For start: this is not easy. Source codes are not available for some 99% of games. Most of them is coded in ASM, or partially in ASM . Beside 68000 ASM knowledge you need knowledge about Atari ST + followers (TT, Falcon, if want make it compatible with them) , and even pretty good knowledge about TOS - for instance because bigger %-age of games using TOS calls (and I know what I'm talking after dealing with over 1200 games) .
I will not talk here about 'cracking' copy protections. Only that it is now much-much easier when you have some STX image (or SCP), so images which hold copy protection too - with using Steem Debugger instead real Atari .
Yes, for efficient work Steem Debugger is best tool. My opinion, of course. If someone don't agree (Hatari people ) please start new thread with your version how to do this ...
All it needs time to familiarise with, of course. Plenty of time.
First question: what is target system ? What storage ?
Like: only Atari ST, STE. All from ST to Falcon. Only STE ... Sub question: What TOS versions ? - All regular. Regular + MagiC, Mint (even if they are not actually TOS v.)
Floppy only. Hard disk or rather Flash cards now. Both.
And here comes first big diff. between 'cracking' and some more up to date 'adapting' for hard disk usage. To make it work from mass storage, in most cases serious changes are needed.
And just crossed my mind: some prefer faithful copies of original. Well, this is not about it. Stop reading
For the end of this first post, I will describe already used and possible ways of replacing floppy access with hard disk access, in case of Atari ST games.
1. No need to do anything, except copying game files to hard disk. Some games even have installer APP for that. But that's less than 5% .
2. Little harder: need to copy all files to hard disk, but it will work only after changing filename + path strings in game code - to relative one.
Like: there is A:\TITLE.PI3 or a:\title.pi3 in code - obviously, it is made with floppy A only in mind. So, just need to delete that A:\ - in Hex editor by moving name self 3 bytes left (lower), and add 0 terminator to end of it. Then it may work well from any directory on hard drive. I did it in many cases. Sometimes was enough, sometimes further changes were needed.
3. Instead filename based access, game using XBIOS 8 floppy access (Sundog) . Then need only to copy ST image file to hard disk, and run launcher program, which will first change XBIOS 8 (floppy read) and may do same with XBIOS 9 if there is some write (for Highscore or whatever) service code, that access that ST floppy image file instead real floppy - more precisely instead FDC in Atari - since we have not HxC and Gotek devices
4. The hard part: games which use own (custom) direct FDC access code. That needs really good knowledge of mentioned things above.
And we have diverse solutions to replace FDC access with hard disk access:
A: FFLS by Superior . It used own, and only ACSI port hard disk access code + FAT16 filesystem code, but only for partitions up to 32 MB - no BigGEM partition support. It worked pretty well, and they released about 100 games with that system. It was more than 20 years ago.
B: ULS by D-Bug - they took principle used in Amiga WHDLOAD - what is basically swapping of RAM areas during gameplay and disk access. That makes possible to use installed hard disk driver. Of course, many other things need to be done that it work.
C: Mine system, used with Gamex type releases - it is actually similar with FFLS in using hard disk access code without need for RAM area swaps. It can move up PP drivers (they are PC-relative code), or install AHDI or Hddriver in high RAM with little tricky solutions. That means faster work, and lower compatibility - since other driver versions are not supported.
What about FAT16 filesystem ? Of course, 32 MB partitions are past, we need support for all what TOS 1.04 supports (as latest ST TOS version) . So, why not use TOS code self for it ?
Yes, that's how I solved it. Disassembling GEMDOS part of TOS 1.04, making modifications, and running it in high RAM. Needs about 90 KB + workspace. And disassembling of TOS 1.04 resulted in another huge benefit: solution for TOS version compatibility problems. Little different mods in it, and then that's good for games using TOS calls for floppy access. No need to 'patch' game code for different TOS versions, we can use TOS 1.04 on any machine - starting at ST with TOS 1.00 up to Falcon. Of course, will need min 1MB RAM for 512 KB games, but that's already requirement when want running games from mass storage. And there is still space for statesaves, for saving TOS workspace content - talking about ROM TOS in machine.
In next part comes HAGA and complete new, most efficient solution: RIA (what needs improved TOS ROM) .
To be continued ...