Game Boy Disassembler Frequently Asked Questions rev. II Typed by RiP / Masters of Magic (Author of GBDIS.EXE) 1. Q: Why can't I change to bank $00? A: Bank $00 is ALWAYS available! It's mapped in memory from $0000 - $3FFF. Since ROM only exists from $0000 - $7FFF, this actually means that bank-window is from $4000 - $7FFF. If you select a bank > $00, it will be mapped into the bank-window. 2. Q: When I look in the internal info block, the bytes at $0144 - $0146 sometimes are not zero like they're supposed to... Why? A: I suppose it has something to do with the Super Game Boy. Typically, if there are no zeroes at $0144 - $0146 the game makes use of SGB-features. Changing the bytes to zero doesn't seem to affect the SGB-features of the game though. My guess is that they're only flags to indicate the use of the SGB. 3. Q: When I view the internal info block, the ROM size is not correct. How come? A: Hmmm... this only happened to me once when I viewed the internal info block of Space Invaders (SGB version). This game has the complete SNES version of Space Invaders build in the Game Boy version... If you run a backup of the game thru your SGB, you'll notice that the Arcade (SNES) version of the game cannot be played... I guess the Smart Card copier didn't copy (read backup ;)) the game correct, hence the ROM size and file size don't match. 4. Q: I came across instructions which I can't find in my crappy Z80 book. Could you please explain how they work? Pretty Please? A: Well... alright then... Here goes: LD A,($xx) is the same as LD A,($FFxx) LD ($xx),A is the same as LD ($FFxx),A LD (HLI),A is the same as LD (HL),A INC HL LD (HLD),A is the same as LD (HL),A DEC HL LD A,(HLI) is the same as LD A,(HL) INC HL LD A,(HLD) is the same as LD A,(HL) DEC HL SWAP A swap the 4 most significant bits (MSB) with the least significant bits (LSB). bit: 7 6 5 4 3 2 1 0 _____________________________ | MSB | LSB | BEFORE `-----------------------------' bit: 3 2 1 0 7 6 5 4 _____________________________ | LSB | MSB | AFTER `-----------------------------' STOP is the same as... dunno really... info needed! 5. Q: What happened to the IX and IY registers? A: Nintendo decided they didn't need them, so they stripped all instructions which use them from the CPU. 6. Q: When I disassemble some code, they read/write to registers where there are no register like LD ($DF),A... Is this correct? A: There are no registers at $FFDF indeed... It's just RAM... they use the LD ($xx),A instruction because it's faster than LD A($xxxx),A. Addresses $FF00 - $FF7F contain registers. Addresses $FF80 - $FFFF contain RAM. 7. Q: Can I have the source code to GBDIS.EXE? A: No, you can't. 8. Q: Please can I have the source code? Oh, please can I? A: Bogger off you smelly leech!