-
Part 1: Hello Z80!
Introduction When I was a child, my father bought us our first computer. It was an Acorn Atom. I remember it had no storage, so when we wanted to play a game, we had to enter the code for the game from a printed listing in a magazine or a book and run the game.…
-
Part 2: The Z80 memory
The Debugger In this post, I assume you have BlueMSX installed with the game Dragonslayer 6 running. Also, I assume you have spent some time playing and getting to know the game. Some of the BlueMSX commands come in handy, especially (quick) saving and loading the machine state and speeding up to make grinding a…
-
Part 3: The Personalities
Where are we? In the previous post, I suggested you to find Ro’s HP and change the (max) HP and MP for each of the characters. Using the current value of 177 (dec), we can convert this online to a B1 (hex). Using an ASCII character table, we see the corresponding character is a ±.…
-
Part 4: Debugging Code
The Disassembly In this post, we will look at some actual code. But first the answers to the questions from the previous post: What is a bit? How many values can a bit contain? The most elementary piece of data. Can contain 0 or 1. What is a byte? How many values can a byte…
-
Part 5: Inflicting Damage
The CPU Registers In the previous post we concluded by looking at some values in the CPU Registers. I will first explain shortly what they are and why they exists. We have seen a lot of memory values in the Z80 memory up until now. The processor is limited to what it can actually do…
-
Part 6: Inflicting Damage part 2
Clarifying the code In the last post, we looked at the first part of the ‘Damage infliction’ method/subroutine. This name is one that I made up to make clear for myself what the method is for. Nowhere in the ‘disassembled’ code are these names to be found. And as you have probable noticed if you…
-
Part 7: We are invincible!
Are we hitting or being hit? In the previous post, we saw that a set carrier flag is what communicates back to the calling code that the hit character has died. So we can greatly simplify the damage infliction method by just setting that flag and returning. But we want to have a better cheat…
-
Part 8: A backdoor to get killed
How much damage? So in the previous post, we created our cheat to make us invincible. To make the cheat a little more sophisticated and show the damage done, we could write the instructions like in the following image. I will not explain what the code does. If you have read the previous posts, you…