From a374459e4b1f1ff880ddddcd47e293269e247963 Mon Sep 17 00:00:00 2001 From: Mads Ynddal <5528170+Baekalfen@users.noreply.github.com> Date: Wed, 8 Nov 2023 21:59:03 +0100 Subject: [PATCH] mb.tick wip. sound needs sdl2 refactored out, breakpoint_reached needs work --- pyboy/core/bootrom.pxd | 2 +- pyboy/core/cartridge/base_mbc.pxd | 8 +- pyboy/core/cartridge/mbc1.pxd | 2 +- pyboy/core/cartridge/mbc2.pxd | 2 +- pyboy/core/cartridge/mbc3.pxd | 2 +- pyboy/core/cartridge/mbc5.pxd | 2 +- pyboy/core/cartridge/rtc.pxd | 8 +- pyboy/core/cpu.pxd | 16 +- pyboy/core/interaction.pxd | 2 +- pyboy/core/lcd.pxd | 95 +-- pyboy/core/mb.pxd | 16 +- pyboy/core/mb.py | 7 +- pyboy/core/opcodes.pxd | 1007 ++++++++++++++--------------- pyboy/core/opcodes.py | 5 +- pyboy/core/opcodes_gen.py | 8 +- pyboy/core/sound.pxd | 61 +- pyboy/core/sound.py | 24 +- pyboy/core/timer.pxd | 6 +- pyboy/utils.pxd | 3 +- 19 files changed, 638 insertions(+), 638 deletions(-) diff --git a/pyboy/core/bootrom.pxd b/pyboy/core/bootrom.pxd index 17346b890..5962fd1bf 100644 --- a/pyboy/core/bootrom.pxd +++ b/pyboy/core/bootrom.pxd @@ -12,4 +12,4 @@ cdef Logger logger cdef class BootROM: cdef uint8_t[:] bootrom - cdef uint8_t getitem(self, uint16_t) noexcept + cdef uint8_t getitem(self, uint16_t) noexcept nogil diff --git a/pyboy/core/cartridge/base_mbc.pxd b/pyboy/core/cartridge/base_mbc.pxd index 9423711ef..ce0f4f6e6 100644 --- a/pyboy/core/cartridge/base_mbc.pxd +++ b/pyboy/core/cartridge/base_mbc.pxd @@ -38,9 +38,9 @@ cdef class BaseMBC: cdef void init_rambanks(self, uint8_t) noexcept cdef str getgamename(self, uint8_t[:,:]) noexcept - cdef uint8_t getitem(self, uint16_t) noexcept - cdef void setitem(self, uint16_t, uint8_t) noexcept - cdef void overrideitem(self, int, uint16_t, uint8_t) noexcept + cdef uint8_t getitem(self, uint16_t) noexcept nogil + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil + cdef void overrideitem(self, int, uint16_t, uint8_t) noexcept nogil cdef class ROMOnly(BaseMBC): - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil diff --git a/pyboy/core/cartridge/mbc1.pxd b/pyboy/core/cartridge/mbc1.pxd index 2b27e1d66..f4b54e372 100644 --- a/pyboy/core/cartridge/mbc1.pxd +++ b/pyboy/core/cartridge/mbc1.pxd @@ -13,6 +13,6 @@ from .base_mbc cimport BaseMBC cdef Logger logger cdef class MBC1(BaseMBC): - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil cdef uint8_t bank_select_register1 cdef uint8_t bank_select_register2 diff --git a/pyboy/core/cartridge/mbc2.pxd b/pyboy/core/cartridge/mbc2.pxd index e447bb0cb..2006f7454 100644 --- a/pyboy/core/cartridge/mbc2.pxd +++ b/pyboy/core/cartridge/mbc2.pxd @@ -13,4 +13,4 @@ from .base_mbc cimport BaseMBC cdef Logger logger cdef class MBC2(BaseMBC): - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil diff --git a/pyboy/core/cartridge/mbc3.pxd b/pyboy/core/cartridge/mbc3.pxd index fa7567872..a0469da3d 100644 --- a/pyboy/core/cartridge/mbc3.pxd +++ b/pyboy/core/cartridge/mbc3.pxd @@ -13,4 +13,4 @@ from .base_mbc cimport BaseMBC cdef Logger logger cdef class MBC3(BaseMBC): - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil diff --git a/pyboy/core/cartridge/mbc5.pxd b/pyboy/core/cartridge/mbc5.pxd index 8acd60d5a..1adcdd904 100644 --- a/pyboy/core/cartridge/mbc5.pxd +++ b/pyboy/core/cartridge/mbc5.pxd @@ -13,4 +13,4 @@ from .base_mbc cimport BaseMBC cdef Logger logger cdef class MBC5(BaseMBC): - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil diff --git a/pyboy/core/cartridge/rtc.pxd b/pyboy/core/cartridge/rtc.pxd index 6b8b55ba0..02e5e356a 100644 --- a/pyboy/core/cartridge/rtc.pxd +++ b/pyboy/core/cartridge/rtc.pxd @@ -31,8 +31,8 @@ cdef class RTC: cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept @cython.locals(days=uint64_t) - cdef void latch_rtc(self) noexcept - cdef void writecommand(self, uint8_t) noexcept - cdef uint8_t getregister(self, uint8_t) noexcept + cdef void latch_rtc(self) noexcept nogil + cdef void writecommand(self, uint8_t) noexcept nogil + cdef uint8_t getregister(self, uint8_t) noexcept nogil @cython.locals(t=cython.double, days=uint64_t) - cdef void setregister(self, uint8_t, uint8_t) noexcept + cdef void setregister(self, uint8_t, uint8_t) noexcept nogil diff --git a/pyboy/core/cpu.pxd b/pyboy/core/cpu.pxd index e8c5c5b11..27e74e09f 100644 --- a/pyboy/core/cpu.pxd +++ b/pyboy/core/cpu.pxd @@ -30,13 +30,13 @@ cdef class CPU: cdef uint8_t interrupts_flag, interrupts_enabled, interrupts_flag_register, interrupts_enabled_register - cdef inline int check_interrupts(self) noexcept - cdef void set_interruptflag(self, int) noexcept - cdef bint handle_interrupt(self, uint8_t, uint16_t) noexcept + cdef inline int check_interrupts(self) noexcept nogil + cdef void set_interruptflag(self, int) noexcept nogil + cdef bint handle_interrupt(self, uint8_t, uint16_t) noexcept nogil @cython.locals(opcode=uint16_t) - cdef inline uint8_t fetch_and_execute(self) noexcept - cdef int tick(self) noexcept + cdef inline uint8_t fetch_and_execute(self) noexcept nogil + cdef int tick(self) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept @@ -50,5 +50,7 @@ cdef class CPU: cdef pyboy.core.mb.Motherboard mb - cdef void set_bc(CPU, uint16_t) noexcept - cdef void set_de(CPU, uint16_t) noexcept + cdef void set_bc(CPU, uint16_t) noexcept nogil + cdef void set_de(CPU, uint16_t) noexcept nogil + + cdef dump_state(self, str) noexcept with gil diff --git a/pyboy/core/interaction.pxd b/pyboy/core/interaction.pxd index e32f2ed18..f9ee33978 100644 --- a/pyboy/core/interaction.pxd +++ b/pyboy/core/interaction.pxd @@ -19,6 +19,6 @@ cdef uint8_t set_bit(uint8_t, uint8_t) noexcept cdef class Interaction: cdef uint8_t directional, standard cdef bint key_event(self, WindowEvent) noexcept - cdef uint8_t pull(self, uint8_t) noexcept + cdef uint8_t pull(self, uint8_t) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept diff --git a/pyboy/core/lcd.pxd b/pyboy/core/lcd.pxd index d70143a9f..c72419e59 100644 --- a/pyboy/core/lcd.pxd +++ b/pyboy/core/lcd.pxd @@ -47,21 +47,21 @@ cdef class LCD: cdef Renderer renderer @cython.locals(interrupt_flag=uint8_t) - cdef uint8_t tick(self, int) noexcept - cdef uint64_t cycles_to_interrupt(self) noexcept + cdef uint8_t tick(self, int) noexcept nogil + cdef uint64_t cycles_to_interrupt(self) noexcept nogil - cdef void set_lcdc(self, uint8_t) noexcept - cdef uint8_t get_lcdc(self) noexcept - cdef void set_stat(self, uint8_t) noexcept - cdef uint8_t get_stat(self) noexcept + cdef void set_lcdc(self, uint8_t) noexcept nogil + cdef uint8_t get_lcdc(self) noexcept nogil + cdef void set_stat(self, uint8_t) noexcept nogil + cdef uint8_t get_stat(self) noexcept nogil - cdef int cycles_to_mode0(self) noexcept + cdef int cycles_to_mode0(self) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept - cdef (int, int) getwindowpos(self) noexcept - cdef (int, int) getviewport(self) noexcept + cdef (int, int) getwindowpos(self) noexcept nogil + cdef (int, int) getviewport(self) noexcept nogil # CGB cdef bint cgb @@ -80,21 +80,21 @@ cdef class PaletteRegister: cdef uint32_t[4] palette_mem_rgb @cython.locals(x=uint16_t) - cdef bint set(self, uint64_t) noexcept - cdef uint8_t get(self) noexcept - cdef uint32_t getcolor(self, uint8_t) noexcept + cdef bint set(self, uint64_t) noexcept nogil + cdef uint8_t get(self) noexcept nogil + cdef uint32_t getcolor(self, uint8_t) noexcept nogil cdef class STATRegister: cdef uint8_t value cdef uint8_t _mode - cdef uint8_t set_mode(self, uint8_t) noexcept - cdef uint8_t update_LYC(self, uint8_t, uint8_t) noexcept - cdef void set(self, uint64_t) noexcept + cdef uint8_t set_mode(self, uint8_t) noexcept nogil + cdef uint8_t update_LYC(self, uint8_t, uint8_t) noexcept nogil + cdef void set(self, uint64_t) noexcept nogil cdef class LCDCRegister: cdef uint8_t value - cdef void set(self, uint64_t) noexcept + cdef void set(self, uint64_t) noexcept nogil cdef public bint lcd_enable cdef public bint windowmap_select @@ -123,11 +123,11 @@ cdef class Renderer: cdef int[10] sprites_to_render cdef int ly_window - cdef void invalidate_tile(self, int, int) noexcept + cdef void invalidate_tile(self, int, int) noexcept nogil cdef int[144][5] _scanlineparameters - cdef void blank_screen(self, LCD) noexcept + cdef void blank_screen(self, LCD) noexcept nogil # CGB cdef array _tilecache1_raw @@ -148,37 +148,38 @@ cdef class Renderer: tilecache=uint32_t[:,:], bg_priority_apply=uint8_t, ) - cdef void scanline(self, LCD, int) noexcept + cdef void scanline(self, LCD, int) noexcept nogil @cython.locals( - y=int, - x=int, spriteheight=int, + spritecount=int, n=int, + x=int, + y=int, + _n=int, tileindex=int, attributes=int, xflip=bint, yflip=bint, spritepriority=bint, + palette=uint8_t, spritecache=uint32_t[:,:], - sprites_priority=list, dy=int, dx=int, yy=int, xx=int, + color_code=uint8_t, pixel=uint32_t, bgmappriority=bint, - color_code=uint8_t, - _n=int, ) - cdef void scanline_sprites(self, LCD, int, uint32_t[:,:], bint) noexcept - cdef void sort_sprites(self, int) noexcept - - cdef void clear_cache(self) noexcept - cdef void clear_tilecache0(self) noexcept - cdef void clear_tilecache1(self) noexcept # CGB Only - cdef void clear_spritecache0(self) noexcept - cdef void clear_spritecache1(self) noexcept + cdef void scanline_sprites(self, LCD, int, uint32_t[:,:], bint) noexcept nogil + cdef void sort_sprites(self, int) noexcept nogil + + cdef void clear_cache(self) noexcept nogil + cdef void clear_tilecache0(self) noexcept nogil + cdef void clear_tilecache1(self) noexcept nogil # CGB Only + cdef void clear_spritecache0(self) noexcept nogil + cdef void clear_spritecache1(self) noexcept nogil @cython.locals( x=int, t=int, @@ -188,7 +189,7 @@ cdef class Renderer: byte2=uint8_t, colorcode=uint32_t, ) - cdef void update_tilecache0(self, LCD, int, int) noexcept + cdef void update_tilecache0(self, LCD, int, int) noexcept nogil @cython.locals( x=int, t=int, @@ -198,7 +199,7 @@ cdef class Renderer: byte2=uint8_t, colorcode=uint32_t, ) - cdef void update_tilecache1(self, LCD, int, int) noexcept # CGB Only + cdef void update_tilecache1(self, LCD, int, int) noexcept nogil # CGB Only @cython.locals( x=int, t=int, @@ -208,7 +209,7 @@ cdef class Renderer: byte2=uint8_t, colorcode=uint32_t, ) - cdef void update_spritecache0(self, LCD, int, int) noexcept + cdef void update_spritecache0(self, LCD, int, int) noexcept nogil @cython.locals( x=int, t=int, @@ -218,7 +219,7 @@ cdef class Renderer: byte2=uint8_t, colorcode=uint32_t, ) - cdef void update_spritecache1(self, LCD, int, int) noexcept + cdef void update_spritecache1(self, LCD, int, int) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept @@ -232,7 +233,7 @@ cdef class Renderer: vertflip = uint8_t, bg_priority = uint8_t, ) - cdef (int, int, int, int, int) _cgb_get_background_map_attributes(self, LCD, int) noexcept + cdef (int, int, int, int, int) _cgb_get_background_map_attributes(self, LCD, int) noexcept nogil cdef class CGBLCD(LCD): pass @@ -249,8 +250,8 @@ cdef class CGBRenderer(Renderer): cdef class VBKregister: cdef uint8_t active_bank - cdef void set(self, uint8_t) noexcept - cdef uint8_t get(self) noexcept + cdef void set(self, uint8_t) noexcept nogil + cdef uint8_t get(self) noexcept nogil cdef class PaletteIndexRegister: cdef uint8_t value @@ -258,10 +259,10 @@ cdef class PaletteIndexRegister: cdef int index cdef int hl - cdef void set(self, uint8_t) noexcept - cdef uint8_t get(self) noexcept - cdef int getindex(self) noexcept - cdef void shouldincrement(self) noexcept + cdef void set(self, uint8_t) noexcept nogil + cdef uint8_t get(self) noexcept nogil + cdef int getindex(self) noexcept nogil + cdef void shouldincrement(self) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept @@ -271,10 +272,10 @@ cdef class PaletteColorRegister: cdef uint32_t[8 * 4] palette_mem_rgb cdef PaletteIndexRegister index_reg - cdef uint32_t cgb_to_rgb(self, uint16_t, uint8_t) noexcept - cdef void set(self, uint16_t) noexcept - cdef uint16_t get(self) noexcept - cdef uint32_t getcolor(self, uint8_t, uint8_t) noexcept + cdef uint32_t cgb_to_rgb(self, uint16_t, uint8_t) noexcept nogil + cdef void set(self, uint16_t) noexcept nogil + cdef uint16_t get(self) noexcept nogil + cdef uint32_t getcolor(self, uint8_t, uint8_t) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept diff --git a/pyboy/core/mb.pxd b/pyboy/core/mb.pxd index 1b4b87ef5..298f133cd 100644 --- a/pyboy/core/mb.pxd +++ b/pyboy/core/mb.pxd @@ -50,23 +50,23 @@ cdef class Motherboard: cdef list breakpoints_list cdef int breakpoint_latch - cdef inline bint processing_frame(self) noexcept + cdef inline bint processing_frame(self) noexcept nogil cdef void buttonevent(self, WindowEvent) noexcept cdef void stop(self, bint) noexcept @cython.locals(cycles=int64_t, escape_halt=cython.int, mode0_cycles=int64_t) - cdef bint tick(self) noexcept + cdef bint tick(self) noexcept nogil - cdef void switch_speed(self) noexcept + cdef void switch_speed(self) noexcept nogil @cython.locals(pc=cython.int, bank=cython.int) cdef bint breakpoint_reached(self) noexcept - cdef uint8_t getitem(self, uint16_t) noexcept - cdef void setitem(self, uint16_t, uint8_t) noexcept + cdef uint8_t getitem(self, uint16_t) noexcept nogil + cdef void setitem(self, uint16_t, uint8_t) noexcept nogil @cython.locals(offset=cython.int, dst=cython.int, n=cython.int) - cdef void transfer_DMA(self, uint8_t) noexcept + cdef void transfer_DMA(self, uint8_t) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface) noexcept @@ -82,8 +82,8 @@ cdef class HDMA: cdef uint16_t curr_src cdef uint16_t curr_dst - cdef void set_hdma5(self, uint8_t, Motherboard) noexcept - cdef int tick(self, Motherboard) noexcept + cdef void set_hdma5(self, uint8_t, Motherboard) noexcept nogil + cdef int tick(self, Motherboard) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept diff --git a/pyboy/core/mb.py b/pyboy/core/mb.py index e5f04aa4d..97acdd2d8 100644 --- a/pyboy/core/mb.py +++ b/pyboy/core/mb.py @@ -241,9 +241,10 @@ def tick(self): # Escape halt. This happens when pressing 'return' in the debugger. It will make us skip breaking on halt # for every cycle, but do break on the next instruction -- even in an interrupt. - escape_halt = self.cpu.halted and self.breakpoint_latch == 1 - if self.breakpoints_enabled and (not escape_halt) and self.breakpoint_reached(): - return True + # escape_halt = self.cpu.halted and self.breakpoint_latch == 1 + # TODO: Replace with GDB Stub + # if self.breakpoints_enabled and (not escape_halt) and self.breakpoint_reached(): + # return True # TODO: Move SDL2 sync to plugin self.sound.sync() diff --git a/pyboy/core/opcodes.pxd b/pyboy/core/opcodes.pxd index 70c7cae58..4370a933d 100644 --- a/pyboy/core/opcodes.pxd +++ b/pyboy/core/opcodes.pxd @@ -16,1009 +16,1008 @@ cdef Logger logger cdef uint16_t FLAGC, FLAGH, FLAGN, FLAGZ cdef uint8_t[512] OPCODE_LENGTHS @cython.locals(v=cython.int, a=cython.int, b=cython.int, pc=cython.ushort) -cdef int execute_opcode(cpu.CPU, uint16_t) noexcept - -cdef uint8_t no_opcode(cpu.CPU) noexcept +cdef int execute_opcode(cpu.CPU, uint16_t) noexcept nogil +cdef uint8_t no_opcode(cpu.CPU) noexcept nogil @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t NOP_00(cpu.CPU) noexcept # 00 NOP +cdef uint8_t NOP_00(cpu.CPU) noexcept nogil # 00 NOP @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_01(cpu.CPU, int v) noexcept # 01 LD BC,d16 +cdef uint8_t LD_01(cpu.CPU, int v) noexcept nogil # 01 LD BC,d16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_02(cpu.CPU) noexcept # 02 LD (BC),A +cdef uint8_t LD_02(cpu.CPU) noexcept nogil # 02 LD (BC),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_03(cpu.CPU) noexcept # 03 INC BC +cdef uint8_t INC_03(cpu.CPU) noexcept nogil # 03 INC BC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_04(cpu.CPU) noexcept # 04 INC B +cdef uint8_t INC_04(cpu.CPU) noexcept nogil # 04 INC B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_05(cpu.CPU) noexcept # 05 DEC B +cdef uint8_t DEC_05(cpu.CPU) noexcept nogil # 05 DEC B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_06(cpu.CPU, int v) noexcept # 06 LD B,d8 +cdef uint8_t LD_06(cpu.CPU, int v) noexcept nogil # 06 LD B,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLCA_07(cpu.CPU) noexcept # 07 RLCA +cdef uint8_t RLCA_07(cpu.CPU) noexcept nogil # 07 RLCA @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_08(cpu.CPU, int v) noexcept # 08 LD (a16),SP +cdef uint8_t LD_08(cpu.CPU, int v) noexcept nogil # 08 LD (a16),SP @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_09(cpu.CPU) noexcept # 09 ADD HL,BC +cdef uint8_t ADD_09(cpu.CPU) noexcept nogil # 09 ADD HL,BC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_0A(cpu.CPU) noexcept # 0A LD A,(BC) +cdef uint8_t LD_0A(cpu.CPU) noexcept nogil # 0A LD A,(BC) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_0B(cpu.CPU) noexcept # 0B DEC BC +cdef uint8_t DEC_0B(cpu.CPU) noexcept nogil # 0B DEC BC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_0C(cpu.CPU) noexcept # 0C INC C +cdef uint8_t INC_0C(cpu.CPU) noexcept nogil # 0C INC C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_0D(cpu.CPU) noexcept # 0D DEC C +cdef uint8_t DEC_0D(cpu.CPU) noexcept nogil # 0D DEC C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_0E(cpu.CPU, int v) noexcept # 0E LD C,d8 +cdef uint8_t LD_0E(cpu.CPU, int v) noexcept nogil # 0E LD C,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRCA_0F(cpu.CPU) noexcept # 0F RRCA +cdef uint8_t RRCA_0F(cpu.CPU) noexcept nogil # 0F RRCA @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t STOP_10(cpu.CPU, int v) noexcept # 10 STOP 0 +cdef uint8_t STOP_10(cpu.CPU, int v) noexcept nogil # 10 STOP 0 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_11(cpu.CPU, int v) noexcept # 11 LD DE,d16 +cdef uint8_t LD_11(cpu.CPU, int v) noexcept nogil # 11 LD DE,d16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_12(cpu.CPU) noexcept # 12 LD (DE),A +cdef uint8_t LD_12(cpu.CPU) noexcept nogil # 12 LD (DE),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_13(cpu.CPU) noexcept # 13 INC DE +cdef uint8_t INC_13(cpu.CPU) noexcept nogil # 13 INC DE @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_14(cpu.CPU) noexcept # 14 INC D +cdef uint8_t INC_14(cpu.CPU) noexcept nogil # 14 INC D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_15(cpu.CPU) noexcept # 15 DEC D +cdef uint8_t DEC_15(cpu.CPU) noexcept nogil # 15 DEC D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_16(cpu.CPU, int v) noexcept # 16 LD D,d8 +cdef uint8_t LD_16(cpu.CPU, int v) noexcept nogil # 16 LD D,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLA_17(cpu.CPU) noexcept # 17 RLA +cdef uint8_t RLA_17(cpu.CPU) noexcept nogil # 17 RLA @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JR_18(cpu.CPU, int v) noexcept # 18 JR r8 +cdef uint8_t JR_18(cpu.CPU, int v) noexcept nogil # 18 JR r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_19(cpu.CPU) noexcept # 19 ADD HL,DE +cdef uint8_t ADD_19(cpu.CPU) noexcept nogil # 19 ADD HL,DE @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_1A(cpu.CPU) noexcept # 1A LD A,(DE) +cdef uint8_t LD_1A(cpu.CPU) noexcept nogil # 1A LD A,(DE) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_1B(cpu.CPU) noexcept # 1B DEC DE +cdef uint8_t DEC_1B(cpu.CPU) noexcept nogil # 1B DEC DE @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_1C(cpu.CPU) noexcept # 1C INC E +cdef uint8_t INC_1C(cpu.CPU) noexcept nogil # 1C INC E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_1D(cpu.CPU) noexcept # 1D DEC E +cdef uint8_t DEC_1D(cpu.CPU) noexcept nogil # 1D DEC E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_1E(cpu.CPU, int v) noexcept # 1E LD E,d8 +cdef uint8_t LD_1E(cpu.CPU, int v) noexcept nogil # 1E LD E,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRA_1F(cpu.CPU) noexcept # 1F RRA +cdef uint8_t RRA_1F(cpu.CPU) noexcept nogil # 1F RRA @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JR_20(cpu.CPU, int v) noexcept # 20 JR NZ,r8 +cdef uint8_t JR_20(cpu.CPU, int v) noexcept nogil # 20 JR NZ,r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_21(cpu.CPU, int v) noexcept # 21 LD HL,d16 +cdef uint8_t LD_21(cpu.CPU, int v) noexcept nogil # 21 LD HL,d16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_22(cpu.CPU) noexcept # 22 LD (HL+),A +cdef uint8_t LD_22(cpu.CPU) noexcept nogil # 22 LD (HL+),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_23(cpu.CPU) noexcept # 23 INC HL +cdef uint8_t INC_23(cpu.CPU) noexcept nogil # 23 INC HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_24(cpu.CPU) noexcept # 24 INC H +cdef uint8_t INC_24(cpu.CPU) noexcept nogil # 24 INC H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_25(cpu.CPU) noexcept # 25 DEC H +cdef uint8_t DEC_25(cpu.CPU) noexcept nogil # 25 DEC H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_26(cpu.CPU, int v) noexcept # 26 LD H,d8 +cdef uint8_t LD_26(cpu.CPU, int v) noexcept nogil # 26 LD H,d8 @cython.locals(v=int, flag=uint8_t, t=int, corr=ushort) -cdef uint8_t DAA_27(cpu.CPU) noexcept # 27 DAA +cdef uint8_t DAA_27(cpu.CPU) noexcept nogil # 27 DAA @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JR_28(cpu.CPU, int v) noexcept # 28 JR Z,r8 +cdef uint8_t JR_28(cpu.CPU, int v) noexcept nogil # 28 JR Z,r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_29(cpu.CPU) noexcept # 29 ADD HL,HL +cdef uint8_t ADD_29(cpu.CPU) noexcept nogil # 29 ADD HL,HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_2A(cpu.CPU) noexcept # 2A LD A,(HL+) +cdef uint8_t LD_2A(cpu.CPU) noexcept nogil # 2A LD A,(HL+) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_2B(cpu.CPU) noexcept # 2B DEC HL +cdef uint8_t DEC_2B(cpu.CPU) noexcept nogil # 2B DEC HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_2C(cpu.CPU) noexcept # 2C INC L +cdef uint8_t INC_2C(cpu.CPU) noexcept nogil # 2C INC L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_2D(cpu.CPU) noexcept # 2D DEC L +cdef uint8_t DEC_2D(cpu.CPU) noexcept nogil # 2D DEC L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_2E(cpu.CPU, int v) noexcept # 2E LD L,d8 +cdef uint8_t LD_2E(cpu.CPU, int v) noexcept nogil # 2E LD L,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CPL_2F(cpu.CPU) noexcept # 2F CPL +cdef uint8_t CPL_2F(cpu.CPU) noexcept nogil # 2F CPL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JR_30(cpu.CPU, int v) noexcept # 30 JR NC,r8 +cdef uint8_t JR_30(cpu.CPU, int v) noexcept nogil # 30 JR NC,r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_31(cpu.CPU, int v) noexcept # 31 LD SP,d16 +cdef uint8_t LD_31(cpu.CPU, int v) noexcept nogil # 31 LD SP,d16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_32(cpu.CPU) noexcept # 32 LD (HL-),A +cdef uint8_t LD_32(cpu.CPU) noexcept nogil # 32 LD (HL-),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_33(cpu.CPU) noexcept # 33 INC SP +cdef uint8_t INC_33(cpu.CPU) noexcept nogil # 33 INC SP @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_34(cpu.CPU) noexcept # 34 INC (HL) +cdef uint8_t INC_34(cpu.CPU) noexcept nogil # 34 INC (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_35(cpu.CPU) noexcept # 35 DEC (HL) +cdef uint8_t DEC_35(cpu.CPU) noexcept nogil # 35 DEC (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_36(cpu.CPU, int v) noexcept # 36 LD (HL),d8 +cdef uint8_t LD_36(cpu.CPU, int v) noexcept nogil # 36 LD (HL),d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SCF_37(cpu.CPU) noexcept # 37 SCF +cdef uint8_t SCF_37(cpu.CPU) noexcept nogil # 37 SCF @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JR_38(cpu.CPU, int v) noexcept # 38 JR C,r8 +cdef uint8_t JR_38(cpu.CPU, int v) noexcept nogil # 38 JR C,r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_39(cpu.CPU) noexcept # 39 ADD HL,SP +cdef uint8_t ADD_39(cpu.CPU) noexcept nogil # 39 ADD HL,SP @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_3A(cpu.CPU) noexcept # 3A LD A,(HL-) +cdef uint8_t LD_3A(cpu.CPU) noexcept nogil # 3A LD A,(HL-) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_3B(cpu.CPU) noexcept # 3B DEC SP +cdef uint8_t DEC_3B(cpu.CPU) noexcept nogil # 3B DEC SP @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t INC_3C(cpu.CPU) noexcept # 3C INC A +cdef uint8_t INC_3C(cpu.CPU) noexcept nogil # 3C INC A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DEC_3D(cpu.CPU) noexcept # 3D DEC A +cdef uint8_t DEC_3D(cpu.CPU) noexcept nogil # 3D DEC A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_3E(cpu.CPU, int v) noexcept # 3E LD A,d8 +cdef uint8_t LD_3E(cpu.CPU, int v) noexcept nogil # 3E LD A,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CCF_3F(cpu.CPU) noexcept # 3F CCF +cdef uint8_t CCF_3F(cpu.CPU) noexcept nogil # 3F CCF @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_40(cpu.CPU) noexcept # 40 LD B,B +cdef uint8_t LD_40(cpu.CPU) noexcept nogil # 40 LD B,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_41(cpu.CPU) noexcept # 41 LD B,C +cdef uint8_t LD_41(cpu.CPU) noexcept nogil # 41 LD B,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_42(cpu.CPU) noexcept # 42 LD B,D +cdef uint8_t LD_42(cpu.CPU) noexcept nogil # 42 LD B,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_43(cpu.CPU) noexcept # 43 LD B,E +cdef uint8_t LD_43(cpu.CPU) noexcept nogil # 43 LD B,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_44(cpu.CPU) noexcept # 44 LD B,H +cdef uint8_t LD_44(cpu.CPU) noexcept nogil # 44 LD B,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_45(cpu.CPU) noexcept # 45 LD B,L +cdef uint8_t LD_45(cpu.CPU) noexcept nogil # 45 LD B,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_46(cpu.CPU) noexcept # 46 LD B,(HL) +cdef uint8_t LD_46(cpu.CPU) noexcept nogil # 46 LD B,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_47(cpu.CPU) noexcept # 47 LD B,A +cdef uint8_t LD_47(cpu.CPU) noexcept nogil # 47 LD B,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_48(cpu.CPU) noexcept # 48 LD C,B +cdef uint8_t LD_48(cpu.CPU) noexcept nogil # 48 LD C,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_49(cpu.CPU) noexcept # 49 LD C,C +cdef uint8_t LD_49(cpu.CPU) noexcept nogil # 49 LD C,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4A(cpu.CPU) noexcept # 4A LD C,D +cdef uint8_t LD_4A(cpu.CPU) noexcept nogil # 4A LD C,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4B(cpu.CPU) noexcept # 4B LD C,E +cdef uint8_t LD_4B(cpu.CPU) noexcept nogil # 4B LD C,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4C(cpu.CPU) noexcept # 4C LD C,H +cdef uint8_t LD_4C(cpu.CPU) noexcept nogil # 4C LD C,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4D(cpu.CPU) noexcept # 4D LD C,L +cdef uint8_t LD_4D(cpu.CPU) noexcept nogil # 4D LD C,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4E(cpu.CPU) noexcept # 4E LD C,(HL) +cdef uint8_t LD_4E(cpu.CPU) noexcept nogil # 4E LD C,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_4F(cpu.CPU) noexcept # 4F LD C,A +cdef uint8_t LD_4F(cpu.CPU) noexcept nogil # 4F LD C,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_50(cpu.CPU) noexcept # 50 LD D,B +cdef uint8_t LD_50(cpu.CPU) noexcept nogil # 50 LD D,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_51(cpu.CPU) noexcept # 51 LD D,C +cdef uint8_t LD_51(cpu.CPU) noexcept nogil # 51 LD D,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_52(cpu.CPU) noexcept # 52 LD D,D +cdef uint8_t LD_52(cpu.CPU) noexcept nogil # 52 LD D,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_53(cpu.CPU) noexcept # 53 LD D,E +cdef uint8_t LD_53(cpu.CPU) noexcept nogil # 53 LD D,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_54(cpu.CPU) noexcept # 54 LD D,H +cdef uint8_t LD_54(cpu.CPU) noexcept nogil # 54 LD D,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_55(cpu.CPU) noexcept # 55 LD D,L +cdef uint8_t LD_55(cpu.CPU) noexcept nogil # 55 LD D,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_56(cpu.CPU) noexcept # 56 LD D,(HL) +cdef uint8_t LD_56(cpu.CPU) noexcept nogil # 56 LD D,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_57(cpu.CPU) noexcept # 57 LD D,A +cdef uint8_t LD_57(cpu.CPU) noexcept nogil # 57 LD D,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_58(cpu.CPU) noexcept # 58 LD E,B +cdef uint8_t LD_58(cpu.CPU) noexcept nogil # 58 LD E,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_59(cpu.CPU) noexcept # 59 LD E,C +cdef uint8_t LD_59(cpu.CPU) noexcept nogil # 59 LD E,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5A(cpu.CPU) noexcept # 5A LD E,D +cdef uint8_t LD_5A(cpu.CPU) noexcept nogil # 5A LD E,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5B(cpu.CPU) noexcept # 5B LD E,E +cdef uint8_t LD_5B(cpu.CPU) noexcept nogil # 5B LD E,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5C(cpu.CPU) noexcept # 5C LD E,H +cdef uint8_t LD_5C(cpu.CPU) noexcept nogil # 5C LD E,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5D(cpu.CPU) noexcept # 5D LD E,L +cdef uint8_t LD_5D(cpu.CPU) noexcept nogil # 5D LD E,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5E(cpu.CPU) noexcept # 5E LD E,(HL) +cdef uint8_t LD_5E(cpu.CPU) noexcept nogil # 5E LD E,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_5F(cpu.CPU) noexcept # 5F LD E,A +cdef uint8_t LD_5F(cpu.CPU) noexcept nogil # 5F LD E,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_60(cpu.CPU) noexcept # 60 LD H,B +cdef uint8_t LD_60(cpu.CPU) noexcept nogil # 60 LD H,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_61(cpu.CPU) noexcept # 61 LD H,C +cdef uint8_t LD_61(cpu.CPU) noexcept nogil # 61 LD H,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_62(cpu.CPU) noexcept # 62 LD H,D +cdef uint8_t LD_62(cpu.CPU) noexcept nogil # 62 LD H,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_63(cpu.CPU) noexcept # 63 LD H,E +cdef uint8_t LD_63(cpu.CPU) noexcept nogil # 63 LD H,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_64(cpu.CPU) noexcept # 64 LD H,H +cdef uint8_t LD_64(cpu.CPU) noexcept nogil # 64 LD H,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_65(cpu.CPU) noexcept # 65 LD H,L +cdef uint8_t LD_65(cpu.CPU) noexcept nogil # 65 LD H,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_66(cpu.CPU) noexcept # 66 LD H,(HL) +cdef uint8_t LD_66(cpu.CPU) noexcept nogil # 66 LD H,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_67(cpu.CPU) noexcept # 67 LD H,A +cdef uint8_t LD_67(cpu.CPU) noexcept nogil # 67 LD H,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_68(cpu.CPU) noexcept # 68 LD L,B +cdef uint8_t LD_68(cpu.CPU) noexcept nogil # 68 LD L,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_69(cpu.CPU) noexcept # 69 LD L,C +cdef uint8_t LD_69(cpu.CPU) noexcept nogil # 69 LD L,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6A(cpu.CPU) noexcept # 6A LD L,D +cdef uint8_t LD_6A(cpu.CPU) noexcept nogil # 6A LD L,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6B(cpu.CPU) noexcept # 6B LD L,E +cdef uint8_t LD_6B(cpu.CPU) noexcept nogil # 6B LD L,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6C(cpu.CPU) noexcept # 6C LD L,H +cdef uint8_t LD_6C(cpu.CPU) noexcept nogil # 6C LD L,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6D(cpu.CPU) noexcept # 6D LD L,L +cdef uint8_t LD_6D(cpu.CPU) noexcept nogil # 6D LD L,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6E(cpu.CPU) noexcept # 6E LD L,(HL) +cdef uint8_t LD_6E(cpu.CPU) noexcept nogil # 6E LD L,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_6F(cpu.CPU) noexcept # 6F LD L,A +cdef uint8_t LD_6F(cpu.CPU) noexcept nogil # 6F LD L,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_70(cpu.CPU) noexcept # 70 LD (HL),B +cdef uint8_t LD_70(cpu.CPU) noexcept nogil # 70 LD (HL),B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_71(cpu.CPU) noexcept # 71 LD (HL),C +cdef uint8_t LD_71(cpu.CPU) noexcept nogil # 71 LD (HL),C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_72(cpu.CPU) noexcept # 72 LD (HL),D +cdef uint8_t LD_72(cpu.CPU) noexcept nogil # 72 LD (HL),D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_73(cpu.CPU) noexcept # 73 LD (HL),E +cdef uint8_t LD_73(cpu.CPU) noexcept nogil # 73 LD (HL),E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_74(cpu.CPU) noexcept # 74 LD (HL),H +cdef uint8_t LD_74(cpu.CPU) noexcept nogil # 74 LD (HL),H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_75(cpu.CPU) noexcept # 75 LD (HL),L +cdef uint8_t LD_75(cpu.CPU) noexcept nogil # 75 LD (HL),L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t HALT_76(cpu.CPU) noexcept # 76 HALT +cdef uint8_t HALT_76(cpu.CPU) noexcept nogil # 76 HALT @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_77(cpu.CPU) noexcept # 77 LD (HL),A +cdef uint8_t LD_77(cpu.CPU) noexcept nogil # 77 LD (HL),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_78(cpu.CPU) noexcept # 78 LD A,B +cdef uint8_t LD_78(cpu.CPU) noexcept nogil # 78 LD A,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_79(cpu.CPU) noexcept # 79 LD A,C +cdef uint8_t LD_79(cpu.CPU) noexcept nogil # 79 LD A,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7A(cpu.CPU) noexcept # 7A LD A,D +cdef uint8_t LD_7A(cpu.CPU) noexcept nogil # 7A LD A,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7B(cpu.CPU) noexcept # 7B LD A,E +cdef uint8_t LD_7B(cpu.CPU) noexcept nogil # 7B LD A,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7C(cpu.CPU) noexcept # 7C LD A,H +cdef uint8_t LD_7C(cpu.CPU) noexcept nogil # 7C LD A,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7D(cpu.CPU) noexcept # 7D LD A,L +cdef uint8_t LD_7D(cpu.CPU) noexcept nogil # 7D LD A,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7E(cpu.CPU) noexcept # 7E LD A,(HL) +cdef uint8_t LD_7E(cpu.CPU) noexcept nogil # 7E LD A,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_7F(cpu.CPU) noexcept # 7F LD A,A +cdef uint8_t LD_7F(cpu.CPU) noexcept nogil # 7F LD A,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_80(cpu.CPU) noexcept # 80 ADD A,B +cdef uint8_t ADD_80(cpu.CPU) noexcept nogil # 80 ADD A,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_81(cpu.CPU) noexcept # 81 ADD A,C +cdef uint8_t ADD_81(cpu.CPU) noexcept nogil # 81 ADD A,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_82(cpu.CPU) noexcept # 82 ADD A,D +cdef uint8_t ADD_82(cpu.CPU) noexcept nogil # 82 ADD A,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_83(cpu.CPU) noexcept # 83 ADD A,E +cdef uint8_t ADD_83(cpu.CPU) noexcept nogil # 83 ADD A,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_84(cpu.CPU) noexcept # 84 ADD A,H +cdef uint8_t ADD_84(cpu.CPU) noexcept nogil # 84 ADD A,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_85(cpu.CPU) noexcept # 85 ADD A,L +cdef uint8_t ADD_85(cpu.CPU) noexcept nogil # 85 ADD A,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_86(cpu.CPU) noexcept # 86 ADD A,(HL) +cdef uint8_t ADD_86(cpu.CPU) noexcept nogil # 86 ADD A,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_87(cpu.CPU) noexcept # 87 ADD A,A +cdef uint8_t ADD_87(cpu.CPU) noexcept nogil # 87 ADD A,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_88(cpu.CPU) noexcept # 88 ADC A,B +cdef uint8_t ADC_88(cpu.CPU) noexcept nogil # 88 ADC A,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_89(cpu.CPU) noexcept # 89 ADC A,C +cdef uint8_t ADC_89(cpu.CPU) noexcept nogil # 89 ADC A,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8A(cpu.CPU) noexcept # 8A ADC A,D +cdef uint8_t ADC_8A(cpu.CPU) noexcept nogil # 8A ADC A,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8B(cpu.CPU) noexcept # 8B ADC A,E +cdef uint8_t ADC_8B(cpu.CPU) noexcept nogil # 8B ADC A,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8C(cpu.CPU) noexcept # 8C ADC A,H +cdef uint8_t ADC_8C(cpu.CPU) noexcept nogil # 8C ADC A,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8D(cpu.CPU) noexcept # 8D ADC A,L +cdef uint8_t ADC_8D(cpu.CPU) noexcept nogil # 8D ADC A,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8E(cpu.CPU) noexcept # 8E ADC A,(HL) +cdef uint8_t ADC_8E(cpu.CPU) noexcept nogil # 8E ADC A,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_8F(cpu.CPU) noexcept # 8F ADC A,A +cdef uint8_t ADC_8F(cpu.CPU) noexcept nogil # 8F ADC A,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_90(cpu.CPU) noexcept # 90 SUB B +cdef uint8_t SUB_90(cpu.CPU) noexcept nogil # 90 SUB B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_91(cpu.CPU) noexcept # 91 SUB C +cdef uint8_t SUB_91(cpu.CPU) noexcept nogil # 91 SUB C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_92(cpu.CPU) noexcept # 92 SUB D +cdef uint8_t SUB_92(cpu.CPU) noexcept nogil # 92 SUB D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_93(cpu.CPU) noexcept # 93 SUB E +cdef uint8_t SUB_93(cpu.CPU) noexcept nogil # 93 SUB E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_94(cpu.CPU) noexcept # 94 SUB H +cdef uint8_t SUB_94(cpu.CPU) noexcept nogil # 94 SUB H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_95(cpu.CPU) noexcept # 95 SUB L +cdef uint8_t SUB_95(cpu.CPU) noexcept nogil # 95 SUB L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_96(cpu.CPU) noexcept # 96 SUB (HL) +cdef uint8_t SUB_96(cpu.CPU) noexcept nogil # 96 SUB (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_97(cpu.CPU) noexcept # 97 SUB A +cdef uint8_t SUB_97(cpu.CPU) noexcept nogil # 97 SUB A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_98(cpu.CPU) noexcept # 98 SBC A,B +cdef uint8_t SBC_98(cpu.CPU) noexcept nogil # 98 SBC A,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_99(cpu.CPU) noexcept # 99 SBC A,C +cdef uint8_t SBC_99(cpu.CPU) noexcept nogil # 99 SBC A,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9A(cpu.CPU) noexcept # 9A SBC A,D +cdef uint8_t SBC_9A(cpu.CPU) noexcept nogil # 9A SBC A,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9B(cpu.CPU) noexcept # 9B SBC A,E +cdef uint8_t SBC_9B(cpu.CPU) noexcept nogil # 9B SBC A,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9C(cpu.CPU) noexcept # 9C SBC A,H +cdef uint8_t SBC_9C(cpu.CPU) noexcept nogil # 9C SBC A,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9D(cpu.CPU) noexcept # 9D SBC A,L +cdef uint8_t SBC_9D(cpu.CPU) noexcept nogil # 9D SBC A,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9E(cpu.CPU) noexcept # 9E SBC A,(HL) +cdef uint8_t SBC_9E(cpu.CPU) noexcept nogil # 9E SBC A,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_9F(cpu.CPU) noexcept # 9F SBC A,A +cdef uint8_t SBC_9F(cpu.CPU) noexcept nogil # 9F SBC A,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A0(cpu.CPU) noexcept # A0 AND B +cdef uint8_t AND_A0(cpu.CPU) noexcept nogil # A0 AND B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A1(cpu.CPU) noexcept # A1 AND C +cdef uint8_t AND_A1(cpu.CPU) noexcept nogil # A1 AND C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A2(cpu.CPU) noexcept # A2 AND D +cdef uint8_t AND_A2(cpu.CPU) noexcept nogil # A2 AND D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A3(cpu.CPU) noexcept # A3 AND E +cdef uint8_t AND_A3(cpu.CPU) noexcept nogil # A3 AND E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A4(cpu.CPU) noexcept # A4 AND H +cdef uint8_t AND_A4(cpu.CPU) noexcept nogil # A4 AND H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A5(cpu.CPU) noexcept # A5 AND L +cdef uint8_t AND_A5(cpu.CPU) noexcept nogil # A5 AND L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A6(cpu.CPU) noexcept # A6 AND (HL) +cdef uint8_t AND_A6(cpu.CPU) noexcept nogil # A6 AND (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_A7(cpu.CPU) noexcept # A7 AND A +cdef uint8_t AND_A7(cpu.CPU) noexcept nogil # A7 AND A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_A8(cpu.CPU) noexcept # A8 XOR B +cdef uint8_t XOR_A8(cpu.CPU) noexcept nogil # A8 XOR B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_A9(cpu.CPU) noexcept # A9 XOR C +cdef uint8_t XOR_A9(cpu.CPU) noexcept nogil # A9 XOR C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AA(cpu.CPU) noexcept # AA XOR D +cdef uint8_t XOR_AA(cpu.CPU) noexcept nogil # AA XOR D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AB(cpu.CPU) noexcept # AB XOR E +cdef uint8_t XOR_AB(cpu.CPU) noexcept nogil # AB XOR E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AC(cpu.CPU) noexcept # AC XOR H +cdef uint8_t XOR_AC(cpu.CPU) noexcept nogil # AC XOR H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AD(cpu.CPU) noexcept # AD XOR L +cdef uint8_t XOR_AD(cpu.CPU) noexcept nogil # AD XOR L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AE(cpu.CPU) noexcept # AE XOR (HL) +cdef uint8_t XOR_AE(cpu.CPU) noexcept nogil # AE XOR (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_AF(cpu.CPU) noexcept # AF XOR A +cdef uint8_t XOR_AF(cpu.CPU) noexcept nogil # AF XOR A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B0(cpu.CPU) noexcept # B0 OR B +cdef uint8_t OR_B0(cpu.CPU) noexcept nogil # B0 OR B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B1(cpu.CPU) noexcept # B1 OR C +cdef uint8_t OR_B1(cpu.CPU) noexcept nogil # B1 OR C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B2(cpu.CPU) noexcept # B2 OR D +cdef uint8_t OR_B2(cpu.CPU) noexcept nogil # B2 OR D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B3(cpu.CPU) noexcept # B3 OR E +cdef uint8_t OR_B3(cpu.CPU) noexcept nogil # B3 OR E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B4(cpu.CPU) noexcept # B4 OR H +cdef uint8_t OR_B4(cpu.CPU) noexcept nogil # B4 OR H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B5(cpu.CPU) noexcept # B5 OR L +cdef uint8_t OR_B5(cpu.CPU) noexcept nogil # B5 OR L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B6(cpu.CPU) noexcept # B6 OR (HL) +cdef uint8_t OR_B6(cpu.CPU) noexcept nogil # B6 OR (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_B7(cpu.CPU) noexcept # B7 OR A +cdef uint8_t OR_B7(cpu.CPU) noexcept nogil # B7 OR A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_B8(cpu.CPU) noexcept # B8 CP B +cdef uint8_t CP_B8(cpu.CPU) noexcept nogil # B8 CP B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_B9(cpu.CPU) noexcept # B9 CP C +cdef uint8_t CP_B9(cpu.CPU) noexcept nogil # B9 CP C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BA(cpu.CPU) noexcept # BA CP D +cdef uint8_t CP_BA(cpu.CPU) noexcept nogil # BA CP D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BB(cpu.CPU) noexcept # BB CP E +cdef uint8_t CP_BB(cpu.CPU) noexcept nogil # BB CP E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BC(cpu.CPU) noexcept # BC CP H +cdef uint8_t CP_BC(cpu.CPU) noexcept nogil # BC CP H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BD(cpu.CPU) noexcept # BD CP L +cdef uint8_t CP_BD(cpu.CPU) noexcept nogil # BD CP L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BE(cpu.CPU) noexcept # BE CP (HL) +cdef uint8_t CP_BE(cpu.CPU) noexcept nogil # BE CP (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_BF(cpu.CPU) noexcept # BF CP A +cdef uint8_t CP_BF(cpu.CPU) noexcept nogil # BF CP A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RET_C0(cpu.CPU) noexcept # C0 RET NZ +cdef uint8_t RET_C0(cpu.CPU) noexcept nogil # C0 RET NZ @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t POP_C1(cpu.CPU) noexcept # C1 POP BC +cdef uint8_t POP_C1(cpu.CPU) noexcept nogil # C1 POP BC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_C2(cpu.CPU, int v) noexcept # C2 JP NZ,a16 +cdef uint8_t JP_C2(cpu.CPU, int v) noexcept nogil # C2 JP NZ,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_C3(cpu.CPU, int v) noexcept # C3 JP a16 +cdef uint8_t JP_C3(cpu.CPU, int v) noexcept nogil # C3 JP a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CALL_C4(cpu.CPU, int v) noexcept # C4 CALL NZ,a16 +cdef uint8_t CALL_C4(cpu.CPU, int v) noexcept nogil # C4 CALL NZ,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t PUSH_C5(cpu.CPU) noexcept # C5 PUSH BC +cdef uint8_t PUSH_C5(cpu.CPU) noexcept nogil # C5 PUSH BC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_C6(cpu.CPU, int v) noexcept # C6 ADD A,d8 +cdef uint8_t ADD_C6(cpu.CPU, int v) noexcept nogil # C6 ADD A,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_C7(cpu.CPU) noexcept # C7 RST 00H +cdef uint8_t RST_C7(cpu.CPU) noexcept nogil # C7 RST 00H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RET_C8(cpu.CPU) noexcept # C8 RET Z +cdef uint8_t RET_C8(cpu.CPU) noexcept nogil # C8 RET Z @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RET_C9(cpu.CPU) noexcept # C9 RET +cdef uint8_t RET_C9(cpu.CPU) noexcept nogil # C9 RET @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_CA(cpu.CPU, int v) noexcept # CA JP Z,a16 +cdef uint8_t JP_CA(cpu.CPU, int v) noexcept nogil # CA JP Z,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t PREFIX_CB(cpu.CPU) noexcept # CB PREFIX CB +cdef uint8_t PREFIX_CB(cpu.CPU) noexcept nogil # CB PREFIX CB @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CALL_CC(cpu.CPU, int v) noexcept # CC CALL Z,a16 +cdef uint8_t CALL_CC(cpu.CPU, int v) noexcept nogil # CC CALL Z,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CALL_CD(cpu.CPU, int v) noexcept # CD CALL a16 +cdef uint8_t CALL_CD(cpu.CPU, int v) noexcept nogil # CD CALL a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADC_CE(cpu.CPU, int v) noexcept # CE ADC A,d8 +cdef uint8_t ADC_CE(cpu.CPU, int v) noexcept nogil # CE ADC A,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_CF(cpu.CPU) noexcept # CF RST 08H +cdef uint8_t RST_CF(cpu.CPU) noexcept nogil # CF RST 08H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RET_D0(cpu.CPU) noexcept # D0 RET NC +cdef uint8_t RET_D0(cpu.CPU) noexcept nogil # D0 RET NC @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t POP_D1(cpu.CPU) noexcept # D1 POP DE +cdef uint8_t POP_D1(cpu.CPU) noexcept nogil # D1 POP DE @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_D2(cpu.CPU, int v) noexcept # D2 JP NC,a16 +cdef uint8_t JP_D2(cpu.CPU, int v) noexcept nogil # D2 JP NC,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CALL_D4(cpu.CPU, int v) noexcept # D4 CALL NC,a16 +cdef uint8_t CALL_D4(cpu.CPU, int v) noexcept nogil # D4 CALL NC,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t PUSH_D5(cpu.CPU) noexcept # D5 PUSH DE +cdef uint8_t PUSH_D5(cpu.CPU) noexcept nogil # D5 PUSH DE @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SUB_D6(cpu.CPU, int v) noexcept # D6 SUB d8 +cdef uint8_t SUB_D6(cpu.CPU, int v) noexcept nogil # D6 SUB d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_D7(cpu.CPU) noexcept # D7 RST 10H +cdef uint8_t RST_D7(cpu.CPU) noexcept nogil # D7 RST 10H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RET_D8(cpu.CPU) noexcept # D8 RET C +cdef uint8_t RET_D8(cpu.CPU) noexcept nogil # D8 RET C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RETI_D9(cpu.CPU) noexcept # D9 RETI +cdef uint8_t RETI_D9(cpu.CPU) noexcept nogil # D9 RETI @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_DA(cpu.CPU, int v) noexcept # DA JP C,a16 +cdef uint8_t JP_DA(cpu.CPU, int v) noexcept nogil # DA JP C,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CALL_DC(cpu.CPU, int v) noexcept # DC CALL C,a16 +cdef uint8_t CALL_DC(cpu.CPU, int v) noexcept nogil # DC CALL C,a16 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SBC_DE(cpu.CPU, int v) noexcept # DE SBC A,d8 +cdef uint8_t SBC_DE(cpu.CPU, int v) noexcept nogil # DE SBC A,d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_DF(cpu.CPU) noexcept # DF RST 18H +cdef uint8_t RST_DF(cpu.CPU) noexcept nogil # DF RST 18H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LDH_E0(cpu.CPU, int v) noexcept # E0 LDH (a8),A +cdef uint8_t LDH_E0(cpu.CPU, int v) noexcept nogil # E0 LDH (a8),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t POP_E1(cpu.CPU) noexcept # E1 POP HL +cdef uint8_t POP_E1(cpu.CPU) noexcept nogil # E1 POP HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_E2(cpu.CPU) noexcept # E2 LD (C),A +cdef uint8_t LD_E2(cpu.CPU) noexcept nogil # E2 LD (C),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t PUSH_E5(cpu.CPU) noexcept # E5 PUSH HL +cdef uint8_t PUSH_E5(cpu.CPU) noexcept nogil # E5 PUSH HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t AND_E6(cpu.CPU, int v) noexcept # E6 AND d8 +cdef uint8_t AND_E6(cpu.CPU, int v) noexcept nogil # E6 AND d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_E7(cpu.CPU) noexcept # E7 RST 20H +cdef uint8_t RST_E7(cpu.CPU) noexcept nogil # E7 RST 20H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t ADD_E8(cpu.CPU, int v) noexcept # E8 ADD SP,r8 +cdef uint8_t ADD_E8(cpu.CPU, int v) noexcept nogil # E8 ADD SP,r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t JP_E9(cpu.CPU) noexcept # E9 JP (HL) +cdef uint8_t JP_E9(cpu.CPU) noexcept nogil # E9 JP (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_EA(cpu.CPU, int v) noexcept # EA LD (a16),A +cdef uint8_t LD_EA(cpu.CPU, int v) noexcept nogil # EA LD (a16),A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t XOR_EE(cpu.CPU, int v) noexcept # EE XOR d8 +cdef uint8_t XOR_EE(cpu.CPU, int v) noexcept nogil # EE XOR d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_EF(cpu.CPU) noexcept # EF RST 28H +cdef uint8_t RST_EF(cpu.CPU) noexcept nogil # EF RST 28H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LDH_F0(cpu.CPU, int v) noexcept # F0 LDH A,(a8) +cdef uint8_t LDH_F0(cpu.CPU, int v) noexcept nogil # F0 LDH A,(a8) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t POP_F1(cpu.CPU) noexcept # F1 POP AF +cdef uint8_t POP_F1(cpu.CPU) noexcept nogil # F1 POP AF @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_F2(cpu.CPU) noexcept # F2 LD A,(C) +cdef uint8_t LD_F2(cpu.CPU) noexcept nogil # F2 LD A,(C) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t DI_F3(cpu.CPU) noexcept # F3 DI +cdef uint8_t DI_F3(cpu.CPU) noexcept nogil # F3 DI @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t PUSH_F5(cpu.CPU) noexcept # F5 PUSH AF +cdef uint8_t PUSH_F5(cpu.CPU) noexcept nogil # F5 PUSH AF @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t OR_F6(cpu.CPU, int v) noexcept # F6 OR d8 +cdef uint8_t OR_F6(cpu.CPU, int v) noexcept nogil # F6 OR d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_F7(cpu.CPU) noexcept # F7 RST 30H +cdef uint8_t RST_F7(cpu.CPU) noexcept nogil # F7 RST 30H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_F8(cpu.CPU, int v) noexcept # F8 LD HL,SP+r8 +cdef uint8_t LD_F8(cpu.CPU, int v) noexcept nogil # F8 LD HL,SP+r8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_F9(cpu.CPU) noexcept # F9 LD SP,HL +cdef uint8_t LD_F9(cpu.CPU) noexcept nogil # F9 LD SP,HL @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t LD_FA(cpu.CPU, int v) noexcept # FA LD A,(a16) +cdef uint8_t LD_FA(cpu.CPU, int v) noexcept nogil # FA LD A,(a16) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t EI_FB(cpu.CPU) noexcept # FB EI +cdef uint8_t EI_FB(cpu.CPU) noexcept nogil # FB EI @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t CP_FE(cpu.CPU, int v) noexcept # FE CP d8 +cdef uint8_t CP_FE(cpu.CPU, int v) noexcept nogil # FE CP d8 @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RST_FF(cpu.CPU) noexcept # FF RST 38H +cdef uint8_t RST_FF(cpu.CPU) noexcept nogil # FF RST 38H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_100(cpu.CPU) noexcept # 100 RLC B +cdef uint8_t RLC_100(cpu.CPU) noexcept nogil # 100 RLC B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_101(cpu.CPU) noexcept # 101 RLC C +cdef uint8_t RLC_101(cpu.CPU) noexcept nogil # 101 RLC C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_102(cpu.CPU) noexcept # 102 RLC D +cdef uint8_t RLC_102(cpu.CPU) noexcept nogil # 102 RLC D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_103(cpu.CPU) noexcept # 103 RLC E +cdef uint8_t RLC_103(cpu.CPU) noexcept nogil # 103 RLC E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_104(cpu.CPU) noexcept # 104 RLC H +cdef uint8_t RLC_104(cpu.CPU) noexcept nogil # 104 RLC H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_105(cpu.CPU) noexcept # 105 RLC L +cdef uint8_t RLC_105(cpu.CPU) noexcept nogil # 105 RLC L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_106(cpu.CPU) noexcept # 106 RLC (HL) +cdef uint8_t RLC_106(cpu.CPU) noexcept nogil # 106 RLC (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RLC_107(cpu.CPU) noexcept # 107 RLC A +cdef uint8_t RLC_107(cpu.CPU) noexcept nogil # 107 RLC A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_108(cpu.CPU) noexcept # 108 RRC B +cdef uint8_t RRC_108(cpu.CPU) noexcept nogil # 108 RRC B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_109(cpu.CPU) noexcept # 109 RRC C +cdef uint8_t RRC_109(cpu.CPU) noexcept nogil # 109 RRC C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10A(cpu.CPU) noexcept # 10A RRC D +cdef uint8_t RRC_10A(cpu.CPU) noexcept nogil # 10A RRC D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10B(cpu.CPU) noexcept # 10B RRC E +cdef uint8_t RRC_10B(cpu.CPU) noexcept nogil # 10B RRC E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10C(cpu.CPU) noexcept # 10C RRC H +cdef uint8_t RRC_10C(cpu.CPU) noexcept nogil # 10C RRC H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10D(cpu.CPU) noexcept # 10D RRC L +cdef uint8_t RRC_10D(cpu.CPU) noexcept nogil # 10D RRC L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10E(cpu.CPU) noexcept # 10E RRC (HL) +cdef uint8_t RRC_10E(cpu.CPU) noexcept nogil # 10E RRC (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RRC_10F(cpu.CPU) noexcept # 10F RRC A +cdef uint8_t RRC_10F(cpu.CPU) noexcept nogil # 10F RRC A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_110(cpu.CPU) noexcept # 110 RL B +cdef uint8_t RL_110(cpu.CPU) noexcept nogil # 110 RL B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_111(cpu.CPU) noexcept # 111 RL C +cdef uint8_t RL_111(cpu.CPU) noexcept nogil # 111 RL C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_112(cpu.CPU) noexcept # 112 RL D +cdef uint8_t RL_112(cpu.CPU) noexcept nogil # 112 RL D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_113(cpu.CPU) noexcept # 113 RL E +cdef uint8_t RL_113(cpu.CPU) noexcept nogil # 113 RL E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_114(cpu.CPU) noexcept # 114 RL H +cdef uint8_t RL_114(cpu.CPU) noexcept nogil # 114 RL H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_115(cpu.CPU) noexcept # 115 RL L +cdef uint8_t RL_115(cpu.CPU) noexcept nogil # 115 RL L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_116(cpu.CPU) noexcept # 116 RL (HL) +cdef uint8_t RL_116(cpu.CPU) noexcept nogil # 116 RL (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RL_117(cpu.CPU) noexcept # 117 RL A +cdef uint8_t RL_117(cpu.CPU) noexcept nogil # 117 RL A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_118(cpu.CPU) noexcept # 118 RR B +cdef uint8_t RR_118(cpu.CPU) noexcept nogil # 118 RR B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_119(cpu.CPU) noexcept # 119 RR C +cdef uint8_t RR_119(cpu.CPU) noexcept nogil # 119 RR C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11A(cpu.CPU) noexcept # 11A RR D +cdef uint8_t RR_11A(cpu.CPU) noexcept nogil # 11A RR D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11B(cpu.CPU) noexcept # 11B RR E +cdef uint8_t RR_11B(cpu.CPU) noexcept nogil # 11B RR E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11C(cpu.CPU) noexcept # 11C RR H +cdef uint8_t RR_11C(cpu.CPU) noexcept nogil # 11C RR H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11D(cpu.CPU) noexcept # 11D RR L +cdef uint8_t RR_11D(cpu.CPU) noexcept nogil # 11D RR L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11E(cpu.CPU) noexcept # 11E RR (HL) +cdef uint8_t RR_11E(cpu.CPU) noexcept nogil # 11E RR (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RR_11F(cpu.CPU) noexcept # 11F RR A +cdef uint8_t RR_11F(cpu.CPU) noexcept nogil # 11F RR A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_120(cpu.CPU) noexcept # 120 SLA B +cdef uint8_t SLA_120(cpu.CPU) noexcept nogil # 120 SLA B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_121(cpu.CPU) noexcept # 121 SLA C +cdef uint8_t SLA_121(cpu.CPU) noexcept nogil # 121 SLA C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_122(cpu.CPU) noexcept # 122 SLA D +cdef uint8_t SLA_122(cpu.CPU) noexcept nogil # 122 SLA D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_123(cpu.CPU) noexcept # 123 SLA E +cdef uint8_t SLA_123(cpu.CPU) noexcept nogil # 123 SLA E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_124(cpu.CPU) noexcept # 124 SLA H +cdef uint8_t SLA_124(cpu.CPU) noexcept nogil # 124 SLA H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_125(cpu.CPU) noexcept # 125 SLA L +cdef uint8_t SLA_125(cpu.CPU) noexcept nogil # 125 SLA L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_126(cpu.CPU) noexcept # 126 SLA (HL) +cdef uint8_t SLA_126(cpu.CPU) noexcept nogil # 126 SLA (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SLA_127(cpu.CPU) noexcept # 127 SLA A +cdef uint8_t SLA_127(cpu.CPU) noexcept nogil # 127 SLA A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_128(cpu.CPU) noexcept # 128 SRA B +cdef uint8_t SRA_128(cpu.CPU) noexcept nogil # 128 SRA B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_129(cpu.CPU) noexcept # 129 SRA C +cdef uint8_t SRA_129(cpu.CPU) noexcept nogil # 129 SRA C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12A(cpu.CPU) noexcept # 12A SRA D +cdef uint8_t SRA_12A(cpu.CPU) noexcept nogil # 12A SRA D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12B(cpu.CPU) noexcept # 12B SRA E +cdef uint8_t SRA_12B(cpu.CPU) noexcept nogil # 12B SRA E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12C(cpu.CPU) noexcept # 12C SRA H +cdef uint8_t SRA_12C(cpu.CPU) noexcept nogil # 12C SRA H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12D(cpu.CPU) noexcept # 12D SRA L +cdef uint8_t SRA_12D(cpu.CPU) noexcept nogil # 12D SRA L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12E(cpu.CPU) noexcept # 12E SRA (HL) +cdef uint8_t SRA_12E(cpu.CPU) noexcept nogil # 12E SRA (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRA_12F(cpu.CPU) noexcept # 12F SRA A +cdef uint8_t SRA_12F(cpu.CPU) noexcept nogil # 12F SRA A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_130(cpu.CPU) noexcept # 130 SWAP B +cdef uint8_t SWAP_130(cpu.CPU) noexcept nogil # 130 SWAP B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_131(cpu.CPU) noexcept # 131 SWAP C +cdef uint8_t SWAP_131(cpu.CPU) noexcept nogil # 131 SWAP C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_132(cpu.CPU) noexcept # 132 SWAP D +cdef uint8_t SWAP_132(cpu.CPU) noexcept nogil # 132 SWAP D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_133(cpu.CPU) noexcept # 133 SWAP E +cdef uint8_t SWAP_133(cpu.CPU) noexcept nogil # 133 SWAP E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_134(cpu.CPU) noexcept # 134 SWAP H +cdef uint8_t SWAP_134(cpu.CPU) noexcept nogil # 134 SWAP H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_135(cpu.CPU) noexcept # 135 SWAP L +cdef uint8_t SWAP_135(cpu.CPU) noexcept nogil # 135 SWAP L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_136(cpu.CPU) noexcept # 136 SWAP (HL) +cdef uint8_t SWAP_136(cpu.CPU) noexcept nogil # 136 SWAP (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SWAP_137(cpu.CPU) noexcept # 137 SWAP A +cdef uint8_t SWAP_137(cpu.CPU) noexcept nogil # 137 SWAP A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_138(cpu.CPU) noexcept # 138 SRL B +cdef uint8_t SRL_138(cpu.CPU) noexcept nogil # 138 SRL B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_139(cpu.CPU) noexcept # 139 SRL C +cdef uint8_t SRL_139(cpu.CPU) noexcept nogil # 139 SRL C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13A(cpu.CPU) noexcept # 13A SRL D +cdef uint8_t SRL_13A(cpu.CPU) noexcept nogil # 13A SRL D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13B(cpu.CPU) noexcept # 13B SRL E +cdef uint8_t SRL_13B(cpu.CPU) noexcept nogil # 13B SRL E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13C(cpu.CPU) noexcept # 13C SRL H +cdef uint8_t SRL_13C(cpu.CPU) noexcept nogil # 13C SRL H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13D(cpu.CPU) noexcept # 13D SRL L +cdef uint8_t SRL_13D(cpu.CPU) noexcept nogil # 13D SRL L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13E(cpu.CPU) noexcept # 13E SRL (HL) +cdef uint8_t SRL_13E(cpu.CPU) noexcept nogil # 13E SRL (HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SRL_13F(cpu.CPU) noexcept # 13F SRL A +cdef uint8_t SRL_13F(cpu.CPU) noexcept nogil # 13F SRL A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_140(cpu.CPU) noexcept # 140 BIT 0,B +cdef uint8_t BIT_140(cpu.CPU) noexcept nogil # 140 BIT 0,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_141(cpu.CPU) noexcept # 141 BIT 0,C +cdef uint8_t BIT_141(cpu.CPU) noexcept nogil # 141 BIT 0,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_142(cpu.CPU) noexcept # 142 BIT 0,D +cdef uint8_t BIT_142(cpu.CPU) noexcept nogil # 142 BIT 0,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_143(cpu.CPU) noexcept # 143 BIT 0,E +cdef uint8_t BIT_143(cpu.CPU) noexcept nogil # 143 BIT 0,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_144(cpu.CPU) noexcept # 144 BIT 0,H +cdef uint8_t BIT_144(cpu.CPU) noexcept nogil # 144 BIT 0,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_145(cpu.CPU) noexcept # 145 BIT 0,L +cdef uint8_t BIT_145(cpu.CPU) noexcept nogil # 145 BIT 0,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_146(cpu.CPU) noexcept # 146 BIT 0,(HL) +cdef uint8_t BIT_146(cpu.CPU) noexcept nogil # 146 BIT 0,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_147(cpu.CPU) noexcept # 147 BIT 0,A +cdef uint8_t BIT_147(cpu.CPU) noexcept nogil # 147 BIT 0,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_148(cpu.CPU) noexcept # 148 BIT 1,B +cdef uint8_t BIT_148(cpu.CPU) noexcept nogil # 148 BIT 1,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_149(cpu.CPU) noexcept # 149 BIT 1,C +cdef uint8_t BIT_149(cpu.CPU) noexcept nogil # 149 BIT 1,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14A(cpu.CPU) noexcept # 14A BIT 1,D +cdef uint8_t BIT_14A(cpu.CPU) noexcept nogil # 14A BIT 1,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14B(cpu.CPU) noexcept # 14B BIT 1,E +cdef uint8_t BIT_14B(cpu.CPU) noexcept nogil # 14B BIT 1,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14C(cpu.CPU) noexcept # 14C BIT 1,H +cdef uint8_t BIT_14C(cpu.CPU) noexcept nogil # 14C BIT 1,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14D(cpu.CPU) noexcept # 14D BIT 1,L +cdef uint8_t BIT_14D(cpu.CPU) noexcept nogil # 14D BIT 1,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14E(cpu.CPU) noexcept # 14E BIT 1,(HL) +cdef uint8_t BIT_14E(cpu.CPU) noexcept nogil # 14E BIT 1,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_14F(cpu.CPU) noexcept # 14F BIT 1,A +cdef uint8_t BIT_14F(cpu.CPU) noexcept nogil # 14F BIT 1,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_150(cpu.CPU) noexcept # 150 BIT 2,B +cdef uint8_t BIT_150(cpu.CPU) noexcept nogil # 150 BIT 2,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_151(cpu.CPU) noexcept # 151 BIT 2,C +cdef uint8_t BIT_151(cpu.CPU) noexcept nogil # 151 BIT 2,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_152(cpu.CPU) noexcept # 152 BIT 2,D +cdef uint8_t BIT_152(cpu.CPU) noexcept nogil # 152 BIT 2,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_153(cpu.CPU) noexcept # 153 BIT 2,E +cdef uint8_t BIT_153(cpu.CPU) noexcept nogil # 153 BIT 2,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_154(cpu.CPU) noexcept # 154 BIT 2,H +cdef uint8_t BIT_154(cpu.CPU) noexcept nogil # 154 BIT 2,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_155(cpu.CPU) noexcept # 155 BIT 2,L +cdef uint8_t BIT_155(cpu.CPU) noexcept nogil # 155 BIT 2,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_156(cpu.CPU) noexcept # 156 BIT 2,(HL) +cdef uint8_t BIT_156(cpu.CPU) noexcept nogil # 156 BIT 2,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_157(cpu.CPU) noexcept # 157 BIT 2,A +cdef uint8_t BIT_157(cpu.CPU) noexcept nogil # 157 BIT 2,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_158(cpu.CPU) noexcept # 158 BIT 3,B +cdef uint8_t BIT_158(cpu.CPU) noexcept nogil # 158 BIT 3,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_159(cpu.CPU) noexcept # 159 BIT 3,C +cdef uint8_t BIT_159(cpu.CPU) noexcept nogil # 159 BIT 3,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15A(cpu.CPU) noexcept # 15A BIT 3,D +cdef uint8_t BIT_15A(cpu.CPU) noexcept nogil # 15A BIT 3,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15B(cpu.CPU) noexcept # 15B BIT 3,E +cdef uint8_t BIT_15B(cpu.CPU) noexcept nogil # 15B BIT 3,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15C(cpu.CPU) noexcept # 15C BIT 3,H +cdef uint8_t BIT_15C(cpu.CPU) noexcept nogil # 15C BIT 3,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15D(cpu.CPU) noexcept # 15D BIT 3,L +cdef uint8_t BIT_15D(cpu.CPU) noexcept nogil # 15D BIT 3,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15E(cpu.CPU) noexcept # 15E BIT 3,(HL) +cdef uint8_t BIT_15E(cpu.CPU) noexcept nogil # 15E BIT 3,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_15F(cpu.CPU) noexcept # 15F BIT 3,A +cdef uint8_t BIT_15F(cpu.CPU) noexcept nogil # 15F BIT 3,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_160(cpu.CPU) noexcept # 160 BIT 4,B +cdef uint8_t BIT_160(cpu.CPU) noexcept nogil # 160 BIT 4,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_161(cpu.CPU) noexcept # 161 BIT 4,C +cdef uint8_t BIT_161(cpu.CPU) noexcept nogil # 161 BIT 4,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_162(cpu.CPU) noexcept # 162 BIT 4,D +cdef uint8_t BIT_162(cpu.CPU) noexcept nogil # 162 BIT 4,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_163(cpu.CPU) noexcept # 163 BIT 4,E +cdef uint8_t BIT_163(cpu.CPU) noexcept nogil # 163 BIT 4,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_164(cpu.CPU) noexcept # 164 BIT 4,H +cdef uint8_t BIT_164(cpu.CPU) noexcept nogil # 164 BIT 4,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_165(cpu.CPU) noexcept # 165 BIT 4,L +cdef uint8_t BIT_165(cpu.CPU) noexcept nogil # 165 BIT 4,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_166(cpu.CPU) noexcept # 166 BIT 4,(HL) +cdef uint8_t BIT_166(cpu.CPU) noexcept nogil # 166 BIT 4,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_167(cpu.CPU) noexcept # 167 BIT 4,A +cdef uint8_t BIT_167(cpu.CPU) noexcept nogil # 167 BIT 4,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_168(cpu.CPU) noexcept # 168 BIT 5,B +cdef uint8_t BIT_168(cpu.CPU) noexcept nogil # 168 BIT 5,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_169(cpu.CPU) noexcept # 169 BIT 5,C +cdef uint8_t BIT_169(cpu.CPU) noexcept nogil # 169 BIT 5,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16A(cpu.CPU) noexcept # 16A BIT 5,D +cdef uint8_t BIT_16A(cpu.CPU) noexcept nogil # 16A BIT 5,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16B(cpu.CPU) noexcept # 16B BIT 5,E +cdef uint8_t BIT_16B(cpu.CPU) noexcept nogil # 16B BIT 5,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16C(cpu.CPU) noexcept # 16C BIT 5,H +cdef uint8_t BIT_16C(cpu.CPU) noexcept nogil # 16C BIT 5,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16D(cpu.CPU) noexcept # 16D BIT 5,L +cdef uint8_t BIT_16D(cpu.CPU) noexcept nogil # 16D BIT 5,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16E(cpu.CPU) noexcept # 16E BIT 5,(HL) +cdef uint8_t BIT_16E(cpu.CPU) noexcept nogil # 16E BIT 5,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_16F(cpu.CPU) noexcept # 16F BIT 5,A +cdef uint8_t BIT_16F(cpu.CPU) noexcept nogil # 16F BIT 5,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_170(cpu.CPU) noexcept # 170 BIT 6,B +cdef uint8_t BIT_170(cpu.CPU) noexcept nogil # 170 BIT 6,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_171(cpu.CPU) noexcept # 171 BIT 6,C +cdef uint8_t BIT_171(cpu.CPU) noexcept nogil # 171 BIT 6,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_172(cpu.CPU) noexcept # 172 BIT 6,D +cdef uint8_t BIT_172(cpu.CPU) noexcept nogil # 172 BIT 6,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_173(cpu.CPU) noexcept # 173 BIT 6,E +cdef uint8_t BIT_173(cpu.CPU) noexcept nogil # 173 BIT 6,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_174(cpu.CPU) noexcept # 174 BIT 6,H +cdef uint8_t BIT_174(cpu.CPU) noexcept nogil # 174 BIT 6,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_175(cpu.CPU) noexcept # 175 BIT 6,L +cdef uint8_t BIT_175(cpu.CPU) noexcept nogil # 175 BIT 6,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_176(cpu.CPU) noexcept # 176 BIT 6,(HL) +cdef uint8_t BIT_176(cpu.CPU) noexcept nogil # 176 BIT 6,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_177(cpu.CPU) noexcept # 177 BIT 6,A +cdef uint8_t BIT_177(cpu.CPU) noexcept nogil # 177 BIT 6,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_178(cpu.CPU) noexcept # 178 BIT 7,B +cdef uint8_t BIT_178(cpu.CPU) noexcept nogil # 178 BIT 7,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_179(cpu.CPU) noexcept # 179 BIT 7,C +cdef uint8_t BIT_179(cpu.CPU) noexcept nogil # 179 BIT 7,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17A(cpu.CPU) noexcept # 17A BIT 7,D +cdef uint8_t BIT_17A(cpu.CPU) noexcept nogil # 17A BIT 7,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17B(cpu.CPU) noexcept # 17B BIT 7,E +cdef uint8_t BIT_17B(cpu.CPU) noexcept nogil # 17B BIT 7,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17C(cpu.CPU) noexcept # 17C BIT 7,H +cdef uint8_t BIT_17C(cpu.CPU) noexcept nogil # 17C BIT 7,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17D(cpu.CPU) noexcept # 17D BIT 7,L +cdef uint8_t BIT_17D(cpu.CPU) noexcept nogil # 17D BIT 7,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17E(cpu.CPU) noexcept # 17E BIT 7,(HL) +cdef uint8_t BIT_17E(cpu.CPU) noexcept nogil # 17E BIT 7,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t BIT_17F(cpu.CPU) noexcept # 17F BIT 7,A +cdef uint8_t BIT_17F(cpu.CPU) noexcept nogil # 17F BIT 7,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_180(cpu.CPU) noexcept # 180 RES 0,B +cdef uint8_t RES_180(cpu.CPU) noexcept nogil # 180 RES 0,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_181(cpu.CPU) noexcept # 181 RES 0,C +cdef uint8_t RES_181(cpu.CPU) noexcept nogil # 181 RES 0,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_182(cpu.CPU) noexcept # 182 RES 0,D +cdef uint8_t RES_182(cpu.CPU) noexcept nogil # 182 RES 0,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_183(cpu.CPU) noexcept # 183 RES 0,E +cdef uint8_t RES_183(cpu.CPU) noexcept nogil # 183 RES 0,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_184(cpu.CPU) noexcept # 184 RES 0,H +cdef uint8_t RES_184(cpu.CPU) noexcept nogil # 184 RES 0,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_185(cpu.CPU) noexcept # 185 RES 0,L +cdef uint8_t RES_185(cpu.CPU) noexcept nogil # 185 RES 0,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_186(cpu.CPU) noexcept # 186 RES 0,(HL) +cdef uint8_t RES_186(cpu.CPU) noexcept nogil # 186 RES 0,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_187(cpu.CPU) noexcept # 187 RES 0,A +cdef uint8_t RES_187(cpu.CPU) noexcept nogil # 187 RES 0,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_188(cpu.CPU) noexcept # 188 RES 1,B +cdef uint8_t RES_188(cpu.CPU) noexcept nogil # 188 RES 1,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_189(cpu.CPU) noexcept # 189 RES 1,C +cdef uint8_t RES_189(cpu.CPU) noexcept nogil # 189 RES 1,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18A(cpu.CPU) noexcept # 18A RES 1,D +cdef uint8_t RES_18A(cpu.CPU) noexcept nogil # 18A RES 1,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18B(cpu.CPU) noexcept # 18B RES 1,E +cdef uint8_t RES_18B(cpu.CPU) noexcept nogil # 18B RES 1,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18C(cpu.CPU) noexcept # 18C RES 1,H +cdef uint8_t RES_18C(cpu.CPU) noexcept nogil # 18C RES 1,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18D(cpu.CPU) noexcept # 18D RES 1,L +cdef uint8_t RES_18D(cpu.CPU) noexcept nogil # 18D RES 1,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18E(cpu.CPU) noexcept # 18E RES 1,(HL) +cdef uint8_t RES_18E(cpu.CPU) noexcept nogil # 18E RES 1,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_18F(cpu.CPU) noexcept # 18F RES 1,A +cdef uint8_t RES_18F(cpu.CPU) noexcept nogil # 18F RES 1,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_190(cpu.CPU) noexcept # 190 RES 2,B +cdef uint8_t RES_190(cpu.CPU) noexcept nogil # 190 RES 2,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_191(cpu.CPU) noexcept # 191 RES 2,C +cdef uint8_t RES_191(cpu.CPU) noexcept nogil # 191 RES 2,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_192(cpu.CPU) noexcept # 192 RES 2,D +cdef uint8_t RES_192(cpu.CPU) noexcept nogil # 192 RES 2,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_193(cpu.CPU) noexcept # 193 RES 2,E +cdef uint8_t RES_193(cpu.CPU) noexcept nogil # 193 RES 2,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_194(cpu.CPU) noexcept # 194 RES 2,H +cdef uint8_t RES_194(cpu.CPU) noexcept nogil # 194 RES 2,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_195(cpu.CPU) noexcept # 195 RES 2,L +cdef uint8_t RES_195(cpu.CPU) noexcept nogil # 195 RES 2,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_196(cpu.CPU) noexcept # 196 RES 2,(HL) +cdef uint8_t RES_196(cpu.CPU) noexcept nogil # 196 RES 2,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_197(cpu.CPU) noexcept # 197 RES 2,A +cdef uint8_t RES_197(cpu.CPU) noexcept nogil # 197 RES 2,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_198(cpu.CPU) noexcept # 198 RES 3,B +cdef uint8_t RES_198(cpu.CPU) noexcept nogil # 198 RES 3,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_199(cpu.CPU) noexcept # 199 RES 3,C +cdef uint8_t RES_199(cpu.CPU) noexcept nogil # 199 RES 3,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19A(cpu.CPU) noexcept # 19A RES 3,D +cdef uint8_t RES_19A(cpu.CPU) noexcept nogil # 19A RES 3,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19B(cpu.CPU) noexcept # 19B RES 3,E +cdef uint8_t RES_19B(cpu.CPU) noexcept nogil # 19B RES 3,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19C(cpu.CPU) noexcept # 19C RES 3,H +cdef uint8_t RES_19C(cpu.CPU) noexcept nogil # 19C RES 3,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19D(cpu.CPU) noexcept # 19D RES 3,L +cdef uint8_t RES_19D(cpu.CPU) noexcept nogil # 19D RES 3,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19E(cpu.CPU) noexcept # 19E RES 3,(HL) +cdef uint8_t RES_19E(cpu.CPU) noexcept nogil # 19E RES 3,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_19F(cpu.CPU) noexcept # 19F RES 3,A +cdef uint8_t RES_19F(cpu.CPU) noexcept nogil # 19F RES 3,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A0(cpu.CPU) noexcept # 1A0 RES 4,B +cdef uint8_t RES_1A0(cpu.CPU) noexcept nogil # 1A0 RES 4,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A1(cpu.CPU) noexcept # 1A1 RES 4,C +cdef uint8_t RES_1A1(cpu.CPU) noexcept nogil # 1A1 RES 4,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A2(cpu.CPU) noexcept # 1A2 RES 4,D +cdef uint8_t RES_1A2(cpu.CPU) noexcept nogil # 1A2 RES 4,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A3(cpu.CPU) noexcept # 1A3 RES 4,E +cdef uint8_t RES_1A3(cpu.CPU) noexcept nogil # 1A3 RES 4,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A4(cpu.CPU) noexcept # 1A4 RES 4,H +cdef uint8_t RES_1A4(cpu.CPU) noexcept nogil # 1A4 RES 4,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A5(cpu.CPU) noexcept # 1A5 RES 4,L +cdef uint8_t RES_1A5(cpu.CPU) noexcept nogil # 1A5 RES 4,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A6(cpu.CPU) noexcept # 1A6 RES 4,(HL) +cdef uint8_t RES_1A6(cpu.CPU) noexcept nogil # 1A6 RES 4,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A7(cpu.CPU) noexcept # 1A7 RES 4,A +cdef uint8_t RES_1A7(cpu.CPU) noexcept nogil # 1A7 RES 4,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A8(cpu.CPU) noexcept # 1A8 RES 5,B +cdef uint8_t RES_1A8(cpu.CPU) noexcept nogil # 1A8 RES 5,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1A9(cpu.CPU) noexcept # 1A9 RES 5,C +cdef uint8_t RES_1A9(cpu.CPU) noexcept nogil # 1A9 RES 5,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AA(cpu.CPU) noexcept # 1AA RES 5,D +cdef uint8_t RES_1AA(cpu.CPU) noexcept nogil # 1AA RES 5,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AB(cpu.CPU) noexcept # 1AB RES 5,E +cdef uint8_t RES_1AB(cpu.CPU) noexcept nogil # 1AB RES 5,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AC(cpu.CPU) noexcept # 1AC RES 5,H +cdef uint8_t RES_1AC(cpu.CPU) noexcept nogil # 1AC RES 5,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AD(cpu.CPU) noexcept # 1AD RES 5,L +cdef uint8_t RES_1AD(cpu.CPU) noexcept nogil # 1AD RES 5,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AE(cpu.CPU) noexcept # 1AE RES 5,(HL) +cdef uint8_t RES_1AE(cpu.CPU) noexcept nogil # 1AE RES 5,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1AF(cpu.CPU) noexcept # 1AF RES 5,A +cdef uint8_t RES_1AF(cpu.CPU) noexcept nogil # 1AF RES 5,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B0(cpu.CPU) noexcept # 1B0 RES 6,B +cdef uint8_t RES_1B0(cpu.CPU) noexcept nogil # 1B0 RES 6,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B1(cpu.CPU) noexcept # 1B1 RES 6,C +cdef uint8_t RES_1B1(cpu.CPU) noexcept nogil # 1B1 RES 6,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B2(cpu.CPU) noexcept # 1B2 RES 6,D +cdef uint8_t RES_1B2(cpu.CPU) noexcept nogil # 1B2 RES 6,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B3(cpu.CPU) noexcept # 1B3 RES 6,E +cdef uint8_t RES_1B3(cpu.CPU) noexcept nogil # 1B3 RES 6,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B4(cpu.CPU) noexcept # 1B4 RES 6,H +cdef uint8_t RES_1B4(cpu.CPU) noexcept nogil # 1B4 RES 6,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B5(cpu.CPU) noexcept # 1B5 RES 6,L +cdef uint8_t RES_1B5(cpu.CPU) noexcept nogil # 1B5 RES 6,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B6(cpu.CPU) noexcept # 1B6 RES 6,(HL) +cdef uint8_t RES_1B6(cpu.CPU) noexcept nogil # 1B6 RES 6,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B7(cpu.CPU) noexcept # 1B7 RES 6,A +cdef uint8_t RES_1B7(cpu.CPU) noexcept nogil # 1B7 RES 6,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B8(cpu.CPU) noexcept # 1B8 RES 7,B +cdef uint8_t RES_1B8(cpu.CPU) noexcept nogil # 1B8 RES 7,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1B9(cpu.CPU) noexcept # 1B9 RES 7,C +cdef uint8_t RES_1B9(cpu.CPU) noexcept nogil # 1B9 RES 7,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BA(cpu.CPU) noexcept # 1BA RES 7,D +cdef uint8_t RES_1BA(cpu.CPU) noexcept nogil # 1BA RES 7,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BB(cpu.CPU) noexcept # 1BB RES 7,E +cdef uint8_t RES_1BB(cpu.CPU) noexcept nogil # 1BB RES 7,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BC(cpu.CPU) noexcept # 1BC RES 7,H +cdef uint8_t RES_1BC(cpu.CPU) noexcept nogil # 1BC RES 7,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BD(cpu.CPU) noexcept # 1BD RES 7,L +cdef uint8_t RES_1BD(cpu.CPU) noexcept nogil # 1BD RES 7,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BE(cpu.CPU) noexcept # 1BE RES 7,(HL) +cdef uint8_t RES_1BE(cpu.CPU) noexcept nogil # 1BE RES 7,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t RES_1BF(cpu.CPU) noexcept # 1BF RES 7,A +cdef uint8_t RES_1BF(cpu.CPU) noexcept nogil # 1BF RES 7,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C0(cpu.CPU) noexcept # 1C0 SET 0,B +cdef uint8_t SET_1C0(cpu.CPU) noexcept nogil # 1C0 SET 0,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C1(cpu.CPU) noexcept # 1C1 SET 0,C +cdef uint8_t SET_1C1(cpu.CPU) noexcept nogil # 1C1 SET 0,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C2(cpu.CPU) noexcept # 1C2 SET 0,D +cdef uint8_t SET_1C2(cpu.CPU) noexcept nogil # 1C2 SET 0,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C3(cpu.CPU) noexcept # 1C3 SET 0,E +cdef uint8_t SET_1C3(cpu.CPU) noexcept nogil # 1C3 SET 0,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C4(cpu.CPU) noexcept # 1C4 SET 0,H +cdef uint8_t SET_1C4(cpu.CPU) noexcept nogil # 1C4 SET 0,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C5(cpu.CPU) noexcept # 1C5 SET 0,L +cdef uint8_t SET_1C5(cpu.CPU) noexcept nogil # 1C5 SET 0,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C6(cpu.CPU) noexcept # 1C6 SET 0,(HL) +cdef uint8_t SET_1C6(cpu.CPU) noexcept nogil # 1C6 SET 0,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C7(cpu.CPU) noexcept # 1C7 SET 0,A +cdef uint8_t SET_1C7(cpu.CPU) noexcept nogil # 1C7 SET 0,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C8(cpu.CPU) noexcept # 1C8 SET 1,B +cdef uint8_t SET_1C8(cpu.CPU) noexcept nogil # 1C8 SET 1,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1C9(cpu.CPU) noexcept # 1C9 SET 1,C +cdef uint8_t SET_1C9(cpu.CPU) noexcept nogil # 1C9 SET 1,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CA(cpu.CPU) noexcept # 1CA SET 1,D +cdef uint8_t SET_1CA(cpu.CPU) noexcept nogil # 1CA SET 1,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CB(cpu.CPU) noexcept # 1CB SET 1,E +cdef uint8_t SET_1CB(cpu.CPU) noexcept nogil # 1CB SET 1,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CC(cpu.CPU) noexcept # 1CC SET 1,H +cdef uint8_t SET_1CC(cpu.CPU) noexcept nogil # 1CC SET 1,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CD(cpu.CPU) noexcept # 1CD SET 1,L +cdef uint8_t SET_1CD(cpu.CPU) noexcept nogil # 1CD SET 1,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CE(cpu.CPU) noexcept # 1CE SET 1,(HL) +cdef uint8_t SET_1CE(cpu.CPU) noexcept nogil # 1CE SET 1,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1CF(cpu.CPU) noexcept # 1CF SET 1,A +cdef uint8_t SET_1CF(cpu.CPU) noexcept nogil # 1CF SET 1,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D0(cpu.CPU) noexcept # 1D0 SET 2,B +cdef uint8_t SET_1D0(cpu.CPU) noexcept nogil # 1D0 SET 2,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D1(cpu.CPU) noexcept # 1D1 SET 2,C +cdef uint8_t SET_1D1(cpu.CPU) noexcept nogil # 1D1 SET 2,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D2(cpu.CPU) noexcept # 1D2 SET 2,D +cdef uint8_t SET_1D2(cpu.CPU) noexcept nogil # 1D2 SET 2,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D3(cpu.CPU) noexcept # 1D3 SET 2,E +cdef uint8_t SET_1D3(cpu.CPU) noexcept nogil # 1D3 SET 2,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D4(cpu.CPU) noexcept # 1D4 SET 2,H +cdef uint8_t SET_1D4(cpu.CPU) noexcept nogil # 1D4 SET 2,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D5(cpu.CPU) noexcept # 1D5 SET 2,L +cdef uint8_t SET_1D5(cpu.CPU) noexcept nogil # 1D5 SET 2,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D6(cpu.CPU) noexcept # 1D6 SET 2,(HL) +cdef uint8_t SET_1D6(cpu.CPU) noexcept nogil # 1D6 SET 2,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D7(cpu.CPU) noexcept # 1D7 SET 2,A +cdef uint8_t SET_1D7(cpu.CPU) noexcept nogil # 1D7 SET 2,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D8(cpu.CPU) noexcept # 1D8 SET 3,B +cdef uint8_t SET_1D8(cpu.CPU) noexcept nogil # 1D8 SET 3,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1D9(cpu.CPU) noexcept # 1D9 SET 3,C +cdef uint8_t SET_1D9(cpu.CPU) noexcept nogil # 1D9 SET 3,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DA(cpu.CPU) noexcept # 1DA SET 3,D +cdef uint8_t SET_1DA(cpu.CPU) noexcept nogil # 1DA SET 3,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DB(cpu.CPU) noexcept # 1DB SET 3,E +cdef uint8_t SET_1DB(cpu.CPU) noexcept nogil # 1DB SET 3,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DC(cpu.CPU) noexcept # 1DC SET 3,H +cdef uint8_t SET_1DC(cpu.CPU) noexcept nogil # 1DC SET 3,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DD(cpu.CPU) noexcept # 1DD SET 3,L +cdef uint8_t SET_1DD(cpu.CPU) noexcept nogil # 1DD SET 3,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DE(cpu.CPU) noexcept # 1DE SET 3,(HL) +cdef uint8_t SET_1DE(cpu.CPU) noexcept nogil # 1DE SET 3,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1DF(cpu.CPU) noexcept # 1DF SET 3,A +cdef uint8_t SET_1DF(cpu.CPU) noexcept nogil # 1DF SET 3,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E0(cpu.CPU) noexcept # 1E0 SET 4,B +cdef uint8_t SET_1E0(cpu.CPU) noexcept nogil # 1E0 SET 4,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E1(cpu.CPU) noexcept # 1E1 SET 4,C +cdef uint8_t SET_1E1(cpu.CPU) noexcept nogil # 1E1 SET 4,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E2(cpu.CPU) noexcept # 1E2 SET 4,D +cdef uint8_t SET_1E2(cpu.CPU) noexcept nogil # 1E2 SET 4,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E3(cpu.CPU) noexcept # 1E3 SET 4,E +cdef uint8_t SET_1E3(cpu.CPU) noexcept nogil # 1E3 SET 4,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E4(cpu.CPU) noexcept # 1E4 SET 4,H +cdef uint8_t SET_1E4(cpu.CPU) noexcept nogil # 1E4 SET 4,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E5(cpu.CPU) noexcept # 1E5 SET 4,L +cdef uint8_t SET_1E5(cpu.CPU) noexcept nogil # 1E5 SET 4,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E6(cpu.CPU) noexcept # 1E6 SET 4,(HL) +cdef uint8_t SET_1E6(cpu.CPU) noexcept nogil # 1E6 SET 4,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E7(cpu.CPU) noexcept # 1E7 SET 4,A +cdef uint8_t SET_1E7(cpu.CPU) noexcept nogil # 1E7 SET 4,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E8(cpu.CPU) noexcept # 1E8 SET 5,B +cdef uint8_t SET_1E8(cpu.CPU) noexcept nogil # 1E8 SET 5,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1E9(cpu.CPU) noexcept # 1E9 SET 5,C +cdef uint8_t SET_1E9(cpu.CPU) noexcept nogil # 1E9 SET 5,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1EA(cpu.CPU) noexcept # 1EA SET 5,D +cdef uint8_t SET_1EA(cpu.CPU) noexcept nogil # 1EA SET 5,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1EB(cpu.CPU) noexcept # 1EB SET 5,E +cdef uint8_t SET_1EB(cpu.CPU) noexcept nogil # 1EB SET 5,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1EC(cpu.CPU) noexcept # 1EC SET 5,H +cdef uint8_t SET_1EC(cpu.CPU) noexcept nogil # 1EC SET 5,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1ED(cpu.CPU) noexcept # 1ED SET 5,L +cdef uint8_t SET_1ED(cpu.CPU) noexcept nogil # 1ED SET 5,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1EE(cpu.CPU) noexcept # 1EE SET 5,(HL) +cdef uint8_t SET_1EE(cpu.CPU) noexcept nogil # 1EE SET 5,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1EF(cpu.CPU) noexcept # 1EF SET 5,A +cdef uint8_t SET_1EF(cpu.CPU) noexcept nogil # 1EF SET 5,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F0(cpu.CPU) noexcept # 1F0 SET 6,B +cdef uint8_t SET_1F0(cpu.CPU) noexcept nogil # 1F0 SET 6,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F1(cpu.CPU) noexcept # 1F1 SET 6,C +cdef uint8_t SET_1F1(cpu.CPU) noexcept nogil # 1F1 SET 6,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F2(cpu.CPU) noexcept # 1F2 SET 6,D +cdef uint8_t SET_1F2(cpu.CPU) noexcept nogil # 1F2 SET 6,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F3(cpu.CPU) noexcept # 1F3 SET 6,E +cdef uint8_t SET_1F3(cpu.CPU) noexcept nogil # 1F3 SET 6,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F4(cpu.CPU) noexcept # 1F4 SET 6,H +cdef uint8_t SET_1F4(cpu.CPU) noexcept nogil # 1F4 SET 6,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F5(cpu.CPU) noexcept # 1F5 SET 6,L +cdef uint8_t SET_1F5(cpu.CPU) noexcept nogil # 1F5 SET 6,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F6(cpu.CPU) noexcept # 1F6 SET 6,(HL) +cdef uint8_t SET_1F6(cpu.CPU) noexcept nogil # 1F6 SET 6,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F7(cpu.CPU) noexcept # 1F7 SET 6,A +cdef uint8_t SET_1F7(cpu.CPU) noexcept nogil # 1F7 SET 6,A @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F8(cpu.CPU) noexcept # 1F8 SET 7,B +cdef uint8_t SET_1F8(cpu.CPU) noexcept nogil # 1F8 SET 7,B @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1F9(cpu.CPU) noexcept # 1F9 SET 7,C +cdef uint8_t SET_1F9(cpu.CPU) noexcept nogil # 1F9 SET 7,C @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FA(cpu.CPU) noexcept # 1FA SET 7,D +cdef uint8_t SET_1FA(cpu.CPU) noexcept nogil # 1FA SET 7,D @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FB(cpu.CPU) noexcept # 1FB SET 7,E +cdef uint8_t SET_1FB(cpu.CPU) noexcept nogil # 1FB SET 7,E @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FC(cpu.CPU) noexcept # 1FC SET 7,H +cdef uint8_t SET_1FC(cpu.CPU) noexcept nogil # 1FC SET 7,H @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FD(cpu.CPU) noexcept # 1FD SET 7,L +cdef uint8_t SET_1FD(cpu.CPU) noexcept nogil # 1FD SET 7,L @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FE(cpu.CPU) noexcept # 1FE SET 7,(HL) +cdef uint8_t SET_1FE(cpu.CPU) noexcept nogil # 1FE SET 7,(HL) @cython.locals(v=int, flag=uint8_t, t=int) -cdef uint8_t SET_1FF(cpu.CPU) noexcept # 1FF SET 7,A +cdef uint8_t SET_1FF(cpu.CPU) noexcept nogil # 1FF SET 7,A diff --git a/pyboy/core/opcodes.py b/pyboy/core/opcodes.py index 73cda94e0..1762144ff 100644 --- a/pyboy/core/opcodes.py +++ b/pyboy/core/opcodes.py @@ -11,6 +11,7 @@ FLAGC, FLAGH, FLAGN, FLAGZ = range(4, 8) + def NOP_00(cpu): # 00 NOP cpu.PC += 1 cpu.PC &= 0xFFFF @@ -2165,7 +2166,7 @@ def JP_CA(cpu, v): # CA JP Z,a16 def PREFIX_CB(cpu): # CB PREFIX CB - logger.critical('CB cannot be called!') + logger.critical("CB cannot be called!") cpu.PC += 1 cpu.PC &= 0xFFFF return 4 @@ -5244,8 +5245,6 @@ def execute_opcode(cpu, opcode): b = cpu.mb.getitem(pc+1) v = (a << 8) + b - opcode &= 0x1FF - if opcode == 0x00: return NOP_00(cpu) elif opcode == 0x01: diff --git a/pyboy/core/opcodes_gen.py b/pyboy/core/opcodes_gen.py index 7c564e65e..90566067f 100644 --- a/pyboy/core/opcodes_gen.py +++ b/pyboy/core/opcodes_gen.py @@ -39,9 +39,9 @@ cdef uint16_t FLAGC, FLAGH, FLAGN, FLAGZ cdef uint8_t[512] OPCODE_LENGTHS @cython.locals(v=cython.int, a=cython.int, b=cython.int, pc=cython.ushort) -cdef int execute_opcode(cpu.CPU, uint16_t) noexcept +cdef int execute_opcode(cpu.CPU, uint16_t) noexcept nogil -cdef uint8_t no_opcode(cpu.CPU) noexcept +cdef uint8_t no_opcode(cpu.CPU) noexcept nogil """ @@ -263,11 +263,11 @@ def getcode(self): code += "\n\t".join(self.lines) pxd = [ - "cdef uint8_t %s_%0.2X(cpu.CPU) noexcept # %0.2X %s" % + "cdef uint8_t %s_%0.2X(cpu.CPU) noexcept nogil # %0.2X %s" % (self.function_name, self.opcode, self.opcode, self.name), # TODO: Differentiate between 16-bit values # (01,11,21,31 ops) and 8-bit values for 'v' - "cdef uint8_t %s_%0.2X(cpu.CPU, int v) noexcept # %0.2X %s" % + "cdef uint8_t %s_%0.2X(cpu.CPU, int v) noexcept nogil # %0.2X %s" % (self.function_name, self.opcode, self.opcode, self.name), ][self.takes_immediate] diff --git a/pyboy/core/sound.pxd b/pyboy/core/sound.pxd index 930f21593..d67297444 100644 --- a/pyboy/core/sound.pxd +++ b/pyboy/core/sound.pxd @@ -24,9 +24,8 @@ cdef class Sound: cdef int sample_rate cdef int sampleclocks - # cdef uint8_t[4096] audiobuffer - cdef object audiobuffer - cdef object audiobuffer_p + cdef uint8_t[4096] audiobuffer + # cdef object audiobuffer_p cdef int clock @@ -39,11 +38,11 @@ cdef class Sound: cdef bint leftnoise, leftwave, lefttone, leftsweep, rightnoise, rightwave, righttone, rightsweep - cdef uint8_t get(self, uint8_t) noexcept - cdef void set(self, uint8_t, uint8_t) noexcept + cdef uint8_t get(self, uint8_t) noexcept nogil + cdef void set(self, uint8_t, uint8_t) noexcept nogil @cython.locals(nsamples=int, sample=int, i=int, queued_time=int, ) - cdef void sync(self) noexcept + cdef void sync(self) noexcept nogil cdef void stop(self) noexcept @@ -70,12 +69,12 @@ cdef class ToneChannel: cdef int frame # Frame sequencer value, generates clocks for length/envelope/(sweep) cdef int volume # Current volume level, modulated by envelope - cdef uint8_t getreg(self, uint8_t) noexcept - cdef void setreg(self, uint8_t, uint8_t) noexcept - cdef void run(self, uint64_t) noexcept - cdef uint8_t sample(self) noexcept - cdef void trigger(self) noexcept - cdef void tickframe(self) noexcept + cdef uint8_t getreg(self, uint8_t) noexcept nogil + cdef void setreg(self, uint8_t, uint8_t) noexcept nogil + cdef void run(self, uint64_t) noexcept nogil + cdef uint8_t sample(self) noexcept nogil + cdef void trigger(self) noexcept nogil + cdef void tickframe(self) noexcept nogil cdef class SweepChannel(ToneChannel): @@ -89,11 +88,11 @@ cdef class SweepChannel(ToneChannel): cdef bint sweepenable # Internal sweep enable flag cdef int shadow # Shadow copy of period register for ignoring writes to sndper - cdef uint8_t getreg(self, uint8_t) noexcept - cdef void setreg(self, uint8_t, uint8_t) noexcept - cdef bint sweep(self, bint) noexcept - cdef void trigger(self) noexcept - cdef void tickframe(self) noexcept + cdef uint8_t getreg(self, uint8_t) noexcept nogil + cdef void setreg(self, uint8_t, uint8_t) noexcept nogil + cdef bint sweep(self, bint) noexcept nogil + cdef void trigger(self) noexcept nogil + cdef void tickframe(self) noexcept nogil cdef class WaveChannel: @@ -119,14 +118,14 @@ cdef class WaveChannel: cdef int frame # Frame sequencer value, generates clocks for length/envelope/(sweep) cdef int volumeshift # Bitshift for volume, set by volreg - cdef uint8_t getreg(self, uint8_t) noexcept - cdef void setreg(self, uint8_t, uint8_t) noexcept - cdef void run(self, uint64_t) noexcept - cdef uint8_t sample(self) noexcept - cdef void trigger(self) noexcept - cdef void tickframe(self) noexcept - cdef uint8_t getwavebyte(self, uint8_t) noexcept - cdef void setwavebyte(self, uint8_t, uint8_t) noexcept + cdef uint8_t getreg(self, uint8_t) noexcept nogil + cdef void setreg(self, uint8_t, uint8_t) noexcept nogil + cdef void run(self, uint64_t) noexcept nogil + cdef uint8_t sample(self) noexcept nogil + cdef void trigger(self) noexcept nogil + cdef void tickframe(self) noexcept nogil + cdef uint8_t getwavebyte(self, uint8_t) noexcept nogil + cdef void setwavebyte(self, uint8_t, uint8_t) noexcept nogil cdef class NoiseChannel: @@ -156,9 +155,9 @@ cdef class NoiseChannel: cdef int frame # Frame sequencer value, generates clocks for length/envelope/(sweep) cdef int volume # Current volume level, modulated by envelope - cdef uint8_t getreg(self, uint8_t) noexcept - cdef void setreg(self, uint8_t, uint8_t) noexcept - cdef void run(self, uint64_t) noexcept - cdef uint8_t sample(self) noexcept - cdef void trigger(self) noexcept - cdef void tickframe(self) noexcept + cdef uint8_t getreg(self, uint8_t) noexcept nogil + cdef void setreg(self, uint8_t, uint8_t) noexcept nogil + cdef void run(self, uint64_t) noexcept nogil + cdef uint8_t sample(self) noexcept nogil + cdef void trigger(self) noexcept nogil + cdef void tickframe(self) noexcept nogil diff --git a/pyboy/core/sound.py b/pyboy/core/sound.py index fa50c5e23..649bc1418 100644 --- a/pyboy/core/sound.py +++ b/pyboy/core/sound.py @@ -12,10 +12,10 @@ from pyboy import utils -try: - import sdl2 -except ImportError: - sdl2 = None +# try: +# import sdl2 +# except ImportError: +sdl2 = None import pyboy @@ -57,7 +57,7 @@ def __init__(self, enabled, emulate): self.sampleclocks = CPU_FREQ // self.sample_rate self.audiobuffer = array("b", [0] * 4096) # Over 2 frames - self.audiobuffer_p = c_void_p(self.audiobuffer.buffer_info()[0]) + # self.audiobuffer_p = c_void_p(self.audiobuffer.buffer_info()[0]) self.clock = 0 @@ -178,14 +178,14 @@ def sync(self): self.audiobuffer[2 * i] = 0 self.audiobuffer[2*i + 1] = 0 - if self.enabled: - # Clear queue, if we are behind - queued_time = sdl2.SDL_GetQueuedAudioSize(self.device) - samples_per_frame = (self.sample_rate / 60) * 2 # Data of 1 frame's worth (60) in stereo (2) - if queued_time > samples_per_frame * SOUND_DESYNC_THRESHOLD: - sdl2.SDL_ClearQueuedAudio(self.device) + # if self.enabled: + # # Clear queue, if we are behind + # queued_time = sdl2.SDL_GetQueuedAudioSize(self.device) + # samples_per_frame = (self.sample_rate / 60) * 2 # Data of 1 frame's worth (60) in stereo (2) + # if queued_time > samples_per_frame * SOUND_DESYNC_THRESHOLD: + # sdl2.SDL_ClearQueuedAudio(self.device) - sdl2.SDL_QueueAudio(self.device, self.audiobuffer_p, 2 * nsamples) + # sdl2.SDL_QueueAudio(self.device, self.audiobuffer_p, 2 * nsamples) self.clock %= self.sampleclocks def stop(self): diff --git a/pyboy/core/timer.pxd b/pyboy/core/timer.pxd index aac075546..43aaceb76 100644 --- a/pyboy/core/timer.pxd +++ b/pyboy/core/timer.pxd @@ -19,11 +19,11 @@ cdef class Timer: cdef uint16_t DIV_counter, TIMA_counter cdef uint64_t[4] dividers - cdef void reset(self) noexcept + cdef void reset(self) noexcept nogil @cython.locals(divider=cython.int) - cdef bint tick(self, uint64_t) noexcept + cdef bint tick(self, uint64_t) noexcept nogil @cython.locals(divider=cython.int, cyclesleft=cython.uint) - cdef uint64_t cycles_to_interrupt(self) noexcept + cdef uint64_t cycles_to_interrupt(self) noexcept nogil cdef void save_state(self, IntIOInterface) noexcept cdef void load_state(self, IntIOInterface, int) noexcept diff --git a/pyboy/utils.pxd b/pyboy/utils.pxd index bd513af1b..30527a263 100644 --- a/pyboy/utils.pxd +++ b/pyboy/utils.pxd @@ -4,7 +4,6 @@ # cimport cython - from libc.stdint cimport int64_t, uint8_t, uint16_t, uint32_t, uint64_t ############################################################## @@ -32,7 +31,7 @@ cdef class IntIOWrapper(IntIOInterface): ############################################################## # Misc -cdef uint8_t color_code(uint8_t, uint8_t, uint8_t) noexcept +cdef uint8_t color_code(uint8_t, uint8_t, uint8_t) noexcept nogil ############################################################## # Window Events