From 1a4b00bfb651663bdda09a8486527d2a34404569 Mon Sep 17 00:00:00 2001 From: sinamas Date: Wed, 20 Feb 2013 20:02:06 +0100 Subject: [PATCH] trailing whitespace --- common/adaptivesleep.cpp | 18 +- common/adaptivesleep.h | 2 +- common/array.h | 4 +- common/resample/resampler.h | 14 +- common/resample/resamplerinfo.h | 8 +- common/resample/src/blackmansinc.h | 10 +- common/resample/src/chainresampler.cpp | 36 +- common/resample/src/chainresampler.h | 52 +- common/resample/src/cic2.h | 74 +-- common/resample/src/cic3.h | 110 ++-- common/resample/src/cic4.h | 62 +-- common/resample/src/convoluter.h | 42 +- common/resample/src/hammingsinc.h | 10 +- common/resample/src/i0.cpp | 6 +- common/resample/src/kaiser50sinc.cpp | 2 +- common/resample/src/kaiser50sinc.h | 10 +- common/resample/src/kaiser70sinc.cpp | 4 +- common/resample/src/kaiser70sinc.h | 8 +- common/resample/src/linint.h | 12 +- common/resample/src/makesinckernel.cpp | 64 +-- common/resample/src/rectsinc.h | 10 +- common/resample/src/u48div.cpp | 10 +- common/resample/src/upsampler.h | 6 +- common/ringbuffer.h | 34 +- common/videolink/rgb32conv.cpp | 18 +- common/videolink/vfilterinfo.h | 4 +- common/videolink/vfilters/catrom2x.cpp | 52 +- common/videolink/vfilters/catrom2x.h | 2 +- common/videolink/vfilters/catrom3x.cpp | 14 +- common/videolink/vfilters/catrom3x.h | 2 +- common/videolink/vfilters/kreed2xsai.cpp | 56 +-- common/videolink/vfilters/kreed2xsai.h | 2 +- common/videolink/vfilters/maxsthq2x.h | 2 +- common/videolink/vfilters/maxsthq3x.h | 2 +- gambatte_qt/src/cheatdialog.cpp | 72 +-- gambatte_qt/src/cheatdialog.h | 18 +- gambatte_qt/src/fpsselector.cpp | 16 +- gambatte_qt/src/fpsselector.h | 6 +- .../src/framework/include/audioengineconf.h | 8 +- .../src/framework/include/auto_vector.h | 28 +- .../src/framework/include/blitterconf.h | 8 +- gambatte_qt/src/framework/include/callqueue.h | 50 +- .../src/framework/include/inputdialog.h | 34 +- .../src/framework/include/mainwindow.h | 80 +-- .../src/framework/include/mediasource.h | 8 +- gambatte_qt/src/framework/include/mutual.h | 2 +- .../src/framework/include/pixelbuffer.h | 2 +- .../src/framework/include/sounddialog.h | 12 +- .../src/framework/include/videodialog.h | 30 +- .../src/SDL_Joystick/include/SDL_event.h | 6 +- .../src/SDL_Joystick/src/SDL_event.cpp | 6 +- .../src/SDL_Joystick/src/SDL_sysjoystick.h | 6 +- gambatte_qt/src/framework/src/audioengine.h | 10 +- .../framework/src/audioengines/alsaengine.cpp | 60 +-- .../framework/src/audioengines/alsaengine.h | 4 +- .../framework/src/audioengines/aoengine.cpp | 16 +- .../src/framework/src/audioengines/aoengine.h | 4 +- .../src/audioengines/coreaudioengine.cpp | 88 ++-- .../src/audioengines/coreaudioengine.h | 4 +- .../src/audioengines/customdevconf.cpp | 4 +- .../src/audioengines/customdevconf.h | 6 +- .../src/audioengines/nullaudioengine.h | 2 +- .../src/audioengines/openalengine.cpp | 82 +-- .../framework/src/audioengines/openalengine.h | 4 +- .../framework/src/audioengines/ossengine.cpp | 46 +- .../framework/src/audioengines/ossengine.h | 4 +- .../src/framework/src/blittercontainer.cpp | 6 +- .../src/framework/src/blittercontainer.h | 6 +- gambatte_qt/src/framework/src/blitterwidget.h | 14 +- .../src/blitterwidgets/qglblitter.cpp | 2 +- .../framework/src/blitterwidgets/qglblitter.h | 12 +- .../src/blitterwidgets/qpainterblitter.cpp | 6 +- .../src/blitterwidgets/qpainterblitter.h | 4 +- .../src/blitterwidgets/x11blitter.cpp | 62 +-- .../framework/src/blitterwidgets/x11blitter.h | 10 +- .../src/blitterwidgets/xvblitter.cpp | 96 ++-- .../framework/src/blitterwidgets/xvblitter.h | 14 +- .../src/framework/src/frameratecontrol.cpp | 2 +- .../src/framework/src/frameratecontrol.h | 2 +- .../src/fullmodetogglers/gditoggler.cpp | 54 +- .../src/fullmodetogglers/gditoggler.h | 8 +- .../src/fullmodetogglers/nulltoggler.h | 6 +- .../src/fullmodetogglers/quartztoggler.cpp | 60 +-- .../src/fullmodetogglers/quartztoggler.h | 6 +- .../fullmodetogglers/xf86vidmodetoggler.cpp | 82 +-- .../src/fullmodetogglers/xf86vidmodetoggler.h | 6 +- .../src/fullmodetogglers/xrandr12toggler.cpp | 90 ++-- .../src/fullmodetogglers/xrandr12toggler.h | 8 +- .../src/fullmodetogglers/xrandrtoggler.cpp | 42 +- .../src/fullmodetogglers/xrandrtoggler.h | 6 +- gambatte_qt/src/framework/src/gdisettings.cpp | 12 +- gambatte_qt/src/framework/src/gdisettings.h | 20 +- .../framework/src/getfullmodetoggler_unix.cpp | 6 +- gambatte_qt/src/framework/src/inputbox.cpp | 30 +- gambatte_qt/src/framework/src/inputbox.h | 10 +- gambatte_qt/src/framework/src/inputdialog.cpp | 82 +-- .../src/framework/src/joysticklock.cpp | 8 +- gambatte_qt/src/framework/src/mainwindow.cpp | 20 +- gambatte_qt/src/framework/src/mediawidget.cpp | 24 +- gambatte_qt/src/framework/src/mediawidget.h | 62 +-- gambatte_qt/src/framework/src/mediaworker.cpp | 28 +- gambatte_qt/src/framework/src/mediaworker.h | 4 +- gambatte_qt/src/framework/src/rational.h | 6 +- .../src/framework/src/samplebuffer.cpp | 8 +- gambatte_qt/src/framework/src/samplebuffer.h | 4 +- gambatte_qt/src/framework/src/sounddialog.cpp | 80 +-- gambatte_qt/src/framework/src/swscale.h | 74 +-- gambatte_qt/src/framework/src/videodialog.cpp | 70 +-- .../src/framework/src/x11getprocaddress.cpp | 30 +- gambatte_qt/src/gambattemenuhandler.cpp | 52 +- gambatte_qt/src/gambattemenuhandler.h | 38 +- gambatte_qt/src/gambattesource.cpp | 34 +- gambatte_qt/src/gambattesource.h | 20 +- gambatte_qt/src/miscdialog.cpp | 20 +- gambatte_qt/src/miscdialog.h | 4 +- gambatte_qt/src/palettedialog.cpp | 122 ++--- gambatte_qt/src/palettedialog.h | 26 +- gambatte_qt/src/pathselector.cpp | 14 +- gambatte_qt/src/pathselector.h | 8 +- gambatte_sdl/src/audiodata.cpp | 30 +- gambatte_sdl/src/audiodata.h | 6 +- gambatte_sdl/src/blitterwrapper.cpp | 8 +- gambatte_sdl/src/blitterwrapper.h | 4 +- gambatte_sdl/src/gambatte_sdl.cpp | 200 ++++---- gambatte_sdl/src/parser.cpp | 26 +- gambatte_sdl/src/parser.h | 8 +- gambatte_sdl/src/scalebuffer.h | 8 +- gambatte_sdl/src/sdlblitter.cpp | 12 +- gambatte_sdl/src/sdlblitter.h | 4 +- gambatte_sdl/src/str_to_sdlkey.cpp | 6 +- gambatte_sdl/src/syncfunc.cpp | 2 +- libgambatte/include/gambatte.h | 36 +- libgambatte/include/inputgetter.h | 2 +- libgambatte/src/bitmap_font.cpp | 8 +- libgambatte/src/bitmap_font.h | 16 +- libgambatte/src/cpu.cpp | 290 +++++------ libgambatte/src/cpu.h | 36 +- libgambatte/src/file/file_zip.cpp | 26 +- libgambatte/src/file/stdfile.h | 2 +- libgambatte/src/gambatte.cpp | 26 +- libgambatte/src/initstate.cpp | 108 ++-- libgambatte/src/insertion_sort.h | 10 +- libgambatte/src/interrupter.cpp | 6 +- libgambatte/src/interrupter.h | 2 +- libgambatte/src/interruptrequester.cpp | 18 +- libgambatte/src/interruptrequester.h | 24 +- libgambatte/src/mem/cartridge.cpp | 24 +- libgambatte/src/mem/cartridge.h | 18 +- libgambatte/src/mem/memptrs.cpp | 4 +- libgambatte/src/mem/memptrs.h | 12 +- libgambatte/src/mem/rtc.cpp | 14 +- libgambatte/src/mem/rtc.h | 22 +- libgambatte/src/memory.cpp | 52 +- libgambatte/src/memory.h | 28 +- libgambatte/src/minkeeper.h | 40 +- libgambatte/src/osd_element.h | 14 +- libgambatte/src/savestate.h | 28 +- libgambatte/src/sound.cpp | 20 +- libgambatte/src/sound.h | 12 +- libgambatte/src/sound/channel1.cpp | 52 +- libgambatte/src/sound/channel1.h | 24 +- libgambatte/src/sound/channel2.cpp | 34 +- libgambatte/src/sound/channel2.h | 18 +- libgambatte/src/sound/channel3.cpp | 40 +- libgambatte/src/sound/channel3.h | 28 +- libgambatte/src/sound/channel4.cpp | 68 +-- libgambatte/src/sound/channel4.h | 26 +- libgambatte/src/sound/duty_unit.cpp | 14 +- libgambatte/src/sound/duty_unit.h | 2 +- libgambatte/src/sound/envelope_unit.cpp | 28 +- libgambatte/src/sound/envelope_unit.h | 4 +- libgambatte/src/sound/length_counter.cpp | 12 +- libgambatte/src/sound/master_disabler.h | 2 +- libgambatte/src/sound/sound_unit.h | 2 +- libgambatte/src/state_osd_elements.cpp | 30 +- libgambatte/src/statesaver.cpp | 34 +- libgambatte/src/statesaver.h | 2 +- libgambatte/src/tima.cpp | 24 +- libgambatte/src/tima.h | 14 +- libgambatte/src/video.cpp | 120 ++--- libgambatte/src/video.h | 44 +- libgambatte/src/video/ly_counter.cpp | 12 +- libgambatte/src/video/ly_counter.h | 8 +- libgambatte/src/video/lyc_irq.cpp | 12 +- libgambatte/src/video/lyc_irq.h | 8 +- libgambatte/src/video/next_m0_time.h | 2 +- libgambatte/src/video/ppu.cpp | 472 +++++++++--------- libgambatte/src/video/ppu.h | 8 +- libgambatte/src/video/sprite_mapper.cpp | 4 +- libgambatte/src/video/sprite_mapper.h | 2 +- .../bgen/bgoff_bgon_sprite_above_window.asm | 42 +- .../bgen/bgoff_bgon_sprite_below_window.asm | 42 +- .../hwtests/bgtiledata/bgtiledata_spx08_1.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx08_2.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx08_3.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx08_4.asm | 2 +- .../bgtiledata/bgtiledata_spx08_ds_1.asm | 2 +- .../bgtiledata/bgtiledata_spx08_ds_2.asm | 2 +- .../bgtiledata/bgtiledata_spx08_ds_3.asm | 2 +- .../bgtiledata/bgtiledata_spx08_ds_4.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx09_1.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx09_2.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx09_3.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx09_4.asm | 2 +- .../bgtiledata/bgtiledata_spx09_ds_1.asm | 2 +- .../bgtiledata/bgtiledata_spx09_ds_2.asm | 2 +- .../bgtiledata/bgtiledata_spx09_ds_3.asm | 2 +- .../bgtiledata/bgtiledata_spx09_ds_4.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0A_1.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0A_2.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0A_3.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0A_4.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0B_1.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0B_2.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0B_3.asm | 2 +- .../hwtests/bgtiledata/bgtiledata_spx0B_4.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx08_1.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx08_2.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx08_3.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx08_4.asm | 2 +- .../bgtilemap/bgtilemap_spx08_ds_1.asm | 2 +- .../bgtilemap/bgtilemap_spx08_ds_2.asm | 2 +- .../bgtilemap/bgtilemap_spx08_ds_3.asm | 2 +- .../bgtilemap/bgtilemap_spx08_ds_4.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx09_1.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx09_2.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx09_3.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx09_4.asm | 2 +- .../bgtilemap/bgtilemap_spx09_ds_1.asm | 2 +- .../bgtilemap/bgtilemap_spx09_ds_2.asm | 2 +- .../bgtilemap/bgtilemap_spx09_ds_3.asm | 2 +- .../bgtilemap/bgtilemap_spx09_ds_4.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0A_1.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0A_2.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0A_3.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0A_4.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0B_1.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0B_2.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0B_3.asm | 2 +- .../hwtests/bgtilemap/bgtilemap_spx0B_4.asm | 2 +- testrunner/hwtests/cgb_bgp_dumper.asm | 66 +-- testrunner/hwtests/cgb_objp_dumper.asm | 66 +-- .../hwtests/cgbpal_m3/cgbpal_m3end_1_out7.asm | 42 +- .../hwtests/cgbpal_m3/cgbpal_m3end_2_out0.asm | 42 +- .../hwtests/cgbpal_m3/cgbpal_m3end_3_out0.asm | 42 +- .../hwtests/cgbpal_m3/cgbpal_m3end_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_ds_1_out7.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_ds_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_ds_3_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_ds_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx2_1_out7.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx2_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx2_3_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx2_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx3_1_out7.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx3_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx3_3_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx3_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_1_out7.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_3_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_ds_1_out7.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_ds_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_ds_3_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3end_scx5_ds_4_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3start_1_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3start_2_out0.asm | 42 +- .../cgbpal_m3/cgbpal_m3start_ds_1_out1.asm | 42 +- .../cgbpal_m3/cgbpal_m3start_ds_2_out0.asm | 42 +- .../irq_dmg08_cgb_outE1.asm | 66 +-- .../ly_dmg08_out00_cgb_out90.asm | 66 +-- .../display_startstate/stat_1_cgb_out87.asm | 66 +-- .../display_startstate/stat_1_dmg08_out85.asm | 64 +-- .../display_startstate/stat_2_cgb_out84.asm | 66 +-- .../display_startstate/stat_2_dmg08_out84.asm | 64 +-- .../stat_scx2_1_cgb_out87.asm | 66 +-- .../stat_scx2_2_cgb_out84.asm | 66 +-- .../stat_scx3_1_cgb_out87.asm | 66 +-- .../stat_scx3_2_cgb_out84.asm | 66 +-- .../stat_scx5_1_cgb_out87.asm | 66 +-- .../stat_scx5_2_cgb_out84.asm | 66 +-- .../hwtests/div/start_inc_1_cgb_out1E.asm | 66 +-- .../hwtests/div/start_inc_1_dmg08_outAB.asm | 64 +-- .../hwtests/div/start_inc_2_cgb_out1F.asm | 66 +-- .../hwtests/div/start_inc_2_dmg08_outAC.asm | 64 +-- .../hwtests/div/start_stop1_inc_1_out00.asm | 66 +-- .../hwtests/div/start_stop1_inc_2_out01.asm | 66 +-- .../hwtests/div/start_stop2_inc_1_out00.asm | 66 +-- .../hwtests/div/start_stop2_inc_2_out01.asm | 66 +-- .../hwtests/dma/dma_dst_wrap_1_out1.asm | 42 +- .../hwtests/dma/dma_dst_wrap_2_out0.asm | 42 +- .../hwtests/dma/dma_hiram_read_out7.asm | 42 +- .../dma/dma_hiram_read_result_out1.asm | 42 +- testrunner/hwtests/dma/dma_oam_read_out7.asm | 42 +- testrunner/hwtests/dma/dma_src_wrap_out1.asm | 44 +- testrunner/hwtests/dma/dma_vram_read_out7.asm | 42 +- testrunner/hwtests/dma/ff51_bits_outFF.asm | 66 +-- testrunner/hwtests/dma/ff52_bits_outFF.asm | 66 +-- testrunner/hwtests/dma/ff53_bits_outFF.asm | 66 +-- testrunner/hwtests/dma/ff54_bits_outFF.asm | 66 +-- .../dma/gdma_cycles_2xshort_ds_1_out3.asm | 42 +- .../dma/gdma_cycles_2xshort_ds_2_out0.asm | 42 +- .../gdma_cycles_2xshort_scx5_ds_1_out3.asm | 42 +- .../gdma_cycles_2xshort_scx5_ds_2_out0.asm | 42 +- .../hwtests/dma/gdma_cycles_long_1_out3.asm | 42 +- .../hwtests/dma/gdma_cycles_long_2_out0.asm | 42 +- .../dma/gdma_cycles_long_ds_1_out3.asm | 42 +- .../dma/gdma_cycles_long_ds_2_out0.asm | 42 +- .../dma/gdma_cycles_long_scx2_1_out3.asm | 42 +- .../dma/gdma_cycles_long_scx2_2_out0.asm | 42 +- .../dma/gdma_cycles_long_scx3_1_out3.asm | 42 +- .../dma/gdma_cycles_long_scx3_2_out0.asm | 42 +- .../dma/gdma_cycles_long_scx5_1_out3.asm | 42 +- .../dma/gdma_cycles_long_scx5_2_out0.asm | 42 +- .../dma/gdma_cycles_long_scx5_ds_1_out3.asm | 42 +- .../dma/gdma_cycles_long_scx5_ds_2_out0.asm | 42 +- .../hwtests/dma/gdma_cycles_short_1_out3.asm | 42 +- .../hwtests/dma/gdma_cycles_short_2_out0.asm | 42 +- .../dma/gdma_cycles_short_ds_1_out3.asm | 42 +- .../dma/gdma_cycles_short_ds_2_out0.asm | 42 +- .../dma/gdma_cycles_short_scx2_1_out3.asm | 42 +- .../dma/gdma_cycles_short_scx2_2_out0.asm | 42 +- .../dma/gdma_cycles_short_scx3_1_out3.asm | 42 +- .../dma/gdma_cycles_short_scx3_2_out0.asm | 42 +- .../dma/gdma_cycles_short_scx5_1_out3.asm | 42 +- .../dma/gdma_cycles_short_scx5_2_out0.asm | 42 +- .../dma/gdma_cycles_short_scx5_ds_1_out3.asm | 42 +- .../dma/gdma_cycles_short_scx5_ds_2_out0.asm | 42 +- testrunner/hwtests/dma/gdma_start_1_out1.asm | 42 +- testrunner/hwtests/dma/gdma_weird_1_out3.asm | 42 +- testrunner/hwtests/dma/gdma_weird_2_out0.asm | 42 +- testrunner/hwtests/dma/hdma_cycles_1_out3.asm | 42 +- testrunner/hwtests/dma/hdma_cycles_2_out0.asm | 42 +- .../hwtests/dma/hdma_cycles_ds_1_out3.asm | 42 +- .../hwtests/dma/hdma_cycles_ds_2_out0.asm | 42 +- .../hwtests/dma/hdma_cycles_scx2_1_out3.asm | 42 +- .../hwtests/dma/hdma_cycles_scx2_2_out0.asm | 42 +- .../hwtests/dma/hdma_cycles_scx3_1_out3.asm | 42 +- .../hwtests/dma/hdma_cycles_scx3_2_out0.asm | 42 +- .../hwtests/dma/hdma_cycles_scx5_1_out3.asm | 42 +- .../hwtests/dma/hdma_cycles_scx5_2_out0.asm | 42 +- .../dma/hdma_cycles_scx5_ds_1_out3.asm | 42 +- .../dma/hdma_cycles_scx5_ds_2_out0.asm | 42 +- .../dma/hdma_disable_display_1_out1.asm | 42 +- .../dma/hdma_disable_display_2_out0.asm | 42 +- .../dma/hdma_disabled_display_1_out1.asm | 42 +- .../dma/hdma_disabled_display_2_out0.asm | 42 +- .../hwtests/dma/hdma_late_destl_1_out0.asm | 42 +- .../hwtests/dma/hdma_late_destl_2_out1.asm | 42 +- .../hwtests/dma/hdma_late_disable_1_out0.asm | 42 +- .../hwtests/dma/hdma_late_disable_2_out1.asm | 42 +- .../dma/hdma_late_disable_ds_1_out0.asm | 42 +- .../dma/hdma_late_disable_ds_2_out1.asm | 42 +- .../dma/hdma_late_disable_scx2_1_out0.asm | 42 +- .../dma/hdma_late_disable_scx2_2_out1.asm | 42 +- .../dma/hdma_late_disable_scx3_1_out0.asm | 42 +- .../dma/hdma_late_disable_scx3_2_out1.asm | 42 +- .../dma/hdma_late_disable_scx5_1_out0.asm | 42 +- .../dma/hdma_late_disable_scx5_2_out1.asm | 42 +- .../dma/hdma_late_disable_scx5_ds_1_out0.asm | 42 +- .../dma/hdma_late_disable_scx5_ds_2_out1.asm | 42 +- .../hwtests/dma/hdma_late_enable_1_out1.asm | 42 +- .../hwtests/dma/hdma_late_enable_2_out0.asm | 42 +- .../dma/hdma_late_enable_ds_1_out1.asm | 42 +- .../dma/hdma_late_enable_ds_2_out0.asm | 42 +- .../hwtests/dma/hdma_late_length_1_out0.asm | 42 +- .../hwtests/dma/hdma_late_length_2_out1.asm | 42 +- .../hwtests/dma/hdma_late_wrambank_1_out0.asm | 42 +- .../hwtests/dma/hdma_late_wrambank_2_out1.asm | 42 +- testrunner/hwtests/dma/hdma_start_1_out0.asm | 42 +- testrunner/hwtests/dma/hdma_start_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_ds_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_ds_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_ly0_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_ly0_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_scx2_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_scx2_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_scx3_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_scx3_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_scx5_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_scx5_2_out1.asm | 42 +- .../hwtests/dma/hdma_start_scx5_ds_1_out0.asm | 42 +- .../hwtests/dma/hdma_start_scx5_ds_2_out1.asm | 42 +- ...gs_1_dmg08_cgb_out66e46666009266666666.asm | 66 +-- ...gs_2_dmg08_cgb_out66e06666006666666666.asm | 66 +-- ...gs_3_dmg08_cgb_out91e06666006666666666.asm | 66 +-- ...splay_ly0_m0irq_trigger_dmg08_cgb_out0.asm | 42 +- ..._display_ly0_m2irq_dmg08_out0_cgb_out0.asm | 42 +- ...play_ly0_oambusy_read_1_dmg08_cgb_out0.asm | 42 +- ...play_ly0_oambusy_read_2_dmg08_cgb_out7.asm | 42 +- ...ble_display_ly0_oambusy_read_ds_1_out0.asm | 42 +- ...ble_display_ly0_oambusy_read_ds_2_out7.asm | 42 +- ...ay_ly0_sprites_m0stat_1_dmg08_cgb_out3.asm | 42 +- ...ay_ly0_sprites_m0stat_2_dmg08_cgb_out0.asm | 42 +- ..._display_ly0_wemaster_1_dmg08_cgb_out3.asm | 42 +- ..._display_ly0_wemaster_2_dmg08_cgb_out3.asm | 42 +- .../lcdcenable_lyc0irq_1_dmg08_cgb_out2.asm | 40 +- .../enable_display/ly_dmg08_cgb_out00.asm | 66 +-- .../nextstat_1_dmg08_cgb_out84.asm | 66 +-- .../nextstat_2_dmg08_cgb_out87.asm | 66 +-- .../enable_display/stat_dmg08_cgb_out84.asm | 66 +-- testrunner/hwtests/fexx_ffxx_dumper.asm | 66 +-- .../hwtests/fexx_read_reset_set_dumper.asm | 66 +-- ...noie_nolcdirq_readstat_dmg08_cgb_blank.asm | 64 +-- .../hwtests/halt/lycint0_m0stat_ds_1.asm | 42 +- .../hwtests/halt/lycint0_m0stat_ds_2.asm | 42 +- testrunner/hwtests/halt/lycint_lycirq_1.asm | 40 +- testrunner/hwtests/halt/lycint_lycirq_2.asm | 40 +- testrunner/hwtests/halt/lycint_m0stat_1.asm | 40 +- testrunner/hwtests/halt/lycint_m0stat_2.asm | 40 +- testrunner/hwtests/halt/lycirq98_m0stat_1.asm | 40 +- testrunner/hwtests/halt/lycirq98_m0stat_2.asm | 40 +- testrunner/hwtests/halt/lycirq_lycirq_1.asm | 40 +- testrunner/hwtests/halt/lycirq_lycirq_2.asm | 40 +- testrunner/hwtests/halt/lycirq_m0stat_1.asm | 40 +- testrunner/hwtests/halt/lycirq_m0stat_2.asm | 40 +- .../hwtests/halt/lycirq_m0stat_ds_1.asm | 42 +- .../hwtests/halt/lycirq_m0stat_ds_2.asm | 42 +- .../halt/lycirq_scy_during_m3_ds_1.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_2.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_3.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_4.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_5.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_6.asm | 2 +- .../halt/lycirq_scy_during_m3_ds_7.asm | 2 +- testrunner/hwtests/halt/m2int_m2irq_1.asm | 40 +- testrunner/hwtests/halt/m2int_m2irq_2.asm | 40 +- testrunner/hwtests/halt/m2int_m2stat_1.asm | 40 +- testrunner/hwtests/halt/m2int_m2stat_2.asm | 40 +- testrunner/hwtests/halt/m2irq_ly_1.asm | 40 +- testrunner/hwtests/halt/m2irq_ly_2.asm | 40 +- testrunner/hwtests/halt/m2irq_m2irq_1.asm | 40 +- testrunner/hwtests/halt/m2irq_m2irq_2.asm | 40 +- testrunner/hwtests/halt/m2irq_m2stat_1.asm | 40 +- testrunner/hwtests/halt/m2irq_m2stat_2.asm | 40 +- ..._ifandie_m2int_m0stat_1_dmg08_cgb_out0.asm | 42 +- ..._ifandie_m2int_m0stat_2_dmg08_cgb_out2.asm | 42 +- ...noie_nolcdirq_readstat_dmg08_cgb_blank.asm | 64 +-- testrunner/hwtests/ioregs_reset_dumper.asm | 66 +-- ...e_lycirq_ly44_lcdstat58_dmg08_cgb_out2.asm | 42 +- ...e_lycirq_ly44_lcdstat68_dmg08_cgb_out0.asm | 42 +- ...rq_ly00_lcdstat48_lyc00_dmg08_cgb_out0.asm | 42 +- ...rq_ly00_lcdstat48_lyc99_dmg08_cgb_out2.asm | 42 +- ...rq_ly00_lcdstat58_lyc00_dmg08_cgb_out0.asm | 42 +- ...rq_ly00_lcdstat58_lyc99_dmg08_cgb_out2.asm | 42 +- .../lycirq_ly00_lcdstat50_dmg08_cgb_out0.asm | 42 +- .../lycirq_ly44_lcdstat48_dmg08_cgb_out2.asm | 42 +- .../lycirq_ly44_lcdstat50_dmg08_cgb_out2.asm | 42 +- .../lycirq_ly8f_lcdstat50_dmg08_cgb_out2.asm | 42 +- .../lycirq_ly91_lcdstat50_dmg08_cgb_out0.asm | 42 +- .../lycirq_ly99_lcdstat50_dmg08_cgb_out0.asm | 42 +- .../m0irq_ly00_lcdstat18_dmg08_cgb_out2.asm | 42 +- .../m0irq_ly44_lcdstat18_dmg08_cgb_out2.asm | 42 +- .../m0irq_ly44_lcdstat28_dmg08_cgb_out2.asm | 42 +- ...rq_ly44_lcdstat48_lyc43_dmg08_cgb_out2.asm | 42 +- ...rq_ly44_lcdstat48_lyc44_dmg08_cgb_out0.asm | 42 +- ...rq_ly44_lcdstat48_lyc45_dmg08_cgb_out2.asm | 42 +- .../m0irq_ly8f_lcdstat18_dmg08_cgb_out2.asm | 42 +- .../m1irq_lcdstat18_dmg08_cgb_out1.asm | 42 +- .../m1irq_lcdstat30_dmg08_cgb_out3.asm | 42 +- .../m1irq_lcdstat50_lyc8f_dmg08_cgb_out3.asm | 42 +- .../m1irq_lcdstat50_lyc90_dmg08_cgb_out3.asm | 42 +- .../m1irq_lcdstat50_lyc91_dmg08_cgb_out3.asm | 42 +- .../m2irq_ly00_lcdstat28_dmg08_cgb_out2.asm | 42 +- .../m2irq_ly00_lcdstat30_dmg08_cgb_out0.asm | 42 +- .../m2irq_ly44_lcdstat30_dmg08_cgb_out2.asm | 42 +- .../m2irq_ly8f_lcdstat28_dmg08_cgb_out0.asm | 42 +- .../m2irq_ly8f_lcdstat30_dmg08_cgb_out2.asm | 42 +- .../lycint152_ly0stat_1_dmg08_cgb_outC1.asm | 66 +-- .../lycint152_ly0stat_2_dmg08_cgb_outC0.asm | 66 +-- .../lycint152_ly0stat_3_dmg08_cgb_outC2.asm | 66 +-- .../ly0/lycint152_ly0stat_ds_1_outC1.asm | 66 +-- .../ly0/lycint152_ly0stat_ds_2_outC1.asm | 66 +-- .../ly0/lycint152_ly0stat_ds_3_outC2.asm | 66 +-- .../ly0/lycint152_ly153_1_dmg08_cgb_out98.asm | 66 +-- .../ly0/lycint152_ly153_2_dmg08_cgb_out99.asm | 66 +-- .../ly0/lycint152_ly153_3_dmg08_cgb_out00.asm | 66 +-- .../ly0/lycint152_ly153_ds_1_out98.asm | 66 +-- .../ly0/lycint152_ly153_ds_2_out99.asm | 66 +-- .../ly0/lycint152_ly153_ds_3_out99.asm | 66 +-- .../ly0/lycint152_ly153_ds_4_out99.asm | 66 +-- .../ly0/lycint152_ly153_ds_5_out00.asm | 66 +-- .../lycint152_ly1_m2irq_1_dmg08_cgb_outE0.asm | 66 +-- .../lycint152_ly1_m2irq_2_dmg08_cgb_outE2.asm | 66 +-- .../lycint152_lyc0flag_1_dmg08_cgb_outC1.asm | 66 +-- .../lycint152_lyc0flag_2_dmg08_cgb_outC5.asm | 66 +-- .../lycint152_lyc0flag_3_dmg08_cgb_outC4.asm | 66 +-- .../lycint152_lyc0flag_4_dmg08_cgb_outC0.asm | 66 +-- .../ly0/lycint152_lyc0flag_ds_1_outC1.asm | 66 +-- .../ly0/lycint152_lyc0flag_ds_2_outC5.asm | 66 +-- .../ly0/lycint152_lyc0flag_ds_3_outC4.asm | 66 +-- .../ly0/lycint152_lyc0flag_ds_4_outC2.asm | 66 +-- .../lycint152_lyc0irq_1_dmg08_cgb_outE0.asm | 66 +-- .../lycint152_lyc0irq_2_dmg08_cgb_outE2.asm | 66 +-- .../ly0/lycint152_lyc0irq_ds_1_outE0.asm | 66 +-- .../ly0/lycint152_lyc0irq_ds_2_outE2.asm | 66 +-- ...lycint152_lyc153flag_1_dmg08_cgb_outC1.asm | 66 +-- ...lycint152_lyc153flag_2_dmg08_cgb_outC5.asm | 66 +-- ...lycint152_lyc153flag_3_dmg08_cgb_outC1.asm | 66 +-- .../ly0/lycint152_lyc153flag_ds_1_outC1.asm | 66 +-- .../ly0/lycint152_lyc153flag_ds_2_outC5.asm | 66 +-- .../ly0/lycint152_lyc153flag_ds_3_outC5.asm | 66 +-- .../ly0/lycint152_lyc153flag_ds_4_outC1.asm | 66 +-- .../lycint152_lyc153irq_1_dmg08_cgb_outE0.asm | 66 +-- .../lycint152_lyc153irq_2_dmg08_cgb_outE2.asm | 66 +-- .../ly0/lycint152_m0irq_1_dmg08_cgb_outE0.asm | 66 +-- .../ly0/lycint152_m0irq_2_dmg08_cgb_outE2.asm | 66 +-- .../ly0/lycint152_m2irq_1_dmg08_cgb_outE0.asm | 66 +-- .../ly0/lycint152_m2irq_2_dmg08_cgb_outE2.asm | 66 +-- .../ly0/lycint152_m2irq_ds_1_outE0.asm | 66 +-- .../ly0/lycint152_m2irq_ds_2_outE2.asm | 66 +-- .../lycint152_m2stat_1_dmg08_cgb_outC2.asm | 66 +-- .../lycint152_m2stat_2_dmg08_cgb_outC3.asm | 66 +-- .../lyc0int_m0irq_1_dmg08_cgb_out0.asm | 42 +- .../lyc0int_m0irq_2_dmg08_cgb_out2.asm | 42 +- .../lyc0int_m0irq/lyc0int_m0irq_ds_1_out0.asm | 42 +- .../lyc0int_m0irq/lyc0int_m0irq_ds_2_out2.asm | 42 +- .../lyc153int_m2irq_1_dmg08_cgb_out0.asm | 42 +- .../lyc153int_m2irq_2_dmg08_cgb_out2.asm | 42 +- .../early_ff41_response_1_cgb_out0.asm | 42 +- .../early_ff41_response_2_cgb_out7.asm | 42 +- .../early_ff45_response_1_dmg08_cgb_out0.asm | 42 +- .../early_ff45_response_2_dmg08_cgb_out7.asm | 42 +- .../ff40_disable_1_dmg08_cgb_out0.asm | 42 +- .../ff40_disable_2_dmg08_cgb_out2.asm | 42 +- .../ff41_disable_1_dmg08_cgb_out0.asm | 42 +- .../ff41_disable_2_dmg08_out0_cgb_out2.asm | 42 +- .../ff41_disable_3_dmg08_cgb_out2.asm | 42 +- .../lycEnable/ff41_disable_ds_1_out1.asm | 42 +- .../lycEnable/ff41_disable_ds_2_out3.asm | 42 +- .../ff41_reenable_1_dmg08_cgb_out2.asm | 42 +- .../ff41_reenable_2_dmg08_cgb_out2.asm | 42 +- .../ff41_reenable_3_dmg08_cgb_out1.asm | 42 +- .../ff45_disable_1_dmg08_cgb_out1.asm | 42 +- .../ff45_disable_2_dmg08_out1_cgb_out3.asm | 42 +- .../ff45_disable_3_dmg08_cgb_out3.asm | 42 +- .../lycEnable/ff45_disable_ds_1_out1.asm | 42 +- .../lycEnable/ff45_disable_ds_2_out3.asm | 42 +- ...f45_enable_weirdpoint_1_dmg08_cgb_out3.asm | 42 +- ...nable_weirdpoint_2_dmg08_out3_cgb_out1.asm | 42 +- ...nable_weirdpoint_3_dmg08_out1_cgb_out3.asm | 42 +- ...f45_enable_weirdpoint_4_dmg08_cgb_out3.asm | 42 +- .../ff45_enable_weirdpoint_ds_1_out3.asm | 42 +- .../ff45_enable_weirdpoint_ds_2_out1.asm | 42 +- .../ff45_enable_weirdpoint_ds_3_out1.asm | 42 +- .../ff45_enable_weirdpoint_ds_4_out3.asm | 42 +- .../ff45_reenable_1_dmg08_cgb_out3.asm | 42 +- .../ff45_reenable_2_dmg08_cgb_out2.asm | 42 +- .../ff45_reenable_3_dmg08_cgb_out1.asm | 42 +- .../late_ff41_enable_1_dmg08_cgb_out2.asm | 42 +- ...late_ff41_enable_2_dmg08_out2_cgb_out0.asm | 42 +- .../late_ff41_enable_3_dmg08_cgb_out0.asm | 42 +- ...ble_after_m2int_disable_dmg08_cgb_out2.asm | 42 +- ...ff41_enable_after_m2int_dmg08_cgb_out2.asm | 42 +- .../lycEnable/late_ff41_enable_ds_1_out3.asm | 42 +- .../lycEnable/late_ff41_enable_ds_2_out1.asm | 42 +- .../late_ff45_enable_1_dmg08_cgb_out3.asm | 42 +- ...late_ff45_enable_2_dmg08_out3_cgb_out1.asm | 42 +- .../late_ff45_enable_3_dmg08_cgb_out1.asm | 42 +- ...ff45_enable_after_m2int_dmg08_cgb_out2.asm | 42 +- .../lycEnable/late_ff45_enable_ds_1_out3.asm | 42 +- .../lycEnable/late_ff45_enable_ds_2_out1.asm | 42 +- ...0_ff41_disable_1_dmg08_outE2_cgb_outE0.asm | 66 +-- .../lyc0_ff41_disable_2_dmg08_cgb_outE2.asm | 66 +-- .../lyc0_ff41_disable_ds_1_outE0.asm | 66 +-- .../lyc0_ff41_disable_ds_2_outE2.asm | 66 +-- .../lyc0_ff45_disable_1_dmg08_cgb_outE0.asm | 66 +-- ...0_ff45_disable_2_dmg08_outE0_cgb_outE2.asm | 66 +-- .../lyc0_ff45_disable_3_dmg08_cgb_outE2.asm | 66 +-- .../lyc0_ff45_disable_ds_1_outE0.asm | 66 +-- .../lyc0_ff45_disable_ds_2_outE2.asm | 66 +-- ...45_enable_weirdpoint_1_dmg08_cgb_outE2.asm | 66 +-- ...45_enable_weirdpoint_2_dmg08_cgb_outE2.asm | 66 +-- ...45_enable_weirdpoint_3_dmg08_cgb_outE2.asm | 66 +-- ...45_enable_weirdpoint_4_dmg08_cgb_outE2.asm | 66 +-- ...yc0_late_ff45_enable_1_dmg08_cgb_outE2.asm | 66 +-- ...te_ff45_enable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- ...yc0_late_ff45_enable_3_dmg08_cgb_outE0.asm | 66 +-- .../lyc0_m1disable_1_dmg08_cgb_outE2.asm | 66 +-- ...lyc0_m1disable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- .../lyc0_m1disable_3_dmg08_cgb_outE0.asm | 66 +-- .../lycEnable/lyc0_m1disable_ds_1_outE2.asm | 66 +-- .../lycEnable/lyc0_m1disable_ds_2_outE0.asm | 66 +-- ...ate_enable_m1disable_1_dmg08_cgb_outE2.asm | 66 +-- ...able_m1disable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- ...ate_enable_m1disable_3_dmg08_cgb_outE0.asm | 66 +-- ...153_late_ff41_enable_1_dmg08_cgb_outE2.asm | 66 +-- ...te_ff41_enable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- .../lyc153_late_ff41_enable_ds_1_outE2.asm | 66 +-- .../lyc153_late_ff41_enable_ds_2_outE0.asm | 66 +-- ...153_late_ff45_enable_1_dmg08_cgb_outE2.asm | 66 +-- ...te_ff45_enable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- ...te_ff45_enable_3_dmg08_outE0_cgb_outE2.asm | 66 +-- ...te_ff45_enable_4_dmg08_outE2_cgb_outE0.asm | 66 +-- ...153_late_ff45_enable_5_dmg08_cgb_outE0.asm | 66 +-- .../lyc153_late_ff45_enable_ds_1_outE2.asm | 66 +-- .../lyc153_late_ff45_enable_ds_2_outE0.asm | 66 +-- .../lyc153_late_ff45_enable_ds_3_outE0.asm | 66 +-- .../lyc153_late_ff45_enable_ds_4_outE2.asm | 66 +-- .../lyc153_late_ff45_enable_ds_5_outE2.asm | 66 +-- .../lyc153_late_ff45_enable_ds_6_outE0.asm | 66 +-- ...yc153_late_m1disable_1_dmg08_cgb_outE2.asm | 66 +-- ...late_m1disable_2_dmg08_outE2_cgb_outE0.asm | 66 +-- ...yc153_late_m1disable_3_dmg08_cgb_outE0.asm | 66 +-- .../lycEnable/lyc153_m1disable_ds_1_outE2.asm | 66 +-- .../lycEnable/lyc153_m1disable_ds_2_outE0.asm | 66 +-- .../lyc_ff41_enable_1_dmg08_cgb_out2.asm | 42 +- .../lyc_ff41_enable_2_dmg08_cgb_out2.asm | 42 +- .../lyc_ff41_enable_3_dmg08_cgb_out2.asm | 42 +- .../lyc_ff41_enable_4_dmg08_cgb_out2.asm | 42 +- .../lyc_ff41_enable_5_dmg08_cgb_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_1_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_2_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_3_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_4_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_5_out2.asm | 42 +- .../lycEnable/lyc_ff41_enable_ds_6_out2.asm | 42 +- ...yc_ff41_trigger_delay_1_dmg08_cgb_out0.asm | 42 +- ...yc_ff41_trigger_delay_2_dmg08_cgb_out2.asm | 42 +- .../lyc_ff45_disable2_1_dmg08_cgb_out1.asm | 42 +- ...yc_ff45_disable2_2_dmg08_out1_cgb_out3.asm | 42 +- .../lyc_ff45_disable2_3_dmg08_cgb_out3.asm | 42 +- .../lycEnable/lyc_ff45_disable2_ds_1_out1.asm | 42 +- .../lycEnable/lyc_ff45_disable2_ds_2_out3.asm | 42 +- ...yc_ff45_trigger_delay_1_dmg08_cgb_out0.asm | 42 +- ...45_trigger_delay_2_dmg08_out0_cgb_out2.asm | 42 +- ...yc_ff45_trigger_delay_3_dmg08_cgb_out2.asm | 42 +- .../lyc_ff45_trigger_delay_ds_1_out0.asm | 42 +- .../lyc_ff45_trigger_delay_ds_2_out2.asm | 42 +- ..._trigger_ly00_stat50_1_dmg08_cgb_outE0.asm | 66 +-- ...er_ly00_stat50_2_dmg08_outE0_cgb_outE2.asm | 66 +-- ..._trigger_ly00_stat50_3_dmg08_cgb_outE2.asm | 66 +-- ...lycwirq_trigger_ly00_stat50_ds_1_outE0.asm | 66 +-- ...lycwirq_trigger_ly00_stat50_ds_2_outE2.asm | 66 +-- ...rq_trigger_ly94_stat50_dmg08_cgb_outE0.asm | 66 +-- .../lycint_ly/lycint_ly_1_dmg08_cgb_out5.asm | 42 +- .../lycint_ly/lycint_ly_2_dmg08_cgb_out6.asm | 42 +- .../hwtests/lycint_ly/lycint_ly_ds_1_out5.asm | 42 +- .../hwtests/lycint_ly/lycint_ly_ds_2_out6.asm | 42 +- .../lycint_lycflag_1_dmg08_cgb_out0.asm | 42 +- .../lycint_lycflag_2_dmg08_cgb_out6.asm | 42 +- .../lycint_lycflag_3_dmg08_cgb_out4.asm | 42 +- .../lycint_lycflag_4_dmg08_cgb_out0.asm | 42 +- .../lycint_lycflag_ds_1_out0.asm | 42 +- .../lycint_lycflag_ds_2_out6.asm | 42 +- .../lycint_lycflag_ds_3_out4.asm | 42 +- .../lycint_lycflag_ds_4_out2.asm | 42 +- .../lycint_lycirq_1_dmg08_cgb_out1.asm | 42 +- .../lycint_lycirq_2_dmg08_cgb_out3.asm | 42 +- .../lycint_m0stat_1_dmg08_cgb_out0.asm | 42 +- .../lycint_m0stat_2_dmg08_cgb_out2.asm | 42 +- .../lycint_m0stat/lycint_m0stat_ds_1_out0.asm | 42 +- .../lycint_m0stat/lycint_m0stat_ds_2_out2.asm | 42 +- .../lyc0m2int_m2irq_1_dmg08_cgb_out0.asm | 42 +- .../lyc0m2int_m2irq_2_dmg08_cgb_out2.asm | 42 +- .../lyc0m2int_stat_dmg08_cgb_out1.asm | 42 +- .../lycm2int_m0stat_1_dmg08_cgb_out0.asm | 42 +- .../lycm2int_m0stat_2_dmg08_cgb_out2.asm | 42 +- .../lycm2int_m2irq_1_dmg08_cgb_out1.asm | 42 +- .../lycm2int_m2irq_2_dmg08_cgb_out3.asm | 42 +- .../m2irq_before_lycint_1_dmg08_cgb_out1.asm | 42 +- .../m2irq_before_lycint_2_dmg08_cgb_out3.asm | 42 +- .../lywrite77_ly44_m3_ly_dmg08_cgb_out44.asm | 66 +-- ...lywrite77_ly44_m3_stat_dmg08_cgb_outC7.asm | 66 +-- .../lywrite77_ly97_ly_dmg08_cgb_out97.asm | 66 +-- .../lywrite77_ly97_stat_dmg08_cgb_outC5.asm | 66 +-- .../m0enable/disable_1_dmg08_cgb_out0.asm | 42 +- .../disable_2_dmg08_out0_cgb_out2.asm | 42 +- .../m0enable/disable_3_dmg08_cgb_out2.asm | 42 +- .../hwtests/m0enable/disable_ds_1_out1.asm | 42 +- .../hwtests/m0enable/disable_ds_2_out3.asm | 42 +- .../disable_scx1_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx1_2_dmg08_cgb_out2.asm | 42 +- .../disable_scx2_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx2_2_dmg08_cgb_out2.asm | 42 +- .../disable_scx3_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx3_2_dmg08_out0_cgb_out2.asm | 42 +- .../disable_scx3_3_dmg08_cgb_out2.asm | 42 +- .../disable_scx4_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx4_2_dmg08_out0_cgb_out2.asm | 42 +- .../disable_scx4_3_dmg08_cgb_out2.asm | 42 +- .../disable_scx5_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx5_2_dmg08_cgb_out2.asm | 42 +- .../m0enable/disable_scx5_ds_1_out1.asm | 42 +- .../m0enable/disable_scx5_ds_2_out3.asm | 42 +- .../disable_scx7_1_dmg08_cgb_out0.asm | 42 +- .../disable_scx7_2_dmg08_out0_cgb_out2.asm | 42 +- .../disable_scx7_3_dmg08_cgb_out2.asm | 42 +- ...able_after_lyc_during_1_dmg08_cgb_out0.asm | 42 +- ...able_after_lyc_during_2_dmg08_cgb_out0.asm | 42 +- ...nable_after_lyc_prior_1_dmg08_cgb_out2.asm | 42 +- ...nable_after_lyc_prior_2_dmg08_cgb_out0.asm | 42 +- ...nable_after_m2_during_1_dmg08_cgb_out2.asm | 42 +- ...nable_after_m2_during_2_dmg08_cgb_out2.asm | 42 +- ...enable_after_m2_prior_1_dmg08_cgb_out2.asm | 42 +- ...enable_after_m2_prior_2_dmg08_cgb_out2.asm | 42 +- .../enable_before_lycint_1_dmg08_cgb_out0.asm | 42 +- .../enable_before_lycint_2_dmg08_cgb_out2.asm | 42 +- .../enable_twice_1_dmg08_cgb_out0.asm | 42 +- .../m0enable/late_enable_1_dmg08_cgb_out2.asm | 42 +- .../late_enable_2_dmg08_out2_cgb_out0.asm | 42 +- .../m0enable/late_enable_3_dmg08_cgb_out0.asm | 42 +- .../m0enable/late_enable_ds_1_out3.asm | 42 +- .../m0enable/late_enable_ds_2_out1.asm | 42 +- .../lycdisable_ff41_1_dmg08_cgb_out2.asm | 42 +- .../lycdisable_ff41_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff41_3_dmg08_cgb_out0.asm | 42 +- .../m0enable/lycdisable_ff41_ds_1_out2.asm | 42 +- .../m0enable/lycdisable_ff41_ds_2_out0.asm | 42 +- .../lycdisable_ff41_scx1_1_dmg08_cgb_out2.asm | 42 +- .../lycdisable_ff41_scx1_2_dmg08_cgb_out0.asm | 42 +- .../lycdisable_ff41_scx1_ds_1_out2.asm | 42 +- .../lycdisable_ff41_scx1_ds_2_out0.asm | 42 +- .../lycdisable_ff41_scx2_1_dmg08_cgb_out2.asm | 42 +- .../lycdisable_ff41_scx2_2_dmg08_cgb_out0.asm | 42 +- .../lycdisable_ff41_scx3_1_dmg08_cgb_out2.asm | 42 +- ...isable_ff41_scx3_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff41_scx3_3_dmg08_cgb_out0.asm | 42 +- .../lycdisable_ff45_1_dmg08_cgb_out2.asm | 42 +- .../lycdisable_ff45_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff45_3_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff45_4_dmg08_cgb_out0.asm | 42 +- .../m0enable/lycdisable_ff45_ds_1_out2.asm | 42 +- .../m0enable/lycdisable_ff45_ds_2_xout0.asm | 42 +- .../lycdisable_ff45_scx1_1_dmg08_cgb_out2.asm | 42 +- ...isable_ff45_scx1_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff45_scx1_3_dmg08_cgb_out0.asm | 42 +- .../lycdisable_ff45_scx1_ds_1_out2.asm | 42 +- .../lycdisable_ff45_scx1_ds_2_out0.asm | 42 +- .../lycdisable_ff45_scx2_1_dmg08_cgb_out2.asm | 42 +- ...isable_ff45_scx2_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff45_scx2_3_dmg08_cgb_out0.asm | 42 +- .../lycdisable_ff45_scx3_1_dmg08_cgb_out2.asm | 42 +- ...isable_ff45_scx3_2_dmg08_out2_cgb_out0.asm | 42 +- .../lycdisable_ff45_scx3_3_dmg08_cgb_out0.asm | 42 +- .../m0enable/m0_enable_1_dmg08_cgb_out2.asm | 42 +- .../m0enable/m0_enable_2_dmg08_cgb_out2.asm | 42 +- .../m0enable/m0_enable_3_dmg08_cgb_out2.asm | 42 +- .../m0enable/m0_enable_4_dmg08_cgb_out2.asm | 42 +- .../m0enable/m0_enable_5_dmg08_cgb_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_1_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_2_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_3_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_4_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_5_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_6_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_7_out2.asm | 42 +- .../hwtests/m0enable/m0_enable_ds_8_out2.asm | 42 +- .../m0_trigger_delay_1_dmg08_cgb_out0.asm | 42 +- .../m0_trigger_delay_2_dmg08_cgb_out2.asm | 42 +- .../m0enable/reenable_1_dmg08_cgb_out2.asm | 42 +- .../m0enable/reenable_2_dmg08_cgb_out2.asm | 42 +- .../m0enable/reenable_3_dmg08_cgb_out0.asm | 42 +- .../m0int_m0irq_1_dmg08_cgb_out0.asm | 42 +- .../m0int_m0irq_2_dmg08_cgb_out2.asm | 42 +- .../m0int_m0stat/m0int_m0stat_ds_1_out0.asm | 42 +- .../m0int_m0stat/m0int_m0stat_ds_2_out2.asm | 42 +- .../m0int_m0stat_scx2_1_dmg08_cgb_out0.asm | 42 +- .../m0int_m0stat_scx2_2_dmg08_cgb_out2.asm | 42 +- .../m0int_m0stat_scx3_1_dmg08_cgb_out0.asm | 42 +- .../m0int_m0stat_scx3_2_dmg08_cgb_out2.asm | 42 +- .../m0int_m0stat_scx5_ds_1_out0.asm | 42 +- .../m0int_m0stat_scx5_ds_2_out2.asm | 42 +- .../m0int_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m0int_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../m0int_m3stat/m0int_m3stat_ds_1_out3.asm | 42 +- .../m0int_m3stat/m0int_m3stat_ds_2_out0.asm | 42 +- ..._push_m1irq_late_enable_dmg08_cgb_out3.asm | 42 +- ..._push_m1irq_late_enable_dmg08_cgb_out2.asm | 42 +- ...ly148_m1irq_late_enable_dmg08_cgb_out0.asm | 42 +- ..._push_m1irq_late_enable_dmg08_cgb_out0.asm | 42 +- .../m1/lycint143_m1irq_1_dmg08_cgb_out0.asm | 42 +- .../m1/lycint143_m1irq_2_dmg08_cgb_out3.asm | 42 +- .../m1/lycint_m1intirq_1_dmg08_cgb_out3.asm | 42 +- .../m1/lycint_m1intirq_2_dmg08_cgb_out1.asm | 42 +- .../m1/lycint_m1stat_1_dmg08_cgb_out0.asm | 42 +- .../m1/lycint_m1stat_2_dmg08_cgb_out1.asm | 42 +- .../lycint_vblankintirq_1_dmg08_cgb_out1.asm | 42 +- .../lycint_vblankintirq_2_dmg08_cgb_out0.asm | 42 +- .../m1/lycint_vblankirq_1_dmg08_cgb_out0.asm | 42 +- .../m1/lycint_vblankirq_2_dmg08_cgb_out1.asm | 42 +- .../m1irq_disable_1_dmg08_out3_cgb_out1.asm | 42 +- .../m1/m1irq_disable_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/m1/m1irq_disable_ds_1_out1.asm | 42 +- .../hwtests/m1/m1irq_disable_ds_2_out3.asm | 42 +- .../m1/m1irq_enable_1_dmg08_cgb_out3.asm | 42 +- .../m1/m1irq_enable_2_dmg08_cgb_out3.asm | 42 +- .../m1/m1irq_enable_3_dmg08_cgb_out3.asm | 42 +- .../m1/m1irq_enable_4_dmg08_cgb_out3.asm | 42 +- ...q_enable_after_lyc144_1_dmg08_cgb_out1.asm | 42 +- ...ble_after_lyc144_2_dmg08_out1_cgb_out3.asm | 42 +- ...q_enable_after_lyc144_3_dmg08_cgb_out3.asm | 42 +- .../m1/m1irq_enable_after_lyc153_out2.asm | 42 +- .../hwtests/m1/m1irq_enable_ds_1_out3.asm | 42 +- .../hwtests/m1/m1irq_enable_ds_2_out3.asm | 42 +- .../hwtests/m1/m1irq_enable_ds_3_out3.asm | 42 +- .../hwtests/m1/m1irq_enable_ds_4_out3.asm | 42 +- .../m1/m1irq_late_enable_1_dmg08_cgb_out2.asm | 42 +- ...1irq_late_enable_2_dmg08_out2_cgb_out0.asm | 42 +- .../m1/m1irq_late_enable_3_dmg08_cgb_out0.asm | 42 +- .../m1/m1irq_late_enable_ds_1_out2.asm | 42 +- .../m1/m1irq_late_enable_ds_2_out0.asm | 42 +- .../m1/m1irq_m0disable_1_dmg08_cgb_out3.asm | 42 +- .../m1irq_m0disable_2_dmg08_out3_cgb_out1.asm | 42 +- .../m1/m1irq_m0disable_3_dmg08_cgb_out1.asm | 42 +- .../hwtests/m1/m1irq_m0disable_ds_1_out3.asm | 42 +- .../hwtests/m1/m1irq_m0disable_ds_2_out1.asm | 42 +- ...147++int_m1irq_enable_1_dmg08_cgb_out2.asm | 42 +- .../disable_1_dmg08_out2_cgb_out0.asm | 42 +- .../m2enable/disable_2_dmg08_cgb_out2.asm | 42 +- ...sable_by_m1enable_ly0_1_dmg08_cgb_out2.asm | 42 +- ...sable_by_m1enable_ly0_2_dmg08_cgb_out2.asm | 42 +- .../disable_by_m1enable_ly0_ds_1_out3.asm | 42 +- .../hwtests/m2enable/disable_ds_1_out1.asm | 42 +- .../hwtests/m2enable/disable_ds_2_out3.asm | 42 +- .../disable_ly0_1_dmg08_out2_cgb_out0.asm | 42 +- .../m2enable/disable_ly0_2_dmg08_cgb_out2.asm | 42 +- .../m2enable/disable_ly0_ds_1_out1.asm | 42 +- .../m2enable/disable_ly0_ds_2_out3.asm | 42 +- .../enable_after_lycint_1_dmg08_cgb_out1.asm | 42 +- .../enable_after_lycint_2_dmg08_cgb_out3.asm | 42 +- ..._after_lycint_disable_1_dmg08_cgb_out1.asm | 42 +- ..._after_lycint_disable_2_dmg08_cgb_out3.asm | 42 +- .../m2enable/late_enable_1_dmg08_cgb_out2.asm | 42 +- .../m2enable/late_enable_2_dmg08_cgb_out0.asm | 42 +- ...e_enable_after_lycint_1_dmg08_cgb_out0.asm | 42 +- ...ble_after_lycint_2_dmg08_out0_cgb_out2.asm | 42 +- ...e_enable_after_lycint_3_dmg08_cgb_out0.asm | 42 +- ...e_enable_after_lycint_4_dmg08_cgb_out0.asm | 42 +- ..._after_lycint_disable_1_dmg08_cgb_out2.asm | 42 +- ...r_lycint_disable_2_dmg08_out0_cgb_out2.asm | 42 +- ..._after_lycint_disable_3_dmg08_cgb_out0.asm | 42 +- .../m2enable/late_enable_ds_1_out2.asm | 42 +- .../m2enable/late_enable_ds_2_out0.asm | 42 +- .../late_enable_ly0_1_dmg08_cgb_out2.asm | 42 +- .../late_enable_ly0_2_dmg08_cgb_out0.asm | 42 +- .../m2enable/late_enable_ly0_ds_1_out2.asm | 42 +- .../m2enable/late_enable_ly0_ds_2_out0.asm | 42 +- ...late_enable_m0disable_1_dmg08_cgb_out2.asm | 42 +- ...enable_m0disable_2_dmg08_out0_cgb_out2.asm | 42 +- ...late_enable_m0disable_3_dmg08_cgb_out0.asm | 42 +- .../late_enable_m0disable_ds_1_out2.asm | 42 +- .../late_enable_m0disable_ds_2_out0.asm | 42 +- ..._enable_m1disable_ly0_1_dmg08_cgb_out2.asm | 42 +- ...le_m1disable_ly0_2_dmg08_out2_cgb_out0.asm | 42 +- ..._enable_m1disable_ly0_3_dmg08_cgb_out0.asm | 42 +- .../late_enable_m1disable_ly0_ds_1_out2.asm | 42 +- .../late_enable_m1disable_ly0_ds_2_out0.asm | 42 +- .../late_m1disable_ly0_1_dmg08_cgb_out2.asm | 42 +- ...te_m1disable_ly0_2_dmg08_out2_cgb_out0.asm | 42 +- .../late_m1disable_ly0_3_dmg08_cgb_out0.asm | 42 +- .../m2_late_m0disable_1_dmg08_cgb_out2.asm | 42 +- .../m2_late_m0disable_2_dmg08_cgb_out0.asm | 42 +- .../m2enable/m2_late_m0disable_ds_1_out2.asm | 42 +- .../m2enable/m2_late_m0disable_ds_2_out0.asm | 42 +- .../m2_late_m1disable_ly0_ds_1_out2.asm | 42 +- .../m2_late_m1disable_ly0_ds_2_out0.asm | 42 +- .../m2int_m0irq_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m0irq_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m0irq/m2int_m0irq_ds_1_out1.asm | 42 +- .../m2int_m0irq/m2int_m0irq_ds_2_out3.asm | 42 +- .../m2int_m0irq_scx2_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m0irq_scx2_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m0irq_scx3_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m0irq_scx3_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m0irq_scx5_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m0irq_scx5_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m0irq_scx5_ds_1_out1.asm | 42 +- .../m2int_m0irq_scx5_ds_2_out3.asm | 42 +- .../m2int_m0stat_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m0stat_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m0stat/m2int_m0stat_ds_1_out0.asm | 42 +- .../m2int_m0stat/m2int_m0stat_ds_2_out2.asm | 42 +- .../m2int_m2irq_1_dmg08_cgb_out0.asm | 42 +- .../m2int_m2irq_2_dmg08_cgb_out2.asm | 42 +- .../m2int_m2irq/m2int_m2irq_ds_1_out1.asm | 42 +- .../m2int_m2irq/m2int_m2irq_ds_2_out3.asm | 42 +- .../m2int_m2stat_1_dmg08_cgb_out2.asm | 42 +- .../m2int_m2stat_2_dmg08_cgb_out3.asm | 42 +- .../m2int_m2stat/m2int_m2stat_ds_1_out2.asm | 42 +- .../m2int_m2stat/m2int_m2stat_ds_2_out3.asm | 42 +- .../m2int_scx4_m2stat_ds_1_out2.asm | 42 +- .../m2int_scx4_m2stat_ds_2_out3.asm | 42 +- .../m2int_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../m2int_m3stat/m2int_m3stat_ds_1_out3.asm | 42 +- .../m2int_m3stat/m2int_m3stat_ds_2_out0.asm | 42 +- .../nobg/m2int_nobg_m3stat_1_out3.asm | 40 +- .../nobg/m2int_nobg_m3stat_2_out0.asm | 40 +- .../nobg/m2int_nobg_scx7_m3stat_1_out3.asm | 40 +- .../nobg/m2int_nobg_scx7_m3stat_2_out0.asm | 42 +- .../scx/late_scx4_1_dmg08_cgb_out3.asm | 42 +- .../scx/late_scx4_2_dmg08_cgb_out0.asm | 42 +- .../m2int_m3stat/scx/late_scx4_ds_1_out3.asm | 42 +- .../m2int_m3stat/scx/late_scx4_ds_2_out0.asm | 42 +- .../scx/m2int_scx1_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx1_m3stat_ds_2_out0.asm | 42 +- .../m2int_scx2_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_scx2_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../scx/m2int_scx2_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx2_m3stat_ds_2_out0.asm | 42 +- .../m2int_scx3_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_scx3_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../scx/m2int_scx3_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx3_m3stat_ds_2_out0.asm | 42 +- .../scx/m2int_scx4_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx4_m3stat_ds_2_out0.asm | 42 +- .../m2int_scx5_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_scx5_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../scx/m2int_scx5_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx5_m3stat_ds_2_out0.asm | 42 +- .../scx/m2int_scx6_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx6_m3stat_ds_2_out0.asm | 42 +- .../scx/m2int_scx7_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx7_m3stat_ds_2_out0.asm | 42 +- .../scx/m2int_scx8_m3stat_ds_1_out3.asm | 42 +- .../scx/m2int_scx8_m3stat_ds_2_out0.asm | 42 +- .../lycflag_statwirq_1_dmg08_out2.asm | 40 +- .../lycflag_statwirq_2_dmg08_out2.asm | 40 +- .../lycflag_statwirq_3_dmg08_out2.asm | 40 +- .../lycflag_statwirq_4_dmg08_out0.asm | 40 +- ...wirq_trigger_00_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_40_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_00_bf_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_ff_dmg08_out2_cgb_out2.asm | 42 +- ...cstatwirq_trigger_40_00_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_40_40_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_40_bf_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_40_ff_dmg08_cgb_out0.asm | 42 +- ...wirq_trigger_bf_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_bf_40_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_bf_bf_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_bf_ff_dmg08_out2_cgb_out2.asm | 42 +- ...cstatwirq_trigger_ff_00_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_ff_40_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_ff_bf_dmg08_cgb_out0.asm | 42 +- ...cstatwirq_trigger_ff_ff_dmg08_cgb_out0.asm | 42 +- ...q_trigger_ly00_10_50_1_dmg08_cgb_outE0.asm | 66 +-- ...q_trigger_ly00_10_50_2_dmg08_cgb_outE2.asm | 66 +-- ...statwirq_trigger_ly00_10_50_ds_1_outE0.asm | 66 +-- ...statwirq_trigger_ly00_10_50_ds_2_outE2.asm | 66 +-- ...irq_trigger_ly94_00_50_dmg08_cgb_outE2.asm | 66 +-- ...irq_trigger_ly94_10_40_dmg08_cgb_outE0.asm | 66 +-- ...irq_trigger_ly94_10_50_dmg08_cgb_outE0.asm | 66 +-- ...rly_ly44_lyc44_08_40_1_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_2_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_3_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_4_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_5_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_6_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_7_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_8_dmg08_cgb_outE2.asm | 66 +-- ...rly_ly44_lyc44_08_40_9_dmg08_cgb_outE0.asm | 66 +-- ...ate_ly44_lyc44_08_40_1_dmg08_cgb_outE0.asm | 66 +-- ...ate_ly44_lyc44_08_40_2_dmg08_cgb_outE0.asm | 66 +-- ...ate_ly44_lyc44_08_40_3_dmg08_cgb_outE0.asm | 66 +-- ...ate_ly44_lyc44_08_40_4_dmg08_cgb_outE0.asm | 66 +-- ...er_m0_late_ly44_lyc44_08_40_ds_1_outE0.asm | 66 +-- ...er_m0_late_ly44_lyc44_08_40_ds_2_outE0.asm | 66 +-- ...er_m0_late_ly44_lyc44_08_40_ds_3_outE2.asm | 66 +-- ...er_m0_late_ly44_lyc44_08_40_ds_4_outE0.asm | 66 +-- ...er_m0_ly44_lyc44_00_40_dmg08_cgb_outE2.asm | 66 +-- ...er_m0_ly44_lyc44_00_48_dmg08_cgb_outE2.asm | 66 +-- ...er_m0_ly44_lyc44_08_40_dmg08_cgb_outE0.asm | 66 +-- ...er_m0_ly44_lyc44_08_48_dmg08_cgb_outE0.asm | 66 +-- ...er_m0_ly44_lyc44_08_ff_dmg08_cgb_outE0.asm | 66 +-- ...er_m0_ly44_lyc44_b7_40_dmg08_cgb_outE2.asm | 66 +-- ...er_m0_ly44_lyc44_b7_f7_dmg08_cgb_outE2.asm | 66 +-- ...er_m0_ly44_lyc44_bf_40_dmg08_cgb_outE0.asm | 66 +-- ...er_m0_ly44_lyc44_bf_ff_dmg08_cgb_outE0.asm | 66 +-- ...rigger_m0_early_ly44_1_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_2_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_3_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_4_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_5_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_6_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_7_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_8_dmg08_cgb_outE2.asm | 66 +-- ...rigger_m0_early_ly44_9_dmg08_cgb_outE0.asm | 66 +-- ...trigger_m0_late_ly44_1_dmg08_cgb_outE0.asm | 66 +-- ...trigger_m0_late_ly44_2_dmg08_cgb_outE0.asm | 66 +-- ...trigger_m0_late_ly44_3_dmg08_cgb_outE0.asm | 66 +-- ...trigger_m0_late_ly44_4_dmg08_cgb_outE0.asm | 66 +-- ...ycwirq_trigger_m0_late_ly44_ds_1_outE0.asm | 66 +-- ...ycwirq_trigger_m0_late_ly44_ds_2_outE0.asm | 66 +-- ...ycwirq_trigger_m0_late_ly44_ds_3_outE0.asm | 66 +-- ...ycwirq_trigger_m0_late_ly44_ds_4_outE0.asm | 66 +-- ...r_m0_late_ly44_lyc45_1_dmg08_cgb_outE2.asm | 66 +-- ...r_m0_late_ly44_lyc45_2_dmg08_cgb_outE2.asm | 66 +-- ...r_m0_late_ly44_lyc45_3_dmg08_cgb_outE2.asm | 66 +-- ...r_m0_late_ly44_lyc45_4_dmg08_cgb_outE2.asm | 66 +-- ...r_m0_late_ly44_lyc45_5_dmg08_cgb_outE2.asm | 66 +-- ..._trigger_m0_late_ly44_lyc45_ds_1_outE2.asm | 66 +-- ..._trigger_m0_late_ly44_lyc45_ds_2_outE2.asm | 66 +-- ..._trigger_m0_late_ly44_lyc45_ds_3_outE2.asm | 66 +-- ..._trigger_m0_late_ly44_lyc45_ds_4_outE2.asm | 66 +-- .../miscmstatirq/m0statwirq_1_dmg08_out2.asm | 40 +- .../miscmstatirq/m0statwirq_2_dmg08_out0.asm | 40 +- .../miscmstatirq/m0statwirq_3_dmg08_out0.asm | 40 +- .../miscmstatirq/m0statwirq_4_dmg08_out2.asm | 40 +- .../m0statwirq_scx2_1_dmg08_out0.asm | 40 +- .../m0statwirq_scx2_2_dmg08_out2.asm | 40 +- .../m0statwirq_scx3_1_dmg08_out0.asm | 40 +- .../m0statwirq_scx3_2_dmg08_out2.asm | 40 +- .../m0statwirq_scx5_1_dmg08_out0.asm | 40 +- .../m0statwirq_scx5_2_dmg08_out2.asm | 40 +- ...wirq_trigger_00_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_08_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_00_f7_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_ff_dmg08_out2_cgb_out2.asm | 42 +- ...0statwirq_trigger_08_00_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_08_08_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_08_f7_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_08_ff_dmg08_cgb_out0.asm | 42 +- ...wirq_trigger_f7_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_f7_08_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_f7_f7_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_f7_ff_dmg08_out2_cgb_out2.asm | 42 +- ...0statwirq_trigger_ff_00_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_ff_08_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_ff_f7_dmg08_cgb_out0.asm | 42 +- ...0statwirq_trigger_ff_ff_dmg08_cgb_out0.asm | 42 +- ...igger_ly44_lyc44_00_08_dmg08_cgb_outE2.asm | 66 +-- ...igger_ly44_lyc44_40_08_dmg08_cgb_outE0.asm | 66 +-- ...igger_ly44_lyc44_40_48_dmg08_cgb_outE0.asm | 66 +-- .../miscmstatirq/m1statwirq_1_dmg08_out3.asm | 40 +- .../miscmstatirq/m1statwirq_2_dmg08_out3.asm | 40 +- .../miscmstatirq/m1statwirq_3_dmg08_out2.asm | 40 +- .../miscmstatirq/m1statwirq_4_dmg08_out0.asm | 40 +- ...wirq_trigger_00_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_10_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_00_ef_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_00_ff_dmg08_out2_cgb_out2.asm | 42 +- ...1statwirq_trigger_10_00_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_10_10_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_10_ef_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_10_ff_dmg08_cgb_out0.asm | 42 +- ...wirq_trigger_ef_00_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_ef_10_dmg08_out2_cgb_out2.asm | 42 +- ...wirq_trigger_ef_ef_dmg08_out2_cgb_out0.asm | 42 +- ...wirq_trigger_ef_ff_dmg08_out2_cgb_out2.asm | 42 +- ...1statwirq_trigger_ff_00_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_ff_10_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_ff_ef_dmg08_cgb_out0.asm | 42 +- ...1statwirq_trigger_ff_ff_dmg08_cgb_out0.asm | 42 +- ...igger_ly94_lyc94_00_10_dmg08_cgb_outE2.asm | 66 +-- ...igger_ly94_lyc94_00_50_dmg08_cgb_outE2.asm | 66 +-- ...igger_ly94_lyc94_40_10_dmg08_cgb_outE0.asm | 66 +-- ...ger_ly94_lyc94_40_50_1_dmg08_cgb_outE0.asm | 66 +-- ...94_lyc94_40_50_2_dmg08_outE0_cgb_outE2.asm | 66 +-- ...ger_ly94_lyc94_40_50_3_dmg08_cgb_outE2.asm | 66 +-- ...igger_ly94_lyc94_40_50_dmg08_cgb_outE0.asm | 66 +-- ...rq_trigger_ly94_lyc94_40_50_ds_1_outE0.asm | 66 +-- ...rq_trigger_ly94_lyc94_40_50_ds_2_outE2.asm | 66 +-- .../m2disable_dmg08_cgb_dmg08_out0.asm | 40 +- ...2statwirq_trigger_00_00_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_00_20_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_00_df_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_00_ff_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_20_00_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_20_20_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_20_df_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_20_ff_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_df_00_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_df_20_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_df_df_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_df_ff_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_ff_00_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_ff_20_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_ff_df_dmg08_cgb_out0.asm | 42 +- ...2statwirq_trigger_ff_ff_dmg08_cgb_out0.asm | 42 +- ...pritesprline_postread_1_dmg08_cgb_out3.asm | 42 +- ...pritesprline_postread_2_dmg08_cgb_out0.asm | 42 +- .../oam_access/postread_1_dmg08_cgb_out3.asm | 42 +- .../oam_access/postread_2_dmg08_cgb_out0.asm | 42 +- .../hwtests/oam_access/postread_ds_1_out3.asm | 42 +- .../hwtests/oam_access/postread_ds_2_out0.asm | 42 +- .../postread_scx2_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx2_2_dmg08_cgb_out0.asm | 42 +- .../postread_scx3_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx3_2_dmg08_xout1_cgb_out0.asm | 42 +- .../postread_scx3_3_dmg08_cgb_out0.asm | 42 +- .../postread_scx5_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx5_2_dmg08_cgb_out0.asm | 42 +- .../oam_access/postread_scx5_ds_1_out3.asm | 42 +- .../oam_access/postread_scx5_ds_2_out0.asm | 42 +- .../oam_access/postwrite_1_dmg08_cgb_out0.asm | 42 +- .../oam_access/postwrite_2_dmg08_cgb_out1.asm | 42 +- .../postwrite_2_scx3_dmg08_cgb_out1.asm | 42 +- .../oam_access/postwrite_ds_1_out0.asm | 42 +- .../oam_access/postwrite_ds_2_out1.asm | 42 +- .../oam_access/postwrite_scx1_ds_1_out0.asm | 42 +- .../oam_access/postwrite_scx1_ds_2_out1.asm | 42 +- .../oam_access/preread_1_dmg08_cgb_out0.asm | 42 +- .../oam_access/preread_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/oam_access/preread_ds_1_out0.asm | 42 +- .../hwtests/oam_access/preread_ds_2_out3.asm | 42 +- .../oam_access/prewrite_1_dmg08_cgb_out1.asm | 42 +- .../prewrite_2_dmg08_out1_cgb_out0.asm | 42 +- .../oam_access/prewrite_3_dmg08_cgb_out0.asm | 42 +- .../hwtests/oam_access/prewrite_ds_1_out1.asm | 42 +- .../hwtests/oam_access/prewrite_ds_2_out0.asm | 42 +- .../oamdma/late_sp00x_1_dmg08_cgb_out0.asm | 46 +- .../oamdma/late_sp00x_2_dmg08_cgb_out3.asm | 46 +- .../hwtests/oamdma/late_sp00x_ds_1_out0.asm | 46 +- .../hwtests/oamdma/late_sp00x_ds_2_out3.asm | 46 +- .../oamdma/late_sp00y_1_dmg08_cgb_out3.asm | 46 +- .../oamdma/late_sp00y_2_dmg08_cgb_out0.asm | 46 +- .../hwtests/oamdma/late_sp00y_ds_1_out3.asm | 46 +- .../hwtests/oamdma/late_sp00y_ds_2_out0.asm | 46 +- .../oamdma/late_sp01x_1_dmg08_cgb_out0.asm | 46 +- .../oamdma/late_sp01x_2_dmg08_cgb_out3.asm | 46 +- .../hwtests/oamdma/late_sp01x_ds_1_out0.asm | 46 +- .../hwtests/oamdma/late_sp01x_ds_2_out3.asm | 46 +- .../oamdma/late_sp01y_1_dmg08_cgb_out3.asm | 46 +- .../oamdma/late_sp01y_2_dmg08_cgb_out0.asm | 46 +- .../hwtests/oamdma/late_sp01y_ds_1_out3.asm | 46 +- .../hwtests/oamdma/late_sp01y_ds_2_out0.asm | 46 +- .../oamdma/late_sp02x_1_dmg08_cgb_out0.asm | 46 +- .../oamdma/late_sp02x_2_dmg08_cgb_out3.asm | 46 +- .../oamdma/late_sp02y_1_dmg08_cgb_out3.asm | 46 +- .../oamdma/late_sp02y_2_dmg08_cgb_out0.asm | 46 +- .../oamdma/late_sp39x_1_dmg08_cgb_out0.asm | 46 +- .../oamdma/late_sp39x_2_dmg08_cgb_out3.asm | 46 +- .../hwtests/oamdma/late_sp39x_3_out0.asm | 46 +- .../hwtests/oamdma/late_sp39x_4_out3.asm | 46 +- .../hwtests/oamdma/late_sp39x_ds_1_out0.asm | 46 +- .../hwtests/oamdma/late_sp39x_ds_2_out3.asm | 46 +- .../oamdma/late_sp39y_1_dmg08_cgb_out3.asm | 46 +- .../oamdma/late_sp39y_2_dmg08_cgb_out0.asm | 46 +- .../hwtests/oamdma/late_sp39y_ds_1_out3.asm | 46 +- .../hwtests/oamdma/late_sp39y_ds_2_out0.asm | 46 +- .../oamdma_busydelay_1_dmg08_cgb_out5.asm | 42 +- ..._src0000_busyread0000_1_dmg08_cgb_out4.asm | 46 +- ..._src0000_busyread0000_2_dmg08_cgb_out5.asm | 46 +- ..._src0000_busyread0000_3_dmg08_cgb_out1.asm | 46 +- ..._src0000_busyread0000_4_dmg08_cgb_out5.asm | 46 +- .../oamdma_src0000_busyread0000_ds_1_out4.asm | 46 +- .../oamdma_src0000_busyread0000_ds_2_out5.asm | 46 +- .../oamdma_src0000_busyread0000_ds_3_out1.asm | 46 +- ...ma_src0000_busyread8000_dmg08_cgb_out1.asm | 46 +- ..._src0000_busyreadA000_1_dmg08_cgb_out5.asm | 46 +- ..._src0000_busyreadA000_2_dmg08_cgb_out1.asm | 46 +- ...000_busyreadC000_1_dmg08_out5_cgb_out1.asm | 46 +- ..._src0000_busyreadC000_2_dmg08_cgb_out1.asm | 46 +- ..._src0000_busyreadFE00_1_dmg08_cgb_out0.asm | 46 +- ..._src0000_busyreadFE00_2_dmg08_cgb_out2.asm | 46 +- ...ma_src0000_busyreadFF4B_dmg08_cgb_out1.asm | 46 +- ...src0000_rombankchange_1_dmg08_cgb_out4.asm | 46 +- ...src0000_rombankchange_2_dmg08_cgb_out0.asm | 46 +- ...rc0000_srambankchange_1_dmg08_cgb_out4.asm | 46 +- ...rc0000_srambankchange_2_dmg08_cgb_out0.asm | 46 +- .../oamdma_src0000_wrambankchange_out0.asm | 46 +- ...ma_src8000_busyread0000_dmg08_cgb_out1.asm | 46 +- ..._src8000_busyread8000_1_dmg08_cgb_out5.asm | 46 +- ..._src8000_busyread8000_2_dmg08_cgb_out1.asm | 46 +- ...ma_src8000_busyreadA000_dmg08_cgb_out1.asm | 46 +- ...ma_src8000_busyreadC000_dmg08_cgb_out1.asm | 46 +- ...a_src8000_busywrite8000_dmg08_cgb_out0.asm | 46 +- ...ange0000_busyread0000_1_dmg08_cgb_out5.asm | 46 +- ...ange0000_busyread0000_2_dmg08_cgb_out1.asm | 46 +- ...changeC000_busyread8000_dmg08_cgb_out1.asm | 46 +- .../oamdma_src8000_vrambankchange_1_out0.asm | 46 +- .../oamdma_src8000_vrambankchange_2_out4.asm | 46 +- .../oamdma_src8000_vrambankchange_3_out0.asm | 46 +- .../oamdma_src8000_vrambankchange_4_out3.asm | 46 +- .../oamdma/oamdma_src80_oambusy_dumper_1.asm | 46 +- ..._srcA000_busyread0000_1_dmg08_cgb_out5.asm | 46 +- ..._srcA000_busyread0000_2_dmg08_cgb_out1.asm | 46 +- ...000_busyreadC000_1_dmg08_out5_cgb_out1.asm | 46 +- ..._srcA000_busyreadC000_2_dmg08_cgb_out1.asm | 46 +- ...a_srcA000_busywrite4000_dmg08_cgb_out2.asm | 46 +- ...rcA000_srambankchange_1_dmg08_cgb_out4.asm | 46 +- ...rcA000_srambankchange_2_dmg08_cgb_out0.asm | 46 +- ...000_busyreadA000_1_dmg08_out5_cgb_out1.asm | 46 +- ..._srcC000_busyreadA000_2_dmg08_cgb_out1.asm | 46 +- ...0_srambankchange_1_dmg08_out4_cgb_out0.asm | 46 +- ...rcC000_srambankchange_2_dmg08_cgb_out0.asm | 46 +- .../oamdma/oamdma_srcC0_oambusy_dumper_1.asm | 46 +- .../oamdma_srcD000_wrambankchange_1_out0.asm | 46 +- .../oamdma_srcD000_wrambankchange_2_out4.asm | 46 +- ...oamdma_srcDF00_readFE00_dmg08_cgb_out2.asm | 46 +- ...a_srcE000_readFE00_dmg08_out2_cgb_out0.asm | 46 +- ...000_busyread0000_1_dmg08_out9_cgb_out0.asm | 46 +- ..._srcF000_busyread0000_2_dmg08_cgb_out3.asm | 46 +- ...ma_srcF000_busyread8000_dmg08_cgb_out3.asm | 44 +- ...cF000_busyreadA000_dmg08_out6_cgb_out0.asm | 44 +- ..._busyreadC000_dmg08_out6_cgb_xoutblank.asm | 44 +- ...a_srcFD00_readFE00_dmg08_out2_cgb_out0.asm | 46 +- ...ma_srcFE00_busyread0000_dmg08_cgb_out0.asm | 46 +- ...ma_srcFE00_busyread8000_dmg08_cgb_out3.asm | 44 +- ...ma_srcFE00_busyreadA000_dmg08_cgb_out0.asm | 44 +- ..._busyreadC000_dmg08_out0_cgb_xoutblank.asm | 44 +- ...oamdma_srcFE00_readFE00_dmg08_cgb_out0.asm | 46 +- ...cFF00_busyread0000_dmg08_out1_cgb_out0.asm | 46 +- ...ma_srcFF00_busyread8000_dmg08_cgb_out3.asm | 44 +- ...cFF00_busyreadA000_dmg08_out1_cgb_out0.asm | 44 +- ..._busyreadC000_dmg08_out1_cgb_xoutblank.asm | 44 +- ...ma_srcFF00_busyreadFF4B_dmg08_cgb_out3.asm | 44 +- ...a_srcFF00_readFE00_dmg08_out1_cgb_out0.asm | 46 +- ...a_srcFF00_readFE45_dmg08_out1_cgb_out0.asm | 46 +- ...00_gdmasrcC000_2xgdmalen09_oamdumper_1.asm | 46 +- ...0_gdmasrcC000_2xgdmalen09_vramdumper_1.asm | 46 +- ...C000_gdmasrc0000_gdmalen04_oamdumper_1.asm | 42 +- ...0_gdmasrc0000_gdmalen04_oamdumper_ds_1.asm | 42 +- ...0_gdmasrc0000_gdmalen13_oamdumper_ds_1.asm | 42 +- ..._gdmasrc0000_gdmalen13_vramdumper_ds_1.asm | 42 +- ...00_gdmasrcC000_2xgdmalen09_oamdumper_1.asm | 46 +- ...0_gdmasrcC000_2xgdmalen09_vramdumper_1.asm | 46 +- ...C000_gdmasrcC000_gdmalen09_oamdumper_1.asm | 46 +- ...000_gdmasrcC000_gdmalen09_vramdumper_1.asm | 46 +- ...C000_gdmasrcC000_gdmalen13_oamdumper_1.asm | 46 +- ...C000_gdmasrcC000_gdmalen13_oamdumper_2.asm | 46 +- ...0_gdmasrcC000_gdmalen13_oamdumper_ds_1.asm | 46 +- ...0_gdmasrcC000_gdmalen13_oamdumper_ds_2.asm | 46 +- ...0_gdmasrcC000_gdmalen13_oamdumper_ds_3.asm | 46 +- ...000_gdmasrcC000_gdmalen13_vramdumper_1.asm | 46 +- ..._gdmasrcC000_gdmalen13_vramdumper_ds_1.asm | 46 +- ...C000_gdmasrcC0F0_gdmalen13_oamdumper_1.asm | 46 +- ...000_gdmasrcC0F0_gdmalen13_vramdumper_1.asm | 46 +- .../old/offset_3/scx_during_m3_ds_1.asm | 2 +- .../old/offset_3/scx_during_m3_ds_2.asm | 2 +- .../old/offset_3/scx_during_m3_ds_3.asm | 2 +- .../old/offset_3/scx_during_m3_ds_4.asm | 2 +- .../old/offset_3/scx_during_m3_ds_5.asm | 2 +- .../old/offset_3/scx_during_m3_ds_6.asm | 2 +- .../old/offset_3/scx_during_m3_ds_7.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_1.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_2.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_3.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_4.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_5.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_6.asm | 2 +- .../old/revoffset_3/scx_during_m3_ds_7.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_1.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_2.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_3.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_4.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_5.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_6.asm | 2 +- .../scx_during_m3/old/scx_during_m3_ds_7.asm | 2 +- .../scx_during_m3/scx1_scx0_during_m3_1.asm | 2 +- .../scx_during_m3/scx2_scx0_during_m3_1.asm | 2 +- .../scx_during_m3/scx2_scx1_during_m3_1.asm | 2 +- .../scx_0060c0/scx_during_m3_1.asm | 2 +- .../scx_0060c0/scx_during_m3_2.asm | 2 +- .../scx_0060c0/scx_during_m3_3.asm | 2 +- .../scx_0060c0/scx_during_m3_4.asm | 2 +- .../scx_0060c0/scx_during_m3_5.asm | 2 +- .../scx_0060c0/scx_during_m3_6.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0060c0/scx_during_m3_ds_8.asm | 2 +- .../scx_0063c0/scx_during_m3_1.asm | 2 +- .../scx_0063c0/scx_during_m3_2.asm | 2 +- .../scx_0063c0/scx_during_m3_3.asm | 2 +- .../scx_0063c0/scx_during_m3_4.asm | 2 +- .../scx_0063c0/scx_during_m3_5.asm | 2 +- .../scx_0063c0/scx_during_m3_6.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0063c0/scx_during_m3_ds_8.asm | 2 +- .../scx_0360c0/scx_during_m3_1.asm | 2 +- .../scx_0360c0/scx_during_m3_2.asm | 2 +- .../scx_0360c0/scx_during_m3_3.asm | 2 +- .../scx_0360c0/scx_during_m3_4.asm | 2 +- .../scx_0360c0/scx_during_m3_5.asm | 2 +- .../scx_0360c0/scx_during_m3_6.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0360c0/scx_during_m3_ds_8.asm | 2 +- .../scx_0363c0/scx_during_m3_1.asm | 2 +- .../scx_0363c0/scx_during_m3_2.asm | 2 +- .../scx_0363c0/scx_during_m3_3.asm | 2 +- .../scx_0363c0/scx_during_m3_4.asm | 2 +- .../scx_0363c0/scx_during_m3_5.asm | 2 +- .../scx_0363c0/scx_during_m3_6.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0363c0/scx_during_m3_ds_8.asm | 2 +- .../scx_0367c0/scx_during_m3_1.asm | 2 +- .../scx_0367c0/scx_during_m3_2.asm | 2 +- .../scx_0367c0/scx_during_m3_3.asm | 2 +- .../scx_0367c0/scx_during_m3_4.asm | 2 +- .../scx_0367c0/scx_during_m3_5.asm | 2 +- .../scx_0367c0/scx_during_m3_6.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0367c0/scx_during_m3_ds_8.asm | 2 +- .../scx_0761c0/scx_during_m3_1.asm | 2 +- .../scx_0761c0/scx_during_m3_2.asm | 2 +- .../scx_0761c0/scx_during_m3_3.asm | 2 +- .../scx_0761c0/scx_during_m3_4.asm | 2 +- .../scx_0761c0/scx_during_m3_5.asm | 2 +- .../scx_0761c0/scx_during_m3_6.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_1.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_2.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_3.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_4.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_5.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_6.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_7.asm | 2 +- .../scx_0761c0/scx_during_m3_ds_8.asm | 2 +- .../scx_attrib_during_m3_spx0.asm | 2 +- .../scx_attrib_during_m3_spx1.asm | 2 +- .../scx_attrib_during_m3_spx1_ds.asm | 2 +- .../scx_attrib_during_m3_spx2_ds.asm | 2 +- .../scx_during_m3/scx_during_m3_spx0.asm | 2 +- .../scx_during_m3/scx_during_m3_spx1.asm | 2 +- .../scx_during_m3/scx_during_m3_spx2.asm | 2 +- .../scx_during_m3/scx_during_m3_spx2_ds.asm | 2 +- .../scx_m3_extend_1_dmg08_cgb_out3.asm | 42 +- .../scx_m3_extend_2_dmg08_cgb_out0.asm | 42 +- .../scx_during_m3/scx_m3_extend_ds_1_out3.asm | 42 +- .../scx_during_m3/scx_m3_extend_ds_2_out0.asm | 42 +- .../hwtests/scy/scx3/scy_during_m3_1.asm | 2 +- .../hwtests/scy/scx3/scy_during_m3_2.asm | 2 +- .../hwtests/scy/scx3/scy_during_m3_3.asm | 2 +- .../hwtests/scy/scx3/scy_during_m3_4.asm | 2 +- .../hwtests/scy/scx3/scy_during_m3_5.asm | 2 +- .../hwtests/scy/scx3/scy_during_m3_6.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_1.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_2.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_3.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_4.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_5.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_6.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_1.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_2.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_3.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_4.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_5.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_6.asm | 2 +- testrunner/hwtests/scy/scy_during_m3_ds_7.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_4.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_ds_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_ds_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_ds_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx08_ds_4.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_4.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_ds_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_ds_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_ds_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx09_ds_4.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0A_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0A_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0A_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0A_4.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0B_1.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0B_2.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0B_3.asm | 2 +- .../hwtests/scy/scy_during_m3_spx0B_4.asm | 2 +- ...wait_restart_read_if_1_dmg08_cgb_outE0.asm | 2 +- ...wait_restart_read_if_2_dmg08_cgb_outE8.asm | 2 +- .../m2int_m3stat_lcdoffds_1_out3.asm | 42 +- .../m2int_m3stat_lcdoffds_2_out0.asm | 42 +- .../m2int_m3stat_scx1_lcdoffds_1_out3.asm | 42 +- .../m2int_m3stat_scx1_lcdoffds_2_out0.asm | 42 +- .../speedchange2_ly44_m3_ly_1_out25.asm | 66 +-- .../speedchange2_ly44_m3_stat_1_outC3.asm | 66 +-- .../speedchange2_ly44_m3_stat_2_outC0.asm | 66 +-- .../speedchange2_ly44_m3_stat_3_outC0.asm | 66 +-- .../speedchange2_ly44_m3_stat_4_outC2.asm | 66 +-- .../speedchange2_tima00_1_out00.asm | 66 +-- .../speedchange2_tima01_1_out0A.asm | 66 +-- .../speedchange2_tima01_2_out0B.asm | 66 +-- .../speedchange_lcdoff_tima00_1_out80.asm | 66 +-- .../speedchange_lcdoff_tima01_1_out08.asm | 66 +-- .../speedchange_lcdoff_tima01_2_out09.asm | 66 +-- .../speedchange_ly44_m3_ly_out39.asm | 66 +-- .../speedchange_ly44_m3_stat_1_outC0.asm | 66 +-- .../speedchange_ly44_m3_stat_2_outC2.asm | 66 +-- .../speedchange_ly44_m3_stat_outC0.asm | 66 +-- .../speedchange/speedchange_ly97_ly_out8C.asm | 66 +-- .../speedchange_ly97_stat_outC0.asm | 66 +-- .../speedchange_tima00_1_out80.asm | 66 +-- .../speedchange_tima01_1_out08.asm | 66 +-- .../speedchange_tima01_2_out09.asm | 66 +-- ...PrLine_10xposA6_m0irq_1_dmg08_cgb_out0.asm | 42 +- ...PrLine_10xposA6_m0irq_2_dmg08_cgb_out2.asm | 42 +- ...PrLine_10xposA7_m0irq_1_dmg08_cgb_out0.asm | 42 +- ...PrLine_10xposA7_m0irq_2_dmg08_cgb_out2.asm | 42 +- ...rLine_10xposA7_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...rLine_10xposA7_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...sPrLine_1xpos0_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...sPrLine_1xpos0_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...PrLine_1xposA8_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...PrLine_1xposA8_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...0spritesPrLine_m2stat_1_dmg08_cgb_out2.asm | 42 +- ...0spritesPrLine_m2stat_2_dmg08_cgb_out3.asm | 42 +- ...0spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...0spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../10spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa0_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa0_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa1_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa1_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa2_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa2_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa3_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa3_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa4_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa4_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa5_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa5_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa6_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa6_m3stat_ds_2_out0.asm | 42 +- ...spritesprline_1xposa7_m3stat_ds_1_out3.asm | 42 +- ...spritesprline_1xposa7_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap1_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap1_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap2_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap2_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap3_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap3_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap4_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap4_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap5_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap5_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap6_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap6_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap7_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap7_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_2overlap8_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_2overlap8_m3stat_ds_2_out0.asm | 42 +- ...rline_2xposa2overlap8_m3stat_ds_1_out3.asm | 42 +- ...rline_2xposa2overlap8_m3stat_ds_2_out0.asm | 42 +- ...rline_2xposa7overlap8_m3stat_ds_1_out3.asm | 42 +- ...rline_2xposa7overlap8_m3stat_ds_2_out0.asm | 42 +- ...ritesprline_3overlap8_m3stat_ds_1_out3.asm | 42 +- ...ritesprline_3overlap8_m3stat_ds_2_out0.asm | 42 +- ...0spritesprline_m0stat_1_dmg08_cgb_out0.asm | 42 +- ...0spritesprline_m0stat_2_dmg08_cgb_out2.asm | 42 +- .../sprites/11spritesPrLine_10xposA8.asm | 42 +- ...Line_1sprite8pBgCover_m3stat_ds_1_out3.asm | 42 +- ...Line_1sprite8pBgCover_m3stat_ds_2_out0.asm | 42 +- ...Line_1sprite8pBgPrior_m3stat_ds_1_out3.asm | 42 +- ...Line_1sprite8pBgPrior_m3stat_ds_2_out0.asm | 42 +- ...1spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...1spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../1spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../1spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...PrLine_offset7_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...PrLine_offset7_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...e_scx1_offset7_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...e_scx1_offset7_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...sPrLine_xpos01_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...sPrLine_xpos01_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...ne_xpos01_scx4_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...ne_xpos01_scx4_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...sPrLine_xpos07_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...sPrLine_xpos07_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...ne_xpos09_scx4_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...ne_xpos09_scx4_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...2spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../2spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../2spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...3spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...3spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../3spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../3spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...4spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...4spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../4spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../4spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...5spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...5spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../5spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../5spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...6spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...6spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../6spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../6spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...7spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...7spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../7spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../7spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...8spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...8spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../8spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../8spritesPrLine_m3stat_ds_2_out0.asm | 42 +- ...9spritesPrLine_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...9spritesPrLine_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../9spritesPrLine_m3stat_ds_1_out3.asm | 42 +- .../9spritesPrLine_m3stat_ds_2_out0.asm | 42 +- .../sprites/enable/late_disable_ds_1_out3.asm | 42 +- .../sprites/enable/late_disable_ds_2_out3.asm | 42 +- .../sprites/enable/late_disable_ds_3_out3.asm | 42 +- .../sprites/enable/late_disable_ds_4_out0.asm | 42 +- .../sprites/late_disable_1_dmg08_out0.asm | 40 +- .../sprites/late_disable_2_dmg08_out3.asm | 40 +- .../sprites/late_disable_ds_1_out3.asm | 42 +- .../sprites/late_disable_group_image_1.asm | 40 +- .../sprites/late_disable_group_image_2.asm | 40 +- .../sprites/late_disable_group_image_3.asm | 40 +- .../sprites/late_disable_group_image_4.asm | 40 +- .../sprites/late_disable_group_image_5.asm | 40 +- .../sprites/late_disable_group_image_6.asm | 40 +- .../sprites/late_disable_group_image_7.asm | 40 +- .../sprites/late_disable_group_image_8.asm | 40 +- .../sprites/late_disable_group_image_9.asm | 40 +- .../hwtests/sprites/late_disable_scx5_1.asm | 40 +- .../hwtests/sprites/late_disable_scx5_2.asm | 40 +- .../sprites/late_disable_sp00x18_1.asm | 40 +- .../sprites/late_disable_sp00x18_2.asm | 40 +- ...late_sizechange2_sp00_1_dmg08_cgb_out3.asm | 42 +- ...late_sizechange2_sp00_2_dmg08_cgb_out0.asm | 42 +- .../late_sizechange2_sp00_ds_1_out3.asm | 42 +- .../late_sizechange2_sp00_ds_2_out0.asm | 42 +- ...late_sizechange2_sp01_1_dmg08_cgb_out3.asm | 42 +- ...late_sizechange2_sp01_2_dmg08_cgb_out0.asm | 42 +- .../late_sizechange2_sp01_ds_1_out3.asm | 42 +- .../late_sizechange2_sp01_ds_2_out0.asm | 42 +- ...late_sizechange2_sp02_1_dmg08_cgb_out3.asm | 42 +- ...late_sizechange2_sp02_2_dmg08_cgb_out0.asm | 42 +- ...late_sizechange2_sp39_1_dmg08_cgb_out3.asm | 42 +- ...late_sizechange2_sp39_2_dmg08_cgb_out0.asm | 42 +- .../late_sizechange2_sp39_ds_1_out3.asm | 42 +- .../late_sizechange2_sp39_ds_2_out0.asm | 42 +- .../late_sizechange_1_dmg08_cgb_out0.asm | 42 +- .../late_sizechange_2_dmg08_out0_cgb_out3.asm | 42 +- .../late_sizechange_3_dmg08_cgb_out3.asm | 42 +- .../sprites/late_sizechange_ds_1_out0.asm | 42 +- .../sprites/late_sizechange_ds_2_out3.asm | 42 +- .../late_sizechange_sp00_1_dmg08_cgb_out0.asm | 42 +- .../late_sizechange_sp00_2_dmg08_cgb_out3.asm | 42 +- .../late_sizechange_sp00_3_dmg08_cgb_out3.asm | 42 +- .../late_sizechange_sp00_4_dmg08_cgb_out0.asm | 42 +- .../late_sizechange_sp00_ds_1_out0.asm | 42 +- .../late_sizechange_sp00_ds_2_out3.asm | 42 +- .../late_sizechange_sp01_1_dmg08_cgb_out0.asm | 42 +- ..._sizechange_sp01_2_dmg08_out0_cgb_out3.asm | 42 +- .../late_sizechange_sp01_3_dmg08_cgb_out3.asm | 42 +- .../late_sizechange_sp01_ds_1_out0.asm | 42 +- .../late_sizechange_sp01_ds_2_out3.asm | 42 +- .../late_sizechange_sp02_1_dmg08_cgb_out0.asm | 42 +- .../late_sizechange_sp02_2_dmg08_cgb_out3.asm | 42 +- .../late_sizechange_sp39_1_dmg08_cgb_out0.asm | 42 +- ..._sizechange_sp39_2_dmg08_out0_cgb_out3.asm | 42 +- .../late_sizechange_sp39_3_dmg08_cgb_out3.asm | 42 +- .../late_sizechange_sp39_ds_1_out0.asm | 42 +- .../late_sizechange_sp39_ds_2_out3.asm | 42 +- .../sprites/mix_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../sprites/mix_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../hwtests/sprites/mix_m3stat_ds_1_out3.asm | 42 +- .../hwtests/sprites/mix_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_late_scx4_ds_1_out0.asm | 42 +- .../10spritesPrLine_late_scx4_ds_2_out3.asm | 42 +- ...tesPrLine_nr10space10_m3stat_ds_1_out3.asm | 42 +- ...tesPrLine_nr10space10_m3stat_ds_2_out0.asm | 42 +- ...tesPrLine_nr10space11_m3stat_ds_1_out3.asm | 42 +- ...tesPrLine_nr10space11_m3stat_ds_2_out0.asm | 42 +- ...tesPrLine_nr10space12_m3stat_ds_1_out3.asm | 42 +- ...tesPrLine_nr10space12_m3stat_ds_2_out0.asm | 42 +- ...tesPrLine_nr10space13_m3stat_ds_1_out3.asm | 42 +- ...tesPrLine_nr10space13_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space1_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space1_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space2_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space2_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space3_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space3_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space4_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space4_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space5_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space5_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space6_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space6_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space7_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space7_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space8_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space8_m3stat_ds_2_out0.asm | 42 +- ...itesPrLine_nr10space9_m3stat_ds_1_out3.asm | 42 +- ...itesPrLine_nr10space9_m3stat_ds_2_out0.asm | 42 +- ...ritesPrLine_nr1space4_m3stat_ds_1_out3.asm | 42 +- ...ritesPrLine_nr1space4_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx1_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx1_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx2_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx2_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx3_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx3_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx4_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx4_m3stat_ds_2_out0.asm | 42 +- ...PrLine_scx4_nr1space4_m3stat_ds_1_out3.asm | 42 +- ...PrLine_scx4_nr1space4_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx5_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx5_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx6_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx6_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_scx7_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_scx7_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx0_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx0_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx1_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx1_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx2_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx2_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx3_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx3_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx4_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx4_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx5_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx5_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx6_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx6_m3stat_ds_2_out0.asm | 42 +- .../10spritesPrLine_wx7_m3stat_ds_1_out3.asm | 42 +- .../10spritesPrLine_wx7_m3stat_ds_2_out0.asm | 42 +- .../1pos8_8pos9_wx08_m3stat_ds_1_out3.asm | 42 +- .../1pos8_8pos9_wx08_m3stat_ds_2_out0.asm | 42 +- .../space/2overlap1_m3stat_ds_1_out3.asm | 42 +- .../space/2overlap1_m3stat_ds_2_out0.asm | 42 +- .../2overlap1_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap1_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap1_offset5_m3stat_ds_1_out3.asm | 42 +- .../2overlap1_offset5_m3stat_ds_2_out0.asm | 42 +- .../2overlap2_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap2_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap3_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap3_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap4_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap4_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap5_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap5_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap6_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap6_offset4_m3stat_ds_2_out0.asm | 42 +- .../2overlap7_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap7_offset4_m3stat_ds_2_out0.asm | 42 +- .../space/2overlap8_m3stat_ds_1_out3.asm | 42 +- .../space/2overlap8_m3stat_ds_2_out0.asm | 42 +- .../2overlap8_offset4_m3stat_ds_1_out3.asm | 42 +- .../2overlap8_offset4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap1_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap1_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap1_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap1_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap1_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap1_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap2_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap2_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap3_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap3_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap4_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap4_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_rev_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_rev_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap5_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap5_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_rev_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_rev_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap6_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap6_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_rev_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_rev_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap7_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap7_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx1_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx1_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx2_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx2_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx3_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx3_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx4_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx4_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx5_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx6_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx6_m3stat_ds_2_out0.asm | 42 +- .../space/3overlap8_scx7_m3stat_ds_1_out3.asm | 42 +- .../space/3overlap8_scx7_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx08_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx08_m3stat_ds_2_out0.asm | 42 +- .../9pos8_wx08_scx5_m3stat_ds_1_out3.asm | 42 +- .../9pos8_wx08_scx5_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx09_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx09_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx0A_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx0A_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx0B_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx0B_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx0C_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx0C_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx0D_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx0D_m3stat_ds_2_out0.asm | 42 +- .../space/9pos8_wx0E_m3stat_ds_1_out3.asm | 42 +- .../space/9pos8_wx0E_m3stat_ds_2_out0.asm | 42 +- ...sprite_late_disable_spx18_1_dmg08_out0.asm | 40 +- ...sprite_late_disable_spx18_2_dmg08_out3.asm | 40 +- ...sprite_late_disable_spx19_1_dmg08_out0.asm | 40 +- ...sprite_late_disable_spx19_2_dmg08_out3.asm | 40 +- ...sprite_late_disable_spx1A_1_dmg08_out0.asm | 40 +- ...sprite_late_disable_spx1A_2_dmg08_out3.asm | 40 +- ...sprite_late_disable_spx1B_1_dmg08_out0.asm | 40 +- ...sprite_late_disable_spx1B_2_dmg08_out3.asm | 40 +- .../sprite_late_enable_spx18_1_dmg08_out3.asm | 40 +- .../sprite_late_enable_spx18_2_dmg08_out0.asm | 40 +- .../sprite_late_enable_spx19_1_dmg08_out3.asm | 40 +- ...sprite_late_enable_spx19_2_dmg08_xout0.asm | 40 +- .../sprite_late_enable_spx1A_1_dmg08_out3.asm | 40 +- .../sprite_late_enable_spx1A_2_dmg08_out0.asm | 40 +- .../sprite_late_enable_spx1B_1_dmg08_out3.asm | 40 +- .../sprite_late_enable_spx1B_2_dmg08_out0.asm | 40 +- ...e_late_late_disable_spx18_1_dmg08_out0.asm | 40 +- ...e_late_late_disable_spx18_2_dmg08_out3.asm | 40 +- ...e_late_late_disable_spx19_1_dmg08_out0.asm | 40 +- ...e_late_late_disable_spx19_2_dmg08_out3.asm | 40 +- ...e_late_late_disable_spx1A_1_dmg08_out0.asm | 40 +- ...e_late_late_disable_spx1A_2_dmg08_out3.asm | 40 +- ...e_late_late_disable_spx1B_1_dmg08_out0.asm | 40 +- ...e_late_late_disable_spx1B_2_dmg08_out3.asm | 40 +- testrunner/hwtests/sram.asm | 66 +-- .../tima/tc00_1stopstart_ff_tma_1_outFF.asm | 66 +-- .../tima/tc00_1stopstart_ff_tma_2_out00.asm | 66 +-- .../tima/tc00_1stopstart_ff_tma_3_outFE.asm | 66 +-- ...tc00_1stopstart_offset1_ff_tma_1_outFF.asm | 66 +-- ...tc00_1stopstart_offset1_ff_tma_2_out00.asm | 66 +-- ...tc00_1stopstart_offset1_ff_tma_3_outFE.asm | 66 +-- ...tc00_1stopstart_offset2_ff_tma_1_outFF.asm | 66 +-- ...tc00_1stopstart_offset2_ff_tma_2_out00.asm | 66 +-- ...tc00_1stopstart_offset2_ff_tma_3_outFE.asm | 66 +-- .../hwtests/tima/tc00_fe_ff_1_outFE.asm | 66 +-- .../hwtests/tima/tc00_fe_ff_2_outFF.asm | 66 +-- .../hwtests/tima/tc00_ff_tma_1_outFF.asm | 66 +-- .../hwtests/tima/tc00_ff_tma_2_out00.asm | 66 +-- .../hwtests/tima/tc00_ff_tma_3_outFE.asm | 66 +-- testrunner/hwtests/tima/tc00_irq_1_outE0.asm | 66 +-- testrunner/hwtests/tima/tc00_irq_2_outE4.asm | 66 +-- .../tima/tc00_late_stop_inc_1_outFE.asm | 66 +-- .../tima/tc00_late_stop_inc_2_outFF.asm | 66 +-- .../tima/tc00_late_stop_irq_1_outE0.asm | 66 +-- .../tima/tc00_late_stop_irq_2_outE4.asm | 66 +-- .../tima/tc00_late_stop_of_1_outFF.asm | 66 +-- .../tima/tc00_late_stop_of_2_outFE.asm | 66 +-- .../hwtests/tima/tc00_start_1_outF0.asm | 66 +-- .../hwtests/tima/tc00_start_2_outF1.asm | 66 +-- .../hwtests/tima/tc00_tc01_ff_tma_1_outFF.asm | 66 +-- .../hwtests/tima/tc00_tc01_ff_tma_2_out00.asm | 66 +-- .../hwtests/tima/tc00_tc01_ff_tma_3_outF0.asm | 66 +-- .../tima/tc00_tc01_late_tc00_of_1_outFF.asm | 66 +-- .../tima/tc00_tc01_late_tc00_of_2_outF0.asm | 66 +-- .../tima/tc01_1stopstart_ff_tma_1_outFF.asm | 66 +-- .../tima/tc01_1stopstart_ff_tma_2_out00.asm | 66 +-- .../tima/tc01_1stopstart_ff_tma_3_outF0.asm | 66 +-- .../tima/tc01_1stopstart_irq_1_outE0.asm | 66 +-- .../tima/tc01_1stopstart_irq_2_outE4.asm | 66 +-- ...tc01_1stopstart_offset1_ff_tma_1_outFF.asm | 66 +-- ...tc01_1stopstart_offset1_ff_tma_2_out00.asm | 66 +-- ...tc01_1stopstart_offset1_ff_tma_3_outF0.asm | 66 +-- .../tc01_1stopstart_offset1_irq_1_outE0.asm | 66 +-- .../tc01_1stopstart_offset1_irq_2_outE4.asm | 66 +-- ...tc01_1stopstart_offset2_ff_tma_1_outFF.asm | 66 +-- ...tc01_1stopstart_offset2_ff_tma_2_out00.asm | 66 +-- ...tc01_1stopstart_offset2_ff_tma_3_outF0.asm | 66 +-- .../tc01_1stopstart_offset2_irq_1_outE0.asm | 66 +-- .../tc01_1stopstart_offset2_irq_2_outE4.asm | 66 +-- ...tc01_1stopstart_offset3_ff_tma_1_outFF.asm | 66 +-- ...tc01_1stopstart_offset3_ff_tma_2_out00.asm | 66 +-- ...tc01_1stopstart_offset3_ff_tma_3_outF0.asm | 66 +-- .../tc01_1stopstart_offset3_irq_1_outE0.asm | 66 +-- .../tc01_1stopstart_offset3_irq_2_outE4.asm | 66 +-- .../hwtests/tima/tc01_fe_ff_1_outFE.asm | 66 +-- .../hwtests/tima/tc01_fe_ff_2_outFF.asm | 66 +-- .../hwtests/tima/tc01_ff_tma_1_outFF.asm | 66 +-- .../hwtests/tima/tc01_ff_tma_2_out00.asm | 66 +-- .../hwtests/tima/tc01_ff_tma_3_outF0.asm | 66 +-- testrunner/hwtests/tima/tc01_irq_1_outE0.asm | 66 +-- testrunner/hwtests/tima/tc01_irq_2_outE4.asm | 66 +-- .../tima/tc01_late_stop_inc_1_outFD.asm | 66 +-- .../tima/tc01_late_stop_inc_2_outFE.asm | 66 +-- .../tima/tc01_late_stop_irq_1_outE0.asm | 66 +-- .../tima/tc01_late_stop_irq_2_outE4.asm | 66 +-- .../tima/tc01_late_stop_of_1_outFF.asm | 66 +-- .../tima/tc01_late_stop_of_2_outF0.asm | 66 +-- .../tima/tc01_late_tima_inc_1_out11.asm | 66 +-- .../tima/tc01_late_tima_inc_2_out10.asm | 66 +-- .../tima/tc01_late_tima_irq_1_outE0.asm | 66 +-- .../tima/tc01_late_tima_irq_2_outE4.asm | 66 +-- .../tima/tc01_late_tima_tma_1_out11.asm | 66 +-- .../tima/tc01_late_tima_tma_2_outF1.asm | 66 +-- .../tima/tc01_late_tima_tma_3_out11.asm | 66 +-- .../hwtests/tima/tc01_late_tma_1_out11.asm | 66 +-- .../hwtests/tima/tc01_late_tma_2_outF1.asm | 66 +-- .../hwtests/tima/tc01_tma_next_1_outF0.asm | 66 +-- .../hwtests/tima/tc01_tma_next_2_outF1.asm | 66 +-- testrunner/hwtests/vram_dumper.asm | 66 +-- ...pritesprline_postread_1_dmg08_cgb_out3.asm | 42 +- ...pritesprline_postread_2_dmg08_cgb_out0.asm | 42 +- .../vram_m3/postread_1_dmg08_cgb_out3.asm | 42 +- .../vram_m3/postread_2_dmg08_cgb_out0.asm | 42 +- .../hwtests/vram_m3/postread_ds_1_out3.asm | 42 +- .../hwtests/vram_m3/postread_ds_2_out0.asm | 42 +- .../postread_scx2_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx2_2_dmg08_cgb_out0.asm | 42 +- .../postread_scx3_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx3_2_dmg08_cgb_out0.asm | 42 +- .../postread_scx5_1_dmg08_cgb_out3.asm | 42 +- .../postread_scx5_2_dmg08_cgb_out0.asm | 42 +- .../vram_m3/postread_scx5_ds_1_out3.asm | 42 +- .../vram_m3/postread_scx5_ds_2_out0.asm | 42 +- .../hwtests/vram_m3/preread_ds_1_out0.asm | 42 +- .../hwtests/vram_m3/preread_ds_2_out3.asm | 42 +- .../hwtests/vram_m3/prewrite_ds_1_out1.asm | 42 +- .../hwtests/vram_m3/prewrite_ds_2_out0.asm | 42 +- .../vramw_m3start_1_dmg08_cgb_out1.asm | 42 +- .../vramw_m3start_2_dmg08_cgb_out0.asm | 42 +- .../vramw_m3end_1_dmg08_cgb_out7.asm | 42 +- .../vramw_m3end_2_dmg08_cgb_out7.asm | 42 +- .../vramw_m3end_3_dmg08_cgb_out0.asm | 42 +- .../vramw_m3end_4_dmg08_cgb_out0.asm | 42 +- .../vramw_m3end_5_dmg08_cgb_out1.asm | 42 +- .../vramw_m3end_6_dmg08_cgb_out1.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_1_out7.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_2_out7.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_3_out0.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_4_out0.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_5_out1.asm | 42 +- .../vramw_m3end/vramw_m3end_ds_6_out1.asm | 42 +- .../vramw_m3end_scx3_1_dmg08_cgb_out7.asm | 42 +- .../vramw_m3end_scx3_2_dmg08_cgb_out7.asm | 42 +- .../vramw_m3end_scx3_3_dmg08_cgb_out0.asm | 42 +- .../vramw_m3end_scx3_4_dmg08_cgb_out0.asm | 42 +- .../vramw_m3end_scx3_5_dmg08_cgb_out3.asm | 42 +- .../vramw_m3end_scx3_6_dmg08_cgb_out3.asm | 42 +- .../vramw_m3end_scx5_ds_1_out7.asm | 42 +- .../vramw_m3end_scx5_ds_2_out7.asm | 42 +- .../vramw_m3end_scx5_ds_3_out0.asm | 42 +- .../vramw_m3end_scx5_ds_4_out0.asm | 42 +- .../vramw_m3end_scx5_ds_5_out5.asm | 42 +- .../vramw_m3end_scx5_ds_6_out5.asm | 42 +- ...te_enable_afterVblank_3_dmg08_cgb_out3.asm | 42 +- ...able_afterVblank_4_dmg08_out3_cgb_out0.asm | 42 +- ...te_enable_afterVblank_5_dmg08_cgb_out0.asm | 42 +- ...ate_wy_FFto4_ly4_wx00_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto4_ly4_wx00_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto4_ly4_wx00_3_dmg08_cgb_out0.asm | 42 +- ...ate_wy_FFto4_ly4_wx20_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto4_ly4_wx20_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto4_ly4_wx20_3_dmg08_cgb_out0.asm | 42 +- ..._wx_late_wy_FFto2_ly2_1_dmg08_cgb_out0.asm | 42 +- ..._wx_late_wy_FFto2_ly2_2_dmg08_cgb_out3.asm | 42 +- .../late_wy_10to0_ly1_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_10to0_ly1_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_10to0_ly1_3_dmg08_cgb_out0.asm | 42 +- .../late_wy_10to1_ly1_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_10to1_ly1_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_10to1_ly1_3_dmg08_cgb_out0.asm | 42 +- .../window/arg/late_wy_1_dmg08_cgb_out0.asm | 42 +- .../arg/late_wy_1toFF_1_dmg08_cgb_out0.asm | 42 +- .../late_wy_1toFF_2_dmg08_out0_cgb_out3.asm | 42 +- .../arg/late_wy_1toFF_3_dmg08_cgb_out3.asm | 42 +- .../window/arg/late_wy_1toFF_ds_1_out0.asm | 42 +- .../window/arg/late_wy_1toFF_ds_2_out3.asm | 42 +- .../window/arg/late_wy_2_dmg08_cgb_out3.asm | 42 +- .../arg/late_wy_2toFF_1_dmg08_cgb_out0.asm | 42 +- .../late_wy_2toFF_2_dmg08_out0_cgb_out3.asm | 42 +- .../arg/late_wy_2toFF_3_dmg08_cgb_out3.asm | 42 +- .../late_wy_FFto0_ly0_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_FFto0_ly0_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_FFto0_ly0_3_dmg08_cgb_out0.asm | 42 +- .../late_wy_FFto0_ly2_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_FFto0_ly2_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_FFto0_ly2_3_dmg08_cgb_out0.asm | 42 +- .../arg/late_wy_FFto0_ly2_ds_1_out3.asm | 42 +- .../arg/late_wy_FFto0_ly2_ds_2_out0.asm | 42 +- .../late_wy_FFto1_ly2_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_FFto1_ly2_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_FFto1_ly2_3_dmg08_cgb_out0.asm | 42 +- .../late_wy_FFto2_ly2_1_dmg08_cgb_out3.asm | 42 +- ...ate_wy_FFto2_ly2_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_wy_FFto2_ly2_3_dmg08_cgb_out0.asm | 42 +- .../arg/late_wy_FFto2_ly2_ds_1_out3.asm | 42 +- .../arg/late_wy_FFto2_ly2_ds_2_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx2_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto2_ly2_scx2_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx2_3_dmg08_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx3_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto2_ly2_scx3_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx3_3_dmg08_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx5_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto2_ly2_scx5_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_scx5_3_dmg08_cgb_out0.asm | 42 +- .../arg/late_wy_FFto2_ly2_scx5_ds_1_out3.asm | 42 +- .../arg/late_wy_FFto2_ly2_scx5_ds_2_out0.asm | 42 +- ...ate_wy_FFto2_ly2_wx00_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto2_ly2_wx00_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_wx00_3_dmg08_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_wx0f_1_dmg08_cgb_out3.asm | 42 +- ...y_FFto2_ly2_wx0f_2_dmg08_out3_cgb_out0.asm | 42 +- ...ate_wy_FFto2_ly2_wx0f_3_dmg08_cgb_out0.asm | 42 +- .../window/late_disable_0_dmg08_cgb_out0.asm | 42 +- .../late_disable_1_dmg08_out3_cgb_out0.asm | 42 +- .../window/late_disable_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/window/late_disable_ds_1_out0.asm | 42 +- .../hwtests/window/late_disable_ds_2_out3.asm | 42 +- ...ate_disable_early_scx00_wx0f_ds_1_out0.asm | 42 +- ...ate_disable_early_scx00_wx0f_ds_2_out3.asm | 42 +- ...ate_disable_early_scx00_wx10_ds_1_out0.asm | 42 +- ...ate_disable_early_scx00_wx10_ds_2_out3.asm | 42 +- ...ate_disable_early_scx00_wx11_ds_1_out0.asm | 42 +- ...ate_disable_early_scx00_wx11_ds_2_out3.asm | 42 +- ...ate_disable_early_scx00_wx12_ds_1_out0.asm | 42 +- ...ate_disable_early_scx00_wx12_ds_2_out3.asm | 42 +- ...able_early_scx03_wx0f_1_dmg08_cgb_out0.asm | 42 +- ...able_early_scx03_wx0f_2_dmg08_cgb_out3.asm | 42 +- ...able_early_scx03_wx10_1_dmg08_cgb_out0.asm | 42 +- ...able_early_scx03_wx10_2_dmg08_cgb_out3.asm | 42 +- ...able_early_scx03_wx11_1_dmg08_cgb_out0.asm | 42 +- ...able_early_scx03_wx11_2_dmg08_cgb_out3.asm | 42 +- ...able_early_scx03_wx12_1_dmg08_cgb_out0.asm | 42 +- ...early_scx03_wx12_2_dmg08_out0_cgb_out3.asm | 42 +- ...able_early_scx03_wx12_3_dmg08_cgb_out3.asm | 42 +- ...late_disable_late_scx00_wx0f_ds_1_out0.asm | 42 +- ...late_disable_late_scx00_wx0f_ds_2_out3.asm | 42 +- ...late_disable_late_scx00_wx10_ds_1_out0.asm | 42 +- ...late_disable_late_scx00_wx10_ds_2_out3.asm | 42 +- ...sable_late_scx03_wx0f_1_dmg08_cgb_out0.asm | 42 +- ..._late_scx03_wx0f_2_dmg08_out3_cgb_out0.asm | 42 +- ...sable_late_scx03_wx0f_3_dmg08_cgb_out3.asm | 42 +- ...sable_late_scx03_wx10_1_dmg08_cgb_out0.asm | 42 +- ..._late_scx03_wx10_2_dmg08_out3_cgb_out0.asm | 42 +- ...sable_late_scx03_wx10_3_dmg08_cgb_out3.asm | 42 +- ...sable_late_scx03_wx11_1_dmg08_cgb_out0.asm | 42 +- ..._late_scx03_wx11_2_dmg08_out3_cgb_out0.asm | 42 +- ...sable_late_scx03_wx11_3_dmg08_cgb_out3.asm | 42 +- ...sable_late_scx03_wx12_1_dmg08_cgb_out0.asm | 42 +- ...sable_late_scx03_wx12_2_dmg08_cgb_out3.asm | 42 +- .../late_disable_scx2_0_dmg08_cgb_out0.asm | 42 +- ...ate_disable_scx2_1_dmg08_out3_cgb_out0.asm | 42 +- .../late_disable_scx2_2_dmg08_cgb_out3.asm | 42 +- .../late_disable_scx3_0_dmg08_cgb_out0.asm | 42 +- ...ate_disable_scx3_1_dmg08_out3_cgb_out0.asm | 42 +- .../late_disable_scx3_2_dmg08_cgb_out3.asm | 42 +- .../late_disable_scx5_0_dmg08_cgb_out0.asm | 42 +- ...ate_disable_scx5_1_dmg08_out3_cgb_out0.asm | 42 +- .../late_disable_scx5_2_dmg08_cgb_out3.asm | 42 +- .../window/late_disable_scx5_ds_1_out0.asm | 42 +- .../window/late_disable_scx5_ds_2_out3.asm | 42 +- ...te_disable_spx10_wx0f_1_dmg08_cgb_out0.asm | 42 +- ...te_disable_spx10_wx0f_2_dmg08_cgb_out3.asm | 42 +- .../late_disable_wx0f_0_dmg08_cgb_out0.asm | 42 +- ...ate_disable_wx0f_1_dmg08_out3_cgb_out0.asm | 42 +- .../late_disable_wx0f_2_dmg08_cgb_out3.asm | 42 +- ...te_enable_afterVblank_1_dmg08_cgb_out3.asm | 42 +- ...able_afterVblank_2_dmg08_out3_cgb_out0.asm | 42 +- ...te_enable_afterVblank_3_dmg08_cgb_out0.asm | 42 +- .../late_enable_afterVblank_ds_1_out3.asm | 42 +- .../late_enable_afterVblank_ds_2_out0.asm | 42 +- .../window/late_enable_ly0_ds_1_out3.asm | 42 +- .../window/late_enable_ly0_ds_2_out0.asm | 42 +- .../window/late_reenable_1_dmg08_cgb_out3.asm | 42 +- .../window/late_reenable_2_dmg08_cgb_out0.asm | 42 +- .../window/late_reenable_ds_1_out3.asm | 42 +- .../window/late_reenable_ds_2_out0.asm | 42 +- .../late_reenable_scx2_1_dmg08_cgb_out3.asm | 42 +- ...te_reenable_scx2_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_reenable_scx2_3_dmg08_cgb_out0.asm | 42 +- .../late_reenable_scx3_1_dmg08_cgb_out3.asm | 42 +- ...te_reenable_scx3_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_reenable_scx3_3_dmg08_cgb_out0.asm | 42 +- .../late_reenable_scx5_1_dmg08_cgb_out3.asm | 42 +- ...te_reenable_scx5_2_dmg08_out3_cgb_out0.asm | 42 +- .../late_reenable_scx5_3_dmg08_cgb_out0.asm | 42 +- .../window/late_reenable_scx5_ds_1_out3.asm | 42 +- .../window/late_reenable_scx5_ds_2_out0.asm | 42 +- .../late_reenable_wx0f_1_dmg08_cgb_out3.asm | 42 +- .../late_reenable_wx0f_2_dmg08_cgb_out0.asm | 42 +- ...late_scx_late_disable_0_dmg08_cgb_out0.asm | 42 +- ...scx_late_disable_1_dmg08_out3_cgb_out0.asm | 42 +- ...late_scx_late_disable_2_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/window/late_wx_ds_1_out0.asm | 42 +- .../hwtests/window/late_wx_ds_2_out3.asm | 42 +- .../window/late_wx_ff_07_1_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_ff_07_2_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_ff_0f_1_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_ff_0f_2_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_scx2_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_scx2_2_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_scx3_1_dmg08_cgb_out0.asm | 42 +- .../late_wx_scx3_2_dmg08_out0_cgb_out3.asm | 42 +- .../window/late_wx_scx3_3_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_scx5_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_scx5_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/window/late_wx_scx5_ds_1_out0.asm | 42 +- .../hwtests/window/late_wx_scx5_ds_2_out3.asm | 42 +- .../window/late_wx_wx03_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_wx03_2_dmg08_cgb_out3.asm | 42 +- .../window/late_wx_wx0f_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wx_wx0f_2_dmg08_cgb_out3.asm | 42 +- .../window/late_wy_1_dmg08_cgb_out0.asm | 42 +- .../window/late_wy_2_dmg08_cgb_out3.asm | 42 +- .../hwtests/window/late_wy_ds_1_out0.asm | 42 +- .../hwtests/window/late_wy_ds_2_out3.asm | 42 +- .../m2int_wx00_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_wx00_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../m2int_wx03_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_wx03_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../window/m2int_wx03_m3stat_ds_1_out3.asm | 42 +- .../window/m2int_wx03_m3stat_ds_2_out0.asm | 42 +- ...2int_wx03_scx2_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx03_scx2_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...2int_wx03_scx3_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx03_scx3_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...2int_wx03_scx5_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx03_scx5_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../m2int_wx03_scx5_m3stat_ds_1_out3.asm | 42 +- .../m2int_wx03_scx5_m3stat_ds_2_out0.asm | 42 +- .../m2int_wx07_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_wx07_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../window/m2int_wx07_m3stat_ds_1_out3.asm | 42 +- .../window/m2int_wx07_m3stat_ds_2_out0.asm | 42 +- ...2int_wx07_scx2_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx07_scx2_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...2int_wx07_scx3_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx07_scx3_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...2int_wx07_scx5_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx07_scx5_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../m2int_wx07_scx5_m3stat_ds_1_out3.asm | 42 +- .../m2int_wx07_scx5_m3stat_ds_2_out0.asm | 42 +- .../window/m2int_wx0C_m3stat_ds_1_out3.asm | 42 +- .../window/m2int_wx0C_m3stat_ds_2_out0.asm | 42 +- ...2int_wx17_wxA5_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wx17_wxA5_m3stat_2_dmg08_cgb_out0.asm | 42 +- .../window/m2int_wx57_m3stat_ds_1_out3.asm | 42 +- .../window/m2int_wx57_m3stat_ds_2_out0.asm | 42 +- .../m2int_wxA5_m0irq_1_dmg08_cgb_out0.asm | 42 +- .../m2int_wxA5_m0irq_2_dmg08_cgb_out2.asm | 42 +- .../m2int_wxA5_m3stat_1_dmg08_cgb_out3.asm | 42 +- .../m2int_wxA5_m3stat_2_dmg08_cgb_out0.asm | 42 +- ...wxA6_firstline_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...firstline_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- ...wxA6_firstline_m3stat_3_dmg08_cgb_out0.asm | 42 +- .../m2int_wxA6_m0irq2_1_dmg08_cgb_out0.asm | 42 +- .../m2int_wxA6_m0irq2_2_dmg08_cgb_out2.asm | 42 +- .../m2int_wxA6_m0irq_1_dmg08_cgb_out0.asm | 42 +- .../m2int_wxA6_m0irq_2_dmg08_cgb_out2.asm | 42 +- .../m2int_wxA6_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...2int_wxA6_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- .../m2int_wxA6_m3stat_3_dmg08_cgb_out0.asm | 42 +- .../window/m2int_wxA6_m3stat_ds_1_out3.asm | 42 +- .../window/m2int_wxA6_m3stat_ds_2_out0.asm | 42 +- ...2int_wxA6_oambusyread_1_dmg08_cgb_out0.asm | 42 +- ...wxA6_oambusyread_2_dmg08_out5_cgb_out0.asm | 42 +- ...xA6_oambusyread_3_dmg08_out5_cgb_xout1.asm | 42 +- ...2int_wxA6_oambusyread_4_dmg08_cgb_out5.asm | 42 +- ...2int_wxA6_scx2_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...wxA6_scx2_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- ...wxA6_scx2_m3stat_3_dmg08_out0_cgb_out3.asm | 42 +- ...2int_wxA6_scx2_m3stat_4_dmg08_cgb_out0.asm | 42 +- ...2int_wxA6_scx3_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...wxA6_scx3_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- ...wxA6_scx3_m3stat_3_dmg08_out0_cgb_out3.asm | 42 +- ...2int_wxA6_scx3_m3stat_4_dmg08_cgb_out0.asm | 42 +- ...2int_wxA6_scx5_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...wxA6_scx5_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- ...2int_wxA6_scx5_m3stat_3_dmg08_cgb_out0.asm | 42 +- .../m2int_wxA6_scx5_m3stat_ds_1_out3.asm | 42 +- .../m2int_wxA6_scx5_m3stat_ds_2_out0.asm | 42 +- ...2int_wxA6_spxA7_m0irq_1_dmg08_cgb_out0.asm | 42 +- ...2int_wxA6_spxA7_m0irq_2_dmg08_cgb_out2.asm | 42 +- ...int_wxA6_spxA7_m3stat_1_dmg08_cgb_out3.asm | 42 +- ...xA6_spxA7_m3stat_2_dmg08_out0_cgb_out3.asm | 42 +- ...xA6_spxA7_m3stat_4_dmg08_out0_cgb_out3.asm | 42 +- ...int_wxA6_spxA7_m3stat_5_dmg08_cgb_out0.asm | 42 +- ...int_wxA6_vrambusyread_1_dmg08_cgb_out0.asm | 42 +- ...xA6_vrambusyread_2_dmg08_out5_cgb_out0.asm | 42 +- ...int_wxA6_vrambusyread_3_dmg08_cgb_out5.asm | 42 +- .../window/m2int_wxA7_m3stat_ds_1_out0.asm | 42 +- .../window/m2int_wxA7_m3stat_ds_2_out0.asm | 42 +- .../m2int_wxDefault_m3stat_ds_1_out3.asm | 42 +- .../m2int_wxDefault_m3stat_ds_2_out0.asm | 42 +- .../hwtests/window/on_screen/late_wx_ds_1.asm | 42 +- .../hwtests/window/on_screen/late_wx_ds_2.asm | 42 +- .../on_screen/weon_wx18_weoff_weon_wx80.asm | 40 +- .../window/on_screen/wx17_weoff_wxA5_weon.asm | 42 +- .../hwtests/window/on_screen/wx17_wxA5.asm | 42 +- .../window/on_screen/wxA5_weoff_at_xposA5.asm | 42 +- .../hwtests/window/on_screen/wxA6_3.asm | 42 +- .../on_screen/wxA6_late_we_reenable_1.asm | 42 +- .../on_screen/wxA6_late_we_reenable_2.asm | 42 +- .../on_screen/wxA6_late_we_reenable_3.asm | 42 +- .../on_screen/wxA6_late_we_reenable_4.asm | 42 +- .../hwtests/window/on_screen/wxA6_scx7.asm | 42 +- .../window/on_screen/wxA6_weoff_at_xposA6.asm | 42 +- .../hwtests/window/on_screen/wxA6_wy00.asm | 42 +- .../hwtests/window/on_screen/wxA6_wy01.asm | 42 +- .../window/on_screen/wxA6_wy01_weoff_ly02.asm | 42 +- .../wxA6_wy01_weoff_ly02_weon_ly60.asm | 42 +- .../window/on_screen/wxA6_wy01_wxA5_ly02.asm | 42 +- .../window/on_screen/wxA6_wy01_wxA7_ly02.asm | 42 +- .../hwtests/window/on_screen/wxA6_wy8F.asm | 42 +- .../hwtests/window/reenable_ds_out3.asm | 42 +- testrunner/hwtests/wram_dumper.asm | 66 +-- testrunner/testrunner.cpp | 80 +-- 2215 files changed, 44685 insertions(+), 44685 deletions(-) diff --git a/common/adaptivesleep.cpp b/common/adaptivesleep.cpp index 07db4aeb..e53b55c2 100644 --- a/common/adaptivesleep.cpp +++ b/common/adaptivesleep.cpp @@ -21,36 +21,36 @@ usec_t AdaptiveSleep::sleepUntil(usec_t base, usec_t inc) { usec_t now = getusecs(); usec_t diff = now - base; - + if (diff >= inc) return diff - inc; - + diff = inc - diff; - + if (diff > oversleep + oversleepVar) { diff -= oversleep + oversleepVar; usecsleep(diff); const usec_t ideal = now + diff; now = getusecs(); - + { usec_t curOversleep = now - ideal; - + if (negate(curOversleep) < curOversleep) curOversleep = 0; - + oversleepVar = (oversleepVar * 15 + (curOversleep < oversleep ? oversleep - curOversleep : curOversleep - oversleep) + 8) >> 4; oversleep = (oversleep * 15 + curOversleep + 8) >> 4; } - + noSleep = 60; } else if (--noSleep == 0) { noSleep = 60; oversleep = oversleepVar = 0; } - + while (now - base < inc) now = getusecs(); - + return 0; } diff --git a/common/adaptivesleep.h b/common/adaptivesleep.h index 41660254..a5f5e00b 100644 --- a/common/adaptivesleep.h +++ b/common/adaptivesleep.h @@ -25,7 +25,7 @@ class AdaptiveSleep { usec_t oversleep; usec_t oversleepVar; unsigned noSleep; - + public: AdaptiveSleep() : oversleep(0), oversleepVar(0), noSleep(60) {} usec_t sleepUntil(usec_t base, usec_t inc); diff --git a/common/array.h b/common/array.h index 22b01c71..766e2aac 100644 --- a/common/array.h +++ b/common/array.h @@ -27,7 +27,7 @@ template class Array : Uncopyable { T *a; std::size_t sz; - + public: explicit Array(std::size_t size = 0) : a(size ? new T[size] : 0), sz(size) {} ~Array() { delete[] defined_ptr(a); } @@ -40,7 +40,7 @@ public: template class ScopedArray : Uncopyable { T *a_; - + public: explicit ScopedArray(T *a = 0) : a_(a) {} ~ScopedArray() { delete[] defined_ptr(a_); } diff --git a/common/resample/resampler.h b/common/resample/resampler.h index 997d22d5..1f27f1d9 100644 --- a/common/resample/resampler.h +++ b/common/resample/resampler.h @@ -25,18 +25,18 @@ class Resampler { long inRate_; long outRate_; - + protected: void setRate(const long inRate, const long outRate) { inRate_ = inRate; outRate_ = outRate; } Resampler() : inRate_(0), outRate_(0) {} - + public: /** Returns the sampling rate of the input that this resampler expects. */ long inRate() const { return inRate_; } - + /** Returns the approximate sampling rate of the output. */ long outRate() const { return outRate_; } - + /** Can be used to adjust the input and output sampling rates slightly with minimal disturbance in the output. * Should only be used for slight changes or the quality could detoriate. * It can for instance be useful to tweak the output rate slightly to synchronize production speed to playback @@ -47,7 +47,7 @@ public: * @param outRate Desired new output sampling rate. */ virtual void adjustRate(long inRate, long outRate) = 0; - + /** Returns the exact ratio that this resampler is configured to use, * such that the actual output sampling rate is (input rate) * mul / div. * outRate() / inRate() is not necessarily equal to mul / div. @@ -55,12 +55,12 @@ public: * much whether the output sampling rate is 100% exact. Playback hardware is also slightly off. */ virtual void exactRatio(unsigned long &mul, unsigned long &div) const = 0; - + /** Returns an upper bound on how many samples are produced for 'inlen' input samples. * Can be used to calculate buffer sizes. */ virtual std::size_t maxOut(std::size_t inlen) const = 0; - + /** Resamples the samples in 'in' and puts the resulting samples in 'out'. * * @param inlen The number of samples in 'in' to be resampled/consumed. diff --git a/common/resample/resamplerinfo.h b/common/resample/resamplerinfo.h index b0560fea..715666ac 100644 --- a/common/resample/resamplerinfo.h +++ b/common/resample/resamplerinfo.h @@ -29,7 +29,7 @@ struct ResamplerInfo { /** Short character string description of the resampler. */ const char *desc; - + /** Points to a function that can be used to create an instance of the resampler. * @param inRate The input sampling rate. * @param outRate The desired output sampling rate. @@ -37,13 +37,13 @@ struct ResamplerInfo { * @return Pointer to the created instance (on the heap). Caller must free this with the delete operator. */ Resampler* (*create)(long inRate, long outRate, std::size_t periodSz); - + /** Returns the number of ResamplerInfos that can be gotten with get(). */ static std::size_t num() { return num_; } - + /** Returns ResamplerInfo number n. Where n is less than num(). */ static const ResamplerInfo& get(std::size_t n) { return resamplers[n]; } - + private: static const ResamplerInfo resamplers[]; static const std::size_t num_; diff --git a/common/resample/src/blackmansinc.h b/common/resample/src/blackmansinc.h index 110b52a7..797880ca 100644 --- a/common/resample/src/blackmansinc.h +++ b/common/resample/src/blackmansinc.h @@ -48,27 +48,27 @@ public: const float widthTimesTaps = 4.5f; return std::max(static_cast(std::ceil(widthTimesTaps / rollOffWidth)), 4u); } - + static float toFc(const float rollOffStart, const int taps) { const float startToFcDeltaTimesTaps = 1.69f; return startToFcDeltaTimesTaps / taps + rollOffStart; } - + public: const unsigned taps; const float fc; - + RollOff(float rollOffStart, float rollOffWidth) : taps(toTaps(rollOffWidth)), fc(toFc(rollOffStart, taps)) {} }; BlackmanSinc(unsigned div, unsigned phaseLen, double fc) : kernel(phaseLen * phases), convoluter_(kernel, phaseLen, div) { makeSincKernel(kernel, phases, phaseLen, fc, blackmanWin, 1.0); } - + BlackmanSinc(unsigned div, RollOff ro, double gain) : kernel(ro.taps * phases), convoluter_(kernel, ro.taps, div) { makeSincKernel(kernel, phases, ro.taps, ro.fc, blackmanWin, gain);} - + std::size_t resample(short *out, const short *in, std::size_t inlen) { return convoluter_.filter(out, in, inlen); } void adjustDiv(unsigned div) { convoluters_.adjustDiv(div); } unsigned mul() const { return MUL; } diff --git a/common/resample/src/chainresampler.cpp b/common/resample/src/chainresampler.cpp index e325a1fa..72a8126e 100644 --- a/common/resample/src/chainresampler.cpp +++ b/common/resample/src/chainresampler.cpp @@ -63,17 +63,17 @@ void ChainResampler::downinitAddSincResamplers(double ratio, float const outRate // For high outRate: Start roll-off at 36000 Hz continue until outRate Hz, then wrap around back down to 40000 Hz. const float outPeriod = 1.0f / outRate; const float finalRollOffLen = std::max((outRate - 36000.0f + outRate - 40000.0f) * outPeriod, 0.2f); - + { const float midRollOffStart = std::min(36000.0f * outPeriod, 1.0f); const float midRollOffEnd = std::min(40000.0f * outPeriod, 1.0f); // after wrap at folding freq. const float midRollOffStartPlusEnd = midRollOffStart + midRollOffEnd; const float ideal2ChainMidRatio = get2ChainMidRatio(ratio, finalRollOffLen, midRollOffStartPlusEnd); - + int div_2c = int(ratio * smallSincMul / ideal2ChainMidRatio + 0.5f); double ratio_2c = ratio * smallSincMul / div_2c; float cost_2c = get2ChainCost(ratio, finalRollOffLen, ratio_2c, midRollOffStartPlusEnd); - + if (cost_2c < get1ChainCost(ratio, finalRollOffLen)) { const float ideal3ChainRatio1 = get3ChainRatio1(ratio_2c, finalRollOffLen, ratio, midRollOffStartPlusEnd); @@ -83,7 +83,7 @@ void ChainResampler::downinitAddSincResamplers(double ratio, float const outRate midRollOffStartPlusEnd); const int div2_3c = int(ratio1_3c * smallSincMul / ideal3ChainRatio2 + 0.5f); const double ratio2_3c = ratio1_3c * smallSincMul / div2_3c; - + if (get3ChainCost(ratio, finalRollOffLen, ratio1_3c, ratio2_3c, midRollOffStartPlusEnd) < cost_2c) { list.push_back(createSmallSinc(div1_3c, @@ -95,7 +95,7 @@ void ChainResampler::downinitAddSincResamplers(double ratio, float const outRate ratio_2c = ratio2_3c; gain = 1.0; } - + list.push_back(createSmallSinc(div_2c, 0.5f * midRollOffStart / ratio, (ratio_2c - 0.5f * midRollOffStartPlusEnd) / ratio, @@ -104,7 +104,7 @@ void ChainResampler::downinitAddSincResamplers(double ratio, float const outRate gain = 1.0; } } - + list.push_back(bigSinc = createBigSinc(int(bigSincMul * ratio + 0.5), 0.5f * (1.0f + std::max((outRate - 40000.0f) * outPeriod, 0.0f) - finalRollOffLen) / ratio, @@ -115,24 +115,24 @@ std::size_t ChainResampler::reallocateBuffer() { std::size_t bufSz[2] = { 0, 0 }; std::size_t inSz = periodSize; int i = -1; - + for (list_t::iterator it = list.begin(); it != list.end(); ++it) { inSz = (inSz * (*it)->mul() - 1) / (*it)->div() + 1; - + ++i; - + if (inSz > bufSz[i&1]) bufSz[i&1] = inSz; } - + if (inSz >= bufSz[i&1]) bufSz[i&1] = 0; - + if (buffer.size() < (bufSz[0] + bufSz[1]) * channels) buffer.reset((bufSz[0] + bufSz[1]) * channels); - + buffer2 = bufSz[1] ? buffer + bufSz[0] * channels : 0; - + return (maxOut_ = inSz); } @@ -148,7 +148,7 @@ void ChainResampler::adjustRate(const long inRate, const long outRate) { void ChainResampler::exactRatio(unsigned long &mul, unsigned long &div) const { mul = 1; div = 1; - + for (list_t::const_iterator it = list.begin(); it != list.end(); ++it) { mul *= (*it)->mul(); div *= (*it)->div(); @@ -157,13 +157,13 @@ void ChainResampler::exactRatio(unsigned long &mul, unsigned long &div) const { std::size_t ChainResampler::resample(short *const out, const short *const in, std::size_t inlen) { assert(inlen <= periodSize); - + short *const buf = buffer != buffer2 ? buffer : out; short *const buf2 = buffer2 ? buffer2 : out; - + const short *inbuf = in; short *outbuf = 0; - + for (list_t::iterator it = list.begin(); it != list.end(); ++it) { outbuf = ++list_t::iterator(it) == list.end() ? out @@ -171,7 +171,7 @@ std::size_t ChainResampler::resample(short *const out, const short *const in, st inlen = (*it)->resample(outbuf, inbuf, inlen); inbuf = outbuf; } - + return inlen; } diff --git a/common/resample/src/chainresampler.h b/common/resample/src/chainresampler.h index a4c175bd..8a7017ee 100644 --- a/common/resample/src/chainresampler.h +++ b/common/resample/src/chainresampler.h @@ -32,14 +32,14 @@ class ChainResampler : public Resampler { typedef std::list list_t; typedef SubResampler * (*CreateSinc)(unsigned div, float rollOffStart, float rollOffWidth, double gain); - + list_t list; SubResampler *bigSinc; Array buffer; short *buffer2; std::size_t periodSize; std::size_t maxOut_; - + static float get1ChainCost(float ratio, float finalRollOffLen) { return ratio / finalRollOffLen; } static float get2ChainMidRatio(float ratio, float finalRollOffLen, float midRollOffStartPlusEnd); @@ -51,32 +51,32 @@ class ChainResampler : public Resampler { static float get3ChainRatio1(float ratio1, float finalRollOffLen, float ratio, float midRollOffStartPlusEnd); static float get3ChainCost(float ratio, float finalRollOffLen, float ratio1, float ratio2, float midRollOffStartPlusEnd); - + void downinitAddSincResamplers(double ratio, float outRate, CreateSinc createBigSinc, CreateSinc createSmallSinc, unsigned bigSincMul, unsigned smallSincMul, double gain); - + template static SubResampler * createSinc(unsigned div, float rollOffStart, float rollOffWidth, double gain) { return new Sinc(div, typename Sinc::RollOff(rollOffStart, rollOffWidth), gain); } - + template class Sinc> std::size_t downinit(long inRate, long outRate, std::size_t periodSize); - + template class Sinc> std::size_t upinit(long inRate, long outRate, std::size_t periodSize); - + std::size_t reallocateBuffer(); - + public: enum { channels = 2 }; ChainResampler(); ~ChainResampler() { uninit(); } - + void adjustRate(long inRate, long outRate); void exactRatio(unsigned long &mul, unsigned long &div) const; - + template class Sinc> std::size_t init(long inRate, long outRate, std::size_t periodSize); std::size_t maxOut(std::size_t /*inlen*/) const { return maxOut_; } @@ -87,7 +87,7 @@ public: template class Sinc> std::size_t ChainResampler::init(const long inRate, const long outRate, const std::size_t periodSize) { setRate(inRate, outRate); - + if (outRate > inRate) return upinit(inRate, outRate, periodSize); else @@ -98,23 +98,23 @@ template class Sinc> std::size_t ChainResampler::downinit(const long inRate, const long outRate, const std::size_t periodSize) { typedef Sinc BigSinc; typedef Sinc SmallSinc; - + uninit(); this->periodSize = periodSize; - + double ratio = static_cast(inRate) / outRate; double gain = 1.0; - + while (ratio >= BigSinc::cicLimit() * 2) { const int div = std::min(static_cast(ratio / BigSinc::cicLimit()), BigSinc::Cic::MAX_DIV); list.push_back(new typename BigSinc::Cic(div)); ratio /= div; gain *= 1.0 / BigSinc::Cic::gain(div); } - + downinitAddSincResamplers(ratio, outRate, createSinc, createSinc, BigSinc::MUL, SmallSinc::MUL, gain); - + return reallocateBuffer(); } @@ -125,47 +125,47 @@ std::size_t ChainResampler::upinit(const long inRate, const long outRate, const uninit(); this->periodSize = periodSize; - + double ratio = static_cast(outRate) / inRate; - + // Spectral images above 20 kHz assumed inaudible { const int div = outRate / std::max(inRate, 40000l); - + if (div >= 2) { list.push_front(new Upsampler(div)); ratio /= div; } } - + const float rollOff = std::max((inRate - 36000.0f) / inRate, 0.2f); - + /*{ int div_2c = get2ChainMidRatio(ratio, rollOff) * SmallSinc::MUL / ratio + 0.5f; double ratio_2c = ratio * div_2c / SmallSinc::MUL; float cost_2c = get2ChainCost(ratio, rollOff, ratio_2c); - + if (cost_2c < get1ChainCost(ratio, rollOff)) { const int div1_3c = get3ChainRatio1(ratio_2c, rollOff, ratio) * SmallSinc::MUL / ratio + 0.5f; const double ratio1_3c = ratio * div1_3c / SmallSinc::MUL; const int div2_3c = get3ChainRatio2(ratio1_3c, rollOff) * SmallSinc::MUL / ratio1_3c + 0.5f; const double ratio2_3c = ratio1_3c * div2_3c / SmallSinc::MUL; - + if (get3ChainCost(ratio, rollOff, ratio1_3c, ratio2_3c) < cost_2c) { list.push_front(new SmallSinc(div1_3c, typename SmallSinc::RollOff(0.5f / ratio1_3c, (ratio1_3c - 1) / ratio1_3c), 1.0)); ratio = ratio1_3c; div_2c = div2_3c; ratio_2c = ratio2_3c; } - + list.push_front(new SmallSinc(div_2c, typename SmallSinc::RollOff(0.5f / ratio_2c, (ratio_2c - 1) / ratio_2c), 1.0)); ratio = ratio_2c; } }*/ - + list.push_front(bigSinc = new BigSinc(static_cast(BigSinc::MUL / ratio + 0.5), typename BigSinc::RollOff(0.5f * (1 - rollOff), 0.5f * rollOff), 1.0)); - + return reallocateBuffer(); } diff --git a/common/resample/src/cic2.h b/common/resample/src/cic2.h index 6c3d6066..1bbf1164 100644 --- a/common/resample/src/cic2.h +++ b/common/resample/src/cic2.h @@ -22,7 +22,7 @@ #include "subresampler.h" #include "rshift16_round.h" -template +template class Cic2Core { // enum { BUFLEN = 64 }; // unsigned long buf[BUFLEN]; @@ -33,10 +33,10 @@ class Cic2Core { unsigned div_; unsigned nextdivn; // unsigned bufpos; - + // trouble if div is too large, may be better to only support power of 2 div static long mulForDiv(unsigned div) { return 0x10000 / (div * div); } - + public: explicit Cic2Core(const unsigned div = 2) { reset(div); } unsigned div() const { return div_; } @@ -45,7 +45,7 @@ public: static double gain(unsigned div) { return rshift16_round(-32768l * (div * div) * mulForDiv(div)) / -32768.0; } }; -template +template void Cic2Core::reset(const unsigned div) { sum2 = sum1 = 0; /*prev2 = */prev1 = 0; @@ -60,15 +60,15 @@ std::size_t Cic2Core::filter(short *out, const short *const in, std::s const std::size_t produced = (inlen + div_ - nextdivn) / div_; const long mul = mulForDiv(div_); const short *s = in; - + /*unsigned long sm1 = sum1; unsigned long sm2 = sum2; - + while (inlen >> 2) { unsigned n = (inlen < BUFLEN ? inlen >> 2 : BUFLEN >> 2); const unsigned end = n * 4; unsigned i = 0; - + do { unsigned long s1 = sm1 += static_cast(*s); s += channels; @@ -83,74 +83,74 @@ std::size_t Cic2Core::filter(short *out, const short *const in, std::s buf[i++] = sm2 += s1; buf[i++] = sm2 += sm1; } while (--n); - + while (bufpos < end) { const unsigned long out2 = buf[bufpos] - prev2; prev2 = buf[bufpos]; bufpos += div_; - + *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; } - + bufpos -= end; inlen -= end; } - + if (inlen) { unsigned n = inlen; unsigned i = 0; - + do { sm1 += static_cast(*s); s += channels; buf[i++] = sm2 += sm1; } while (--n); - + while (bufpos < inlen) { const unsigned long out2 = buf[bufpos] - prev2; prev2 = buf[bufpos]; bufpos += div_; - + *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; } - + bufpos -= inlen; } - + sum1 = sm1; sum2 = sm2;*/ - + unsigned long sm1 = sum1; unsigned long sm2 = sum2; - + if (inlen >= nextdivn) { { unsigned divn = nextdivn; - + do { sm1 += static_cast(*s); s += channels; sm2 += sm1; } while (--divn); - + const unsigned long out2 = sm2; sm2 = 0; - + *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; } - + if (div_ & 1) { std::size_t n = produced; - + while (--n) { unsigned divn = div_ >> 1; - + do { sm1 += static_cast(*s); s += channels; @@ -159,11 +159,11 @@ std::size_t Cic2Core::filter(short *out, const short *const in, std::s s += channels; sm2 += sm1; } while (--divn); - + sm1 += static_cast(*s); s += channels; sm2 += sm1; - + *out = rshift16_round(static_cast(sm2 - prev1) * mul); out += channels; prev1 = sm2; @@ -171,10 +171,10 @@ std::size_t Cic2Core::filter(short *out, const short *const in, std::s } } else { std::size_t n = produced; - + while (--n) { unsigned divn = div_ >> 1; - + do { sm1 += static_cast(*s); s += channels; @@ -183,38 +183,38 @@ std::size_t Cic2Core::filter(short *out, const short *const in, std::s s += channels; sm2 += sm1; } while (--divn); - + *out = rshift16_round(static_cast(sm2 - prev1) * mul); out += channels; prev1 = sm2; sm2 = 0; } } - + nextdivn = div_; } - + { unsigned divn = (in + inlen * channels - s) / channels; nextdivn -= divn; - + while (divn--) { sm1 += static_cast(*s); s += channels; sm2 += sm1; } } - + sum1 = sm1; sum2 = sm2; - + return produced; } template class Cic2 : public SubResampler { Cic2Core cics[channels]; - + public: enum { MAX_DIV = 64 }; explicit Cic2(unsigned div); @@ -233,11 +233,11 @@ Cic2::Cic2(const unsigned div) { template std::size_t Cic2::resample(short *const out, const short *const in, const std::size_t inlen) { std::size_t samplesOut; - + for (unsigned i = 0; i < channels; ++i) { samplesOut = cics[i].filter(out + i, in + i, inlen); } - + return samplesOut; } diff --git a/common/resample/src/cic3.h b/common/resample/src/cic3.h index cb4ee03e..76f6151e 100644 --- a/common/resample/src/cic3.h +++ b/common/resample/src/cic3.h @@ -22,7 +22,7 @@ #include "subresampler.h" #include "rshift16_round.h" -template +template class Cic3Core { // enum { BUFLEN = 64 }; // unsigned long buf[BUFLEN]; @@ -34,10 +34,10 @@ class Cic3Core { unsigned div_; unsigned nextdivn; // unsigned bufpos; - + // trouble if div is too large, may be better to only support power of 2 div static long mulForDiv(unsigned div) { return 0x10000 / (div * div * div); } - + public: explicit Cic3Core(const unsigned div = 1) { reset(div); } unsigned div() const { return div_; } @@ -46,7 +46,7 @@ public: static double gain(unsigned div) { return rshift16_round(-32768l * (div * div * div) * mulForDiv(div)) / -32768.0; } }; -template +template void Cic3Core::reset(const unsigned div) { sum3 = sum2 = sum1 = 0; prev2 = prev1 = 0; @@ -60,16 +60,16 @@ std::size_t Cic3Core::filter(short *out, const short *const in, std::s // const std::size_t produced = (inlen + div_ - (bufpos + 1)) / div_; const std::size_t produced = (inlen + div_ - nextdivn) / div_; const short *s = in; - + /*unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; - + while (inlen >> 1) { unsigned n = (inlen < BUFLEN ? inlen >> 1 : BUFLEN >> 1); const unsigned end = n * 2; unsigned i = 0; - + do { unsigned long s1 = sm1 += static_cast(*s); s += channels; @@ -80,65 +80,65 @@ std::size_t Cic3Core::filter(short *out, const short *const in, std::s buf[i++] = sm3 += s2; buf[i++] = sm3 += sm2; } while (--n); - + while (bufpos < end) { const unsigned long out3 = buf[bufpos] - prev3; prev3 = buf[bufpos]; bufpos += div_; - + const unsigned long out2 = out3 - prev2; prev2 = out3; - + *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; } - + bufpos -= end; inlen -= end; } - + if (inlen) { unsigned n = inlen; unsigned i = 0; - + do { sm1 += static_cast(*s); s += channels; sm2 += sm1; buf[i++] = sm3 += sm2; } while (--n); - + while (bufpos < inlen) { const unsigned long out3 = buf[bufpos] - prev3; prev3 = buf[bufpos]; bufpos += div_; - + const unsigned long out2 = out3 - prev2; prev2 = out3; - + *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; } - + bufpos -= inlen; } - + sum1 = sm1; sum2 = sm2; sum3 = sm3;*/ - - + + unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; - + if (inlen >= nextdivn) { const long mul = mulForDiv(div_); unsigned divn = nextdivn; std::size_t n = produced; - + do { do { sm1 += static_cast(*s); @@ -146,7 +146,7 @@ std::size_t Cic3Core::filter(short *out, const short *const in, std::s sm3 += sm2; s += channels; } while (--divn); - + const unsigned long out2 = sm3 - prev2; prev2 = sm3; *out = rshift16_round(static_cast(out2 - prev1) * mul); @@ -155,14 +155,14 @@ std::size_t Cic3Core::filter(short *out, const short *const in, std::s divn = div_; sm3 = 0; } while (--n); - + nextdivn = div_; } - + { unsigned divn = (in + inlen * channels - s) / channels; nextdivn -= divn; - + while (divn--) { sm1 += static_cast(*s); sm2 += sm1; @@ -170,15 +170,15 @@ std::size_t Cic3Core::filter(short *out, const short *const in, std::s s += channels; } } - + sum1 = sm1; sum2 = sm2; sum3 = sm3; - + return produced; } -/*template +/*template class Cic3EvenOddCore { unsigned long sum1; unsigned long sum2; @@ -188,25 +188,25 @@ class Cic3EvenOddCore { unsigned long prev3; unsigned div_; unsigned nextdivn; - + static int getMul(unsigned div) { return 0x10000 / (div * div * div); // trouble if div is too large, may be better to only support power of 2 div } - + void filterEven(short *out, const short *s, std::size_t n); void filterOdd(short *out, const short *s, std::size_t n); - + public: Cic3EvenOddCore(const unsigned div = 2) { reset(div); } - + unsigned div() const { return div_; } std::size_t filter(short *out, const short *in, std::size_t inlen); void reset(unsigned div); }; -template +template void Cic3EvenOddCore::reset(const unsigned div) { sum3 = sum2 = sum1 = 0; prev3 = prev2 = prev1 = 0; @@ -220,11 +220,11 @@ void Cic3EvenOddCore::filterEven(short *out, const short *s, std::size unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; - + while (n--) { { unsigned sn = div_ >> 1; - + do { unsigned long s1 = sm1 += static_cast(*s); s += channels; @@ -236,7 +236,7 @@ void Cic3EvenOddCore::filterEven(short *out, const short *s, std::size sm3 += sm2; } while (--sn); } - + const unsigned long out3 = sm3 - prev3; prev3 = sm3; const unsigned long out2 = out3 - prev2; @@ -245,7 +245,7 @@ void Cic3EvenOddCore::filterEven(short *out, const short *s, std::size prev1 = out2; out += channels; } - + sum1 = sm1; sum2 = sm2; sum3 = sm3; @@ -257,11 +257,11 @@ void Cic3EvenOddCore::filterOdd(short *out, const short *s, std::size_ unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; - + while (n--) { { unsigned sn = div_ >> 1; - + do { unsigned long s1 = sm1 += static_cast(*s); s += channels; @@ -273,12 +273,12 @@ void Cic3EvenOddCore::filterOdd(short *out, const short *s, std::size_ sm3 += sm2; } while (--sn); } - + sm1 += static_cast(*s); s += channels; sm2 += sm1; sm3 += sm2; - + const unsigned long out3 = sm3 - prev3; prev3 = sm3; const unsigned long out2 = out3 - prev2; @@ -287,7 +287,7 @@ void Cic3EvenOddCore::filterOdd(short *out, const short *s, std::size_ prev1 = out2; out += channels; } - + sum1 = sm1; sum2 = sm2; sum3 = sm3; @@ -297,12 +297,12 @@ template std::size_t Cic3EvenOddCore::filter(short *out, const short *const in, std::size_t inlen) { short *const outStart = out; const short *s = in; - + if (inlen >= nextdivn) { { { unsigned divn = nextdivn; - + do { sum1 += static_cast(*s); s += channels; @@ -310,7 +310,7 @@ std::size_t Cic3EvenOddCore::filter(short *out, const short *const in, sum3 += sum2; } while (--divn); } - + const unsigned long out3 = sum3 - prev3; prev3 = sum3; const unsigned long out2 = out3 - prev2; @@ -319,23 +319,23 @@ std::size_t Cic3EvenOddCore::filter(short *out, const short *const in, prev1 = out2; out += channels; } - + std::size_t n = (inlen - nextdivn) / div_; - + if (div_ & 1) filterOdd(out, s, n); else filterEven(out, s, n); - + s += n * div_ * channels; out += n * channels; nextdivn = div_; } - + { unsigned divn = inlen - (s - in) / channels; nextdivn -= divn; - + while (divn--) { sum1 += static_cast(*s); s += channels; @@ -343,14 +343,14 @@ std::size_t Cic3EvenOddCore::filter(short *out, const short *const in, sum3 += sum2; } } - + return (out - outStart) / channels; }*/ template class Cic3 : public SubResampler { Cic3Core cics[channels]; - + public: enum { MAX_DIV = 23 }; explicit Cic3(unsigned div); @@ -369,11 +369,11 @@ Cic3::Cic3(const unsigned div) { template std::size_t Cic3::resample(short *const out, const short *const in, const std::size_t inlen) { std::size_t samplesOut; - + for (unsigned i = 0; i < channels; ++i) { samplesOut = cics[i].filter(out + i, in + i, inlen); } - + return samplesOut; } diff --git a/common/resample/src/cic4.h b/common/resample/src/cic4.h index ccd37064..49e7ce52 100644 --- a/common/resample/src/cic4.h +++ b/common/resample/src/cic4.h @@ -22,7 +22,7 @@ #include "subresampler.h" #include "rshift16_round.h" -template +template class Cic4Core { enum { BUFLEN = 64 }; unsigned long buf[BUFLEN]; @@ -37,10 +37,10 @@ class Cic4Core { unsigned div_; // unsigned nextdivn; unsigned bufpos; - + // trouble if div is too large, may be better to only support power of 2 div static long mulForDiv(unsigned div) { return 0x10000 / (div * div * div * div); } - + public: explicit Cic4Core(const unsigned div = 1) { reset(div); } unsigned div() const { return div_; } @@ -49,7 +49,7 @@ public: static double gain(unsigned div) { return rshift16_round(-32768l * (div * div * div * div) * mulForDiv(div)) / -32768.0; } }; -template +template void Cic4Core::reset(const unsigned div) { sum4 = sum3 = sum2 = sum1 = 0; prev4 = prev3 = prev2 = prev1 = 0; @@ -64,7 +64,7 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s // const std::size_t produced = (inlen + div_ - nextdivn) / div_; const long mul = mulForDiv(div_); const short *s = in; - + unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; @@ -73,12 +73,12 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s unsigned long prv2 = prev2; unsigned long prv3 = prev3; unsigned long prv4 = prev4; - + while (inlen >> 2) { const unsigned end = inlen < BUFLEN ? inlen & ~3 : BUFLEN & ~3; unsigned long *b = buf; unsigned n = end; - + do { unsigned long s1 = sm1 += static_cast(s[0 * channels]); sm1 += static_cast(s[1 * channels]); @@ -99,30 +99,30 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s s += 4 * channels; b += 4; } while (n -= 4); - + while (bufpos < end) { const unsigned long out4 = buf[bufpos] - prv4; prv4 = buf[bufpos]; bufpos += div_; - + const unsigned long out3 = out4 - prv3; prv3 = out4; const unsigned long out2 = out3 - prv2; prv2 = out3; - + *out = rshift16_round(static_cast(out2 - prv1) * mul); prv1 = out2; out += channels; } - + bufpos -= end; inlen -= end; } - + if (inlen) { unsigned n = inlen; unsigned i = 0; - + do { sm1 += static_cast(*s); s += channels; @@ -130,25 +130,25 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s sm3 += sm2; buf[i++] = sm4 += sm3; } while (--n); - + while (bufpos < inlen) { const unsigned long out4 = buf[bufpos] - prv4; prv4 = buf[bufpos]; bufpos += div_; - + const unsigned long out3 = out4 - prv3; prv3 = out4; const unsigned long out2 = out3 - prv2; prv2 = out3; - + *out = rshift16_round(static_cast(out2 - prv1) * mul); prv1 = out2; out += channels; } - + bufpos -= inlen; } - + sum1 = sm1; sum2 = sm2; sum3 = sm3; @@ -157,16 +157,16 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s prev2 = prv2; prev3 = prv3; prev4 = prv4; - + /*unsigned long sm1 = sum1; unsigned long sm2 = sum2; unsigned long sm3 = sum3; unsigned long sm4 = sum4; - + if (produced) { unsigned divn = nextdivn; std::size_t n = produced; - + do { do { sm1 += static_cast(*s); @@ -175,7 +175,7 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s sm3 += sm2; sm4 += sm3; } while (--divn); - + const unsigned long out4 = sm4 - prev4; prev4 = sm4; const unsigned long out3 = out4 - prev3; @@ -185,17 +185,17 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s *out = rshift16_round(static_cast(out2 - prev1) * mul); prev1 = out2; out += channels; - + divn = div_; } while (--n); - + nextdivn = div_; } - + { unsigned divn = (in + inlen * channels - s) / channels; nextdivn -= divn; - + while (divn--) { sm1 += static_cast(*s); s += channels; @@ -204,19 +204,19 @@ std::size_t Cic4Core::filter(short *out, const short *const in, std::s sm4 += sm3; } } - + sum1 = sm1; sum2 = sm2; sum3 = sm3; sum4 = sm4;*/ - + return produced; } template class Cic4 : public SubResampler { Cic4Core cics[channels]; - + public: enum { MAX_DIV = 13 }; explicit Cic4(unsigned div); @@ -235,11 +235,11 @@ Cic4::Cic4(const unsigned div) { template std::size_t Cic4::resample(short *const out, const short *const in, const std::size_t inlen) { std::size_t samplesOut; - + for (unsigned i = 0; i < channels; ++i) { samplesOut = cics[i].filter(out + i, in + i, inlen); } - + return samplesOut; } diff --git a/common/resample/src/convoluter.h b/common/resample/src/convoluter.h index 668c98bf..99c419d2 100644 --- a/common/resample/src/convoluter.h +++ b/common/resample/src/convoluter.h @@ -30,7 +30,7 @@ class PolyPhaseConvoluter { Array const prevbuf; unsigned div_; unsigned x_; - + public: PolyPhaseConvoluter(const short *kernel, unsigned phaseLen, unsigned div); std::size_t filter(short *out, const short *in, std::size_t inlen); @@ -50,10 +50,10 @@ template std::size_t PolyPhaseConvoluter::filter(short *out, const short *const in, std::size_t inlen) { if (!kernel || !inlen) return 0; - + // The gist of what happens here is given by the commented pseudo-code below. // Note that the order of the kernel elements has been changed for efficiency in the real implementation. - + /*for (std::size_t x = 0; x < inlen + M; ++x) { const int end = x < inlen ? M + 1 : inlen + M - x; int j = x < M ? M - x : 0; @@ -63,9 +63,9 @@ std::size_t PolyPhaseConvoluter::filter(short *out, const shor buffer[x] += kernel[j] * start[(x - M + j) / phases]; } }*/ - + // Slightly more optimized version. - + /*for (std::size_t x = 0; x < inlen + M; ++x) { const int end = x < inlen ? M + 1 : inlen + M - x; int j = x < M ? M - x : 0; @@ -78,12 +78,12 @@ std::size_t PolyPhaseConvoluter::filter(short *out, const shor buffer[x] += *k++ * *s++; } while (--n); }*/ - + const std::size_t phaseLen = prevbuf.size() / channels; const std::size_t M = phaseLen * phases - 1; inlen *= phases; std::size_t x = x_; - + for (; x < (M < inlen ? M : inlen); x += div_) { for (int c = 0; c < channels; ++c) { const short *k = kernel + ((x + 1) % phases) * phaseLen; // adjust phase so we don't start on a virtual 0 sample @@ -93,18 +93,18 @@ std::size_t PolyPhaseConvoluter::filter(short *out, const shor for (; n; n -= channels) acc += *k++ * *(s-n); - + n = (x / phases + 1) * channels; s = in + n + c; - + do { acc += *k++ * *(s-n); } while (n -= channels); - + *out++ = rshift16_round(acc); } } - + // We could easily get rid of the division and modulus here by updating the // k and s pointers incrementally. However, we currently only use powers of 2 // and we would end up referencing more variables which often compiles to bad @@ -115,41 +115,41 @@ std::size_t PolyPhaseConvoluter::filter(short *out, const shor const short *const s = in + (x / phases + 1) * channels + c; long accl = 0, accr = 0; int i = -static_cast(phaseLen * channels); - + do { accl += *k * s[i ]; accr += *k * s[i+1]; ++k; } while (i += channels); - + out[0] = rshift16_round(accl); out[1] = rshift16_round(accr); out += 2; } - + if (channels & 1) { const short *k = kernel + ((x + 1) % phases) * phaseLen; // adjust phase so we don't start on a virtual 0 sample const short *const s = in + (x / phases + 1) * channels + channels-1; long acc = 0; int i = -static_cast(phaseLen * channels); - + do { acc += *k++ * s[i]; } while (i += channels); - + *out++ = rshift16_round(acc); } } - + const std::size_t produced = (x - x_) / div_; x_ = x - inlen; inlen /= phases; - + { short *p = prevbuf; const short *s = in + (inlen - phaseLen) * channels; unsigned n = phaseLen; - + if (inlen < phaseLen) { const unsigned i = phaseLen - inlen; std::memmove(p, p + inlen * channels, i * channels * sizeof *p); @@ -157,10 +157,10 @@ std::size_t PolyPhaseConvoluter::filter(short *out, const shor n -= i; s = in; } - + std::memcpy(p, s, n * channels * sizeof *p); } - + return produced; } diff --git a/common/resample/src/hammingsinc.h b/common/resample/src/hammingsinc.h index f9b6f853..f5275892 100644 --- a/common/resample/src/hammingsinc.h +++ b/common/resample/src/hammingsinc.h @@ -48,27 +48,27 @@ public: const float widthTimesTaps = 3.0f; return std::max(static_cast(std::ceil(widthTimesTaps / rollOffWidth)), 4u); } - + static float toFc(const float rollOffStart, const int taps) { const float startToFcDeltaTimesTaps = 1.27f; return startToFcDeltaTimesTaps / taps + rollOffStart; } - + public: const unsigned taps; const float fc; - + RollOff(float rollOffStart, float rollOffWidth) : taps(toTaps(rollOffWidth)), fc(toFc(rollOffStart, taps)) {} }; HammingSinc(unsigned div, unsigned phaseLen, double fc) : kernel(phaseLen * phases), convoluter_(kernel, phaseLen, div) { makeSincKernel(kernel, phases, phaseLen, fc, hammingWin, 1.0); } - + HammingSinc(unsigned div, RollOff ro, double gain) : kernel(ro.taps * phases), convoluter_(kernel, ro.taps, div) { makeSincKernel(kernel, phases, ro.taps, ro.fc, hammingWin, gain);} - + std::size_t resample(short *out, const short *in, std::size_t inlen) { return convoluter_.filter(out, in, inlen); } void adjustDiv(unsigned div) { convoluter_.adjustDiv(div); } unsigned mul() const { return MUL; } diff --git a/common/resample/src/i0.cpp b/common/resample/src/i0.cpp index a9fffe01..e02dccd1 100755 --- a/common/resample/src/i0.cpp +++ b/common/resample/src/i0.cpp @@ -23,14 +23,14 @@ double i0(double x) { double xpm_dmfac = 1.0; double m = 1.0; unsigned n = 16; - + x = 0.25 * x * x; - + do { xpm_dmfac *= x / (m*m); sum += xpm_dmfac; m += 1.0; } while (--n); - + return sum; } diff --git a/common/resample/src/kaiser50sinc.cpp b/common/resample/src/kaiser50sinc.cpp index 610974f3..cfbbb123 100644 --- a/common/resample/src/kaiser50sinc.cpp +++ b/common/resample/src/kaiser50sinc.cpp @@ -27,6 +27,6 @@ double kaiser50SincWin(const long n, const long M) { double x = static_cast(n * 2) / M - 1.0; x = x * x; x = beta * std::sqrt(1.0 - x); - + return i0(x) * i0beta_rec; } diff --git a/common/resample/src/kaiser50sinc.h b/common/resample/src/kaiser50sinc.h index 6ac019c0..d90894a3 100755 --- a/common/resample/src/kaiser50sinc.h +++ b/common/resample/src/kaiser50sinc.h @@ -45,27 +45,27 @@ public: const float widthTimesTaps = 2.715f; return std::max(static_cast(std::ceil(widthTimesTaps / rollOffWidth)), 4u); } - + static float toFc(const float rollOffStart, const int taps) { const float startToFcDeltaTimesTaps = 1.2f; return startToFcDeltaTimesTaps / taps + rollOffStart; } - + public: const unsigned taps; const float fc; - + RollOff(float rollOffStart, float rollOffWidth) : taps(toTaps(rollOffWidth)), fc(toFc(rollOffStart, taps)) {} }; Kaiser50Sinc(unsigned div, unsigned phaseLen, double fc) : kernel(phaseLen * phases), convoluter_(kernel, phaseLen, div) { makeSincKernel(kernel, phases, phaseLen, fc, kaiser50SincWin, 1.0); } - + Kaiser50Sinc(unsigned div, RollOff ro, double gain) : kernel(ro.taps * phases), convoluter_(kernel, ro.taps, div) { makeSincKernel(kernel, phases, ro.taps, ro.fc, kaiser50SincWin, gain);} - + std::size_t resample(short *out, const short *in, std::size_t inlen) { return convoluter_.filter(out, in, inlen); } void adjustDiv(unsigned div) { convoluter_.adjustDiv(div); } unsigned mul() const { return MUL; } diff --git a/common/resample/src/kaiser70sinc.cpp b/common/resample/src/kaiser70sinc.cpp index 723ecce1..58d58d93 100644 --- a/common/resample/src/kaiser70sinc.cpp +++ b/common/resample/src/kaiser70sinc.cpp @@ -23,10 +23,10 @@ double kaiser70SincWin(const long n, const long M) { const double beta = 6.9; static const double i0beta_rec = 1.0 / i0(beta); - + double x = static_cast(n * 2) / M - 1.0; x = x * x; x = beta * std::sqrt(1.0 - x); - + return i0(x) * i0beta_rec; } diff --git a/common/resample/src/kaiser70sinc.h b/common/resample/src/kaiser70sinc.h index 862613ea..26800fe8 100755 --- a/common/resample/src/kaiser70sinc.h +++ b/common/resample/src/kaiser70sinc.h @@ -45,23 +45,23 @@ public: const float widthTimesTaps = 3.75f; return std::max(static_cast(std::ceil(widthTimesTaps / rollOffWidth)), 4u); } - + static float toFc(const float rollOffStart, const int taps) { const float startToFcDeltaTimesTaps = 1.5f; return startToFcDeltaTimesTaps / taps + rollOffStart; } - + public: const unsigned taps; const float fc; - + RollOff(float rollOffStart, float rollOffWidth) : taps(toTaps(rollOffWidth)), fc(toFc(rollOffStart, taps)) {} }; Kaiser70Sinc(unsigned div, unsigned phaseLen, double fc) : kernel(phaseLen * phases), convoluter_(kernel, phaseLen, div) { makeSincKernel(kernel, phases, phaseLen, fc, kaiser70SincWin, 1.0); } - + Kaiser70Sinc(unsigned div, RollOff ro, double gain) : kernel(ro.taps * phases), convoluter_(kernel, ro.taps, div) { makeSincKernel(kernel, phases, ro.taps, ro.fc, kaiser70SincWin, gain);} diff --git a/common/resample/src/linint.h b/common/resample/src/linint.h index 4030827b..e9d1f8fa 100644 --- a/common/resample/src/linint.h +++ b/common/resample/src/linint.h @@ -30,7 +30,7 @@ class LinintCore { std::size_t pos_; unsigned fracPos_; int prevSample_; - + public: explicit LinintCore(long inRate = 1, long outRate = 1) { init(inRate, outRate); } @@ -98,7 +98,7 @@ std::size_t LinintCore::resample(short *const out, const short *const template class Linint : public Resampler { LinintCore cores[channels]; - + public: Linint(long inRate, long outRate); void adjustRate(long inRate, long outRate); @@ -110,7 +110,7 @@ public: template Linint::Linint(const long inRate, const long outRate) { setRate(inRate, outRate); - + for (int i = 0; i < channels; ++i) cores[i].init(inRate, outRate); } @@ -118,7 +118,7 @@ Linint::Linint(const long inRate, const long outRate) { template void Linint::adjustRate(const long inRate, const long outRate) { setRate(inRate, outRate); - + for (int i = 0; i < channels; ++i) cores[i].adjustRate(inRate, outRate); } @@ -126,10 +126,10 @@ void Linint::adjustRate(const long inRate, const long outRate) { template std::size_t Linint::resample(short *const out, const short *const in, const std::size_t inlen) { std::size_t outlen = 0; - + for (int i = 0; i < channels; ++i) outlen = cores[i].resample(out + i, in + i, inlen); - + return outlen; } diff --git a/common/resample/src/makesinckernel.cpp b/common/resample/src/makesinckernel.cpp index 591cc6d1..3e154614 100755 --- a/common/resample/src/makesinckernel.cpp +++ b/common/resample/src/makesinckernel.cpp @@ -23,119 +23,119 @@ void makeSincKernel(short *const kernel, const unsigned phases, const unsigned phaseLen, double fc, double (*win)(long m, long M), double const maxAllowedGain) { static const double PI = 3.14159265358979323846; fc /= phases; - + /*{ const Array dkernel(phaseLen * phases); const long M = static_cast(phaseLen) * phases - 1; - + for (long i = 0; i < M + 1; ++i) { const double sinc = i * 2 == M ? PI * fc : std::sin(PI * fc * (i * 2 - M)) / (i * 2 - M); - + dkernel[((phases - (i % phases)) % phases) * phaseLen + i / phases] = win(i, M) * sinc; } - + double maxabsgain = 0; - + for (unsigned ph = 0; ph < phases; ++ph) { double gain = 0; double absgain = 0; - + for (unsigned i = 0; i < phaseLen; ++i) { gain += dkernel[ph * phaseLen + i]; absgain += std::abs(dkernel[ph * phaseLen + i]); } - + gain = 1.0 / gain; - + // Per phase normalization to avoid DC fluctuations. for (unsigned i = 0; i < phaseLen; ++i) dkernel[ph * phaseLen + i] *= gain; - + absgain *= gain; - + if (absgain > maxabsgain) maxabsgain = absgain; } - + const double gain = (0x10000 - 0.5 * phaseLen) * maxAllowedGain / maxabsgain; - + for (long i = 0; i < M + 1; ++i) kernel[i] = std::floor(dkernel[i] * gain + 0.5); }*/ - + // The following is equivalent to the more readable version above - + const long M = static_cast(phaseLen) * phases - 1; const Array dkernel(M / 2 + 1); - + { double *dk = dkernel; - + for (unsigned ph = 0; ph < phases; ++ph) { for (long i = ph; i < M / 2 + 1; i += phases) { const double sinc = i * 2 == M ? PI * fc : std::sin(PI * fc * (i * 2 - M)) / (i * 2 - M); - + *dk++ = win(i, M) * sinc; } } } - + double maxabsgain = 0.0; - + { double *dkp1 = dkernel; double *dkp2 = dkernel + M / 2; - + for (unsigned ph = 0; ph < (phases + 1) / 2; ++ph) { double gain = 0.0; double absgain = 0.0; - + { const double *kp1 = dkp1; const double *kp2 = dkp2; long i = ph; - + for (; i < M / 2 + 1; i += phases) { gain += *kp1; absgain += std::abs(*kp1++); } - + for (; i < M + 1; i += phases) { gain += *kp2; absgain += std::abs(*kp2--); } } - + gain = 1.0 / gain; - + long i = ph; - + for (; i < M / 2 + 1; i += phases) *dkp1++ *= gain; - + if (dkp1 < dkp2) { for (; i < M + 1; i += phases) *dkp2-- *= gain; } - + absgain *= gain; - + if (absgain > maxabsgain) maxabsgain = absgain; } } - + const double gain = (0x10000 - 0.5 * phaseLen) * maxAllowedGain / maxabsgain; const double *dk = dkernel; - + for (unsigned ph = 0; ph < phases; ++ph) { short *k = kernel + ((phases - ph) % phases) * phaseLen; short *km = kernel + phaseLen - 1 + ((ph + 1) % phases) * phaseLen; - + for (long i = ph; i < M / 2 + 1; i += phases) *km-- = *k++ = static_cast(std::floor(*dk++ * gain + 0.5)); } diff --git a/common/resample/src/rectsinc.h b/common/resample/src/rectsinc.h index 8bb5508f..eab7a59a 100644 --- a/common/resample/src/rectsinc.h +++ b/common/resample/src/rectsinc.h @@ -45,27 +45,27 @@ public: const float widthTimesTaps = 0.9f; return std::max(static_cast(std::ceil(widthTimesTaps / rollOffWidth)), 4u); } - + static float toFc(const float rollOffStart, const int taps) { const float startToFcDeltaTimesTaps = 0.43f; return startToFcDeltaTimesTaps / taps + rollOffStart; } - + public: const unsigned taps; const float fc; - + RollOff(float rollOffStart, float rollOffWidth) : taps(toTaps(rollOffWidth)), fc(toFc(rollOffStart, taps)) {} }; RectSinc(unsigned div, unsigned phaseLen, double fc) : kernel(phaseLen * phases), convoluter_(kernel, phaseLen, div) { makeSincKernel(kernel, phases, phaseLen, fc, rectWin, 1.0); } - + RectSinc(unsigned div, RollOff ro, double gain) : kernel(ro.taps * phases), convoluter_(kernel, ro.taps, div) { makeSincKernel(kernel, phases, ro.taps, ro.fc, rectWin, gain);} - + std::size_t resample(short *out, const short *in, std::size_t inlen) { return convoluter_.filter(out, in, inlen); } void adjustDiv(unsigned div) { convoluter_.adjustDiv(div); } unsigned mul() const { return MUL; } diff --git a/common/resample/src/u48div.cpp b/common/resample/src/u48div.cpp index ad5cdec6..1d20b5be 100644 --- a/common/resample/src/u48div.cpp +++ b/common/resample/src/u48div.cpp @@ -21,7 +21,7 @@ unsigned long u48div(unsigned long num1, unsigned num2, const unsigned long den) { unsigned long res = 0; unsigned s = 16; - + do { if (num1 < 0x10000) { num1 <<= s; @@ -33,22 +33,22 @@ unsigned long u48div(unsigned long num1, unsigned num2, const unsigned long den) num1 <<= maxs; num1 |= (num2 >> (s -= maxs)) & ((1 << maxs) - 1); } - + if (num1 < 0x10000000) { const unsigned maxs = s < 4 ? s : 4; num1 <<= maxs; num1 |= (num2 >> (s -= maxs)) & ((1 << maxs) - 1); } - + while (num1 < den && s) { num1 <<= 1; // if this overflows we're screwed num1 |= num2 >> --s & 1; } } - + res += (num1 / den) << s; num1 = (num1 % den); } while (s); - + return res; } diff --git a/common/resample/src/upsampler.h b/common/resample/src/upsampler.h index 03d622b0..27ce3baf 100644 --- a/common/resample/src/upsampler.h +++ b/common/resample/src/upsampler.h @@ -25,7 +25,7 @@ template class Upsampler : public SubResampler { unsigned mul_; - + public: Upsampler(const unsigned mul) : mul_(mul) {} std::size_t resample(short *out, const short *in, std::size_t inlen); @@ -37,14 +37,14 @@ template std::size_t Upsampler::resample(short *out, const short *in, std::size_t inlen) { if (inlen) { std::memset(out, 0, inlen * mul_ * channels * sizeof *out); - + do { std::memcpy(out, in, channels * sizeof *out); in += channels; out += mul_ * channels; } while (--inlen); } - + return inlen * mul_; } diff --git a/common/ringbuffer.h b/common/ringbuffer.h index 03072981..35a590b8 100644 --- a/common/ringbuffer.h +++ b/common/ringbuffer.h @@ -30,32 +30,32 @@ class RingBuffer { std::size_t sz; std::size_t rpos; std::size_t wpos; - + public: explicit RingBuffer(const std::size_t sz_in = 0) : sz(0), rpos(0), wpos(0) { reset(sz_in); } - + std::size_t avail() const { return (wpos < rpos ? 0 : sz) + rpos - wpos - 1; } - + void clear() { wpos = rpos = 0; } - + void fill(T value); - + void read(T *out, std::size_t num); - + void reset(std::size_t sz_in); - + std::size_t size() const { return sz - 1; } - + std::size_t used() const { return (wpos < rpos ? sz : 0) + wpos - rpos; } - + void write(const T *in, std::size_t num); }; @@ -70,16 +70,16 @@ template void RingBuffer::read(T *out, std::size_t num) { if (rpos + num > sz) { const std::size_t n = sz - rpos; - + std::memcpy(out, buf + rpos, n * sizeof *out); - + rpos = 0; num -= n; out += n; } - + std::memcpy(out, buf + rpos, num * sizeof *out); - + if ((rpos += num) == sz) rpos = 0; } @@ -95,16 +95,16 @@ template void RingBuffer::write(const T *in, std::size_t num) { if (wpos + num > sz) { const std::size_t n = sz - wpos; - + std::memcpy(buf + wpos, in, n * sizeof *buf); - + wpos = 0; num -= n; in += n; } - + std::memcpy(buf + wpos, in, num * sizeof *buf); - + if ((wpos += num) == sz) wpos = 0; } diff --git a/common/videolink/rgb32conv.cpp b/common/videolink/rgb32conv.cpp index 7a96a829..5b4f8563 100755 --- a/common/videolink/rgb32conv.cpp +++ b/common/videolink/rgb32conv.cpp @@ -28,12 +28,12 @@ class Rgb32ToUyvy { gambatte::uint_least32_t rgb32; gambatte::uint_least32_t uyvy; }; - + enum { cache_size = 0x100 }; enum { cache_mask = cache_size - 1 }; - + CacheUnit cache[cache_size]; - + public: Rgb32ToUyvy(); void operator()(const gambatte::uint_least32_t *s, gambatte::uint_least32_t *d, @@ -54,7 +54,7 @@ void Rgb32ToUyvy::operator()(const gambatte::uint_least32_t *s, { while (h--) { unsigned n = w >> 1; - + do { if ((cache[*s & cache_mask].rgb32 - *s) | (cache[*(s+1) & cache_mask].rgb32 - *(s+1))) { cache[*s & cache_mask].rgb32 = *s; @@ -76,7 +76,7 @@ void Rgb32ToUyvy::operator()(const gambatte::uint_least32_t *s, cache[*(s+1) & cache_mask].uyvy = (y & 0xFF000000) | (v >> 8 & 0x00FF0000) | (y >> 16 & 0x0000FF00) | u >> 24; #endif } - + *d = cache[*s & cache_mask].uyvy; *(d+1) = cache[*(s+1) & cache_mask].uyvy; s += 2; @@ -118,10 +118,10 @@ public: height_(height) { } - + virtual void* inBuf() const { return inbuf_; } virtual int inPitch() const { return width_; } - + virtual void draw(void *dst, int dstpitch) { rgb32ToUyvy(inbuf_, static_cast(dst), width_, height_, inPitch(), dstpitch); } @@ -139,10 +139,10 @@ public: height_(height) { } - + virtual void* inBuf() const { return inbuf_; } virtual int inPitch() const { return width_; } - + virtual void draw(void *dst, int dstpitch) { rgb32ToRgb16(inbuf_, static_cast(dst), width_, height_, inPitch(), dstpitch); } diff --git a/common/videolink/vfilterinfo.h b/common/videolink/vfilterinfo.h index 5e072ebd..c9edb2e6 100755 --- a/common/videolink/vfilterinfo.h +++ b/common/videolink/vfilterinfo.h @@ -26,12 +26,12 @@ class VideoLink; struct VfilterInfo { enum { IN_WIDTH = 160 }; enum { IN_HEIGHT = 144 }; - + const char *handle; unsigned outWidth; unsigned outHeight; VideoLink* (*create)(); - + static const VfilterInfo& get(std::size_t n); static std::size_t numVfilters(); }; diff --git a/common/videolink/vfilters/catrom2x.cpp b/common/videolink/vfilters/catrom2x.cpp index 0885af8e..09378689 100755 --- a/common/videolink/vfilters/catrom2x.cpp +++ b/common/videolink/vfilters/catrom2x.cpp @@ -30,129 +30,129 @@ struct Colorsum { static void merge_columns(gambatte::uint_least32_t *dest, const Colorsum *sums) { unsigned w = WIDTH; - + while (w--) { { gambatte::uint_least32_t rsum = sums[1].r; gambatte::uint_least32_t gsum = sums[1].g; gambatte::uint_least32_t bsum = sums[1].b; - + if (rsum & 0x80000000) rsum = 0; if (gsum & 0x80000000) gsum = 0; if (bsum & 0x80000000) bsum = 0; - + rsum <<= 12; rsum += 0x008000; gsum >>= 4; gsum += 0x0080; bsum += 0x0008; bsum >>= 4; - + if (rsum > 0xFF0000) rsum = 0xFF0000; if (gsum > 0x00FF00) gsum = 0x00FF00; if (bsum > 0x0000FF) bsum = 0x0000FF; - + *dest++ = (rsum & 0xFF0000) | (gsum & 0x00FF00) | bsum; } - + { gambatte::uint_least32_t rsum = sums[1].r * 9; gambatte::uint_least32_t gsum = sums[1].g * 9; gambatte::uint_least32_t bsum = sums[1].b * 9; - + rsum -= sums[0].r; gsum -= sums[0].g; bsum -= sums[0].b; - + rsum += sums[2].r * 9; gsum += sums[2].g * 9; bsum += sums[2].b * 9; - + rsum -= sums[3].r; gsum -= sums[3].g; bsum -= sums[3].b; - + if (rsum & 0x80000000) rsum = 0; if (gsum & 0x80000000) gsum = 0; if (bsum & 0x80000000) bsum = 0; - + rsum <<= 8; rsum += 0x008000; gsum >>= 8; gsum += 0x000080; bsum += 0x000080; bsum >>= 8; - + if (rsum > 0xFF0000) rsum = 0xFF0000; if (gsum > 0x00FF00) gsum = 0x00FF00; if (bsum > 0x0000FF) bsum = 0x0000FF; - + *dest++ = (rsum & 0xFF0000) | (gsum & 0x00FF00) | bsum; } - + ++sums; } } static void filter(gambatte::uint_least32_t *dline, const int pitch, const gambatte::uint_least32_t *sline) { Colorsum sums[PITCH]; - + for (unsigned h = HEIGHT; h--;) { { const gambatte::uint_least32_t *s = sline; Colorsum *sum = sums; unsigned n = PITCH; - + while (n--) { unsigned long pixel = *s; sum->r = pixel >> 12 & 0x000FF0 ; pixel <<= 4; sum->g = pixel & 0x0FF000; sum->b = pixel & 0x000FF0; - + ++s; ++sum; } } - + merge_columns(dline, sums); dline += pitch; - + { const gambatte::uint_least32_t *s = sline; Colorsum *sum = sums; unsigned n = PITCH; - + while (n--) { unsigned long pixel = *s; unsigned long rsum = (pixel >> 16) * 9; unsigned long gsum = (pixel & 0x00FF00) * 9; unsigned long bsum = (pixel & 0x0000FF) * 9; - + pixel = s[-1*PITCH]; rsum -= pixel >> 16; gsum -= pixel & 0x00FF00; bsum -= pixel & 0x0000FF; - + pixel = s[1*PITCH]; rsum += (pixel >> 16) * 9; gsum += (pixel & 0x00FF00) * 9; bsum += (pixel & 0x0000FF) * 9; - + pixel = s[2*PITCH]; rsum -= pixel >> 16; gsum -= pixel & 0x00FF00; bsum -= pixel & 0x0000FF; - + sum->r = rsum; sum->g = gsum; sum->b = bsum; - + ++s; ++sum; } } - + merge_columns(dline, sums); dline += pitch; sline += PITCH; diff --git a/common/videolink/vfilters/catrom2x.h b/common/videolink/vfilters/catrom2x.h index b0bcf951..7e0b2e59 100755 --- a/common/videolink/vfilters/catrom2x.h +++ b/common/videolink/vfilters/catrom2x.h @@ -29,7 +29,7 @@ class Catrom2x : public VideoLink { public: enum { OUT_WIDTH = VfilterInfo::IN_WIDTH * 2 }; enum { OUT_HEIGHT = VfilterInfo::IN_HEIGHT * 2 }; - + Catrom2x(); virtual void* inBuf() const; virtual int inPitch() const; diff --git a/common/videolink/vfilters/catrom3x.cpp b/common/videolink/vfilters/catrom3x.cpp index 599c1f26..87f54791 100755 --- a/common/videolink/vfilters/catrom3x.cpp +++ b/common/videolink/vfilters/catrom3x.cpp @@ -30,7 +30,7 @@ struct Colorsum { static void merge_columns(gambatte::uint_least32_t *dest, const Colorsum *sums) { unsigned w = WIDTH; - + while (w--) { { gambatte::uint_least32_t rsum = sums[1].r; @@ -229,7 +229,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba const gambatte::uint_least32_t *s = sline; Colorsum *sum = sums; unsigned n = PITCH; - + while (n--) { const unsigned long pixel = *s; sum->r = (pixel >> 16) * 27; @@ -240,7 +240,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba ++sum; } } - + merge_columns(dline, sums); dline += pitch; @@ -248,7 +248,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba const gambatte::uint_least32_t *s = sline; Colorsum *sum = sums; unsigned n = PITCH; - + while (n--) { unsigned long pixel = *s; unsigned long rsum = (pixel >> 16) * 21; @@ -279,7 +279,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba ++sum; } } - + merge_columns(dline, sums); dline += pitch; @@ -287,7 +287,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba const gambatte::uint_least32_t *s = sline; Colorsum *sum = sums; unsigned n = PITCH; - + while (n--) { unsigned long pixel = *s; unsigned long rsum = (pixel >> 16) * 9; @@ -318,7 +318,7 @@ static void filter(gambatte::uint_least32_t *dline, const int pitch, const gamba ++sum; } } - + merge_columns(dline, sums); dline += pitch; sline += PITCH; diff --git a/common/videolink/vfilters/catrom3x.h b/common/videolink/vfilters/catrom3x.h index 7e9f06ed..0968734b 100755 --- a/common/videolink/vfilters/catrom3x.h +++ b/common/videolink/vfilters/catrom3x.h @@ -29,7 +29,7 @@ class Catrom3x : public VideoLink { public: enum { OUT_WIDTH = VfilterInfo::IN_WIDTH * 3 }; enum { OUT_HEIGHT = VfilterInfo::IN_HEIGHT * 3 }; - + Catrom3x(); virtual void* inBuf() const; virtual int inPitch() const; diff --git a/common/videolink/vfilters/kreed2xsai.cpp b/common/videolink/vfilters/kreed2xsai.cpp index 767e613f..5d07124b 100755 --- a/common/videolink/vfilters/kreed2xsai.cpp +++ b/common/videolink/vfilters/kreed2xsai.cpp @@ -27,17 +27,17 @@ static inline int getResult1(const unsigned long a, const unsigned long b, const int x = 0; int y = 0; int r = 0; - + if (a == c) ++x; else if (b == c) ++y; - + if (a == d) ++x; else if (b == d) ++y; - + if (x <= 1) ++r; - + if (y <= 1) --r; - + return r; } @@ -45,17 +45,17 @@ static inline int getResult2(const unsigned long a, const unsigned long b, const int x = 0; int y = 0; int r = 0; - + if (a == c) ++x; else if (b == c) ++y; - + if (a == d) ++x; else if (b == d) ++y; - + if (x <= 1) --r; - + if (y <= 1) ++r; - + return r; } @@ -65,7 +65,7 @@ static inline unsigned long interpolate(const unsigned long a, const unsigned lo static inline unsigned long qInterpolate(const unsigned long a, const unsigned long b, const unsigned long c, const unsigned long d) { const unsigned long lowBits = ((a & 0x030303) + (b & 0x030303) + (c & 0x030303) + (d & 0x030303)) & 0x030303; - + return (a + b + c + d - lowBits) >> 2; } @@ -73,20 +73,20 @@ template static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const gambatte::uint_least32_t *srcPtr) { unsigned h = height; - + while (h--) { const gambatte::uint_least32_t *bP = srcPtr; gambatte::uint_least32_t *dP = dstPtr; - + for (unsigned finish = width; finish--;) { register unsigned long colorA, colorB; unsigned long colorC, colorD, colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, - + colorM, colorN, colorO, colorP; unsigned long product, product1, product2; - + //--------------------------------------- // Map of the pixels: I|E F|J // G|A B|K @@ -96,22 +96,22 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g colorE = *(bP - srcPitch); colorF = *(bP - srcPitch + 1); colorJ = *(bP - srcPitch + 2); - + colorG = *(bP - 1); colorA = *(bP); colorB = *(bP + 1); colorK = *(bP + 2); - + colorH = *(bP + srcPitch - 1); colorC = *(bP + srcPitch); colorD = *(bP + srcPitch + 1); colorL = *(bP + srcPitch + 2); - + colorM = *(bP + srcPitch * 2 - 1); colorN = *(bP + srcPitch * 2); colorO = *(bP + srcPitch * 2 + 1); colorP = *(bP + srcPitch * 2 + 2); - + if (colorA == colorD && colorB != colorC) { if ((colorA == colorE && colorB == colorL) || (colorA == colorC && colorA == colorF @@ -120,7 +120,7 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g } else { product = interpolate(colorA, colorB); } - + if ((colorA == colorG && colorC == colorO) || (colorA == colorB && colorA == colorH && colorG != colorC && colorC == colorM)) { @@ -137,7 +137,7 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g } else { product = interpolate(colorA, colorB); } - + if ((colorC == colorH && colorA == colorF) || (colorC == colorG && colorC == colorD && colorA != colorH && colorA == colorI)) { @@ -153,15 +153,15 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g product2 = colorA; } else { register int r = 0; - + product1 = interpolate(colorA, colorC); product = interpolate(colorA, colorB); - + r += getResult1(colorA, colorB, colorG, colorE); r += getResult2(colorB, colorA, colorK, colorF); r += getResult2(colorB, colorA, colorH, colorN); r += getResult1(colorA, colorB, colorL, colorO); - + if (r > 0) product2 = colorA; else if (r < 0) @@ -172,7 +172,7 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g } } else { product2 = qInterpolate(colorA, colorB, colorC, colorD); - + if (colorA == colorC && colorA == colorF && colorB != colorE && colorB == colorJ) { product = colorA; @@ -182,7 +182,7 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g } else { product = interpolate(colorA, colorB); } - + if (colorA == colorB && colorA == colorH && colorG != colorC && colorC == colorM) { product1 = colorA; @@ -197,11 +197,11 @@ static void filter(gambatte::uint_least32_t *dstPtr, const int dstPitch, const g *(dP + 1) = product; *(dP + dstPitch) = product1; *(dP + dstPitch + 1) = product2; - + ++bP; dP += 2; } - + srcPtr += srcPitch; dstPtr += dstPitch * 2; } diff --git a/common/videolink/vfilters/kreed2xsai.h b/common/videolink/vfilters/kreed2xsai.h index 854f00f8..13dc474a 100755 --- a/common/videolink/vfilters/kreed2xsai.h +++ b/common/videolink/vfilters/kreed2xsai.h @@ -29,7 +29,7 @@ class Kreed2xSaI : public VideoLink { public: enum { OUT_WIDTH = VfilterInfo::IN_WIDTH * 2 }; enum { OUT_HEIGHT = VfilterInfo::IN_HEIGHT * 2 }; - + Kreed2xSaI(); virtual void* inBuf() const; virtual int inPitch() const; diff --git a/common/videolink/vfilters/maxsthq2x.h b/common/videolink/vfilters/maxsthq2x.h index 39c4118c..2f972c3d 100755 --- a/common/videolink/vfilters/maxsthq2x.h +++ b/common/videolink/vfilters/maxsthq2x.h @@ -29,7 +29,7 @@ class MaxStHq2x : public VideoLink { public: enum { OUT_WIDTH = VfilterInfo::IN_WIDTH * 2 }; enum { OUT_HEIGHT = VfilterInfo::IN_HEIGHT * 2 }; - + MaxStHq2x(); virtual void* inBuf() const; virtual int inPitch() const; diff --git a/common/videolink/vfilters/maxsthq3x.h b/common/videolink/vfilters/maxsthq3x.h index ca5db660..3b99d0e2 100755 --- a/common/videolink/vfilters/maxsthq3x.h +++ b/common/videolink/vfilters/maxsthq3x.h @@ -29,7 +29,7 @@ class MaxStHq3x : public VideoLink { public: enum { OUT_WIDTH = VfilterInfo::IN_WIDTH * 3 }; enum { OUT_HEIGHT = VfilterInfo::IN_HEIGHT * 3 }; - + MaxStHq3x(); virtual void* inBuf() const; virtual int inPitch() const; diff --git a/gambatte_qt/src/cheatdialog.cpp b/gambatte_qt/src/cheatdialog.cpp index 2802980f..f0d05ebf 100644 --- a/gambatte_qt/src/cheatdialog.cpp +++ b/gambatte_qt/src/cheatdialog.cpp @@ -44,20 +44,20 @@ struct CheatItemLess { class CheatListModel : public QAbstractListModel { std::vector items_; - + public: explicit CheatListModel(QObject *parent = 0) : QAbstractListModel(parent) {} explicit CheatListModel(const std::vector &items, QObject *parent = 0) : QAbstractListModel(parent), items_(items) { } - + virtual int rowCount(const QModelIndex&) const { return items_.size(); } - + virtual Qt::ItemFlags flags(const QModelIndex &index) const { return QAbstractListModel::flags(index) | Qt::ItemIsUserCheckable; } - + virtual QVariant data(const QModelIndex &index, const int role) const { if (static_cast(index.row()) < items_.size()) { switch (role) { @@ -65,19 +65,19 @@ public: case Qt::CheckStateRole: return items_[index.row()].checked ? Qt::Checked : Qt::Unchecked; } } - + return QVariant(); } - + virtual bool setData(const QModelIndex &index, const QVariant &value, const int role) { if (static_cast(index.row()) < items_.size() && role == Qt::CheckStateRole) { items_[index.row()].checked = value.toBool(); return true; } - + return false; } - + const std::vector & items() const { return items_; } }; @@ -95,19 +95,19 @@ GetCheatInput::GetCheatInput(const QString &desc, const QString &code, QWidget * l->addWidget(descEdit_); l->addWidget(new QLabel(tr("GG/GS Code:"))); l->addWidget(codeEdit_); - + const QString cheatre("((01[0-9a-fA-F]{6,6})|([0-9a-fA-F]{3,3}-[0-9a-fA-F]{3,3}(-[0-9a-fA-F]{3,3})?))"); codeEdit_->setValidator(new QRegExpValidator(QRegExp(cheatre + "(;" + cheatre + ")*"), codeEdit_)); codeEdit_->setToolTip(tr("Game Genie: hhh-hhh-hhh;...\nGame Shark: 01hhhhhh;...")); codeEdit_->setWhatsThis(codeEdit_->toolTip()); - + QHBoxLayout *const hl = new QHBoxLayout; l->addLayout(hl); l->setAlignment(hl, Qt::AlignBottom | Qt::AlignRight); hl->addWidget(okButton_); QPushButton *const cancelButton = new QPushButton(tr("Cancel")); hl->addWidget(cancelButton); - + okButton_->setEnabled(codeEdit_->hasAcceptableInput()); connect(codeEdit_, SIGNAL(textChanged(const QString&)), this, SLOT(codeTextEdited(const QString&))); connect(okButton_, SIGNAL(clicked()), this, SLOT(accept())); @@ -134,35 +134,35 @@ CheatDialog::CheatDialog(const QString &savefile, QWidget *const parent) savefile_(savefile) { setWindowTitle("Cheats"); - + QVBoxLayout *const mainLayout = new QVBoxLayout; setLayout(mainLayout); QVBoxLayout *const viewLayout = new QVBoxLayout; mainLayout->addLayout(viewLayout); viewLayout->addWidget(view_); resetViewModel(items_); - + { QPushButton *const addButton = new QPushButton("Add..."); viewLayout->addWidget(addButton); connect(addButton, SIGNAL(clicked()), this, SLOT(addCheat())); } - + viewLayout->addWidget(editButton_); connect(editButton_, SIGNAL(clicked()), this, SLOT(editCheat())); - + viewLayout->addWidget(rmButton_); connect(rmButton_, SIGNAL(clicked()), this, SLOT(removeCheat())); - + { QPushButton *const okButton = new QPushButton(tr("OK")); QPushButton *const cancelButton = new QPushButton(tr("Cancel")); - + okButton->setDefault(true); - + connect(okButton, SIGNAL(clicked()), this, SLOT(accept())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject())); - + QBoxLayout *const hLayout = new QHBoxLayout; hLayout->addWidget(okButton); hLayout->addWidget(cancelButton); @@ -177,21 +177,21 @@ CheatDialog::~CheatDialog() { void CheatDialog::loadFromSettingsFile() { items_.clear(); - + if (!gamename_.isEmpty()) { QSettings settings(savefile_, QSettings::IniFormat); settings.beginGroup(gamename_); - + foreach (const QString &key, settings.childKeys()) { const QStringList &l = settings.value(key).toStringList(); - + if (1 < l.size()) items_.push_back(CheatListItem(l[0], l[1], 2 < l.size() && l[2] == "on")); } - + std::sort(items_.begin(), items_.end(), CheatItemLess()); } - + resetViewModel(items_); } @@ -200,15 +200,15 @@ void CheatDialog::saveToSettingsFile() { QSettings settings(savefile_, QSettings::IniFormat); settings.beginGroup(gamename_); settings.remove(""); - + for (std::size_t i = 0; i < items_.size(); ++i) { QStringList l; l.append(items_[i].label); l.append(items_[i].code); - + if (items_[i].checked) l.append("on"); - + settings.setValue(QString::number(i), l); } } @@ -230,13 +230,13 @@ void CheatDialog::resetViewModel(const std::vector &items, const void CheatDialog::addCheat() { const scoped_ptr getCheatDialog(new GetCheatInput(QString(), QString(), this)); getCheatDialog->setWindowTitle(tr("Add Cheat")); - + if (getCheatDialog->exec()) { std::vector items = reinterpret_cast(view_->model())->items(); const CheatListItem item(getCheatDialog->descText(), getCheatDialog->codeText(), false); const std::vector::iterator it = items.insert(std::lower_bound(items.begin(), items.end(), item, CheatItemLess()), item); - + resetViewModel(items, it - items.begin()); } } @@ -244,19 +244,19 @@ void CheatDialog::addCheat() { void CheatDialog::editCheat() { const std::size_t row = view_->selectionModel()->currentIndex().row(); std::vector items = reinterpret_cast(view_->model())->items(); - + if (row < items.size()) { const scoped_ptr getCheatDialog( new GetCheatInput(items[row].label, items[row].code, this)); getCheatDialog->setWindowTitle(tr("Edit Cheat")); - + if (getCheatDialog->exec()) { const CheatListItem item(getCheatDialog->descText(), getCheatDialog->codeText(), items[row].checked); items.erase(items.begin() + row); - + const std::vector::iterator it = items.insert(std::lower_bound(items.begin(), items.end(), item, CheatItemLess()), item); - + resetViewModel(items, it - items.begin()); } } @@ -266,7 +266,7 @@ void CheatDialog::removeCheat() { if (view_->selectionModel()->currentIndex().isValid()) { const std::size_t row = view_->selectionModel()->currentIndex().row(); std::vector items = reinterpret_cast(view_->model())->items(); - + if (row < items.size()) { items.erase(items.begin() + row); resetViewModel(items, row); @@ -281,12 +281,12 @@ void CheatDialog::selectionChanged(const QModelIndex ¤t, const QModelIndex const QString CheatDialog::cheats() const { QString s; - + for (std::size_t i = 0; i < items_.size(); ++i) { if (items_[i].checked) s += items_[i].code + ";"; } - + return s; } diff --git a/gambatte_qt/src/cheatdialog.h b/gambatte_qt/src/cheatdialog.h index f0229dc5..0a922fd1 100644 --- a/gambatte_qt/src/cheatdialog.h +++ b/gambatte_qt/src/cheatdialog.h @@ -27,7 +27,7 @@ struct CheatListItem { QString label; QString code; bool checked; - + CheatListItem(const QString &label, const QString &code, const bool checked) : label(label), code(code), checked(checked) { @@ -36,14 +36,14 @@ struct CheatListItem { class GetCheatInput : public QDialog { Q_OBJECT - + class QLineEdit *const codeEdit_; class QLineEdit *const descEdit_; class QPushButton *const okButton_; - + private slots: void codeTextEdited(const QString&); - + public: explicit GetCheatInput(const QString &desc, const QString &code, QWidget *parent); const QString codeText() const; @@ -52,31 +52,31 @@ public: class CheatDialog : public QDialog { Q_OBJECT - + class QListView *const view_; class QPushButton *const editButton_; class QPushButton *const rmButton_; std::vector items_; const QString savefile_; QString gamename_; - + void loadFromSettingsFile(); void saveToSettingsFile(); void resetViewModel(const std::vector &items); void resetViewModel(const std::vector &items, int newCurRow); - + private slots: void addCheat(); void editCheat(); void removeCheat(); void selectionChanged(const class QModelIndex ¤t, const class QModelIndex &last); - + public: explicit CheatDialog(const QString &savefile, QWidget *parent = 0); ~CheatDialog(); const QString cheats() const; void setGameName(const QString &name); - + public slots: virtual void accept(); virtual void reject(); diff --git a/gambatte_qt/src/fpsselector.cpp b/gambatte_qt/src/fpsselector.cpp index 63b9e4a3..46d9836b 100644 --- a/gambatte_qt/src/fpsselector.cpp +++ b/gambatte_qt/src/fpsselector.cpp @@ -27,15 +27,15 @@ static int getCustomIndex(const QComboBox *const comboBox) { static void setFps(QComboBox *const comboBox, const QSize &value) { const int valueIndex = comboBox->findData(value); - + if (valueIndex < 0) { comboBox->addItem(QString::number(static_cast(value.width()) / value.height()) + " fps", value); - + const int customIndex = getCustomIndex(comboBox); - + if (customIndex + 4 < comboBox->count()) comboBox->removeItem(customIndex + 1); - + comboBox->setCurrentIndex(comboBox->count() - 1); } else comboBox->setCurrentIndex(valueIndex); @@ -47,11 +47,11 @@ FpsSelector::FpsSelector() { comboBox_->addItem("GB/GBC (" + QString::number(262144.0 / 4389.0) + " fps)", QSize(262144, 4389)); comboBox_->addItem(QString("Other...")); - + const QSize &loadedValue = QSettings().value("misc/fps", value_).toSize(); value_ = loadedValue.width() > 0 && loadedValue.height() > 0 && loadedValue.width() / loadedValue.height() > 0 ? loadedValue : value_; - + reject(); connect(comboBox_, SIGNAL(currentIndexChanged(int)), this, SLOT(indexChanged(int))); @@ -77,11 +77,11 @@ QWidget * FpsSelector::widget() const { void FpsSelector::indexChanged(const int index) { if (getCustomIndex(comboBox_) == index) { bool ok = false; - + const QSize v(static_cast( QInputDialog::getDouble(comboBox_, tr("Set Frame Rate"), tr("Frame rate (fps):"), static_cast(value_.width()) / value_.height(), 30.0, 120.0, 4, &ok) * 10000 + 0.5), 10000); - + setFps(comboBox_, ok ? v : value_); } } diff --git a/gambatte_qt/src/fpsselector.h b/gambatte_qt/src/fpsselector.h index f0131a6e..055e70ef 100644 --- a/gambatte_qt/src/fpsselector.h +++ b/gambatte_qt/src/fpsselector.h @@ -27,13 +27,13 @@ class QWidget; class FpsSelector : public QObject { Q_OBJECT - + QComboBox *const comboBox_; QSize value_; - + private slots: void indexChanged(int index); - + public: FpsSelector(); ~FpsSelector(); diff --git a/gambatte_qt/src/framework/include/audioengineconf.h b/gambatte_qt/src/framework/include/audioengineconf.h index 9f090874..9c97fd25 100755 --- a/gambatte_qt/src/framework/include/audioengineconf.h +++ b/gambatte_qt/src/framework/include/audioengineconf.h @@ -25,27 +25,27 @@ class QWidget; class ConstAudioEngineConf { const AudioEngine *const ae; - + public: /*explicit */ConstAudioEngineConf(const AudioEngine *const ae) : ae(ae) {} const QString& nameString() const; QWidget* settingsWidget() const; void rejectSettings() const; - + bool operator==(ConstAudioEngineConf r) const { return ae == r.ae; } bool operator!=(ConstAudioEngineConf r) const { return ae != r.ae; } }; class AudioEngineConf { AudioEngine *const ae; - + public: /*explicit */AudioEngineConf(AudioEngine *const ae) : ae(ae) {} const QString& nameString() const; QWidget* settingsWidget() const; void acceptSettings() const; void rejectSettings() const; - + bool operator==(AudioEngineConf r) const { return ae == r.ae; } bool operator!=(AudioEngineConf r) const { return ae != r.ae; } operator const ConstAudioEngineConf() const { return ConstAudioEngineConf(ae); } diff --git a/gambatte_qt/src/framework/include/auto_vector.h b/gambatte_qt/src/framework/include/auto_vector.h index 47a6ab61..7f1b69d4 100755 --- a/gambatte_qt/src/framework/include/auto_vector.h +++ b/gambatte_qt/src/framework/include/auto_vector.h @@ -30,17 +30,17 @@ private: std::vector v; explicit released(const std::vector &v): v(v) {} }; - + public: typedef typename std::vector::const_iterator const_iterator; typedef typename std::vector::iterator iterator; typedef typename std::vector::size_type size_type; - + explicit auto_vector(const Allocator &a = Allocator()) : std::vector(a) {} explicit auto_vector(size_type n, const Allocator &a = Allocator()) : std::vector(n, 0, a) {} auto_vector(auto_vector &v) : std::vector() { swap(v); } auto_vector(const released &v) : std::vector(v.v) {} - + template auto_vector(InputIterator first, InputIterator last, const Allocator& a = Allocator()) : std::vector(first, last, a) @@ -48,7 +48,7 @@ public: } ~auto_vector() { clear(); } - + using std::vector::begin; using std::vector::end; using std::vector::rbegin; @@ -63,44 +63,44 @@ public: using std::vector::front; using std::vector::back; using std::vector::push_back; - + template void assign(InputIterator first, InputIterator last) { clear(); std::vector::assign(first, last); } - + void assign(size_type n) { clear(); std::vector::assign(n); } - + void pop_back() { if (!empty()) defined_delete(back()); - + std::vector::pop_back(); } - + iterator insert(iterator position, T *x) { return std::vector::insert(position, x); } - + template void insert(iterator position, InputIterator first, InputIterator last) { std::vector::insert(position, first, last); } - + iterator erase(iterator position) { if (position != end()) defined_delete(*position); - + return std::vector::erase(position); } - + iterator erase(iterator first, iterator last) { std::for_each(first, last, defined_delete); return std::vector::erase(first, last); } - + void swap(auto_vector &vec) { std::vector::swap(vec); } void clear() { erase(begin(), end()); } const std::vector get() const { return *this; } diff --git a/gambatte_qt/src/framework/include/blitterconf.h b/gambatte_qt/src/framework/include/blitterconf.h index c145257f..ede635f3 100755 --- a/gambatte_qt/src/framework/include/blitterconf.h +++ b/gambatte_qt/src/framework/include/blitterconf.h @@ -25,21 +25,21 @@ class QWidget; class ConstBlitterConf { const BlitterWidget *const blitter; - + public: explicit ConstBlitterConf(const BlitterWidget *const blitter) : blitter(blitter) {} const QString& nameString() const; unsigned maxSwapInterval() const; QWidget* settingsWidget() const; void rejectSettings() const; - + bool operator==(ConstBlitterConf r) const { return blitter == r.blitter; } bool operator!=(ConstBlitterConf r) const { return blitter != r.blitter; } }; class BlitterConf { BlitterWidget *const blitter; - + public: explicit BlitterConf(BlitterWidget *const blitter) : blitter(blitter) {} const QString& nameString() const; @@ -47,7 +47,7 @@ public: QWidget* settingsWidget() const; void acceptSettings() const; void rejectSettings() const; - + bool operator==(BlitterConf r) const { return blitter == r.blitter; } bool operator!=(BlitterConf r) const { return blitter != r.blitter; } operator const ConstBlitterConf() const { return ConstBlitterConf(blitter); } diff --git a/gambatte_qt/src/framework/include/callqueue.h b/gambatte_qt/src/framework/include/callqueue.h index ea8db40a..2a76c16e 100755 --- a/gambatte_qt/src/framework/include/callqueue.h +++ b/gambatte_qt/src/framework/include/callqueue.h @@ -38,30 +38,30 @@ class ParamQueue : Uncopyable { char *start; char *end; std::size_t avail; - + template struct PaddedSize { enum { R = ((sizeof(T) + ALIGN - 1) / ALIGN) * ALIGN }; }; - + public: explicit ParamQueue(const std::size_t sz = ALIGN * 2) : data((char*) std::malloc(sz)), dataend(data + sz), start(data), end(data), avail(sz) {} ~ParamQueue() { free(data); } - + template bool hasSpaceFor() { return avail > PaddedSize::R * 2 - 2; } - + template void push(const T &t); - + template T& front() { return *reinterpret_cast(dataend - start < PaddedSize::R ? data : start); } - + template const T& front() const { return *reinterpret_cast(dataend - start < PaddedSize::R ? data : start); } - + template void pop(); - + std::size_t size() const { return dataend - data; } static void swap(ParamQueue &a, ParamQueue &b); }; @@ -72,7 +72,7 @@ template void ParamQueue::push(const T &t) { avail -= dataend - end; end = data; } - + new (end) T(t); end += PaddedSize::R; avail -= PaddedSize::R; @@ -84,7 +84,7 @@ template void ParamQueue::pop() { avail += dataend - start; start = data; } - + reinterpret_cast(start)->~T(); start += PaddedSize::R; avail += PaddedSize::R; @@ -102,7 +102,7 @@ void ParamQueue::swap(ParamQueue &a, ParamQueue &b) { template void popto(ParamQueue &pq, ParamQueue *const pqout) { if (pqout) pqout->push(pq.template front()); - + pq.template pop(); } @@ -112,21 +112,21 @@ struct CallQueueBase { Callptr call; void (*popto)(ParamQueue&, ParamQueue*); }; - + ParamQueue pq; std::deque fq; - + void popAllTo(ParamQueue *const pqout); void incpq(); - + template void push(const T &t, const Funptrs *const fptrs) { while (!pq.template hasSpaceFor()) incpq(); - + pq.push(t); fq.push_back(fptrs); } - + ~CallQueueBase() { popAllTo(0); } }; @@ -148,28 +148,28 @@ class NoParam; template class CallQueue { CallQueueBase&, Param), ALIGN> base; - + template static void call(ParamQueue &pq, Param p) { pq.template front()(p); pq.template pop(); } - + public: template void push(const T &t) { static const typename CallQueueBase&, Param), ALIGN>::Funptrs fptrs = { call, popto }; base.push(t, &fptrs); } - + void pop(Param p) { base.fq.front()->call(base.pq, p); base.fq.pop_front(); } - + void pop_all(Param p) { while (!base.fq.empty()) pop(p); } - + std::size_t size() const { return base.fq.size(); } bool empty() const { return base.fq.empty(); } }; @@ -182,23 +182,23 @@ class CallQueue { pq.template front()(); pq.template pop(); } - + public: template void push(const T &t) { static const typename CallQueueBase&), ALIGN>::Funptrs fptrs = { call, popto }; base.push(t, &fptrs); } - + void pop() { base.fq.front()->call(base.pq); base.fq.pop_front(); } - + void pop_all() { while (!base.fq.empty()) pop(); } - + std::size_t size() const { return base.fq.size(); } bool empty() const { return base.fq.empty(); } }; diff --git a/gambatte_qt/src/framework/include/inputdialog.h b/gambatte_qt/src/framework/include/inputdialog.h index 3d1431e7..e6531750 100644 --- a/gambatte_qt/src/framework/include/inputdialog.h +++ b/gambatte_qt/src/framework/include/inputdialog.h @@ -42,64 +42,64 @@ public: struct Button { // Label used in input settings dialog. If this is empty the button won't be configurable, but will use the defaultKey. QString label; - + // Tab label used in input settings dialog. QString category; - + // Default Qt::Key. Use Qt::Key_unknown for none. int defaultKey; - + // Default alternate Qt::Key. Use Qt::Key_unknown for none. int defaultAltKey; - + // called on button press / release struct Action { virtual void buttonPressed() {} virtual void buttonReleased() {} virtual ~Action() {} } *action; - + // Default number of frames per auto-repeat press. 0 for auto-repeat disabled. unsigned char defaultFpp; }; - + private: struct KeyMapped { Button::Action *const action; const unsigned char fpp; KeyMapped(Button::Action *action, int fpp) : action(action), fpp(fpp) {} }; - + struct JoyMapped { Button::Action *const action; const int mask; const unsigned char fpp; JoyMapped(Button::Action *action, int mask, int fpp) : action(action), mask(mask), fpp(fpp) {} }; - + struct AutoPress { Button::Action *action; unsigned char fpp; unsigned char fcnt; AutoPress(Button::Action *action, unsigned char fpp, unsigned char fcnt) : action(action), fpp(fpp), fcnt(fcnt) {} }; - + struct Config { SDL_Event event; unsigned char fpp; }; - + template struct Mapping { Map map; std::vector rapidvec; }; - + typedef std::multimap keymap_t; typedef std::multimap joymap_t; typedef Mapping KeyMapping; typedef Mapping JoyMapping; - + const std::vector