Desty wrote:This is very exciting! I wish you would livestream the process of investigating, cracking, fixing, enhancing and testing... it would be really interesting to watch.
Well, that's very slow and even boring process, most of time
That livestream would be good only for people with sleep problems
Basically, it is lot of tracing using Steem Debugger. Which is excellent for that purpose. But game's machine code is very hard to trace and understand, because is done with C compiler. There is little ASM, for screen mostly. Enhancing is part what needs some experience with games. My first idea was that scroll is not enough small step, but when I looked how many Vbl-s takes 1 main loop cycle, U realized that it is 10 fps only. Doing it with Steem Debugger took only couple minutes. Then came smaller shock: there is 3x in row waiting of 20mS (pretty big time for computer) in main loop. When I removed it, got instantly 25 fps. That was easy part. Because everything went too fast. After that very slow seeking for what determines speed of ship, enemy fire, gravity effect (it went 2.5 stronger), etc. All it took 10s of hours.
Testing is done mostly with Steem Debugger - and you can speed up it to simulate partially TT, + many other things. Then I tested on real Atari Mega ST and Falcon. Details lower.
CiH wrote:Out of general interest, how many layers of copy protection were found in the end.
Plenty. Protection is very similar to what is used in Dungeon Master. There is 3 separated XBIOS 8 call for readomg fuzzy sector. That's easy to locate.
Then, there is 3 hidden direct floppy access code call, where code is not present at start of game, but it loads short part from OIDS.LIB, decrypts in workspace, and then executes. That code is only some 100 bytes, and soon disappears. So, there are 6 places for floppy protection sector read.
Then it looks for fuzzyness , again with code what is encrypted in LIB file. In DM it is hidden in main GRAPH file.
If checks fail, it will freeze oids, or if fails in later stage will make fire ineffective.
I solved in earlier version it by supplying to checks 6 alternating samples of fuzzy sector (system what worked well with DM), simulating org, floppy.
For reassembled I removed all loads, found locations which do checks, activate screwing of game ... All in all, there are changes at about 20 places.
New test v. May be final :http://atari.8bitchip.info/TestMe/OIDMPRE3.ZIP
Lowered players fire and autorepeat speeds, so less collateral oids damage
Lowered push/pull effect of such fortresses - it was increased too with bigger fps rate.
Added speed control for faster machines - now should be well playable on TT, with 30 fps .
On Falcon there are gf. errors, that will be fixed in HAGA version.
On Mega STE at 16 MHz smoother at complexer planetoids, but not too fast for play.
Some code cleanup.
Version shown at start is now 1.2 .
Negative feedback has usually positive effect.