ZX Power #04
09 января 2000 |
|
Likbez - CHEATS & POKES. The last two parts of the cycle.
CHEAT and POKES in game programs Part 2 (C) 1996-99, Alexander Desyatnichenko __________________________________________ Thus, our assumption is justified. DEC A team at 46,278 number of lives decreases by one then again sent to the permanent storage in cell 48249. Well, let's try guide the work of this procedure in its channel, deletion of the command DEC A. The easiest way, of course, to score a zero, which is translated to machine language code will be mean that in the cell during the program will not run no operation (NOP), well, the language BASIC it sounds even easier - POKE 646278.0. Now, if you insert a boot line with an expression before launching Games team RANDOMIZE USR, how much would be your hero in the game did not die, it all will still be in stock 8 other lives, other words, you make him immortal. Similarly, the game looks and a procedure that adds life with a successful game: 45314 LD A, (48249) 45317 CP # 08 RET NC 45319 45320 AND A 45 321 INC A 45322 DAA 45323 LD (48249), A CALL 45326 47988 Rostral first checks to see if the number of lives of eight, and if it less, there will be increased by one team INC A. Let no team scares you DAA, - it is needed to prepare a number of lives to print on the screen subroutine located at 47988. Takoy same CALL 47988 you'll find and post-treatment, defining and consuming lives. Commonly used are two ways to prepare the numbers for Print: or the same number of lives once given the # 30 more than necessary, as done in WAR MACHINE (LD A, # 35), or by adding the number # 30 to the number of lives before printing (ADD A, # 30). In many games, given the number of lives, bypassing the battery, using the register HL. So, in a game CORSARIOS 2 is done so: LD HL, # 05. Often decrease the life also produced through the same Register: LD HL, 24851 DEC (HL) JP P, 25018 It was a piece of game BATMAN 3, and Program P-47 the FREEDOM FIGHTER used the combined method: LD HL, 29964 LD A, (HL) DEC A LD (HL), A Pursuing obessmerchivaniem games soon you come with such a situation, when scoring zero command DEC A or DEC (HL), at the first pogibanii program will a familiar message: "GAME OVER". The point that many of the program immediately after make grabbing the flag checking, and NOP command in that case, let the program in the wrong steppe. In this case, and, better yet, in any case, instead of NOP to be used single-byte command OR A and OR (HL), respectively. This you may have observed by looking at lists POKES, where addresses instead of zero is entered 182 or 183. And now the other, less spreading of ways. The game NETHER WORLD, for example, you can find another way dec lives: 33547 LD A, (65405) 33550 SUB # 01 33552 LD (65405), A In this case it is sufficient instead of # 01 put # 00 and let them take at zero lives every time. Sufficiently original method of taking a life by using the SBC, as is done in the game SABRINA: LD HL, (24618) PUSH DE EX DE, HL LD HL, # 01 EX DE, HL AND A SBC HL, DE POP DE LD (24618), HL Disrupt the normal operation of such a fragment is more difficult, but it is also possible, for example, scoring zero in the SBC HL, DE and yedinichku in LD HL, # 01. By the way, sometimes it happens that such podprogramy end directive RET and called from the main program's through CALL. Togda simpler way - supply RET (from BASIC - 201) in the same beginning of a subroutine CALL to here how come, so with nothing and left without doing any edinigo action. Among hackers is valued precisely this way infinizatsii games when a small Number POKES achieved the highest returns. In the complex, difficult and, as a rule, very interesting games often all limits in the including the number of lives are saved in a separate table, the sample from which made through the index registers. Thus, the program CASANOVA number of lives given as LD (IX +43), # 05 and, accordingly, diminish as the DEC (IX +43), a in the game TERMINATOR 2, you can watch phenomenon: DEC (IY-5). Often these plates are kept separate and after the GAME OVER LDIR holds her to a job as is done in PRINCE CLUMSY or RETURN of the JEDI: LD HL, 54079 LD DE, 54059 LD BC, 20 LDIR And shortly after taking a life itself: LD HL, 54059 LD A, (HL) OR A SCF RET Z DEC (HL) In some programs, events planned in such a way that the number of errors with every bad case of increases and, when reaching a certain value the game ends. For the first time I have a I saw the game HAMMER BOY: LD A, (42097) INC A LD (42097), A Incidentally, in this game, counting errors in a similar way is in two places and if even one of them reaches the limit, you'll need to start playing again. Similar kind of methods are also applicable in cases where control of one and the same limit of one and the same fragment program is not possible or if the various Error consuming different amounts of lives. It is natural that after the hackers began to "cycle" of the game, the programmers manufacturers have begun to take action against such activities. In routines that reduce the number of lives began to be applied, as in a game TARGET RENEGADE, undocumented commands, or as in JUNGLE WARRIOR, a shift of bits in a byte. Find things much harder, and that can you say, if you make a good coder pose the problem to taking a life so that no one has found, I think many would have coped. In such cases, you can go for a trick and do something another. So, once I could not find taking a life in the game MAD MIX, but easy found a site where to set the number of lives and a fragment, where there was a check remaining values are: LD A, # 03 LD (24624), A ..... LD A, (24624) AND A RET Z Even this was enough to her immortalize, because each test is times after once they take away life. A What if instead of checking to do again entering in the 24624 C grade? Especially because such a programm will occupy as proverochki program, the same five bytes. So the game will now take life, but immediately after that, instead of test, install all of the same three lives. 5. Infinite time, weapons, energy. It frequently happens that in the heat quickly shoot all the ammunition, and then suck his finger, until they kill. Naturally, there is a desire to do it all infinitely eternal. Well, that complex nothing, especially as it is done roughly the same methods. For example, in the game HAWKSTORM you are given 50 rounds. Exploring native code, it is easy to detect LD A, 50, and then, respectively, and cherished DEC A. Time is also often given, and subtract the standard, that's how it looks in the game ROBOCOP 2: LD HL, 43224 DEC (HL) RET NZ But in some cases and harder when the hours, minutes and seconds are set, checked and subtracted (or increase) separately. Well, very very often faced with the most interesting kind of limits - of energy. Let's start with the simplest form of the representation of energy - a numeric, when the energy is displayed as a large number such as 100 or 1000 units. This can be seen for example in the game CAPITAN TRUENO, but, once again, everything is standard: LD HL, 58943 DEC (HL) JP Z, 24042 In contrast, the number of lives, often subtract several units of energy, as in the game TIME MACHINE: LD A, (60499) SUB # 03 LD (60499), A Sometimes the most difficult task is determine how many units of energy is our character at the beginning of the game to from what was then danced in the search process. Because energy is often displayed on screen in the form of stripes. Well, if it consists of individual elements and their like in Game FORGOTTEN WORLDS, for example, can count. But when such a gradation is not, on that just do not have to hope - take it slowly when killed, through the how many strokes will Khan or, say, estimate for the pixels around, and then try to find something like that ... Well, now the most extended ones method of grabbing power of games in the series SIRWOOD. So, it was possible to determine what was originally given 48 units of energy and stored it is in the 59850 cell, subtract the same with the command SUB: LD C, 2 LD A, (59850) SUB C BIT 7, A JP NZ, 39989 BIT 7, C JR Z, LOOP CP 1948 JR C, LOOP LD A, 48 LD (59850), A JP 42272 LOOP LD (59850), A How to see a number of drifting takes energy, it is subtracted from A with subsequent testing. This grabbing has many advantages, because you can deduct different amounts of energy. Such it may be necessary when, for example, requires that different kinds of monsters of varying strength applied to the hero of damage. Agree, it makes the game more attractive and realistic. In principle, this subroutine provides plenty of space for your Creativity can be for her to pick up a few different POKES and each will sell its infinite life, well, very simple here, of course, just score zero command SUB C. Something like this found in Teenage Mutant Ninja Turtles (TURTLES): LD A, (24422) LD B, A LD A, 16 SUB B Moreover, in this game one program subtract the energy of all four turtles which is certainly convenient in terms of obessmerchivaniya. But when you try to pass further, you will have another limit - time during which the turtles must have time turn off all computers, so have "Cycle" is now more and his! Do not be surprised, like you find a good yet many, especially in games where each a new level a new job. Or here's another situation - in the game HUMAN KILLING MACHINE after you immortalize it, the first levels will walk easily, but then at the last level, after each of your stroke the enemy as quickly rests, that you do not have time to knock him this energy! Hence, will have to find a place where it is added energy and eliminate this surprise. And here is an atypical case of grabbing power from the full game XENON: LD HL, 52262 NEG ADD A, (HL) LD (HL), A RET C LD (HL), # 00 Is sufficiently original to work with energy in the game BRONX: LD A, (64813) XOR (IY-107) LD (64813), A Again, the games of ATLANTIS SOFTWARE (SHOW BROTHERS), written at some macro language and compiled into machine code. All limits are given here in terms of HL, and protsedurkoy handled working with memory cell in which this limit is stored. Enough to put there RET, to immortalize one reception all the limitations. And yet such zamorochki. The game CORSARIOS with the numerical representation of energy, according to the screen is given 600 units. Digging in program failed to find a place to featured a number. After playing a little more closely and looked closer to the way diminish the energy, I noticed that enabled only the first two digits, and Last zero there like a beauty ... A minute later my assumption is justified since found LD HL, 60, and more a minute later the game was already in obessmerchenom form. 6. IMMORTAL as the most powerful form of immortality. Compared with INFINITE LIVES, word IMMORTAL (invulnerability) appeared in the lexicon sinkleristov not so long ago. In 1992, in England was released programm HAKER AMAZING, which contains numerous POKES and firm cheats, among whom there were also a new word. Many users experienced published there IMMORTAL, were simply amazed by their work, then this concept is firmly stuck in our own midst. Remember, VN Rodionov in the game R-TYPE called this mystical POKE? What is it? You've probably seen how many games, after your hero uhryukayut, he appears again, but while a few seconds pomigivaet, though preparing for new adventures. Moreover, until it blinks, it is virtually invulnerable that is, it does not take a bullet, do not press the tanks, and sometimes he did not even sink in water. Who porastoropney, that in those seconds could even contrive proprygat several sites, passing thus difficult place, thing, where your hero is honored to be murdered last time. But what if you do, so that the character of all time, the game became so invincible, only to not pomigival? This is what will be the most that neither is IMMORTAL! But how do I find it? You can, for the time that the character pomigivaet somewhere is given and taken away. Here's an example, perhaps the most famous games BUBBLE BOBBLE: 43832 BIT Z, (IY +90) 43836 JP Z, 43998 Time of invulnerability is stored in the plate go check it and if we replace JP Z by JP and put the number instead of 90 150 (in the cell is always what we need now) You can easily become invulnerable. And now, a fragment of SOLOMON'S KEY: 49318 LD HL, (49813) 49321 LD A, L 49322 OR H 49323 JP Z, 49390 49326 LD DE, (43206) CALL 49330 49356 49333 OR A 49334 RET Z If this fragment to replace the conventional RET Z output to a cardinal, and RET, thus cutting off part of the program responsible for handling the collision with the enemy, there would be more on them distractions and concentrate on the logical specification of this very exciting game. And in the game JACK the NIPPER 2 to address 41218 is an entire subroutine is responsible for the conditions of the collision with the enemy, water and the walls and if these protsedurkah substitute for solid OR A XOR A, then we can customize the program completely on your taste, such as jumping, no breaking, with any height. Now the main principle of the search invulnerability. So, you first need to find where in the game away the life and then watch from the this place higher, figuring that perform those portions of programs that worked before take life. So you can find a fragment, where the collision is being processed, and then let him in your scenario. Usually have to do RET to a subroutine or circumvent it, putting an unconditional JR. Sometimes, though, is sufficient, as in CABAL, scoring zero DEC A, or, as in F1 TORNADO SIMULATOR, fix SUB # 01. the end of the second part __________________________________________
Other articles:
Similar articles:
В этот день... 3 December