shithub: pokered

Download patch

ref: 464f06ced7a68a676a6d4efbdfc202c2bb7970e5
parent: 1d97a39583c6634d22113b1c2134395f161289b4
parent: 76dc9b8170ad6653f5436cad3246e5a0ebd2f267
author: Bryan Bishop <kanzure@gmail.com>
date: Tue Jan 10 08:47:00 EST 2012

Merge.

hg-commit-id: 5d78a23cd0c7


--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -169,6 +169,7 @@
   [ "LD A, L", 0x7d, 0 ], 
   [ "LD A, [$FF00+C]", 0xf2, 0 ], 
   [ "LD A, [$FF00+x]", 0xf0, 1 ], 
+  #[ "LDH A, [x]", 0xf0, 1 ], #rgbds has trouble with this one?
   [ "LD A, [BC]", 0xa, 0 ], 
   [ "LD A, [DE]", 0x1a, 0 ], 
   [ "LD A, [HL+]", 0x2a, 0 ], 
@@ -221,7 +222,6 @@
   [ "LD [$FF00+C], A", 0xe2, 0 ], 
   [ "LD [$FF00+x], A", 0xe0, 1 ], 
   [ "LD H, A", 0x67, 0 ], 
-  [ "LDH A, [x]", 0xf0, 1 ], 
   [ "LD H, B", 0x60, 0 ], 
   [ "LD H, C", 0x61, 0 ], 
   [ "LD H, D", 0x62, 0 ], 
@@ -549,6 +549,7 @@
     "3e48": "GivePokemon",
     "3dd7": "Delay3",
     "3e2e": "GiveItem",
+    "2f9e": "GetMonName",
 }
 
 def random_asm_label():
@@ -597,12 +598,36 @@
         temp_maybe += ( ord(rom[offset+1]) << 8)
         if temp_maybe in opt_table.keys():
             opstr = copy(opt_table[temp_maybe][0])
-              
-            output += spacing + opstr.lower() #+ " ; " + hex(offset)
+            
+            if "x" in opstr:
+                for x in range(0, opstr.count("x")):
+                    insertion = ord(rom[offset + 1])
+                    insertion = "$" + hex(insertion)[2:]
+            
+                    opstr = opstr[:opstr.find("x")].lower() + insertion + opstr[opstr.find("x")+1:].lower()
+
+                    current_byte += 1
+                    offset += 1
+            if "?" in opstr:
+                for y in range(0, opstr.count("?")):
+                    byte1 = ord(rom[offset + 1])
+                    byte2 = ord(rom[offset + 2])
+                    
+                    number = byte1
+                    number += byte2 << 8;
+
+                    insertion = "$%.4x" % (number)
+                    
+                    opstr = opstr[:opstr.find("?")].lower() + insertion + opstr[opstr.find("?")+1:].lower()
+
+                    current_byte_number += 2
+                    offset += 2
+
+            output += spacing + opstr #+ " ; " + hex(offset)
             output += "\n"
 
-            current_byte_number += 2
-            offset += 2
+            current_byte_number += 1
+            offset += 1 
         elif maybe_byte in opt_table.keys():
             op_code = opt_table[maybe_byte]
             op_code_type = op_code[1]
@@ -611,6 +636,8 @@
             #type = -1 when it's the E op
             #if op_code_type != -1:
             if   op_code_type == 0 and ord(rom[offset]) == op_code_byte:
+                op_str = op_code[0].lower()
+
                 output += spacing + op_code[0].lower() #+ " ; " + hex(offset)
                 output += "\n"
                 
--- a/extras/insert_texts.py
+++ b/extras/insert_texts.py
@@ -424,7 +424,8 @@
     #insert_08_asm(83, 1)
     #insert_all_08s()
 
-    insert_asm(0x31cc, "LoadTrainerHeader")
+    insert_asm(0x2f9e, "GetMonName")
 
-    print "-- FAILED ATTEMPTS --"
-    print str(failed_attempts)
+    if len(failed_attempts) > 0:
+        print "-- FAILED ATTEMPTS --"
+        print str(failed_attempts)
--- a/pokered.asm
+++ b/pokered.asm
@@ -1055,8 +1055,34 @@
     call $3e6d
     jp $24d7
 
-INCBIN "baserom.gbc",$24fd,$ad2
+INCBIN "baserom.gbc",$24fd,$2f9e - $24fd
 
+GetMonName: ; 0x2f9e
+    push hl
+    ld a, [$ff00+$b8]
+    push af
+    ld a, $7
+    ldh [$b8], a
+    ld [$2000], a
+    ld a, [$d11e]
+    dec a
+    ld hl, $421e
+    ld c, $a
+    ld b, $0
+    call $3a87
+    ld de, $cd6d
+    push de
+    ld bc, $000a
+    call $00b5
+    ld hl, $cd77
+    ld [hl], $50
+    pop de
+    pop af
+    ldh [$b8], a
+    ld [$2000], a
+    pop hl
+    ret
+
 GetItemName: ; 2FCF
 ; given an item ID at [$D11E], store the name of the item into a string
 ;     starting at $CD6D
@@ -1360,7 +1386,7 @@
 	dec a
 	jr nz,.otherEntries\@
 	;1 = MON_NAMES
-	call $2f9e; GetMonName
+	call GetMonName
 	ld hl,11
 	add hl,de
 	ld e,l