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!


