[pypy-svn] r54883 - in pypy/branch/gameboy-emulator/pypy/lang/gameboy: . test

cami at codespeak.net cami at codespeak.net
Sun May 18 14:38:05 CEST 2008


Author: cami
Date: Sun May 18 14:38:03 2008
New Revision: 54883

Modified:
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/cartridge.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboy.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboyImplementation.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/interrupt.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/joypad.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_cpu.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_register.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/timer.py
   pypy/branch/gameboy-emulator/pypy/lang/gameboy/video.py
Log:
added more CallWrappers, ranlsation still fails


Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/cartridge.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/cartridge.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/cartridge.py	Sun May 18 14:38:03 2008
@@ -128,7 +128,7 @@
                 + (self.rom[constants.CHECKSUM_B_ADDRESS] & 0xFF)
     
     def has_battery(self):
-        return has_cartridge_battery(self.getMemoryBankType())
+        return has_cartridge_battery(self.get_memory_bank_type())
     
     def verify(self):
         checksum = 0
@@ -323,7 +323,7 @@
         
     def reset(self):
         MBC.reset(self)
-        self.memoryModel = 0
+        self.memory_model = 0
 
     def write(self, address, data):
         if address <= 0x1FFF:  # 0000-1FFF
@@ -333,7 +333,7 @@
         elif address <= 0x5FFF: # 4000-5FFF
             self.write_rom_bank_2(address, data)
         elif address <= 0x7FFF: # 6000-7FFF
-            self.memoryModel = data & 0x01
+            self.memory_model = data & 0x01
         elif address >= 0xA000 and address <= 0xBFFF and self.ram_enable: # A000-BFFF
             self.ram[self.ram_bank + (address & 0x1FFF)] = data
 
@@ -344,13 +344,13 @@
     def write_rom_bank_1(self, address, data):
         if (data & 0x1F) == 0:
             data = 1
-        if self.memoryModel == 0:
+        if self.memory_model == 0:
             self.rom_bank = ((self.rom_bank & 0x180000) + ((data & 0x1F) << 14)) & self.rom_size
         else:
             self.rom_bank = ((data & 0x1F) << 14) & self.rom_size
         
     def write_rom_bank_2(self, address, data):
-        if self.memoryModel == 0:
+        if self.memory_model == 0:
             self.rom_bank = ((self.rom_bank & 0x07FFFF) + ((data & 0x03) << 19)) & self.rom_size
         else:
             self.ram_bank = ((data & 0x03) << 13) & self.ram_size

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py	Sun May 18 14:38:03 2008
@@ -47,15 +47,15 @@
         self.lo = lo
         self.reset_value = reset_value
         
-    def set(self, hi=0, lo=-1, use_cycles=True):
-        if lo < 0:
-            self.set_hi(hi >> 8, use_cycles)
-            self.set_lo(hi & 0xFF, use_cycles)
-            if use_cycles:
-                self.cpu.cycles += 1
-        else:
-            self.set_hi(hi, use_cycles)
-            self.set_lo(lo, use_cycles) 
+    def set(self, value, use_cycles=True):
+        self.set_hi(value >> 8, use_cycles)
+        self.set_lo(value & 0xFF, use_cycles)
+        if use_cycles:
+            self.cpu.cycles += 1
+    
+    def set_hi_lo(self, hi, lo, use_cycles=True):
+        self.set_hi(hi, use_cycles)
+        self.set_lo(lo, use_cycles)
             
     def reset(self):
         self.set(self.reset_value, use_cycles=False)
@@ -125,7 +125,10 @@
         self.p_flag = False
         self.s_flag = False
          
-    def reset(self, keep_z=False, keep_n=False, keep_h=False, keep_c=False,\
+    def reset(self):
+        self.partial_reset()
+        
+    def partial_reset(self, keep_z=False, keep_n=False, keep_h=False, keep_c=False,\
                 keep_p=False, keep_s=False):
         if not keep_z:
             self.z_flag = False
@@ -190,12 +193,12 @@
     def __init__(self, interrupt, memory):
         assert isinstance(interrupt, Interrupt)
         self.interrupt = interrupt
-        self.memory = memory
-        self.ime = False
-        self.halted = False
-        self.cycles = 0
+        self.memory    = memory
+        self.ime       = False
+        self.halted    = False
+        self.cycles    = 0
         self.ini_registers()
-        self.rom = []
+        self.rom       = []
         self.reset()
 
     def ini_registers(self):
@@ -398,7 +401,7 @@
         self.push(register.get_hi(), use_cycles) # 2 cycles
         self.push(register.get_lo(), use_cycles) # 2 cycles
 
-    def pop(self):
+    def pop(self, use_cycles=True):
         # 1 cycle
         data = self.memory.read(self.sp.get())
         self.sp.inc() # 2 cycles
@@ -412,7 +415,7 @@
     def double_register_inverse_call(self, getter, register):
         b = getter(self) # 1 cycle
         a = getter(self) # 1 cycle
-        register.set(a, b) # 2 cycles
+        register.set_hi_lo(a, b) # 2 cycles
         self.cycles += 1
         
     def call(self, address, use_cycles=True):
@@ -428,14 +431,14 @@
         setter(getter()) # 1 cycle
         
     def load_fetch_register(self, register):
-        self.ld(self.fetch, register.set)
+        self.ld(CPUFetchCaller(self).get, RegisterSetCaller(register).set)
         
     def store_hl_in_pc(self):
         # LD PC,HL, 1 cycle
-        self.ld(self.hl.get, self.pc.set)
+        self.ld(DoubleRegisterGetCaller(self.hl).get, DoubleRegisterSetCaller(self.pc).set)
         
     def fetch_load(self, getter, setter):
-        self.ld(self.fetch, setter)
+        self.ld(CPUFetchCaller(self).get, setter)
 
     def add_a(self, getter, setter=None):
         # ALU, 1 cycle
@@ -449,9 +452,9 @@
         # 2 cycles
         a=1
         added = (self.hl.get() + register.get()) & 0xFFFF # 1 cycle
-        self.f.reset(keep_z=True)
+        self.f.partial_reset(keep_z=True)
         self.f.h_flag_compare((added >> 8), self.hl.get())
-        self.f.c_flag_compare(added, self.hl.get())
+        self.f.c_flag_compare(added,        self.hl.get())
         self.hl.set(added)
         self.cycles -= 1
         
@@ -534,16 +537,16 @@
     def inc(self, getter, setter):
         # 1 cycle
         data = (getter() + 1) & 0xFF
-        self.decInc_flagFinish(data, setter, 0x00)
+        self.dec_inc_flag_finish(data, setter, 0x00)
         
     def dec(self, getter, setter):
         # 1 cycle
         data = (getter() - 1) & 0xFF
-        self.decInc_flagFinish(data, setter, 0x0F)
+        self.dec_inc_flag_finish(data, setter, 0x0F)
         self.f.n_flag = True
      
-    def decInc_flagFinish(self, data, setter, compare):
-        self.f.reset(keep_c=True)
+    def dec_inc_flag_finish(self, data, setter, compare):
+        self.f.partial_reset(keep_c=True)
         self.f.z_flag_compare(data)
         if (data & 0x0F) == compare:
             self.f.h_flag = True
@@ -579,7 +582,8 @@
    
     def rotate_right_circular_a(self):
         # RRCA 1 cycle
-        self.rotate_right_circular(self.a.get, self.a.set)
+        self.rotate_right_circular(RegisterGetCaller(self.a).get, \
+                                   RegisterSetCaller(self.a).set)
 
     def rotate_right(self, getter, setter):
         # 1 cycle
@@ -590,7 +594,8 @@
 
     def rotate_right_a(self):
         # RRA 1 cycle
-        self.rotate_right(self.a.get, self.a.set)
+        self.rotate_right(RegisterGetCaller(self.a).get, \
+                          RegisterSetCaller(self.a).set)
 
     def shift_left_arithmetic(self, getter, setter):
         # 2 cycles
@@ -624,7 +629,7 @@
 
     def test_bit(self, getter, setter, n):
         # 2 cycles
-        self.f.reset(keep_c=True)
+        self.f.partial_reset(keep_c=True)
         self.f.h_flag = True
         self.f.z_flag = False
         if (getter() & (1 << n)) == 0:
@@ -663,7 +668,7 @@
     def load_mem_sp(self):
         # LD (nnnn),SP  5 cycles
         address = self.fetch_double_address() # 2 cycles
-        self.write(address, self.sp.get_lo())  # 2 cycles
+        self.write(address,       self.sp.get_lo())  # 2 cycles
         self.write((address + 1), self.sp.get_hi()) # 2 cycles
         self.cycles += 1
 
@@ -739,7 +744,7 @@
             self.a.set((self.a.get() + delta) & 0xFF) # 1 cycle
         else:
             self.a.set((self.a.get() - delta) & 0xFF) # 1 cycle
-        self.f.reset(keep_n=True)
+        self.f.partial_reset(keep_n=True)
         if delta >= 0x60:
             self.f.c_flag = True
         self.f.z_flag_compare(self.a.get())
@@ -781,11 +786,11 @@
 
     def complement_carry_flag(self):
         # CCF/SCF
-        self.f.reset(keep_z=True, keep_c=True)
+        self.f.partial_reset(keep_z=True, keep_c=True)
         self.f.c_flag = not self.f.c_flag
 
     def set_carry_flag(self):
-        self.f.reset(keep_z=True)
+        self.f.partial_reset(keep_z=True)
         self.f.c_flag = True
 
     def nop(self):
@@ -831,7 +836,7 @@
         # RET 4 cycles
         lo = self.pop() # 1 cycle
         hi = self.pop() # 1 cycle
-        self.pc.set(hi, lo) # 2 cycles
+        self.pc.set_hi_lo(hi, lo) # 2 cycles
 
     def conditional_return(self, cc):
         # RET cc 2,5 cycles
@@ -877,10 +882,72 @@
         self.fetch()
 
 # ------------------------------------------------------------------------------
+
+class CallWrapper(object):   
+    
+    def get(self, use_cycles=True):
+        return 0
+    
+    def set(self, value, use_cycles=True):
+        pass
+        
+class RegisterGetCaller(CallWrapper): 
+    def __init__(self, register):
+        self.register = register
+        
+    def get(self,  use_cycles=True):
+        return self.register.get(use_cycles)
+
+
+class DoubleRegisterGetCaller(RegisterGetCaller):
+    def __init__(self, register):
+        self.register = register
+        
+    def get(self,  use_cycles=True):
+        return self.register.get(use_cycles)
+    
+        
+class RegisterSetCaller(CallWrapper): 
+    def __init__(self, register):
+        self.register = register
+        
+    def set(self, value, use_cycles=True):
+        return self.register.set(value, use_cycles)
+   
+class DoubleRegisterSetCaller(CallWrapper): 
+    def __init__(self, register):
+        self.register = register
+        
+    def set(self, value, use_cycles=True):
+        return self.register.set(value, use_cycles) 
+    
+class CPUPopCaller(CallWrapper):
+    def __init__(self, cpu):
+        self.cpu = cpu
+        
+    def get(self,  use_cycles=True):
+        return self.cpu.pop(use_cycles)
+    
+    
+class CPUFetchCaller(CallWrapper):
+    def __init__(self, cpu):
+        self.cpu = cpu
+        
+    def get(self,  use_cycles=True):
+        return self.cpu.fetch(use_cycles)
+
+# ------------------------------------------------------------------------------
 # OPCODE LOOKUP TABLE GENERATION -----------------------------------------------
 
 
-GROUPED_REGISTERS = (CPU.get_b, CPU.get_c, CPU.get_d, CPU.get_e, CPU.get_h, CPU.get_l, CPU.get_hli, CPU.get_a)
+GROUPED_REGISTERS = [CPU.get_b, 
+                     CPU.get_c, 
+                     CPU.get_d, 
+                     CPU.get_e,
+                     CPU.get_h,
+                     CPU.get_l, 
+                     CPU.get_hli, 
+                     CPU.get_a]
 
 def create_group_op_codes(table):
     opCodes =[]
@@ -907,11 +974,13 @@
                 opCode += step
     return opCodes
 
-def group_lambda(function, registerGetter, value=None):
+def group_lambda(function, register_getter, value=None):
     if value is None:
-        return lambda s: function(s, registerGetter(s).get, registerGetter(s).set)
+        return lambda s: function(s, RegisterGetCaller(register_getter(s)).get, \
+                                     RegisterSetCaller(register_getter(s)).set)
     else:
-        return  lambda s: function(s, registerGetter(s).get, registerGetter(s).set, value)
+        return  lambda s: function(s, RegisterGetCaller(register_getter(s)).get, \
+                                      RegisterSetCaller(register_getter(s)).set, value)
 
 
 def create_load_group_op_codes():
@@ -924,8 +993,9 @@
             opCode += 1
     return opCodes
             
-def load_group_lambda(storeRegister, loadRegister):
-        return lambda s: CPU.ld(s, loadRegister(s).get, storeRegister(s).set)
+def load_group_lambda(store_register, load_register):
+        return lambda s: CPU.ld(s, RegisterGetCaller(load_register(s)).get, \
+                                   RegisterSetCaller(store_register(s)).set)
     
     
 def create_register_op_codes(table):
@@ -1000,14 +1070,14 @@
     (0xF8, CPU.store_fetch_added_sp_in_hl),
     (0xCB, CPU.fetch_execute),
     (0xCD, CPU.unconditional_call),
-    (0xC6, lambda s: CPU.add_a(s, s.fetch)),
-    (0xCE, lambda s: CPU.add_with_carry(s,  s.fetch)),
+    (0xC6, lambda s: CPU.add_a(s,               CPUFetchCaller(s).get)),
+    (0xCE, lambda s: CPU.add_with_carry(s,      CPUFetchCaller(s).get)),
     (0xD6, CPU.fetch_subtract_a),
-    (0xDE, lambda s: CPU.subtract_with_carry(s,  s.fetch)),
-    (0xE6, lambda s: CPU.AND(s,  s.fetch)),
-    (0xEE, lambda s: CPU.XOR(s,  s.fetch)),
-    (0xF6, lambda s: CPU.OR(s,   s.fetch)),
-    (0xFE, lambda s: CPU.compare_a(s,  s.fetch)),
+    (0xDE, lambda s: CPU.subtract_with_carry(s, CPUFetchCaller(s).get)),
+    (0xE6, lambda s: CPU.AND(s,                 CPUFetchCaller(s).get)),
+    (0xEE, lambda s: CPU.XOR(s,                 CPUFetchCaller(s).get)),
+    (0xF6, lambda s: CPU.OR(s,                  CPUFetchCaller(s).get)),
+    (0xFE, lambda s: CPU.compare_a(s,           CPUFetchCaller(s).get)),
     (0xC7, lambda s: CPU.restart(s, 0x00)),
     (0xCF, lambda s: CPU.restart(s, 0x08)),
     (0xD7, lambda s: CPU.restart(s, 0x10)),
@@ -1015,7 +1085,7 @@
     (0xE7, lambda s: CPU.restart(s, 0x20)),
     (0xEF, lambda s: CPU.restart(s, 0x28)),
     (0xF7, lambda s: CPU.restart(s, 0x30)),
-    (0xFF, lambda s: CPU.restart(s, 0x38)),
+    (0xFF, lambda s: CPU.restart(s, 0x38))
 ]
 
 REGISTER_GROUP_OP_CODES = [
@@ -1034,9 +1104,21 @@
 ]    
         
 
-REGISTER_SET_A = [CPU.get_bc, CPU.get_de, CPU.get_hl, CPU.get_sp]
-REGISTER_SET_B = [CPU.get_bc, CPU.get_de, CPU.get_hl, CPU.get_af]
-FLAG_REGISTER_SET = [CPU.is_not_z, CPU.is_z, CPU.is_not_c, CPU.is_c]
+REGISTER_SET_A =    [CPU.get_bc, 
+                     CPU.get_de, 
+                     CPU.get_hl, 
+                     CPU.get_sp]
+
+REGISTER_SET_B =    [CPU.get_bc, 
+                     CPU.get_de, 
+                     CPU.get_hl, 
+                     CPU.get_af]
+
+FLAG_REGISTER_SET = [CPU.is_not_z, 
+                     CPU.is_z, 
+                     CPU.is_not_c, 
+                     CPU.is_c]
+
 REGISTER_OP_CODES = [ 
     (0x01, 0x10, CPU.fetch_double_register,     REGISTER_SET_A),
     (0x09, 0x10, CPU.add_hl,                    REGISTER_SET_A),

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboy.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboy.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboy.py	Sun May 18 14:38:03 2008
@@ -77,7 +77,7 @@
         self.video.reset()
         self.sound.reset()
         self.cpu.set_rom(self.cartridge_manager.get_rom())
-        self.drawLogo()
+        self.draw_logo()
 
     def get_cycles(self):
         return min( self.video.get_cycles(), self.serial.get_cycles(),
@@ -94,6 +94,7 @@
             self.sound.emulate(count)
             self.joypad.emulate(count)
             ticks -= count
+        return 0
 
     def write(self, address, data):
         receiver = self.get_receiver(address)

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboyImplementation.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboyImplementation.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/gameboyImplementation.py	Sun May 18 14:38:03 2008
@@ -38,6 +38,7 @@
             print "i"
             self.emulate(5)
             time.sleep(0.01)
+        return 0
         
 # VIDEO DRIVER -----------------------------------------------------------------
 
@@ -145,6 +146,7 @@
 
 def entry_point(args=None):
     gameboy = GameBoyImplementation()
+    # add return statement...
 
 
 # _____ Define and setup target ___

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/interrupt.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/interrupt.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/interrupt.py	Sun May 18 14:38:03 2008
@@ -35,10 +35,10 @@
         
     def create_interrupt_flags(self):
         self.v_blank = InterruptFlag(True, constants.VBLANK, 0x40)
-        self.lcd = InterruptFlag(False, constants.LCD, 0x48)
-        self.timer = InterruptFlag(False, constants.TIMER, 0x50)
-        self.serial = InterruptFlag(False, constants.SERIAL, 0x58)
-        self.joypad = InterruptFlag(False, constants.JOYPAD, 0x60)
+        self.lcd     = InterruptFlag(False, constants.LCD, 0x48)
+        self.timer   = InterruptFlag(False, constants.TIMER, 0x50)
+        self.serial  = InterruptFlag(False, constants.SERIAL, 0x58)
+        self.joypad  = InterruptFlag(False, constants.JOYPAD, 0x60)
         
     def create_flag_list(self):
         self.interrupt_flags = [

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/joypad.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/joypad.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/joypad.py	Sun May 18 14:38:03 2008
@@ -70,21 +70,21 @@
         self.reset()
         
     def create_buttons(self):
-        self.up = Button(constants.BUTTON_UP)
-        self.right = Button(constants.BUTTON_RIGHT)
-        self.down = Button(constants.BUTTON_DOWN)
-        self.left = Button(constants.BUTTON_LEFT)
-        self.start = Button(constants.BUTTON_START)
+        self.up     = Button(constants.BUTTON_UP)
+        self.right  = Button(constants.BUTTON_RIGHT)
+        self.down   = Button(constants.BUTTON_DOWN)
+        self.left   = Button(constants.BUTTON_LEFT)
+        self.start  = Button(constants.BUTTON_START)
         self.select = Button(constants.BUTTON_SELECT)
-        self.a = Button(constants.BUTTON_A)
-        self.b = Button(constants.BUTTON_B)
+        self.a      = Button(constants.BUTTON_A)
+        self.b      = Button(constants.BUTTON_B)
         self.add_opposite_buttons()
         self.create_button_groups()
         
     def add_opposite_buttons(self):
-        self.up.opposite_button = self.down
-        self.down.opposite_button = self.up
-        self.left.opposite_button = self.right
+        self.up.opposite_button    = self.down
+        self.down.opposite_button  = self.up
+        self.left.opposite_button  = self.right
         self.right.opposite_button = self.left
         
     def create_button_groups(self):

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_cpu.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_cpu.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_cpu.py	Sun May 18 14:38:03 2008
@@ -381,7 +381,7 @@
 # ld_BCi_A
 def test_0x02():
     cpu = get_cpu();
-    cpu.bc.set(0xC2, 0x23);
+    cpu.bc.set_hi_lo(0xC2, 0x23);
     cpu.a.set(0x12);
     cycle_test(cpu, 0x02, 2);
     assert cpu.read(cpu.bc.get()) == cpu.a.get()
@@ -401,7 +401,7 @@
 # ld_DEi_A
 def test_0x12():
     cpu = get_cpu();
-    cpu.de.set(0xC2, 0x23);
+    cpu.de.set_hi_lo(0xC2, 0x23);
     cpu.a.set(0x12);
     cycle_test(cpu, 0x12, 2);
     assert cpu.read(cpu.de.get()) == cpu.a.get()
@@ -420,7 +420,7 @@
 # ldi_HLi_A
 def test_0x22():
     cpu = get_cpu();
-    cpu.hl.set(0xCD, 0xEF);
+    cpu.hl.set_hi_lo(0xCD, 0xEF);
     cpu.a.set(0x12);
     cycle_test(cpu, 0x22, 2);
     assert cpu.read(0xCDEF) == cpu.a.get()
@@ -429,7 +429,7 @@
 # ldd_HLi_A
 def test_0x32():
     cpu = get_cpu();
-    cpu.hl.set(0xCD, 0xEF);
+    cpu.hl.set_hi_lo(0xCD, 0xEF);
     cpu.a.set(0x12);
     cycle_test(cpu, 0x32, 2);
     assert cpu.read(0xCDEF) == cpu.a.get()

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_register.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_register.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/test/test_register.py	Sun May 18 14:38:03 2008
@@ -103,7 +103,7 @@
     valueHi = 0x12
     valueLo = 0x34
     oldCycles = register.cpu.cycles
-    register.set(valueHi, valueLo)
+    register.set_hi_lo(valueHi, valueLo)
     assert oldCycles-register.cpu.cycles == 2
     assert register.get_hi() == valueHi
     assert register.get_lo() == valueLo

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/timer.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/timer.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/timer.py	Sun May 18 14:38:03 2008
@@ -121,5 +121,5 @@
         pass
     
     def get_time(self):
-        return time.time()
+        return int(time.time()*1000)
         

Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/video.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/video.py	(original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/video.py	Sun May 18 14:38:03 2008
@@ -540,7 +540,7 @@
         self.line[pos] |= color | mask
 
     def draw_overlapped_object_tile(self, x, address, flags):
-        self.draw_object(self.setOverlappedObjectLine, x, address, flags)
+        self.draw_object(self.set_overlapped_object_line, x, address, flags)
         
     def set_overlapped_object_line(self, pos, color, mask):
         self.line[pos] = (self.line[pos] & 0x0101) | color | mask



More information about the Pypy-commit mailing list