ZX Power #04
09 января 2000 |
|
Likbez - RESTORATION OF GAME # 3. The final article.
REHABILITATION PROGRAMS Part 3 (C) 1996-99, Alexander Desyatnichenko __________________________________________ Restoring the game regularly natykaeshsya to the sources, which is very difficult find the starting address - the program is bad readable, scattered pieces of the entire memory, mixed in with boxes, graphics, texts, etc. Now I will describe a method by which you can almost always find the beginning of the program. To do this, run the STS and download it to your entire game - from 16,384 65535. If necessary, have to decompress all the blocks and put on a place that part of the program, which should be placed in the addresses of 23,296 on 25000, do not forget just before this move a resident of the monitor to free space in the display area, approximately area 20000. In other words, you must post game so that it was fully ready to launch the usual procedure of the registers. Now find this very procedure, it is always in the screen and begins: LD SP, (16384). Address may be different, but He is also sure to be within the screen, after that line go numerous POP, then the definition of IM 1/IM 2 and, finally, RET. An example of such a procedure I cited earlier in this article. Install software counter to this initial line, and pressing SHIFT + Z, step by step, do this procedure. What gives? First, "remember" the stack, then out of it will retrieve the values of registers at the time of breaking games and you will be able to observe these values. Then look carefully at the cursor and determine which interrupt mode was installed at the time of burglary and, finally, most importantly - on the team you RET tumbled into the game code itself - just at the a place where it was stopped click multifeysa! What more do you want? Moving from this point up the program, you will find in any of its beginning, the more than that now know, for example, were recorded anything in IY, where the default usually 23,610, does IM 2 and etc. Look again at the address where you now set the stack and check for Is there any addresses some interesting ... Now a few words about the games with loadable levels. So, if you tried to pass through STRIDER, then, of course, stuck on the last (fifth) level. More that - even with the downloaded Internet'a source has the same glitch. When you restore it turned out that one of the three blocks of this level was discharged the desired length, but ... the wrong address! Perhaps the mistake was allowed even the manufacturer, at least a working version of the game to me does not fit. Download this unit in the game and unloaded it, as expected, was all put into place and, finally, give the user the full version games, including picture and music to 128K, taken from an Internet source. By the way, efficiency levels can be try to check immediately. For this "Slips" game instead of the first level, say, third or fifth. In most number of cases will be, if not, then have to deal with the internal system variables of the game and make the necessary changes in order to convince the game that it has what you need. Reviewing the way the whole program, we can now collect it in a bunch, immortalize, to write intro, etc. By the way, anyone interested, read the note to the SHADOW DANCER, where MAX IWAMOTO leads the whole epic of the work on restoration of levels to screw up this toy. And there are games written in languages High-level, which, if not strange, also someone threw Magico. For example, well known to you adventyura TELLYWISE, (Actually, in our opinion "TELLYWISE" is not adventyuroy and television manager, of course, if it is not any other game of the same name ... - Ed.) Made almost entirely in BASIC. Such games have to decompress, to load and unload the STS BASIC guise codes. Then rename the file extension, download this file, as in BASIC normal mode, and find the line to automatically run again to unload, as normal beysikovskuyu program. You, of course, well known and numerous games of SHOW BROTHERS (ATLANTIS SOFTWARE). This, for example, HEARTBROKEN, SUPERKID 1'2, IRON SOLDIER, SEA HAWK, CAVEMANIA, DOWN TOWN, KOSMOS, etc. They also were not made in assembly, and whether at some high-level language, followed by compilation, either through a membrane to create games. Moreover, the games are written in such a way, turning to the system variables and, if there is not something that was in the writing of these games, then in during the game, all sorts of bugs type of dwelling on level ground, hovering in the air, bullets and more. How do I restore these games? For this need to find a game of unrecovered mates, for example, SEA HAWK and take her a piece of 23,552, 203. Then this piece povstavlyat all these games, ukompressirovav it together with the whole game or making LDIR to this place. Unfortunately, many of these games have already been lost. User to see glitches, thinks game spoiled and erases it. Once upon a time I had the game INTERALIA 1990 from SHOW BROTHERS, and now I'm looking for it to recover and I can not find anywhere. Often the cause of inoperability programs on different types of computers can be and the computer itself. For example, many game companies HEWSON (ELIMINATOR, EXOLON, CYBERNOID, BATTLE VALEY, etc.) to determine the amount of memory to obrashayutsya ROM, having in mind that for 48K and 128K of ROM used different, but by checking the contents of some single-cell ROM, this check will return erroneous result, unless the ROM stitched outside the box. Here is an example of the game BATTLE VALLEY: 45269 LD A, (14446) 45272 CP # FF 45274 JR NZ, 45281 45276 LD A, # 01 45278 LD (61297), A 45281 ... As you can see, checked cell 14446, and if you have a non-standard ROM, the game will go only in the mode of 128K. In this case should be corrected in the text programs to be inspected at ROM and any cell of the system variables For example, 23388. In this cell, as we know, # 00 when 48K and # 10, if you have a 128K (If you are, of course, did not change this value shift memory pages of BASIC or, say, placing it unpacker). Approximately the same reason prevents a 128K play music for AY programs ACTION FIGHTER and LITTLE PUFF. An interesting effect observed in the "Leningrad" at startup Games SERGEANT SEYMOUR ROBOTCOP - game menu appears, made bungle font. Zaterev a couple of "left" OUT'ov at the beginning of the program, you can make it decent work on any machine. Chastenko faced with polling the keyboard, when, after IN A, (C) there is a check by not setting the bits, and check on the specific value type CP # nn. Naturally, on the company's problems with a wheelbarrow This will not, but our avoidance of battery can get anything you want, because together with the necessary bit can toggle and a couple of "little other". Naturally, the game in this case or would not respond to keyboard as ABU SIMBEL PROFANATION, or perform any action you like, but not then what you need. Alteration of such a survey on the keyboard bit at a time type checking BIT n, A solves all problems. And now let me make one small recommendation, it does not concern how many threads recovery, many topics modernization of games. Is not it true, it is sometimes annoying when the good and not very old toys, all the inscriptions (including the main menu) displays the usual, ROM-shnym font. Comes to mind is the idea that Is it so difficult to use if not a single font, but at least thicken one in the ROM, because it is so simple and requires only two extra bytes in subroutine print. Mezhdu second and third row standard LD B, 8 LD A, (HL) LD (DE), A INC HL you just need to insert the RRA and the OR (HL). So way for one time with the restoration of can improve the design and if the game is, of course, would make such a box, and does not carry the inscription, for example, by RST # 10. And the last time. Beginning with the first rooms and even print media rose question of the so-called port # FF, thanks to which most machines were not working DUET, SHORT CIRCUIT, RENEGADE and etc., as a general ARCANOID sat dully revive it offered only by technical revision of the computer. Intrigued, I dug into this very ARCANOID and found the following point: LOOP DI IN BC, # 28FF IN A, (C) INC A JR Z, LOOP Replacing it is the case for the fragment LD BC, 2580 LOOP DEC BC LD A, B OR C JR NZ, LOOP not only managed to run the game, but also to regulate flight speed of the ball, changing the initial value in register Sun decelerating cycle. There were many versions of why it was should be done in the Spectrum this same port # FF and some of it good. Bulk reasoning boiled down to this port was needed in order to better synchronize the movement of objects on the screen accordance with the progress of the ray picture tube. AND Now, recently, found in the same internet'e curious document that the port # FF was designed to protect computers from the manufacturer themselves pirated fakes. Sinclair Research sent to the address major manufacturers of software, in the above privacy OCEAN and IMAGINE, a secret request use port # FF in its programs, as well as all necessary information about the port. In 1996, the year when the computer started to officially produce and others firms, there were problems with the old software, which used port # FF. Firms IMAGINE OCEAN and apologized (!) users to new machines and released remixes of their old games, but without the use of this ill-fated Port. So there were games ARCANOID 128K, SHORT CIRCUIT 128K, etc. On this pleasant note, I, perhaps, to finish this article, I hope you have found here at least something interesting and useful for themselves. If so - then the supplied objective is achieved, and I'll be happy to write for you are many items of this style. Gratefully accept any feedback and criticism at all of what I'll laden pages ZX-Power, please email the publisher. __________________________________________
Other articles:
Similar articles:
В этот день... 21 November